'use strict' /* global hexo */ /* * Add Link button next to a heading * based on https://github.com/hexojs/hexo-renderer-marked/blob/master/lib/renderer.js */ const { slugize, stripHTML, unescapeHTML: unescape } = require('hexo-util') const anchorId = (str, transformOption) => { return slugize(stripHTML(unescape(str)).trim(), { transform: transformOption }); } hexo.extend.filter.register('marked:renderer', function (renderer) { const { config } = this renderer.heading = function (text, level) { const { modifyAnchors } = config.marked const transformOption = modifyAnchors; let id = anchorId(text, transformOption) const headingId = {}; // Add a number after id if repeated if (headingId[id]) { id += `-${headingId[id]++}` } else { headingId[id] = 1 } // add headerlink return `${text} ยง` } })