UNPKG

1.46 kBJavaScriptView Raw
1Prism.languages.aspnet = Prism.languages.extend('markup', {
2 'page-directive': {
3 pattern: /<%\s*@.*%>/i,
4 alias: 'tag',
5 inside: {
6 'page-directive': {
7 pattern: /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,
8 alias: 'tag'
9 },
10 rest: Prism.languages.markup.tag.inside
11 }
12 },
13 'directive': {
14 pattern: /<%.*%>/i,
15 alias: 'tag',
16 inside: {
17 'directive': {
18 pattern: /<%\s*?[$=%#:]{0,2}|%>/i,
19 alias: 'tag'
20 },
21 rest: Prism.languages.csharp
22 }
23 }
24});
25// Regexp copied from prism-markup, with a negative look-ahead added
26Prism.languages.aspnet.tag.pattern = /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;
27
28// match directives of attribute value foo="<% Bar %>"
29Prism.languages.insertBefore('inside', 'punctuation', {
30 'directive': Prism.languages.aspnet['directive']
31}, Prism.languages.aspnet.tag.inside["attr-value"]);
32
33Prism.languages.insertBefore('aspnet', 'comment', {
34 'asp-comment': {
35 pattern: /<%--[\s\S]*?--%>/,
36 alias: ['asp', 'comment']
37 }
38});
39
40// script runat="server" contains csharp, not javascript
41Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', {
42 'asp-script': {
43 pattern: /(<script(?=.*runat=['"]?server['"]?)[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,
44 lookbehind: true,
45 alias: ['asp', 'script'],
46 inside: Prism.languages.csharp || {}
47 }
48});