Resolve dependency module requiring

* es5 style module exports
* remove script tag require
* webpack config ProvidePlugin

Note that this commit only fix JavaScript module loading runtime error.
This commit is contained in:
Yukai Huang 2016-10-08 20:02:30 +08:00
parent 0be342c44d
commit 963a435ae1
9 changed files with 175 additions and 59 deletions

View file

@ -224,7 +224,7 @@ function finishView(view) {
});
//emojify
try {
emojify.run(view[0]);
emojify.run(view[0]);
} catch (err) {
console.warn(err);
}
@ -245,12 +245,12 @@ function finishView(view) {
try {
var $value = $(value);
var $ele = $(value).parent().parent();
var sequence = $value;
sequence.sequenceDiagram({
theme: 'simple'
});
$ele.addClass('sequence-diagram');
$value.children().unwrap().unwrap();
var svg = $ele.find('> svg');
@ -266,7 +266,7 @@ function finishView(view) {
try {
var $value = $(value);
var $ele = $(value).parent().parent();
var chart = flowchart.parse($value.text());
$value.html('');
chart.drawSVG(value, {
@ -275,7 +275,7 @@ function finishView(view) {
'font-size': '16px',
'font-family': "'Andale Mono', monospace"
});
$ele.addClass('flow-chart');
$value.children().unwrap().unwrap();
} catch (err) {
@ -288,10 +288,10 @@ function finishView(view) {
try {
var $value = $(value);
var $ele = $(value).parent().parent();
var graphviz = Viz($value.text());
$value.html(graphviz);
$ele.addClass('graphviz');
$value.children().unwrap().unwrap();
} catch (err) {
@ -304,12 +304,12 @@ function finishView(view) {
try {
var $value = $(value);
var $ele = $(value).parent().parent();
var mermaidError = null;
mermaid.parseError = function (err, hash) {
mermaidError = err;
};
if (mermaidAPI.parse($value.text())) {
$ele.addClass('mermaid');
$ele.html($value.text());
@ -489,6 +489,8 @@ function exportToRawHTML(view) {
saveAs(blob, filename);
}
var common = require('./common.js');
var serverurl = common.serverurl;
//extract markdown body to html and compile to template
function exportToHTML(view) {
var title = renderTitle(ui.area.markdown);
@ -794,7 +796,10 @@ emojify.setConfig({
ignore_emoticons: true
});
var md = window.markdownit('default', {
var markdownit = require('markdown-it');
var markdownitContainer = require('markdown-it-container');
var md = markdownit('default', {
html: true,
breaks: true,
langPrefix: "",
@ -802,25 +807,27 @@ var md = window.markdownit('default', {
typographer: true,
highlight: highlightRender
});
md.use(window.markdownitAbbr);
md.use(window.markdownitFootnote);
md.use(window.markdownitDeflist);
md.use(window.markdownitMark);
md.use(window.markdownitIns);
md.use(window.markdownitSub);
md.use(window.markdownitSup);
md.use(window.markdownitMathjax);
md.use(window.markdownitImsize);
md.use(require('markdown-it-abbr'));
md.use(require('markdown-it-footnote'));
md.use(require('markdown-it-deflist'));
md.use(require('markdown-it-mark'));
md.use(require('markdown-it-ins'));
md.use(require('markdown-it-sub'));
md.use(require('markdown-it-sup'));
md.use(require('markdown-it-mathjax'));
md.use(require('markdown-it-imsize'));
function renderContainer(tokens, idx, options, env, self) {
tokens[idx].attrJoin('role', 'alert');
tokens[idx].attrJoin('class', 'alert');
tokens[idx].attrJoin('class', 'alert-' + tokens[idx].info.trim());
return self.renderToken.apply(self, arguments);
}
md.use(window.markdownitContainer, 'success', { render: renderContainer });
md.use(window.markdownitContainer, 'info', { render: renderContainer });
md.use(window.markdownitContainer, 'warning', { render: renderContainer });
md.use(window.markdownitContainer, 'danger', { render: renderContainer });
md.use(markdownitContainer, 'success', { render: renderContainer });
md.use(markdownitContainer, 'info', { render: renderContainer });
md.use(markdownitContainer, 'warning', { render: renderContainer });
md.use(markdownitContainer, 'danger', { render: renderContainer });
md.renderer.rules.image = function (tokens, idx, options, env, self) {
tokens[idx].attrJoin('class', 'raw');
@ -865,6 +872,9 @@ md.renderer.rules.fence = function (tokens, idx, options, env, self) {
+ '</code></pre>\n';
};
/* Defined regex markdown it plugins */
var Plugin = require('markdown-it-regexp');
//youtube
var youtubePlugin = new Plugin(
// regexp to match
@ -1011,4 +1021,23 @@ md.use(gistPlugin);
md.use(tocPlugin);
md.use(slidesharePlugin);
md.use(speakerdeckPlugin);
md.use(pdfPlugin);
md.use(pdfPlugin);
module.exports = {
md: md,
createtime: createtime,
lastchangetime: lastchangetime,
updateLastChange: updateLastChange,
lastchangeui: lastchangeui,
lastchangeuser: lastchangeuser,
postProcess: postProcess,
finishView: finishView,
autoLinkify: autoLinkify,
deduplicatedHeaderId: deduplicatedHeaderId,
renderTOC: renderTOC,
renderTitle: renderTitle,
renderFilename: renderFilename,
generateToc: generateToc,
smoothHashScroll: smoothHashScroll,
scrollToHash: scrollToHash
};