diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-30 19:47:21 +0100 | 
| commit | a98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch) | |
| tree | 542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-aspnet.js | |
| parent | ab355897a12b7bda1089a44de326d41455a0f7a3 (diff) | |
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-aspnet.js')
| -rw-r--r-- | public/prism/prism-aspnet.js | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/public/prism/prism-aspnet.js b/public/prism/prism-aspnet.js new file mode 100644 index 0000000..e051afb --- /dev/null +++ b/public/prism/prism-aspnet.js @@ -0,0 +1,60 @@ +Prism.languages.aspnet = Prism.languages.extend('markup', { +  'page-directive': { +    pattern: /<%\s*@.*%>/, +    alias: 'tag', +    inside: { +      'page-directive': { +        pattern: +          /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i, +        alias: 'tag', +      }, +      rest: Prism.languages.markup.tag.inside, +    }, +  }, +  directive: { +    pattern: /<%.*%>/, +    alias: 'tag', +    inside: { +      directive: { +        pattern: /<%\s*?[$=%#:]{0,2}|%>/, +        alias: 'tag', +      }, +      rest: Prism.languages.csharp, +    }, +  }, +}); +// Regexp copied from prism-markup, with a negative look-ahead added +Prism.languages.aspnet.tag.pattern = +  /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/; + +// match directives of attribute value foo="<% Bar %>" +Prism.languages.insertBefore( +  'inside', +  'punctuation', +  { +    directive: Prism.languages.aspnet['directive'], +  }, +  Prism.languages.aspnet.tag.inside['attr-value'] +); + +Prism.languages.insertBefore('aspnet', 'comment', { +  'asp-comment': { +    pattern: /<%--[\s\S]*?--%>/, +    alias: ['asp', 'comment'], +  }, +}); + +// script runat="server" contains csharp, not javascript +Prism.languages.insertBefore( +  'aspnet', +  Prism.languages.javascript ? 'script' : 'tag', +  { +    'asp-script': { +      pattern: +        /(<script(?=.*runat=['"]?server\b)[^>]*>)[\s\S]*?(?=<\/script>)/i, +      lookbehind: true, +      alias: ['asp', 'script'], +      inside: Prism.languages.csharp || {}, +    }, +  } +); | 
