aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-t4-templating.js
diff options
context:
space:
mode:
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);