diff options
Diffstat (limited to 'public/prism/prism-latex.js')
| -rw-r--r-- | public/prism/prism-latex.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/public/prism/prism-latex.js b/public/prism/prism-latex.js new file mode 100644 index 0000000..35aefec --- /dev/null +++ b/public/prism/prism-latex.js @@ -0,0 +1,69 @@ +(function (Prism) { + var funcPattern = /\\(?:[^a-z()[\]]|[a-z*]+)/i; + var insideEqu = { + 'equation-command': { + pattern: funcPattern, + alias: 'regex', + }, + }; + + Prism.languages.latex = { + comment: /%.*/, + // the verbatim environment prints whitespace to the document + cdata: { + pattern: + /(\\begin\{((?:lstlisting|verbatim)\*?)\})[\s\S]*?(?=\\end\{\2\})/, + lookbehind: true, + }, + /* + * equations can be between $$ $$ or $ $ or \( \) or \[ \] + * (all are multiline) + */ + equation: [ + { + pattern: + /\$\$(?:\\[\s\S]|[^\\$])+\$\$|\$(?:\\[\s\S]|[^\\$])+\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/, + inside: insideEqu, + alias: 'string', + }, + { + pattern: + /(\\begin\{((?:align|eqnarray|equation|gather|math|multline)\*?)\})[\s\S]*?(?=\\end\{\2\})/, + lookbehind: true, + inside: insideEqu, + alias: 'string', + }, + ], + /* + * arguments which are keywords or references are highlighted + * as keywords + */ + keyword: { + pattern: + /(\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\[[^\]]+\])?\{)[^}]+(?=\})/, + lookbehind: true, + }, + url: { + pattern: /(\\url\{)[^}]+(?=\})/, + lookbehind: true, + }, + /* + * section or chapter headlines are highlighted as bold so that + * they stand out more + */ + headline: { + pattern: + /(\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\})/, + lookbehind: true, + alias: 'class-name', + }, + function: { + pattern: funcPattern, + alias: 'selector', + }, + punctuation: /[[\]{}&]/, + }; + + Prism.languages.tex = Prism.languages.latex; + Prism.languages.context = Prism.languages.latex; +})(Prism); |
