summaryrefslogtreecommitdiff
path: root/vendor/assets
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2017-03-23 16:25:23 +0000
committerPhil Hughes <me@iamphill.com>2017-03-23 16:25:23 +0000
commit32c6ea2d002cad1d63fd5982d08f977f1663c4e6 (patch)
treebe83ff6282b55aa25776386edd9bc57bb698f792 /vendor/assets
parent0ef85857268f2622a3c248e39cc359ffc9193849 (diff)
downloadgitlab-ce-32c6ea2d002cad1d63fd5982d08f977f1663c4e6.tar.gz
Updated notebooklab with latest code highlighting changes
Diffstat (limited to 'vendor/assets')
-rw-r--r--vendor/assets/javascripts/notebooklab.js2358
1 files changed, 1027 insertions, 1331 deletions
diff --git a/vendor/assets/javascripts/notebooklab.js b/vendor/assets/javascripts/notebooklab.js
index 9d2aea18c5b..e6865f51040 100644
--- a/vendor/assets/javascripts/notebooklab.js
+++ b/vendor/assets/javascripts/notebooklab.js
@@ -73,7 +73,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 32);
+/******/ return __webpack_require__(__webpack_require__.s = 30);
/******/ })
/************************************************************************/
/******/ ([
@@ -136,9 +136,9 @@ module.exports = function normalizeComponent (
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(10),
+ __webpack_require__(11),
/* template */
- __webpack_require__(28),
+ __webpack_require__(27),
/* scopeId */
null,
/* cssModules */
@@ -170,9 +170,9 @@ module.exports = Component.exports
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(5),
+ __webpack_require__(6),
/* template */
- __webpack_require__(30),
+ __webpack_require__(29),
/* scopeId */
null,
/* cssModules */
@@ -200,13 +200,40 @@ module.exports = Component.exports
/***/ }),
/* 3 */
+/***/ (function(module, exports) {
+
+var g;
+
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
+
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || Function("return this")() || (1,eval)("this");
+} catch(e) {
+ // This works if the window reference is available
+ if(typeof window === "object")
+ g = window;
+}
+
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
+
+module.exports = g;
+
+
+/***/ }),
+/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(11),
+ __webpack_require__(12),
/* template */
- __webpack_require__(27),
+ __webpack_require__(26),
/* scopeId */
null,
/* cssModules */
@@ -233,7 +260,7 @@ module.exports = Component.exports
/***/ }),
-/* 4 */
+/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -247,7 +274,7 @@ var _index = __webpack_require__(2);
var _index2 = _interopRequireDefault(_index);
-var _index3 = __webpack_require__(22);
+var _index3 = __webpack_require__(21);
var _index4 = _interopRequireDefault(_index3);
@@ -266,6 +293,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
//
//
//
+//
+//
exports.default = {
components: {
@@ -276,6 +305,11 @@ exports.default = {
cell: {
type: Object,
required: true
+ },
+ codeCssClass: {
+ type: String,
+ required: false,
+ default: ''
}
},
computed: {
@@ -292,7 +326,7 @@ exports.default = {
};
/***/ }),
-/* 5 */
+/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -302,29 +336,16 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _highlight = __webpack_require__(13);
+var _highlight = __webpack_require__(32);
var _highlight2 = _interopRequireDefault(_highlight);
-var _xml = __webpack_require__(16);
-
-var _xml2 = _interopRequireDefault(_xml);
-
-var _javascript = __webpack_require__(14);
-
-var _javascript2 = _interopRequireDefault(_javascript);
-
-var _python = __webpack_require__(15);
-
-var _python2 = _interopRequireDefault(_python);
-
var _prompt = __webpack_require__(1);
var _prompt2 = _interopRequireDefault(_prompt);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-_highlight2.default.registerLanguage('xml', _xml2.default); //
//
//
//
@@ -336,9 +357,9 @@ _highlight2.default.registerLanguage('xml', _xml2.default); //
//
//
//
-
-_highlight2.default.registerLanguage('javascript', _javascript2.default);
-_highlight2.default.registerLanguage('python', _python2.default);
+//
+//
+//
exports.default = {
components: {
@@ -349,6 +370,11 @@ exports.default = {
type: Number,
required: false
},
+ codeCssClass: {
+ type: String,
+ required: false,
+ default: ''
+ },
type: {
type: String,
required: true
@@ -369,12 +395,12 @@ exports.default = {
}
},
mounted: function mounted() {
- _highlight2.default.highlightBlock(this.$refs.code);
+ _highlight2.default.highlightElement(this.$refs.code);
}
};
/***/ }),
-/* 6 */
+/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -384,7 +410,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _marked = __webpack_require__(17);
+var _marked = __webpack_require__(14);
var _marked2 = _interopRequireDefault(_marked);
@@ -433,7 +459,7 @@ exports.default = {
};
/***/ }),
-/* 7 */
+/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -468,7 +494,7 @@ exports.default = {
//
/***/ }),
-/* 8 */
+/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -508,7 +534,7 @@ exports.default = {
//
/***/ }),
-/* 9 */
+/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -526,16 +552,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
//
//
//
+//
var _index = __webpack_require__(2);
var _index2 = _interopRequireDefault(_index);
-var _html = __webpack_require__(20);
+var _html = __webpack_require__(19);
var _html2 = _interopRequireDefault(_html);
-var _image = __webpack_require__(21);
+var _image = __webpack_require__(20);
var _image2 = _interopRequireDefault(_image);
@@ -543,6 +570,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
exports.default = {
props: {
+ codeCssClass: {
+ type: String,
+ required: false,
+ default: ''
+ },
count: {
type: Number,
required: false,
@@ -608,7 +640,7 @@ exports.default = {
};
/***/ }),
-/* 10 */
+/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -640,7 +672,7 @@ exports.default = {
};
/***/ }),
-/* 11 */
+/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -650,7 +682,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _cells = __webpack_require__(12);
+var _cells = __webpack_require__(13);
exports.default = {
components: {
@@ -661,6 +693,11 @@ exports.default = {
notebook: {
type: Object,
required: true
+ },
+ codeCssClass: {
+ type: String,
+ required: false,
+ default: ''
}
},
methods: {
@@ -683,9 +720,10 @@ exports.default = {
//
//
//
+//
/***/ }),
-/* 12 */
+/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -695,7 +733,7 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
-var _markdown = __webpack_require__(19);
+var _markdown = __webpack_require__(18);
Object.defineProperty(exports, 'MarkdownCell', {
enumerable: true,
@@ -704,7 +742,7 @@ Object.defineProperty(exports, 'MarkdownCell', {
}
});
-var _code = __webpack_require__(18);
+var _code = __webpack_require__(17);
Object.defineProperty(exports, 'CodeCell', {
enumerable: true,
@@ -716,1239 +754,7 @@ Object.defineProperty(exports, 'CodeCell', {
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/***/ }),
-/* 13 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/*
-Syntax highlighting with language autodetection.
-https://highlightjs.org/
-*/
-
-(function(factory) {
-
- // Find the global object for export to both the browser and web workers.
- var globalObject = typeof window === 'object' && window ||
- typeof self === 'object' && self;
-
- // Setup highlight.js for different environments. First is Node.js or
- // CommonJS.
- if(true) {
- factory(exports);
- } else if(globalObject) {
- // Export hljs globally even when using AMD for cases when this script
- // is loaded with others that may still expect a global hljs.
- globalObject.hljs = factory({});
-
- // Finally register the global hljs with AMD.
- if(typeof define === 'function' && define.amd) {
- define([], function() {
- return globalObject.hljs;
- });
- }
- }
-
-}(function(hljs) {
- // Convenience variables for build-in objects
- var ArrayProto = [],
- objectKeys = Object.keys;
-
- // Global internal variables used within the highlight.js library.
- var languages = {},
- aliases = {};
-
- // Regular expressions used throughout the highlight.js library.
- var noHighlightRe = /^(no-?highlight|plain|text)$/i,
- languagePrefixRe = /\blang(?:uage)?-([\w-]+)\b/i,
- fixMarkupRe = /((^(<[^>]+>|\t|)+|(?:\n)))/gm;
-
- var spanEndTag = '</span>';
-
- // Global options used when within external APIs. This is modified when
- // calling the `hljs.configure` function.
- var options = {
- classPrefix: 'hljs-',
- tabReplace: null,
- useBR: false,
- languages: undefined
- };
-
- // Object map that is used to escape some common HTML characters.
- var escapeRegexMap = {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;'
- };
-
- /* Utility functions */
-
- function escape(value) {
- return value.replace(/[&<>]/gm, function(character) {
- return escapeRegexMap[character];
- });
- }
-
- function tag(node) {
- return node.nodeName.toLowerCase();
- }
-
- function testRe(re, lexeme) {
- var match = re && re.exec(lexeme);
- return match && match.index === 0;
- }
-
- function isNotHighlighted(language) {
- return noHighlightRe.test(language);
- }
-
- function blockLanguage(block) {
- var i, match, length, _class;
- var classes = block.className + ' ';
-
- classes += block.parentNode ? block.parentNode.className : '';
-
- // language-* takes precedence over non-prefixed class names.
- match = languagePrefixRe.exec(classes);
- if (match) {
- return getLanguage(match[1]) ? match[1] : 'no-highlight';
- }
-
- classes = classes.split(/\s+/);
-
- for (i = 0, length = classes.length; i < length; i++) {
- _class = classes[i]
-
- if (isNotHighlighted(_class) || getLanguage(_class)) {
- return _class;
- }
- }
- }
-
- function inherit(parent) { // inherit(parent, override_obj, override_obj, ...)
- var key;
- var result = {};
- var objects = Array.prototype.slice.call(arguments, 1);
-
- for (key in parent)
- result[key] = parent[key];
- objects.forEach(function(obj) {
- for (key in obj)
- result[key] = obj[key];
- });
- return result;
- }
-
- /* Stream merging */
-
- function nodeStream(node) {
- var result = [];
- (function _nodeStream(node, offset) {
- for (var child = node.firstChild; child; child = child.nextSibling) {
- if (child.nodeType === 3)
- offset += child.nodeValue.length;
- else if (child.nodeType === 1) {
- result.push({
- event: 'start',
- offset: offset,
- node: child
- });
- offset = _nodeStream(child, offset);
- // Prevent void elements from having an end tag that would actually
- // double them in the output. There are more void elements in HTML
- // but we list only those realistically expected in code display.
- if (!tag(child).match(/br|hr|img|input/)) {
- result.push({
- event: 'stop',
- offset: offset,
- node: child
- });
- }
- }
- }
- return offset;
- })(node, 0);
- return result;
- }
-
- function mergeStreams(original, highlighted, value) {
- var processed = 0;
- var result = '';
- var nodeStack = [];
-
- function selectStream() {
- if (!original.length || !highlighted.length) {
- return original.length ? original : highlighted;
- }
- if (original[0].offset !== highlighted[0].offset) {
- return (original[0].offset < highlighted[0].offset) ? original : highlighted;
- }
-
- /*
- To avoid starting the stream just before it should stop the order is
- ensured that original always starts first and closes last:
-
- if (event1 == 'start' && event2 == 'start')
- return original;
- if (event1 == 'start' && event2 == 'stop')
- return highlighted;
- if (event1 == 'stop' && event2 == 'start')
- return original;
- if (event1 == 'stop' && event2 == 'stop')
- return highlighted;
-
- ... which is collapsed to:
- */
- return highlighted[0].event === 'start' ? original : highlighted;
- }
-
- function open(node) {
- function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
- result += '<' + tag(node) + ArrayProto.map.call(node.attributes, attr_str).join('') + '>';
- }
-
- function close(node) {
- result += '</' + tag(node) + '>';
- }
-
- function render(event) {
- (event.event === 'start' ? open : close)(event.node);
- }
-
- while (original.length || highlighted.length) {
- var stream = selectStream();
- result += escape(value.substring(processed, stream[0].offset));
- processed = stream[0].offset;
- if (stream === original) {
- /*
- On any opening or closing tag of the original markup we first close
- the entire highlighted node stack, then render the original tag along
- with all the following original tags at the same offset and then
- reopen all the tags on the highlighted stack.
- */
- nodeStack.reverse().forEach(close);
- do {
- render(stream.splice(0, 1)[0]);
- stream = selectStream();
- } while (stream === original && stream.length && stream[0].offset === processed);
- nodeStack.reverse().forEach(open);
- } else {
- if (stream[0].event === 'start') {
- nodeStack.push(stream[0].node);
- } else {
- nodeStack.pop();
- }
- render(stream.splice(0, 1)[0]);
- }
- }
- return result + escape(value.substr(processed));
- }
-
- /* Initialization */
-
- function expand_mode(mode) {
- if (mode.variants && !mode.cached_variants) {
- mode.cached_variants = mode.variants.map(function(variant) {
- return inherit(mode, {variants: null}, variant);
- });
- }
- return mode.cached_variants || (mode.endsWithParent && [inherit(mode)]) || [mode];
- }
-
- function compileLanguage(language) {
-
- function reStr(re) {
- return (re && re.source) || re;
- }
-
- function langRe(value, global) {
- return new RegExp(
- reStr(value),
- 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
- );
- }
-
- function compileMode(mode, parent) {
- if (mode.compiled)
- return;
- mode.compiled = true;
-
- mode.keywords = mode.keywords || mode.beginKeywords;
- if (mode.keywords) {
- var compiled_keywords = {};
-
- var flatten = function(className, str) {
- if (language.case_insensitive) {
- str = str.toLowerCase();
- }
- str.split(' ').forEach(function(kw) {
- var pair = kw.split('|');
- compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
- });
- };
-
- if (typeof mode.keywords === 'string') { // string
- flatten('keyword', mode.keywords);
- } else {
- objectKeys(mode.keywords).forEach(function (className) {
- flatten(className, mode.keywords[className]);
- });
- }
- mode.keywords = compiled_keywords;
- }
- mode.lexemesRe = langRe(mode.lexemes || /\w+/, true);
-
- if (parent) {
- if (mode.beginKeywords) {
- mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
- }
- if (!mode.begin)
- mode.begin = /\B|\b/;
- mode.beginRe = langRe(mode.begin);
- if (!mode.end && !mode.endsWithParent)
- mode.end = /\B|\b/;
- if (mode.end)
- mode.endRe = langRe(mode.end);
- mode.terminator_end = reStr(mode.end) || '';
- if (mode.endsWithParent && parent.terminator_end)
- mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
- }
- if (mode.illegal)
- mode.illegalRe = langRe(mode.illegal);
- if (mode.relevance == null)
- mode.relevance = 1;
- if (!mode.contains) {
- mode.contains = [];
- }
- mode.contains = Array.prototype.concat.apply([], mode.contains.map(function(c) {
- return expand_mode(c === 'self' ? mode : c)
- }));
- mode.contains.forEach(function(c) {compileMode(c, mode);});
-
- if (mode.starts) {
- compileMode(mode.starts, parent);
- }
-
- var terminators =
- mode.contains.map(function(c) {
- return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
- })
- .concat([mode.terminator_end, mode.illegal])
- .map(reStr)
- .filter(Boolean);
- mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
- }
-
- compileMode(language);
- }
-
- /*
- Core highlighting function. Accepts a language name, or an alias, and a
- string with the code to highlight. Returns an object with the following
- properties:
-
- - relevance (int)
- - value (an HTML string with highlighting markup)
-
- */
- function highlight(name, value, ignore_illegals, continuation) {
-
- function subMode(lexeme, mode) {
- var i, length;
-
- for (i = 0, length = mode.contains.length; i < length; i++) {
- if (testRe(mode.contains[i].beginRe, lexeme)) {
- return mode.contains[i];
- }
- }
- }
-
- function endOfMode(mode, lexeme) {
- if (testRe(mode.endRe, lexeme)) {
- while (mode.endsParent && mode.parent) {
- mode = mode.parent;
- }
- return mode;
- }
- if (mode.endsWithParent) {
- return endOfMode(mode.parent, lexeme);
- }
- }
-
- function isIllegal(lexeme, mode) {
- return !ignore_illegals && testRe(mode.illegalRe, lexeme);
- }
-
- function keywordMatch(mode, match) {
- var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
- return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
- }
-
- function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
- var classPrefix = noPrefix ? '' : options.classPrefix,
- openSpan = '<span class="' + classPrefix,
- closeSpan = leaveOpen ? '' : spanEndTag
-
- openSpan += classname + '">';
-
- return openSpan + insideSpan + closeSpan;
- }
-
- function processKeywords() {
- var keyword_match, last_index, match, result;
-
- if (!top.keywords)
- return escape(mode_buffer);
-
- result = '';
- last_index = 0;
- top.lexemesRe.lastIndex = 0;
- match = top.lexemesRe.exec(mode_buffer);
-
- while (match) {
- result += escape(mode_buffer.substring(last_index, match.index));
- keyword_match = keywordMatch(top, match);
- if (keyword_match) {
- relevance += keyword_match[1];
- result += buildSpan(keyword_match[0], escape(match[0]));
- } else {
- result += escape(match[0]);
- }
- last_index = top.lexemesRe.lastIndex;
- match = top.lexemesRe.exec(mode_buffer);
- }
- return result + escape(mode_buffer.substr(last_index));
- }
-
- function processSubLanguage() {
- var explicit = typeof top.subLanguage === 'string';
- if (explicit && !languages[top.subLanguage]) {
- return escape(mode_buffer);
- }
-
- var result = explicit ?
- highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
- highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
-
- // Counting embedded language score towards the host language may be disabled
- // with zeroing the containing mode relevance. Usecase in point is Markdown that
- // allows XML everywhere and makes every XML snippet to have a much larger Markdown
- // score.
- if (top.relevance > 0) {
- relevance += result.relevance;
- }
- if (explicit) {
- continuations[top.subLanguage] = result.top;
- }
- return buildSpan(result.language, result.value, false, true);
- }
-
- function processBuffer() {
- result += (top.subLanguage != null ? processSubLanguage() : processKeywords());
- mode_buffer = '';
- }
-
- function startNewMode(mode) {
- result += mode.className? buildSpan(mode.className, '', true): '';
- top = Object.create(mode, {parent: {value: top}});
- }
-
- function processLexeme(buffer, lexeme) {
-
- mode_buffer += buffer;
-
- if (lexeme == null) {
- processBuffer();
- return 0;
- }
-
- var new_mode = subMode(lexeme, top);
- if (new_mode) {
- if (new_mode.skip) {
- mode_buffer += lexeme;
- } else {
- if (new_mode.excludeBegin) {
- mode_buffer += lexeme;
- }
- processBuffer();
- if (!new_mode.returnBegin && !new_mode.excludeBegin) {
- mode_buffer = lexeme;
- }
- }
- startNewMode(new_mode, lexeme);
- return new_mode.returnBegin ? 0 : lexeme.length;
- }
-
- var end_mode = endOfMode(top, lexeme);
- if (end_mode) {
- var origin = top;
- if (origin.skip) {
- mode_buffer += lexeme;
- } else {
- if (!(origin.returnEnd || origin.excludeEnd)) {
- mode_buffer += lexeme;
- }
- processBuffer();
- if (origin.excludeEnd) {
- mode_buffer = lexeme;
- }
- }
- do {
- if (top.className) {
- result += spanEndTag;
- }
- if (!top.skip) {
- relevance += top.relevance;
- }
- top = top.parent;
- } while (top !== end_mode.parent);
- if (end_mode.starts) {
- startNewMode(end_mode.starts, '');
- }
- return origin.returnEnd ? 0 : lexeme.length;
- }
-
- if (isIllegal(lexeme, top))
- throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
-
- /*
- Parser should not reach this point as all types of lexemes should be caught
- earlier, but if it does due to some bug make sure it advances at least one
- character forward to prevent infinite looping.
- */
- mode_buffer += lexeme;
- return lexeme.length || 1;
- }
-
- var language = getLanguage(name);
- if (!language) {
- throw new Error('Unknown language: "' + name + '"');
- }
-
- compileLanguage(language);
- var top = continuation || language;
- var continuations = {}; // keep continuations for sub-languages
- var result = '', current;
- for(current = top; current !== language; current = current.parent) {
- if (current.className) {
- result = buildSpan(current.className, '', true) + result;
- }
- }
- var mode_buffer = '';
- var relevance = 0;
- try {
- var match, count, index = 0;
- while (true) {
- top.terminators.lastIndex = index;
- match = top.terminators.exec(value);
- if (!match)
- break;
- count = processLexeme(value.substring(index, match.index), match[0]);
- index = match.index + count;
- }
- processLexeme(value.substr(index));
- for(current = top; current.parent; current = current.parent) { // close dangling modes
- if (current.className) {
- result += spanEndTag;
- }
- }
- return {
- relevance: relevance,
- value: result,
- language: name,
- top: top
- };
- } catch (e) {
- if (e.message && e.message.indexOf('Illegal') !== -1) {
- return {
- relevance: 0,
- value: escape(value)
- };
- } else {
- throw e;
- }
- }
- }
-
- /*
- Highlighting with language detection. Accepts a string with the code to
- highlight. Returns an object with the following properties:
-
- - language (detected language)
- - relevance (int)
- - value (an HTML string with highlighting markup)
- - second_best (object with the same structure for second-best heuristically
- detected language, may be absent)
-
- */
- function highlightAuto(text, languageSubset) {
- languageSubset = languageSubset || options.languages || objectKeys(languages);
- var result = {
- relevance: 0,
- value: escape(text)
- };
- var second_best = result;
- languageSubset.filter(getLanguage).forEach(function(name) {
- var current = highlight(name, text, false);
- current.language = name;
- if (current.relevance > second_best.relevance) {
- second_best = current;
- }
- if (current.relevance > result.relevance) {
- second_best = result;
- result = current;
- }
- });
- if (second_best.language) {
- result.second_best = second_best;
- }
- return result;
- }
-
- /*
- Post-processing of the highlighted markup:
-
- - replace TABs with something more useful
- - replace real line-breaks with '<br>' for non-pre containers
-
- */
- function fixMarkup(value) {
- return !(options.tabReplace || options.useBR)
- ? value
- : value.replace(fixMarkupRe, function(match, p1) {
- if (options.useBR && match === '\n') {
- return '<br>';
- } else if (options.tabReplace) {
- return p1.replace(/\t/g, options.tabReplace);
- }
- return '';
- });
- }
-
- function buildClassName(prevClassName, currentLang, resultLang) {
- var language = currentLang ? aliases[currentLang] : resultLang,
- result = [prevClassName.trim()];
-
- if (!prevClassName.match(/\bhljs\b/)) {
- result.push('hljs');
- }
-
- if (prevClassName.indexOf(language) === -1) {
- result.push(language);
- }
-
- return result.join(' ').trim();
- }
-
- /*
- Applies highlighting to a DOM node containing code. Accepts a DOM node and
- two optional parameters for fixMarkup.
- */
- function highlightBlock(block) {
- var node, originalStream, result, resultNode, text;
- var language = blockLanguage(block);
-
- if (isNotHighlighted(language))
- return;
-
- if (options.useBR) {
- node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
- node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
- } else {
- node = block;
- }
- text = node.textContent;
- result = language ? highlight(language, text, true) : highlightAuto(text);
-
- originalStream = nodeStream(node);
- if (originalStream.length) {
- resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
- resultNode.innerHTML = result.value;
- result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
- }
- result.value = fixMarkup(result.value);
-
- block.innerHTML = result.value;
- block.className = buildClassName(block.className, language, result.language);
- block.result = {
- language: result.language,
- re: result.relevance
- };
- if (result.second_best) {
- block.second_best = {
- language: result.second_best.language,
- re: result.second_best.relevance
- };
- }
- }
-
- /*
- Updates highlight.js global options with values passed in the form of an object.
- */
- function configure(user_options) {
- options = inherit(options, user_options);
- }
-
- /*
- Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
- */
- function initHighlighting() {
- if (initHighlighting.called)
- return;
- initHighlighting.called = true;
-
- var blocks = document.querySelectorAll('pre code');
- ArrayProto.forEach.call(blocks, highlightBlock);
- }
-
- /*
- Attaches highlighting to the page load event.
- */
- function initHighlightingOnLoad() {
- addEventListener('DOMContentLoaded', initHighlighting, false);
- addEventListener('load', initHighlighting, false);
- }
-
- function registerLanguage(name, language) {
- var lang = languages[name] = language(hljs);
- if (lang.aliases) {
- lang.aliases.forEach(function(alias) {aliases[alias] = name;});
- }
- }
-
- function listLanguages() {
- return objectKeys(languages);
- }
-
- function getLanguage(name) {
- name = (name || '').toLowerCase();
- return languages[name] || languages[aliases[name]];
- }
-
- /* Interface definition */
-
- hljs.highlight = highlight;
- hljs.highlightAuto = highlightAuto;
- hljs.fixMarkup = fixMarkup;
- hljs.highlightBlock = highlightBlock;
- hljs.configure = configure;
- hljs.initHighlighting = initHighlighting;
- hljs.initHighlightingOnLoad = initHighlightingOnLoad;
- hljs.registerLanguage = registerLanguage;
- hljs.listLanguages = listLanguages;
- hljs.getLanguage = getLanguage;
- hljs.inherit = inherit;
-
- // Common regexps
- hljs.IDENT_RE = '[a-zA-Z]\\w*';
- hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
- hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
- hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
- hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
- hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
-
- // Common modes
- hljs.BACKSLASH_ESCAPE = {
- begin: '\\\\[\\s\\S]', relevance: 0
- };
- hljs.APOS_STRING_MODE = {
- className: 'string',
- begin: '\'', end: '\'',
- illegal: '\\n',
- contains: [hljs.BACKSLASH_ESCAPE]
- };
- hljs.QUOTE_STRING_MODE = {
- className: 'string',
- begin: '"', end: '"',
- illegal: '\\n',
- contains: [hljs.BACKSLASH_ESCAPE]
- };
- hljs.PHRASAL_WORDS_MODE = {
- begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/
- };
- hljs.COMMENT = function (begin, end, inherits) {
- var mode = hljs.inherit(
- {
- className: 'comment',
- begin: begin, end: end,
- contains: []
- },
- inherits || {}
- );
- mode.contains.push(hljs.PHRASAL_WORDS_MODE);
- mode.contains.push({
- className: 'doctag',
- begin: '(?:TODO|FIXME|NOTE|BUG|XXX):',
- relevance: 0
- });
- return mode;
- };
- hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
- hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
- hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
- hljs.NUMBER_MODE = {
- className: 'number',
- begin: hljs.NUMBER_RE,
- relevance: 0
- };
- hljs.C_NUMBER_MODE = {
- className: 'number',
- begin: hljs.C_NUMBER_RE,
- relevance: 0
- };
- hljs.BINARY_NUMBER_MODE = {
- className: 'number',
- begin: hljs.BINARY_NUMBER_RE,
- relevance: 0
- };
- hljs.CSS_NUMBER_MODE = {
- className: 'number',
- begin: hljs.NUMBER_RE + '(' +
- '%|em|ex|ch|rem' +
- '|vw|vh|vmin|vmax' +
- '|cm|mm|in|pt|pc|px' +
- '|deg|grad|rad|turn' +
- '|s|ms' +
- '|Hz|kHz' +
- '|dpi|dpcm|dppx' +
- ')?',
- relevance: 0
- };
- hljs.REGEXP_MODE = {
- className: 'regexp',
- begin: /\//, end: /\/[gimuy]*/,
- illegal: /\n/,
- contains: [
- hljs.BACKSLASH_ESCAPE,
- {
- begin: /\[/, end: /\]/,
- relevance: 0,
- contains: [hljs.BACKSLASH_ESCAPE]
- }
- ]
- };
- hljs.TITLE_MODE = {
- className: 'title',
- begin: hljs.IDENT_RE,
- relevance: 0
- };
- hljs.UNDERSCORE_TITLE_MODE = {
- className: 'title',
- begin: hljs.UNDERSCORE_IDENT_RE,
- relevance: 0
- };
- hljs.METHOD_GUARD = {
- // excludes method names from keyword processing
- begin: '\\.\\s*' + hljs.UNDERSCORE_IDENT_RE,
- relevance: 0
- };
-
- return hljs;
-}));
-
-
-/***/ }),
/* 14 */
-/***/ (function(module, exports) {
-
-module.exports = function(hljs) {
- var IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
- var KEYWORDS = {
- keyword:
- 'in of if for while finally var new function do return void else break catch ' +
- 'instanceof with throw case default try this switch continue typeof delete ' +
- 'let yield const export super debugger as async await static ' +
- // ECMAScript 6 modules import
- 'import from as'
- ,
- literal:
- 'true false null undefined NaN Infinity',
- built_in:
- 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
- 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
- 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
- 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
- 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
- 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
- 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
- 'Promise'
- };
- var EXPRESSIONS;
- var NUMBER = {
- className: 'number',
- variants: [
- { begin: '\\b(0[bB][01]+)' },
- { begin: '\\b(0[oO][0-7]+)' },
- { begin: hljs.C_NUMBER_RE }
- ],
- relevance: 0
- };
- var SUBST = {
- className: 'subst',
- begin: '\\$\\{', end: '\\}',
- keywords: KEYWORDS,
- contains: [] // defined later
- };
- var TEMPLATE_STRING = {
- className: 'string',
- begin: '`', end: '`',
- contains: [
- hljs.BACKSLASH_ESCAPE,
- SUBST
- ]
- };
- SUBST.contains = [
- hljs.APOS_STRING_MODE,
- hljs.QUOTE_STRING_MODE,
- TEMPLATE_STRING,
- NUMBER,
- hljs.REGEXP_MODE
- ]
- var PARAMS_CONTAINS = SUBST.contains.concat([
- hljs.C_BLOCK_COMMENT_MODE,
- hljs.C_LINE_COMMENT_MODE
- ]);
-
- return {
- aliases: ['js', 'jsx'],
- keywords: KEYWORDS,
- contains: [
- {
- className: 'meta',
- relevance: 10,
- begin: /^\s*['"]use (strict|asm)['"]/
- },
- {
- className: 'meta',
- begin: /^#!/, end: /$/
- },
- hljs.APOS_STRING_MODE,
- hljs.QUOTE_STRING_MODE,
- TEMPLATE_STRING,
- hljs.C_LINE_COMMENT_MODE,
- hljs.C_BLOCK_COMMENT_MODE,
- NUMBER,
- { // object attr container
- begin: /[{,]\s*/, relevance: 0,
- contains: [
- {
- begin: IDENT_RE + '\\s*:', returnBegin: true,
- relevance: 0,
- contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}]
- }
- ]
- },
- { // "value" container
- begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
- keywords: 'return throw case',
- contains: [
- hljs.C_LINE_COMMENT_MODE,
- hljs.C_BLOCK_COMMENT_MODE,
- hljs.REGEXP_MODE,
- {
- className: 'function',
- begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true,
- end: '\\s*=>',
- contains: [
- {
- className: 'params',
- variants: [
- {
- begin: IDENT_RE
- },
- {
- begin: /\(\s*\)/,
- },
- {
- begin: /\(/, end: /\)/,
- excludeBegin: true, excludeEnd: true,
- keywords: KEYWORDS,
- contains: PARAMS_CONTAINS
- }
- ]
- }
- ]
- },
- { // E4X / JSX
- begin: /</, end: /(\/\w+|\w+\/)>/,
- subLanguage: 'xml',
- contains: [
- {begin: /<\w+\s*\/>/, skip: true},
- {
- begin: /<\w+/, end: /(\/\w+|\w+\/)>/, skip: true,
- contains: [
- {begin: /<\w+\s*\/>/, skip: true},
- 'self'
- ]
- }
- ]
- }
- ],
- relevance: 0
- },
- {
- className: 'function',
- beginKeywords: 'function', end: /\{/, excludeEnd: true,
- contains: [
- hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}),
- {
- className: 'params',
- begin: /\(/, end: /\)/,
- excludeBegin: true,
- excludeEnd: true,
- contains: PARAMS_CONTAINS
- }
- ],
- illegal: /\[|%/
- },
- {
- begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
- },
- hljs.METHOD_GUARD,
- { // ES6 class
- className: 'class',
- beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
- illegal: /[:"\[\]]/,
- contains: [
- {beginKeywords: 'extends'},
- hljs.UNDERSCORE_TITLE_MODE
- ]
- },
- {
- beginKeywords: 'constructor', end: /\{/, excludeEnd: true
- }
- ],
- illegal: /#(?!!)/
- };
-};
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports) {
-
-module.exports = function(hljs) {
- var KEYWORDS = {
- keyword:
- 'and elif is global as in if from raise for except finally print import pass return ' +
- 'exec else break not with class assert yield try while continue del or def lambda ' +
- 'async await nonlocal|10 None True False',
- built_in:
- 'Ellipsis NotImplemented'
- };
- var PROMPT = {
- className: 'meta', begin: /^(>>>|\.\.\.) /
- };
- var SUBST = {
- className: 'subst',
- begin: /\{/, end: /\}/,
- keywords: KEYWORDS,
- illegal: /#/
- };
- var STRING = {
- className: 'string',
- contains: [hljs.BACKSLASH_ESCAPE],
- variants: [
- {
- begin: /(u|b)?r?'''/, end: /'''/,
- contains: [PROMPT],
- relevance: 10
- },
- {
- begin: /(u|b)?r?"""/, end: /"""/,
- contains: [PROMPT],
- relevance: 10
- },
- {
- begin: /(fr|rf|f)'''/, end: /'''/,
- contains: [PROMPT, SUBST]
- },
- {
- begin: /(fr|rf|f)"""/, end: /"""/,
- contains: [PROMPT, SUBST]
- },
- {
- begin: /(u|r|ur)'/, end: /'/,
- relevance: 10
- },
- {
- begin: /(u|r|ur)"/, end: /"/,
- relevance: 10
- },
- {
- begin: /(b|br)'/, end: /'/
- },
- {
- begin: /(b|br)"/, end: /"/
- },
- {
- begin: /(fr|rf|f)'/, end: /'/,
- contains: [SUBST]
- },
- {
- begin: /(fr|rf|f)"/, end: /"/,
- contains: [SUBST]
- },
- hljs.APOS_STRING_MODE,
- hljs.QUOTE_STRING_MODE
- ]
- };
- var NUMBER = {
- className: 'number', relevance: 0,
- variants: [
- {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
- {begin: '\\b(0o[0-7]+)[lLjJ]?'},
- {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
- ]
- };
- var PARAMS = {
- className: 'params',
- begin: /\(/, end: /\)/,
- contains: ['self', PROMPT, NUMBER, STRING]
- };
- SUBST.contains = [STRING, NUMBER, PROMPT];
- return {
- aliases: ['py', 'gyp'],
- keywords: KEYWORDS,
- illegal: /(<\/|->|\?)|=>/,
- contains: [
- PROMPT,
- NUMBER,
- STRING,
- hljs.HASH_COMMENT_MODE,
- {
- variants: [
- {className: 'function', beginKeywords: 'def'},
- {className: 'class', beginKeywords: 'class'}
- ],
- end: /:/,
- illegal: /[${=;\n,]/,
- contains: [
- hljs.UNDERSCORE_TITLE_MODE,
- PARAMS,
- {
- begin: /->/, endsWithParent: true,
- keywords: 'None'
- }
- ]
- },
- {
- className: 'meta',
- begin: /^[\t ]*@/, end: /$/
- },
- {
- begin: /\b(print|exec)\(/ // don’t highlight keywords-turned-functions in Python 3
- }
- ]
- };
-};
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports) {
-
-module.exports = function(hljs) {
- var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
- var TAG_INTERNALS = {
- endsWithParent: true,
- illegal: /</,
- relevance: 0,
- contains: [
- {
- className: 'attr',
- begin: XML_IDENT_RE,
- relevance: 0
- },
- {
- begin: /=\s*/,
- relevance: 0,
- contains: [
- {
- className: 'string',
- endsParent: true,
- variants: [
- {begin: /"/, end: /"/},
- {begin: /'/, end: /'/},
- {begin: /[^\s"'=<>`]+/}
- ]
- }
- ]
- }
- ]
- };
- return {
- aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist'],
- case_insensitive: true,
- contains: [
- {
- className: 'meta',
- begin: '<!DOCTYPE', end: '>',
- relevance: 10,
- contains: [{begin: '\\[', end: '\\]'}]
- },
- hljs.COMMENT(
- '<!--',
- '-->',
- {
- relevance: 10
- }
- ),
- {
- begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
- relevance: 10
- },
- {
- begin: /<\?(php)?/, end: /\?>/,
- subLanguage: 'php',
- contains: [{begin: '/\\*', end: '\\*/', skip: true}]
- },
- {
- className: 'tag',
- /*
- The lookahead pattern (?=...) ensures that 'begin' only matches
- '<style' as a single word, followed by a whitespace or an
- ending braket. The '$' is needed for the lexeme to be recognized
- by hljs.subMode() that tests lexemes outside the stream.
- */
- begin: '<style(?=\\s|>|$)', end: '>',
- keywords: {name: 'style'},
- contains: [TAG_INTERNALS],
- starts: {
- end: '</style>', returnEnd: true,
- subLanguage: ['css', 'xml']
- }
- },
- {
- className: 'tag',
- // See the comment in the <style tag about the lookahead pattern
- begin: '<script(?=\\s|>|$)', end: '>',
- keywords: {name: 'script'},
- contains: [TAG_INTERNALS],
- starts: {
- end: '\<\/script\>', returnEnd: true,
- subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
- }
- },
- {
- className: 'meta',
- variants: [
- {begin: /<\?xml/, end: /\?>/, relevance: 10},
- {begin: /<\?\w+/, end: /\?>/}
- ]
- },
- {
- className: 'tag',
- begin: '</?', end: '/?>',
- contains: [
- {
- className: 'name', begin: /[^\/><\s]+/, relevance: 0
- },
- TAG_INTERNALS
- ]
- }
- ]
- };
-};
-
-/***/ }),
-/* 17 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {/**
@@ -3047,7 +1853,7 @@ function escape(html, encode) {
}
function unescape(html) {
- // explicitly match decimal, hex, and named HTML entities
+ // explicitly match decimal, hex, and named HTML entities
return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, function(_, n) {
n = n.toLowerCase();
if (n === 'colon') return ':';
@@ -3238,17 +2044,852 @@ if (true) {
return this || (typeof window !== 'undefined' ? window : global);
}());
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(31)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
/***/ }),
-/* 18 */
+/* 15 */
+/***/ (function(module, exports) {
+
+Prism.languages.python= {
+ 'triple-quoted-string': {
+ pattern: /"""[\s\S]+?"""|'''[\s\S]+?'''/,
+ alias: 'string'
+ },
+ 'comment': {
+ pattern: /(^|[^\\])#.*/,
+ lookbehind: true
+ },
+ 'string': {
+ pattern: /("|')(?:\\\\|\\?[^\\\r\n])*?\1/,
+ greedy: true
+ },
+ 'function' : {
+ pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,
+ lookbehind: true
+ },
+ 'class-name': {
+ pattern: /(\bclass\s+)[a-z0-9_]+/i,
+ lookbehind: true
+ },
+ 'keyword' : /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,
+ 'boolean' : /\b(?:True|False)\b/,
+ 'number' : /\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,
+ 'operator' : /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,
+ 'punctuation' : /[{}[\];(),.:]/
+};
+
+
+/***/ }),
+/* 16 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* WEBPACK VAR INJECTION */(function(global) {
+/* **********************************************
+ Begin prism-core.js
+********************************************** */
+
+var _self = (typeof window !== 'undefined')
+ ? window // if in browser
+ : (
+ (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
+ ? self // if in worker
+ : {} // if in node js
+ );
+
+/**
+ * Prism: Lightweight, robust, elegant syntax highlighting
+ * MIT license http://www.opensource.org/licenses/mit-license.php/
+ * @author Lea Verou http://lea.verou.me
+ */
+
+var Prism = (function(){
+
+// Private helper vars
+var lang = /\blang(?:uage)?-(\w+)\b/i;
+var uniqueId = 0;
+
+var _ = _self.Prism = {
+ util: {
+ encode: function (tokens) {
+ if (tokens instanceof Token) {
+ return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
+ } else if (_.util.type(tokens) === 'Array') {
+ return tokens.map(_.util.encode);
+ } else {
+ return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\u00a0/g, ' ');
+ }
+ },
+
+ type: function (o) {
+ return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
+ },
+
+ objId: function (obj) {
+ if (!obj['__id']) {
+ Object.defineProperty(obj, '__id', { value: ++uniqueId });
+ }
+ return obj['__id'];
+ },
+
+ // Deep clone a language definition (e.g. to extend it)
+ clone: function (o) {
+ var type = _.util.type(o);
+
+ switch (type) {
+ case 'Object':
+ var clone = {};
+
+ for (var key in o) {
+ if (o.hasOwnProperty(key)) {
+ clone[key] = _.util.clone(o[key]);
+ }
+ }
+
+ return clone;
+
+ case 'Array':
+ // Check for existence for IE8
+ return o.map && o.map(function(v) { return _.util.clone(v); });
+ }
+
+ return o;
+ }
+ },
+
+ languages: {
+ extend: function (id, redef) {
+ var lang = _.util.clone(_.languages[id]);
+
+ for (var key in redef) {
+ lang[key] = redef[key];
+ }
+
+ return lang;
+ },
+
+ /**
+ * Insert a token before another token in a language literal
+ * As this needs to recreate the object (we cannot actually insert before keys in object literals),
+ * we cannot just provide an object, we need anobject and a key.
+ * @param inside The key (or language id) of the parent
+ * @param before The key to insert before. If not provided, the function appends instead.
+ * @param insert Object with the key/value pairs to insert
+ * @param root The object that contains `inside`. If equal to Prism.languages, it can be omitted.
+ */
+ insertBefore: function (inside, before, insert, root) {
+ root = root || _.languages;
+ var grammar = root[inside];
+
+ if (arguments.length == 2) {
+ insert = arguments[1];
+
+ for (var newToken in insert) {
+ if (insert.hasOwnProperty(newToken)) {
+ grammar[newToken] = insert[newToken];
+ }
+ }
+
+ return grammar;
+ }
+
+ var ret = {};
+
+ for (var token in grammar) {
+
+ if (grammar.hasOwnProperty(token)) {
+
+ if (token == before) {
+
+ for (var newToken in insert) {
+
+ if (insert.hasOwnProperty(newToken)) {
+ ret[newToken] = insert[newToken];
+ }
+ }
+ }
+
+ ret[token] = grammar[token];
+ }
+ }
+
+ // Update references in other language definitions
+ _.languages.DFS(_.languages, function(key, value) {
+ if (value === root[inside] && key != inside) {
+ this[key] = ret;
+ }
+ });
+
+ return root[inside] = ret;
+ },
+
+ // Traverse a language definition with Depth First Search
+ DFS: function(o, callback, type, visited) {
+ visited = visited || {};
+ for (var i in o) {
+ if (o.hasOwnProperty(i)) {
+ callback.call(o, i, o[i], type || i);
+
+ if (_.util.type(o[i]) === 'Object' && !visited[_.util.objId(o[i])]) {
+ visited[_.util.objId(o[i])] = true;
+ _.languages.DFS(o[i], callback, null, visited);
+ }
+ else if (_.util.type(o[i]) === 'Array' && !visited[_.util.objId(o[i])]) {
+ visited[_.util.objId(o[i])] = true;
+ _.languages.DFS(o[i], callback, i, visited);
+ }
+ }
+ }
+ }
+ },
+ plugins: {},
+
+ highlightAll: function(async, callback) {
+ var env = {
+ callback: callback,
+ selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
+ };
+
+ _.hooks.run("before-highlightall", env);
+
+ var elements = env.elements || document.querySelectorAll(env.selector);
+
+ for (var i=0, element; element = elements[i++];) {
+ _.highlightElement(element, async === true, env.callback);
+ }
+ },
+
+ highlightElement: function(element, async, callback) {
+ // Find language
+ var language, grammar, parent = element;
+
+ while (parent && !lang.test(parent.className)) {
+ parent = parent.parentNode;
+ }
+
+ if (parent) {
+ language = (parent.className.match(lang) || [,''])[1].toLowerCase();
+ grammar = _.languages[language];
+ }
+
+ // Set language on the element, if not present
+ element.className = element.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
+
+ // Set language on the parent, for styling
+ parent = element.parentNode;
+
+ if (/pre/i.test(parent.nodeName)) {
+ parent.className = parent.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
+ }
+
+ var code = element.textContent;
+
+ var env = {
+ element: element,
+ language: language,
+ grammar: grammar,
+ code: code
+ };
+
+ _.hooks.run('before-sanity-check', env);
+
+ if (!env.code || !env.grammar) {
+ if (env.code) {
+ env.element.textContent = env.code;
+ }
+ _.hooks.run('complete', env);
+ return;
+ }
+
+ _.hooks.run('before-highlight', env);
+
+ if (async && _self.Worker) {
+ var worker = new Worker(_.filename);
+
+ worker.onmessage = function(evt) {
+ env.highlightedCode = evt.data;
+
+ _.hooks.run('before-insert', env);
+
+ env.element.innerHTML = env.highlightedCode;
+
+ callback && callback.call(env.element);
+ _.hooks.run('after-highlight', env);
+ _.hooks.run('complete', env);
+ };
+
+ worker.postMessage(JSON.stringify({
+ language: env.language,
+ code: env.code,
+ immediateClose: true
+ }));
+ }
+ else {
+ env.highlightedCode = _.highlight(env.code, env.grammar, env.language);
+
+ _.hooks.run('before-insert', env);
+
+ env.element.innerHTML = env.highlightedCode;
+
+ callback && callback.call(element);
+
+ _.hooks.run('after-highlight', env);
+ _.hooks.run('complete', env);
+ }
+ },
+
+ highlight: function (text, grammar, language) {
+ var tokens = _.tokenize(text, grammar);
+ return Token.stringify(_.util.encode(tokens), language);
+ },
+
+ tokenize: function(text, grammar, language) {
+ var Token = _.Token;
+
+ var strarr = [text];
+
+ var rest = grammar.rest;
+
+ if (rest) {
+ for (var token in rest) {
+ grammar[token] = rest[token];
+ }
+
+ delete grammar.rest;
+ }
+
+ tokenloop: for (var token in grammar) {
+ if(!grammar.hasOwnProperty(token) || !grammar[token]) {
+ continue;
+ }
+
+ var patterns = grammar[token];
+ patterns = (_.util.type(patterns) === "Array") ? patterns : [patterns];
+
+ for (var j = 0; j < patterns.length; ++j) {
+ var pattern = patterns[j],
+ inside = pattern.inside,
+ lookbehind = !!pattern.lookbehind,
+ greedy = !!pattern.greedy,
+ lookbehindLength = 0,
+ alias = pattern.alias;
+
+ if (greedy && !pattern.pattern.global) {
+ // Without the global flag, lastIndex won't work
+ var flags = pattern.pattern.toString().match(/[imuy]*$/)[0];
+ pattern.pattern = RegExp(pattern.pattern.source, flags + "g");
+ }
+
+ pattern = pattern.pattern || pattern;
+
+ // Don’t cache length as it changes during the loop
+ for (var i=0, pos = 0; i<strarr.length; pos += strarr[i].length, ++i) {
+
+ var str = strarr[i];
+
+ if (strarr.length > text.length) {
+ // Something went terribly wrong, ABORT, ABORT!
+ break tokenloop;
+ }
+
+ if (str instanceof Token) {
+ continue;
+ }
+
+ pattern.lastIndex = 0;
+
+ var match = pattern.exec(str),
+ delNum = 1;
+
+ // Greedy patterns can override/remove up to two previously matched tokens
+ if (!match && greedy && i != strarr.length - 1) {
+ pattern.lastIndex = pos;
+ match = pattern.exec(text);
+ if (!match) {
+ break;
+ }
+
+ var from = match.index + (lookbehind ? match[1].length : 0),
+ to = match.index + match[0].length,
+ k = i,
+ p = pos;
+
+ for (var len = strarr.length; k < len && p < to; ++k) {
+ p += strarr[k].length;
+ // Move the index i to the element in strarr that is closest to from
+ if (from >= p) {
+ ++i;
+ pos = p;
+ }
+ }
+
+ /*
+ * If strarr[i] is a Token, then the match starts inside another Token, which is invalid
+ * If strarr[k - 1] is greedy we are in conflict with another greedy pattern
+ */
+ if (strarr[i] instanceof Token || strarr[k - 1].greedy) {
+ continue;
+ }
+
+ // Number of tokens to delete and replace with the new match
+ delNum = k - i;
+ str = text.slice(pos, p);
+ match.index -= pos;
+ }
+
+ if (!match) {
+ continue;
+ }
+
+ if(lookbehind) {
+ lookbehindLength = match[1].length;
+ }
+
+ var from = match.index + lookbehindLength,
+ match = match[0].slice(lookbehindLength),
+ to = from + match.length,
+ before = str.slice(0, from),
+ after = str.slice(to);
+
+ var args = [i, delNum];
+
+ if (before) {
+ args.push(before);
+ }
+
+ var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
+
+ args.push(wrapped);
+
+ if (after) {
+ args.push(after);
+ }
+
+ Array.prototype.splice.apply(strarr, args);
+ }
+ }
+ }
+
+ return strarr;
+ },
+
+ hooks: {
+ all: {},
+
+ add: function (name, callback) {
+ var hooks = _.hooks.all;
+
+ hooks[name] = hooks[name] || [];
+
+ hooks[name].push(callback);
+ },
+
+ run: function (name, env) {
+ var callbacks = _.hooks.all[name];
+
+ if (!callbacks || !callbacks.length) {
+ return;
+ }
+
+ for (var i=0, callback; callback = callbacks[i++];) {
+ callback(env);
+ }
+ }
+ }
+};
+
+var Token = _.Token = function(type, content, alias, matchedStr, greedy) {
+ this.type = type;
+ this.content = content;
+ this.alias = alias;
+ // Copy of the full string this token was created from
+ this.length = (matchedStr || "").length|0;
+ this.greedy = !!greedy;
+};
+
+Token.stringify = function(o, language, parent) {
+ if (typeof o == 'string') {
+ return o;
+ }
+
+ if (_.util.type(o) === 'Array') {
+ return o.map(function(element) {
+ return Token.stringify(element, language, o);
+ }).join('');
+ }
+
+ var env = {
+ type: o.type,
+ content: Token.stringify(o.content, language, parent),
+ tag: 'span',
+ classes: ['token', o.type],
+ attributes: {},
+ language: language,
+ parent: parent
+ };
+
+ if (env.type == 'comment') {
+ env.attributes['spellcheck'] = 'true';
+ }
+
+ if (o.alias) {
+ var aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias];
+ Array.prototype.push.apply(env.classes, aliases);
+ }
+
+ _.hooks.run('wrap', env);
+
+ var attributes = Object.keys(env.attributes).map(function(name) {
+ return name + '="' + (env.attributes[name] || '').replace(/"/g, '&quot;') + '"';
+ }).join(' ');
+
+ return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '</' + env.tag + '>';
+
+};
+
+if (!_self.document) {
+ if (!_self.addEventListener) {
+ // in Node.js
+ return _self.Prism;
+ }
+ // In worker
+ _self.addEventListener('message', function(evt) {
+ var message = JSON.parse(evt.data),
+ lang = message.language,
+ code = message.code,
+ immediateClose = message.immediateClose;
+
+ _self.postMessage(_.highlight(code, _.languages[lang], lang));
+ if (immediateClose) {
+ _self.close();
+ }
+ }, false);
+
+ return _self.Prism;
+}
+
+//Get current script and highlight
+var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
+
+if (script) {
+ _.filename = script.src;
+
+ if (document.addEventListener && !script.hasAttribute('data-manual')) {
+ if(document.readyState !== "loading") {
+ if (window.requestAnimationFrame) {
+ window.requestAnimationFrame(_.highlightAll);
+ } else {
+ window.setTimeout(_.highlightAll, 16);
+ }
+ }
+ else {
+ document.addEventListener('DOMContentLoaded', _.highlightAll);
+ }
+ }
+}
+
+return _self.Prism;
+
+})();
+
+if (typeof module !== 'undefined' && module.exports) {
+ module.exports = Prism;
+}
+
+// hack for components to work correctly in node.js
+if (typeof global !== 'undefined') {
+ global.Prism = Prism;
+}
+
+
+/* **********************************************
+ Begin prism-markup.js
+********************************************** */
+
+Prism.languages.markup = {
+ 'comment': /<!--[\w\W]*?-->/,
+ 'prolog': /<\?[\w\W]+?\?>/,
+ 'doctype': /<!DOCTYPE[\w\W]+?>/i,
+ 'cdata': /<!\[CDATA\[[\w\W]*?]]>/i,
+ 'tag': {
+ pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,
+ inside: {
+ 'tag': {
+ pattern: /^<\/?[^\s>\/]+/i,
+ inside: {
+ 'punctuation': /^<\/?/,
+ 'namespace': /^[^\s>\/:]+:/
+ }
+ },
+ 'attr-value': {
+ pattern: /=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,
+ inside: {
+ 'punctuation': /[=>"']/
+ }
+ },
+ 'punctuation': /\/?>/,
+ 'attr-name': {
+ pattern: /[^\s>\/]+/,
+ inside: {
+ 'namespace': /^[^\s>\/:]+:/
+ }
+ }
+
+ }
+ },
+ 'entity': /&#?[\da-z]{1,8};/i
+};
+
+// 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(/&amp;/, '&');
+ }
+});
+
+Prism.languages.xml = Prism.languages.markup;
+Prism.languages.html = Prism.languages.markup;
+Prism.languages.mathml = Prism.languages.markup;
+Prism.languages.svg = Prism.languages.markup;
+
+
+/* **********************************************
+ Begin prism-css.js
+********************************************** */
+
+Prism.languages.css = {
+ 'comment': /\/\*[\w\W]*?\*\//,
+ 'atrule': {
+ pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i,
+ inside: {
+ 'rule': /@[\w-]+/
+ // See rest below
+ }
+ },
+ 'url': /url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,
+ 'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/,
+ 'string': {
+ pattern: /("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,
+ greedy: true
+ },
+ 'property': /(\b|\B)[\w-]+(?=\s*:)/i,
+ 'important': /\B!important\b/i,
+ 'function': /[-a-z0-9]+(?=\()/i,
+ 'punctuation': /[(){};:]/
+};
+
+Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css);
+
+if (Prism.languages.markup) {
+ Prism.languages.insertBefore('markup', 'tag', {
+ 'style': {
+ pattern: /(<style[\w\W]*?>)[\w\W]*?(?=<\/style>)/i,
+ lookbehind: true,
+ inside: Prism.languages.css,
+ alias: 'language-css'
+ }
+ });
+
+ Prism.languages.insertBefore('inside', 'attr-value', {
+ 'style-attr': {
+ pattern: /\s*style=("|').*?\1/i,
+ inside: {
+ 'attr-name': {
+ pattern: /^\s*style/i,
+ inside: Prism.languages.markup.tag.inside
+ },
+ 'punctuation': /^\s*=\s*['"]|['"]\s*$/,
+ 'attr-value': {
+ pattern: /.+/i,
+ inside: Prism.languages.css
+ }
+ },
+ alias: 'language-css'
+ }
+ }, Prism.languages.markup.tag);
+}
+
+/* **********************************************
+ Begin prism-clike.js
+********************************************** */
+
+Prism.languages.clike = {
+ 'comment': [
+ {
+ pattern: /(^|[^\\])\/\*[\w\W]*?\*\//,
+ lookbehind: true
+ },
+ {
+ pattern: /(^|[^\\:])\/\/.*/,
+ lookbehind: true
+ }
+ ],
+ 'string': {
+ pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
+ greedy: true
+ },
+ 'class-name': {
+ pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,
+ lookbehind: true,
+ inside: {
+ punctuation: /(\.|\\)/
+ }
+ },
+ 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
+ 'boolean': /\b(true|false)\b/,
+ 'function': /[a-z0-9_]+(?=\()/i,
+ 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,
+ 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
+ 'punctuation': /[{}[\];(),.:]/
+};
+
+
+/* **********************************************
+ Begin prism-javascript.js
+********************************************** */
+
+Prism.languages.javascript = Prism.languages.extend('clike', {
+ 'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,
+ 'number': /\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,
+ // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
+ 'function': /[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,
+ 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*\*?|\/|~|\^|%|\.{3}/
+});
+
+Prism.languages.insertBefore('javascript', 'keyword', {
+ 'regex': {
+ pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,
+ lookbehind: true,
+ greedy: true
+ }
+});
+
+Prism.languages.insertBefore('javascript', 'string', {
+ 'template-string': {
+ pattern: /`(?:\\\\|\\?[^\\])*?`/,
+ greedy: true,
+ inside: {
+ 'interpolation': {
+ pattern: /\$\{[^}]+\}/,
+ inside: {
+ 'interpolation-punctuation': {
+ pattern: /^\$\{|\}$/,
+ alias: 'punctuation'
+ },
+ rest: Prism.languages.javascript
+ }
+ },
+ 'string': /[\s\S]+/
+ }
+ }
+});
+
+if (Prism.languages.markup) {
+ Prism.languages.insertBefore('markup', 'tag', {
+ 'script': {
+ pattern: /(<script[\w\W]*?>)[\w\W]*?(?=<\/script>)/i,
+ lookbehind: true,
+ inside: Prism.languages.javascript,
+ alias: 'language-javascript'
+ }
+ });
+}
+
+Prism.languages.js = Prism.languages.javascript;
+
+/* **********************************************
+ Begin prism-file-highlight.js
+********************************************** */
+
+(function () {
+ if (typeof self === 'undefined' || !self.Prism || !self.document || !document.querySelector) {
+ return;
+ }
+
+ self.Prism.fileHighlight = function() {
+
+ var Extensions = {
+ 'js': 'javascript',
+ 'py': 'python',
+ 'rb': 'ruby',
+ 'ps1': 'powershell',
+ 'psm1': 'powershell',
+ 'sh': 'bash',
+ 'bat': 'batch',
+ 'h': 'c',
+ 'tex': 'latex'
+ };
+
+ if(Array.prototype.forEach) { // Check to prevent error in IE8
+ Array.prototype.slice.call(document.querySelectorAll('pre[data-src]')).forEach(function (pre) {
+ var src = pre.getAttribute('data-src');
+
+ var language, parent = pre;
+ var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
+ while (parent && !lang.test(parent.className)) {
+ parent = parent.parentNode;
+ }
+
+ if (parent) {
+ language = (pre.className.match(lang) || [, ''])[1];
+ }
+
+ if (!language) {
+ var extension = (src.match(/\.(\w+)$/) || [, ''])[1];
+ language = Extensions[extension] || extension;
+ }
+
+ var code = document.createElement('code');
+ code.className = 'language-' + language;
+
+ pre.textContent = '';
+
+ code.textContent = 'Loading…';
+
+ pre.appendChild(code);
+
+ var xhr = new XMLHttpRequest();
+
+ xhr.open('GET', src, true);
+
+ xhr.onreadystatechange = function () {
+ if (xhr.readyState == 4) {
+
+ if (xhr.status < 400 && xhr.responseText) {
+ code.textContent = xhr.responseText;
+
+ Prism.highlightElement(code);
+ }
+ else if (xhr.status >= 400) {
+ code.textContent = '✖ Error ' + xhr.status + ' while fetching file: ' + xhr.statusText;
+ }
+ else {
+ code.textContent = '✖ Error: File does not exist or is empty';
+ }
+ }
+ };
+
+ xhr.send(null);
+ });
+ }
+
+ };
+
+ document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);
+
+})();
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
+
+/***/ }),
+/* 17 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(4),
+ __webpack_require__(5),
/* template */
- __webpack_require__(25),
+ __webpack_require__(24),
/* scopeId */
null,
/* cssModules */
@@ -3275,14 +2916,14 @@ module.exports = Component.exports
/***/ }),
-/* 19 */
+/* 18 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(6),
+ __webpack_require__(7),
/* template */
- __webpack_require__(29),
+ __webpack_require__(28),
/* scopeId */
null,
/* cssModules */
@@ -3309,14 +2950,14 @@ module.exports = Component.exports
/***/ }),
-/* 20 */
+/* 19 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(7),
+ __webpack_require__(8),
/* template */
- __webpack_require__(26),
+ __webpack_require__(25),
/* scopeId */
null,
/* cssModules */
@@ -3343,14 +2984,14 @@ module.exports = Component.exports
/***/ }),
-/* 21 */
+/* 20 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(8),
+ __webpack_require__(9),
/* template */
- __webpack_require__(23),
+ __webpack_require__(22),
/* scopeId */
null,
/* cssModules */
@@ -3377,14 +3018,14 @@ module.exports = Component.exports
/***/ }),
-/* 22 */
+/* 21 */
/***/ (function(module, exports, __webpack_require__) {
var Component = __webpack_require__(0)(
/* script */
- __webpack_require__(9),
+ __webpack_require__(10),
/* template */
- __webpack_require__(24),
+ __webpack_require__(23),
/* scopeId */
null,
/* cssModules */
@@ -3411,7 +3052,7 @@ module.exports = Component.exports
/***/ }),
-/* 23 */
+/* 22 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3432,7 +3073,7 @@ if (false) {
}
/***/ }),
-/* 24 */
+/* 23 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3442,7 +3083,8 @@ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c
"type": "output",
"outputType": _vm.outputType,
"count": _vm.count,
- "raw-code": _vm.rawCode
+ "raw-code": _vm.rawCode,
+ "code-css-class": _vm.codeCssClass
}
})
},staticRenderFns: []}
@@ -3455,7 +3097,7 @@ if (false) {
}
/***/ }),
-/* 25 */
+/* 24 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3465,12 +3107,14 @@ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c
attrs: {
"type": "input",
"raw-code": _vm.rawInputCode,
- "count": _vm.cell.execution_count
+ "count": _vm.cell.execution_count,
+ "code-css-class": _vm.codeCssClass
}
}), _vm._v(" "), (_vm.hasOutput) ? _c('output-cell', {
attrs: {
"count": _vm.cell.execution_count,
- "output": _vm.output
+ "output": _vm.output,
+ "code-css-class": _vm.codeCssClass
}
}) : _vm._e()], 1)
},staticRenderFns: []}
@@ -3483,7 +3127,7 @@ if (false) {
}
/***/ }),
-/* 26 */
+/* 25 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3504,7 +3148,7 @@ if (false) {
}
/***/ }),
-/* 27 */
+/* 26 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3513,7 +3157,8 @@ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c
key: index,
tag: "component",
attrs: {
- "cell": cell
+ "cell": cell,
+ "code-css-class": _vm.codeCssClass
}
})
})) : _vm._e()
@@ -3527,7 +3172,7 @@ if (false) {
}
/***/ }),
-/* 28 */
+/* 27 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3544,7 +3189,7 @@ if (false) {
}
/***/ }),
-/* 29 */
+/* 28 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3566,7 +3211,7 @@ if (false) {
}
/***/ }),
-/* 30 */
+/* 29 */
/***/ (function(module, exports, __webpack_require__) {
module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
@@ -3579,6 +3224,8 @@ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c
}
}), _vm._v(" "), _c('pre', {
ref: "code",
+ staticClass: "language-python",
+ class: _vm.codeCssClass,
domProps: {
"textContent": _vm._s(_vm.code)
}
@@ -3593,31 +3240,55 @@ if (false) {
}
/***/ }),
+/* 30 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var Notebook = __webpack_require__(4);
+
+module.exports = {
+ install: function install(_vue) {
+ _vue.component('notebook-lab', Notebook);
+ }
+};
+
+/***/ }),
/* 31 */
-/***/ (function(module, exports) {
+/***/ (function(module, exports, __webpack_require__) {
-var g;
-
-// This works in non-strict mode
-g = (function() {
- return this;
-})();
-
-try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
-} catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
-}
-
-// g can still be undefined, but nothing to do about it...
-// We return undefined, instead of nothing here, so it's
-// easier to handle this case. if(!global) { ...}
-
-module.exports = g;
+/* WEBPACK VAR INJECTION */(function(global) {(function(){
+if (
+ (typeof self === 'undefined' || !self.Prism) &&
+ (typeof global === 'undefined' || !global.Prism)
+) {
+ return;
+}
+
+var options = {};
+Prism.plugins.customClass = {
+ map: function map(cm) {
+ options.classMap = cm;
+ },
+ prefix: function prefix(string) {
+ options.prefixString = string;
+ }
+}
+
+Prism.hooks.add('wrap', function (env) {
+ if (!options.classMap && !options.prefixString) {
+ return;
+ }
+ env.classes = env.classes.map(function(c) {
+ return (options.prefixString || '') + (options.classMap[c] || c);
+ });
+});
+
+})();
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
/***/ }),
/* 32 */
@@ -3626,14 +3297,39 @@ module.exports = g;
"use strict";
-var Notebook = __webpack_require__(3);
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _Prism$plugins$custom;
-module.exports = {
- install: function install(_vue) {
- _vue.component('notebook-lab', Notebook);
- }
-};
+var _prismjs = __webpack_require__(16);
+
+var _prismjs2 = _interopRequireDefault(_prismjs);
+
+__webpack_require__(15);
+
+__webpack_require__(31);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+_prismjs2.default.plugins.customClass.map((_Prism$plugins$custom = {
+ comment: 'c',
+ error: 'err',
+ operator: 'o',
+ constant: 'kc',
+ namespace: 'kn',
+ keyword: 'k',
+ string: 's',
+ number: 'm',
+ 'attr-name': 'na',
+ builtin: 'nb'
+}, _defineProperty(_Prism$plugins$custom, 'constant', 'no'), _defineProperty(_Prism$plugins$custom, 'entity', 'ni'), _defineProperty(_Prism$plugins$custom, 'function', 'nf'), _defineProperty(_Prism$plugins$custom, 'tag', 'nt'), _defineProperty(_Prism$plugins$custom, 'variable', 'nv'), _Prism$plugins$custom));
+
+exports.default = _prismjs2.default;
/***/ })
/******/ ]);
-});
+}); \ No newline at end of file