This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch bugfix/numbered-item-prefix in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 3a8682d7fb83341ef867e3e6b31a1d59b0c5385b Author: Konrad Windszus <k...@apache.org> AuthorDate: Sat Feb 11 09:47:09 2023 +0100 [DOXIA-693] Fix prefix for ordered list item prefixes --- .../doxia/module/markdown/MarkdownMarkup.java | 22 +++------- .../maven/doxia/module/markdown/MarkdownSink.java | 51 ++++++++++------------ .../doxia/module/markdown/MarkdownSinkTest.java | 5 ++- 3 files changed, 30 insertions(+), 48 deletions(-) diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownMarkup.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownMarkup.java index f77db838..854bfa2e 100644 --- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownMarkup.java +++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownMarkup.java @@ -36,21 +36,6 @@ public interface MarkdownMarkup extends TextMarkup { String COMMENT_START = "<!-- "; String COMMENT_END = " -->"; - /** numbering decimal markup char: '1' */ - char NUMBERING = '1'; - - /** numbering lower alpha markup char: 'a' */ - char NUMBERING_LOWER_ALPHA_CHAR = 'a'; - - /** numbering lower roman markup char: 'i' */ - char NUMBERING_LOWER_ROMAN_CHAR = 'i'; - - /** numbering upper alpha markup char: 'A' */ - char NUMBERING_UPPER_ALPHA_CHAR = 'A'; - - /** numbering upper roman markup char: 'I' */ - char NUMBERING_UPPER_ROMAN_CHAR = 'I'; - /** page break markup char: '\f' */ char PAGE_BREAK = '\f'; @@ -91,8 +76,11 @@ public interface MarkdownMarkup extends TextMarkup { /** Syntax for the link start: "](" */ String LINK_START_2_MARKUP = "]("; - /** Syntax for the list start: "-" */ - String LIST_START_MARKUP = "-"; + /** Syntax for the ordered list item: '1.' */ + String LIST_ORDERED_ITEM_START_MARKUP = "1."; + + /** Syntax for the unordered list item: "-" */ + String LIST_UNORDERED_ITEM_START_MARKUP = "-"; /** Syntax for the mono-spaced style end: "`" */ String MONOSPACED_END_MARKUP = "`"; diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java index c5c7dcb1..2b06b15c 100644 --- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java +++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java @@ -371,7 +371,7 @@ public class MarkdownSink extends AbstractTextSink implements MarkdownMarkup { */ public void list() { listNestingIndent += " "; - listStyles.push(LIST_START_MARKUP); + listStyles.push(LIST_UNORDERED_ITEM_START_MARKUP); write(EOL); } @@ -388,20 +388,16 @@ public class MarkdownSink extends AbstractTextSink implements MarkdownMarkup { /** * {@inheritDoc} */ + @Override public void listItem() { - // if (!numberedList) - // write(EOL + listNestingIndent + "*"); - // else - numberedListItem(); - itemFlag = true; + orderedOrUnorderedListItem(); } /** * {@inheritDoc} */ public void listItem_() { - write(EOL); - itemFlag = false; + orderedOrUnorderedListItem_(); } /** {@inheritDoc} */ @@ -409,25 +405,14 @@ public class MarkdownSink extends AbstractTextSink implements MarkdownMarkup { listNestingIndent += " "; write(EOL); - String style; - switch (numbering) { - case NUMBERING_UPPER_ALPHA: - style = String.valueOf(NUMBERING_UPPER_ALPHA_CHAR); - break; - case NUMBERING_LOWER_ALPHA: - style = String.valueOf(NUMBERING_LOWER_ALPHA_CHAR); - break; - case NUMBERING_UPPER_ROMAN: - style = String.valueOf(NUMBERING_UPPER_ROMAN_CHAR); - break; - case NUMBERING_LOWER_ROMAN: - style = String.valueOf(NUMBERING_LOWER_ROMAN_CHAR); - break; - case NUMBERING_DECIMAL: - default: - style = String.valueOf(NUMBERING); + // markdown only supports decimal numbering + if (numbering != NUMBERING_DECIMAL) { + LOGGER.warn( + "Markdown only supports numbered item with decimal style ({}) but requested was style {}, falling back to decimal style", + NUMBERING_DECIMAL, + numbering); } - + String style = LIST_ORDERED_ITEM_START_MARKUP; listStyles.push(style); } @@ -445,15 +430,23 @@ public class MarkdownSink extends AbstractTextSink implements MarkdownMarkup { * {@inheritDoc} */ public void numberedListItem() { - String style = listStyles.peek(); - write(EOL + listNestingIndent + style + SPACE); - itemFlag = true; + orderedOrUnorderedListItem(); } /** * {@inheritDoc} */ public void numberedListItem_() { + orderedOrUnorderedListItem_(); + } + + private void orderedOrUnorderedListItem() { + String style = listStyles.peek(); + write(EOL + listNestingIndent + style + SPACE); + itemFlag = true; + } + + private void orderedOrUnorderedListItem_() { write(EOL); itemFlag = false; } diff --git a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java index cac89ac5..f4158653 100644 --- a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java +++ b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownSinkTest.java @@ -144,13 +144,14 @@ public class MarkdownSinkTest extends AbstractSinkTest { /** {@inheritDoc} */ protected String getListBlock(String item) { - return EOL + EOL + Markup.SPACE + "" + MarkdownMarkup.LIST_START_MARKUP + "" + Markup.SPACE + item + EOL + EOL; + return EOL + EOL + Markup.SPACE + "" + MarkdownMarkup.LIST_UNORDERED_ITEM_START_MARKUP + "" + Markup.SPACE + + item + EOL + EOL; } /** {@inheritDoc} */ protected String getNumberedListBlock(String item) { return EOL + EOL + Markup.SPACE + "" - + MarkdownMarkup.NUMBERING_LOWER_ROMAN_CHAR + "" + + MarkdownMarkup.LIST_ORDERED_ITEM_START_MARKUP + "" + Markup.SPACE + item + EOL + EOL; }