diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-03-08 10:22:15 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-12-22 15:00:37 +0100 |
commit | a7695cf02fcff28bcc7af530c42b858702e66165 (patch) | |
tree | 5f02f60195459aaa7f496204497b000dd2a3a801 /packages/gitbook-markdown/lib | |
parent | 2516137d4e2b59b728f8562edb0e4c929aa6c5f8 (diff) | |
download | gitbook-a7695cf02fcff28bcc7af530c42b858702e66165.zip gitbook-a7695cf02fcff28bcc7af530c42b858702e66165.tar.gz gitbook-a7695cf02fcff28bcc7af530c42b858702e66165.tar.bz2 |
Use markdown-renderer instead of regex
Diffstat (limited to 'packages/gitbook-markdown/lib')
-rw-r--r-- | packages/gitbook-markdown/lib/page.js | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/packages/gitbook-markdown/lib/page.js b/packages/gitbook-markdown/lib/page.js index de0ed98..b7af03b 100644 --- a/packages/gitbook-markdown/lib/page.js +++ b/packages/gitbook-markdown/lib/page.js @@ -3,30 +3,26 @@ var kramed = require('kramed'); var hljs = require('highlight.js'); var lnormalize = require('./utils/lang').normalize; +var mdRenderer = require('kramed-markdown-renderer'); var RAW_START = "{% raw %}"; var RAW_END = "{% endraw %}"; -var CODEBLOCKS = { - md: /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/, - fences: /(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm -}; function preparePage(src) { - // GFM Fences - src = src.replace(CODEBLOCKS.fences, function(wholeMatch, m1, m2, m3, m4) { - wholeMatch = wholeMatch.slice(m1.length); - return m1+RAW_START+wholeMatch+RAW_END; - }); + var renderer = mdRenderer(); + + var escape = function(func, code, lang, escaped) { + return RAW_START+func(code, lang, escaped)+RAW_END; + }; - // Normal codeblocks - src += "~0"; - src = src.replace(CODEBLOCKS.md, function(all, m1, m2) { - all = all.slice(0, -m2.length); - return RAW_START+all+RAW_END+m2; + renderer.code = _.wrap(renderer.code, escape); + renderer.codespan = _.wrap(renderer.codespan, escape); + + var options = _.extend({}, kramed.defaults, { + renderer: renderer }); - src = src.replace(/~0/, ""); - return src; + return kramed(src, options); } function parsePage(src) { |