From 006b15b467a5cd835a6eab1b49023100bdc8f2e6 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 13 Oct 2023 19:32:56 +0200 Subject: 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. --- public/prism/prism-cue.min.js | 56 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 public/prism/prism-cue.min.js (limited to 'public/prism/prism-cue.min.js') diff --git a/public/prism/prism-cue.min.js b/public/prism/prism-cue.min.js new file mode 100644 index 0000000..10a1176 --- /dev/null +++ b/public/prism/prism-cue.min.js @@ -0,0 +1,56 @@ +!(function (e) { + var n = + '(?:' + + '"""(?:[^\\\\"]|"(?!""\\2)|)*"""|\'\'\'(?:[^\\\\\']|\'(?!\'\'\\2)|)*\'\'\'|"(?:[^\\\\\r\n"]|"(?!\\2)|)*"|\'(?:[^\\\\\r\n\']|\'(?!\\2)|)*\''.replace( + //g, + '\\\\(?:(?!\\2)|\\2(?:[^()\r\n]|\\([^()]*\\)))' + ) + + ')'; + (e.languages.cue = { + comment: { pattern: /\/\/.*/, greedy: !0 }, + 'string-literal': { + pattern: RegExp('(^|[^#"\'\\\\])(#*)' + n + '(?!["\'])\\2'), + lookbehind: !0, + greedy: !0, + inside: { + escape: { + pattern: + /(?=[\s\S]*["'](#*)$)\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\d{2,3}|[^(])/, + greedy: !0, + alias: 'string', + }, + interpolation: { + pattern: /(?=[\s\S]*["'](#*)$)\\\1\([^()]*\)/, + greedy: !0, + inside: { + punctuation: /^\\#*\(|\)$/, + expression: { pattern: /[\s\S]+/, inside: null }, + }, + }, + string: /[\s\S]+/, + }, + }, + keyword: { + pattern: /(^|[^\w$])(?:for|if|import|in|let|null|package)(?![\w$])/, + lookbehind: !0, + }, + boolean: { pattern: /(^|[^\w$])(?:false|true)(?![\w$])/, lookbehind: !0 }, + builtin: { + pattern: + /(^|[^\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\w$])/, + lookbehind: !0, + }, + attribute: { pattern: /@[\w$]+(?=\s*\()/, alias: 'function' }, + function: { pattern: /(^|[^\w$])[a-z_$][\w$]*(?=\s*\()/i, lookbehind: !0 }, + number: { + pattern: + /(^|[^\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[eE][+-]?\d+(?:_\d+)*)?(?:[KMGTP]i?)?)(?![\w$])/, + lookbehind: !0, + }, + operator: /\.{3}|_\|_|&&?|\|\|?|[=!]~|[<>=!]=?|[+\-*/?]/, + punctuation: /[()[\]{},.:]/, + }), + (e.languages.cue[ + 'string-literal' + ].inside.interpolation.inside.expression.inside = e.languages.cue); +})(Prism); -- cgit v1.2.3