source: node_modules/refractor/lang/latte.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 2.2 KB
RevLine 
[d24f17c]1'use strict'
2var refractorMarkupTemplating = require('./markup-templating.js')
3var refractorPhp = require('./php.js')
4module.exports = latte
5latte.displayName = 'latte'
6latte.aliases = []
7function latte(Prism) {
8 Prism.register(refractorMarkupTemplating)
9 Prism.register(refractorPhp)
10 ;(function (Prism) {
11 Prism.languages.latte = {
12 comment: /^\{\*[\s\S]*/,
13 'latte-tag': {
14 // https://latte.nette.org/en/tags
15 pattern: /(^\{(?:\/(?=[a-z]))?)(?:[=_]|[a-z]\w*\b(?!\())/i,
16 lookbehind: true,
17 alias: 'important'
18 },
19 delimiter: {
20 pattern: /^\{\/?|\}$/,
21 alias: 'punctuation'
22 },
23 php: {
24 pattern: /\S(?:[\s\S]*\S)?/,
25 alias: 'language-php',
26 inside: Prism.languages.php
27 }
28 }
29 var markupLatte = Prism.languages.extend('markup', {})
30 Prism.languages.insertBefore(
31 'inside',
32 'attr-value',
33 {
34 'n-attr': {
35 pattern: /n:[\w-]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+))?/,
36 inside: {
37 'attr-name': {
38 pattern: /^[^\s=]+/,
39 alias: 'important'
40 },
41 'attr-value': {
42 pattern: /=[\s\S]+/,
43 inside: {
44 punctuation: [
45 /^=/,
46 {
47 pattern: /^(\s*)["']|["']$/,
48 lookbehind: true
49 }
50 ],
51 php: {
52 pattern: /\S(?:[\s\S]*\S)?/,
53 inside: Prism.languages.php
54 }
55 }
56 }
57 }
58 }
59 },
60 markupLatte.tag
61 )
62 Prism.hooks.add('before-tokenize', function (env) {
63 if (env.language !== 'latte') {
64 return
65 }
66 var lattePattern =
67 /\{\*[\s\S]*?\*\}|\{[^'"\s{}*](?:[^"'/{}]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|\/\*(?:[^*]|\*(?!\/))*\*\/)*\}/g
68 Prism.languages['markup-templating'].buildPlaceholders(
69 env,
70 'latte',
71 lattePattern
72 )
73 env.grammar = markupLatte
74 })
75 Prism.hooks.add('after-tokenize', function (env) {
76 Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')
77 })
78 })(Prism)
79}
Note: See TracBrowser for help on using the repository browser.