10 Commits

Author SHA1 Message Date
Boris Berenberg
fae6196f14 added Highlight.js and updated flexmark, release 1.3.2 2018-05-15 00:09:53 -04:00
Boris Berenberg [Atlas Authority]
1edf603b3e Updated readme to clarify the library in use 2018-05-10 18:22:04 +00:00
Boris Berenberg
8bc3987cf7 updated flexmark version and enabled a few more extensions and raised version to 1.3.2 2018-05-09 14:03:35 -04:00
Boris Berenberg
e91e0128fd 1.3.1 release 2017-07-31 13:26:43 -04:00
bberenberg
ed36d3ed45 [maven-release-plugin] prepare for next development iteration 2015-01-13 10:40:14 -08:00
bberenberg
d6a812be55 [maven-release-plugin] prepare release confluence-markdown-macro-1.1 2015-01-13 10:40:11 -08:00
bberenberg
7e10af38a8 datacenter support 2015-01-13 10:37:19 -08:00
bberenberg
9bc4b9dad6 Testing SSP Testing 2014-11-05 13:05:18 +01:00
bberenberg
086ca73151 SSP 2014-11-05 13:02:11 +01:00
bberenberg
bed352856f [maven-release-plugin] prepare for next development iteration 2013-06-20 19:19:02 -07:00
14 changed files with 126 additions and 45 deletions

View File

@@ -1,7 +1,7 @@
Confluence Markdown Macro
========================
This macro uses the PegDown library to convert from Markdown to HTML within Confluence.
This macro uses the Flexmark library to convert from Markdown to HTML within Confluence.
It can be accessed via:

47
pom.xml
View File

@@ -9,7 +9,7 @@
</parent>
<groupId>com.atlassian.plugins.confluence.markdown</groupId>
<artifactId>confluence-markdown-macro</artifactId>
<version>1.0</version>
<version>1.3.2</version>
<organization>
<name>Atlassian</name>
<url>http://www.atlassian.com/</url>
@@ -49,9 +49,35 @@
<version>2.2.2-atlassian-1</version>
</dependency>
<dependency>
<groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId>
<version>1.2.1</version>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId>
<version>0.32.24</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-anchorlink</artifactId>
<version>0.32.24</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-autolink</artifactId>
<version>0.32.24</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-superscript</artifactId>
<version>0.32.24</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-youtube-embedded</artifactId>
<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>
</dependencies>
<build>
@@ -76,14 +102,15 @@
</plugins>
</build>
<properties>
<confluence.version>4.3.7</confluence.version>
<confluence.data.version>4.3.7</confluence.data.version>
<amps.version>4.2.2</amps.version>
<confluence.version>6.9.0</confluence.version>
<confluence.data.version>6.9.0</confluence.data.version>
<amps.version>6.2.11</amps.version>
<plugin.testrunner.version>1.1</plugin.testrunner.version>
<atlassian.spring.scanner.version>2.1.7</atlassian.spring.scanner.version>
</properties>
<scm>
<connection>scm:git:git@bitbucket.org:atlassianlabs/confluence-markdown-macro.git</connection>
<developerConnection>scm:git:git@bitbucket.org:atlassianlabs/confluence-markdown-macro.git</developerConnection>
<url>https://bitbucket.org/atlassianlabs/confluence-markdown-macro</url>
<connection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</connection>
<developerConnection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</developerConnection>
<url>https://bitbucket.org/atlasauthority/markdown-macro-for-confluence</url>
</scm>
</project>

View File

@@ -1,11 +0,0 @@
#release configuration
#Thu Jun 20 18:34:51 PDT 2013
scm.tagNameFormat=@{project.artifactId}-@{project.version}
pushChanges=true
scm.url=scm\:git\:git@bitbucket.org\:atlassianlabs/confluence-markdown-macro.git
preparationGoals=clean verify
remoteTagging=true
scm.commentPrefix=[maven-release-plugin]
exec.additionalArguments=-P defaultProfile,defaultProfile
exec.snapshotReleasePluginAllowed=false
completedPhase=check-poms

View File

