added Highlight.js and updated flexmark, release 1.3.2

This commit is contained in:
Boris Berenberg
2018-05-15 00:09:53 -04:00
parent 1edf603b3e
commit fae6196f14
5 changed files with 53 additions and 19 deletions

18
pom.xml
View File

@@ -51,29 +51,34 @@
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId> <artifactId>flexmark-all</artifactId>
<version>0.32.22</version> <version>0.32.24</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-anchorlink</artifactId> <artifactId>flexmark-ext-anchorlink</artifactId>
<version>0.32.22</version> <version>0.32.24</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-autolink</artifactId> <artifactId>flexmark-ext-autolink</artifactId>
<version>0.32.22</version> <version>0.32.24</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-superscript</artifactId> <artifactId>flexmark-ext-superscript</artifactId>
<version>0.32.22</version> <version>0.32.24</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-youtube-embedded</artifactId> <artifactId>flexmark-ext-youtube-embedded</artifactId>
<version>0.32.22</version> <version>0.32.24</version>
</dependency>
<dependency>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-annotation</artifactId>
<version>${atlassian.spring.scanner.version}</version>
<scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
@@ -101,6 +106,7 @@
<confluence.data.version>6.9.0</confluence.data.version> <confluence.data.version>6.9.0</confluence.data.version>
<amps.version>6.2.11</amps.version> <amps.version>6.2.11</amps.version>
<plugin.testrunner.version>1.1</plugin.testrunner.version> <plugin.testrunner.version>1.1</plugin.testrunner.version>
<atlassian.spring.scanner.version>2.1.7</atlassian.spring.scanner.version>
</properties> </properties>
<scm> <scm>
<connection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</connection> <connection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</connection>

View File

