Skip to content

Commit 42f3e5c

Browse files
committed
update exports
1 parent 7f680da commit 42f3e5c

File tree

3 files changed

+141
-146
lines changed

3 files changed

+141
-146
lines changed

dist/cshtml-razor.min.js

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
hljs.registerLanguage("cshtml-razor",(()=>{"use strict";var n=n||{}
2-
;function e(n){var e="built_in",s={},a={begin:"}",className:e,endsParent:!0},i={
3-
begin:"{",end:"}",contains:[n.QUOTE_STRING_MODE,"self"]
4-
},r=n.COMMENT("@\\*","\\*@",{relevance:10}),t={begin:"@[A-Za-z0-9\\._:-]+",
5-
returnBegin:!0,end:"(\\r|\\n|<|\\s|\"|')",subLanguage:"csharp",contains:[{
6-
begin:"@",className:e},{begin:"\\[",end:"\\]",skip:!0},{begin:"\\(",end:"\\)",
7-
skip:!0}],returnEnd:!0},g={begin:"[@]{0,1}<text>",returnBegin:!0,end:"</text>",
8-
returnEnd:!0,subLanguage:"cshtml-razor",contains:[{begin:"[@]{0,1}<text>",
9-
className:e},{begin:"</text>",className:e,endsParent:!0}]},c={begin:"@\\(",
10-
end:"\\)",returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{
11-
begin:"@\\(",className:e},{begin:"\\(",end:"\\)",subLanguage:"csharp",
12-
contains:[n.QUOTE_STRING_MODE,"self",g]},g,{begin:"\\)",className:e,
1+
hljs.registerLanguage("cshtml-razor",(()=>{"use strict";return n=>{
2+
var e="built_in",s={},a={begin:"}",className:e,endsParent:!0},i={begin:"{",
3+
end:"}",contains:[n.QUOTE_STRING_MODE,"self"]},r=n.COMMENT("@\\*","\\*@",{
4+
relevance:10}),g={begin:"@[A-Za-z0-9\\._:-]+",returnBegin:!0,
5+
end:"(\\r|\\n|<|\\s|\"|')",subLanguage:"csharp",contains:[{begin:"@",className:e
6+
},{begin:"\\[",end:"\\]",skip:!0},{begin:"\\(",end:"\\)",skip:!0}],returnEnd:!0
7+
},t={begin:"[@]{0,1}<text>",returnBegin:!0,end:"</text>",returnEnd:!0,
8+
subLanguage:"cshtml-razor",contains:[{begin:"[@]{0,1}<text>",className:e},{
9+
begin:"</text>",className:e,endsParent:!0}]},c={begin:"@\\(",end:"\\)",
10+
returnBegin:!0,returnEnd:!0,subLanguage:"csharp",contains:[{begin:"@\\(",
11+
className:e},{begin:"\\(",end:"\\)",subLanguage:"csharp",
12+
contains:[n.QUOTE_STRING_MODE,"self",t]},t,{begin:"\\)",className:e,
1313
endsParent:!0}]},b=((n,e)=>{var s={endsWithParent:!0,illegal:/</,relevance:0,
1414
contains:[{className:"attr",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{
1515
begin:/=\s*/,relevance:0,contains:[{className:"string",variants:[{begin:/"/,
@@ -25,7 +25,7 @@ starts:{end:"<\/script>",returnEnd:!0,
2525
subLanguage:["actionscript","javascript","handlebars","xml"]}},{className:"tag",
2626
begin:"</?",end:"/?>",contains:[{className:"name",begin:/[^\/><\s]+/,relevance:0
2727
},s]}].concat(e)
28-
})(n,[t,c]),l="^\\s*@(page|model|using|inherits|inject|layout)",u={
28+
})(n,[g,c]),l="^\\s*@(page|model|using|inherits|inject|layout)",u={
2929
begin:l+"[^\\r\\n{\\(]*$",end:"$",returnBegin:!0,returnEnd:!0,contains:[{
3030
begin:l,className:e},{variants:[{begin:"\\r|\\n",endsParent:!0},{
3131
begin:"\\s[^\\r\\n]+",end:"$"},{begin:"$"}],className:"type",endsParent:!0}]
@@ -40,30 +40,28 @@ begin:"@switch[\\s]*\\([^{]+[\\s]*{",end:"}"},{
4040
begin:"@while[\\s]*\\([^{]+[\\s]*{",end:"}"},{
4141
begin:"@using[\\s]*\\([^{]+[\\s]*{",end:"}"},{
4242
begin:"@lock[\\s]*\\([^{]+[\\s]*{",end:"}"},{
43-
begin:"@foreach[\\s]*\\([^{]+[\\s]*{",end:"}"}],p={variants:m,returnBegin:!0,
43+
begin:"@foreach[\\s]*\\([^{]+[\\s]*{",end:"}"}],N={variants:m,returnBegin:!0,
4444
returnEnd:!0,subLanguage:"csharp",contains:[{variants:m.map((n=>({begin:n.begin
4545
}))),returnBegin:!0,contains:[{begin:"@",className:e},{variants:m.map((n=>({
4646
begin:n.begin.substr(1,n.begin.length-2)}))),subLanguage:"csharp"},{begin:"{",
4747
className:e}]},s,{variants:[{begin:"}[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{"},{
4848
begin:"}[\\s]*else[\\s]*{"}],returnBegin:!0,contains:[{begin:"}",className:e},{
4949
variants:[{begin:"[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{"},{
5050
begin:"[\\s]*else[\\s]*"}],subLanguage:"csharp"},{begin:"{",className:e}]},i,a]
51-
},N={begin:"@try[\\s]*{",end:"}",returnBegin:!0,returnEnd:!0,
51+
},h={begin:"@try[\\s]*{",end:"}",returnBegin:!0,returnEnd:!0,
5252
subLanguage:"csharp",contains:[{begin:"@",className:e},{begin:"try[\\s]*{",
5353
subLanguage:"csharp"},{variants:[{begin:"}[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*{"
5454
},{begin:"}[\\s]*finally[\\s]*{"}],returnBegin:!0,contains:[{begin:"}",
5555
className:e},{variants:[{begin:"[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*"},{
5656
begin:"[\\s]*finally[\\s]*"}],subLanguage:"csharp"},{begin:"{",className:e}]
57-
},s,i,a]},h="@section[\\s]+[a-zA-Z0-9]+[\\s]*{",v={
58-
aliases:["cshtml","razor","razor-cshtml"],contains:[u,o,d,p,{begin:h,
57+
},s,i,a]},p="@section[\\s]+[a-zA-Z0-9]+[\\s]*{",v=[u,o,d,N,{begin:p,
5958
returnBegin:!0,returnEnd:!0,end:"}",subLanguage:"cshtml-razor",contains:[{
60-
begin:h,className:e},i,a]},{begin:"@await ",returnBegin:!0,subLanguage:"csharp",
59+
begin:p,className:e},i,a]},{begin:"@await ",returnBegin:!0,subLanguage:"csharp",
6160
end:"(\\r|\\n|<|\\s)",contains:[{begin:"@await ",className:e},{
62-
begin:"[<\\r\\n]",endsParent:!0}]},N,{variants:[{begin:"@@"},{begin:"[a-zA-Z]+@"
63-
}],skip:!0},g,r,c,{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,
61+
begin:"[<\\r\\n]",endsParent:!0}]},h,{variants:[{begin:"@@"},{begin:"[a-zA-Z]+@"
62+
}],skip:!0},t,r,c,{className:"meta",begin:"<!DOCTYPE",end:">",relevance:10,
6463
contains:[{begin:"\\[",end:"\\]"}]},{begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",
65-
relevance:10}]};return v.contains=v.contains.concat(b),[d,p,N].forEach((n=>{
66-
var e=v.contains.filter((e=>e!==n)),a=n.contains.indexOf(s)
67-
;n.contains.splice.apply(n.contains,[a,1].concat(e))})),v}return n.exports=n=>{
68-
n.registerLanguage("cshtml-razor",e)
69-
},n.exports.definer=e,n.exports.definer||n.exports})());
64+
relevance:10}].concat(b);return[d,N,h].forEach((n=>{
65+
var e=v.filter((e=>e!==n)),a=n.contains.indexOf(s)
66+
;n.contains.splice.apply(n.contains,[a,1].concat(e))})),{
67+
aliases:["cshtml","razor","razor-cshtml","cshtml-razor"],contains:v}}})());

