makestatic-permalink
v1.0.6
Published
Convert headings to permalinks
Downloads
4
Maintainers
Readme
Permalink
Convert headings to permalinks
For each heading in each matched HTML page assign it a unique id
attribute and optionally convert the heading text to an anchor.
Install
yarn add makestatic-permalink
API
Permalink
Convert headings to permalinks.
Permalink
new Permalink(context, options)
Create a Permalink plugin.
If a heading already has an id
attribute it is not overwritten.
If the from
and to
options are given any headings falling outside the
range are not modified. If you give from
and to
values outside the
1-6 range they are clamped. These options are inclusive so setting
from: 2
and to: 3
will modify h2
and h3
elements only.
If the to
value is less than the from
value it is set to equal the
from
value. You cannot configure the range to select no elements.
The default slug
implementation should work well but if you wish to use
your own these are the implementation details.
The slug
function has the signature:
slug (element, text, seen, options = {})
Where element
is the heading DOM element, text
is the text for the
element that should be used to generate the id
, seen
is a map that
should be used to track duplicate identifiers and options
is a
reference to the plugin instance. Implementations should respect the
lower
option.
The slug
function must return a unique string identifier for the given
element.
context
Object the processing context.options
Object plugin options.
Options
from
Number=1 start heading level.to
Number=6 end heading level.link
Boolean=true convert heading text to a link.classNames
String=permalink class names for the link.lower
Boolean=true convert id to lowercase.slug
Function custom slug function.
.sources
Permalink.prototype.sources(file, context, options)
For each HTML file with an AST find matching headings and assign a
unique id
attribute to the heading.
file
File the current file.context
Object the processing context.options
Object plugin options.
License
MIT
Created by mkdoc on March 12, 2017