remark plugin to autolink custom references like GitHub Pro does. Ideal for referencing external issue trackers in changelogs.

Install
With npm do:
npm install remark-autolink-references
This package is ESM-only.
import remark from 'remark'
import autolink from 'remark-autolink-references'
remark()
.use(autolink, {
prefix: 'JIRA-',
url: 'https://example.atlassian.net/browse/JIRA-<num>'
})
.process('Example (JIRA-4275)', function (err, file) {
console.log(String(file))
})
Results in:
- Example ([JIRA-4275](https://example.atlassian.net/browse/JIRA-4275))
Set fix to false to only warn about unlinked references, thus acting as a linter:
remark()
.use(autolink, {
prefix: 'JIRA-',
url: 'https://example.atlassian.net/browse/JIRA-<num>',
fix: false
})
This plugin is included in hallmark >= 3.1.0. It does nothing until configured via package.json or .hallmarkrc. Say we have the following markdown in a CHANGELOG.md with a reference to a Jira ticket:
### Fixed
- Prevent infinite loop (JIRA-4275)
Our package.json should look like this:
{
"name": "example",
"devDependencies": {
"hallmark": "^3.1.0",
},
"hallmark": {
"autolinkReferences": {
"prefix": "JIRA-",
"url": "https://example.atlassian.net/browse/JIRA-<num>"
}
}
}
Alternatively we can create a .hallmarkrc file containing:Click to expand
{
"autolinkReferences": {
"prefix": "JIRA-",
"url": "https://example.atlassian.net/browse/JIRA-<num>"
}
}
Running npx hallmark fix then yields:
### Fixed
- Prevent infinite loop ([JIRA-4275](https://example.atlassian.net/browse/JIRA-4275))
While npx hallmark lint will warn about unlinked references.
API
autolink(options)
Options:
prefix (string, required): this prefix appended by a number will generate a linkurl (string, required): where to link to. Must contain <num> for the reference number.fix (boolean, default true): if false, lint without modifying the markdown. Will warn about unlinked references.
License
MIT.
Adapted from remark-github © 2015 Titus Wormer.