src/languages/cshtml-razor.js

Lines changed: 110 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -4,90 +4,7 @@
44
* Author: Roman Resh <[email protected]>
55
*/
66

7-
var module = module ? module : {};
8-
9-
function getXmlBlocks(hljs, additional_blocks) {
10-
var xml_comment = hljs.COMMENT(
11-
'<!--',
12-
'-->',
13-
{
14-
relevance: 10
15-
}
16-
);
17-
var string = {
18-
className: 'string',
19-
variants: [
20-
{ begin: /"/, end: /"/, contains: additional_blocks },
21-
{ begin: /'/, end: /'/, contains: additional_blocks },
22-
{ begin: /[^\s"'=<>`]+/ }
23-
]
24-
};
25-
var xml_tag_internal = {
26-
endsWithParent: true,
27-
illegal: /</,
28-
relevance: 0,
29-
contains: [
30-
{
31-
className: 'attr',
32-
begin: '[A-Za-z0-9\\._:-]+',
33-
relevance: 0
34-
},
35-
{
36-
begin: /=\s*/,
37-
relevance: 0,
38-
contains: [string]
39-
}
40-
]
41-
};
42-
return [
43-
{
44-
className: 'meta',
45-
begin: '<!DOCTYPE', end: '>',
46-
relevance: 10,
47-
contains: [{ begin: '\\[', end: '\\]' }]
48-
},
49-
xml_comment,
50-
{
51-
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
52-
relevance: 10
53-
},
54-
{
55-
className: 'meta',
56-
begin: /<\?xml/, end: /\?>/, relevance: 10
57-
},
58-
{
59-
className: 'tag',
60-
begin: '<style(?=\\s|>|$)', end: '>',
61-
keywords: { name: 'style' },
62-
contains: [xml_tag_internal],
63-
starts: {
64-
end: '</style>', returnEnd: true,
65-
subLanguage: ['css', 'xml']
66-
}
67-
},
68-
{
69-
className: 'tag',
70-
begin: '<script(?=\\s|>|$)', end: '>',
71-
keywords: { name: 'script' },
72-
contains: [xml_tag_internal],
73-
starts: {
74-
end: '\<\/script\>', returnEnd: true,
75-
subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
76-
}
77-
},
78-
{
79-
className: 'tag',
80-
begin: '</?', end: '/?>',
81-
contains: [
82-
{
83-
className: 'name', begin: /[^\/><\s]+/, relevance: 0
84-
},
85-
xml_tag_internal
86-
]
87-
}
88-
].concat(additional_blocks);
89-
}
90-
function hljsDefineCshtmlRazor(hljs) {
7+
module.exports = function (hljs) {
918
var SPECIAL_SYMBOL_CLASSNAME = "built_in";
929
var CONTENT_REPLACER = {};
9310
var closed_brace = {
@@ -360,46 +277,120 @@ function hljsDefineCshtmlRazor(hljs) {
360277
]
361278
};
362279

363-
var result = {
364-
aliases: ['cshtml', 'razor', 'razor-cshtml'],
365-
contains: [
366-
razor_directives,
367-
razor_helper_block,
368-
razor_block,
369-
razor_code_block,
370-
razor_section_block,
371-
rasor_await,
372-
razor_try_block,
373-
razor_escape_at,
374-
razor_text_block,
375-
razor_comment,
376-
razor_parentheses_block,
377-
{
378-
className: 'meta',
379-
begin: '<!DOCTYPE', end: '>',
380-
relevance: 10,
381-
contains: [{ begin: '\\[', end: '\\]' }]
382-
},
383-
{
384-
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
385-
relevance: 10
386-
}
387-
]
388-
};
389-
result.contains = result.contains.concat(xml_blocks);
390-
280+
var contains = [
281+
razor_directives,
282+
razor_helper_block,
283+
razor_block,
284+
razor_code_block,
285+
razor_section_block,
286+
rasor_await,
287+
razor_try_block,
288+
razor_escape_at,
289+
razor_text_block,
290+
razor_comment,
291+
razor_parentheses_block,
292+
{
293+
className: 'meta',
294+
begin: '<!DOCTYPE', end: '>',
295+
relevance: 10,
296+
contains: [{ begin: '\\[', end: '\\]' }]
297+
},
298+
{
299+
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
300+
relevance: 10
301+
}
302+
].concat(xml_blocks);
391303
[razor_block, razor_code_block, razor_try_block]
392304
.forEach(function (mode) {
393-
var razorModes = result.contains.filter(function (c) { return c !== mode; });
305+
var razorModes = contains.filter(function (c) { return c !== mode; });
394306
var replacerIndex = mode.contains.indexOf(CONTENT_REPLACER);
395307
mode.contains.splice.apply(mode.contains, [replacerIndex, 1].concat(razorModes));
396308
});
397309

398-
return result;
399-
}
400-
401-
module.exports = function (hljs) {
402-
hljs.registerLanguage('cshtml-razor', hljsDefineCshtmlRazor);
310+
return {
311+
aliases: ['cshtml', 'razor', 'razor-cshtml', 'cshtml-razor'],
312+
contains: contains
313+
};
403314
};
404315

405-
module.exports.definer = hljsDefineCshtmlRazor;
316+
function getXmlBlocks(hljs, additional_blocks) {
317+
var xml_comment = hljs.COMMENT(
318+
'<!--',
319+
'-->',
320+
{
321+
relevance: 10
322+
}
323+
);
324+
var string = {
325+
className: 'string',
326+
variants: [
327+
{ begin: /"/, end: /"/, contains: additional_blocks },
328+
{ begin: /'/, end: /'/, contains: additional_blocks },
329+
{ begin: /[^\s"'=<>`]+/ }
330+
]
331+
};
332+
var xml_tag_internal = {
333+
endsWithParent: true,
334+
illegal: /</,
335+
relevance: 0,
336+
contains: [
337+
{
338+
className: 'attr',
339+
begin: '[A-Za-z0-9\\._:-]+',
340+
relevance: 0
341+
},
342+
{
343+
begin: /=\s*/,
344+
relevance: 0,
345+
contains: [string]
346+
}
347+
]
348+
};
349+
return [
350+
{
351+
className: 'meta',
352+
begin: '<!DOCTYPE', end: '>',
353+
relevance: 10,
354+
contains: [{ begin: '\\[', end: '\\]' }]
355+
},
356+
xml_comment,
357+
{
358+
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
359+
relevance: 10
360+
},
361+
{
362+
className: 'meta',
363+
begin: /<\?xml/, end: /\?>/, relevance: 10
364+
},
365+
{
366+
className: 'tag',
367+
begin: '<style(?=\\s|>|$)', end: '>',
368+
keywords: { name: 'style' },
369+
contains: [xml_tag_internal],
370+
starts: {
371+
end: '</style>', returnEnd: true,
372+
subLanguage: ['css', 'xml']
373+
}
374+
},
375+
{
376+
className: 'tag',
377+
begin: '<script(?=\\s|>|$)', end: '>',
378+
keywords: { name: 'script' },
379+
contains: [xml_tag_internal],
380+
starts: {
381+
end: '\<\/script\>', returnEnd: true,
382+
subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
383+
}
384+
},
385+
{
386+
className: 'tag',
387+
begin: '</?', end: '/?>',
388+
contains: [
389+
{
390+
className: 'name', begin: /[^\/><\s]+/, relevance: 0
391+
},
392+
xml_tag_internal
393+
]
394+
}
395+
].concat(additional_blocks);
396+
}

test/index.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
<meta name="viewport" content="width=device-width, initial-scale=1">
1212
<link rel="stylesheet" href="../node_modules/highlight.js/styles/default.css">
1313
<script src="../../../build/highlight.js"></script>
14-
<script type="text/javascript" src="../src/languages/cshtml-razor.js"></script>
14+
<script src="../../../build/languages/csharp.min.js"></script>
15+
<script src="../../../build/languages/xml.min.js"></script>
16+
<script src="../../../build/languages/css.min.js"></script>
17+
<script type="text/javascript" src="../dist/cshtml-razor.min.js"></script>
1518
<script type="text/javascript">
16-
hljs.registerLanguage('cshtml-razor', window.hljsDefineCshtmlRazor);
1719
hljs.initHighlightingOnLoad();
1820
</script>
1921
</head>
@@ -45,6 +47,10 @@
4547
&lt;div class="bar"&gt;content&lt;/div&gt;
4648
}
4749
}
50+
@code {
51+
var a = 123;
52+
var b = false;
53+
}
4854
</code></pre>
4955
<pre><code class="hljs cshtml">
5056
Hello @owner from html

0 commit comments

Comments
 (0)