@@ -10,6 +10,7 @@ import com.atlassian.confluence.xhtml.api.MacroDefinitionHandler;
import com.atlassian.confluence.xhtml.api.XhtmlContent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -17,18 +18,48 @@ import com.atlassian.renderer.RenderContext;
import com.atlassian.renderer.v2.RenderMode;
import com.atlassian.renderer.v2.macro.BaseMacro;
import com.atlassian.renderer.v2.macro.MacroException;
import org.pegdown.Parser;
import org.pegdown.PegDownProcessor;
//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.ext.gfm.strikethrough.StrikethroughSubscriptExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.ext.ins.InsExtension;
import com.vladsch.flexmark.ext.definition.DefinitionExtension;
import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension;
import com.vladsch.flexmark.ext.footnotes.FootnoteExtension;
import com.vladsch.flexmark.ext.wikilink.WikiLinkExtension;
import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension;
import com.vladsch.flexmark.superscript.SuperscriptExtension;
import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.options.MutableDataSet;
//@Scanned
public class MarkdownMacro extends BaseMacro implements Macro
{
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;
}
// public MarkdownMacro(XhtmlContent xhtmlUtils)
// {
// this.xhtmlUtils = xhtmlUtils;
// }
@Override
public BodyType getBodyType()
{
@@ -44,9 +75,41 @@ public class MarkdownMacro extends BaseMacro implements Macro
@Override
public String execute(Map<String, String> parameters, String bodyContent, ConversionContext conversionContext) throws MacroExecutionException
{
PegDownProcessor translator = new PegDownProcessor(Parser.ALL);
String output = translator.markdownToHtml(bodyContent);
return output;
pageBuilderService.assembler().resources().requireWebResource("com.atlassian.plugins.confluence.markdown.confluence-markdown-macro:highlightjs");
MutableDataSet options = new MutableDataSet();
options.set(Parser.EXTENSIONS, Arrays.asList(
TablesExtension.create(),
StrikethroughSubscriptExtension.create(),
InsExtension.create(),
TaskListExtension.create(),
FootnoteExtension.create(),
WikiLinkExtension.create(),
DefinitionExtension.create(),
AnchorLinkExtension.create(),
AutolinkExtension.create(),
SuperscriptExtension.create(),
YouTubeLinkExtension.create()
));
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();
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
Node document = parser.parse(bodyContent);
String html = renderer.render(document ) + highlightjs; // "<p>This is <em>Sparta</em></p>\n"
return html;
}
@Override

Binary file not shown.

View File

@@ -5,30 +5,33 @@
<vendor name="${project.organization.name}" url="${project.organization.url}" />
<param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param>
<param name="atlassian-data-center-compatible">true</param>
</plugin-info>
<xhtml-macro name="markdown"
class="com.atlassian.plugins.confluence.markdown.MarkdownMacro"
key="markdown"
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"/>
<parameters>
<parameter name="extended" type="boolean" default ="true">
</parameter>
</parameters>
</xhtml-macro>
<macro name="markdown"
class="com.atlassian.plugins.confluence.markdown.MarkdownMacro"
key="markdown.wiki"
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"/>
<parameters>
<parameter name="extended" type="boolean" default ="true">
</parameter>
</parameters>
</macro>
<resource type="i18n" name="markdown" location="markdownproperties/markdown"/>
<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>

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}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 958 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1 @@
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=This macro renders text in Markdown syntax into HTML.
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.label=Enable extended Markdown properties:
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.desc=Find info about extended Markdown at: <a href="https://github.com/sirthias/pegdown#readme">https://github.com/sirthias/pegdown#readme</a>
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=This macro renders Markdown into HTML.

View File

@@ -1,3 +1 @@
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=Dieses Makro wandelt Markdown in HTML um.
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.label=Aktivieren sich weiter Eigenschaften Markdown:
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.desc=Befindet sich information \u00FCber Extended Markdown: <a href="https://github.com/sirthias/pegdown#readme">https://github.com/sirthias/pegdown#readme</a>

View File

@@ -1,3 +1 @@
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=Ce macro converti le text format\u00E9 selon Markdown vers HTML
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.label=Activez les propri\u00E9t\u00E9s avanc\u00E9es de Markdown:Pour plus d'information sur
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.param.extended.desc=Pour plus d'information sur les propri\u00E9t\u00E9s avanc\u00E9es de Markdown: <a href="https://github.com/sirthias/pegdown#readme">https://github.com/sirthias/pegdown#readme</a>
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=Ce macro converti Markdown vers HTML

View File

@@ -0,0 +1 @@
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown.desc=Ce macro converti le text format\u00E9 selon Markdown vers HTML