markdown-it-auto-crosslinker

1.0.1 • Public • Published

Markdown-it auto-crosslinker

npm

Installation

npm --save i markdown-it-auto-crosslinker

Usage

const crosslinker = require('markdown-it-auto-crosslinker')
const md = require('markdown-it')()

const dictionary = {'/apple.md': ['apple', 'apples']}
  
md
  .use(crosslinker, {dictionary})
  .render('Test apples and apple in a string.')
//the same as 
md
  .render('Test [apples](/apple.md) and apple in a string.')

What it does?

Wiki like pages, usually cross-links to each other. A good (wiki) page only links to another page at the first occurrence. So if you have a wiki about fruits, when you mention apple in a page at first time, you want to link it to the corresponding page, but any more mentions should not appear as a link.

We can create a dictionary about where we want to link, and for what appearances we want to change links.

The plugin will get the links one-by-one, and change the first keyword in a document to a link. For every document.

No more missing links, everything is automatically cross-linked to each other!

Options

dictionary

Default: {}

An object where the key is the link, and the value is a key-word list.

const dictionary = {
  '/apple.md': ['apple', 'apples'],
  '/pear.md': ['pear', 'pears'],
  '/fruit.md': ['fruit', 'fruits'],
}

wholeWords

Default: true

Match to whole words.

const dictionary = {'/berry.md': ['berry']}

md
  .use(crosslinker, {dictionary, wholeWords: true})
  .render('Test raspberry is a berry?')
//the same as 
md
  .render('Test raspberry is a [berry](/berry.md)?')

md
  .use(crosslinker, {dictionary, wholeWords: false})
  .render('Test raspberry is a berry?')
//the same as 
md
  .render('Test rasp[berry](/berry.md) is a berry?')

Dependencies (0)

    Dev Dependencies (1)

    Package Sidebar

    Install

    npm i markdown-it-auto-crosslinker

    Weekly Downloads

    2

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    4.92 kB

    Total Files

    4

    Last publish

    Collaborators

    • tg44