@@ -19,36 +19,47 @@ import com.atlassian.renderer.v2.RenderMode;
import com.atlassian.renderer.v2.macro.BaseMacro; import com.atlassian.renderer.v2.macro.BaseMacro;
import com.atlassian.renderer.v2.macro.MacroException; import com.atlassian.renderer.v2.macro.MacroException;
//import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
import com.atlassian.webresource.api.assembler.PageBuilderService;
import org.springframework.beans.factory.annotation.Autowired;
import com.vladsch.flexmark.ast.Node; import com.vladsch.flexmark.ast.Node;
import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughSubscriptExtension; import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughSubscriptExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension; import com.vladsch.flexmark.ext.tables.TablesExtension;
//import com.vladsch.flexmark.ext.superscript.SuperscriptExtension;
import com.vladsch.flexmark.ext.ins.InsExtension; import com.vladsch.flexmark.ext.ins.InsExtension;
import com.vladsch.flexmark.ext.definition.DefinitionExtension; import com.vladsch.flexmark.ext.definition.DefinitionExtension;
import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension; import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension;
import com.vladsch.flexmark.ext.footnotes.FootnoteExtension; import com.vladsch.flexmark.ext.footnotes.FootnoteExtension;
import com.vladsch.flexmark.ext.wikilink.WikiLinkExtension; import com.vladsch.flexmark.ext.wikilink.WikiLinkExtension;
import com.vladsch.flexmark.ext.autolink.AutolinkExtension; import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension; import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension;
import com.vladsch.flexmark.superscript.SuperscriptExtension; import com.vladsch.flexmark.superscript.SuperscriptExtension;
import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension; import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension;
import com.vladsch.flexmark.html.HtmlRenderer; import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser; import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.options.MutableDataSet; import com.vladsch.flexmark.util.options.MutableDataSet;
//@Scanned
public class MarkdownMacro extends BaseMacro implements Macro public class MarkdownMacro extends BaseMacro implements Macro
{ {
private final XhtmlContent xhtmlUtils; private final XhtmlContent xhtmlUtils;
public MarkdownMacro(XhtmlContent xhtmlUtils) private PageBuilderService pageBuilderService;
{
@Autowired
public MarkdownMacro(@ComponentImport PageBuilderService pageBuilderService, XhtmlContent xhtmlUtils) {
this.pageBuilderService = pageBuilderService;
this.xhtmlUtils = xhtmlUtils; this.xhtmlUtils = xhtmlUtils;
} }
// public MarkdownMacro(XhtmlContent xhtmlUtils)
// {
// this.xhtmlUtils = xhtmlUtils;
// }
@Override @Override
public BodyType getBodyType() public BodyType getBodyType()
{ {
@@ -64,6 +75,10 @@ public class MarkdownMacro extends BaseMacro implements Macro
@Override @Override
public String execute(Map<String, String> parameters, String bodyContent, ConversionContext conversionContext) throws MacroExecutionException public String execute(Map<String, String> parameters, String bodyContent, ConversionContext conversionContext) throws MacroExecutionException
{ {
pageBuilderService.assembler().resources().requireWebResource("com.atlassian.plugins.confluence.markdown.confluence-markdown-macro:highlightjs");
MutableDataSet options = new MutableDataSet(); MutableDataSet options = new MutableDataSet();
options.set(Parser.EXTENSIONS, Arrays.asList( options.set(Parser.EXTENSIONS, Arrays.asList(
@@ -81,17 +96,20 @@ public class MarkdownMacro extends BaseMacro implements Macro
)); ));
String highlightjs = "<script>\n" +
"AJS.$('[data-macro-name=\"markdown\"] code').each(function(i, block) {\n" +
" hljs.highlightBlock(block);\n" +
" });\n" +
"</script>";
Parser parser = Parser.builder(options).build(); Parser parser = Parser.builder(options).build();
HtmlRenderer renderer = HtmlRenderer.builder(options).build(); HtmlRenderer renderer = HtmlRenderer.builder(options).build();
Node document = parser.parse(bodyContent); Node document = parser.parse(bodyContent);
String html = renderer.render(document); // "<p>This is <em>Sparta</em></p>\n" String html = renderer.render(document ) + highlightjs; // "<p>This is <em>Sparta</em></p>\n"
return html; return html;
//PegDownProcessor translator = new PegDownProcessor(Parser.ALL);
//String output = translator.markdownToHtml(bodyContent);
//return output;
} }
@Override @Override

View File

@@ -12,7 +12,7 @@
class="com.atlassian.plugins.confluence.markdown.MarkdownMacro" class="com.atlassian.plugins.confluence.markdown.MarkdownMacro"
key="markdown" key="markdown"
icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png" icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png"
documentation-url="http://daringfireball.net/projects/markdown/"> documentation-url="https://spec.commonmark.org/0.28/">
<category name="formatting"/> <category name="formatting"/>
<parameters> <parameters>
</parameters> </parameters>
@@ -21,11 +21,17 @@
class="com.atlassian.plugins.confluence.markdown.MarkdownMacro" class="com.atlassian.plugins.confluence.markdown.MarkdownMacro"
key="markdown.wiki" key="markdown.wiki"
icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png" icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png"
documentation-url="http://daringfireball.net/projects/markdown/"> documentation-url="https://spec.commonmark.org/0.28/">
<category name="formatting"/> <category name="formatting"/>
<parameters> <parameters>
</parameters> </parameters>
</macro> </macro>
<resource type="i18n" name="markdown" location="markdownproperties/markdown"/> <resource type="i18n" name="markdown" location="markdownproperties/markdown"/>
<resource type="download" name="images/" key="images" location="images/"/> <resource type="download" name="images/" key="images" location="images/"/>
<web-resource key="highlightjs" name="Highlight.js" >
<resource type="download" name="highlight.min.js" location="js/highlight.min.js" />
<resource type="download" name="highlight.min.css" location="css/highlight.min.css" />
</web-resource>
</atlassian-plugin> </atlassian-plugin>

View File

@@ -0,0 +1 @@
.hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888888}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}

File diff suppressed because one or more lines are too long