\ No newline at end of file
diff --git a/.idea/markdown-navigator/GitHub_Templates.xml b/.idea/markdown-navigator/GitHub_Templates.xml
index 4a8bd30f0..2676449ff 100644
--- a/.idea/markdown-navigator/GitHub_Templates.xml
+++ b/.idea/markdown-navigator/GitHub_Templates.xml
@@ -1,69 +1,33 @@
-
\ No newline at end of file
diff --git a/.idea/markdown-navigator/OVERVIEW.xml b/.idea/markdown-navigator/OVERVIEW.xml
index 5df64e005..464a59ffe 100644
--- a/.idea/markdown-navigator/OVERVIEW.xml
+++ b/.idea/markdown-navigator/OVERVIEW.xml
@@ -1,33 +1,27 @@
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2f1c7119d..03d92f3b5 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/Project Default.xml b/Project Default.xml
new file mode 100644
index 000000000..0645fe58e
--- /dev/null
+++ b/Project Default.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index ffbc7bf9c..a5b69cb71 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ than ideal and for pathological input either hangs or practically hangs during p
### master [](https://travis-ci.org/vsch/flexmark-java)
-### latest [](https://search.maven.org/search?q=g:com.vladsch.flexmark) [](https://travis-ci.org/vsch/flexmark-java) [](https://www.javadoc.io/doc/com.vladsch.flexmark/flexmark)
+### latest [](https://search.maven.org/search?q=g:com.vladsch.flexmark) [](https://travis-ci.org/vsch/flexmark-java) [](https://www.javadoc.io/doc/com.vladsch.flexmark/flexmark)
[](https://gitq.com/vsch/flexmark-java)
@@ -48,12 +48,12 @@ following sample:
com.vladsch.flexmarkflexmark-all
- 0.50.40
+ 0.50.50
```
Source:
-[BasicSample.java](flexmark-java-samples/src/com/vladsch/flexmark/samples/BasicSample.java)
+[BasicSample.java](flexmark-java-samples/src/com/vladsch/flexmark/java/samples/BasicSample.java)
```java
package com.vladsch.flexmark.samples;
@@ -87,7 +87,7 @@ public class BasicSample {
#### Building via Gradle
```shell
-compile 'com.vladsch.flexmark:flexmark-all:0.50.40'
+compile 'com.vladsch.flexmark:flexmark-all:0.50.50'
```
#### Building with Android Studio
@@ -167,7 +167,7 @@ public class PegdownOptions {
```
A sample with a
-[custom link resolver](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/PegdownCustomLinkResolverOptions.java)
+[custom link resolver](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/PegdownCustomLinkResolverOptions.java)
is also available, which includes link resolver for changing URLs or attributes of links and a
custom node renderer if you need to override the generated link HTML.
@@ -223,7 +223,7 @@ custom node renderer if you need to override the generated link HTML.
* Custom node rendering API with ability to invoke standard rendering for an overridden node,
allowing custom node renders that only handle special cases and let the rest be rendered as
usual.
- [PegdownCustomLinkResolverOptions](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/PegdownCustomLinkResolverOptions.java)
+ [PegdownCustomLinkResolverOptions](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/PegdownCustomLinkResolverOptions.java)
* [Gfm Issues](https://github.com/vsch/flexmark-java/wiki/Extensions#gfm-issues) and
[Gfm Users](https://github.com/vsch/flexmark-java/wiki/Extensions#gfm-users) extensions for
parsing and rendering `#123` and `@user-name` respectively.
@@ -617,14 +617,14 @@ BSD (2-clause) licensed, see [LICENSE.txt] file.
[commonmark-java]: https://github.com/atlassian/commonmark-java
[commonMarkSpec.md]: https://github.com/vsch/idea-multimarkdown/blob/master/test/data/performance/commonMarkSpec.md
[docx4j]: https://www.docx4java.org/trac/docx4j
-[DocxConverter Sample]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/DocxConverterCommonMark.java
+[DocxConverter Sample]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/DocxConverterCommonMark.java
[Extensions.java]: flexmark-profile-pegdown/src/main/java/com/vladsch/flexmark/profiles/pegdown/Extensions.java
[flexmark-java]: https://github.com/vsch/flexmark-java
[GitHub]: https://github.com/vsch/laravel-translation-manager
[GitHub Issues page]: ../../issues
[hang-pegdown.md]: https://github.com/vsch/idea-multimarkdown/blob/master/test/data/performance/hang-pegdown.md
[hang-pegdown2.md]: https://github.com/vsch/idea-multimarkdown/blob/master/test/data/performance/hang-pegdown2.md
-[HtmlToMarkdownCustomizedSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/HtmlToMarkdownCustomizedSample.java
+[HtmlToMarkdownCustomizedSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/HtmlToMarkdownCustomizedSample.java
[Include Markdown and HTML File Content]: ../../wiki/Usage#include-markdown-and-html-file-content
[intellij-markdown]: https://github.com/valich/intellij-markdown
[Jekyll]: https://jekyllrb.com
diff --git a/VERSION.md b/VERSION.md
index 43b35ccaa..427dcefde 100644
--- a/VERSION.md
+++ b/VERSION.md
@@ -1,11 +1,13 @@
-flexmark-java
-=============
+# flexmark-java
**Version History**
-[TOC]: # " "
+[TOC]: # ""
-- [To Do](#to-do)
+- [0.50.50](#05050)
+- [0.50.48](#05048)
+- [0.50.46](#05046)
+- [0.50.44](#05044)
- [0.50.42](#05042)
- [0.50.40](#05040)
- [0.50.38](#05038)
@@ -99,20 +101,40 @@ flexmark-java
- [0.32.0](#0320)
- [0.30.0](#0300)
-
-### To Do
+## 0.50.50
+
+* Fix: change docx converter to not include `<>` around auto and mail links in generated code.
+* Fix: [#384, Markdown parser produces invalid HTML]
+
+## 0.50.48
+
+* Fix: [#382, Is there an option for number of whitespaces needed to create sub-lists?]
+ * `FIXED_INDENT` list parser did not convert list item looking text with >= 4 spaces to lazy
+ continuation.
+
+## 0.50.46
+
+* Fix:
+ [#381, StackOverflowError with long base64 image and LINKS\_ALLOW\_MATCHED\_PARENTHESES disabled],
+ `USE_HARDCODED_LINK_ADDRESS_PARSER` was not used if matched parentheses were disabled causing
+ stack overflow in regex evaluation.
+* Fix: docx conversion renders mail link text with `mailto:` prefix
+
+## 0.50.44
-* [ ] Add: `` and `` tags to `Formatter` for
- controlling non-formatting regions.
-* [ ] Convert anonymous classes to lambda where possible.
-* [ ] Add: `flexmark-ext-attributes` formatting of individual attributes instead of dumping the
- attributes node text.
+* Fix: [#376, convert markdown to html], delimiters are not allowed to span table cells.
-0.50.42
--------
+## 0.50.42
+* Fix: regression bug
+ [#372, \[Regression?\] Attributes extension not applied to \`code\` tag of code blocks]
+ * Add: `AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES`, default
+ `FencedCodeAddType.ADD_TO_PRE_CODE` for backward compatibility with 0.42, but if this is
+ option is not set and `AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES` is set to `true`,
+ default will change to `FencedCodeAddType.ADD_TO_PRE` since attributes after info are used
+ to add to the `code` tag.
* Fix: data set copy constructors to accept `null`
* Fix: change `DataSet.keySet()` to `DataSet.getKeys()`
* Deprecate: `DataSet.keySet()`
@@ -132,8 +154,7 @@ flexmark-java
`NodeAdaptedVisitor.getHandler(Node)`, `NodeAdaptedVisitor.getHandler(Class>)`, and
`NodeAdaptedVisitor.getNodeClasses()` to get access to contained data.
-0.50.40
--------
+## 0.50.40
* Add: `BasedSequence.emptyPrefix()` and `BasedSequence.emptySuffix()` to return empty sequence
at start or end of the current sequence. Useful for `PrefixedSubSequence.of(String,
@@ -142,8 +163,7 @@ flexmark-java
* Fix: link URL parser not handling char escaping, nested parenthesis tracking and other edge
cases in jekyll URL macro parsing.
-0.50.38
--------
+## 0.50.38
* Fix: real fix for Stack Overflow when parsing long URLs, by hand rolling parsing of link
destination.
@@ -154,31 +174,27 @@ flexmark-java
* Add: `BasedSequence.safeBaseCharAt(int)` will return character from the base sequence if index
out of range for sequence or `\0` if out of base sequence range.
-0.50.36
--------
+## 0.50.36
* Fix: `SegmentedSequence` would return sequence with start > end if ending with
`PrefixedSubSequence` whose position was > end of real sequences before.
* Add: `BitIntegerSet.toArray(int[], int)` for easy `int[]` creation from bit set.
* Add: `BitIntegerSet.addAll(int[], int, int)` for setting from `int[]`
-0.50.34
--------
+## 0.50.34
* Add: source `Node` to `com.vladsch.flexmark.util.format.TableCell`
* Fix: Stack overflow when parsing large embedded images with space in URL enabled. Now link
urls starting with `data:image/png;base64,` do not allow spaces in the link.
-0.50.32
--------
+## 0.50.32
* Add: `DocxRenderer` image max-width tests
* Add: `DocxRenderer` image max-height attribute processing and tests
* Fix: refactor `DocxRenderer` tests to extract common code to base class
* Fix: heading rendering to work with styles using numbering
-0.50.30
--------
+## 0.50.30
* Fix: `DocxRenderer`
* Add: page break via empty paragraph with only `{.pagebreak}` attributes
@@ -211,8 +227,7 @@ flexmark-java
Does not affect result but reduces xml noise.
* Fix: `Formatter` translation and merge rendering
-0.50.28
--------
+## 0.50.28
* Fix: [#362, ArrayIndexOutOfBoundsException in BasedSequence.indexOfAll]
* Add: `DocxRenderer.BULLET_LIST_STYLE` default `"BulletList"`, numbering style to use for
@@ -253,27 +268,23 @@ flexmark-java
* Fix: `Formatter` attributes would eliminate separator space before or after following text
possibly changing the applicable node for the attribute.
-0.50.26
--------
+## 0.50.26
* Fix: docx converter to use `BulletList` and `NumberedList` numbering list styles for list
conversions to allow easy list item styling for multi-level lists
* Add: `DocxConverterEmpty` to samples for generating `flexmark-empty-template.docx` from
`empty.md` and `empty.xml`
-0.50.24
--------
+## 0.50.24
* Fix: update docx4j to version 8.1.2
* Fix: update jsoup to version 1.11.3
-0.50.22
--------
+## 0.50.22
* Fix: Attributes with spaces after `{` generated wrong previous text offsets
-0.50.20
--------
+## 0.50.20
* Fix: [#357, HTML to markdown and removed nested list]
* Remove: `FlexmarkHtmlConverter.EXT_TABLES` unused conversion option.
@@ -282,8 +293,7 @@ flexmark-java
* Add: `AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES` default `true`, if false will not
parse attributes after the fenced code info string
-0.50.18
--------
+## 0.50.18
* Add: `flexmark-html2md-converter` module which implements HTML to Markdown conversion with an
extension API to allow customizing the conversion process. Sample:
@@ -291,8 +301,7 @@ flexmark-java
* Fix: [#313, Ability to override tags processing in FlexmarkHtmlParser]
* Fix: deprecate the old `flexmark-html-parser` classes
-0.50.16
--------
+## 0.50.16
* Fix: GitLab block quotes should have `>>>` as termination, not `<<<`, macros are still
terminated by `>>>` to allow nested block quotes in macros. Affects:
@@ -388,26 +397,22 @@ flexmark-java
abstract implementation in `RichCharSequenceBase` and implementation in
`RichCharSequenceImpl`.
-0.42.14
--------
+## 0.42.14
* Fix: [#351, Is there any special format requirement for processing html data to markdown]
* Fix: HTML parser converts `a` tags in preformatted text to links, should convert to URL only
-0.42.12
--------
+## 0.42.12
* Fix: [#349, Translation Helper bugs], mix-up between anchors and other non-translating
elements after translation.
-0.42.10
--------
+## 0.42.10
* Fix: [#349, Translation Helper bugs]
* Fix: [#348, WRAP\_AUTO\_LINKS defaults to false, Markdown loses a potential useful link]
-0.42.8
-------
+## 0.42.8
* Add: PDF converter landscape sample [PdfLandscapeConverter.java]
* Fix: revert to OpenHtmlToPDF version 0.0.1-RC15 which is the last Java 7 byte code version
@@ -416,25 +421,21 @@ flexmark-java
* Fix: add explicit `Locale.US` to `String.format()` when using `%d` for integers to prevent
conversion to arabic on Java 11.
-0.42.6
-------
+## 0.42.6
* Fix: [#338, getLineNumber incorrect with Windows end of line separators]
* merge: [#339, PR: Fix to line number when using Windows EOL characters.] thanks to
-0.42.4
-------
+## 0.42.4
* Fix: Trailing URI prefix only auto-links do not get parsed
-0.42.2
-------
+## 0.42.2
* Fix: [#334, CR line separators don't produce line break nodes],
* merge: [#335, PR: Fix CR-only line separator handling] thanks to **[Kijimuna]**
-0.42.0
-------
+## 0.42.0
* Fix: [#332, withOptions forgets about old link resolvers]
* Break: move `com.vladsch.flexmark.Extension` to
@@ -467,8 +468,7 @@ flexmark-java
list will be removed. Used only when using `withOptions()` and providing new options with
this key set. Used during testing to remove default extensions.
-0.40.34
--------
+## 0.40.34
* Fix: [#328, Html2mark - missing newline when paragraph followed by div]
* Fix: [#331, Ability to replace empty \
with \ during html2mark conversion]
@@ -476,37 +476,32 @@ flexmark-java
* Fix: `AutolinkNodePostProcessor` processing links out of order causing sequence end/start
reversal.
-0.40.32
--------
+## 0.40.32
* Fix: compound enumerated references in attributes ids and outside of headings to output with
last enumerated reference ordinal.
-0.40.30
--------
+## 0.40.30
* Fix: limit `EnumeratedReferenceBlock` to single line of text without processing other block
elements.
* Fix: change `Abbreviations` to custom block parser from paragraph pre-processor. Allows
abbreviation definitions without preceding blank line.
-0.40.28
--------
+## 0.40.28
* Add: enumerated reference text in heading to be used with only a format reference, the id is
taken from the heading attributes.
* Add: compound enumerated references for creating legal numbering for enumerated references.
-0.40.26
--------
+## 0.40.26
* Fix: upgrade dependencies
* OpenHtmlToPdf -> 0.0.1-RC19
* docx4j -> 6.1.2
* Add: parse int or default to `Utils.java`
-0.40.24
--------
+## 0.40.24
* Break: test case related classes changed to allow providing URL string for the file resource
used in the text instead of relying on heuristic conversion of resource URL to file path.
@@ -535,6 +530,7 @@ flexmark-java
`PdfConverterExtension.exportToPdf(OutputStream, String, String, DataHolder)` is used to
provide options. For all other calls you need to embed the default css into your HTML string
before exporting to PDF.
+
* Fix: HTML parser link/image conversion to ref link and reference when cannot create a valid
reference fallback to generating explicit link instead.
* Fix: HTML parser ignoring `NONE` for `FlexmarkHtmlParser.EXT_INLINE_LINK` and
@@ -549,19 +545,16 @@ flexmark-java
* Deprecate: `IParse.transferReferences(Document, Document)`, in favour of
`IParse.transferReferences(Document, Document, Boolean)`
-0.40.22
--------
+## 0.40.22
* Fix: merge util tests from [@James-Adam](https://github.com/James-Adam) and fix bugs
* Fix: change to `MutableDataSet.set(DataKey extends T>, T)`
-0.40.20
--------
+## 0.40.20
* Fix: [#316, Github user extension incorrectly formats some text]
* Add: test to make sure previous character to `@` is not `isUnicodeIdentifierPart()`, `-` nor
`.`
-
* Add: `FlexmarkHtmlParser` options:
* Fix: [#318, Ability to disable table caption in FlexmarkHtmlParser],
* Add: `TABLE_CAPTION` option as a convenience alias for `Formatter.FORMAT_TABLE_CAPTION`.
@@ -582,42 +575,32 @@ flexmark-java
* `EXT_INLINE_LINK` and `EXT_INLINE_IMAGE` option default `LinkConversion.MARKDOWN_EXPLICIT`,
specifies type of link and image conversion to apply: `NONE`, `MARKDOWN_EXPLICIT`,
`MARKDOWN_REFERENCE`, `TEXT`, `HTML`
-
* Add: Remove reliance on [YouTrack: IDEA-207453] and instead change resource file URL to path
in `SpecReader` and add a message to all example tests with the file URL with `:xxx` where
`xxx` is the line number of the spec example in the file.
-
* This will print the source location of the test in the console. Clicking the link goes right
to the spec source file and line of the failed test if [Awesome Console] plugin is installed.
-0.40.18
--------
+## 0.40.18
* Add: `EmbeddedAttributeProvider` documentation and add it to the provider's list by default
unless `HtmlRenderer.EMBEDDED_NODE_PROVIDER` is set to false. Add attributes to nodes in the
AST by inserting a `EmbeddedAttributeProvider.EmbeddedNodeAttributes` node with the desired
attributes. See: [NodeInsertingPostProcessorSample.java] for example.
-
* Add: document that `DocxRenderer` emoji with GitHub preferred is not able to download images,
compiling `ImageUtils` library with Java 8 eliminates the problem.
-
* Add: resource file URL to `SpecReader` and add a message to all example tests with the file
URL with `:xxx` where `xxx` is the line number of the spec example in the file.
-
* This will print the source location of the test in the console. Clicking the link goes right
to the spec source file and line of the failed test. Unfortunately this URL will only work in
IntelliJ when JetBrains add this to console to handle such `file://` URLs:
[YouTrack: IDEA-207453]
-
* Fix: [#310, PR: Change URL of GitHub CDN] thanks to @benelog
-
* Fix: `AsideExtension` option keys to be dynamic data keys dependent on corresponding Parser
block quote options for their defaults.
-
* :warning: This can potentially break code relying on versions of the extension before
`0.40.18` because parsing rules can change depending on which block quote options are changed
from their default values.
-
* To ensure independent options for aside blocks and block quotes, set aside options explicitly.
The following will set all aside options to default values, independent from block quote
options:
@@ -631,37 +614,28 @@ flexmark-java
* Deprecate: `Parser.BLOCK_QUOTE_TO_BLANK_LINE`, use more mnemonic
`Parser.BLOCK_QUOTE_EXTEND_TO_BLANK_LINE`
-
* Deprecate: `CustomNode` and `CustomBlock`. `Block` and `Node` should be used directly. The
library aims to make no distinction between core and extension implementations, these classes
add no useful information.
-
* Deprecate: BaseSequence had old named functions which were misleading and duplicated under
proper names:
* `countChars()` -> `countLeading()`
* `countCharsNot()` -> `countLeadingNot()`
* `countCharsReversed()` -> `countTrailing()`
* `countNotCharsReversed()` -> `countTrailingNot()`
-
* First of all they only counted leading characters which the name did not imply. Second they
were duplicated.
-
* Add character counting functions:
-
* `countOfAny()`
* `countOfAnyNot()`
-
* Fix: `DefinitionExtension` does not correctly set the child parse column, causing list items
to be expecting 1 extra space for child item recognition.
-
* Add: `ExtensionConversion.NONE` to suppress any output from corresponding element
-
* Add: `FlexmarkHtmlParser.EXT_MATH`, default `ExtensionConversion.HTML`, for selecting `
element]
-0.40.6
-------
+## 0.40.6
* Fix: `MarkdownTable.appendTable(FormattingAppendable)` to set
`FormattingAppendable.ALLOW_LEADING_WHITESPACE` so indentation prefix is not eliminated.
@@ -735,8 +704,7 @@ flexmark-java
to mark start of attribute assignment to text between `{.}` or `{#}` and the matching
attributes element.
-0.40.4
-------
+## 0.40.4
* Fix: [#295, CoreNodeFormatter does not descend into children on Link nodes]
* `Link`, `LinkRef`, `Image` and `ImageRef` node formatter renderer now descends into child
@@ -745,8 +713,7 @@ flexmark-java
previous rendering for links and images which appends the node characters without descending
into child nodes.
-0.40.2
-------
+## 0.40.2
* Fix: [#294, BlankLine nodes within BlockQuote change in behaviour]
* remove blank lines from AST for `BlockQuote` and `AsideBlock` nodes if
@@ -762,12 +729,10 @@ flexmark-java
* Add: code to return `List` from child nodes of `YamlFrontMatterNode`
* Fix: resolve offsets in `YamlFrontMatterNode` and `YamlFrontMatterValue` nodes.
-0.40.0
-------
+## 0.40.0
* Fix: Java9+ Compatibility, IntelliJ Migration contained in [migrate 0_35_x to 0_40_0.xml], to
use:
-
* copy to IntelliJ application settings to `migrations` subdirectory
* if you have the project which you want to migrate open, then close it
* open the project in IntelliJ Ultimate or Community
@@ -777,120 +742,115 @@ flexmark-java
* select `migrate flexmark-java 0.35.x to 0.40.0`
* press `Run`
* in the refactoring preview tool window that opens hit `Do Refactor`
-
* :warning: In my projects, the IDE can miss some class migrations, especially on files which
are not open. Re-running the migration tends to apply the migration. In cases where migration
is not applied manual editing will be needed. In my projects `Document`, `Node` and
`Formatter` were the problem classes:
-
* `com.vladsch.flexmark.ast.Document` to `com.vladsch.flexmark.util.ast.Document`
* `com.vladsch.flexmark.ast.Node` to `com.vladsch.flexmark.util.ast.Node`
* `com.vladsch.flexmark.formatter.internal.Formatter` to
`com.vladsch.flexmark.formatter.Formatter`
-
* :warning: `flexmark-docx-converter` and `flexmark-pdf-converter` cannot be used with Java 9+
modules because the underlying libraries used have package load conflicts that will be
resolved in a later release.
- * Fix: overlapping packages in different modules, change:
- * `com.vladsch.flexmark.ast.AllNodesVisitor` to `com.vladsch.flexmark.util.ast.AllNodesVisitor`
- * `com.vladsch.flexmark.ast.BlankLine` to `com.vladsch.flexmark.util.ast.BlankLine`
- * `com.vladsch.flexmark.ast.BlankLineContainer` to `com.vladsch.flexmark.util.ast.BlankLineContainer`
- * `com.vladsch.flexmark.ast.Block` to `com.vladsch.flexmark.util.ast.Block`
- * `com.vladsch.flexmark.ast.BlockContent` to `com.vladsch.flexmark.util.ast.BlockContent`
- * `com.vladsch.flexmark.ast.BlockNodeVisitor` to `com.vladsch.flexmark.util.ast.BlockNodeVisitor`
- * `com.vladsch.flexmark.ast.Content` to `com.vladsch.flexmark.util.ast.Content`
- * `com.vladsch.flexmark.ast.ContentNode` to `com.vladsch.flexmark.util.ast.ContentNode`
- * `com.vladsch.flexmark.ast.CustomBlock` to `com.vladsch.flexmark.util.ast.CustomBlock`
- * `com.vladsch.flexmark.ast.CustomNode` to `com.vladsch.flexmark.util.ast.CustomNode`
- * `com.vladsch.flexmark.ast.DescendantNodeIterable` to `com.vladsch.flexmark.util.ast.DescendantNodeIterable`
- * `com.vladsch.flexmark.ast.DescendantNodeIterator` to `com.vladsch.flexmark.util.ast.DescendantNodeIterator`
- * `com.vladsch.flexmark.ast.Node` to `com.vladsch.flexmark.util.ast.Node`
- * `com.vladsch.flexmark.ast.Document` to `com.vladsch.flexmark.util.ast.Document`
- * `com.vladsch.flexmark.ast.DoNotCollectText` to `com.vladsch.flexmark.util.ast.DoNotCollectText`
- * `com.vladsch.flexmark.ast.DoNotDecorate` to `com.vladsch.flexmark.util.ast.DoNotDecorate`
- * `com.vladsch.flexmark.ast.DoNotLinkDecorate` to `com.vladsch.flexmark.util.ast.DoNotLinkDecorate`
- * `com.vladsch.flexmark.ast.KeepTrailingBlankLineContainer` to `com.vladsch.flexmark.util.ast.KeepTrailingBlankLineContainer`
- * `com.vladsch.flexmark.ast.NodeAdaptedVisitor` to `com.vladsch.flexmark.util.ast.NodeAdaptedVisitor`
- * `com.vladsch.flexmark.ast.NodeAdaptingVisitHandler` to `com.vladsch.flexmark.util.ast.NodeAdaptingVisitHandler`
- * `com.vladsch.flexmark.ast.NodeAdaptingVisitor` to `com.vladsch.flexmark.util.ast.NodeAdaptingVisitor`
- * `com.vladsch.flexmark.ast.NodeIterable` to `com.vladsch.flexmark.util.ast.NodeIterable`
- * `com.vladsch.flexmark.ast.NodeIterator` to `com.vladsch.flexmark.util.ast.NodeIterator`
- * `com.vladsch.flexmark.ast.NodeRepository` to `com.vladsch.flexmark.util.ast.NodeRepository`
- * `com.vladsch.flexmark.ast.NodeVisitor` to `com.vladsch.flexmark.util.ast.NodeVisitor`
- * `com.vladsch.flexmark.ast.NodeVisitorBase` to `com.vladsch.flexmark.util.ast.NodeVisitorBase`
- * `com.vladsch.flexmark.ast.NonRenderingInline` to `com.vladsch.flexmark.util.ast.NonRenderingInline`
- * `com.vladsch.flexmark.ast.Package` to `com.vladsch.flexmark.util.ast.Package`
- * `com.vladsch.flexmark.ast.ReferenceNode` to `com.vladsch.flexmark.util.ast.ReferenceNode`
- * `com.vladsch.flexmark.ast.ReferencingNode` to `com.vladsch.flexmark.util.ast.ReferencingNode`
- * `com.vladsch.flexmark.ast.VisitHandler` to `com.vladsch.flexmark.util.ast.VisitHandler`
- * `com.vladsch.flexmark.ast.Visitor` to `com.vladsch.flexmark.util.ast.Visitor`
- * `com.vladsch.flexmark.IParse` to `com.vladsch.flexmark.util.IParse`
- * `com.vladsch.flexmark.IRender` to `com.vladsch.flexmark.util.IRender`
-
- * Fix: API classes under `internal` package:
- * `flexmark`:
- * `com.vladsch.flexmark.internal.inline.AsteriskDelimiterProcessor` to `com.vladsch.flexmark.parser.core.delimiter.AsteriskDelimiterProcessor`
- * `com.vladsch.flexmark.internal.inline.EmphasisDelimiterProcessor` to `com.vladsch.flexmark.parser.core.delimiter.EmphasisDelimiterProcessor`
- * `com.vladsch.flexmark.internal.Bracket` to `com.vladsch.flexmark.parser.core.delimiter.Bracket`
- * `com.vladsch.flexmark.internal.Delimiter` to `com.vladsch.flexmark.parser.core.delimiter.Delimiter`
- * `com.vladsch.flexmark.internal.ThematicBreakOptions` to `com.vladsch.flexmark.internal.ThematicBreakParser.ThematicBreakOptions`
- * `com.vladsch.flexmark.internal.HeadingOptions` to `com.vladsch.flexmark.internal.HeadingParser.HeadingOptions`
- * `com.vladsch.flexmark.internal.BlockParserTracker` to `com.vladsch.flexmark.parser.block.BlockParserTracker`
- * `com.vladsch.flexmark.internal.BlockQuoteParser` to `com.vladsch.flexmark.parser.core.BlockQuoteParser`
- * `com.vladsch.flexmark.internal.DocumentBlockParser` to `com.vladsch.flexmark.parser.core.DocumentBlockParser`
- * `com.vladsch.flexmark.internal.FencedCodeBlockParser` to `com.vladsch.flexmark.parser.core.FencedCodeBlockParser`
- * `com.vladsch.flexmark.internal.HeadingParser` to `com.vladsch.flexmark.parser.core.HeadingParser`
- * `com.vladsch.flexmark.internal.IndentedCodeBlockParser` to `com.vladsch.flexmark.parser.core.IndentedCodeBlockParser`
- * `com.vladsch.flexmark.internal.ListBlockParser` to `com.vladsch.flexmark.parser.core.ListBlockParser`
- * `com.vladsch.flexmark.internal.ListItemParser` to `com.vladsch.flexmark.parser.core.ListItemParser`
- * `com.vladsch.flexmark.internal.ParagraphParser` to `com.vladsch.flexmark.parser.core.ParagraphParser`
- * `com.vladsch.flexmark.internal.ThematicBreakParser` to `com.vladsch.flexmark.parser.core.ThematicBreakParser`
- * `com.vladsch.flexmark.internal.HtmlBlockParser` to `com.vladsch.flexmark.parser.core.HtmlBlockParser`
- * `com.vladsch.flexmark.internal.ReferencePreProcessorFactory` to `com.vladsch.flexmark.parser.core.ReferencePreProcessorFactory`
- * `com.vladsch.flexmark.internal.InlineParserImpl` to `com.vladsch.flexmark.parser.internal.InlineParserImpl`
- * `com.vladsch.flexmark.internal.BlockStartImpl` to `com.vladsch.flexmark.parser.internal.BlockStartImpl`
- * `com.vladsch.flexmark.internal.BlockContinueImpl` to `com.vladsch.flexmark.parser.internal.BlockContinueImpl`
- * `com.vladsch.flexmark.internal.LinkRefProcessorData` to `com.vladsch.flexmark.parser.internal.LinkRefProcessorData`
- * `com.vladsch.flexmark.internal.CommonmarkInlineParser` to `com.vladsch.flexmark.parser.internal.CommonmarkInlineParser`
- * `com.vladsch.flexmark.internal.MatchedBlockParserImpl` to `com.vladsch.flexmark.parser.internal.MatchedBlockParserImpl`
- * `com.vladsch.flexmark.internal.PostProcessorManager` to `com.vladsch.flexmark.parser.internal.PostProcessorManager`
- * `com.vladsch.flexmark.internal.DocumentParser` to `com.vladsch.flexmark.parser.internal.DocumentParser`
- * `com.vladsch.flexmark.internal.HtmlDeepParser` to `com.vladsch.flexmark.parser.internal.HtmlDeepParser`
-
- * resource `/com/vladsch/flexmark/internal/util/entities.properties` to `/com/vladsch/flexmark/util/html/entities.properties` in `flexmark-util` module
-
- * `flexmark-docx-converter`
- * `com.vladsch.flexmark.docx.converter.internal.DocxRenderer` to `com.vladsch.flexmark.docx.converter.DocxRenderer`
- * `com.vladsch.flexmark.docx.converter.internal.DocxRendererPhase` to `com.vladsch.flexmark.docx.converter.DocxRendererPhase`
- * `com.vladsch.flexmark.docx.converter.internal.NodeDocxRendererHandler` to `com.vladsch.flexmark.docx.converter.NodeDocxRendererHandler`
- * `com.vladsch.flexmark.docx.converter.internal.DocxRendererOptions` to `com.vladsch.flexmark.docx.converter.DocxRendererOptions`
-
- * `flexmark-formatter`
- * `com.vladsch.flexmark.formatter.internal.Formatter` to `com.vladsch.flexmark.formatter.Formatter`
- * `com.vladsch.flexmark.formatter.internal.FormattingPhase` to `com.vladsch.flexmark.formatter.FormattingPhase`
- * `com.vladsch.flexmark.formatter.internal.MarkdownWriter` to `com.vladsch.flexmark.formatter.MarkdownWriter`
- * `com.vladsch.flexmark.formatter.internal.NodeFormatter` to `com.vladsch.flexmark.formatter.NodeFormatter`
- * `com.vladsch.flexmark.formatter.internal.NodeFormatterContext` to `com.vladsch.flexmark.formatter.NodeFormatterContext`
- * `com.vladsch.flexmark.formatter.internal.NodeFormatterFactory` to `com.vladsch.flexmark.formatter.NodeFormatterFactory`
- * `com.vladsch.flexmark.formatter.internal.NodeFormattingHandler` to `com.vladsch.flexmark.formatter.NodeFormattingHandler`
- * `com.vladsch.flexmark.formatter.internal.NodeRepositoryFormatter` to `com.vladsch.flexmark.formatter.NodeRepositoryFormatter`
- * `com.vladsch.flexmark.formatter.internal.PhasedNodeFormatter` to `com.vladsch.flexmark.formatter.PhasedNodeFormatter`
- * `com.vladsch.flexmark.formatter.internal.NodeFormatterSubContext` to `com.vladsch.flexmark.formatter.NodeFormatterSubContext`
+* Fix: overlapping packages in different modules, change:
+* `com.vladsch.flexmark.ast.AllNodesVisitor` to `com.vladsch.flexmark.util.ast.AllNodesVisitor`
+* `com.vladsch.flexmark.ast.BlankLine` to `com.vladsch.flexmark.util.ast.BlankLine`
+* `com.vladsch.flexmark.ast.BlankLineContainer` to `com.vladsch.flexmark.util.ast.BlankLineContainer`
+* `com.vladsch.flexmark.ast.Block` to `com.vladsch.flexmark.util.ast.Block`
+* `com.vladsch.flexmark.ast.BlockContent` to `com.vladsch.flexmark.util.ast.BlockContent`
+* `com.vladsch.flexmark.ast.BlockNodeVisitor` to `com.vladsch.flexmark.util.ast.BlockNodeVisitor`
+* `com.vladsch.flexmark.ast.Content` to `com.vladsch.flexmark.util.ast.Content`
+* `com.vladsch.flexmark.ast.ContentNode` to `com.vladsch.flexmark.util.ast.ContentNode`
+* `com.vladsch.flexmark.ast.CustomBlock` to `com.vladsch.flexmark.util.ast.CustomBlock`
+* `com.vladsch.flexmark.ast.CustomNode` to `com.vladsch.flexmark.util.ast.CustomNode`
+* `com.vladsch.flexmark.ast.DescendantNodeIterable` to `com.vladsch.flexmark.util.ast.DescendantNodeIterable`
+* `com.vladsch.flexmark.ast.DescendantNodeIterator` to `com.vladsch.flexmark.util.ast.DescendantNodeIterator`
+* `com.vladsch.flexmark.ast.Node` to `com.vladsch.flexmark.util.ast.Node`
+* `com.vladsch.flexmark.ast.Document` to `com.vladsch.flexmark.util.ast.Document`
+* `com.vladsch.flexmark.ast.DoNotCollectText` to `com.vladsch.flexmark.util.ast.DoNotCollectText`
+* `com.vladsch.flexmark.ast.DoNotDecorate` to `com.vladsch.flexmark.util.ast.DoNotDecorate`
+* `com.vladsch.flexmark.ast.DoNotLinkDecorate` to `com.vladsch.flexmark.util.ast.DoNotLinkDecorate`
+* `com.vladsch.flexmark.ast.KeepTrailingBlankLineContainer` to `com.vladsch.flexmark.util.ast.KeepTrailingBlankLineContainer`
+* `com.vladsch.flexmark.ast.NodeAdaptedVisitor` to `com.vladsch.flexmark.util.ast.NodeAdaptedVisitor`
+* `com.vladsch.flexmark.ast.NodeAdaptingVisitHandler` to `com.vladsch.flexmark.util.ast.NodeAdaptingVisitHandler`
+* `com.vladsch.flexmark.ast.NodeAdaptingVisitor` to `com.vladsch.flexmark.util.ast.NodeAdaptingVisitor`
+* `com.vladsch.flexmark.ast.NodeIterable` to `com.vladsch.flexmark.util.ast.NodeIterable`
+* `com.vladsch.flexmark.ast.NodeIterator` to `com.vladsch.flexmark.util.ast.NodeIterator`
+* `com.vladsch.flexmark.ast.NodeRepository` to `com.vladsch.flexmark.util.ast.NodeRepository`
+* `com.vladsch.flexmark.ast.NodeVisitor` to `com.vladsch.flexmark.util.ast.NodeVisitor`
+* `com.vladsch.flexmark.ast.NodeVisitorBase` to `com.vladsch.flexmark.util.ast.NodeVisitorBase`
+* `com.vladsch.flexmark.ast.NonRenderingInline` to `com.vladsch.flexmark.util.ast.NonRenderingInline`
+* `com.vladsch.flexmark.ast.Package` to `com.vladsch.flexmark.util.ast.Package`
+* `com.vladsch.flexmark.ast.ReferenceNode` to `com.vladsch.flexmark.util.ast.ReferenceNode`
+* `com.vladsch.flexmark.ast.ReferencingNode` to `com.vladsch.flexmark.util.ast.ReferencingNode`
+* `com.vladsch.flexmark.ast.VisitHandler` to `com.vladsch.flexmark.util.ast.VisitHandler`
+* `com.vladsch.flexmark.ast.Visitor` to `com.vladsch.flexmark.util.ast.Visitor`
+* `com.vladsch.flexmark.IParse` to `com.vladsch.flexmark.util.IParse`
+* `com.vladsch.flexmark.IRender` to `com.vladsch.flexmark.util.IRender`
+
+* Fix: API classes under `internal` package:
+* `flexmark`:
+* `com.vladsch.flexmark.internal.inline.AsteriskDelimiterProcessor` to `com.vladsch.flexmark.parser.core.delimiter.AsteriskDelimiterProcessor`
+* `com.vladsch.flexmark.internal.inline.EmphasisDelimiterProcessor` to `com.vladsch.flexmark.parser.core.delimiter.EmphasisDelimiterProcessor`
+* `com.vladsch.flexmark.internal.Bracket` to `com.vladsch.flexmark.parser.core.delimiter.Bracket`
+* `com.vladsch.flexmark.internal.Delimiter` to `com.vladsch.flexmark.parser.core.delimiter.Delimiter`
+* `com.vladsch.flexmark.internal.ThematicBreakOptions` to `com.vladsch.flexmark.internal.ThematicBreakParser.ThematicBreakOptions`
+* `com.vladsch.flexmark.internal.HeadingOptions` to `com.vladsch.flexmark.internal.HeadingParser.HeadingOptions`
+* `com.vladsch.flexmark.internal.BlockParserTracker` to `com.vladsch.flexmark.parser.block.BlockParserTracker`
+* `com.vladsch.flexmark.internal.BlockQuoteParser` to `com.vladsch.flexmark.parser.core.BlockQuoteParser`
+* `com.vladsch.flexmark.internal.DocumentBlockParser` to `com.vladsch.flexmark.parser.core.DocumentBlockParser`
+* `com.vladsch.flexmark.internal.FencedCodeBlockParser` to `com.vladsch.flexmark.parser.core.FencedCodeBlockParser`
+* `com.vladsch.flexmark.internal.HeadingParser` to `com.vladsch.flexmark.parser.core.HeadingParser`
+* `com.vladsch.flexmark.internal.IndentedCodeBlockParser` to `com.vladsch.flexmark.parser.core.IndentedCodeBlockParser`
+* `com.vladsch.flexmark.internal.ListBlockParser` to `com.vladsch.flexmark.parser.core.ListBlockParser`
+* `com.vladsch.flexmark.internal.ListItemParser` to `com.vladsch.flexmark.parser.core.ListItemParser`
+* `com.vladsch.flexmark.internal.ParagraphParser` to `com.vladsch.flexmark.parser.core.ParagraphParser`
+* `com.vladsch.flexmark.internal.ThematicBreakParser` to `com.vladsch.flexmark.parser.core.ThematicBreakParser`
+* `com.vladsch.flexmark.internal.HtmlBlockParser` to `com.vladsch.flexmark.parser.core.HtmlBlockParser`
+* `com.vladsch.flexmark.internal.ReferencePreProcessorFactory` to `com.vladsch.flexmark.parser.core.ReferencePreProcessorFactory`
+* `com.vladsch.flexmark.internal.InlineParserImpl` to `com.vladsch.flexmark.parser.internal.InlineParserImpl`
+* `com.vladsch.flexmark.internal.BlockStartImpl` to `com.vladsch.flexmark.parser.internal.BlockStartImpl`
+* `com.vladsch.flexmark.internal.BlockContinueImpl` to `com.vladsch.flexmark.parser.internal.BlockContinueImpl`
+* `com.vladsch.flexmark.internal.LinkRefProcessorData` to `com.vladsch.flexmark.parser.internal.LinkRefProcessorData`
+* `com.vladsch.flexmark.internal.CommonmarkInlineParser` to `com.vladsch.flexmark.parser.internal.CommonmarkInlineParser`
+* `com.vladsch.flexmark.internal.MatchedBlockParserImpl` to `com.vladsch.flexmark.parser.internal.MatchedBlockParserImpl`
+* `com.vladsch.flexmark.internal.PostProcessorManager` to `com.vladsch.flexmark.parser.internal.PostProcessorManager`
+* `com.vladsch.flexmark.internal.DocumentParser` to `com.vladsch.flexmark.parser.internal.DocumentParser`
+* `com.vladsch.flexmark.internal.HtmlDeepParser` to `com.vladsch.flexmark.parser.internal.HtmlDeepParser`
+
+* resource `/com/vladsch/flexmark/internal/util/entities.properties` to `/com/vladsch/flexmark/util/html/entities.properties` in `flexmark-util` module
+
+* `flexmark-docx-converter`
+* `com.vladsch.flexmark.docx.converter.internal.DocxRenderer` to `com.vladsch.flexmark.docx.converter.DocxRenderer`
+* `com.vladsch.flexmark.docx.converter.internal.DocxRendererPhase` to `com.vladsch.flexmark.docx.converter.DocxRendererPhase`
+* `com.vladsch.flexmark.docx.converter.internal.NodeDocxRendererHandler` to `com.vladsch.flexmark.docx.converter.NodeDocxRendererHandler`
+* `com.vladsch.flexmark.docx.converter.internal.DocxRendererOptions` to `com.vladsch.flexmark.docx.converter.DocxRendererOptions`
+
+* `flexmark-formatter`
+* `com.vladsch.flexmark.formatter.internal.Formatter` to `com.vladsch.flexmark.formatter.Formatter`
+* `com.vladsch.flexmark.formatter.internal.FormattingPhase` to `com.vladsch.flexmark.formatter.FormattingPhase`
+* `com.vladsch.flexmark.formatter.internal.MarkdownWriter` to `com.vladsch.flexmark.formatter.MarkdownWriter`
+* `com.vladsch.flexmark.formatter.internal.NodeFormatter` to `com.vladsch.flexmark.formatter.NodeFormatter`
+* `com.vladsch.flexmark.formatter.internal.NodeFormatterContext` to `com.vladsch.flexmark.formatter.NodeFormatterContext`
+* `com.vladsch.flexmark.formatter.internal.NodeFormatterFactory` to `com.vladsch.flexmark.formatter.NodeFormatterFactory`
+* `com.vladsch.flexmark.formatter.internal.NodeFormattingHandler` to `com.vladsch.flexmark.formatter.NodeFormattingHandler`
+* `com.vladsch.flexmark.formatter.internal.NodeRepositoryFormatter` to `com.vladsch.flexmark.formatter.NodeRepositoryFormatter`
+* `com.vladsch.flexmark.formatter.internal.PhasedNodeFormatter` to `com.vladsch.flexmark.formatter.PhasedNodeFormatter`
+* `com.vladsch.flexmark.formatter.internal.NodeFormatterSubContext` to `com.vladsch.flexmark.formatter.NodeFormatterSubContext`
-0.35.10
--------
+
+## 0.35.10
* Add: compound enum refs and enum refs in headings without element reference.
-0.35.8
-------
+## 0.35.8
* Fix: missing test scope on flexmark-test-utils
-0.35.6
-------
+## 0.35.6
* Fix: `MarkdownTable.fillMissingColumns()` would add empty columns not setting the proper
source offset, causing later `MarkdownTable.addTrackedOffset(int)` to fail
@@ -902,61 +862,47 @@ flexmark-java
* Add: `FlexmarkHtmlParser.SKIP_CHAR_ESCAPE`, default `false`. When enabled will not escape
special characters.
-0.35.4
-------
+## 0.35.4
* Add: html/ui helpers flexmark-util for use with Swing UI HTML generation
-0.35.2
-------
+## 0.35.2
* Fix: base64 encoding function in `ImageUtils` to remove `\n` from encoded string.
-
* Fix: Aside extension to use new `KeepTrailingBlankLineContainer` marker for blocks which have
a prefix which allows attribution of blank lines to the block.
-
* Add: sample for converting inline nodes to text nodes in node post processor. Thanks to
**[@markkolich](https://github.com/markkolich)**.
* Merged [#288, PR: Adding TokenReplacingPostProcessorSample and UnderlineExtensionSample]
-
* Fix: `ReplacedTextMapper` can only handle a single replacement set, while AutoLinkExtension
was applying a replacement on top of already replaced text.
-
* :warning: Now any functions which perform replacements using `ReplacedTextMapper` need to
check if the passed in text mapper `isModified()` and if this is the case invoke
`startNestedReplacement(BasedSequence)`.
-
* Add: log4j logging to `DocumentParser`, when debug is enabled parser will log resulting AST
after parsing, paragraph pre-processing, block pre-processing and inline processing to isolate
where a problem is introduced by an extension into the AST.
-
* Breaking: :warning: Potentially breaking change for some code if parsing with
`Parser.BLANK_LINES_IN_AST` enabled. Last blank line of blocks is now moved out to the parent
block. Greatest effect is on list items which previously held on to their last blank line,
except for the last item in the list. Now all trailing blank lines are moved out to the parent
list. Therefore children of lists can be list items or blank lines, not just list items. This
makes blank line attribution more consistent.
-
* Fix: [#287, ''flexmark-html-parser' The module has an mistake]
-
* Fix: empty table cells now contain a space so that the position of the cell's text in the file
is not lost.
-
* Fix: Formatter inline elements leaving embedded EOL sequences when
`Formatter.KEEP_SOFT_LINE_BREAKS` is false.
-
* Fix: trailing blank lines in block quotes are now left inside the block quote instead of
moving them up to the document level if these blank lines are unambiguously attributable to
the block quote by having a block quote prefix on the line. Unlike other block elements where
a trailing blank line is not attributable to the block element, block quotes have explicit
prefix which identifies the blank line as part of the block quote.
-
* :warning: trailing blank line nodes will be appended to the block quote even if
`Parser.BLANK_LINES_IN_AST` is `false` to force block quote to span the blank lines as the
only way to extend the block quote enclosed characters.
-0.35.0
-------
+## 0.35.0
* Test: navigation
* Next/Prev Tab
@@ -1014,8 +960,7 @@ flexmark-java
* Fix: Jira and YouTrack converters ignored `HtmlRenderer.RECHECK_UNDEFINED_REFERENCES`
* Add: Base64 conversion to image utils
-0.34.58
--------
+## 0.34.58
* Fix: possible index out of bounds on segmented sequences
* Add: HTML parser option to modify id attribute before output. Used to strip prefix
@@ -1031,69 +976,58 @@ flexmark-java
allows `[TOC]` and `[TOC]: #` to be matched without case sensitivity. The syntax for toc
options is still case sensitive.
-0.34.56
--------
+## 0.34.56
* Fix: [#274, FlexmarkHtmlParser can not handle escaped tags correctly], now `<`, `>` and `&`
are also escaped.
-0.34.53
--------
+## 0.34.53
* Change: revert docx4j to 3.3.4 in docx4j-3 branch
-0.34.52
--------
+## 0.34.52
* Fix: intermittent NPE when including macro with table in table
-0.34.51
--------
+## 0.34.51
* Fix: intermittent NPE when including macro with table in table in docx4j-3 branch
-0.34.50
--------
+## 0.34.50
* Add: `HtmlRenderer.NO_P_TAGS_USE_BR`, default `false`. When enabled instead of wrapping loose
paragraphs in `
` tag adds 2 x ` ` after paragraph.
* Fix: extension auto links would not be processed if paragraph had inline parser processed auto
links before.
-0.34.49
--------
+## 0.34.49
* Change: revert docx4j to 3.3.6 in docx4j-3 branch
-0.34.48
--------
+## 0.34.48
* Add: `Macros` extension handling to docx converter. Macros allow nesting of block elements
inside tables.
-0.34.46
--------
+## 0.34.46
* Add: `flexmark-ext-macros` extension to allow macro definition and inclusion in inline
contexts. [Extensions: Macros](../../wiki/Extensions#macros)
* Fix: `Link.setTextChars(BasedSequence)` was trimming the string before setting `Link.text`.
Now the full untrimmed text is used.
-0.34.44
--------
+## 0.34.44
* Fix: [#271, Regression? Comments are preserved in 0.26.4 but removed in 0.34.40]
* Fix: formatter HTML comments in non-translating mode did not output comment markers
* Fix: treat protocol prefix at the end of line as a valid link.
-0.34.42
--------
+## 0.34.42
* Add: url parsing to `AutoLink` to set other link parts of the node like: pageref, anchor
marker and anchor
-0.34.40
--------
+## 0.34.40
* Fix: add `HtmlRenderer.HEADER_ID_GENERATOR_NON_ASCII_TO_LOWERCASE`, default `true`. When set
to `false` changes the default header id generator to not convert non-ascii alphabetic
@@ -1101,26 +1035,22 @@ flexmark-java
* Fix: add `HtmlRenderer.HEADER_ID_GENERATOR_NON_ASCII_TO_LOWERCASE` set to `false` to `GitHub`
and `GitHubDoc` parser profiles.
-0.34.38
--------
+## 0.34.38
* Fix: docx conversion of hyperlinks did not take relationship part into account when optimizing
rel references causing invalid rel ids to be used if the same link was included in multiple
contexts.
-0.34.36
--------
+## 0.34.36
* Fix: docx conversion of footnote refs in tables to footnotes which contained links generated
invalid docx.
-0.34.34
--------
+## 0.34.34
* Change: docx4j library version to 6.0.1
-0.34.32
--------
+## 0.34.32
* Fix: change anonymous classes to static classes in `CoreNodeDocxRenderer`
* Add: test case for `Parser.SPACE_IN_LINK_URLS` to validate allowing spaces in URLs
@@ -1129,8 +1059,7 @@ flexmark-java
* Fix: Docx Converter remove hardcoded "CENTER" alignment for table headings overriding the
`Table Heading` style provided alignment.
-0.34.30
--------
+## 0.34.30
* Fix: [#268, Pipe characters are not escaped in Table (FlexmarkHtmlParser)]
* Fix: escape pipe characters in text (to avoid accidental use as table or other markup) when
@@ -1147,8 +1076,7 @@ flexmark-java
are output for formatting/rendering with respect to blank line before/after control.
* Fix: `GitLab` block quote parser bug for terminating sequence.
-0.34.28
--------
+## 0.34.28
* Add: html parser options to specify how to generate some markdown formatting elements, default
for all is `ExtensionConversion.MARKDOWN`:
@@ -1159,18 +1087,14 @@ flexmark-java
* `EXT_INLINE_INS` - ins
* `EXT_INLINE_SUB` - sub
* `EXT_INLINE_SUP` - sup
-
* Available settings:
-
* `ExtensionConversion.MARKDOWN` - convert to markdown
* `ExtensionConversion.TEXT` - convert to inner text
* `ExtensionConversion.HTML` - leave HTML as is
-
* Corresponding `SKIP_` options have been deprecated since their function is duplicated by new
options.
-0.34.26
--------
+## 0.34.26
* Fix: Add `DoNotLinkDecorate` to `Code` for preventing AutoLink extension from decorating
inline code with autolinks.
@@ -1178,8 +1102,7 @@ flexmark-java
`BasedSequenceImpl.lastIndexOfAnyNot(CharSequence)` were using `indexOf...` instead of
`lastIndexOf...`
-0.34.24
--------
+## 0.34.24
* Fix: `BasedSequenceImpl.countCharsReversed(char, int, int)` and
`BasedSequenceImpl.countNotCharsReversed(char, int, int)` to not return -1, should return 0
@@ -1187,13 +1110,11 @@ flexmark-java
* Add: `GitLabExtension`, Documented in
[Extensions: Gitlab Flavoured Markdown](../../wiki/Extensions#gitlab-flavoured-markdown)
-0.34.22
--------
+## 0.34.22
* Add: OSGi module support thanks to [@klcodanr](https://github.com/klcodanr)
-0.34.20
--------
+## 0.34.20
* Add: renderer type equivalences for allowing new renderer types which override existing ones.
Now "YOUTRACK" is defined as an override of "JIRA" by `YouTrackConverterExtension`
@@ -1206,8 +1127,7 @@ flexmark-java
* `HtmlRenderer.addRenderTypeEquivalence(MutableDataHolder, String, String)` add new to old
renderer type mapping.
-0.34.18
--------
+## 0.34.18
* Add: html parser options to suppress generating some markdown formatting elements, default for
all is false:
@@ -1229,25 +1149,21 @@ flexmark-java
generated markdown text.
* Fix: html parser did not add a blank line before first list item of the first list
-0.34.16
--------
+## 0.34.16
* Fix: [#254, customized HTML\_BLOCK\_TAGS Parser option seems not taken into account]
-0.34.14
--------
+## 0.34.14
* Fix:
[#252, GfmUser and GfmIssue are not recognized if immediately followed by non-space character]
character, change regex to allow word break after user and issue
-0.34.12
--------
+## 0.34.12
* Fix: merge [#249, support Jira links titles] thanks to @qwazer
-0.34.10
--------
+## 0.34.10
* Fix: [#247, Admonition Expression may lack a part of the text.]
* Add: `TocExtension.TOC_CONTENT`, `TocExtension.TOC_LIST`, `SimTocExtension.TOC_CONTENT`,
@@ -1261,31 +1177,27 @@ flexmark-java
* Add: `TocExtension.LIST_CLASS` default `""`, class attribute to use on table of content `ul`
or `ol` element, duplicated as `SimTocExtension.LIST_CLASS`
-0.34.8
-------
+## 0.34.8
* Fix: [#220, Jekyll Tag "include"]
* Fix: [#245, Markdown output of multiple Definition Lists has a problem that list items merge.]
Blank lines were removed if `Parser.BLANK_LINES_IN_AST` is `false`
-0.34.6
-------
+## 0.34.6
* Fix: [#243, Markdown output of ImageRef syntax referencing ID is incorrect]
* Fix: [#244, Duplicate footnotes have the problem of HTML ID collision conflict.] Now each
footnote reference adds a back references and the id of the back reference has `-#` suffix
added except for the first back-reference, where `#` is an integer from 1..N
-0.34.4
-------
+## 0.34.4
* Add: media tags extension thanks to Cornelia Schultz (GitHub @CorneliaXaos)
* Change: convert class methods to static when possible
* Fix: [#239, flexmark-ext-youtube-embedded missing test case for '@' usage.]
* Fix: add ability to escape `@` for youtube links.
-0.34.2
-------
+## 0.34.2
* Fix: update nexus staging plugin to 1.6.7
* Fix: move nexus-staging plugin to deploy profile so it is not needed for ci test build
@@ -1293,15 +1205,14 @@ flexmark-java
* Fix: for matched parenthesis destination link parsing, only treat backslash as escape if
followed by characters which can be escaped.
-0.34.0
-------
+## 0.34.0
* Fix: table formatter for translations to insert a space if the translated text is empty.
* Add: changed regex for parsing unquoted HTML attribute value to exclude `{}`.
* Add: translation formatting awareness to: abbreviation, admonition, attributes, emoji,
enumerated reference footnotes and tables extensions
* Add: translation API sample:
- [TranslationSample.java](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/TranslationSample.java)
+ [TranslationSample.java](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/TranslationSample.java)
* Fix: `AttributesExtension` incorrectly parsed consecutive attributes as a single element
* Add: `TranslationHandlerFactory` to allow format options to be passed for custom handler
creation.
@@ -1315,8 +1226,7 @@ flexmark-java
* Add: to html parser recognition that `` is an emoji
shortcut generated by flexmark-java emoji extension and convert it to such.
-0.32.24
--------
+## 0.32.24
* Fix: [#232, List continuation], add `Formatter.LIST_REMOVE_EMPTY_ITEMS`, default `false`. If
`true` then empty list items or list items which only contain a `BlankLine` node are removed
@@ -1324,8 +1234,7 @@ flexmark-java
* Fix: formatter output of empty list items
* Fix: formatter output of empty loose task list items
-0.32.22
--------
+## 0.32.22
* Fix: [#229, gfm-tasklist extension - add state class to list item]
* Add: `TaskListExtension.ITEM_DONE_CLASS` and `TaskListExtension.ITEM_NOT_DONE_CLASS` `li`
@@ -1335,52 +1244,41 @@ flexmark-java
`TaskListExtension.ITEM_CLASS`
* Add: depreciation of `TaskListExtension.ITEM_CLASS` in favour of
`TaskListExtension.TIGHT_ITEM_CLASS`
-
* Fix: merge [#231, PR: Fix two small bugs in ext-toc]
[@BlueBoxWare](https://github.com/BlueBoxWare)
-
* Add: `TaskListAttributeProviderSample` to `flexmark-java-samples` module.
-
* Add: `GitHubParsingSample` to `flexmark-java-samples` module to show GitHub compatible parser
setup.
-
* Add: `ParserEmulationProfile.GITHUB` to reflect current GitHub profile, effectively it is
`ParserEmulationProfile.COMMONMARK_0_28` with GitHub compatible id generator settings.
-
* Fix: [#221, XSS: Javascript execution through links], add `HtmlRenderer.SUPPRESSED_LINKS`
default `"javascript:.*"`, a regular expression to suppress any links that match. The test
occurs before the link is resolved using a link resolver. Therefore any link matching will be
suppressed before it is resolved. Likewise, a link resolver returning a suppressed link will
not be suppressed since this is up to the custom link resolver to handle.
-
* Suppressed links will render only the child nodes, effectively `[Something
New](javascript:alert(1))` will render as if it was `Something New`.
-
* Link suppression based on URL prefixes does not apply to HTML inline or block elements. Use
HTML suppression options for this.
-
* Add: `AutolinkExtension.IGNORE_LINKS` default `""`, a regex expression to match link text
which should not be auto-linked. This can include full urls like `www.google.com` or parts by
including wildcard match patterns. Any recognized auto-link which matches the expression will
be rendered as text.
-0.32.20
--------
+## 0.32.20
* Fix: [#225, BlankLine nodes within IndentedCodeBlock]
-0.32.18
--------
+## 0.32.18
* Fix: [#216, Wrong source positions for Tables with empty TableHead/TableBody]
-0.32.16
--------
+## 0.32.16
* Fix: change all javadoc/overview.html to be generated from javadoc/overview.md files.
* Fix: admonition.css remove non-existent `horiz-align` property.
* Add:
- [HtmlToMarkdownSample.java](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/HtmlToMarkdownSample.java)
+ [HtmlToMarkdownSample.java](https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/HtmlToMarkdownSample.java)
* Add: `HtmlRenderer.HEADER_ID_GENERATOR_NON_DASH_CHARS`, default `""`. Any characters in the
string will be preserved and passed through to the heading ID.
* Fix: `ParserEmulationProfile.GITHUB_DOC` now sets
@@ -1388,8 +1286,7 @@ flexmark-java
`HtmlRenderer.HEADER_ID_GENERATOR_NON_DASH_CHARS` to `"_"` to match current GitHub heading id
generation rules.
-0.32.14
--------
+## 0.32.14
* Change: `AdmonitionExtension.WITH_LEAD_SPACES_INTERRUPTS_ITEM_PARAGRAPH` to
`AdmonitionExtension.WITH_SPACES_INTERRUPTS_ITEM_PARAGRAPH`
@@ -1399,8 +1296,7 @@ flexmark-java
* Fix: [#213, Attributes element does not allow spaces before closing }]
* Fix: update to open html to pdf 0.0.1-RC12
-0.32.12
--------
+## 0.32.12
* Add: `DocxRenderer.TABLE_PREFERRED_WIDTH_PCT` default `0`, if `0` then table width is `auto`,
otherwise specifies percent of page width.
@@ -1408,8 +1304,7 @@ flexmark-java
* Add: `DocxRenderer.TABLE_STYLE` default `""`, if not empty then table then table style will be
set to this value and default cell borders will not be generated.
-0.32.10
--------
+## 0.32.10
* Add: `AdmonitionBlock` getters/setters for `titleOpeningMarker`, `title`, `titleClosingMarker`
* Fix: `AdmonitionNodeRenderer` remove erroneous, extra ``
@@ -1420,45 +1315,36 @@ flexmark-java
* ADMONITION_TITLE_PART - heading title span
* ADMONITION_BODY_PART - admonition body div
-0.32.8
-------
+## 0.32.8
* Add: [Admonition Extension](https://github.com/vsch/flexmark-java/wiki/Extensions#admonition)
To create block-styled side content. For complete documentation please see the
[Admonition Extension, Material for MkDocs] documentation.
-0.32.6
-------
+## 0.32.6
* Add: `DocxRenderer.PREFIX_WWW_LINKS`, default `true`, when true adds `http://` to link
addresses which start with `www.`
-
* Fix: `DocxRenderer` some images would not be embedded and generate a CRC Error when loaded via
URL vs file.
-0.32.4
-------
+## 0.32.4
* Fix: [#207, Issue extension doesn't support windows new lines], same for Gfm User extension.
-0.32.2
-------
+## 0.32.2
* Add: `EmojiExtension.ATTR_IMAGE_CLASS`, default `""`, if not empty will set the image tag
class attribute to this value.
-
* Fix: when image type was set to unicode then unicode char would be used for a shortcut even
when that shortcut was not defined for requested shortcut type: github or ecs.
-
* Fix: update to docx4j version 3.3.6
-0.32.0
-------
+## 0.32.0
* **API Change**: removed `EmojiCheatSheet` class to replace with `EmojiShortcuts` which has
better referencing for GitHub shortcuts and unicode chars for all emojis from
[emoji-cross-reference](https://github.com/vsch/emoji-cross-reference)
-
* Removed: `EmojiExtension.USE_IMAGE_URL`
* Add: `EmojiExtension.USE_SHORTCUT_TYPE`, default `EmojiShortcutType.EMOJI_CHEAT_SHEET`,
select type of shortcuts:
@@ -1476,14 +1362,11 @@ flexmark-java
* `EmojiImageType.UNICODE_ONLY` convert to unicode and if there is no unicode treat as
invalid emoji shortcut
* `EmojiImageType.UNICODE_FALLBACK_TO_IMAGE` convert to unicode and if no unicode use image.
-
* **API Change**: removed `HtmlRenderer.WRAP_TIGHT_ITEM_PARAGRAPH_IN_SPAN`, it was only needed
to have somewhere to set attributes for tight item text for `Attributes` which now implement
intelligent span wrapping of text.
-
* **Change**: `AttributesExtension.ASSIGN_TEXT_ATTRIBUTES`, default `true`. Set to `false` for
backward compatibility.
-
* When `true` attribute assignment rules to nodes are changed to allow text elements to get
attributes. If an attribute element is spaced from the previous plain text element `some text
{attributes}` then attributes are for the parent of the text. If they are attached to the text
@@ -1491,20 +1374,15 @@ flexmark-java
span. Within an inline element same rules apply: `**bold text {attr}**` are for the strong
emphasis span, while `**bold text{attr}**` will wrap the text between the strong emphasis
tags, in a span with given attributes.
-
* If a plain text span is interrupted by an HTML comment then it is considered as two separate
plain text spans. ie. `some text{attr}` will result in `some text` rendering.
-
* Full spec:
[ext_attributes_ast_spec](flexmark-ext-attributes/src/test/resources/ext_attributes_ast_spec.md)
-
* Fix: Attributes, when they are first child then delete leading spaces of following node first
rendered child will have leading spaces.
-
* Add: Attribute syntax option allows `Attributes` on reference definition so that all elements
referencing it, inherit the attributes.
-
* To assign attributes to a reference definition you need to leave a blank line between the
reference definition and the attributes element, placed by itself and followed by a blank
line.
@@ -1527,7 +1405,6 @@ flexmark-java
output attributes extension syntax for attribute names that are matched by the regex.
* did not output a line end at start of `
`, this tended to splice text in div to previous
element.
-
* Add: Emoji Extension support to DocxRenderer.
* Add: Emoji Cheat Sheet images to resources in DocxRender jar, default configuration will
resolve emoji image files to the files in the jar.
@@ -1537,81 +1414,62 @@ flexmark-java
* Add: `DocxRenderer.DOC_EMOJI_IMAGE_VERT_SIZE`, default `1.05`, size of emoji image as a
factor of line height at point of insertion.
-0.30.0
-------
+## 0.30.0
* Fix: [#198, StringIndexOutOfBoundsException] in `AbbreviationExtension` if abbreviation
definition had an empty abbreviation.
-
* API Change: Refactoring of Interfaces to allow extensions only providing link resolver,
attribute provider and html id generator to be re-used by the `DocxRenderer` and
`HtmlRenderer` without modifications other than changing the `implemented` extension from
`HtmlRenderer.HtmlRendererExtension` to `RendererExtension`
-
* `AttributesProviderFactory` pass only `LinkResolverContext` instead of
`NodeRenderingContext` to allow for attribute provider extensions to be re-used with
`DocxRender`
-
* `HeadIdGenerator` pass only `LinkResolverContext` instead of `NodeRenderingContext` to allow
for header id generator provider extensions to be re-used with `DocxRender`
-
* new `RendererExtension` with only ability to register html id generator, link resolver and
attribute provider. Such an extension can be used as is with `HtmlRenderer` and
`DocxRenderer`
-
* `RendererExtension.extend(RendererBuilder, String)` method of these gets passed
`RendererBuilder` instead of `HtmlRenderer.Builder`
-
* extensions that implement both `RendererExtension` and `HtmlRendererExtension` will have
only have the html renderer extension `extend` method called.
-
* Add: `flexmark-ext-aside` handling to DocxConverter
-
* Fix: DocxConverter formatting around footnote reference would be applied to footnote text
-
* Add: `DocxRenderer.LOCAL_HYPERLINK_MISSING_HIGHLIGHT`, default `"red"` to highlight in
document hyperlinks with missing targets. Set to `""` to disable this. NOTE: must be one of
the 8 named colors used by Word or it might complain.
-
* Add: `DocxRenderer.LOCAL_HYPERLINK_MISSING_FORMAT`, default `"Missing target id: #%s"` to
change the tooltip text of the missing hyperlink. `%s` will be replaced with the reference id
of the link.
-
* Fix: DocxConverter self referencing ref anchors should be converted to bookmark references in
the docx
-
* Add: DocxConverter now supports `AttributesExtension` and `EnumeratedReferenceExtension` by
converting id attributes to bookmarks and enumerated reference links to hyperlinks to
bookmarks.
-
* Change: Enumerated references which are missing the definition for their type now default to
`type #` where # is the reference ordinal instead of just `#`.
-
* Add: Enumerated links now have title set to the text value of the reference.
-
* Add: DocxConverter options to control heading id generation to resolve anchor refs to document
anchors
* `DocxRenderer.HTML_ID_GENERATOR`, default `HtmlIdGenerator instance`, the id generator to
use for generating heading ids.
-
* `DocxRenderer.LOCAL_HYPERLINK_SUFFIX`, default `""`, used to add a suffix to hyperlink
bookmark names, except ones linking to first heading in a document. Only needed if you have
some post processor on the docx adding suffixes to bookmark names.
+* `DocxRenderer.FIRST_HEADING_ID_SUFFIX`, default `""`, used to add a suffix to the id of the
+first heading of the document and any hyperlinks to it.
+-->
+
For convenience these `HtmlRenderer` keys are aliased through `DocxRenderer`, keep in mind that
setting either will affect both keys. For information on these keys see
[`HtmlRenderer` options](https://github.com/vsch/flexmark-java/wiki/Extensions#renderer)
* `DocxRenderer.HEADER_ID_GENERATOR_RESOLVE_DUPES`, default `true`,
-
* `DocxRenderer.HEADER_ID_GENERATOR_TO_DASH_CHARS`, default `" -_"`
-
* `DocxRenderer.HEADER_ID_GENERATOR_NO_DUPED_DASHES`, default `false`
-
* Add: DocxConverter options to re-map standard style names to user defined ones.
* `DocxRenderer.DEFAULT_STYLE`, default "Normal"
* `DocxRenderer.LOOSE_PARAGRAPH_STYLE`, default "ParagraphTextBody"
@@ -1626,11 +1484,11 @@ setting either will affect both keys. For information on these keys see
* `DocxRenderer.FOOTNOTE_STYLE`, default "Footnote"
+* `DocxRenderer.BULLET_LIST_STYLE`, default "BulletList"
+* `DocxRenderer.BLOCK_QUOTE_BULLET_LIST_STYLE`, default "QuotationsBulletList"
+* `DocxRenderer.NUMBERED_LIST_STYLE`, default "NumberedList"
+* `DocxRenderer.BLOCK_QUOTE_NUMBERED_LIST_STYLE`, default "QuotationsNumberedList"
+-->
* `DocxRenderer.BOLD_STYLE`, default "StrongEmphasis"
* `DocxRenderer.ITALIC_STYLE`, default "Emphasis"
* `DocxRenderer.STRIKE_THROUGH_STYLE`, default "Strikethrough"
@@ -1692,14 +1550,20 @@ setting either will affect both keys. For information on these keys see
[#351, Is there any special format requirement for processing html data to markdown]: https://github.com/vsch/flexmark-java/issues/351
[#357, HTML to markdown and removed nested list]: https://github.com/vsch/flexmark-java/issues/357
[#362, ArrayIndexOutOfBoundsException in BasedSequence.indexOfAll]: https://github.com/vsch/flexmark-java/issues/362
+[#372, \[Regression?\] Attributes extension not applied to \`code\` tag of code blocks]: https://github.com/vsch/flexmark-java/issues/372
+[#376, convert markdown to html]: https://github.com/vsch/flexmark-java/issues/376
+[#381, StackOverflowError with long base64 image and LINKS\_ALLOW\_MATCHED\_PARENTHESES disabled]: https://github.com/vsch/flexmark-java/issues/381
+[#382, Is there an option for number of whitespaces needed to create sub-lists?]: https://github.com/vsch/flexmark-java/issues/382
[Admonition Extension, Material for MkDocs]: https://squidfunk.github.io/mkdocs-material/extensions/admonition/
[Awesome Console]: https://plugins.jetbrains.com/plugin/7677-awesome-console "Awesome Console"
-[HtmlToMarkdownCustomizedSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/HtmlToMarkdownCustomizedSample.java
+[HtmlToMarkdownCustomizedSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/HtmlToMarkdownCustomizedSample.java
[Kijimuna]: https://github.com/Kijimuna
+[NodeInsertingPostProcessorSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/NodeInsertingPostProcessorSample.java
+[PdfLandscapeConverter.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/java/samples/PdfLandscapeConverter.java
+[YouTrack: IDEA-207453]: https://youtrack.jetbrains.com/issue/IDEA-207453 "Add Conversion of ref anchor to UrlFilter for file line navigation"
[migrate 0_35_x to 0_40_0.xml]: /assets/migrations/migrate%20flexmark-java%200_35_x%20to%200_40_0.xml
[migrate flexmark-java 0_40_x to 0_42_0]: https://github.com/vsch/flexmark-java/blob/master/assets/migrations/migrate%20flexmark-java%200_40_x%20to%200_42_0.xml
[migrate flexmark-java 0_42_x to 0_50_0.xml]: https://github.com/vsch/flexmark-java/blob/master/assets/migrations/migrate%20flexmark-java%200_42_x%20to%200_50_0.xml
-[NodeInsertingPostProcessorSample.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/NodeInsertingPostProcessorSample.java
-[PdfLandscapeConverter.java]: https://github.com/vsch/flexmark-java/blob/master/flexmark-java-samples/src/com/vladsch/flexmark/samples/PdfLandscapeConverter.java
-[YouTrack: IDEA-207453]: https://youtrack.jetbrains.com/issue/IDEA-207453 "Add Conversion of ref anchor to UrlFilter for file line navigation"
+[#384, Markdown parser produces invalid HTML]: https://github.com/vsch/flexmark-java/issues/384
+
diff --git a/flexmark-all/pom.xml b/flexmark-all/pom.xml
index 707b5f660..20d26873b 100644
--- a/flexmark-all/pom.xml
+++ b/flexmark-all/pom.xml
@@ -7,7 +7,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-all
@@ -21,197 +21,197 @@
com.vladsch.flexmarkflexmark
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-abbreviation
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-admonition
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-anchorlink
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-aside
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-attributes
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-autolink
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-definition
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-emoji
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-enumerated-reference
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-escaped-character
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-footnotes
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gfm-issues
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gfm-strikethrough
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gfm-tables
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gfm-tasklist
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gfm-users
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-gitlab
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-jekyll-front-matter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-jekyll-tag
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-media-tags
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-macros
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-ins
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-xwiki-macros
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-superscript
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-tables
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-toc
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-typographic
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-wikilink
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-yaml-front-matter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-ext-youtube-embedded
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-formatter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-html-parser
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-html2md-converter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-jira-converter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-pdf-converter
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-profile-pegdown
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-util
- 0.50.42
+ 0.50.50com.vladsch.flexmarkflexmark-youtrack-converter
- 0.50.42
+ 0.50.50
diff --git a/flexmark-docx-converter/pom.xml b/flexmark-docx-converter/pom.xml
index df2fcc5eb..0f1bbf195 100644
--- a/flexmark-docx-converter/pom.xml
+++ b/flexmark-docx-converter/pom.xml
@@ -5,7 +5,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-docx-converter
diff --git a/flexmark-docx-converter/src/main/java/com/vladsch/flexmark/docx/converter/internal/CoreNodeDocxRenderer.java b/flexmark-docx-converter/src/main/java/com/vladsch/flexmark/docx/converter/internal/CoreNodeDocxRenderer.java
index 946af1229..f3ad2ced1 100644
--- a/flexmark-docx-converter/src/main/java/com/vladsch/flexmark/docx/converter/internal/CoreNodeDocxRenderer.java
+++ b/flexmark-docx-converter/src/main/java/com/vladsch/flexmark/docx/converter/internal/CoreNodeDocxRenderer.java
@@ -901,14 +901,15 @@ private void renderURL(BasedSequence urlSrc, DocxRendererContext docx, String li
}
private void render(AutoLink node, DocxRendererContext docx) {
- String url = node.getChars().unescape();
+ String url = node.getText().unescape();
addRunAttributeFormatting(node, docx);
renderURL(node.getChars(), docx, url);
}
private void render(MailLink node, DocxRendererContext docx) {
addRunAttributeFormatting(node, docx);
- renderURL(node.getChars(), docx, "mailto:" + node.getChars().unescape());
+ String text = node.getText().unescape();
+ renderURL(node.getChars(), docx, "mailto:" + text, text);
}
private void render(Link node, DocxRendererContext docx) {
diff --git a/flexmark-docx-converter/src/test/resources/docx_converter_ast_spec.md b/flexmark-docx-converter/src/test/resources/docx_converter_ast_spec.md
index d32ad2156..0773a1863 100644
--- a/flexmark-docx-converter/src/test/resources/docx_converter_ast_spec.md
+++ b/flexmark-docx-converter/src/test/resources/docx_converter_ast_spec.md
@@ -8,7 +8,7 @@ license: '[CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/)'
---
-## DocxConverter
+# DocxConverter
Converts markdown to docx
@@ -1148,7 +1148,7 @@ with some text
- <http://example.com>
+ http://example.com
@@ -2091,6 +2091,38 @@ with some text
````````````````````````````````
+### Mail
+
+Mail link
+
+```````````````````````````````` example Mail: 1
+prefix vladimir@vladsch.com suffix
+
+.
+
+
+
+
+
+
+ prefix
+
+
+
+
+
+
+ vladimir@vladsch.com
+
+
+
+ suffix
+
+
+
+````````````````````````````````
+
+
## Images
Web URL
diff --git a/flexmark-ext-abbreviation/pom.xml b/flexmark-ext-abbreviation/pom.xml
index 55ec1de9c..1730630c6 100644
--- a/flexmark-ext-abbreviation/pom.xml
+++ b/flexmark-ext-abbreviation/pom.xml
@@ -4,7 +4,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-ext-abbreviation
diff --git a/flexmark-ext-admonition/pom.xml b/flexmark-ext-admonition/pom.xml
index 1dfed6039..c59de33e5 100644
--- a/flexmark-ext-admonition/pom.xml
+++ b/flexmark-ext-admonition/pom.xml
@@ -4,7 +4,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-ext-admonition
diff --git a/flexmark-ext-anchorlink/pom.xml b/flexmark-ext-anchorlink/pom.xml
index 089a75bec..bdb05dd84 100644
--- a/flexmark-ext-anchorlink/pom.xml
+++ b/flexmark-ext-anchorlink/pom.xml
@@ -4,7 +4,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-ext-anchorlink
@@ -28,7 +28,7 @@
com.vladsch.flexmarkflexmark-jira-converter
- 0.50.42
+ 0.50.50test
diff --git a/flexmark-ext-aside/pom.xml b/flexmark-ext-aside/pom.xml
index 3fecf4e76..c343a1b72 100644
--- a/flexmark-ext-aside/pom.xml
+++ b/flexmark-ext-aside/pom.xml
@@ -4,7 +4,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-ext-aside
diff --git a/flexmark-ext-attributes/pom.xml b/flexmark-ext-attributes/pom.xml
index ec5d9b55b..50a11da79 100644
--- a/flexmark-ext-attributes/pom.xml
+++ b/flexmark-ext-attributes/pom.xml
@@ -4,7 +4,7 @@
com.vladsch.flexmarkflexmark-java
- 0.50.42
+ 0.50.50flexmark-ext-attributes
diff --git a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/AttributesExtension.java b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/AttributesExtension.java
index adc41eb1f..8d5d9af6e 100644
--- a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/AttributesExtension.java
+++ b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/AttributesExtension.java
@@ -7,7 +7,6 @@
import com.vladsch.flexmark.html.RendererExtension;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.KeepType;
-import com.vladsch.flexmark.util.builder.Extension;
import com.vladsch.flexmark.util.data.DataKey;
import com.vladsch.flexmark.util.data.MutableDataHolder;
@@ -27,7 +26,8 @@ public class AttributesExtension implements Parser.ParserExtension
public static final DataKey NODE_ATTRIBUTES = new DataKey<>("NODE_ATTRIBUTES", NodeAttributeRepository::new);
public static final DataKey ATTRIBUTES_KEEP = new DataKey<>("ATTRIBUTES_KEEP", KeepType.FIRST); // standard option to allow control over how to handle duplicates
public static final DataKey ASSIGN_TEXT_ATTRIBUTES = new DataKey<>("ASSIGN_TEXT_ATTRIBUTES", true); // assign attributes to text if previous is not a space
- public static final DataKey FENCED_CODE_INFO_ATTRIBUTES = new DataKey<>("FENCED_CODE_INFO_ATTRIBUTES", true); // assign attributes found at end of fenced code info strings
+ public static final DataKey FENCED_CODE_INFO_ATTRIBUTES = new DataKey<>("FENCED_CODE_INFO_ATTRIBUTES", false); // assign attributes found at end of fenced code info strings
+ public static final DataKey FENCED_CODE_ADD_ATTRIBUTES = new DataKey<>("FENCED_CODE_ADD_ATTRIBUTES", FencedCodeAddType.ADD_TO_PRE_CODE); // assign attributes to pre/code tag
public static final DataKey WRAP_NON_ATTRIBUTE_TEXT = new DataKey<>("WRAP_NON_ATTRIBUTE_TEXT", true);
public static final DataKey USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER = new DataKey<>("USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER", false);
@@ -40,7 +40,10 @@ public static AttributesExtension create() {
@Override
public void parserOptions(MutableDataHolder options) {
-
+ if (options.contains(FENCED_CODE_INFO_ATTRIBUTES) && options.get(FENCED_CODE_INFO_ATTRIBUTES) && !options.contains(FENCED_CODE_ADD_ATTRIBUTES)) {
+ // change default to pre only, to add to code use attributes after info
+ options.set(FENCED_CODE_ADD_ATTRIBUTES, FencedCodeAddType.ADD_TO_PRE);
+ }
}
@Override
diff --git a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/FencedCodeAddType.java b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/FencedCodeAddType.java
new file mode 100644
index 000000000..5d48ebd89
--- /dev/null
+++ b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/FencedCodeAddType.java
@@ -0,0 +1,16 @@
+package com.vladsch.flexmark.ext.attributes;
+
+public enum FencedCodeAddType {
+ ADD_TO_PRE_CODE(true, true),
+ ADD_TO_PRE(true, false),
+ ADD_TO_CODE(false, true),
+ ;
+
+ public final boolean addToPre;
+ public final boolean addToCode;
+
+ FencedCodeAddType(boolean isEmojiCheatSheet, boolean addToCode) {
+ this.addToPre = isEmojiCheatSheet;
+ this.addToCode = addToCode;
+ }
+}
diff --git a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesAttributeProvider.java b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesAttributeProvider.java
index 5a481e688..461089474 100644
--- a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesAttributeProvider.java
+++ b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesAttributeProvider.java
@@ -21,15 +21,18 @@
public class AttributesAttributeProvider implements AttributeProvider {
private final NodeAttributeRepository nodeAttributeRepository;
+ private final AttributesOptions attributeOptions;
public AttributesAttributeProvider(LinkResolverContext context) {
DataHolder options = context.getOptions();
+ attributeOptions = new AttributesOptions(options);
nodeAttributeRepository = AttributesExtension.NODE_ATTRIBUTES.getFrom(options);
}
@Override
public void setAttributes(Node node, AttributablePart part, Attributes attributes) {
- if (part != CoreNodeRenderer.CODE_CONTENT) {
+ // regression bug, issue #372, add option, default to both as before
+ if (part == CoreNodeRenderer.CODE_CONTENT ? attributeOptions.fencedCodeAddAttributes.addToCode : attributeOptions.fencedCodeAddAttributes.addToPre) {
ArrayList nodeAttributesList = nodeAttributeRepository.get(node);
if (nodeAttributesList != null) {
// add these as attributes
diff --git a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesOptions.java b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesOptions.java
index 8f96c94e2..c3d2f3f98 100644
--- a/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesOptions.java
+++ b/flexmark-ext-attributes/src/main/java/com/vladsch/flexmark/ext/attributes/internal/AttributesOptions.java
@@ -1,6 +1,7 @@
package com.vladsch.flexmark.ext.attributes.internal;
import com.vladsch.flexmark.ext.attributes.AttributesExtension;
+import com.vladsch.flexmark.ext.attributes.FencedCodeAddType;
import com.vladsch.flexmark.util.data.DataHolder;
import com.vladsch.flexmark.util.data.MutableDataHolder;
import com.vladsch.flexmark.util.data.MutableDataSetter;
@@ -10,12 +11,14 @@ class AttributesOptions implements MutableDataSetter {
public final boolean wrapNonAttributeText;
public final boolean useEmptyImplicitAsSpanDelimiter;
public final boolean fencedCodeInfoAttributes;
+ public final FencedCodeAddType fencedCodeAddAttributes;
public AttributesOptions(DataHolder options) {
assignTextAttributes = AttributesExtension.ASSIGN_TEXT_ATTRIBUTES.getFrom(options);
wrapNonAttributeText = AttributesExtension.WRAP_NON_ATTRIBUTE_TEXT.getFrom(options);
useEmptyImplicitAsSpanDelimiter = AttributesExtension.USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER.getFrom(options);
fencedCodeInfoAttributes = AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES.getFrom(options);
+ fencedCodeAddAttributes = AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES.getFrom(options);
}
@Override
@@ -24,6 +27,7 @@ public MutableDataHolder setIn(MutableDataHolder dataHolder) {
dataHolder.set(AttributesExtension.WRAP_NON_ATTRIBUTE_TEXT, wrapNonAttributeText);
dataHolder.set(AttributesExtension.USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER, useEmptyImplicitAsSpanDelimiter);
dataHolder.set(AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES, fencedCodeInfoAttributes);
+ dataHolder.set(AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES, fencedCodeAddAttributes);
return dataHolder;
}
}
diff --git a/flexmark-ext-attributes/src/test/java/com/vladsch/flexmark/ext/attributes/ComboExtAttributesSpecTest.java b/flexmark-ext-attributes/src/test/java/com/vladsch/flexmark/ext/attributes/ComboExtAttributesSpecTest.java
index 3003e3e37..6ed88c479 100644
--- a/flexmark-ext-attributes/src/test/java/com/vladsch/flexmark/ext/attributes/ComboExtAttributesSpecTest.java
+++ b/flexmark-ext-attributes/src/test/java/com/vladsch/flexmark/ext/attributes/ComboExtAttributesSpecTest.java
@@ -35,7 +35,7 @@ public class ComboExtAttributesSpecTest extends ComboSpecTestCase {
TablesExtension.create()
));
- private static final Map optionsMap = new HashMap();
+ private static final Map optionsMap = new HashMap<>();
static {
optionsMap.put("anchors", new MutableDataSet()
.set(Parser.EXTENSIONS, Arrays.asList(AnchorLinkExtension.create(), AttributesExtension.create(), TocExtension.create(), EmojiExtension.create()))
@@ -47,6 +47,10 @@ public class ComboExtAttributesSpecTest extends ComboSpecTestCase {
optionsMap.put("dont-wrap-non-attributes", new MutableDataSet().set(AttributesExtension.WRAP_NON_ATTRIBUTE_TEXT, false));
optionsMap.put("empty-implicit-delimiters", new MutableDataSet().set(AttributesExtension.USE_EMPTY_IMPLICIT_AS_SPAN_DELIMITER, true));
optionsMap.put("no-info-attributes", new MutableDataSet().set(AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES, false));
+ optionsMap.put("info-attributes", new MutableDataSet().set(AttributesExtension.FENCED_CODE_INFO_ATTRIBUTES, true));
+ optionsMap.put("fenced-code-to-both", new MutableDataSet().set(AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES, FencedCodeAddType.ADD_TO_PRE_CODE));
+ optionsMap.put("fenced-code-to-pre", new MutableDataSet().set(AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES, FencedCodeAddType.ADD_TO_PRE));
+ optionsMap.put("fenced-code-to-code", new MutableDataSet().set(AttributesExtension.FENCED_CODE_ADD_ATTRIBUTES, FencedCodeAddType.ADD_TO_CODE));
optionsMap.put("src-pos", new MutableDataSet().set(HtmlRenderer.SOURCE_POSITION_ATTRIBUTE, "md-pos"));
}
diff --git a/flexmark-ext-attributes/src/test/resources/ext_attributes_ast_spec.md b/flexmark-ext-attributes/src/test/resources/ext_attributes_ast_spec.md
index b3d130afd..8d584b105 100644
--- a/flexmark-ext-attributes/src/test/resources/ext_attributes_ast_spec.md
+++ b/flexmark-ext-attributes/src/test/resources/ext_attributes_ast_spec.md
@@ -2557,20 +2557,20 @@ Document[0, 128]
Fenced code info attributes
-```````````````````````````````` example Fenced Code: 1
+```````````````````````````````` example(Fenced Code: 1) options(info-attributes)
```plantuml {caption="Caption"}
```
.