Files
RenewCMS/docs/releases/v2.7.0-beta.md
T

2.5 KiB

This release lets your website read article bodies as markdown, HTML or structured blocks, and fixes text alignment in the editor.

New

Article body formats

  • Read an article body as markdown, HTML or a typed block array with the format query parameter, so a headless frontend can render it with markdown-it, comark or its own components.
  • Keep text alignment in every format: markdown wraps centered, right-aligned and justified blocks in a div with an inline style, and the block array carries an align field.
  • Keep plain text plain: text that merely looks like markdown, such as # not a heading or - not a list, is escaped in the markdown output.
  • See the Integration page snippets and the article API reference for the full contract.

Improvements and fixes

  • Fix the text alignment buttons in the article editor, which were disabled and showed a blocked cursor. Paragraphs and headings can be aligned left, center, right or justified again, and unaligned text stays free of inline styles.
  • The web interface requests HTML explicitly when it loads, saves, publishes, unpublishes or creates an article, so the editor and the image counts behave exactly as before.

API

  • Changed: GET /v1/article/, GET /v1/article/{id}, POST /v1/article/, PATCH /v1/article/{id}, PATCH /v1/article/{id}/publish and PATCH /v1/article/{id}/unpublish now return body as markdown by default. Pass ?format=html to keep the previous HTML body.
  • Every article object now includes body_format (markdown, html or json), which names the format of body.
  • ?format=json on the same routes returns body as a JSON array of typed blocks instead of a string.
  • An unsupported format answers 400 before anything is read or written.
  • Storage and the request bodies of POST and PATCH stay HTML.

Under the hood

  • Add the article body renderer port in the domain, with a markdown and JSON block adapter, and tests for every supported element.
  • Update golang.org/x/crypto to v0.57.0 and add golang.org/x/net as a direct dependency for HTML parsing.
  • Add @tiptap/extension-text-align to the web interface.

Upgrading

  • Replace the binary. No database migration or new environment variable is required.
  • Clients that read an article body as HTML must add ?format=html to their article requests, because the default is now markdown.
  • A markdown renderer needs raw HTML enabled for text alignment to show, for example html: true in markdown-it.