Markdown pastes into Jira as plain, unformatted text — md2jira fixes that.
Architecture
The project is a pnpm monorepo split into three packages:
| Package | Role |
|---|---|
packages/core | Pure TS converter — no browser deps, usable in Node, Deno, Bun, or a VSCode extension |
packages/cli | md2jira command via Commander.js; reads from file or stdin, writes to file or stdout |
apps/web | React + Vite live previewer deployed to GitHub Pages |
Conversion pipeline
Raw Markdown → preprocess (edge-case normalisation) → remark AST → unist-util-visit traversal → feature transformers (formatting, headers, lists, tables, codeblocks) → Jira Wiki Markup or ADF JSON.
Key features
- Full GFM support: bold, italic, strikethrough, inline code, links, blockquotes, horizontal rules, ordered/unordered lists with nesting, tables with multiline cells and column normalisation, fenced code blocks with language detection.
- Dual output: native Jira Wiki Markup or Atlassian Document Format (JSON).
- Web UI: two-panel live editor, light/dark theme, keyboard shortcuts, file import, toast notifications, format selector.
- CLI:
npx md2jira-cli input.mdor piped stdin → stdout. - Published to npm:
md2jira-core(v0.2.1) andmd2jira-cli(v0.1.0). - CI/CD: Semantic Release auto-publishes packages and creates GitHub releases on every merge to main.