2019-02-25 18:04:49 +07:00
|
|
|
const createCard = require('../create-card');
|
|
|
|
|
|
|
|
module.exports = createCard({
|
2018-02-01 12:40:49 +01:00
|
|
|
name: 'markdown',
|
2017-11-01 13:44:54 +00:00
|
|
|
type: 'dom',
|
2019-09-20 14:31:42 +01:00
|
|
|
config: {
|
|
|
|
commentWrapper: true
|
|
|
|
},
|
2017-11-01 13:44:54 +00:00
|
|
|
render: function (opts) {
|
2018-05-04 14:59:39 +01:00
|
|
|
let converters = require('../converters');
|
|
|
|
let payload = opts.payload;
|
2017-11-01 13:44:54 +00:00
|
|
|
// convert markdown to HTML ready for insertion into dom
|
2018-05-04 14:59:39 +01:00
|
|
|
let html = converters.markdownConverter.render(payload.markdown || '');
|
|
|
|
|
2019-02-25 18:04:49 +07:00
|
|
|
if (!html) {
|
|
|
|
return '';
|
|
|
|
}
|
|
|
|
|
2017-11-01 13:44:54 +00:00
|
|
|
// use the SimpleDOM document to create a raw HTML section.
|
|
|
|
// avoids parsing/rendering of potentially broken or unsupported HTML
|
2018-05-04 14:59:39 +01:00
|
|
|
return opts.env.dom.createRawHTMLSection(html);
|
2019-10-03 10:44:05 +01:00
|
|
|
},
|
|
|
|
|
|
|
|
absoluteToRelative(urlUtils, payload, options) {
|
|
|
|
payload.markdown = payload.markdown && urlUtils.markdownAbsoluteToRelative(payload.markdown, options);
|
|
|
|
return payload;
|
|
|
|
},
|
|
|
|
|
|
|
|
relativeToAbsolute(urlUtils, payload, options) {
|
|
|
|
payload.markdown = payload.markdown && urlUtils.markdownRelativeToAbsolute(payload.markdown, options);
|
|
|
|
return payload;
|
2017-11-01 13:44:54 +00:00
|
|
|
}
|
2019-02-25 18:04:49 +07:00
|
|
|
});
|