27 Commits

Author SHA1 Message Date
5428422f58 Merge table columns if two pipes with with no space are next to each other. 2019-03-14 14:49:03 +00:00
Boris Berenberg
5ac7422d29 readying 1.4.2 release 2018-12-19 10:40:25 -05:00
Boris Berenberg
add4e0abbd fixing broken JS for code blocks in url macro, adding js to modify tables for Confluence styling. 2018-12-19 10:40:12 -05:00
Boris Berenberg
9918002f3e i think this is the right way to merge these' 2018-11-16 14:55:15 -05:00
Boris Berenberg
98e672ff5b fixes anchors in headings, updated flexmark version, sane settings for tables 2018-11-16 14:50:35 -05:00
Otto Jongerius
c381807317 Merged in optimise_imports_and_remove_dead_code (pull request #3)
Optimise imports, reformat and remove dead code

Approved-by: Joshua Carpenter <joshua@interoctiv.io>
2018-09-28 02:29:39 +00:00
Otto Jongerius
3335c2c97d optimise imports, reformat and remove dead code 2018-09-17 12:15:23 +12:00
Joshua Carpenter
060b7b2070 Merged in import-from-url (pull request #1)
Import from url
2018-09-06 14:47:19 +00:00
unknown
1fddfb3f17 Fixed bug with syntax highlighting when importing from URL 2018-09-05 11:16:01 -06:00
Boris Berenberg
cd86baa22f Merge branch 'import-from-url' 2018-08-21 12:12:07 -04:00
unknown
27dcf6d8bf Added error handling for a variety of errors. 2018-08-10 16:27:26 -06:00
unknown
804c460981 Deleted code meant for testing. 2018-08-08 18:20:10 -05:00
unknown
14e81297dd Seperated Markdown into two macros: Markdown and Markdown From URL 2018-08-08 18:14:00 -05:00
unknown
8a4b73b7bd Removed URL parameter and updated MarkdownMacro.java to get URL from bodyContent. 2018-08-08 16:06:31 -05:00
Boris Berenberg
8aa88c0d09 higlight js fixes 2018-08-06 21:24:23 -04:00
Boris Berenberg
1253a02da9 new dc shit 2018-08-06 21:21:18 -04:00
unknown
e3fa72d307 Added import markdown from URL funtionality 2018-08-06 19:25:49 -05:00
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
16 changed files with 370 additions and 71 deletions

View File

@@ -1,13 +1,13 @@
Confluence Markdown Macro 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: It can be accessed via:
* Macro Browser * Macro Browser
* {markdown} tags * {markdown} tags
* SOAP API using <ac:macro ac:name="markdown">/ac:macro> * SOAP API using <ac:macro ac:name="markdown"></ac:macro>
This macro supports the following languages: This macro supports the following languages:

51
pom.xml
View File

@@ -9,13 +9,13 @@
</parent> </parent>
<groupId>com.atlassian.plugins.confluence.markdown</groupId> <groupId>com.atlassian.plugins.confluence.markdown</groupId>
<artifactId>confluence-markdown-macro</artifactId> <artifactId>confluence-markdown-macro</artifactId>
<version>1.0</version> <version>1.4.2</version>
<organization> <organization>
<name>Atlassian</name> <name>Atlassian</name>
<url>http://www.atlassian.com/</url> <url>http://www.atlassian.com/</url>
</organization> </organization>
<name>confluence-markdown-macro</name> <name>confluence-markdown-macro</name>
<description>This plugin provides a Markdown render macro for Confluence.</description> <description>This plugin provides macros to render markdown for Confluence.</description>
<packaging>atlassian-plugin</packaging> <packaging>atlassian-plugin</packaging>
<dependencies> <dependencies>
<dependency> <dependency>
@@ -49,9 +49,35 @@
<version>2.2.2-atlassian-1</version> <version>2.2.2-atlassian-1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.pegdown</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>pegdown</artifactId> <artifactId>flexmark-all</artifactId>
<version>1.2.1</version> <version>0.34.53</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-anchorlink</artifactId>
<version>0.34.53</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-autolink</artifactId>
<version>0.34.53</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-superscript</artifactId>
<version>0.34.53</version>
</dependency>
<dependency>
<groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-ext-youtube-embedded</artifactId>
<version>0.34.53</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>
@@ -64,6 +90,8 @@
<configuration> <configuration>
<productVersion>${confluence.version}</productVersion> <productVersion>${confluence.version}</productVersion>
<productDataVersion>${confluence.data.version}</productDataVersion> <productDataVersion>${confluence.data.version}</productDataVersion>
<enableQuickReload>true</enableQuickReload>
<enableFastdev>false</enableFastdev>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
@@ -76,14 +104,15 @@
</plugins> </plugins>
</build> </build>
<properties> <properties>
<confluence.version>4.3.7</confluence.version> <confluence.version>6.9.0</confluence.version>
<confluence.data.version>4.3.7</confluence.data.version> <confluence.data.version>6.9.0</confluence.data.version>
<amps.version>4.2.2</amps.version> <amps.version>6.3.21</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:atlassianlabs/confluence-markdown-macro.git</connection> <connection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</connection>
<developerConnection>scm:git:git@bitbucket.org:atlassianlabs/confluence-markdown-macro.git</developerConnection> <developerConnection>scm:git:git@bitbucket.org:atlasauthority/markdown-macro-for-confluence.git</developerConnection>
<url>https://bitbucket.org/atlassianlabs/confluence-markdown-macro</url> <url>https://bitbucket.org/atlasauthority/markdown-macro-for-confluence</url>
</scm> </scm>
</project> </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

@@ -0,0 +1,191 @@
package com.atlassian.plugins.confluence.markdown;
import com.atlassian.confluence.content.render.xhtml.ConversionContext;
import com.atlassian.confluence.content.render.xhtml.DefaultConversionContext;
import com.atlassian.confluence.macro.Macro;
import com.atlassian.confluence.macro.MacroExecutionException;
import com.atlassian.confluence.xhtml.api.XhtmlContent;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
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 com.atlassian.webresource.api.assembler.PageBuilderService;
import com.vladsch.flexmark.ast.Node;
import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension;
import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
import com.vladsch.flexmark.ext.definition.DefinitionExtension;
import com.vladsch.flexmark.ext.footnotes.FootnoteExtension;
import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughSubscriptExtension;
import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension;
import com.vladsch.flexmark.ext.ins.InsExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.ext.wikilink.WikiLinkExtension;
import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.superscript.SuperscriptExtension;
import com.vladsch.flexmark.util.options.MutableDataSet;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Map;
public class MarkdownFromURLMacro extends BaseMacro implements Macro {
private final XhtmlContent xhtmlUtils;
private PageBuilderService pageBuilderService;
@Autowired
public MarkdownFromURLMacro(@ComponentImport PageBuilderService pageBuilderService, XhtmlContent xhtmlUtils) {
this.pageBuilderService = pageBuilderService;
this.xhtmlUtils = xhtmlUtils;
}
@Override
public BodyType getBodyType() {
return BodyType.PLAIN_TEXT;
}
@Override
public OutputType getOutputType() {
return OutputType.BLOCK;
}
@Override
public String execute(Map<String, String> parameters, String bodyContent, ConversionContext conversionContext) throws MacroExecutionException
{
if (bodyContent != null) {
pageBuilderService.assembler().resources().requireWebResource("com.atlassian.plugins.confluence.markdown.confluence-markdown-macro:highlightjs");
MutableDataSet options = new MutableDataSet()
.set(HtmlRenderer.GENERATE_HEADER_ID, true)
.set(HtmlRenderer.INDENT_SIZE, 2)
.set(HtmlRenderer.PERCENT_ENCODE_URLS, true)
// for full GFM table compatibility add the following table extension options:
.set(TablesExtension.COLUMN_SPANS, false)
.set(TablesExtension.APPEND_MISSING_COLUMNS, true)
.set(TablesExtension.DISCARD_EXTRA_COLUMNS, true)
.set(TablesExtension.HEADER_SEPARATOR_COLUMN_MATCH, true)
.set(TablesExtension.CLASS_NAME, "confluenceTable")
.set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create()));
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-from-url\"] code').each(function(i, block) {\n" +
" hljs.highlightBlock(block);\n" +
" });\n" +
"</script>";
String highlightjscss = "<style>\n"+
".hljs {display: inline;}\n" +
"pre > code {display: block !important;}\n" +
"</style>";
String tableFixJs = "<script>AJS.$('[data-macro-name=\"markdown-from-url\"] table thead th').each(function(i, block) {\n" +
" block.classList.add(\"confluenceTh\");\n" +
"});\n" +
"\n" +
"AJS.$('[data-macro-name=\"markdown-from-url\"] table tbody tr td').each(function(i, block) {\n" +
" block.classList.add(\"confluenceTd\");\n" +
"});</script>";
class privateRepositoryException extends Exception {
public privateRepositoryException(String message) {
super(message);
}
}
Parser parser = Parser.builder(options).build();
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
String exceptionsToReturn = "";
String html = "";
String toParse = "";
try {
URL importFrom = new URL(bodyContent);
BufferedReader in = new BufferedReader(
new InputStreamReader(importFrom.openStream())
);
String inputLine;
while ((inputLine = in.readLine()) != null) {
toParse = toParse + "\n" + inputLine;
}
in.close();
toParse = toParse.trim();
if (toParse.startsWith("<html>\n<head>\n <title>OpenID transaction in progress</title>")) {
throw new privateRepositoryException("Cannot import from private repository.");
}else {
Node document = parser.parse(toParse);
html = renderer.render(document) + highlightjs + highlightjscss + tableFixJs;
}
}
catch (MalformedURLException u) {
exceptionsToReturn = exceptionsToReturn + "<strong>Error with Markdown From URL macro: Invalid URL.</strong><br>Please enter a valid URL. If you are not trying to import markdown from a URL, use the Markdown macro instead of the Markdown from URL macro.<br>For support <a href='https://community.atlassian.com/t5/tag/addon-com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/tg-p'>visit our Q&A in the Atlassian Community</a>. You can ask a new question by clicking the \"Create\" button on the top right of the Q&A.<br>";
}
catch (privateRepositoryException p) {
exceptionsToReturn = exceptionsToReturn + "<strong>Error with Markdown From URL macro: Importing from private Bitbucket repositories is not supported.</strong><br>Please make your repository public before importing. Alternatively, you can copy and paste your markdown into the Markdown macro.<br>If you are allowed access, you can find the markdown file <a href='" + bodyContent + "'>here</a>.<br>For support <a href='https://community.atlassian.com/t5/tag/addon-com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/tg-p'>visit our Q&A in the Atlassian Community</a>. You can ask a new question by clicking the \"Create\" button on the top right of the Q&A.<br>";
}
catch (FileNotFoundException f) {
exceptionsToReturn = exceptionsToReturn + "<strong>Error with Markdown From URL macro: URL does not exist.</strong><br>" + bodyContent + "<br>Please double check your URL. Perhaps you made a typo or perhaps the page has been moved.<br>This can also be caused by changing the Github repository containing the file from public to private. If this is the case go back to the raw file and re-copy the link.<br>For support <a href='https://community.atlassian.com/t5/tag/addon-com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/tg-p'>visit our Q&A in the Atlassian Community</a>. You can ask a new question by clicking the \"Create\" button on the top right of the Q&A.<br>";
}
catch (IOException e) {
exceptionsToReturn = exceptionsToReturn + "<strong>Error with Markdown From URL macro: Unexpected error.</strong><br>" + e.toString() + "<br>For support <a href='https://community.atlassian.com/t5/tag/addon-com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/tg-p'>visit our Q&A in the Atlassian Community</a>. You can ask a new question by clicking the \"Create\" button on the top right of the Q&A.<br>";
}
finally {
if (exceptionsToReturn != "") {
html = "<p style='background: #ffe0e0; border-radius: 5px; padding: 10px;'>" + exceptionsToReturn + "</p>";
}
return html;
}
}else {
return "";
}
}
@Override
public boolean hasBody() {
return true; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public RenderMode getBodyRenderMode() {
return RenderMode.NO_RENDER; //To change body of implemented methods use File | Settings | File Templates.
}
@Override
public String execute(Map map, String s, RenderContext renderContext) throws MacroException {
try {
return execute(map, s, new DefaultConversionContext(renderContext));
} catch (MacroExecutionException e) {
throw new MacroException(e.getMessage(), e);
}
}
}

View File

@@ -2,51 +2,121 @@ package com.atlassian.plugins.confluence.markdown;
import com.atlassian.confluence.content.render.xhtml.ConversionContext; import com.atlassian.confluence.content.render.xhtml.ConversionContext;
import com.atlassian.confluence.content.render.xhtml.DefaultConversionContext; import com.atlassian.confluence.content.render.xhtml.DefaultConversionContext;
import com.atlassian.confluence.content.render.xhtml.XhtmlException;
import com.atlassian.confluence.macro.Macro; import com.atlassian.confluence.macro.Macro;
import com.atlassian.confluence.macro.MacroExecutionException; import com.atlassian.confluence.macro.MacroExecutionException;
import com.atlassian.confluence.xhtml.api.MacroDefinition;
import com.atlassian.confluence.xhtml.api.MacroDefinitionHandler;
import com.atlassian.confluence.xhtml.api.XhtmlContent; import com.atlassian.confluence.xhtml.api.XhtmlContent;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.atlassian.renderer.RenderContext; import com.atlassian.renderer.RenderContext;
import com.atlassian.renderer.v2.RenderMode; 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 org.pegdown.Parser; import com.atlassian.webresource.api.assembler.PageBuilderService;
import org.pegdown.PegDownProcessor; import com.vladsch.flexmark.ast.Node;
import com.vladsch.flexmark.ext.anchorlink.AnchorLinkExtension;
import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
import com.vladsch.flexmark.ext.definition.DefinitionExtension;
import com.vladsch.flexmark.ext.footnotes.FootnoteExtension;
import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughSubscriptExtension;
import com.vladsch.flexmark.ext.gfm.tasklist.TaskListExtension;
import com.vladsch.flexmark.ext.ins.InsExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.ext.wikilink.WikiLinkExtension;
import com.vladsch.flexmark.ext.youtube.embedded.YouTubeLinkExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.superscript.SuperscriptExtension;
import com.vladsch.flexmark.util.options.MutableDataSet;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Arrays;
import java.util.Map;
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;
} }
@Override @Override
public BodyType getBodyType() public BodyType getBodyType() {
{
return BodyType.PLAIN_TEXT; return BodyType.PLAIN_TEXT;
} }
@Override @Override
public OutputType getOutputType() public OutputType getOutputType() {
{
return OutputType.BLOCK; return OutputType.BLOCK;
} }
@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 {
{
PegDownProcessor translator = new PegDownProcessor(Parser.ALL);
String output = translator.markdownToHtml(bodyContent); pageBuilderService.assembler().resources().requireWebResource("com.atlassian.plugins.confluence.markdown.confluence-markdown-macro:highlightjs");
return output;
MutableDataSet options = new MutableDataSet()
.set(HtmlRenderer.GENERATE_HEADER_ID, true)
.set(HtmlRenderer.INDENT_SIZE, 2)
.set(HtmlRenderer.PERCENT_ENCODE_URLS, true)
// for full GFM table compatibility add the following table extension options:
.set(TablesExtension.COLUMN_SPANS, true)
.set(TablesExtension.APPEND_MISSING_COLUMNS, true)
.set(TablesExtension.DISCARD_EXTRA_COLUMNS, true)
.set(TablesExtension.HEADER_SEPARATOR_COLUMN_MATCH, true)
.set(TablesExtension.CLASS_NAME, "confluenceTable")
.set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create()));
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>";
String highlightjscss = "<style>\n"+
".hljs {display: inline;}\n" +
"pre > code {display: block !important;}\n" +
"</style>";
String tableFixJs = "<script> AJS.$('[data-macro-name=\"markdown\"] table thead th').each(function(i, block) {\n" +
" block.classList.add(\"confluenceTh\");\n" +
"});\n" +
"\n" +
"AJS.$('[data-macro-name=\"markdown\"] table tbody tr td').each(function(i, block) {\n" +
" block.classList.add(\"confluenceTd\");\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 + highlightjscss + tableFixJs; // "<p>This is <em>Sparta</em></p>\n"
return html;
} }
@Override @Override

