Replies: 1 comment 1 reply
-
Two more thoughts after discussing this briefly with @davidnuescheler:
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
In the attempt to get AEM customers to use their existing content with the standard Helix rendering pipeline and potential future custom compontent-based renderers, we need to find a good way to represent the deeply nested content structures of AEM in something that feels natural in the Markdown++ of the Content Bus.
I see following options:
YAML Midmatter
GitHub-flavored markdown has support for YAML frontmatter (a YAML document carrying metadata at the start of a markdown document). Helix extends this to support YAML at the start of a
section
, wheresection
s can be anywhere in the document, butsection
s cannot be nested. An example document of Markdown with midmatter is here: https://github.com/adobe/helix-pipeline/blob/main/test/fixtures/frontmatter.md and the corresponding MDAST representation is here: https://github.com/adobe/helix-pipeline/blob/main/test/fixtures/frontmatter.jsonAdvantages:
Disadvantages:
More Sophisticated Tables
What are components in AEM are Blocks in Helix. Blocks are authored in Word and Google Docs as Tables and represented in the content bus as HTML
<table>
tags. You can see these tables in action here: https://blog.adobe.com/en/publish/2021/12/13/introducing-creative-cloud-express.md Before rendering, they get converted into nesteddiv
s. We could expand on this approach and represent more complex AEM components as tables, and nested components as nested tables.Advantages:
Disadvantages:
Markdown Directives
Discussed here before #159 (comment) Markdown Directives are a proposed syntax extension to Markdown that allow arbitrary block and inline metadata. It is the favored approach to handling extensions in the unified ecosystem, but we dismissed them in the past because they look ugly and their benefit over the status quo (tables) wasn't clear, especially considering that Helix does not support nested blocks.
Advantages:
Disadvantages:
Beta Was this translation helpful? Give feedback.
All reactions