Created
September 4, 2017 13:40
-
-
Save alkemann/e160861f9a5384c7f0ec7e771da2a0f3 to your computer and use it in GitHub Desktop.
A Patch trying to fix markdown code blocks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java (date 1499692487000) | |
+++ src/main/java/io/github/swagger2markup/markup/builder/internal/AbstractMarkupDocBuilder.java (revision ) | |
@@ -227,6 +227,20 @@ | |
return listingBlock(replaceNewLines(text), null); | |
} | |
+ protected void delimitedBlockText(Markup begin, String text, Markup end, boolean skipLeadNewLine) { | |
+ Validate.notBlank(text, "text must not be blank"); | |
+ if (!StringUtils.isBlank(begin.toString())) | |
+ documentBuilder.append(begin); | |
+ if (skipLeadNewLine == false) | |
+ documentBuilder.append(newLine); | |
+ | |
+ documentBuilder.append(replaceNewLines(text)).append(newLine); | |
+ if (!StringUtils.isBlank(end.toString())) | |
+ documentBuilder.append(end).append(newLine); | |
+ documentBuilder.append(newLine); | |
+ | |
+ } | |
+ | |
protected void delimitedBlockText(Markup begin, String text, Markup end) { | |
Validate.notBlank(text, "text must not be blank"); | |
if (!StringUtils.isBlank(begin.toString())) | |
Index: src/test/resources/expected/markdown/test.md | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- src/test/resources/expected/markdown/test.md (date 1499692487000) | |
+++ src/test/resources/expected/markdown/test.md (revision ) | |
@@ -52,8 +52,7 @@ | |
Source code listing | |
``` | |
-``` | |
-java : | |
+```java | |
MarkupDocBuilder builder = MarkupDocBuilders.documentBuilder(MarkupLanguage.MARKDOWN) | |
``` | |
Index: src/main/java/io/github/swagger2markup/markup/builder/internal/markdown/MarkdownBuilder.java | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- src/main/java/io/github/swagger2markup/markup/builder/internal/markdown/MarkdownBuilder.java (date 1499692487000) | |
+++ src/main/java/io/github/swagger2markup/markup/builder/internal/markdown/MarkdownBuilder.java (revision ) | |
@@ -122,18 +122,19 @@ | |
if (admonition != null || title != null) | |
documentBuilder.append(" : ").append(newLine); | |
- delimitedBlockText(new Markup() { | |
+ Markup m = new Markup() { | |
public String toString() { | |
return BLOCK_STYLE.get(style); | |
} | |
- }, text); | |
+ }; | |
+ delimitedBlockText(m, text, m, true); | |
return this; | |
} | |
@Override | |
public MarkupDocBuilder listingBlock(String text, String language) { | |
if (language != null) | |
- text = language + " :" + newLine + text; | |
+ text = language + newLine + text; | |
block(text, MarkupBlockStyle.LISTING); | |
return this; | |
} | |
Index: src/test/java/io/github/swagger2markup/markup/builder/MarkupDocBuilderTest.java | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- src/test/java/io/github/swagger2markup/markup/builder/MarkupDocBuilderTest.java (date 1499692487000) | |
+++ src/test/java/io/github/swagger2markup/markup/builder/MarkupDocBuilderTest.java (revision ) | |
@@ -129,6 +129,19 @@ | |
assertEquals("[[_mdb_test-anchor,text]]<<_mdb_test-anchor,text>>", prefixMarkup); | |
} | |
+ @Test | |
+ public void testMarkdownCodeBlock() throws IOException, URISyntaxException { | |
+ MarkupDocBuilder builder = MarkupDocBuilders.documentBuilder(MarkupLanguage.MARKDOWN); | |
+ | |
+ builder = builder.listingBlock("$o = new Thing();", "php"); | |
+ Path outputFile = Paths.get("build/test/markdown/test2"); | |
+ builder.writeToFileWithoutExtension(builder.addFileExtension(outputFile), StandardCharsets.UTF_8); | |
+ builder.writeToFile(outputFile, StandardCharsets.UTF_8); | |
+ | |
+ Path expectedFile = Paths.get(MarkupDocBuilderTest.class.getResource("/expected/markdown/test2.md").toURI()); | |
+ DiffUtils.assertThatFileIsEqual(expectedFile, builder.addFileExtension(outputFile), "testMarkdown2.html"); | |
+ } | |
+ | |
@Test | |
public void testMarkdown() throws IOException, URISyntaxException { | |
MarkupDocBuilder builder = MarkupDocBuilders.documentBuilder(MarkupLanguage.MARKDOWN); | |
Index: src/test/resources/expected/markdown/test2.md | |
IDEA additional info: | |
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP | |
<+>UTF-8 | |
=================================================================== | |
--- src/test/resources/expected/markdown/test2.md (revision ) | |
+++ src/test/resources/expected/markdown/test2.md (revision ) | |
@@ -0,0 +1,4 @@ | |
+```php | |
+$o = new Thing(); | |
+``` | |
+ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment