Socket
Socket
Sign inDemoInstall

@rigor789/remark-autolink-headings

Package Overview
Dependencies
3
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @rigor789/remark-autolink-headings

Automatically add links to headings in Markdown.


Version published
Weekly downloads
158
increased by12.86%
Maintainers
1
Install size
38.2 kB
Created
Weekly downloads
 

Readme

Source

Automatically add links to headings in Markdown.

This package integrates with remark-html. It may be better to work with rehype, which is specifically made for HTML, and to use rehype-autolink-headings instead of this package.

Install

With npm do:

npm install remark-autolink-headings --save

Example

remark-autolink-headings is designed to work with remark-html & remark-slug, and creates GitHub style links for each of your headings.

Say we have the following markdown file, example.md:

# Lorem ipsum 😪
## dolor—sit—amet
### consectetur & adipisicing
#### elit
##### elit

And our script, example.js, looks as follows:

var fs = require('fs');
var unified = require('unified');
var markdown = require('remark-parse');
var html = require('remark-html');
var slug = require('remark-slug');
var headings = require('remark-autolink-headings');

var result = unified()
    .use(markdown)
    .use(slug)
    // Note that this module must be included after remark-slug.
    .use(headings)
    .use(html)
    .processSync(fs.readFileSync('example.md'))
    .toString();

console.log(result);

Now, running node example yields:

<h1 id="lorem-ipsum-"><a href="#lorem-ipsum-" aria-hidden="true"><span class="icon icon-link"></span></a>Lorem ipsum 😪</h1>
<h2 id="dolorsitamet"><a href="#dolorsitamet" aria-hidden="true"><span class="icon icon-link"></span></a>dolor—sit—amet</h2>
<h3 id="consectetur--adipisicing"><a href="#consectetur--adipisicing" aria-hidden="true"><span class="icon icon-link"></span></a>consectetur &#x26; adipisicing</h3>
<h4 id="elit"><a href="#elit" aria-hidden="true"><span class="icon icon-link"></span></a>elit</h4>
<h5 id="elit-1"><a href="#elit-1" aria-hidden="true"><span class="icon icon-link"></span></a>elit</h5>

API

remark.use(headings, [options])

options
behaviour

Type: string Default: prepend

Set this to prepend to inject the link before the heading text; append after it, and wrap to wrap the whole heading text with the link. Note that supplying wrap will ignore any value defined by the content option.

content

Type: Object|Array Default: {type: 'element', tagName: 'span', properties: {className: [icon, `${icon}-${link}`]} }

Supply a list of HAST nodes or a single node here. For further details, please refer to the specification at https://github.com/syntax-tree/hast.

linkProperties

Type: object

By default, when using the append or prepend behaviour, this will add aria-hidden="false" to the anchor. When using the wrap behaviour, this is left empty for you to add any extra HTML attributes.

Contributing

Pull requests are welcome. If you add functionality, then please add unit tests to cover it.

License

MIT © Ben Briggs

Keywords

FAQs

Last updated on 13 Feb 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc