vuepress-plugin-auto-crosslinker

1.0.1 • Public • Published

Vuepress Plugin auto-crosslinker

npm

This is a vuepress plugin wrapper around markdown-it-auto-crosslinker!

Installation

npm i vuepress-plugin-auto-crosslinker -D

Usage

plugins: {
    'auto-crosslinker': { /* options */ }
},

Note that Vuepress allows multiple syntaxes to register plugins. See Vuepress documentation on how to use a plugin for more information.

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?')

Package Sidebar

Install

npm i vuepress-plugin-auto-crosslinker

Weekly Downloads

3

Version

1.0.1

License

MIT

Unpacked Size

2.85 kB

Total Files

3

Last publish

Collaborators

  • tg44