Compare commits

..

17 Commits

Author SHA1 Message Date
Robert Winkler
6afe41b7a9 Prepare release 1.1.2 2017-12-04 10:49:06 +01:00
Cas Eliëns
f5aadc2319 Improve code blocks in markdown (#28) 2017-10-10 15:24:28 +02:00
Robert Winkler
0730b94c24 Updated README 2017-10-05 13:11:01 +02:00
Robert Winkler
59c63e8ac0 Released v1.1.1 2017-01-05 14:15:33 +01:00
Robert Winkler
c404740bf1 Updated version from 1.1.0 to 1.1.1-SNAPSHOT 2017-01-02 11:18:24 +01:00
Cas Eliëns
23c72721ad Add page breaks to unit tests 2016-12-23 13:17:26 +01:00
Cas Eliëns
67b5698a16 Add support for page breaks 2016-12-23 13:17:26 +01:00
Robert Winkler
6662eb6e9d Updated docs 2016-12-23 08:16:54 +01:00
Robert Winkler
d712b615d1 Updated bintray badge 2016-12-01 09:17:24 +01:00
Robert Winkler
393fd48d2f Release v1.0.0 2016-11-18 12:56:11 +01:00
Robert Winkler
e5aea526cd Updated version to 1.1.0-SNAPSHOT 2016-11-10 12:18:06 +01:00
Robert Winkler
83d3ee5a50 Changed bold to ** and italic to __ so that special chars in the text are possible 2016-11-10 12:17:33 +01:00
Robert Winkler
fec017886f Updated readme 2016-05-02 12:58:08 +02:00
Robert Winkler
6ee11e2876 Updated readme 2016-04-29 14:17:50 +02:00
Robert Winkler
4ba4b962e5 Updated readme 2016-04-29 14:15:15 +02:00
Robert Winkler
71710a4ba6 Updated readme 2016-04-29 14:11:44 +02:00
Robert Winkler
f8bc0d38e7 Updated readme 2016-04-29 14:10:50 +02:00
19 changed files with 179 additions and 84 deletions

View File

@@ -1,13 +1,13 @@
= MarkupDocBuilder
:author: Robert Winkler
:version: 1.0.0
:version: 1.1.1
:hardbreaks:
image:https://travis-ci.org/Swagger2Markup/markup-document-builder.svg?branch=master["Build Status", link="https://travis-ci.org/Swagger2Markup/markup-document-builder"] image:https://coveralls.io/repos/Swagger2Markup/markup-document-builder/badge.svg["Coverage Status", link="https://coveralls.io/r/Swagger2Markup/markup-document-builder"] image:https://api.codacy.com/project/badge/grade/c56a372454164f21b1b2eec8eb48b370["Codacy code quality", link="https://www.codacy.com/app/robwin/markup-document-builder"] image:https://api.bintray.com/packages/swagger2markup/Maven/markup-document-builder/images/download.svg[link="https://bintray.com/swagger2markup/Maven/markup-document-builder/_latestVersion"] image:http://img.shields.io/badge/license-ASF2-blue.svg["Apache License 2", link="http://www.apache.org/licenses/LICENSE-2.0.txt"] image:https://img.shields.io/badge/Twitter-rbrtwnklr-blue.svg["Twitter", link="https://twitter.com/rbrtwnklr"]
image:https://travis-ci.org/Swagger2Markup/markup-document-builder.svg?branch=master["Build Status", link="https://travis-ci.org/Swagger2Markup/markup-document-builder"] image:https://coveralls.io/repos/Swagger2Markup/markup-document-builder/badge.svg["Coverage Status", link="https://coveralls.io/r/Swagger2Markup/markup-document-builder"] image:https://api.codacy.com/project/badge/grade/c56a372454164f21b1b2eec8eb48b370["Codacy code quality", link="https://www.codacy.com/app/robwin/markup-document-builder"] image:https://api.bintray.com/packages/swagger2markup/Maven/io.github.swagger2markup%3Amarkup-document-builder/images/download.svg[link="https://bintray.com/swagger2markup/Maven/io.github.swagger2markup%3Amarkup-document-builder/_latestVersion"] image:http://img.shields.io/badge/license-ASF2-blue.svg["Apache License 2", link="http://www.apache.org/licenses/LICENSE-2.0.txt"] image:https://img.shields.io/badge/Twitter-rbrtwnklr-blue.svg["Twitter", link="https://twitter.com/rbrtwnklr"]
== Overview
This project is a Markup document builder (AsciiDoc and Markdown). The primary goal of this project is to simplify the creation of Markup documents. The builder is used by https://github.com/RobWin/swagger2markup[swagger2markup].
This project is a Markup document builder (AsciiDoc, Markdown and ConfluenceWiki). The primary goal of this project is to simplify the creation of Markup documents. The builder is used by https://github.com/RobWin/swagger2markup[swagger2markup].
The project requires at least JDK 7.
@@ -29,9 +29,8 @@ The project is published in JCenter and Maven Central.
<url>http://jcenter.bintray.com</url>
</repository>
</repositories>
<dependency>
<groupId>io.github.robwin</groupId>
<groupId>io.github.swagger2markup</groupId>
<artifactId>markup-document-builder</artifactId>
<version>{version}</version>
</dependency>
@@ -45,7 +44,7 @@ repositories {
jcenter()
}
compile "io.github.robwin:markup-document-builder:{version}"
compile "io.github.swagger2markup:markup-document-builder:{version}"
----
=== Using MarkupDocBuilder

View File

@@ -18,4 +18,12 @@
=== Version 0.1.5
* Added SECTION_TITLE_LEVEL4
== Version 1.0.0
== Version 1.1.0
* Changed bold to ** and italic to __ so that special chars in the text are possible
== Version 1.1.1
* Added a method to add page breaks.
== Version 1.1.2
* Improve code blocks in markdown

View File

@@ -7,12 +7,12 @@ buildscript {
classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.11'
classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
}
}
description = 'A Markup (Markdown, AsciiDoc) document builder'
version = '1.0.0'
version = '1.1.2'
group = 'io.github.swagger2markup'
apply plugin: 'java'
@@ -64,5 +64,5 @@ tasks.asciidoctor {
}
task wrapper(type: Wrapper) {
gradleVersion = '2.12'
gradleVersion = '4.3.1'
}

