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