diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 |
| commit | a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch) | |
| tree | 542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-rest.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-rest.js')
| -rw-r--r-- | public/prism/prism-rest.js | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/public/prism/prism-rest.js b/public/prism/prism-rest.js new file mode 100644 index 0000000..f6a40cb --- /dev/null +++ b/public/prism/prism-rest.js @@ -0,0 +1,217 @@ +Prism.languages.rest = { + table: [ + { + pattern: + /(^[\t ]*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1[+|].+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/m, + lookbehind: true, + inside: { + punctuation: /\||(?:\+[=-]+)+\+/, + }, + }, + { + pattern: + /(^[\t ]*)=+ [ =]*=(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1=+ [ =]*=(?=(?:\r?\n|\r){2}|\s*$)/m, + lookbehind: true, + inside: { + punctuation: /[=-]+/, + }, + }, + ], + + // Directive-like patterns + + 'substitution-def': { + pattern: /(^[\t ]*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m, + lookbehind: true, + inside: { + substitution: { + pattern: /^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/, + alias: 'attr-value', + inside: { + punctuation: /^\||\|$/, + }, + }, + directive: { + pattern: /( )(?! )[^:]+::/, + lookbehind: true, + alias: 'function', + inside: { + punctuation: /::$/, + }, + }, + }, + }, + 'link-target': [ + { + pattern: /(^[\t ]*\.\. )\[[^\]]+\]/m, + lookbehind: true, + alias: 'string', + inside: { + punctuation: /^\[|\]$/, + }, + }, + { + pattern: /(^[\t ]*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m, + lookbehind: true, + alias: 'string', + inside: { + punctuation: /^_|:$/, + }, + }, + ], + directive: { + pattern: /(^[\t ]*\.\. )[^:]+::/m, + lookbehind: true, + alias: 'function', + inside: { + punctuation: /::$/, + }, + }, + comment: { + // The two alternatives try to prevent highlighting of blank comments + pattern: + /(^[\t ]*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m, + lookbehind: true, + }, + + title: [ + // Overlined and underlined + { + pattern: + /^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m, + inside: { + punctuation: + /^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/, + important: /.+/, + }, + }, + + // Underlined only + { + pattern: + /(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/, + lookbehind: true, + inside: { + punctuation: /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/, + important: /.+/, + }, + }, + ], + hr: { + pattern: + /((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/, + lookbehind: true, + alias: 'punctuation', + }, + field: { + pattern: /(^[\t ]*):[^:\r\n]+:(?= )/m, + lookbehind: true, + alias: 'attr-name', + }, + 'command-line-option': { + pattern: + /(^[\t ]*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im, + lookbehind: true, + alias: 'symbol', + }, + 'literal-block': { + pattern: /::(?:\r?\n|\r){2}([ \t]+)(?![ \t]).+(?:(?:\r?\n|\r)\1.+)*/, + inside: { + 'literal-block-punctuation': { + pattern: /^::/, + alias: 'punctuation', + }, + }, + }, + 'quoted-literal-block': { + pattern: + /::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/, + inside: { + 'literal-block-punctuation': { + pattern: /^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m, + alias: 'punctuation', + }, + }, + }, + 'list-bullet': { + pattern: + /(^[\t ]*)(?:[*+\-•‣⁃]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im, + lookbehind: true, + alias: 'punctuation', + }, + 'doctest-block': { + pattern: /(^[\t ]*)>>> .+(?:(?:\r?\n|\r).+)*/m, + lookbehind: true, + inside: { + punctuation: /^>>>/, + }, + }, + + inline: [ + { + pattern: + /(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s)(?:(?!\2).)*\S\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m, + lookbehind: true, + inside: { + bold: { + pattern: /(^\*\*).+(?=\*\*$)/, + lookbehind: true, + }, + italic: { + pattern: /(^\*).+(?=\*$)/, + lookbehind: true, + }, + 'inline-literal': { + pattern: /(^``).+(?=``$)/, + lookbehind: true, + alias: 'symbol', + }, + role: { + pattern: /^:[^:]+:|:[^:]+:$/, + alias: 'function', + inside: { + punctuation: /^:|:$/, + }, + }, + 'interpreted-text': { + pattern: /(^`).+(?=`$)/, + lookbehind: true, + alias: 'attr-value', + }, + substitution: { + pattern: /(^\|).+(?=\|$)/, + lookbehind: true, + alias: 'attr-value', + }, + punctuation: /\*\*?|``?|\|/, + }, + }, + ], + + link: [ + { + pattern: /\[[^\[\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/, + alias: 'string', + inside: { + punctuation: /^\[|\]_$/, + }, + }, + { + pattern: + /(?:\b[a-z\d]+(?:[_.:+][a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i, + alias: 'string', + inside: { + punctuation: /^_?`|`$|`?_?_$/, + }, + }, + ], + + // Line block start, + // quote attribution, + // explicit markup start, + // and anonymous hyperlink target shortcut (__) + punctuation: { + pattern: /(^[\t ]*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m, + lookbehind: true, + }, +}; |
