From 603b0cc9274add701f76653e38ad1b6ee53f6850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20K=C5=99e=C4=8Dan?= Date: Mon, 26 Apr 2021 15:04:41 +0200 Subject: [PATCH] Support for non-standard list indents We needed list content indent = 3 --- .../flexmark/html2md/converter/FlexmarkHtmlConverter.java | 1 + .../flexmark/html2md/converter/HtmlConverterOptions.java | 3 +++ .../converter/internal/HtmlConverterCoreNodeRenderer.java | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/FlexmarkHtmlConverter.java b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/FlexmarkHtmlConverter.java index 26390d87c..f0b413368 100644 --- a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/FlexmarkHtmlConverter.java +++ b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/FlexmarkHtmlConverter.java @@ -74,6 +74,7 @@ public class FlexmarkHtmlConverter { final public static DataKey UNORDERED_LIST_DELIMITER = new DataKey<>("UNORDERED_LIST_DELIMITER", '*'); final public static DataKey DEFINITION_MARKER_SPACES = new DataKey<>("DEFINITION_MARKER_SPACES", 3); final public static DataKey MIN_SETEXT_HEADING_MARKER_LENGTH = new DataKey<>("MIN_SETEXT_HEADING_MARKER_LENGTH", 3); + final public static DataKey LIST_ITEM_INDENT = new DataKey<>("LIST_ITEM_INDENT", 4); final public static DataKey CODE_INDENT = new DataKey<>("CODE_INDENT", " "); final public static DataKey NBSP_TEXT = new DataKey<>("NBSP_TEXT", " "); final public static DataKey EOL_IN_TITLE_ATTRIBUTE = new DataKey<>("EOL_IN_TITLE_ATTRIBUTE", " "); diff --git a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/HtmlConverterOptions.java b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/HtmlConverterOptions.java index 9fd4bfe26..95470f7ca 100644 --- a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/HtmlConverterOptions.java +++ b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/HtmlConverterOptions.java @@ -55,6 +55,7 @@ public class HtmlConverterOptions implements MutableDataSetter { public char unorderedListDelimiter; public int definitionMarkerSpaces; public int minSetextHeadingMarkerLength; + public int listItemIndent; public String codeIndent; public String eolInTitleAttribute; public String nbspText; @@ -118,6 +119,7 @@ public HtmlConverterOptions(HtmlConverterOptions other) { unorderedListDelimiter = other.unorderedListDelimiter; definitionMarkerSpaces = other.definitionMarkerSpaces; minSetextHeadingMarkerLength = other.minSetextHeadingMarkerLength; + listItemIndent = other.listItemIndent; codeIndent = other.codeIndent; eolInTitleAttribute = other.eolInTitleAttribute; nbspText = other.nbspText; @@ -184,6 +186,7 @@ public HtmlConverterOptions(DataHolder options) { unorderedListDelimiter = FlexmarkHtmlConverter.UNORDERED_LIST_DELIMITER.get(options); definitionMarkerSpaces = FlexmarkHtmlConverter.DEFINITION_MARKER_SPACES.get(options); minSetextHeadingMarkerLength = Utils.minLimit(FlexmarkHtmlConverter.MIN_SETEXT_HEADING_MARKER_LENGTH.get(options), 3); + listItemIndent = FlexmarkHtmlConverter.LIST_ITEM_INDENT.get(options); codeIndent = FlexmarkHtmlConverter.CODE_INDENT.get(options); eolInTitleAttribute = FlexmarkHtmlConverter.EOL_IN_TITLE_ATTRIBUTE.get(options); nbspText = FlexmarkHtmlConverter.NBSP_TEXT.get(options); diff --git a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/internal/HtmlConverterCoreNodeRenderer.java b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/internal/HtmlConverterCoreNodeRenderer.java index fba4477c0..238274bea 100644 --- a/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/internal/HtmlConverterCoreNodeRenderer.java +++ b/flexmark-html2md-converter/src/main/java/com/vladsch/flexmark/html2md/converter/internal/HtmlConverterCoreNodeRenderer.java @@ -799,7 +799,7 @@ private void handleListItem(HtmlNodeConverterContext context, HtmlMarkdownWriter listState.itemCount++; CharSequence itemPrefix = listState.getItemPrefix(this.myHtmlConverterOptions); - int count = myHtmlConverterOptions.listContentIndent ? itemPrefix.length() : 4; + int count = myHtmlConverterOptions.listContentIndent ? itemPrefix.length() : myHtmlConverterOptions.listItemIndent; CharSequence childPrefix = RepeatedSequence.repeatOf(" ", count); out.line().append(itemPrefix);