@nakobase/nakobase-md-html 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CONTAINER_TYPES = exports.ARGUMENT_DIVIDER = void 0;
7
+ const ARGUMENT_DIVIDER = exports.ARGUMENT_DIVIDER = '|';
8
+ const CONTAINER_TYPES = exports.CONTAINER_TYPES = {
9
+ TOC: 'toc',
10
+ BOX: 'box',
11
+ BUBBLE: 'bubble',
12
+ BUBBLE_IMAGE: 'bubbleImage',
13
+ DETAILS: 'details'
14
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB1C,eAAO,MAAM,QAAQ,GACnB,UAAU,MAAM,EAChB,UAAU,eAAe,KACxB,MA6BF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB1C,eAAO,MAAM,QAAQ,GACnB,UAAU,MAAM,EAChB,UAAU,eAAe,KACxB,MA8BF,CAAC"}
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.mdToHtml = void 0;
8
+ var _markdownIt = _interopRequireDefault(require("markdown-it"));
9
+ var _sanitizer = require("./sanitizer");
10
+ var _mdContainer = require("./utils/md-container");
11
+ var _mdRendererFence = require("./utils/md-renderer-fence");
12
+ var _mdCustomBlocks = require("./utils/md-custom-blocks");
13
+ var _constants = require("./constants");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ // plugins
16
+ const MdItImSize = require('@steelydylan/markdown-it-imsize').default;
17
+ const MdItInlineComments = require('markdown-it-inline-comments');
18
+ const MdItContainer = require('markdown-it-container');
19
+ const MdItTaskLists = require('markdown-it-task-lists');
20
+ const mdToHtml = (markdown, options) => {
21
+ const {
22
+ codeHighlight
23
+ } = options || {};
24
+ if (!(markdown && markdown.length)) return '';
25
+ const md = (0, _markdownIt.default)({
26
+ breaks: true,
27
+ linkify: true
28
+ });
29
+ md.linkify.set({
30
+ fuzzyLink: false
31
+ });
32
+ md.linkify.set({
33
+ fuzzyEmail: false
34
+ });
35
+ md.use(MdItInlineComments).use(MdItImSize).use(MdItTaskLists, {
36
+ enabled: true
37
+ }).use(MdItContainer, _constants.CONTAINER_TYPES.DETAILS, _mdContainer.detailsOptions).use(MdItContainer, _constants.CONTAINER_TYPES.BOX, _mdContainer.boxOptions).use(MdItContainer, _constants.CONTAINER_TYPES.BUBBLE, _mdContainer.bubbleOptions).use(MdItContainer, _constants.CONTAINER_TYPES.BUBBLE_IMAGE, _mdContainer.bubbleImageOptions).use(_mdCustomBlocks.mdCustomBlocks);
38
+ if (codeHighlight) {
39
+ md.use(_mdRendererFence.mdRendererFence);
40
+ }
41
+ return (0, _sanitizer.sanitize)(md.render(markdown));
42
+ };
43
+ exports.mdToHtml = mdToHtml;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sanitize = void 0;
7
+ var _sanitizeHtml = _interopRequireWildcard(require("sanitize-html"));
8
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
9
+ // sanitizer.ts
10
+
11
+ const extendedTags = ['iframe', 'code', 'details', 'summary', 'circle', 'img', 'input', 'pre', 'span', 'picture', 'source'];
12
+ const extendedAttributes = {
13
+ a: [...(_sanitizeHtml.defaults.allowedAttributes.a || []), 'id', 'class', 'data-line'],
14
+ iframe: ['src', 'width', 'height', 'allow', 'sandbox', 'frameborder'],
15
+ input: ['type', 'checked', 'disabled', 'readonly', 'value', 'class'],
16
+ source: ['srcset', 'type'],
17
+ img: ['src', 'alt', 'width', 'height'],
18
+ ul: ['class'],
19
+ ol: ['class'],
20
+ li: ['class'],
21
+ div: ['class'],
22
+ pre: ['class'],
23
+ code: [...(_sanitizeHtml.defaults.allowedAttributes.code || []), 'class'],
24
+ span: ['class']
25
+ };
26
+ const sanitize = html => (0, _sanitizeHtml.default)(html, {
27
+ allowedTags: [..._sanitizeHtml.defaults.allowedTags, ...extendedTags],
28
+ allowedAttributes: {
29
+ ..._sanitizeHtml.defaults.allowedAttributes,
30
+ ...extendedAttributes
31
+ },
32
+ allowedSchemes: ['http', 'https', 'mailto', 'tel'],
33
+ allowedSchemesByTag: {
34
+ iframe: ['https'],
35
+ img: ['http', 'https', 'data']
36
+ },
37
+ allowedStyles: {
38
+ '*': {
39
+ width: [/^\d+(?:px|%)$/],
40
+ height: [/^\d+(?:px|%)$/],
41
+ 'text-align': [/^(?:left|right|center|justify)$/]
42
+ }
43
+ },
44
+ disallowedTagsMode: 'discard'
45
+ });
46
+ exports.sanitize = sanitize;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.highlightCode = highlightCode;
7
+ var _prismCore = _interopRequireDefault(require("prismjs/components/prism-core"));
8
+ require("prismjs/components/prism-markup");
9
+ require("prismjs/components/prism-css");
10
+ require("prismjs/components/prism-clike");
11
+ require("prismjs/components/prism-regex");
12
+ require("prismjs/components/prism-javascript");
13
+ require("prismjs/components/prism-abap");
14
+ require("prismjs/components/prism-abnf");
15
+ require("prismjs/components/prism-actionscript");
16
+ require("prismjs/components/prism-ada");
17
+ require("prismjs/components/prism-agda");
18
+ require("prismjs/components/prism-al");
19
+ require("prismjs/components/prism-antlr4");
20
+ require("prismjs/components/prism-apacheconf");
21
+ require("prismjs/components/prism-sql");
22
+ require("prismjs/components/prism-apex");
23
+ require("prismjs/components/prism-apl");
24
+ require("prismjs/components/prism-applescript");
25
+ require("prismjs/components/prism-aql");
26
+ require("prismjs/components/prism-c");
27
+ require("prismjs/components/prism-cpp");
28
+ require("prismjs/components/prism-arduino");
29
+ require("prismjs/components/prism-arff");
30
+ require("prismjs/components/prism-armasm");
31
+ require("prismjs/components/prism-bash");
32
+ require("prismjs/components/prism-yaml");
33
+ require("prismjs/components/prism-markdown");
34
+ require("prismjs/components/prism-arturo");
35
+ require("prismjs/components/prism-asciidoc");
36
+ require("prismjs/components/prism-csharp");
37
+ require("prismjs/components/prism-aspnet");
38
+ require("prismjs/components/prism-asm6502");
39
+ require("prismjs/components/prism-asmatmel");
40
+ require("prismjs/components/prism-autohotkey");
41
+ require("prismjs/components/prism-autoit");
42
+ require("prismjs/components/prism-avisynth");
43
+ require("prismjs/components/prism-avro-idl");
44
+ require("prismjs/components/prism-awk");
45
+ require("prismjs/components/prism-basic");
46
+ require("prismjs/components/prism-batch");
47
+ require("prismjs/components/prism-bbcode");
48
+ require("prismjs/components/prism-bbj");
49
+ require("prismjs/components/prism-bicep");
50
+ require("prismjs/components/prism-birb");
51
+ require("prismjs/components/prism-bison");
52
+ require("prismjs/components/prism-bnf");
53
+ require("prismjs/components/prism-bqn");
54
+ require("prismjs/components/prism-brainfuck");
55
+ require("prismjs/components/prism-brightscript");
56
+ require("prismjs/components/prism-bro");
57
+ require("prismjs/components/prism-bsl");
58
+ require("prismjs/components/prism-cfscript");
59
+ require("prismjs/components/prism-chaiscript");
60
+ require("prismjs/components/prism-cil");
61
+ require("prismjs/components/prism-cilkc");
62
+ require("prismjs/components/prism-cilkcpp");
63
+ require("prismjs/components/prism-clojure");
64
+ require("prismjs/components/prism-cmake");
65
+ require("prismjs/components/prism-cobol");
66
+ require("prismjs/components/prism-coffeescript");
67
+ require("prismjs/components/prism-concurnas");
68
+ require("prismjs/components/prism-csp");
69
+ require("prismjs/components/prism-cooklang");
70
+ require("prismjs/components/prism-coq");
71
+ require("prismjs/components/prism-ruby");
72
+ require("prismjs/components/prism-crystal");
73
+ require("prismjs/components/prism-css-extras");
74
+ require("prismjs/components/prism-csv");
75
+ require("prismjs/components/prism-cue");
76
+ require("prismjs/components/prism-cypher");
77
+ require("prismjs/components/prism-d");
78
+ require("prismjs/components/prism-dart");
79
+ require("prismjs/components/prism-dataweave");
80
+ require("prismjs/components/prism-dax");
81
+ require("prismjs/components/prism-dhall");
82
+ require("prismjs/components/prism-diff");
83
+ require("prismjs/components/prism-markup-templating");
84
+ require("prismjs/components/prism-django");
85
+ require("prismjs/components/prism-dns-zone-file");
86
+ require("prismjs/components/prism-docker");
87
+ require("prismjs/components/prism-dot");
88
+ require("prismjs/components/prism-ebnf");
89
+ require("prismjs/components/prism-editorconfig");
90
+ require("prismjs/components/prism-eiffel");
91
+ require("prismjs/components/prism-ejs");
92
+ require("prismjs/components/prism-elixir");
93
+ require("prismjs/components/prism-elm");
94
+ require("prismjs/components/prism-lua");
95
+ require("prismjs/components/prism-etlua");
96
+ require("prismjs/components/prism-erb");
97
+ require("prismjs/components/prism-erlang");
98
+ require("prismjs/components/prism-excel-formula");
99
+ require("prismjs/components/prism-fsharp");
100
+ require("prismjs/components/prism-factor");
101
+ require("prismjs/components/prism-false");
102
+ require("prismjs/components/prism-firestore-security-rules");
103
+ require("prismjs/components/prism-flow");
104
+ require("prismjs/components/prism-fortran");
105
+ require("prismjs/components/prism-ftl");
106
+ require("prismjs/components/prism-gml");
107
+ require("prismjs/components/prism-gap");
108
+ require("prismjs/components/prism-gcode");
109
+ require("prismjs/components/prism-gdscript");
110
+ require("prismjs/components/prism-gedcom");
111
+ require("prismjs/components/prism-gettext");
112
+ require("prismjs/components/prism-gherkin");
113
+ require("prismjs/components/prism-git");
114
+ require("prismjs/components/prism-glsl");
115
+ require("prismjs/components/prism-gn");
116
+ require("prismjs/components/prism-linker-script");
117
+ require("prismjs/components/prism-go");
118
+ require("prismjs/components/prism-go-module");
119
+ require("prismjs/components/prism-gradle");
120
+ require("prismjs/components/prism-graphql");
121
+ require("prismjs/components/prism-groovy");
122
+ require("prismjs/components/prism-less");
123
+ require("prismjs/components/prism-scss");
124
+ require("prismjs/components/prism-textile");
125
+ require("prismjs/components/prism-haml");
126
+ require("prismjs/components/prism-handlebars");
127
+ require("prismjs/components/prism-haskell");
128
+ require("prismjs/components/prism-haxe");
129
+ require("prismjs/components/prism-hcl");
130
+ require("prismjs/components/prism-hlsl");
131
+ require("prismjs/components/prism-hoon");
132
+ require("prismjs/components/prism-hpkp");
133
+ require("prismjs/components/prism-hsts");
134
+ require("prismjs/components/prism-json");
135
+ require("prismjs/components/prism-uri");
136
+ require("prismjs/components/prism-http");
137
+ require("prismjs/components/prism-ichigojam");
138
+ require("prismjs/components/prism-icon");
139
+ require("prismjs/components/prism-icu-message-format");
140
+ require("prismjs/components/prism-idris");
141
+ require("prismjs/components/prism-ignore");
142
+ require("prismjs/components/prism-inform7");
143
+ require("prismjs/components/prism-ini");
144
+ require("prismjs/components/prism-io");
145
+ require("prismjs/components/prism-j");
146
+ require("prismjs/components/prism-java");
147
+ require("prismjs/components/prism-php");
148
+ require("prismjs/components/prism-javadoclike");
149
+ require("prismjs/components/prism-scala");
150
+ require("prismjs/components/prism-javadoc");
151
+ require("prismjs/components/prism-javastacktrace");
152
+ require("prismjs/components/prism-jexl");
153
+ require("prismjs/components/prism-jolie");
154
+ require("prismjs/components/prism-jq");
155
+ require("prismjs/components/prism-js-templates");
156
+ require("prismjs/components/prism-typescript");
157
+ require("prismjs/components/prism-jsdoc");
158
+ require("prismjs/components/prism-n4js");
159
+ require("prismjs/components/prism-js-extras");
160
+ require("prismjs/components/prism-json5");
161
+ require("prismjs/components/prism-jsonp");
162
+ require("prismjs/components/prism-jsstacktrace");
163
+ require("prismjs/components/prism-julia");
164
+ require("prismjs/components/prism-keepalived");
165
+ require("prismjs/components/prism-keyman");
166
+ require("prismjs/components/prism-kotlin");
167
+ require("prismjs/components/prism-kumir");
168
+ require("prismjs/components/prism-kusto");
169
+ require("prismjs/components/prism-latex");
170
+ require("prismjs/components/prism-latte");
171
+ require("prismjs/components/prism-scheme");
172
+ require("prismjs/components/prism-lilypond");
173
+ require("prismjs/components/prism-liquid");
174
+ require("prismjs/components/prism-lisp");
175
+ require("prismjs/components/prism-livescript");
176
+ require("prismjs/components/prism-llvm");
177
+ require("prismjs/components/prism-log");
178
+ require("prismjs/components/prism-lolcode");
179
+ require("prismjs/components/prism-magma");
180
+ require("prismjs/components/prism-makefile");
181
+ require("prismjs/components/prism-mata");
182
+ require("prismjs/components/prism-matlab");
183
+ require("prismjs/components/prism-maxscript");
184
+ require("prismjs/components/prism-mel");
185
+ require("prismjs/components/prism-mermaid");
186
+ require("prismjs/components/prism-metafont");
187
+ require("prismjs/components/prism-mizar");
188
+ require("prismjs/components/prism-mongodb");
189
+ require("prismjs/components/prism-monkey");
190
+ require("prismjs/components/prism-moonscript");
191
+ require("prismjs/components/prism-n1ql");
192
+ require("prismjs/components/prism-nand2tetris-hdl");
193
+ require("prismjs/components/prism-naniscript");
194
+ require("prismjs/components/prism-nasm");
195
+ require("prismjs/components/prism-neon");
196
+ require("prismjs/components/prism-nevod");
197
+ require("prismjs/components/prism-nginx");
198
+ require("prismjs/components/prism-nim");
199
+ require("prismjs/components/prism-nix");
200
+ require("prismjs/components/prism-nsis");
201
+ require("prismjs/components/prism-objectivec");
202
+ require("prismjs/components/prism-ocaml");
203
+ require("prismjs/components/prism-odin");
204
+ require("prismjs/components/prism-opencl");
205
+ require("prismjs/components/prism-openqasm");
206
+ require("prismjs/components/prism-oz");
207
+ require("prismjs/components/prism-parigp");
208
+ require("prismjs/components/prism-parser");
209
+ require("prismjs/components/prism-pascal");
210
+ require("prismjs/components/prism-pascaligo");
211
+ require("prismjs/components/prism-psl");
212
+ require("prismjs/components/prism-pcaxis");
213
+ require("prismjs/components/prism-peoplecode");
214
+ require("prismjs/components/prism-perl");
215
+ require("prismjs/components/prism-phpdoc");
216
+ require("prismjs/components/prism-php-extras");
217
+ require("prismjs/components/prism-plant-uml");
218
+ require("prismjs/components/prism-plsql");
219
+ require("prismjs/components/prism-powerquery");
220
+ require("prismjs/components/prism-powershell");
221
+ require("prismjs/components/prism-processing");
222
+ require("prismjs/components/prism-prolog");
223
+ require("prismjs/components/prism-promql");
224
+ require("prismjs/components/prism-properties");
225
+ require("prismjs/components/prism-protobuf");
226
+ require("prismjs/components/prism-stylus");
227
+ require("prismjs/components/prism-twig");
228
+ require("prismjs/components/prism-pug");
229
+ require("prismjs/components/prism-puppet");
230
+ require("prismjs/components/prism-pure");
231
+ require("prismjs/components/prism-purebasic");
232
+ require("prismjs/components/prism-purescript");
233
+ require("prismjs/components/prism-python");
234
+ require("prismjs/components/prism-qsharp");
235
+ require("prismjs/components/prism-q");
236
+ require("prismjs/components/prism-qml");
237
+ require("prismjs/components/prism-qore");
238
+ require("prismjs/components/prism-r");
239
+ require("prismjs/components/prism-racket");
240
+ require("prismjs/components/prism-cshtml");
241
+ require("prismjs/components/prism-jsx");
242
+ require("prismjs/components/prism-tsx");
243
+ require("prismjs/components/prism-reason");
244
+ require("prismjs/components/prism-rego");
245
+ require("prismjs/components/prism-renpy");
246
+ require("prismjs/components/prism-rescript");
247
+ require("prismjs/components/prism-rest");
248
+ require("prismjs/components/prism-rip");
249
+ require("prismjs/components/prism-roboconf");
250
+ require("prismjs/components/prism-robotframework");
251
+ require("prismjs/components/prism-rust");
252
+ require("prismjs/components/prism-sas");
253
+ require("prismjs/components/prism-sass");
254
+ require("prismjs/components/prism-shell-session");
255
+ require("prismjs/components/prism-smali");
256
+ require("prismjs/components/prism-smalltalk");
257
+ require("prismjs/components/prism-smarty");
258
+ require("prismjs/components/prism-sml");
259
+ require("prismjs/components/prism-solidity");
260
+ require("prismjs/components/prism-solution-file");
261
+ require("prismjs/components/prism-soy");
262
+ require("prismjs/components/prism-turtle");
263
+ require("prismjs/components/prism-sparql");
264
+ require("prismjs/components/prism-splunk-spl");
265
+ require("prismjs/components/prism-sqf");
266
+ require("prismjs/components/prism-squirrel");
267
+ require("prismjs/components/prism-stan");
268
+ require("prismjs/components/prism-stata");
269
+ require("prismjs/components/prism-iecst");
270
+ require("prismjs/components/prism-supercollider");
271
+ require("prismjs/components/prism-swift");
272
+ require("prismjs/components/prism-systemd");
273
+ require("prismjs/components/prism-t4-templating");
274
+ require("prismjs/components/prism-t4-cs");
275
+ require("prismjs/components/prism-vbnet");
276
+ require("prismjs/components/prism-t4-vb");
277
+ require("prismjs/components/prism-tap");
278
+ require("prismjs/components/prism-tcl");
279
+ require("prismjs/components/prism-tt2");
280
+ require("prismjs/components/prism-toml");
281
+ require("prismjs/components/prism-tremor");
282
+ require("prismjs/components/prism-typoscript");
283
+ require("prismjs/components/prism-unrealscript");
284
+ require("prismjs/components/prism-uorazor");
285
+ require("prismjs/components/prism-v");
286
+ require("prismjs/components/prism-vala");
287
+ require("prismjs/components/prism-velocity");
288
+ require("prismjs/components/prism-verilog");
289
+ require("prismjs/components/prism-vhdl");
290
+ require("prismjs/components/prism-vim");
291
+ require("prismjs/components/prism-visual-basic");
292
+ require("prismjs/components/prism-warpscript");
293
+ require("prismjs/components/prism-wasm");
294
+ require("prismjs/components/prism-web-idl");
295
+ require("prismjs/components/prism-wgsl");
296
+ require("prismjs/components/prism-wiki");
297
+ require("prismjs/components/prism-wolfram");
298
+ require("prismjs/components/prism-wren");
299
+ require("prismjs/components/prism-xeora");
300
+ require("prismjs/components/prism-xml-doc");
301
+ require("prismjs/components/prism-xojo");
302
+ require("prismjs/components/prism-xquery");
303
+ require("prismjs/components/prism-yang");
304
+ require("prismjs/components/prism-zig");
305
+ var _utils = require("markdown-it/lib/common/utils");
306
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
307
+ function highlightCode(text, lang) {
308
+ const grammar = _prismCore.default.languages[lang];
309
+ if (!grammar) return (0, _utils.escapeHtml)(text);
310
+ return _prismCore.default.highlight(text, grammar, lang);
311
+ }
@@ -1,8 +1,14 @@
1
- import { escapeHtml } from 'markdown-it/lib/common/utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.detailsOptions = exports.bubbleOptions = exports.bubbleImageOptions = exports.boxOptions = void 0;
7
+ var _utils = require("markdown-it/lib/common/utils");
2
8
  // ::: details Detail
3
9
  // summary here
4
10
  // :::
5
- export const detailsOptions = {
11
+ const detailsOptions = exports.detailsOptions = {
6
12
  validate: function (params) {
7
13
  return /^details\s+(.*)$/.test(params.trim());
8
14
  },
@@ -11,7 +17,7 @@ export const detailsOptions = {
11
17
  const m = tokens[idx].info.trim().match(/^details\s+(.*)$/);
12
18
  const summary = (m === null || m === void 0 ? void 0 : m[1]) || '';
13
19
  if (isOpeningTag) {
14
- return '<details><summary>' + escapeHtml(summary) + '</summary><div class="details-content">';
20
+ return '<details><summary>' + (0, _utils.escapeHtml)(summary) + '</summary><div class="details-content">';
15
21
  } else {
16
22
  return '</div></details>\n';
17
23
  }
@@ -22,7 +28,7 @@ export const detailsOptions = {
22
28
  // ::: bubble alt="alt" src="src" webp="src.webp" width="100" height="100" pos="left"
23
29
  // markdown
24
30
  // :::
25
- export const bubbleOptions = {
31
+ const bubbleOptions = exports.bubbleOptions = {
26
32
  validate: function (params) {
27
33
  return /^bubble(?:\s+\w+="[^"]*")*\s*$/.test(params.trim());
28
34
  },
@@ -44,10 +50,10 @@ export const bubbleOptions = {
44
50
  pos = 'left',
45
51
  webp = ''
46
52
  } = attrs;
47
- const imgHtml = `<img src="${escapeHtml(src)}" alt="${escapeHtml(alt)}" ` + `width="${escapeHtml(width)}" height="${escapeHtml(height)}">`;
53
+ const imgHtml = `<img src="${(0, _utils.escapeHtml)(src)}" alt="${(0, _utils.escapeHtml)(alt)}" ` + `width="${(0, _utils.escapeHtml)(width)}" height="${(0, _utils.escapeHtml)(height)}">`;
48
54
  let imageElement;
49
55
  if (webp) {
50
- imageElement = '<picture>' + `<source srcset="${escapeHtml(webp)}" type="image/webp">` + imgHtml + '</picture>';
56
+ imageElement = '<picture>' + `<source srcset="${(0, _utils.escapeHtml)(webp)}" type="image/webp">` + imgHtml + '</picture>';
51
57
  } else {
52
58
  imageElement = imgHtml;
53
59
  }
@@ -62,7 +68,7 @@ export const bubbleOptions = {
62
68
  // ::: bubble-image alt="alt" src="src" webp="src.webp" width="640" height="360"
63
69
  // markdown
64
70
  // :::
65
- export const bubbleImageOptions = {
71
+ const bubbleImageOptions = exports.bubbleImageOptions = {
66
72
  validate: function (params) {
67
73
  return /^bubble-image(?:\s+\w+="[^"]*")*\s*$/.test(params.trim());
68
74
  },
@@ -83,10 +89,10 @@ export const bubbleImageOptions = {
83
89
  height = '360',
84
90
  webp = ''
85
91
  } = attrs;
86
- const imgHtml = `<img src="${escapeHtml(src)}" alt="${escapeHtml(alt)}" ` + `width="${escapeHtml(width)}" height="${escapeHtml(height)}">`;
92
+ const imgHtml = `<img src="${(0, _utils.escapeHtml)(src)}" alt="${(0, _utils.escapeHtml)(alt)}" ` + `width="${(0, _utils.escapeHtml)(width)}" height="${(0, _utils.escapeHtml)(height)}">`;
87
93
  let imageElement;
88
94
  if (webp) {
89
- imageElement = '<picture>' + `<source srcset="${escapeHtml(webp)}" type="image/webp">` + imgHtml + '</picture>';
95
+ imageElement = '<picture>' + `<source srcset="${(0, _utils.escapeHtml)(webp)}" type="image/webp">` + imgHtml + '</picture>';
90
96
  } else {
91
97
  imageElement = imgHtml;
92
98
  }
@@ -102,7 +108,7 @@ export const bubbleImageOptions = {
102
108
  // markdown
103
109
  // :::
104
110
  //
105
- export const boxOptions = {
111
+ const boxOptions = exports.boxOptions = {
106
112
  validate: function (params) {
107
113
  return /^(box[1-6])(?:\s+(.*))?$/.test(params.trim());
108
114
  },
@@ -1,4 +1,10 @@
1
- import { escapeHtml } from 'markdown-it/lib/common/utils';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mdCustomBlocks = mdCustomBlocks;
7
+ var _utils = require("markdown-it/lib/common/utils");
2
8
  function escapeRegExp(string) {
3
9
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
4
10
  }
@@ -30,7 +36,7 @@ function registerKVBlock(md, block) {
30
36
  return block.renderer(tokens[idx].meta);
31
37
  };
32
38
  }
33
- export function mdCustomBlocks(md) {
39
+ function mdCustomBlocks(md) {
34
40
  // @[img](src="", alt="", webp="", width="", height="")
35
41
  registerKVBlock(md, {
36
42
  name: 'image_with_webp',
@@ -44,14 +50,14 @@ export function mdCustomBlocks(md) {
44
50
  height,
45
51
  caption
46
52
  }) => {
47
- const webpSource = webp ? `<source srcset="${escapeHtml(webp)}" type="image/webp">` : '';
48
- const altText = alt ? `alt="${escapeHtml(alt)}"` : '';
49
- const widthAttr = width ? ` width="${escapeHtml(width)}"` : '';
50
- const heightAttr = height ? ` height="${escapeHtml(height)}"` : '';
51
- const captionText = caption ? `<em>${escapeHtml(caption)}</em>` : '';
53
+ const webpSource = webp ? `<source srcset="${(0, _utils.escapeHtml)(webp)}" type="image/webp">` : '';
54
+ const altText = alt ? `alt="${(0, _utils.escapeHtml)(alt)}"` : '';
55
+ const widthAttr = width ? ` width="${(0, _utils.escapeHtml)(width)}"` : '';
56
+ const heightAttr = height ? ` height="${(0, _utils.escapeHtml)(height)}"` : '';
57
+ const captionText = caption ? `<em>${(0, _utils.escapeHtml)(caption)}</em>` : '';
52
58
  return `<picture>
53
59
  ${webpSource}
54
- <img src="${escapeHtml(src)}" ${altText}${widthAttr}${heightAttr}>
60
+ <img src="${(0, _utils.escapeHtml)(src)}" ${altText}${widthAttr}${heightAttr}>
55
61
  ${captionText}
56
62
  </picture>`;
57
63
  }
@@ -67,8 +73,8 @@ export function mdCustomBlocks(md) {
67
73
  text
68
74
  }) => {
69
75
  const label = text || url;
70
- return `<a href="${escapeHtml(url)}" target="_blank" rel="noopener noreferrer" class="external-link">
71
- ${escapeHtml(label)}
76
+ return `<a href="${(0, _utils.escapeHtml)(url)}" target="_blank" rel="noopener noreferrer" class="external-link">
77
+ ${(0, _utils.escapeHtml)(label)}
72
78
  </a>`;
73
79
  }
74
80
  });
@@ -1,13 +1,20 @@
1
- import { escapeHtml } from 'markdown-it/lib/common/utils';
2
- import { highlightCode } from './highlight';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mdRendererFence = mdRendererFence;
7
+ exports.parseInfo = parseInfo;
8
+ var _utils = require("markdown-it/lib/common/utils");
9
+ var _highlight = require("./highlight");
3
10
  function getHtml({
4
11
  content,
5
12
  className,
6
13
  fileName,
7
14
  line
8
15
  }) {
9
- const escapedClass = escapeHtml(className);
10
- return `<div class="code-container">${fileName ? `<div class="code-filename-container"><span class="code-filename">${escapeHtml(fileName)}</span></div>` : ''}<pre class="${escapedClass}"><code class="${escapedClass !== '' ? `${escapedClass} code-line` : 'code-line'}" ${line !== undefined ? `data-line="${line}"` : ''}>${content}</code></pre></div>`;
16
+ const escapedClass = (0, _utils.escapeHtml)(className);
17
+ return `<div class="code-container">${fileName ? `<div class="code-filename-container"><span class="code-filename">${(0, _utils.escapeHtml)(fileName)}</span></div>` : ''}<pre class="${escapedClass}"><code class="${escapedClass !== '' ? `${escapedClass} code-line` : 'code-line'}" ${line !== undefined ? `data-line="${line}"` : ''}>${content}</code></pre></div>`;
11
18
  }
12
19
  function getClassName({
13
20
  lang = ''
@@ -29,7 +36,7 @@ function normalizeLangName(str) {
29
36
  const langName = str.toLocaleLowerCase();
30
37
  return fallbackLanguages[langName] ?? langName;
31
38
  }
32
- export function parseInfo(str) {
39
+ function parseInfo(str) {
33
40
  if (str.trim() === '') {
34
41
  return {
35
42
  lang: '',
@@ -46,7 +53,7 @@ export function parseInfo(str) {
46
53
  fileName
47
54
  };
48
55
  }
49
- export function mdRendererFence(md) {
56
+ function mdRendererFence(md) {
50
57
  // override fence
51
58
  md.renderer.rules.fence = function (...args) {
52
59
  var _tokens$idx$map;
@@ -62,7 +69,7 @@ export function mdRendererFence(md) {
62
69
  const className = getClassName({
63
70
  lang
64
71
  });
65
- const highlightedContent = highlightCode(content, lang);
72
+ const highlightedContent = (0, _highlight.highlightCode)(content, lang);
66
73
  const fenceStart = (_tokens$idx$map = tokens[idx].map) === null || _tokens$idx$map === void 0 ? void 0 : _tokens$idx$map[0];
67
74
  return getHtml({
68
75
  content: highlightedContent,
package/package.json CHANGED
@@ -1,21 +1,20 @@
1
1
  {
2
2
  "name": "@nakobase/nakobase-md-html",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "Convert Markdown to **sanitized HTML** and apply consistent styles – simple, secure, and styled.",
5
- "type": "module",
6
- "main": "dist/esm/index.js",
7
- "types": "dist/esm/index.d.ts",
8
- "bin": "./dist/esm/index.js",
5
+ "main": "dist/cjs/index.js",
6
+ "types": "dist/cjs/index.d.ts",
7
+ "bin": "./dist/cjs/index.js",
9
8
  "exports": {
10
9
  ".": {
11
- "import": "./dist/esm/index.js"
10
+ "import": "./dist/cjs/index.js"
12
11
  },
13
12
  "./styles/style.css": {
14
13
  "import": "./dist/styles/style.css"
15
14
  }
16
15
  },
17
16
  "files": [
18
- "dist/esm",
17
+ "dist/cjs",
19
18
  "dist/styles",
20
19
  "README.md",
21
20
  "LICENSE"
@@ -25,11 +24,11 @@
25
24
  ],
26
25
  "scripts": {
27
26
  "clean": "rimraf dist",
28
- "build:types": "tsc --project tsconfig.esm.json",
29
- "build:js": "babel src --extensions .ts,.tsx --ignore **/*.d.ts --out-dir dist/esm",
27
+ "build:types": "tsc --project tsconfig.build.json",
28
+ "build:js": "babel src --extensions .ts,.tsx --ignore **/*.d.ts --out-dir dist/cjs",
30
29
  "build:styles": "sass src/styles/style.scss:dist/styles/style.css --no-source-map --style compressed",
31
30
  "build": "pnpm run clean && pnpm run build:types && pnpm run build:styles && pnpm run build:js",
32
- "start": "pnpm run build && node dist/esm/index.js",
31
+ "start": "pnpm run build && node dist/cjs/index.js",
33
32
  "test": "jest",
34
33
  "test:watch": "jest --watch",
35
34
  "test:coverage": "jest --coverage",
@@ -92,6 +91,7 @@
92
91
  "typescript": "^5.5.4"
93
92
  },
94
93
  "dependencies": {
94
+ "@steelydylan/markdown-it-imsize": "^1.0.2",
95
95
  "markdown-it": "^12.3.2",
96
96
  "markdown-it-container": "^2.0.0",
97
97
  "markdown-it-custom-block": "^1.0.0",
@@ -1,8 +0,0 @@
1
- export const ARGUMENT_DIVIDER = '|';
2
- export const CONTAINER_TYPES = {
3
- TOC: 'toc',
4
- BOX: 'box',
5
- BUBBLE: 'bubble',
6
- BUBBLE_IMAGE: 'bubbleImage',
7
- DETAILS: 'details'
8
- };
package/dist/esm/index.js DELETED
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env node
2
- import MarkdownIt from 'markdown-it';
3
- import { sanitize } from './sanitizer';
4
- import { boxOptions, bubbleImageOptions, bubbleOptions, detailsOptions } from './utils/md-container';
5
- import { mdRendererFence } from './utils/md-renderer-fence';
6
- import { mdCustomBlocks } from './utils/md-custom-blocks';
7
- import { CONTAINER_TYPES } from './constants';
8
-
9
- // plugins
10
- const MdItInlineComments = require('markdown-it-inline-comments');
11
- const MdItContainer = require('markdown-it-container');
12
- const MdItTaskLists = require('markdown-it-task-lists');
13
- export const mdToHtml = (markdown, options) => {
14
- const {
15
- codeHighlight
16
- } = options || {};
17
- if (!(markdown && markdown.length)) return '';
18
- const md = MarkdownIt({
19
- breaks: true,
20
- linkify: true
21
- });
22
- md.linkify.set({
23
- fuzzyLink: false
24
- });
25
- md.linkify.set({
26
- fuzzyEmail: false
27
- });
28
- md.use(MdItInlineComments).use(MdItTaskLists, {
29
- enabled: true
30
- }).use(MdItContainer, CONTAINER_TYPES.DETAILS, detailsOptions).use(MdItContainer, CONTAINER_TYPES.BOX, boxOptions).use(MdItContainer, CONTAINER_TYPES.BUBBLE, bubbleOptions).use(MdItContainer, CONTAINER_TYPES.BUBBLE_IMAGE, bubbleImageOptions).use(mdCustomBlocks);
31
- if (codeHighlight) {
32
- md.use(mdRendererFence);
33
- }
34
- return sanitize(md.render(markdown));
35
- };
@@ -1,37 +0,0 @@
1
- // sanitizer.ts
2
- import sanitizeHtml, { defaults } from 'sanitize-html';
3
- const extendedTags = ['iframe', 'code', 'details', 'summary', 'circle', 'img', 'input', 'pre', 'span', 'picture', 'source'];
4
- const extendedAttributes = {
5
- a: [...(defaults.allowedAttributes.a || []), 'id', 'class', 'data-line'],
6
- iframe: ['src', 'width', 'height', 'allow', 'sandbox', 'frameborder'],
7
- input: ['type', 'checked', 'disabled', 'readonly', 'value', 'class'],
8
- source: ['srcset', 'type'],
9
- img: ['src', 'alt', 'width', 'height'],
10
- ul: ['class'],
11
- ol: ['class'],
12
- li: ['class'],
13
- div: ['class'],
14
- pre: ['class'],
15
- code: [...(defaults.allowedAttributes.code || []), 'class'],
16
- span: ['class']
17
- };
18
- export const sanitize = html => sanitizeHtml(html, {
19
- allowedTags: [...defaults.allowedTags, ...extendedTags],
20
- allowedAttributes: {
21
- ...defaults.allowedAttributes,
22
- ...extendedAttributes
23
- },
24
- allowedSchemes: ['http', 'https', 'mailto', 'tel'],
25
- allowedSchemesByTag: {
26
- iframe: ['https'],
27
- img: ['http', 'https', 'data']
28
- },
29
- allowedStyles: {
30
- '*': {
31
- width: [/^\d+(?:px|%)$/],
32
- height: [/^\d+(?:px|%)$/],
33
- 'text-align': [/^(?:left|right|center|justify)$/]
34
- }
35
- },
36
- disallowedTagsMode: 'discard'
37
- });
package/dist/esm/types.js DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1,304 +0,0 @@
1
- import Prism from "prismjs/components/prism-core";
2
- import "prismjs/components/prism-markup";
3
- import "prismjs/components/prism-css";
4
- import "prismjs/components/prism-clike";
5
- import "prismjs/components/prism-regex";
6
- import "prismjs/components/prism-javascript";
7
- import "prismjs/components/prism-abap";
8
- import "prismjs/components/prism-abnf";
9
- import "prismjs/components/prism-actionscript";
10
- import "prismjs/components/prism-ada";
11
- import "prismjs/components/prism-agda";
12
- import "prismjs/components/prism-al";
13
- import "prismjs/components/prism-antlr4";
14
- import "prismjs/components/prism-apacheconf";
15
- import "prismjs/components/prism-sql";
16
- import "prismjs/components/prism-apex";
17
- import "prismjs/components/prism-apl";
18
- import "prismjs/components/prism-applescript";
19
- import "prismjs/components/prism-aql";
20
- import "prismjs/components/prism-c";
21
- import "prismjs/components/prism-cpp";
22
- import "prismjs/components/prism-arduino";
23
- import "prismjs/components/prism-arff";
24
- import "prismjs/components/prism-armasm";
25
- import "prismjs/components/prism-bash";
26
- import "prismjs/components/prism-yaml";
27
- import "prismjs/components/prism-markdown";
28
- import "prismjs/components/prism-arturo";
29
- import "prismjs/components/prism-asciidoc";
30
- import "prismjs/components/prism-csharp";
31
- import "prismjs/components/prism-aspnet";
32
- import "prismjs/components/prism-asm6502";
33
- import "prismjs/components/prism-asmatmel";
34
- import "prismjs/components/prism-autohotkey";
35
- import "prismjs/components/prism-autoit";
36
- import "prismjs/components/prism-avisynth";
37
- import "prismjs/components/prism-avro-idl";
38
- import "prismjs/components/prism-awk";
39
- import "prismjs/components/prism-basic";
40
- import "prismjs/components/prism-batch";
41
- import "prismjs/components/prism-bbcode";
42
- import "prismjs/components/prism-bbj";
43
- import "prismjs/components/prism-bicep";
44
- import "prismjs/components/prism-birb";
45
- import "prismjs/components/prism-bison";
46
- import "prismjs/components/prism-bnf";
47
- import "prismjs/components/prism-bqn";
48
- import "prismjs/components/prism-brainfuck";
49
- import "prismjs/components/prism-brightscript";
50
- import "prismjs/components/prism-bro";
51
- import "prismjs/components/prism-bsl";
52
- import "prismjs/components/prism-cfscript";
53
- import "prismjs/components/prism-chaiscript";
54
- import "prismjs/components/prism-cil";
55
- import "prismjs/components/prism-cilkc";
56
- import "prismjs/components/prism-cilkcpp";
57
- import "prismjs/components/prism-clojure";
58
- import "prismjs/components/prism-cmake";
59
- import "prismjs/components/prism-cobol";
60
- import "prismjs/components/prism-coffeescript";
61
- import "prismjs/components/prism-concurnas";
62
- import "prismjs/components/prism-csp";
63
- import "prismjs/components/prism-cooklang";
64
- import "prismjs/components/prism-coq";
65
- import "prismjs/components/prism-ruby";
66
- import "prismjs/components/prism-crystal";
67
- import "prismjs/components/prism-css-extras";
68
- import "prismjs/components/prism-csv";
69
- import "prismjs/components/prism-cue";
70
- import "prismjs/components/prism-cypher";
71
- import "prismjs/components/prism-d";
72
- import "prismjs/components/prism-dart";
73
- import "prismjs/components/prism-dataweave";
74
- import "prismjs/components/prism-dax";
75
- import "prismjs/components/prism-dhall";
76
- import "prismjs/components/prism-diff";
77
- import "prismjs/components/prism-markup-templating";
78
- import "prismjs/components/prism-django";
79
- import "prismjs/components/prism-dns-zone-file";
80
- import "prismjs/components/prism-docker";
81
- import "prismjs/components/prism-dot";
82
- import "prismjs/components/prism-ebnf";
83
- import "prismjs/components/prism-editorconfig";
84
- import "prismjs/components/prism-eiffel";
85
- import "prismjs/components/prism-ejs";
86
- import "prismjs/components/prism-elixir";
87
- import "prismjs/components/prism-elm";
88
- import "prismjs/components/prism-lua";
89
- import "prismjs/components/prism-etlua";
90
- import "prismjs/components/prism-erb";
91
- import "prismjs/components/prism-erlang";
92
- import "prismjs/components/prism-excel-formula";
93
- import "prismjs/components/prism-fsharp";
94
- import "prismjs/components/prism-factor";
95
- import "prismjs/components/prism-false";
96
- import "prismjs/components/prism-firestore-security-rules";
97
- import "prismjs/components/prism-flow";
98
- import "prismjs/components/prism-fortran";
99
- import "prismjs/components/prism-ftl";
100
- import "prismjs/components/prism-gml";
101
- import "prismjs/components/prism-gap";
102
- import "prismjs/components/prism-gcode";
103
- import "prismjs/components/prism-gdscript";
104
- import "prismjs/components/prism-gedcom";
105
- import "prismjs/components/prism-gettext";
106
- import "prismjs/components/prism-gherkin";
107
- import "prismjs/components/prism-git";
108
- import "prismjs/components/prism-glsl";
109
- import "prismjs/components/prism-gn";
110
- import "prismjs/components/prism-linker-script";
111
- import "prismjs/components/prism-go";
112
- import "prismjs/components/prism-go-module";
113
- import "prismjs/components/prism-gradle";
114
- import "prismjs/components/prism-graphql";
115
- import "prismjs/components/prism-groovy";
116
- import "prismjs/components/prism-less";
117
- import "prismjs/components/prism-scss";
118
- import "prismjs/components/prism-textile";
119
- import "prismjs/components/prism-haml";
120
- import "prismjs/components/prism-handlebars";
121
- import "prismjs/components/prism-haskell";
122
- import "prismjs/components/prism-haxe";
123
- import "prismjs/components/prism-hcl";
124
- import "prismjs/components/prism-hlsl";
125
- import "prismjs/components/prism-hoon";
126
- import "prismjs/components/prism-hpkp";
127
- import "prismjs/components/prism-hsts";
128
- import "prismjs/components/prism-json";
129
- import "prismjs/components/prism-uri";
130
- import "prismjs/components/prism-http";
131
- import "prismjs/components/prism-ichigojam";
132
- import "prismjs/components/prism-icon";
133
- import "prismjs/components/prism-icu-message-format";
134
- import "prismjs/components/prism-idris";
135
- import "prismjs/components/prism-ignore";
136
- import "prismjs/components/prism-inform7";
137
- import "prismjs/components/prism-ini";
138
- import "prismjs/components/prism-io";
139
- import "prismjs/components/prism-j";
140
- import "prismjs/components/prism-java";
141
- import "prismjs/components/prism-php";
142
- import "prismjs/components/prism-javadoclike";
143
- import "prismjs/components/prism-scala";
144
- import "prismjs/components/prism-javadoc";
145
- import "prismjs/components/prism-javastacktrace";
146
- import "prismjs/components/prism-jexl";
147
- import "prismjs/components/prism-jolie";
148
- import "prismjs/components/prism-jq";
149
- import "prismjs/components/prism-js-templates";
150
- import "prismjs/components/prism-typescript";
151
- import "prismjs/components/prism-jsdoc";
152
- import "prismjs/components/prism-n4js";
153
- import "prismjs/components/prism-js-extras";
154
- import "prismjs/components/prism-json5";
155
- import "prismjs/components/prism-jsonp";
156
- import "prismjs/components/prism-jsstacktrace";
157
- import "prismjs/components/prism-julia";
158
- import "prismjs/components/prism-keepalived";
159
- import "prismjs/components/prism-keyman";
160
- import "prismjs/components/prism-kotlin";
161
- import "prismjs/components/prism-kumir";
162
- import "prismjs/components/prism-kusto";
163
- import "prismjs/components/prism-latex";
164
- import "prismjs/components/prism-latte";
165
- import "prismjs/components/prism-scheme";
166
- import "prismjs/components/prism-lilypond";
167
- import "prismjs/components/prism-liquid";
168
- import "prismjs/components/prism-lisp";
169
- import "prismjs/components/prism-livescript";
170
- import "prismjs/components/prism-llvm";
171
- import "prismjs/components/prism-log";
172
- import "prismjs/components/prism-lolcode";
173
- import "prismjs/components/prism-magma";
174
- import "prismjs/components/prism-makefile";
175
- import "prismjs/components/prism-mata";
176
- import "prismjs/components/prism-matlab";
177
- import "prismjs/components/prism-maxscript";
178
- import "prismjs/components/prism-mel";
179
- import "prismjs/components/prism-mermaid";
180
- import "prismjs/components/prism-metafont";
181
- import "prismjs/components/prism-mizar";
182
- import "prismjs/components/prism-mongodb";
183
- import "prismjs/components/prism-monkey";
184
- import "prismjs/components/prism-moonscript";
185
- import "prismjs/components/prism-n1ql";
186
- import "prismjs/components/prism-nand2tetris-hdl";
187
- import "prismjs/components/prism-naniscript";
188
- import "prismjs/components/prism-nasm";
189
- import "prismjs/components/prism-neon";
190
- import "prismjs/components/prism-nevod";
191
- import "prismjs/components/prism-nginx";
192
- import "prismjs/components/prism-nim";
193
- import "prismjs/components/prism-nix";
194
- import "prismjs/components/prism-nsis";
195
- import "prismjs/components/prism-objectivec";
196
- import "prismjs/components/prism-ocaml";
197
- import "prismjs/components/prism-odin";
198
- import "prismjs/components/prism-opencl";
199
- import "prismjs/components/prism-openqasm";
200
- import "prismjs/components/prism-oz";
201
- import "prismjs/components/prism-parigp";
202
- import "prismjs/components/prism-parser";
203
- import "prismjs/components/prism-pascal";
204
- import "prismjs/components/prism-pascaligo";
205
- import "prismjs/components/prism-psl";
206
- import "prismjs/components/prism-pcaxis";
207
- import "prismjs/components/prism-peoplecode";
208
- import "prismjs/components/prism-perl";
209
- import "prismjs/components/prism-phpdoc";
210
- import "prismjs/components/prism-php-extras";
211
- import "prismjs/components/prism-plant-uml";
212
- import "prismjs/components/prism-plsql";
213
- import "prismjs/components/prism-powerquery";
214
- import "prismjs/components/prism-powershell";
215
- import "prismjs/components/prism-processing";
216
- import "prismjs/components/prism-prolog";
217
- import "prismjs/components/prism-promql";
218
- import "prismjs/components/prism-properties";
219
- import "prismjs/components/prism-protobuf";
220
- import "prismjs/components/prism-stylus";
221
- import "prismjs/components/prism-twig";
222
- import "prismjs/components/prism-pug";
223
- import "prismjs/components/prism-puppet";
224
- import "prismjs/components/prism-pure";
225
- import "prismjs/components/prism-purebasic";
226
- import "prismjs/components/prism-purescript";
227
- import "prismjs/components/prism-python";
228
- import "prismjs/components/prism-qsharp";
229
- import "prismjs/components/prism-q";
230
- import "prismjs/components/prism-qml";
231
- import "prismjs/components/prism-qore";
232
- import "prismjs/components/prism-r";
233
- import "prismjs/components/prism-racket";
234
- import "prismjs/components/prism-cshtml";
235
- import "prismjs/components/prism-jsx";
236
- import "prismjs/components/prism-tsx";
237
- import "prismjs/components/prism-reason";
238
- import "prismjs/components/prism-rego";
239
- import "prismjs/components/prism-renpy";
240
- import "prismjs/components/prism-rescript";
241
- import "prismjs/components/prism-rest";
242
- import "prismjs/components/prism-rip";
243
- import "prismjs/components/prism-roboconf";
244
- import "prismjs/components/prism-robotframework";
245
- import "prismjs/components/prism-rust";
246
- import "prismjs/components/prism-sas";
247
- import "prismjs/components/prism-sass";
248
- import "prismjs/components/prism-shell-session";
249
- import "prismjs/components/prism-smali";
250
- import "prismjs/components/prism-smalltalk";
251
- import "prismjs/components/prism-smarty";
252
- import "prismjs/components/prism-sml";
253
- import "prismjs/components/prism-solidity";
254
- import "prismjs/components/prism-solution-file";
255
- import "prismjs/components/prism-soy";
256
- import "prismjs/components/prism-turtle";
257
- import "prismjs/components/prism-sparql";
258
- import "prismjs/components/prism-splunk-spl";
259
- import "prismjs/components/prism-sqf";
260
- import "prismjs/components/prism-squirrel";
261
- import "prismjs/components/prism-stan";
262
- import "prismjs/components/prism-stata";
263
- import "prismjs/components/prism-iecst";
264
- import "prismjs/components/prism-supercollider";
265
- import "prismjs/components/prism-swift";
266
- import "prismjs/components/prism-systemd";
267
- import "prismjs/components/prism-t4-templating";
268
- import "prismjs/components/prism-t4-cs";
269
- import "prismjs/components/prism-vbnet";
270
- import "prismjs/components/prism-t4-vb";
271
- import "prismjs/components/prism-tap";
272
- import "prismjs/components/prism-tcl";
273
- import "prismjs/components/prism-tt2";
274
- import "prismjs/components/prism-toml";
275
- import "prismjs/components/prism-tremor";
276
- import "prismjs/components/prism-typoscript";
277
- import "prismjs/components/prism-unrealscript";
278
- import "prismjs/components/prism-uorazor";
279
- import "prismjs/components/prism-v";
280
- import "prismjs/components/prism-vala";
281
- import "prismjs/components/prism-velocity";
282
- import "prismjs/components/prism-verilog";
283
- import "prismjs/components/prism-vhdl";
284
- import "prismjs/components/prism-vim";
285
- import "prismjs/components/prism-visual-basic";
286
- import "prismjs/components/prism-warpscript";
287
- import "prismjs/components/prism-wasm";
288
- import "prismjs/components/prism-web-idl";
289
- import "prismjs/components/prism-wgsl";
290
- import "prismjs/components/prism-wiki";
291
- import "prismjs/components/prism-wolfram";
292
- import "prismjs/components/prism-wren";
293
- import "prismjs/components/prism-xeora";
294
- import "prismjs/components/prism-xml-doc";
295
- import "prismjs/components/prism-xojo";
296
- import "prismjs/components/prism-xquery";
297
- import "prismjs/components/prism-yang";
298
- import "prismjs/components/prism-zig";
299
- import { escapeHtml } from 'markdown-it/lib/common/utils';
300
- export function highlightCode(text, lang) {
301
- const grammar = Prism.languages[lang];
302
- if (!grammar) return escapeHtml(text);
303
- return Prism.highlight(text, grammar, lang);
304
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes