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 || {}, + }, + } +); |
