(function (Prism) { Prism.languages.etlua = { delimiter: { pattern: /^<%[-=]?|-?%>$/, alias: 'punctuation', }, 'language-lua': { pattern: /[\s\S]+/, inside: Prism.languages.lua, }, }; Prism.hooks.add('before-tokenize', function (env) { var pattern = /<%[\s\S]+?%>/g; Prism.languages['markup-templating'].buildPlaceholders( env, 'etlua', pattern ); }); Prism.hooks.add('after-tokenize', function (env) { Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua'); }); })(Prism);