You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
(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));
|
|
|