mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 05:58:15 +08:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
|
'use strict'
|
||
|
|
||
|
module.exports = t4Templating
|
||
|
t4Templating.displayName = 't4Templating'
|
||
|
t4Templating.aliases = []
|
||
|
function t4Templating(Prism) {
|
||
|
;(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)
|
||
|
}
|