Added anchors for document headings
This commit is contained in:
@ -1,14 +1,27 @@
|
||||
import slug from 'slug';
|
||||
import truncate from 'truncate-html';
|
||||
import marked, { Renderer } from 'marked';
|
||||
import highlight from 'highlight.js';
|
||||
|
||||
slug.defaults.mode ='rfc3986';
|
||||
|
||||
const renderer = new Renderer();
|
||||
renderer.code = (code, language) => {
|
||||
const validLang = !!(language && highlight.getLanguage(language));
|
||||
const highlighted = validLang ? highlight.highlight(language, code).value : code;
|
||||
return `<pre><code class="hljs ${language}">${highlighted}</code></pre>`;
|
||||
};
|
||||
|
||||
renderer.heading = (text, level) => {
|
||||
const headingSlug = slug(text);
|
||||
return `
|
||||
<h${level}>
|
||||
<a name="${headingSlug}" class="anchor" href="#${headingSlug}">
|
||||
<span class="header-link"> </span>
|
||||
</a>
|
||||
${text}
|
||||
</h${level}>
|
||||
`;
|
||||
},
|
||||
|
||||
marked.setOptions({
|
||||
renderer: renderer,
|
||||
|
Reference in New Issue
Block a user