Skip to content

kenchan0130/markdown-to-atlassian-wiki-markup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Tadayuki Onishi
Jun 6, 2023
34dc929 · Jun 6, 2023
Jun 6, 2023
May 19, 2020
Jun 6, 2023
Feb 24, 2021
Aug 4, 2019
Aug 4, 2019
Apr 7, 2021
Jun 6, 2023
Jun 6, 2023
Feb 24, 2021
Apr 7, 2021

Repository files navigation

@kenchan0130/markdown-to-atlassian-wiki-markup

NPM version Build status dep dev dep snyk MIT

Convert markdown to atlassian wiki markup

If you want to use this on your command line, you can use markdown-to-atlassian-wiki-markup-cli.

Installation

npm install @kenchan0130/markdown-to-atlassian-wiki-markup
# or
yarn add @kenchan0130/markdown-to-atlassian-wiki-markup

Usage

Usage JavaScript

var markdownToAtlassianWikiMarkup = require("@kenchan0130/markdown-to-atlassian-wiki-markup").markdownToAtlassianWikiMarkup;

var wikiMarkup = markdownToAtlassianWikiMarkup("# Heading 1\n- list");
console.log(wikiMarkup);
/**
h1. Heading

* list

**/

Usage TypeScript

import { markdownToAtlassianWikiMarkup } from "@kenchan0130/markdown-to-atlassian-wiki-markup";

const wikiMarkup = markdownToAtlassianWikiMarkup("# Heading 1\n- list");
console.log(wikiMarkup);
/**
h1. Heading

* list

**/

Options

You can use MarkdownToAtlassianWikiMarkupOptions. It has following properties.

namespace key type description
codeBlock theme CodeBlockTheme or string Theme of code block.
See also: https://confluence.atlassian.com/doc/code-block-macro-139390.html
codeBlock showLineNumbers boolean or (code: string, lang: AtlassianSupportLanguage) => boolean function Show or not linenumbers of code block.
codeBlock collapse boolean or (code: string, lang: AtlassianSupportLanguage) => boolean function Enable or not collapse of code block.

Options JavaScript Example

var markdownToAtlassianWikiMarkup = require("@kenchan0130/markdown-to-atlassian-wiki-markup").markdownToAtlassianWikiMarkup;

var options = {
  codeBlock: {
    theme: "DJango",
    showLineNumbers: true,
    collapse: true
  }
};
var wikiMarkup = markdownToAtlassianWikiMarkup(`
\`\`\`javascript
console.log("This is JavaScript.");
\`\`\`
`, options);
console.log(wikiMarkup);
/*

{code:collapse=true|language=javascript|linenumbers=true|theme=DJango}
console.log("This is JavaScript.");
{code}

*/
var markdownToAtlassianWikiMarkup = require("@kenchan0130/markdown-to-atlassian-wiki-markup").markdownToAtlassianWikiMarkup;

const options = {
  codeBlock: {
    theme: "DJango",
    // In this case, it does not display line numbers when the code lang is none.
    showLineNumbers: function(_code, lang) { return lang !== "none"; },
    // In this case, it makes code block collapsed when the code line number more than 10.
    collapse: function(code) { return code.split("\n").length > 10; },
  }
});
var wikiMarkup = markdownToAtlassianWikiMarkup(```
\`\`\`typescript
console.log("This is TypeScript.");
\`\`\`
```, options);
console.log(wikiMarkup);
/*

{code:collapse=false|language=none|linenumbers=false|theme=DJango}
console.log("This is TypeScript.");
{code}

*/

Options TypeScript Example

import { AtlassianSupportLanguage, CodeBlockTheme, markdownToAtlassianWikiMarkup, MarkdownToAtlassianWikiMarkupOptions } from "@kenchan0130/markdown-to-atlassian-wiki-markup";

const options = {
  codeBlock: {
    theme: CodeBlockTheme.DJango,
    showLineNumbers: true,
    collapse: true
  }
};
const wikiMarkup = markdownToAtlassianWikiMarkup(`
\`\`\`javascript
console.log("This is JavaScript.");
\`\`\`
`, options);
console.log(wikiMarkup);
/*

{code:collapse=true|language=javascript|linenumbers=true|theme=DJango}
console.log("This is JavaScript.");
{code}

*/
import { AtlassianSupportLanguage, CodeBlockTheme, markdownToAtlassianWikiMarkup, MarkdownToAtlassianWikiMarkupOptions } from "@kenchan0130/markdown-to-atlassian-wiki-markup";

const options = {
  codeBlock: {
    theme: CodeBlockTheme.DJango,
    // In this case, it does not display line numbers when the code lang is none.
    showLineNumbers: (
      _code: string,
      lang: AtlassianSupportLanguage
    ): boolean => lang !== AtlassianSupportLanguage.None,
    // In this case, it makes code block collapsed when the code line number more than 10.
    collapse: (
      code: string,
      _lang: AtlassianSupportLanguage
    ): boolean => code.split("\n").length > 10,
  }
});
const wikiMarkup = markdownToAtlassianWikiMarkup(```
\`\`\`typescript
console.log("This is TypeScript.");
\`\`\`
```, options);
console.log(wikiMarkup);
/*

{code:collapse=false|language=none|linenumbers=false|theme=DJango}
console.log("This is TypeScript.");
{code}

*/

About Markdown

Markdown has various dialects.

This library uses marked. Therefore, it supports GitHub Flavored Markdown.

Development

Test

npm ci
npm run test

Contributing

  1. Fork the project
  2. Create a descriptively named feature branch
  3. Add your feature
  4. Submit a pull request

Release

npm version major|minor|patch

Run this with local master branch.

License

MIT