UNPKG

vue-carousel-3d

Version:

Beautiful, flexible and touch supported 3D Carousel for Vue.js

55 lines (44 loc) 1.27 kB
'use strict'; var marked = require('marked'); var assign = require('object-assign'); var stripIndent = require('strip-indent'); var util = require('hexo-util'); var highlight = util.highlight; var stripHTML = util.stripHTML; var MarkedRenderer = marked.Renderer; function Renderer() { MarkedRenderer.apply(this); this._headingId = {}; } require('util').inherits(Renderer, MarkedRenderer); // Add id attribute to headings Renderer.prototype.heading = function(text, level) { var id = anchorId(stripHTML(text)); var headingId = this._headingId; // Add a number after id if repeated if (headingId[id]) { id += '-' + headingId[id]++; } else { headingId[id] = 1; } // add headerlink return '<h' + level + ' id="' + id + '"><a href="#' + id + '" class="headerlink" title="' + stripHTML(text) + '"></a>' + text + '</h' + level + '>'; }; function anchorId(str) { return util.slugize(str.trim()); } marked.setOptions({ langPrefix: '', highlight: function(code, lang) { return highlight(stripIndent(code), { lang: lang, gutter: false, wrap: false }); } }); module.exports = function(data, options) { return marked(data.text, assign({ renderer: new Renderer() }, this.config.marked, options)); };