fix
This commit is contained in:
153
book/node_modules/highlight.js/lib/languages/nginx.js
generated
vendored
Normal file
153
book/node_modules/highlight.js/lib/languages/nginx.js
generated
vendored
Normal file
@ -0,0 +1,153 @@
|
||||
/*
|
||||
Language: Nginx config
|
||||
Author: Peter Leonov <gojpeg@yandex.ru>
|
||||
Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
|
||||
Category: config, web
|
||||
Website: https://www.nginx.com
|
||||
*/
|
||||
|
||||
/** @type LanguageFn */
|
||||
function nginx(hljs) {
|
||||
const regex = hljs.regex;
|
||||
const VAR = {
|
||||
className: 'variable',
|
||||
variants: [
|
||||
{ begin: /\$\d+/ },
|
||||
{ begin: /\$\{\w+\}/ },
|
||||
{ begin: regex.concat(/[$@]/, hljs.UNDERSCORE_IDENT_RE) }
|
||||
]
|
||||
};
|
||||
const LITERALS = [
|
||||
"on",
|
||||
"off",
|
||||
"yes",
|
||||
"no",
|
||||
"true",
|
||||
"false",
|
||||
"none",
|
||||
"blocked",
|
||||
"debug",
|
||||
"info",
|
||||
"notice",
|
||||
"warn",
|
||||
"error",
|
||||
"crit",
|
||||
"select",
|
||||
"break",
|
||||
"last",
|
||||
"permanent",
|
||||
"redirect",
|
||||
"kqueue",
|
||||
"rtsig",
|
||||
"epoll",
|
||||
"poll",
|
||||
"/dev/poll"
|
||||
];
|
||||
const DEFAULT = {
|
||||
endsWithParent: true,
|
||||
keywords: {
|
||||
$pattern: /[a-z_]{2,}|\/dev\/poll/,
|
||||
literal: LITERALS
|
||||
},
|
||||
relevance: 0,
|
||||
illegal: '=>',
|
||||
contains: [
|
||||
hljs.HASH_COMMENT_MODE,
|
||||
{
|
||||
className: 'string',
|
||||
contains: [
|
||||
hljs.BACKSLASH_ESCAPE,
|
||||
VAR
|
||||
],
|
||||
variants: [
|
||||
{
|
||||
begin: /"/,
|
||||
end: /"/
|
||||
},
|
||||
{
|
||||
begin: /'/,
|
||||
end: /'/
|
||||
}
|
||||
]
|
||||
},
|
||||
// this swallows entire URLs to avoid detecting numbers within
|
||||
{
|
||||
begin: '([a-z]+):/',
|
||||
end: '\\s',
|
||||
endsWithParent: true,
|
||||
excludeEnd: true,
|
||||
contains: [ VAR ]
|
||||
},
|
||||
{
|
||||
className: 'regexp',
|
||||
contains: [
|
||||
hljs.BACKSLASH_ESCAPE,
|
||||
VAR
|
||||
],
|
||||
variants: [
|
||||
{
|
||||
begin: "\\s\\^",
|
||||
end: "\\s|\\{|;",
|
||||
returnEnd: true
|
||||
},
|
||||
// regexp locations (~, ~*)
|
||||
{
|
||||
begin: "~\\*?\\s+",
|
||||
end: "\\s|\\{|;",
|
||||
returnEnd: true
|
||||
},
|
||||
// *.example.com
|
||||
{ begin: "\\*(\\.[a-z\\-]+)+" },
|
||||
// sub.example.*
|
||||
{ begin: "([a-z\\-]+\\.)+\\*" }
|
||||
]
|
||||
},
|
||||
// IP
|
||||
{
|
||||
className: 'number',
|
||||
begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
|
||||
},
|
||||
// units
|
||||
{
|
||||
className: 'number',
|
||||
begin: '\\b\\d+[kKmMgGdshdwy]?\\b',
|
||||
relevance: 0
|
||||
},
|
||||
VAR
|
||||
]
|
||||
};
|
||||
|
||||
return {
|
||||
name: 'Nginx config',
|
||||
aliases: [ 'nginxconf' ],
|
||||
contains: [
|
||||
hljs.HASH_COMMENT_MODE,
|
||||
{
|
||||
beginKeywords: "upstream location",
|
||||
end: /;|\{/,
|
||||
contains: DEFAULT.contains,
|
||||
keywords: { section: "upstream location" }
|
||||
},
|
||||
{
|
||||
className: 'section',
|
||||
begin: regex.concat(hljs.UNDERSCORE_IDENT_RE + regex.lookahead(/\s+\{/)),
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
begin: regex.lookahead(hljs.UNDERSCORE_IDENT_RE + '\\s'),
|
||||
end: ';|\\{',
|
||||
contains: [
|
||||
{
|
||||
className: 'attribute',
|
||||
begin: hljs.UNDERSCORE_IDENT_RE,
|
||||
starts: DEFAULT
|
||||
}
|
||||
],
|
||||
relevance: 0
|
||||
}
|
||||
],
|
||||
illegal: '[^\\s\\}\\{]'
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = nginx;
|
Reference in New Issue
Block a user