diff --git a/libraries.gradle b/libraries.gradle
index 41f04255..0424d10b 100644
--- a/libraries.gradle
+++ b/libraries.gradle
@@ -16,9 +16,8 @@ implLibraries = [
commonsText : "org.apache.commons:commons-text:1.8",
guava : 'com.google.guava:guava:27.0.1-android',
jacksonDatabind : 'com.fasterxml.jackson.core:jackson-databind:2.9.10',
- mark2Ascii : "nl.jworks.markdown_to_asciidoc:markdown_to_asciidoc:1.1",
paleo : "ch.netzwerg:paleo-core:0.14.0",
- pegdown : "org.pegdown:pegdown:1.6.0",
+ flexmarkJava : "com.vladsch.flexmark:flexmark-all:0.62.2",
slf4j : "org.slf4j:slf4j-api:1.7.28",
swaggerV2 : "io.swagger:swagger-parser:1.0.47",
swaggerV2Converter : "io.swagger.parser.v3:swagger-parser-v2-converter:2.0.15",
diff --git a/openapi2markup/src/main/resources/io/github/swagger2markup/config/default.properties b/openapi2markup/src/main/resources/io/github/swagger2markup/config/default.properties
index f20adc21..171ec097 100644
--- a/openapi2markup/src/main/resources/io/github/swagger2markup/config/default.properties
+++ b/openapi2markup/src/main/resources/io/github/swagger2markup/config/default.properties
@@ -26,7 +26,6 @@ swagger2markup.propertyOrderBy=NATURAL
swagger2markup.responseOrderBy=NATURAL
swagger2markup.listDelimiterEnabled=false
swagger2markup.listDelimiter=,
-swagger2markup.asciidoc.pegdown.timeoutMillis=2000
swagger2markup.generatedExamplesEnabled=false
# basic, curl, invoke-webrequest
diff --git a/swagger2markup-builder/build.gradle b/swagger2markup-builder/build.gradle
index 8272e1f8..cc3d897f 100644
--- a/swagger2markup-builder/build.gradle
+++ b/swagger2markup-builder/build.gradle
@@ -8,9 +8,8 @@ dependencies {
implementation implLibraries.commonsCodec
implementation implLibraries.commonsLang3
implementation implLibraries.commonsIO
- implementation implLibraries.mark2Ascii
implementation implLibraries.slf4j
- implementation implLibraries.pegdown
+ implementation implLibraries.flexmarkJava
testImplementation testLibraries.assertjDiff
testImplementation testLibraries.junit
testImplementation testLibraries.logback
diff --git a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/MarkupDocBuilders.java b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/MarkupDocBuilders.java
index 1a20a9bf..583e7b0d 100644
--- a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/MarkupDocBuilders.java
+++ b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/MarkupDocBuilders.java
@@ -78,38 +78,4 @@ public static MarkupDocBuilder documentBuilder(MarkupLanguage markupLanguage, Li
throw new IllegalArgumentException(String.format("Unsupported markup language %s", markupLanguage));
}
}
-
-
- /**
- * Creates a MarkupDocBuilder which uses a custom line separator.
- * If the custom line separator is null, it uses the system line separator.
- * There is a possibility asciidoc generator pegdown (optional) can
- * take more time. The default is set to two seconds. To override pass value greater than two seconds.
- *
- * @param markupLanguage the markup language which is used to generate the files
- * @param lineSeparator the line separator which should be used
- * @param asciidocPegdownTimeoutMillis asciidoc generator timeout
- * @return a MarkupDocBuilder
- */
- public static MarkupDocBuilder documentBuilder(MarkupLanguage markupLanguage, LineSeparator lineSeparator, int asciidocPegdownTimeoutMillis) {
- switch (markupLanguage) {
- case MARKDOWN:
- if (lineSeparator == null)
- return new MarkdownBuilder();
- else
- return new MarkdownBuilder(lineSeparator.toString());
- case ASCIIDOC:
- if (lineSeparator == null)
- return new AsciiDocBuilder(asciidocPegdownTimeoutMillis);
- else
- return new AsciiDocBuilder(lineSeparator.toString(), asciidocPegdownTimeoutMillis);
- case CONFLUENCE_MARKUP:
- if (lineSeparator == null)
- return new ConfluenceMarkupBuilder();
- else
- return new ConfluenceMarkupBuilder(lineSeparator.toString());
- default:
- throw new IllegalArgumentException(String.format("Unsupported markup language %s", markupLanguage));
- }
- }
}
diff --git a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java
index 32f08bcf..bf4448bb 100644
--- a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java
+++ b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java
@@ -60,26 +60,19 @@ public abstract class AbstractMarkupDocBuilder implements MarkupDocBuilder {
protected static final int MAX_TITLE_LEVEL = 5;
protected static final String NEW_LINES = "\\r\\n|\\r|\\n";
protected static final String WHITESPACE = " ";
- protected static final int ASCIIDOC_PEGDOWN_DEFUALT_MILLIS = 2000;
protected StringBuilder documentBuilder = new StringBuilder();
protected String newLine;
- protected int asciidocPegdownTimeoutMillis;
protected Logger logger = LoggerFactory.getLogger(getClass());
protected String anchorPrefix = null;
public AbstractMarkupDocBuilder() {
- this(System.getProperty("line.separator"), ASCIIDOC_PEGDOWN_DEFUALT_MILLIS);
+ this(System.getProperty("line.separator"));
}
public AbstractMarkupDocBuilder(String newLine) {
- this(newLine, ASCIIDOC_PEGDOWN_DEFUALT_MILLIS);
- }
-
- public AbstractMarkupDocBuilder(String newLine, int asciidocPegdownTimeoutMillis) {
this.newLine = newLine;
- this.asciidocPegdownTimeoutMillis = asciidocPegdownTimeoutMillis;
}
protected abstract MarkupLanguage getMarkupLanguage();
@@ -420,7 +413,7 @@ protected String convert(String markupText, MarkupLanguage markupLanguage) {
return markupText;
else {
if (markupLanguage == MarkupLanguage.MARKDOWN && getMarkupLanguage() == MarkupLanguage.ASCIIDOC) {
- return AsciiDocConverterExtension.convertMarkdownToAsciiDoc(markupText, asciidocPegdownTimeoutMillis) + newLine;
+ return AsciiDocConverterExtension.convertMarkdownToAsciiDoc(markupText) + newLine;
} else {
return markupText;
}
diff --git a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocBuilder.java b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocBuilder.java
index 10db0bee..3e7916b7 100644
--- a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocBuilder.java
+++ b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocBuilder.java
@@ -50,25 +50,17 @@ public AsciiDocBuilder() {
super();
}
- public AsciiDocBuilder(int asciidocPegdownTimeoutMillis) {
- super(System.getProperty("line.separator"), asciidocPegdownTimeoutMillis);
- }
-
public AsciiDocBuilder(String newLine) {
super(newLine);
}
- public AsciiDocBuilder(String newLine, int asciidocPegdownTimeoutMillis) {
- super(newLine, asciidocPegdownTimeoutMillis);
- }
-
protected MarkupLanguage getMarkupLanguage() {
return MarkupLanguage.ASCIIDOC;
}
@Override
public MarkupDocBuilder copy(boolean copyBuffer) {
- AsciiDocBuilder builder = new AsciiDocBuilder(newLine, asciidocPegdownTimeoutMillis);
+ AsciiDocBuilder builder = new AsciiDocBuilder(newLine);
if (copyBuffer)
builder.documentBuilder = new StringBuilder(this.documentBuilder);
diff --git a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocConverterExtension.java b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocConverterExtension.java
index 7b88856e..d103c858 100644
--- a/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocConverterExtension.java
+++ b/swagger2markup-builder/src/main/java/io/github/swagger2markup/markup/builder/internal/asciidoc/AsciiDocConverterExtension.java
@@ -1,29 +1,29 @@
package io.github.swagger2markup.markup.builder.internal.asciidoc;
-import org.pegdown.Extensions;
-import org.pegdown.PegDownProcessor;
-import org.pegdown.ast.RootNode;
+import com.vladsch.flexmark.html.HtmlRenderer;
+import com.vladsch.flexmark.parser.Parser;
+import com.vladsch.flexmark.util.ast.Node;
+import com.vladsch.flexmark.util.data.MutableDataSet;
-import nl.jworks.markdown_to_asciidoc.Converter;
-import nl.jworks.markdown_to_asciidoc.ToAsciiDocSerializer;
+public class AsciiDocConverterExtension {
-public class AsciiDocConverterExtension extends Converter {
+ private static final Parser parser;
+ private static final HtmlRenderer renderer;
+
+ static {
+ MutableDataSet options = new MutableDataSet();
+ parser = Parser.builder(options).build();
+ renderer = HtmlRenderer.builder(options).build();
+ }
/**
* Converts markdown to asciidoc.
*
* @param markdown the markdown source to convert
- * @param timeoutMills parsing timeout
* @return asciidoc format
*/
public static String convertMarkdownToAsciiDoc(String markdown, long timeoutMills) {
- PegDownProcessor processor = new PegDownProcessor(Extensions.ALL, timeoutMills);
- // insert blank line before fenced code block if necessary
- if (markdown.contains("```")) {
- markdown = markdown.replaceAll("(?m)(? getPageBreakLocations();
- /**
- * Returns custom timeout value.
- *
- * @return custom timeout value
- */
- int getAsciidocPegdownTimeoutMillis();
-
/**
* Returns format name which should be used to format request example string.
*
diff --git a/swagger2markup-core/src/main/java/io/github/swagger2markup/config/builder/Schema2MarkupConfigBuilder.java b/swagger2markup-core/src/main/java/io/github/swagger2markup/config/builder/Schema2MarkupConfigBuilder.java
index 021c875b..de134f4f 100644
--- a/swagger2markup-core/src/main/java/io/github/swagger2markup/config/builder/Schema2MarkupConfigBuilder.java
+++ b/swagger2markup-core/src/main/java/io/github/swagger2markup/config/builder/Schema2MarkupConfigBuilder.java
@@ -123,7 +123,6 @@ public Schema2MarkupConfigBuilder(final Class selfClass,
Configuration swagger2markupConfiguration = schema2MarkupProperties.getConfiguration().subset(PROPERTIES_PREFIX);
Configuration extensionsConfiguration = swagger2markupConfiguration.subset(EXTENSION_PREFIX);
config.extensionsProperties = new Schema2MarkupProperties(extensionsConfiguration);
- config.asciidocPegdownTimeoutMillis = schema2MarkupProperties.getRequiredInt(ASCIIDOC_PEGDOWN_TIMEOUT);
}
/**
@@ -691,7 +690,6 @@ public static class DefaultSchema2MarkupConfig implements Schema2MarkupConfig {
String separatedDefinitionsFolder;
Character listDelimiter;
boolean listDelimiterEnabled;
- int asciidocPegdownTimeoutMillis;
List pageBreakLocations;
@@ -894,11 +892,6 @@ public List getPageBreakLocations() {
return pageBreakLocations;
}
- @Override
- public int getAsciidocPegdownTimeoutMillis() {
- return asciidocPegdownTimeoutMillis;
- }
-
@Override
public String getRequestExamplesFormat() {
return requestExamplesFormat;
diff --git a/swagger2markup/src/main/java/io/github/swagger2markup/Swagger2MarkupConverter.java b/swagger2markup/src/main/java/io/github/swagger2markup/Swagger2MarkupConverter.java
index 25b040e5..298c2bfb 100644
--- a/swagger2markup/src/main/java/io/github/swagger2markup/Swagger2MarkupConverter.java
+++ b/swagger2markup/src/main/java/io/github/swagger2markup/Swagger2MarkupConverter.java
@@ -400,8 +400,7 @@ public MarkupDocBuilder createMarkupDocBuilder() {
if (config.getLineSeparator() != null) {
lineSeparator = LineSeparator.valueOf(config.getLineSeparator().name());
}
- return MarkupDocBuilders.documentBuilder(markupLanguage, lineSeparator,
- config.getAsciidocPegdownTimeoutMillis()).withAnchorPrefix(config.getAnchorPrefix());
+ return MarkupDocBuilders.documentBuilder(markupLanguage, lineSeparator).withAnchorPrefix(config.getAnchorPrefix());
}
}
diff --git a/swagger2markup/src/main/resources/io/github/swagger2markup/config/default.properties b/swagger2markup/src/main/resources/io/github/swagger2markup/config/default.properties
index fbdae7c8..7077cfcd 100644
--- a/swagger2markup/src/main/resources/io/github/swagger2markup/config/default.properties
+++ b/swagger2markup/src/main/resources/io/github/swagger2markup/config/default.properties
@@ -26,7 +26,6 @@ swagger2markup.propertyOrderBy=NATURAL
swagger2markup.responseOrderBy=NATURAL
swagger2markup.listDelimiterEnabled=false
swagger2markup.listDelimiter=,
-swagger2markup.asciidoc.pegdown.timeoutMillis=2000
swagger2markup.generatedExamplesEnabled=false
# basic, curl, invoke-webrequest