08-27-周三_17-09-29
This commit is contained in:
103
node_modules/prismjs/components/prism-markup.js
generated
vendored
Normal file
103
node_modules/prismjs/components/prism-markup.js
generated
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
Prism.languages.markup = {
|
||||
'comment': /<!--[\s\S]*?-->/,
|
||||
'prolog': /<\?[\s\S]+?\?>/,
|
||||
'doctype': {
|
||||
pattern: /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!<!--)[^"'\]]|"[^"]*"|'[^']*'|<!--[\s\S]*?-->)*\]\s*)?>/i,
|
||||
greedy: true
|
||||
},
|
||||
'cdata': /<!\[CDATA\[[\s\S]*?]]>/i,
|
||||
'tag': {
|
||||
pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,
|
||||
greedy: true,
|
||||
inside: {
|
||||
'tag': {
|
||||
pattern: /^<\/?[^\s>\/]+/i,
|
||||
inside: {
|
||||
'punctuation': /^<\/?/,
|
||||
'namespace': /^[^\s>\/:]+:/
|
||||
}
|
||||
},
|
||||
'attr-value': {
|
||||
pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,
|
||||
inside: {
|
||||
'punctuation': [
|
||||
/^=/,
|
||||
{
|
||||
pattern: /^(\s*)["']|["']$/,
|
||||
lookbehind: true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
'punctuation': /\/?>/,
|
||||
'attr-name': {
|
||||
pattern: /[^\s>\/]+/,
|
||||
inside: {
|
||||
'namespace': /^[^\s>\/:]+:/
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
'entity': /&#?[\da-z]{1,8};/i
|
||||
};
|
||||
|
||||
Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =
|
||||
Prism.languages.markup['entity'];
|
||||
|
||||
// Plugin to make entity title show the real entity, idea by Roman Komarov
|
||||
Prism.hooks.add('wrap', function(env) {
|
||||
|
||||
if (env.type === 'entity') {
|
||||
env.attributes['title'] = env.content.replace(/&/, '&');
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {
|
||||
/**
|
||||
* Adds an inlined language to markup.
|
||||
*
|
||||
* An example of an inlined language is CSS with `<style>` tags.
|
||||
*
|
||||
* @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as
|
||||
* case insensitive.
|
||||
* @param {string} lang The language key.
|
||||
* @example
|
||||
* addInlined('style', 'css');
|
||||
*/
|
||||
value: function addInlined(tagName, lang) {
|
||||
var includedCdataInside = {};
|
||||
includedCdataInside['language-' + lang] = {
|
||||
pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
|
||||
lookbehind: true,
|
||||
inside: Prism.languages[lang]
|
||||
};
|
||||
includedCdataInside['cdata'] = /^<!\[CDATA\[|\]\]>$/i;
|
||||
|
||||
var inside = {
|
||||
'included-cdata': {
|
||||
pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
|
||||
inside: includedCdataInside
|
||||
}
|
||||
};
|
||||
inside['language-' + lang] = {
|
||||
pattern: /[\s\S]+/,
|
||||
inside: Prism.languages[lang]
|
||||
};
|
||||
|
||||
var def = {};
|
||||
def[tagName] = {
|
||||
pattern: RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[[\s\S]*?\]\]>\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),
|
||||
lookbehind: true,
|
||||
greedy: true,
|
||||
inside: inside
|
||||
};
|
||||
|
||||
Prism.languages.insertBefore('markup', 'cdata', def);
|
||||
}
|
||||
});
|
||||
|
||||
Prism.languages.xml = Prism.languages.extend('markup', {});
|
||||
Prism.languages.html = Prism.languages.markup;
|
||||
Prism.languages.mathml = Prism.languages.markup;
|
||||
Prism.languages.svg = Prism.languages.markup;
|
Reference in New Issue
Block a user