New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

highlightjs-cshtml-razor

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

highlightjs-cshtml-razor - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

467

cshtml-razor.js
/*
* Language: cshtml-razor
* Requires: xml.js, cs.js
* Requires: xml.js, cs.js, css.js, javascript.js
* Author: Roman Resh <romanresh@live.com>
*/
var module = module ? module : {}; // shim for browser use
var module = module ? module : {};
function hljsDefineCshtmlRazor(hljs) {
var SPECIAL_SYMBOL_CLASSNAME = "built_in";
var BLOCK_TEXT = {
begin: "[@]{0,1}<text>",
returnBegin: true,
end: "</text>",
returnEnd: true,
subLanguage: "cshtml-razor",
function getXmlBlocks(hljs, additional_blocks) {
var xml_comment = hljs.COMMENT(
'<!--',
'-->',
{
relevance: 10
}
);
var string = {
className: 'string',
variants: [
{ begin: /"/, end: /"/ },
{ begin: /'/, end: /'/ },
{ begin: /[^\s"'=<>`]+/ }
],
contains: additional_blocks
};
var xml_tag_internal = {
endsWithParent: true,
illegal: /</,
relevance: 0,
contains: [
{
begin: "[@]{0,1}<text>",
className: SPECIAL_SYMBOL_CLASSNAME
className: 'attr',
begin: '[A-Za-z0-9\\._:-]+',
relevance: 0
},
{
begin: "</text>",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true,
begin: /=\s*/,
relevance: 0,
contains: [string]
}
]
};
var DIRECTIVES = {
begin: "^@(model|using|inherits|inject)[^\\r\\n{\\(]*$",
end: "$",
return [
{
className: 'meta',
begin: '<!DOCTYPE', end: '>',
relevance: 10,
contains: [{ begin: '\\[', end: '\\]' }]
},
xml_comment,
{
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
relevance: 10
},
{
className: 'meta',
begin: /<\?xml/, end: /\?>/, relevance: 10
},
{
className: 'tag',
begin: '<style(?=\\s|>|$)', end: '>',
keywords: { name: 'style' },
contains: [xml_tag_internal],
starts: {
end: '</style>', returnEnd: true,
subLanguage: ['css', 'xml']
}
},
{
className: 'tag',
begin: '<script(?=\\s|>|$)', end: '>',
keywords: { name: 'script' },
contains: [xml_tag_internal],
starts: {
end: '\<\/script\>', returnEnd: true,
subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
}
},
{
className: 'tag',
begin: '</?', end: '/?>',
contains: [
{
className: 'name', begin: /[^\/><\s]+/, relevance: 0
},
xml_tag_internal
]
}
].concat(additional_blocks);
}
function hljsDefineCshtmlRazor(hljs) {
var SPECIAL_SYMBOL_CLASSNAME = "built_in";
var CONTENT_REPLACER = {};
var closed_brace = {
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME,
returnBegin: true,
returnEnd: true,
contains: [
{
begin: "@(model|using|inherits|inject)",
className: SPECIAL_SYMBOL_CLASSNAME,
},
{
variants: [
{
begin: "\\s+",
end: "$",
},
{
begin: "$"
},
],
className: "type",
endsParent: true
}
]
endsParent: true
};
var EXCEPTIONS = {
variants: [
{ begin: "@@" },
{ begin: "[a-zA-Z]+@" },
],
skip: true
}
var ONE_LINE_EXPRESSION = {
var braces = {
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, 'self']
};
var razor_inline_expresion = {
begin: "@[a-zA-Z]+",
returnBegin: true,
end: "(\\r|\\n|<|\\s)",
subLanguage: 'cs',
end: "(\\r|\\n|<|\\s|\"|')",
contains: [

@@ -87,21 +125,29 @@ {

};
var ONE_LINE_AWAIT = {
begin: "@await ",
var razor_text_block = {
begin: "[@]{0,1}<text>",
returnBegin: true,
subLanguage: 'cs',
end: "(\\r|\\n|<|\\s)",
end: "</text>",
returnEnd: true,
subLanguage: "cshtml-razor",
contains: [
{
begin: "@await ",
begin: "[@]{0,1}<text>",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
begin: "[<\\r\\n]",
endsParent: true
begin: "</text>",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true,
}
]
};
var razor_escape_at = {
variants: [
{ begin: "@@" },
{ begin: "[a-zA-Z]+@" }
],
skip: true
};
var BLOCK_ROUND_BRACKET = {
var razor_parentheses_block = {
begin: "@\\(",

@@ -111,3 +157,3 @@ end: "\\)",

returnEnd: true,
subLanguage: 'cs',
subLanguage: "cs",
contains: [

@@ -122,5 +168,5 @@ {

subLanguage: 'cs',
contains: [hljs.QUOTE_STRING_MODE, BLOCK_TEXT, 'self']
contains: [hljs.QUOTE_STRING_MODE, 'self', razor_text_block]
},
BLOCK_TEXT,
razor_text_block,
{

@@ -133,4 +179,24 @@ begin: "\\)",

};
var BLOCK_FIGURE_BRACKET = {
var xml_blocks = getXmlBlocks(hljs, [razor_inline_expresion, razor_parentheses_block]);
var razor_directives = {
begin: "^\\s*@(model|using|inherits|inject)[^\\r\\n{\\(]*$",
end: "$",
returnBegin: true,
returnEnd: true,
contains: [
{
begin: "^\\s*@(model|using|inherits|inject)",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
variants: [
{ begin: "\\s+", end: "$", },
{ begin: "$" }
],
className: "type",
endsParent: true
}
]
};
var razor_block = {
begin: "@\\{",

@@ -146,102 +212,47 @@ returnBegin: true,

},
{
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, BLOCK_TEXT, 'self']
},
BLOCK_TEXT,
{
begin: "\\}",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true
}
],
CONTENT_REPLACER,
closed_brace
]
};
var BUILT_IN_CODE_BLOCKS_VARIANTS = [
{
begin: "@for[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@if[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@switch[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@while[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@using[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@lock[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
{
begin: "@foreach[\\s]*\\([^{]+[\\s]*{",
end: "}"
},
var razor_code_block_variants = [
{ begin: "@for[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@if[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@switch[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@while[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@using[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@lock[\\s]*\\([^{]+[\\s]*{", end: "}" },
{ begin: "@foreach[\\s]*\\([^{]+[\\s]*{", end: "}" },
];
var BUILT_IN_CODE_BLOCKS = {
variants: BUILT_IN_CODE_BLOCKS_VARIANTS,
var razor_code_block = {
variants: razor_code_block_variants,
returnBegin: true,
returnEnd: true,
subLanguage: "cshtml-razor",
end: "}",
subLanguage: 'cs',
contains: [
{
variants: BUILT_IN_CODE_BLOCKS_VARIANTS.map(function(v) {
return {
begin: v.begin
};
}),
variants: razor_code_block_variants.map(function (v) { return { begin: v.begin }; }),
returnBegin: true,
contains: [
{ begin: "@", className: SPECIAL_SYMBOL_CLASSNAME },
{
variants: BUILT_IN_CODE_BLOCKS_VARIANTS.map(function(v) {
return {
begin: v.begin.substr(1, v.begin.length - 2)
}; }),
subLanguage: "cs" },
{ begin: "{", className: SPECIAL_SYMBOL_CLASSNAME }
{ begin: "@", className: SPECIAL_SYMBOL_CLASSNAME },
{
variants: razor_code_block_variants.map(function (v) { return { begin: v.begin.substr(1, v.begin.length - 2) }; }),
subLanguage: "cs"
},
{ begin: "{", className: SPECIAL_SYMBOL_CLASSNAME }
]
},
CONTENT_REPLACER,
{
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, 'self']
},
BLOCK_TEXT,
{
variants: [
{
begin: "}[\\s]*else\\sif[\\s]*\\([^\\)]+\\)[\\s]*{"
},
{
begin: "}[\\s]*else[\\s]*{"
}
{ begin: "}[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{" },
{ begin: "}[\\s]*else[\\s]*{" }
],
returnBegin: true,
contains: [
{ begin: "}", className: SPECIAL_SYMBOL_CLASSNAME },
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
variants: [
{
begin: "[\\s]*else\\sif[\\s]*\\([^\\)]+\\)[\\s]*",
},
{
begin: "[\\s]*else[\\s]*",
},
{ begin: "[\\s]*else\\sif[\\s]*\\([^{]+[\\s]*{", },
{ begin: "[\\s]*else[\\s]*", }
],

@@ -256,13 +267,9 @@ subLanguage: "cs"

},
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true
},
braces,
closed_brace,
//razor_block
]
};
var BLOCK_TRY = {
var section_begin = "@section[\\s]+[a-zA-Z0-9]+[\\s]*{";
var razor_try_block = {
begin: "@try[\\s]*{",

@@ -274,75 +281,54 @@ end: "}",

contains: [
{ begin: "@", className: SPECIAL_SYMBOL_CLASSNAME },
{ begin: "try[\\s]*{", subLanguage: "cs" },
{
begin: "@",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
begin: "try[\\s]*{",
subLanguage: "cs"
},
{
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, 'self']
},
{
variants: [
{
begin: "}[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*{"
},
{
begin: "}[\\s]*finally[\\s]*{"
}
{ begin: "}[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*{" },
{ begin: "}[\\s]*finally[\\s]*{" }
],
returnBegin: true,
contains: [
{ begin: "}", className: SPECIAL_SYMBOL_CLASSNAME },
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
variants: [
{
begin: "[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*",
},
{
begin: "[\\s]*finally[\\s]*",
},
{ begin: "[\\s]*catch[\\s]*\\([^\\)]+\\)[\\s]*", },
{ begin: "[\\s]*finally[\\s]*", },
],
subLanguage: "cs"
},
{
begin: "{",
className: SPECIAL_SYMBOL_CLASSNAME
}
{ begin: "{", className: SPECIAL_SYMBOL_CLASSNAME }
]
},
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true
},
CONTENT_REPLACER,
braces,
closed_brace
]
};
var BLOCK_FUNCTIONS = {
begin: "@functions[\\s]*{",
end: "}",
var razor_section_block = {
begin: section_begin,
returnBegin: true,
returnEnd: true,
subLanguage: "cs",
end: "}",
subLanguage: 'cshtml-razor',
contains: [
{
begin: "@functions[\\s]*{",
begin: section_begin,
className: SPECIAL_SYMBOL_CLASSNAME
},
braces,
closed_brace
]
};
var rasor_await = {
begin: "@await ",
returnBegin: true,
subLanguage: 'cs',
end: "(\\r|\\n|<|\\s)",
contains: [
{
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, 'self']
begin: "@await ",
className: SPECIAL_SYMBOL_CLASSNAME
},
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME,
begin: "[<\\r\\n]",
endsParent: true

@@ -353,49 +339,42 @@ }

var BLOCK_SECTION = {
begin: "@section[\\s]+[a-zA-Z0-9]+[\\s]*{",
returnBegin: true,
returnEnd: true,
subLanguage: "cshtml-razor",
end: "}",
var result = {
aliases: ['cshtml','razor','razor-cshtml'],
contains: [
razor_directives,
razor_block,
razor_code_block,
razor_section_block,
rasor_await,
razor_try_block,
razor_escape_at,
razor_text_block,
razor_parentheses_block,
{
begin: "@section[\\s]+[a-zA-Z0-9]+[\\s]*{",
className: SPECIAL_SYMBOL_CLASSNAME
className: 'meta',
begin: '<!DOCTYPE', end: '>',
relevance: 10,
contains: [{ begin: '\\[', end: '\\]' }]
},
{
begin: "{",
end: "}",
contains: [hljs.QUOTE_STRING_MODE, 'self']
},
{
begin: "}",
className: SPECIAL_SYMBOL_CLASSNAME,
endsParent: true
begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
relevance: 10
}
]
}
};
result.contains = result.contains.concat(xml_blocks);
return {
subLanguage: 'xml',
contains: [
hljs.COMMENT("@\\*", "\\*@"),
EXCEPTIONS,
DIRECTIVES,
BLOCK_FUNCTIONS,
BLOCK_SECTION,
BLOCK_TRY,
BUILT_IN_CODE_BLOCKS,
ONE_LINE_AWAIT,
ONE_LINE_EXPRESSION,
BLOCK_ROUND_BRACKET,
BLOCK_FIGURE_BRACKET,
BLOCK_TEXT
]
};
[razor_block, razor_code_block, razor_try_block]
.forEach(function(mode) {
var razorModes = result.contains.filter(function(c) { return c !== mode; });
var replacerIndex = mode.contains.indexOf(CONTENT_REPLACER);
mode.contains.splice.apply(mode.contains, [replacerIndex, 1].concat(razorModes));
});
return result;
}
module.exports = function(hljs) {
module.exports = function (hljs) {
hljs.registerLanguage('cshtml-razor', hljsDefineCshtmlRazor);
};
module.exports.definer = hljsDefineCshtmlRazor;
module.exports.definer = hljsDefineCshtmlRazor;
{
"name": "highlightjs-cshtml-razor",
"version": "1.0.0",
"version": "1.1.0",
"description": "highlight.js syntax definition for ASP.NET Razor CSHTML language",

@@ -13,2 +13,5 @@ "main": "cshtml-razor.js",

},
"files": [
"cshtml-razor.js"
],
"keywords": [

@@ -15,0 +18,0 @@ "cshtml",

@@ -16,3 +16,3 @@ `highlight.js` syntax definition for Razor CSHTML.

```html
<script type="text/javascript" src="/path/to/highlight.pack.js"></script>
<script type="text/javascript" src="/path/to/highlightjs/highlight.pack.js"></script>
<script type="text/javascript" src="/path/to/highlightjs-cshtml-razor/cshtml-razor.js"></script>

@@ -19,0 +19,0 @@ <script type="text/javascript">

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc