gulp-jsx2example
Version:
convert jsx file to html (react demo)
48 lines (42 loc) • 1.35 kB
JavaScript
var marked = require('marked')
var renderer = new marked.Renderer()
var hljs = require('./hljs')
var fs = require('fs')
renderer.code = function(code, lang) {
return hljs.render(code, lang)
}
renderer.heading = function(text, level) {
var escapedText = text.replace(/\s+/g, '-')
escapedText = escapedText.toLowerCase()
escapedText = escapedText.replace(/^-+?|-+?$/, '')
return '<h' + level + '>' + text + '<a id="user-content-' + escapedText + '" name="' +
escapedText +
'" class="anchor" aria-hidden="true" href="#' +
escapedText +
'"><span class="octicon octicon-link"></span></a></h' + level + '>'
}
renderer.link = function(href, title, text) {
if (href.indexOf('http') === 0) {
return '<a href="' + href + '" title="' + title + '">' + text + '</a>'
}
var fileindex = href.lastIndexOf('/')
var filename = href.substr(fileindex + 1)
if (/^([-\w]+)\.md$/.test(filename)) {
href = href.replace(/\.md$/, '.html')
}
title = title || text
return '<a href="' + href + '" title="' + title + '">' + text + '</a>'
}
marked.setOptions({
renderer: renderer
})
function formatMarkdown(str) {
var markdownHtml = marked(str)
return markdownHtml
}
module.exports = function(filepath) {
var content = fs.readFileSync(filepath, 'utf8')
var result = formatMarkdown(content)
return result
}