diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-10-13 19:32:56 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-11-11 18:14:41 +0100 |
| commit | 006b15b467a5cd835a6eab1b49023100bdc8f2e6 (patch) | |
| tree | 949c7295c2e206f42357f135bab4696ddf6576ec /public/prism/prism-rescript.min.js | |
| parent | 00f147a7a687d5772bcc538bc606cfff972178cd (diff) | |
refactor(components): rewrite Code component and usePrism hook
* move Prism styles to Sass placeholders to avoid repeats
* let usePrism consumer define its plugins (remove default ones)
* remove `plugins` prop from Code component
* add new props to Code component to let consumer configure plugins
(and handle plugin list from the given options)
However there are some problems with Prism plugins: line-highlight and
treeview does not seems to be loaded. I don't want to use Babel instead
of SWC so I have no solution for now.
Diffstat (limited to 'public/prism/prism-rescript.min.js')
| -rw-r--r-- | public/prism/prism-rescript.min.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/public/prism/prism-rescript.min.js b/public/prism/prism-rescript.min.js new file mode 100644 index 0000000..27bedf2 --- /dev/null +++ b/public/prism/prism-rescript.min.js @@ -0,0 +1,43 @@ +(Prism.languages.rescript = { + comment: { pattern: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, greedy: !0 }, + char: { pattern: /'(?:[^\r\n\\]|\\(?:.|\w+))'/, greedy: !0 }, + string: { pattern: /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/, greedy: !0 }, + 'class-name': /\b[A-Z]\w*|@[a-z.]*|#[A-Za-z]\w*|#\d/, + function: { pattern: /[a-zA-Z]\w*(?=\()|(\.)[a-z]\w*/, lookbehind: !0 }, + number: + /(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i, + boolean: /\b(?:false|true)\b/, + 'attr-value': /[A-Za-z]\w*(?==)/, + constant: { pattern: /(\btype\s+)[a-z]\w*/, lookbehind: !0 }, + tag: { + pattern: /(<)[a-z]\w*|(?:<\/)[a-z]\w*/, + lookbehind: !0, + inside: { operator: /<|>|\// }, + }, + keyword: + /\b(?:and|as|assert|begin|bool|class|constraint|do|done|downto|else|end|exception|external|float|for|fun|function|if|in|include|inherit|initializer|int|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|string|switch|then|to|try|type|when|while|with)\b/, + operator: + /\.{3}|:[:=]?|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/, + punctuation: /[(){}[\],;.]/, +}), + Prism.languages.insertBefore('rescript', 'string', { + 'template-string': { + pattern: + /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/, + greedy: !0, + inside: { + 'template-punctuation': { pattern: /^`|`$/, alias: 'string' }, + interpolation: { + pattern: + /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/, + lookbehind: !0, + inside: { + 'interpolation-punctuation': { pattern: /^\$\{|\}$/, alias: 'tag' }, + rest: Prism.languages.rescript, + }, + }, + string: /[\s\S]+/, + }, + }, + }), + (Prism.languages.res = Prism.languages.rescript); |
