mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 05:37:34 +03:00
Extracted markdown-html-renderer to @tryghost/kg-markdown-html-renderer
no issue - prep for further extraction of mobiledoc cards and renderer
This commit is contained in:
parent
299c08b079
commit
c65c9c1e5e
@ -9,11 +9,11 @@ module.exports = function markdownCardDefinition() {
|
||||
},
|
||||
|
||||
render: function (opts) {
|
||||
let renderers = require('../renderers');
|
||||
let markdownHtmlRenderer = require('@tryghost/kg-markdown-html-renderer');
|
||||
let payload = opts.payload;
|
||||
let version = opts.options && opts.options.version || 2;
|
||||
// convert markdown to HTML ready for insertion into dom
|
||||
let html = renderers.markdownHtmlRenderer.render(payload.markdown || '');
|
||||
let html = markdownHtmlRenderer.render(payload.markdown || '');
|
||||
|
||||
if (!html) {
|
||||
return '';
|
||||
|
@ -1,9 +1,5 @@
|
||||
module.exports = {
|
||||
get mobiledocHtmlRenderer() {
|
||||
return require('./mobiledoc-html-renderer');
|
||||
},
|
||||
|
||||
get markdownHtmlRenderer() {
|
||||
return require('./markdown-html-renderer');
|
||||
}
|
||||
};
|
||||
|
@ -1,54 +0,0 @@
|
||||
const MarkdownIt = require('markdown-it');
|
||||
|
||||
const markdownIt = new MarkdownIt({
|
||||
html: true,
|
||||
breaks: true,
|
||||
linkify: true
|
||||
})
|
||||
.use(require('markdown-it-footnote'))
|
||||
.use(require('markdown-it-lazy-headers'))
|
||||
.use(require('markdown-it-mark'))
|
||||
.use(function namedHeaders(md) {
|
||||
// match legacy Showdown IDs
|
||||
const slugify = function (inputString, usedHeaders) {
|
||||
let slug = inputString.replace(/[^\w]/g, '').toLowerCase();
|
||||
if (usedHeaders[slug]) {
|
||||
usedHeaders[slug] += 1;
|
||||
slug += usedHeaders[slug];
|
||||
}
|
||||
return slug;
|
||||
};
|
||||
const originalHeadingOpen = md.renderer.rules.heading_open;
|
||||
|
||||
// originally from https://github.com/leff/markdown-it-named-headers
|
||||
// moved here to avoid pulling in http://stringjs.com dependency
|
||||
md.renderer.rules.heading_open = function (tokens, idx, something, somethingelse, self) {
|
||||
const usedHeaders = {};
|
||||
|
||||
tokens[idx].attrs = tokens[idx].attrs || [];
|
||||
|
||||
const title = tokens[idx + 1].children.reduce(function (acc, t) {
|
||||
return acc + t.content;
|
||||
}, '');
|
||||
|
||||
const slug = slugify(title, usedHeaders);
|
||||
tokens[idx].attrs.push(['id', slug]);
|
||||
|
||||
if (originalHeadingOpen) {
|
||||
return originalHeadingOpen.apply(this, arguments);
|
||||
} else {
|
||||
return self.renderToken.apply(self, arguments);
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
// configure linkify-it
|
||||
markdownIt.linkify.set({
|
||||
fuzzyLink: false
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
render: function (markdown) {
|
||||
return markdownIt.render(markdown);
|
||||
}
|
||||
};
|
@ -43,6 +43,7 @@
|
||||
"@sentry/node": "5.15.0",
|
||||
"@tryghost/errors": "^0.1.0",
|
||||
"@tryghost/helpers": "1.1.23",
|
||||
"@tryghost/kg-markdown-html-renderer": "1.0.0",
|
||||
"@tryghost/members-api": "0.18.0",
|
||||
"@tryghost/members-ssr": "0.7.4",
|
||||
"@tryghost/social-urls": "0.1.6",
|
||||
@ -94,10 +95,6 @@
|
||||
"knex-migrator": "3.4.2",
|
||||
"lodash": "4.17.15",
|
||||
"mailgun-js": "0.22.0",
|
||||
"markdown-it": "10.0.0",
|
||||
"markdown-it-footnote": "3.0.2",
|
||||
"markdown-it-lazy-headers": "0.1.3",
|
||||
"markdown-it-mark": "3.0.0",
|
||||
"metascraper": "5.11.6",
|
||||
"metascraper-author": "5.11.6",
|
||||
"metascraper-description": "5.11.6",
|
||||
|
21
yarn.lock
21
yarn.lock
@ -329,6 +329,19 @@
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/kg-clean-basic-html/-/kg-clean-basic-html-0.1.5.tgz#21cbe9036472c04b2320b1feb359c9c40ff3a300"
|
||||
integrity sha512-jl+NKYryIL+KUQb4XNcMgu9l/K12oASgZYuRqi6GCm0JKhz1qD56vavIpKAlPjJyMOhSfD0MicoX887ijgvqyQ==
|
||||
|
||||
"@tryghost/kg-markdown-html-renderer@1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/kg-markdown-html-renderer/-/kg-markdown-html-renderer-1.0.0.tgz#7a68a5700955b031b29b3a70f7ab5b5391d7746e"
|
||||
integrity sha512-MC+rxwaxkM7g+EkihYr6dmyc8CUkVVahDxjxEcKlVAVWpnB8GN/paaS1Lgv9n9KxqEHCuvewhCDPwH93sczTNg==
|
||||
dependencies:
|
||||
bluebird "^3.7.2"
|
||||
ghost-ignition "^4.1.0"
|
||||
lodash "^4.17.15"
|
||||
markdown-it "^10.0.0"
|
||||
markdown-it-footnote "^3.0.2"
|
||||
markdown-it-lazy-headers "^0.1.3"
|
||||
markdown-it-mark "^3.0.0"
|
||||
|
||||
"@tryghost/kg-parser-plugins@0.9.0":
|
||||
version "0.9.0"
|
||||
resolved "https://registry.yarnpkg.com/@tryghost/kg-parser-plugins/-/kg-parser-plugins-0.9.0.tgz#6ff9a0cb8101978787bfa3f77d2da652c2d786b1"
|
||||
@ -5439,22 +5452,22 @@ markdown-escapes@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.3.tgz#6155e10416efaafab665d466ce598216375195f5"
|
||||
integrity sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==
|
||||
|
||||
markdown-it-footnote@3.0.2:
|
||||
markdown-it-footnote@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it-footnote/-/markdown-it-footnote-3.0.2.tgz#1575ee7a093648d4e096aa33386b058d92ac8bc1"
|
||||
integrity sha512-JVW6fCmZWjvMdDQSbOT3nnOQtd9iAXmw7hTSh26+v42BnvXeVyGMDBm5b/EZocMed2MbCAHiTX632vY0FyGB8A==
|
||||
|
||||
markdown-it-lazy-headers@0.1.3:
|
||||
markdown-it-lazy-headers@^0.1.3:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it-lazy-headers/-/markdown-it-lazy-headers-0.1.3.tgz#e70dd4da79c87a9ce82ca4701b8b7c0e2d72297b"
|
||||
integrity sha1-5w3U2nnIepzoLKRwG4t8Di1yKXs=
|
||||
|
||||
markdown-it-mark@3.0.0:
|
||||
markdown-it-mark@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it-mark/-/markdown-it-mark-3.0.0.tgz#27c3e39ef3cc310b2dde5375082c9fa912983cda"
|
||||
integrity sha512-HqMWeKfMMOu4zBO0emmxsoMWmbf2cPKZY1wP6FsTbKmicFfp5y4L3KXAsNeO1rM6NTJVOrNlLKMPjWzriBGspw==
|
||||
|
||||
markdown-it@10.0.0:
|
||||
markdown-it@^10.0.0:
|
||||
version "10.0.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc"
|
||||
integrity sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==
|
||||
|
Loading…
Reference in New Issue
Block a user