Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

<groupId>org.commonjava.googlecode.markdown4j</groupId>
<artifactId>markdown4j</artifactId>
<version>2.2-cj-1.2-SNAPSHOT</version>
<version>2.2-plc-1.6-SNAPSHOT</version>

<scm>
<connection>scm:git:http://jdcasey@github.com/jdcasey/markdown4j.git</connection>
<developerConnection>scm:git:git@github.com:jdcasey/markdown4j.git</developerConnection>
<url>http://github.com/jdcasey/markdown4j</url>
<connection>scm:git:https://github.com/piergiuseppe82/markdown4j.git</connection>
<developerConnection>scm:git:git@github.com:piergiuseppe82/markdown4j.git</developerConnection>
<url>http://github.com/piergiuseppe82/markdown4j</url>
</scm>

<properties>
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/github/rjeschke/txtmark/BlockType.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,7 @@ enum BlockType
/** A XML block. */
XML,
/** A plugin block. */
PLUGIN
PLUGIN,
/** A TABLE block. */
TABLE
}
16 changes: 14 additions & 2 deletions src/main/java/com/github/rjeschke/txtmark/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public class Configuration
final Decorator decorator;

final BlockEmitter codeBlockEmitter;

final BlockEmitter tableBlockEmitter;

final boolean forceExtendedProfile;

Expand Down Expand Up @@ -82,15 +84,17 @@ public class Configuration
* @param safeMode
* @param encoding
* @param decorator
* @param tableBlockEmitter
*/
Configuration( final boolean safeMode, final String encoding, final Decorator decorator, final BlockEmitter codeBlockEmitter,
final boolean forceExtendedProfile, final boolean convertNewline2Br, final SpanEmitter specialLinkEmitter,
final BlockEmitter tableBlockEmitter, final boolean forceExtendedProfile, final boolean convertNewline2Br, final SpanEmitter specialLinkEmitter,
final List<Plugin> plugins )
{
this.safeMode = safeMode;
this.encoding = encoding;
this.decorator = decorator;
this.codeBlockEmitter = codeBlockEmitter;
this.tableBlockEmitter = tableBlockEmitter;
this.convertNewline2Br = convertNewline2Br;
this.forceExtendedProfile = forceExtendedProfile;
this.specialLinkEmitter = specialLinkEmitter;
Expand Down Expand Up @@ -126,6 +130,8 @@ public static class Builder
private Decorator decorator = new DefaultDecorator();

private BlockEmitter codeBlockEmitter = null;

private BlockEmitter tableBlockEmitter = null;

private SpanEmitter specialLinkEmitter = null;

Expand Down Expand Up @@ -281,13 +287,19 @@ public Builder registerPlugins( final Plugin... plugins )
*/
public Configuration build()
{
return new Configuration( this.safeMode, this.encoding, this.decorator, this.codeBlockEmitter, this.forceExtendedProfile,
return new Configuration( this.safeMode, this.encoding, this.decorator, this.codeBlockEmitter,this.tableBlockEmitter, this.forceExtendedProfile,
this.convertNewline2Br, this.specialLinkEmitter, this.plugins );
}

public Decorator getDecorator()
{
return decorator;
}


public Builder setTableBlockEmitter(BlockEmitter tableBlockEmitter) {
this.tableBlockEmitter = tableBlockEmitter;
return this;
}
}
}
111 changes: 111 additions & 0 deletions src/main/java/com/github/rjeschke/txtmark/Decorator.java
Original file line number Diff line number Diff line change
Expand Up @@ -467,4 +467,115 @@ public interface Decorator
* The StringBuilder to write to.
*/
public void openImage(final StringBuilder out);

/**
* Called when new Html rendering started.
*
* <p>
* <strong>Note:</strong> Don't close the HTML tag!
* </p>
* <p>
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;html>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void openHtml(StringBuilder out);

/**
* Called when new Html rendering started and after HTML tag.
*
* <p>
* <strong>Note:</strong> Don't close the HTML tag!
* </p>
* <p>
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;head>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void openHtmlHeaders(StringBuilder out);


/**
* Called when new Html rendering started and write default internal style beetwen html headers tag.
*
* @param out
* The StringBuilder to write to.
*/
public void writeDefaultInternalStyle(StringBuilder out);

/**
* Called when new Html rendering started and before Body tag.
*
* <p>
* <strong>Note:</strong> Don't open the HTML tag!
* </p>
* <p>
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;/head>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void closeHtmlHeaders(StringBuilder out);

/**
* Called when new Html rendering started and before process html's block.
*
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;body>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void openBody(StringBuilder out);

/**
* Called after process html's block.
*
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;/body>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void closeBody(StringBuilder out);

/**
* Called when all blocks is processed and before return html document.
*
* Default implementation is:
* </p>
*
* <pre>
* <code>out.append("&lt;/html>");</code>
* </pre>
*
* @param out
* The StringBuilder to write to.
*/
public void closeHtml(StringBuilder out);
}
41 changes: 40 additions & 1 deletion src/main/java/com/github/rjeschke/txtmark/DefaultDecorator.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@
*/
public class DefaultDecorator implements Decorator
{
/** Constructor. */
private static final String DEFAULT_INTERNAL_STYLE = "<meta charset=\"UTF-8\"></meta><style type=\"text/css\">body{font-size: 12px;font-family: sans-serif;}table{width:100%;}th{background-color: silver;}table{border: 1px solid;}pre{background-color: silver;font-family: monospace;}</style>";

/** Constructor. */
public DefaultDecorator()
{
// empty
Expand Down Expand Up @@ -241,4 +243,41 @@ public void openImage(StringBuilder out)
{
out.append("<img");
}

@Override
public void openHtml(StringBuilder out) {
out.append("<!DOCTYPE html>\n<html>\n");

}

@Override
public void openHtmlHeaders(StringBuilder out) {
out.append("<head>\n");

}

@Override
public void writeDefaultInternalStyle(StringBuilder out) {
out.append(DEFAULT_INTERNAL_STYLE+"\n");
}

@Override
public void closeHtmlHeaders(StringBuilder out) {
out.append("</head>\n");
}

@Override
public void openBody(StringBuilder out) {
out.append("<body>\n");
}

@Override
public void closeBody(StringBuilder out) {
out.append("</body>\n");
}

@Override
public void closeHtml(StringBuilder out) {
out.append("</html>");
}
}
Loading