jira2slack
v1.2.0
Published
Library to convert between JIRA markup and Slack markup
Downloads
596
Readme
JIRA 2 Slack
Library to convert between JIRA markup and Slack markup
Example
const J2S = require('jira2slack');
const slackMD = J2S.toSlack('*This* _is_ -some- ^over^ ~formatted~ {{text}}');
// *This* _is_ ~some~ ^over -formatted- `text`
Conversions
Below are the conversions that are made:
Jira -> Slack
| Format | JIRA | Slack | Destructive | Notes |
| ------ | ---- | ----- | ----------- | ----- |
| Headers | h1. Heading
| \n *Heading*\n
| Yes | Slack doesn't support headers so library converts headers to bolded text on it's own line |
| Bold | *bold*
| *bold*
| Sometimes | [1] |
| Italic | _italic_
| _italic_
| Sometimes | [1] |
| Unordered List | * Bulleted List
** Indented more
* Indented less
| • Bulleted List
..• Indented more
• Indented less
| No | [2] |
| Unordered Dash List | - Bulleted Dash List
- Bulleted Dash List
- Bulleted Dash List
| • Bulleted Dash List
• Bulleted Dash List
• Bulleted Dash List
| Yes | Ambigious result from Bulleted list so reversal results in use of astericks |
|Ordered List | # Numbered List
## Indented more
## Indented more
### Indented morer
### Indented morer
### Indented morer
## Indented more
# Indented less
| 1. Numbered List
..1. Indented more
..2. Indented more
....1. Indented morer
....2. Indented morer
....3. Indented morer
..3. Indented more
2. Indented less
| No | [1][2] |
| Monospaced | {{code}}
| `code`
| No | |
| Citations | ??citation??
| -- citation_
| Yes | Slack doesn't have citations, but I can replicate resulting format |
| Subscript | ~subscript~
| _subscript
| Yes | Slack doesn't have subscript, but I denote it with a single underscore |
| Superscript | ^superscript^
| ^superscript
| Yes | Slack doesn't have superscript, but I denote it with a single carret |
| Strikethrough | -strikethrough-
| ~strikethrough~
| Sometimes | [1] |
| Code | {code}some code{code}
| ```some code```
| Yes | Slack doesn't support specify the language, so that is removed during conversion |
| Quotes | {quote}quoted text{quote}
| ```quoted text```
| Yes | Slack does't support quoted text so the library uses preformmated ```
instead. This makes it impossible to convert back. |
| Pre-formatted Text | {noformat}pre text{noformat}
| ```pre text```
| Yes | Slack does't support no format text so the library uses preformmated ```
instead. This makes it impossible to convert back. |
| Unnamed Link | [http://someurl.com]
| <http://someurl.com>
| No | |
| Named Link | [Someurl\|http://someurl.com]
| <http://someurl.com\|Someurl>
| No | |
| Smart Link | [http://someurl.com\|http://someurl.com\|smart-link]
| <http://someurl.com>
| Yes | Slack doesn't support smart links so we just strip it down to a regular link |
| Blockquote | bq. This is quoted
| > This is quoted
| Sometimes | Slack doesn't support multi-line blockquotes (>>>) so those are ignored |
| Color | {color:white}This is white text{color}
| This is white text
| Yes | Slack doesn't support colored text so it is removed. |
| Panel | {panel:title=foo}Panel Contents{panel}
| Panel: | foo || --- || Panel Contents | | Yes | Slack doesn't support panels, so the library attempts to replicate the format. This makes it impossible to convert back. |
| Table | ||heading 1||heading 2|||col A1|col B1||col A2|col B2| | |heading 1|heading 2|| --- | --- ||col A1|col B1||col A2|col B2| | No | |
Notes
- JIRA supports spaces at the beginning and end of a markdown section (ex
_ foo _
) where Slack does not. To match the formatting, the library moves those spaces outside the formatter (ex_ foo _
becomes_foo_
). While the result works in both JIRA and Slack, it is technically destructive. .
indicate whitespace (
Slack -> Jira
| Format | Slack | Jira | Destructive | Notes |
| ------ | ---- | ----- | ----------- | ----- |
| Headers | \n *Heading*\n
| h1. Heading
| No | |
| Bold | *bold*
| *bold*
| No | |
| Italic | _italic_
| _italic_
| No | |
| Unordered List | • Bulleted List
..• Indented more
• Indented less
| * Bulleted List
** Indented more
* Indented less
| No | [2] |
|Ordered List | 1. Numbered List
..1. Indented more
..2. Indented more
....1. Indented morer
....2. Indented morer
....3. Indented morer
..3. Indented more
2. Indented less
| # Numbered List
## Indented more
## Indented more
### Indented morer
### Indented morer
### Indented morer
## Indented more
# Indented less
| No | [2] |
| Monospaced | `code`
| {{code}}
| No | |
| Citations | -- citation_
| ??citation??
| No | |
| Strikethrough | ~strikethrough~
| -strikethrough-
| No | |
| Code | ```some code```
| {code}some code{code}
| No | |
| Unnamed Link | <http://someurl.com>
| [http://someurl.com]
| No | |
| Named Link | <http://someurl.com\|Someurl>
| [Someurl\|http://someurl.com]
| No | |
| Blockquote | > This is quoted
| bq. This is quoted
| No | |
Acknowledgments
Special thanks to Kyle Farris for his JIRA to Markdown library
Contributing
- Create a new branch, please don't work in master directly.
- Add failing tests for the change you want to make (if applicable). Run
npm test
to see the tests fail. - Fix stuff.
- Run
npm test
to see if the tests pass. Repeat steps 2-4 until done. - Update the documentation to reflect any changes.
- Push to your fork and submit a pull request.