Skip to content
This repository was archived by the owner on Apr 3, 2024. It is now read-only.

Commit 04d9675

Browse files
committed
Add new getParser public API
1 parent c0902bf commit 04d9675

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

index.js

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@ var defaults = require('lodash.defaults')
22
var render = require('./lib/render')
33
var sanitize = require('./lib/sanitize')
44

5+
var defaultOptions = {
6+
sanitize: true,
7+
linkify: true,
8+
highlightSyntax: true,
9+
prefixHeadingIds: true,
10+
enableHeadingLinkIcons: true,
11+
serveImagesWithCDN: false,
12+
debug: false,
13+
package: null
14+
}
15+
516
var marky = module.exports = function (markdown, options) {
617
var html
718

@@ -10,16 +21,7 @@ var marky = module.exports = function (markdown, options) {
1021
}
1122

1223
options = options || {}
13-
defaults(options, {
14-
sanitize: true,
15-
linkify: true,
16-
highlightSyntax: true,
17-
prefixHeadingIds: true,
18-
enableHeadingLinkIcons: true,
19-
serveImagesWithCDN: false,
20-
debug: false,
21-
package: null
22-
})
24+
defaults(options, defaultOptions)
2325

2426
var log = function (msg) {
2527
if (options.debug) {
@@ -43,3 +45,7 @@ var marky = module.exports = function (markdown, options) {
4345
marky.parsePackageDescription = function (description) {
4446
return sanitize(render.renderPackageDescription(description))
4547
}
48+
49+
marky.getParser = function (options) {
50+
return render.getParser(defaults(options || {}, defaultOptions))
51+
}

lib/render.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ if (typeof process.browser === 'undefined') {
4646
cleanup(highlighter.registry.grammars)
4747
}
4848

49-
var render = module.exports = function (html, options) {
49+
var render = module.exports = function (markdown, options) {
50+
return render.getParser(options).render(markdown)
51+
}
52+
53+
render.getParser = function (options) {
5054
var mdOptions = {
5155
html: true,
5256
langPrefix: 'highlight ',
@@ -79,7 +83,11 @@ var render = module.exports = function (html, options) {
7983
if (options.highlightSyntax) parser.use(codeWrap)
8084
if (options.serveImagesWithCDN) parser.use(cdnImages, {package: options.package})
8185

82-
return githubLinkify(parser).render(html)
86+
return githubLinkify(parser)
87+
}
88+
89+
render.renderPackageDescription = function (description) {
90+
return MD({html: true}).renderInline(description)
8391
}
8492

8593
var mappings = {
@@ -108,7 +116,3 @@ function scopeNameFromLang (highlighter, lang) {
108116

109117
return name
110118
}
111-
112-
render.renderPackageDescription = function (description) {
113-
return MD({html: true}).renderInline(description)
114-
}

0 commit comments

Comments
 (0)