[ https://issues.apache.org/jira/browse/DOXIA-690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17682032#comment-17682032 ]
ASF GitHub Bot commented on DOXIA-690: -------------------------------------- kwin commented on code in PR #141: URL: https://github.com/apache/maven-doxia/pull/141#discussion_r1090522411 ########## doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java: ########## @@ -156,6 +178,86 @@ public void parse(Reader source, Sink sink, String reference) throws ParseExcept } } + private boolean processMetadataForHtml(StringBuilder html, StringBuilder source) { + final Map<String, List<String>> metaData; + final int endOffset; // end of metadata within source + // support two types of metadata: + if (source.toString().startsWith("---")) { + // 1. YAML front matter (https://github.com/vsch/flexmark-java/wiki/Extensions#yaml-front-matter) + Node documentRoot = FLEXMARK_METADATA_PARSER.parse(source.toString()); + YamlFrontMatterVisitor visitor = new YamlFrontMatterVisitor(); + visitor.visit(documentRoot); + metaData = visitor.getData(); + endOffset = visitor.getEndOffset(); + } else { + // 2. Multimarkdown metadata (https://fletcher.github.io/MultiMarkdown-5/metadata.html), not yet supported + // by Flexmark (https://github.com/vsch/flexmark-java/issues/550) + metaData = new LinkedHashMap<>(); + Matcher metadataMatcher = METADATA_SECTION_PATTERN.matcher(source); + if (metadataMatcher.find()) { + String entry = metadataMatcher.group(0) + '\n'; Review Comment: For consistency reasons used the platform separator now in https://github.com/apache/maven-doxia/pull/141/commits/168071b3d8e0434ce73d668746e6c78f5f2051f2. ########## doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java: ########## @@ -156,6 +178,86 @@ public void parse(Reader source, Sink sink, String reference) throws ParseExcept } } + private boolean processMetadataForHtml(StringBuilder html, StringBuilder source) { + final Map<String, List<String>> metaData; Review Comment: fixed in https://github.com/apache/maven-doxia/pull/141/commits/168071b3d8e0434ce73d668746e6c78f5f2051f2. > Markdown Parser: Multiline metadata incorrectly rendered > -------------------------------------------------------- > > Key: DOXIA-690 > URL: https://issues.apache.org/jira/browse/DOXIA-690 > Project: Maven Doxia > Issue Type: Bug > Components: Module - Markdown > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > > Markdown uses the following metadata format in its sink: > [http://fletcher.github.io/MultiMarkdown-5/metadata.html]. > In case a metadata key has multiple values on multiple lines it is emitted as > following from the {{MarkdownSink}}: > {code:java} > title: Guide to creating a site > author: Brett Porter > Jason van Zyl > date: 2015-07-18 {code} > That leads to incorrect XHTML output as the second line for {{author}} is not > detected correctly and instead of being emitted as metadata is emitted as > regular paragraph in the HTML body. This is due to > https://github.com/apache/maven-doxia/blob/7509feb03af4d4fb7d48b4f9ef38ff5c1a17a149/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java#L110 > only detecting single line metadata values. > Although this might be a glitch of the underlying Markdown Parser > implementation the metadata format explicitly recommends: > {quote} > To keep multiline metadata values from being confused with additional > metadata, I recommend indenting each new line of metadata. If your metadata > value includes a colon, it must be indented to keep it from being treated as > a new key-value pair > {quote} -- This message was sent by Atlassian Jira (v8.20.10#820010)