Binary file not shown.

View File

@@ -5,30 +5,49 @@
<vendor name="${project.organization.name}" url="${project.organization.url}" /> <vendor name="${project.organization.name}" url="${project.organization.url}" />
<param name="plugin-icon">images/pluginIcon.png</param> <param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param> <param name="plugin-logo">images/pluginLogo.png</param>
<param name="atlassian-data-center-compatible">true</param>
<param name="atlassian-data-center-status">compatible</param>
</plugin-info> </plugin-info>
<xhtml-macro name="markdown" <xhtml-macro name="markdown"
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 />
<parameter name="extended" type="boolean" default ="true">
</parameter>
</parameters>
</xhtml-macro> </xhtml-macro>
<macro name="markdown" <macro name="markdown"
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 />
<parameter name="extended" type="boolean" default ="true"> </macro>
</parameter> <xhtml-macro name="markdown-from-url"
</parameters> class="com.atlassian.plugins.confluence.markdown.MarkdownFromURLMacro"
key="markdown-from-url"
icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png"
documentation-url="https://spec.commonmark.org/0.28/">
<category name="formatting"/>
<parameters />
</xhtml-macro>
<macro name="markdown-from-url"
class="com.atlassian.plugins.confluence.markdown.MarkdownFromURLMacro"
key="markdown-from-url.wiki"
icon="/download/resources/com.atlassian.plugins.confluence.markdown.confluence-markdown-macro/images/pluginIcon.png"
documentation-url="https://spec.commonmark.org/0.28/">
<category name="formatting"/>
<parameters />
</macro> </macro>
<resource type="i18n" name="markdown" location="markdownproperties/markdown"/> <resource type="i18n" name="markdown" location="markdownproperties/markdown"/>
<resource type="i18n" name="markdown-from-url" location="markdown-from-url-properties/markdown-from-url"/>
<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}

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

@@ -0,0 +1,2 @@
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown-from-url.label=Markdown From URL
com.atlassian.plugins.confluence.markdown.confluence-markdown-macro.markdown-from-url.desc=This macro dynamically imports Markdown from a URL and renders it into HTML.

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.desc=This macro renders Markdown 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>

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.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.desc=Ce macro converti 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>

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