3
0
mirror of https://github.com/larvit/adf-codec.git synced 2026-11-12 11:48:29 +01:00

Delete the announcement post drafts

This commit is contained in:
2026-11-08 19:14:47 +01:00
committed by Lillem4n
parent 6898aa875e
commit 8e6d7efff1
-125
View File
@@ -1,125 +0,0 @@
# Announcement posts for 0.3.0
Drafts for the maintainer to post, one per place. The Turndown sample under Topic 96176 ran against
`0.3.0` on 2026-11-05.
Delete this file once the posts are out.
## jira.atlassian.com
### JRACLOUD-77436, "Provide a public REST API endpoint to convert between ADF, HTML, Markup and Markdown"
Plain text, so it pastes into Jira's comment editor whatever its mode.
> For those who need the conversion now, in Node, Forge or a browser: `@larvit/adf-codec` converts
> markdown to ADF and ADF to markdown or HTML, with no Atlaskit, no React and no dependencies. The
> Atlaskit transformer's `encode` throws "This is not implemented yet"; here `adfToPortableMarkdown`
> and `adfToLosslessMarkdown` write the markdown, and `losslessMarkdownToAdf` reads the lossless one
> back to the same document, panels, mentions, statuses and unknown node types included. Malformed
> input gets an error result, not a throw. Wiki markup is not covered. I maintain it.
>
> https://github.com/larvit/adf-codec
> How it compares with the other npm packages, run on their published code:
> https://github.com/larvit/adf-codec#other-adf-converters
>
> It is JavaScript, so it doesn't answer the Python request above.
## Atlassian developer community
### Topic 96176, "Is there a way to convert from HTML to ADF using TypeScript on NodeJS?"
> The Turndown route above stops where the Atlaskit packages won't import as ESM, as you found. I maintain [`@larvit/adf-codec`](https://github.com/larvit/adf-codec),
> which reads markdown into ADF with no Atlaskit, no React and no dependencies, as ESM that runs in
> Node, Forge and browsers. It takes the place of the Atlaskit transformer in that route:
>
> ```ts
> import TurndownService from 'turndown'
> import { portableMarkdownToAdf } from '@larvit/adf-codec'
>
> const markdown = new TurndownService({ headingStyle: 'atx' }).turndown(html)
> const adf = portableMarkdownToAdf(markdown) // { ok: true, value: <ADF doc> } or { ok: false, error }
> ```
>
> Malformed input gets an error result, not a throw. `htmlToAdf` reads only the HTML that its own `adfToHtml`
> writes, so arbitrary HTML still goes through markdown first. It also writes ADF back out as
> markdown or HTML. [How it compares with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters),
> run on their published code.
### Topic 99408, "HTML to ADF Conversion"
> If you can write the content as markdown, or turn the HTML into markdown first, an ADF body is one
> call: `portableMarkdownToAdf(markdown)` from [`@larvit/adf-codec`](https://github.com/larvit/adf-codec)
> (I maintain it) returns `{ ok: true, value }` with a document you can send as `description`, and
> `{ ok: false, error }` with a line and a node path when the input is wrong. For HTML, run it
> through Turndown first. The package has no dependencies and runs in Node, Forge and browsers.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
### Topic 82496, "Converting to ADF(Atlassian Document Format)"
> A package now does the markdown to ADF part in Node, Forge and browsers without Atlaskit:
> [`@larvit/adf-codec`](https://github.com/larvit/adf-codec), which I maintain.
> `portableMarkdownToAdf(markdown)` reads CommonMark plus GFM's tables, task lists and alerts, and
> returns the document or an error naming the line. ADF out to markdown or HTML works too, and
> `adfToLosslessMarkdown` followed by `losslessMarkdownToAdf` gives back the document it started
> from. HTML in is not general: turn it into markdown first, for example with Turndown.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
### Topic 86214, "Add a comment in Rovo action"
> The Atlaskit transformers can't be used in the Forge backend, but a plain function can:
> [`@larvit/adf-codec`](https://github.com/larvit/adf-codec) (I maintain it) turns the markdown an
> agent writes into a valid ADF comment body, with no Atlaskit, no React and no dependencies:
> `const body = portableMarkdownToAdf(markdown)`, then send `body.value` as the comment's `body`
> when `body.ok`. Headings, lists, tables, code blocks, links and marks all come out as ADF nodes and marks,
> and an invalid input returns an error instead of throwing.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
### Topic 100699, "Guidance on unmaintained markdown-confluence project"
> To the question of what else converts markdown to ADF and back: [`@larvit/adf-codec`](https://github.com/larvit/adf-codec),
> which I maintain. It is a library, so it doesn't publish to Confluence or ship an Obsidian plugin.
> It reads markdown into ADF (CommonMark, GFM tables, task lists and alerts, Obsidian callouts) and
> writes ADF back as markdown, and `adfToLosslessMarkdown` with `losslessMarkdownToAdf` gives back the original document, panels,
> mentions, statuses, macros and node types it doesn't know included. Models can edit that markdown,
> since it is markdown, which suits the MD to ADF need for LLMs mentioned above.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
### Topic 101278, "Rovo MCP Server: no attachment-upload tool, and `description` drops ADF media nodes on edit"
> I can't change what the server accepts, but a client that reads ADF over REST can avoid the loss
> itself. [`@larvit/adf-codec`](https://github.com/larvit/adf-codec) (I maintain it) writes ADF as
> markdown in which media nodes, mentions, panels, statuses and macros are kept as `!adf:` lines and
> node types it doesn't know as fenced JSON, and reads that markdown back to the same document. The
> model edits the markdown, and `losslessMarkdownToAdf` gives ADF to send with the REST API, with the
> media node still in it unless the edit removed its lines.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
## GitHub, `atlassian/atlassian-mcp-server`
Both issues are closed. Post only if you want to; the maintainers answered #161 with an HTML format
of their own.
### Issue 60, "Editing content via Rovo MCP causes the loss of all ADF-rich content"
> For anyone building their own client around this problem: [`@larvit/adf-codec`](https://github.com/larvit/adf-codec)
> (I maintain it) writes ADF as markdown that keeps Smart Links, mentions, dates, statuses, panels,
> expands, task lists, media, layouts, extensions and node types it doesn't know, and reads the
> edited markdown back to ADF. An unedited document comes back deep-equal. It has no dependencies
> and runs in Node, Deno, Bun and browsers.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
### Issue 161, "Lossless markdown round-trip for Confluence macros and large-page support via file-path parameter"
> The first proposal, macros surviving a markdown round-trip, is what [`@larvit/adf-codec`](https://github.com/larvit/adf-codec)
> (I maintain it) does for any client: `adfToLosslessMarkdown` writes a macro as an `!adf:extension` or
> `!adf:bodiedExtension` directive holding its key, type and parameters, and `losslessMarkdownToAdf` restores it exactly.
> [Comparison with the other npm packages](https://github.com/larvit/adf-codec#other-adf-converters).
## Left out
- Topic 96638 (a heading in a comment through the Atlassian CLI): the failure is the CLI's, not a
conversion.
- Stack Overflow: the questions found are from 2021 to 2024, answered, and in PHP and C#,
which this JavaScript package doesn't serve: 74559262 (HTML to ADF), 74547915 (ADF to HTML, whose
answer is `expand=renderedFields`), 71693304 (parsing ADF in C#), 72553636, 68102225 and 78261178.
None asks for ADF to markdown. A new question with its own answer would be the way in, if you want one.