From a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Thu, 30 Dec 2021 19:47:21 +0100 Subject: chore: add prismjs for syntax highlighting --- public/prism/prism-abnf.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 public/prism/prism-abnf.js (limited to 'public/prism/prism-abnf.js') diff --git a/public/prism/prism-abnf.js b/public/prism/prism-abnf.js new file mode 100644 index 0000000..39385f4 --- /dev/null +++ b/public/prism/prism-abnf.js @@ -0,0 +1,57 @@ +(function (Prism) { + var coreRules = + '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'; + + Prism.languages.abnf = { + comment: /;.*/, + string: { + pattern: /(?:%[is])?"[^"\n\r]*"/, + greedy: true, + inside: { + punctuation: /^%[is]/, + }, + }, + range: { + pattern: /%(?:b[01]+-[01]+|d\d+-\d+|x[A-F\d]+-[A-F\d]+)/i, + alias: 'number', + }, + terminal: { + pattern: + /%(?:b[01]+(?:\.[01]+)*|d\d+(?:\.\d+)*|x[A-F\d]+(?:\.[A-F\d]+)*)/i, + alias: 'number', + }, + repetition: { + pattern: /(^|[^\w-])(?:\d*\*\d*|\d+)/, + lookbehind: true, + alias: 'operator', + }, + definition: { + pattern: /(^[ \t]*)(?:[a-z][\w-]*|<[^<>\r\n]*>)(?=\s*=)/m, + lookbehind: true, + alias: 'keyword', + inside: { + punctuation: /<|>/, + }, + }, + 'core-rule': { + pattern: RegExp( + '(?:(^|[^<\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\w-])', + 'i' + ), + lookbehind: true, + alias: ['rule', 'constant'], + inside: { + punctuation: /<|>/, + }, + }, + rule: { + pattern: /(^|[^<\w-])[a-z][\w-]*|<[^<>\r\n]*>/i, + lookbehind: true, + inside: { + punctuation: /<|>/, + }, + }, + operator: /=\/?|\//, + punctuation: /[()\[\]]/, + }; +})(Prism); -- cgit v1.2.3