-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathejs.js
36 lines (35 loc) · 1.03 KB
/
ejs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// @ts-nocheck
import refractorJavascript from './javascript.js'
import refractorMarkupTemplating from './markup-templating.js'
ejs.displayName = 'ejs'
ejs.aliases = ['eta']
/** @type {import('../core.js').Syntax} */
export default function ejs(Prism) {
Prism.register(refractorJavascript)
Prism.register(refractorMarkupTemplating)
;(function (Prism) {
Prism.languages.ejs = {
delimiter: {
pattern: /^<%[-_=]?|[-_]?%>$/,
alias: 'punctuation'
},
comment: /^#[\s\S]*/,
'language-javascript': {
pattern: /[\s\S]+/,
inside: Prism.languages.javascript
}
}
Prism.hooks.add('before-tokenize', function (env) {
var ejsPattern = /<%(?!%)[\s\S]+?%>/g
Prism.languages['markup-templating'].buildPlaceholders(
env,
'ejs',
ejsPattern
)
})
Prism.hooks.add('after-tokenize', function (env) {
Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')
})
Prism.languages.eta = Prism.languages.ejs
})(Prism)
}