Skip to content

Commit 6e0d6f2

Browse files
author
undefined
committed
update render
1 parent c72cd5f commit 6e0d6f2

File tree

3 files changed

+1731
-1704
lines changed

3 files changed

+1731
-1704
lines changed

lib/core.js

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
var loaderUtils = require('loader-utils');
2-
var hljs = require('highlight.js');
3-
var cheerio = require('cheerio');
4-
var markdown = require('markdown-it');
5-
var Token = require('markdown-it/lib/token');
1+
var loaderUtils = require("loader-utils");
2+
var hljs = require("highlight.js");
3+
var cheerio = require("cheerio");
4+
var markdown = require("markdown-it");
5+
var Token = require("markdown-it/lib/token");
66

77
/**
88
* `<pre></pre>` => `<pre v-pre></pre>`
@@ -11,7 +11,7 @@ var Token = require('markdown-it/lib/token');
1111
* @return {string}
1212
*/
1313
var addVuePreviewAttr = function(str) {
14-
return str.replace(/(<pre|<code)/g, '$1 v-pre');
14+
return str.replace(/(<pre|<code)/g, "$1 v-pre");
1515
};
1616

1717
/**
@@ -21,7 +21,7 @@ var addVuePreviewAttr = function(str) {
2121
*/
2222
var renderHighlight = function(str, lang) {
2323
if (!(lang && hljs.getLanguage(lang))) {
24-
return '';
24+
return "";
2525
}
2626

2727
return hljs.highlight(lang, str, true).value;
@@ -37,30 +37,24 @@ var renderVueTemplate = function(html, wrapper) {
3737
decodeEntities: false,
3838
lowerCaseAttributeNames: false,
3939
lowerCaseTags: false,
40-
xmlMode: true,
40+
xmlMode: true
4141
});
4242

4343
var output = {
44-
style: $.html('style'),
44+
style: $.html("style"),
4545
// get only the first script child. Causes issues if multiple script files in page.
46-
script: $.html($('script').first())
46+
script: $.html($("script").first())
4747
};
4848
var result;
4949

50-
$('style').remove();
51-
$('script').remove();
52-
if(wrapper) {
53-
result =
54-
`<template><${wrapper}>` +
55-
$.html() +
56-
`</${wrapper}></template>\n`
50+
$("style").remove();
51+
$("script").remove();
52+
if (wrapper) {
53+
result = `<template><${wrapper}>` + $.html() + `</${wrapper}></template>\n`;
5754
} else {
58-
result =
59-
`<template>` +
60-
$.html() +
61-
`</template>\n`
55+
result = `<template>` + $.html() + `</template>\n`;
6256
}
63-
result += output.style + '\n' + output.script;
57+
result += output.style + "\n" + output.script;
6458

6559
return result;
6660
};
@@ -75,15 +69,15 @@ module.exports = function(source) {
7569
preventExtract = true;
7670
}
7771

78-
if (typeof opts.render === 'function') {
72+
if (typeof opts.render === "function") {
7973
parser = opts;
8074
} else {
8175
opts = Object.assign(
8276
{
83-
preset: 'default',
77+
preset: "default",
8478
html: true,
8579
highlight: renderHighlight,
86-
wrapper: 'section'
80+
wrapper: "section"
8781
},
8882
opts
8983
);
@@ -98,16 +92,16 @@ module.exports = function(source) {
9892

9993
//add ruler:extract script and style tags from html token content
10094
!preventExtract &&
101-
parser.core.ruler.push('extract_script_or_style', function replace(
95+
parser.core.ruler.push("extract_script_or_style", function replace(
10296
state
10397
) {
104-
let tag_reg = new RegExp('<(script|style)(?:[^<]|<)+</\\1>', 'g');
98+
let tag_reg = new RegExp("<(script|style)(?:[^<]|<)+</\\1>", "g");
10599
let newTokens = [];
106100
state.tokens
107-
.filter(token => token.type == 'fence' && token.info == 'html')
101+
.filter(token => token.type == "fence" && token.info == "html")
108102
.forEach(token => {
109103
let tokens = (token.content.match(tag_reg) || []).map(content => {
110-
let t = new Token('html_block', '', 0);
104+
let t = new Token("html_block", "", 0);
111105
t.content = content;
112106
return t;
113107
});
@@ -147,20 +141,18 @@ module.exports = function(source) {
147141
}
148142
}
149143

150-
overrideParserRules(['code_inline', 'code_block', 'fence']);
144+
overrideParserRules(["code_inline", "code_block", "fence"]);
151145

152146
if (preprocess) {
153147
source = preprocess.call(this, parser, source);
154148
}
155149

156-
source = source.replace(/@/g, '__at__');
157-
158-
var content = parser.render(source).replace(/__at__/g, '@');
150+
var content = parser.render(source);
159151
var result = renderVueTemplate(content, opts.wrapper);
160152

161153
if (opts.raw) {
162154
return result;
163155
} else {
164-
return 'module.exports = ' + JSON.stringify(result);
156+
return "module.exports = " + JSON.stringify(result);
165157
}
166158
};

0 commit comments

Comments
 (0)