View File

@@ -8,10 +8,10 @@ Date buildTimeAndDate = new Date()
ext {
buildDate = new SimpleDateFormat('yyyy-MM-dd').format(buildTimeAndDate)
buildTime = new SimpleDateFormat('HH:mm:ss.SSSZ').format(buildTimeAndDate)
projectUrl = 'https://github.com/RobWin/markup-document-builder'
licenseUrl = 'https://github.com/RobWin/markup-document-builder/blob/master/LICENSE.txt'
scmUrl = 'https://github.com/RobWin/markup-document-builder.git'
issuesUrl = 'https://github.com/RobWin/markup-document-builder/issues'
projectUrl = 'https://github.com/Swagger2Markup/markup-document-builder'
licenseUrl = 'https://github.com/Swagger2Markup/markup-document-builder/blob/master/LICENSE.txt'
scmUrl = 'https://github.com/Swagger2Markup/markup-document-builder.git'
issuesUrl = 'https://github.com/Swagger2Markup/markup-document-builder/issues'
}
task sourcesJar(type: Jar, dependsOn: classes) {
@@ -97,8 +97,9 @@ bintray {
publish = true //If version should be auto published after an upload
publications = ['mavenJava']
pkg {
repo = 'maven'
name = 'swagger2markup'
repo = 'Maven'
name = 'io.github.swagger2markup:markup-document-builder'
userOrg = 'swagger2markup'
websiteUrl = projectUrl
issueTrackerUrl = issuesUrl
vcsUrl = scmUrl

Binary file not shown.

View File

@@ -1,6 +1,6 @@
#Thu Mar 31 16:37:14 CEST 2016
#Mon Dec 04 10:31:36 CET 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-all.zip

68
gradlew vendored
View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/usr/bin/env sh
##############################################################################
##
@@ -6,12 +6,30 @@
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,26 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -150,11 +154,19 @@ if $cygwin ; then
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
# Escape application args
save ( ) {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
APP_ARGS=$(save "$@")
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

14
gradlew.bat vendored
View File

@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,10 +46,9 @@ echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line

View File

@@ -231,8 +231,8 @@ public interface MarkupDocBuilder {
/**
* Builds a text paragraph.<br>
*
* @param text multi-line text
* @param hardbreaks force hardbreaks on all lines
* @param text multi-line text
* @param hardbreaks force hardbreaks on all lines
* @return this builder
*/
MarkupDocBuilder paragraph(String text, boolean hardbreaks);
@@ -245,28 +245,37 @@ public interface MarkupDocBuilder {
* @return this builder
*/
MarkupDocBuilder paragraph(String text);
/**
* Insert a page break
*
* @return this builder
*/
MarkupDocBuilder pageBreak();
/**
* Builds a block of {@code text} with specified {@code style}.
*
* @param text text
* @param style block style
* @param title an optional title for the block. No title if null.
* @param admonition an optional admonition for the block. No admonition if null.
* @param text text
* @param style block style
* @param title an optional title for the block. No title if null.
* @param admonition an optional admonition for the block. No admonition if null.
* @return this builder
*/
MarkupDocBuilder block(String text, MarkupBlockStyle style, String title, MarkupAdmonition admonition);
/**
* Builds a block of {@code text} with specified {@code style}.<br>
* This is an alias for {@link #block(String, MarkupBlockStyle, String, MarkupAdmonition) block(String, MarkupBlockStyle, null, null)}.
*
* @param text text
* @param style block style
* @param text text
* @param style block style
* @return this builder
*/
MarkupDocBuilder block(String text, MarkupBlockStyle style);
/**
* Builds a source code block using the specified {@code language}.<br>
* Line breaks are respected.
@@ -312,7 +321,7 @@ public interface MarkupDocBuilder {
* @return this builder
*/
MarkupDocBuilder literalText(String text);
/**
* Builds a bold text line.<br>
* This is an alias for {@link #boldTextLine(String, boolean) boldTextLine(text, false)}.
@@ -514,7 +523,7 @@ public interface MarkupDocBuilder {
* If {@code markupLanguage} is different from current builder language, markupText is converted when supported, or conversion is just ignored.<br>
* Currently supported conversions :
* <ul>
* <li> Markdown -&gt; AsciiDoc </li>
* <li> Markdown -&gt; AsciiDoc </li>
* </ul>
* Newlines are normalized in the process.
*

View File

@@ -209,7 +209,7 @@ public abstract class AbstractMarkupDocBuilder implements MarkupDocBuilder {
documentBuilder.append(replaceNewLines(text));
return this;
}
@Override
public MarkupDocBuilder paragraph(String text) {
return paragraph(text, false);
@@ -227,13 +227,29 @@ public abstract class AbstractMarkupDocBuilder implements MarkupDocBuilder {
return listingBlock(replaceNewLines(text), null);
}
protected void delimitedBlockText(Markup begin, String text, Markup end, boolean skipLeadingNewline) {
Validate.notBlank(text, "text must not be blank");
if (!StringUtils.isBlank(begin.toString()))
documentBuilder.append(begin);
if (!skipLeadingNewline)
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()))
documentBuilder.append(begin).append(newLine);
documentBuilder.append(replaceNewLines(text)).append(newLine);
if (!StringUtils.isBlank(end.toString()))
documentBuilder.append(end).append(newLine);
documentBuilder.append(newLine);
}
@@ -385,7 +401,7 @@ public abstract class AbstractMarkupDocBuilder implements MarkupDocBuilder {
}
@Override
public MarkupDocBuilder importMarkup(Reader markupText, MarkupLanguage markupLanguage){
public MarkupDocBuilder importMarkup(Reader markupText, MarkupLanguage markupLanguage) {
Validate.notNull(markupText, "markupText must not be null");
Validate.notNull(markupLanguage, "markupLanguage must not be null");
return importMarkup(markupText, markupLanguage, 0);

View File

@@ -30,8 +30,8 @@ public enum AsciiDoc implements Markup {
TITLE("="),
DOCUMENT_TITLE("= "),
LITERAL("`"),
BOLD("*"),
ITALIC("_"),
BOLD("**"),
ITALIC("__"),
LIST_ENTRY("* "),
CROSS_REFERENCE_START("<<"),
CROSS_REFERENCE_END(">>"),

View File

@@ -96,6 +96,12 @@ public class AsciiDocBuilder extends AbstractMarkupDocBuilder {
return this;
}
@Override
public MarkupDocBuilder pageBreak() {
documentBuilder.append(newLine).append("<<<").append(newLine);
return this;
}
@Override
public MarkupDocBuilder block(String text, final MarkupBlockStyle style, String title, MarkupAdmonition admonition) {
if (admonition != null)

View File

@@ -135,6 +135,12 @@ public final class ConfluenceMarkupBuilder extends AbstractMarkupDocBuilder {
return this;
}
@Override
public MarkupDocBuilder pageBreak() {
documentBuilder.append(newLine).append("<div style='page-break-before:always;'></div>").append(newLine);
return this;
}
@Override
public MarkupDocBuilder block(String text, final MarkupBlockStyle style, String title, MarkupAdmonition admonition) {

View File

@@ -83,7 +83,7 @@ public class MarkdownBuilder extends AbstractMarkupDocBuilder {
sectionTitleLevel(Markdown.TITLE, level, title);
return this;
}
@Override
public MarkupDocBuilder sectionTitleWithAnchorLevel(int level, String title, String anchor) {
sectionTitleWithAnchorLevel(Markdown.TITLE, level, title, anchor);
@@ -103,9 +103,17 @@ public class MarkdownBuilder extends AbstractMarkupDocBuilder {
return this;
}
@Override
public MarkupDocBuilder pageBreak() {
documentBuilder.append(newLine).append("***").append(newLine);
return this;
}
@Override
public MarkupDocBuilder block(String text, final MarkupBlockStyle style, String title, MarkupAdmonition admonition) {
boolean multiline = text.contains(newLine);
if (admonition != null)
documentBuilder.append(StringUtils.capitalize(admonition.name().toLowerCase()));
if (title != null) {
@@ -116,18 +124,27 @@ public class MarkdownBuilder extends AbstractMarkupDocBuilder {
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);
};
if (style == MarkupBlockStyle.LISTING && multiline) {
delimitedBlockText(m, text, m, true);
} else {
delimitedBlockText(m, text, m);
}
return this;
}
@Override
public MarkupDocBuilder listingBlock(String text, String language) {
if (language != null)
text = language + " :" + newLine + text;
text = newLine + text;
if (language != null) {
text = language + text;
}
block(text, MarkupBlockStyle.LISTING);
return this;
}
@@ -137,7 +154,7 @@ public class MarkdownBuilder extends AbstractMarkupDocBuilder {
boldText(Markdown.LITERAL, text);
return this;
}
@Override
public MarkupDocBuilder boldText(String text) {
boldText(Markdown.BOLD, text);

View File

@@ -91,6 +91,7 @@ public class MarkupDocBuilderTest {
.block("Literal", MarkupBlockStyle.LITERAL, null, MarkupAdmonition.NOTE)
.block("Sidebar", MarkupBlockStyle.SIDEBAR, null, MarkupAdmonition.TIP)
.block("Passthrough", MarkupBlockStyle.PASSTHROUGH, null, MarkupAdmonition.WARNING)
.pageBreak()
.table(tableCells)
.tableWithColumnSpecs(tableColumns, tableCells)
.sectionTitleLevel1("Section Level 1b")
@@ -128,6 +129,19 @@ public class MarkupDocBuilderTest {
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);
@@ -160,6 +174,7 @@ public class MarkupDocBuilderTest {
.block("Literal", MarkupBlockStyle.LITERAL, null, MarkupAdmonition.NOTE)
.block("Sidebar", MarkupBlockStyle.SIDEBAR, null, MarkupAdmonition.TIP)
.block("Passthrough", MarkupBlockStyle.PASSTHROUGH, null, MarkupAdmonition.WARNING)
.pageBreak()
//.table(tableCells)
.tableWithColumnSpecs(tableColumns, tableCells)
.sectionTitleLevel1("Section Level 1b")
@@ -230,6 +245,7 @@ public class MarkupDocBuilderTest {
.block("Literal", MarkupBlockStyle.LITERAL, null, MarkupAdmonition.NOTE)
.block("Sidebar", MarkupBlockStyle.SIDEBAR, null, MarkupAdmonition.TIP)
.block("Passthrough", MarkupBlockStyle.PASSTHROUGH, null, MarkupAdmonition.WARNING)
.pageBreak()
.table(tableCells)
.tableWithColumnSpecs(tableColumns, tableCells)
.sectionTitleLevel1("Section Level 1b")

View File

@@ -93,6 +93,8 @@ Passthrough
++++
<<<
[options="", cols=""]
|===
|Row 1 \| Column 1|Row 1 \| Column 2|Row 1 \| Column 3
@@ -113,9 +115,9 @@ Passthrough
=== Section Level 2b
text line +
`Literal text line` +
*Bold text line* +
_Italic text line_ +
*bold*_italic_regular +
**Bold text line** +
__Italic text line__ +
**bold**__italic__regular +
* Entry1
* Entry2

View File

@@ -77,6 +77,8 @@ Passthrough
{html}
<div style='page-break-before:always;'></div>
|Row 1 \| Column 1|Row 1 \| Column 2|Row 1 \| Column 3|
|Row 2 \| Column 1|Row 2 \| Column 2|Row 2 \| Column 3|

View File

@@ -52,8 +52,7 @@ Line2
Source code listing
```
```
java :
```java
MarkupDocBuilder builder = MarkupDocBuilders.documentBuilder(MarkupLanguage.MARKDOWN)
```
@@ -82,6 +81,8 @@ Warning :
Passthrough
***
|Header1||Header3|
|---|---|---|
|Row 1 \| Column 1|Row 1 \| Column 2|Row 1 \| Column 3|

View File

@@ -0,0 +1,6 @@
```php
$o = new Thing();
```