summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-t4-templating.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
commita98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch)
tree542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-t4-templating.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-t4-templating.js')
-rw-r--r--public/prism/prism-t4-templating.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/public/prism/prism-t4-templating.js b/public/prism/prism-t4-templating.js
new file mode 100644
index 0000000..dc8a412
--- /dev/null
+++ b/public/prism/prism-t4-templating.js
@@ -0,0 +1,49 @@
+(function (Prism) {
+ function createBlock(prefix, inside, contentAlias) {
+ return {
+ pattern: RegExp('<#' + prefix + '[\\s\\S]*?#>'),
+ alias: 'block',
+ inside: {
+ delimiter: {
+ pattern: RegExp('^<#' + prefix + '|#>$'),
+ alias: 'important',
+ },
+ content: {
+ pattern: /[\s\S]+/,
+ inside: inside,
+ alias: contentAlias,
+ },
+ },
+ };
+ }
+
+ function createT4(insideLang) {
+ var grammar = Prism.languages[insideLang];
+ var className = 'language-' + insideLang;
+
+ return {
+ block: {
+ pattern: /<#[\s\S]+?#>/,
+ inside: {
+ directive: createBlock('@', {
+ 'attr-value': {
+ pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/,
+ inside: {
+ punctuation: /^=|^["']|["']$/,
+ },
+ },
+ keyword: /\b\w+(?=\s)/,
+ 'attr-name': /\b\w+/,
+ }),
+ expression: createBlock('=', grammar, className),
+ 'class-feature': createBlock('\\+', grammar, className),
+ standard: createBlock('', grammar, className),
+ },
+ },
+ };
+ }
+
+ Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {
+ value: createT4,
+ });
+})(Prism);