1 | 'use strict';
|
2 |
|
3 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
4 |
|
5 | var Prism = _interopDefault(require('prismjs'));
|
6 |
|
7 | function assign(obj) {
|
8 | for (var i = 1; i < arguments.length; i++) {
|
9 |
|
10 | for (var p in arguments[i]) {
|
11 | obj[p] = arguments[i][p];
|
12 | }
|
13 | }
|
14 |
|
15 | return obj;
|
16 | }
|
17 |
|
18 | var index = {
|
19 | functional: true,
|
20 | props: {
|
21 | code: {
|
22 | type: String
|
23 | },
|
24 | inline: {
|
25 | type: Boolean,
|
26 | "default": false
|
27 | },
|
28 | language: {
|
29 | type: String,
|
30 | "default": 'markup'
|
31 | }
|
32 | },
|
33 | render: function render(h, ctx) {
|
34 | var code = ctx.props.code || (ctx.children && ctx.children.length > 0 ? ctx.children[0].text : '');
|
35 | var inline = ctx.props.inline;
|
36 | var language = ctx.props.language;
|
37 | var prismLanguage = Prism.languages[language];
|
38 | var className = "language-".concat(language);
|
39 |
|
40 | if (process.env.NODE_ENV === 'development' && !prismLanguage) {
|
41 | throw new Error("Prism component for language \"".concat(language, "\" was not found, did you forget to register it? See all available ones: https://cdn.jsdelivr.net/npm/prismjs/components/"));
|
42 | }
|
43 |
|
44 | if (inline) {
|
45 | return h('code', assign({}, ctx.data, {
|
46 | "class": [ctx.data["class"], className],
|
47 | domProps: assign({}, ctx.data.domProps, {
|
48 | innerHTML: Prism.highlight(code, prismLanguage)
|
49 | })
|
50 | }));
|
51 | }
|
52 |
|
53 | return h('pre', assign({}, ctx.data, {
|
54 | "class": [ctx.data["class"], className]
|
55 | }), [h('code', {
|
56 | "class": className,
|
57 | domProps: {
|
58 | innerHTML: Prism.highlight(code, prismLanguage)
|
59 | }
|
60 | })]);
|
61 | }
|
62 | };
|
63 |
|
64 | module.exports = index;
|