
package.es.languages.apache.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of highlight.js Show documentation
Show all versions of highlight.js Show documentation
Syntax highlighting with language autodetection.
/*
Language: Apache config
Author: Ruslan Keba
Contributors: Ivan Sagalaev
Website: https://httpd.apache.org
Description: language definition for Apache configuration files (httpd.conf & .htaccess)
Category: config, web
Audit: 2020
*/
/** @type LanguageFn */
function apache(hljs) {
const NUMBER_REF = {
className: 'number',
begin: /[$%]\d+/
};
const NUMBER = {
className: 'number',
begin: /\b\d+/
};
const IP_ADDRESS = {
className: "number",
begin: /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/
};
const PORT_NUMBER = {
className: "number",
begin: /:\d{1,5}/
};
return {
name: 'Apache config',
aliases: [ 'apacheconf' ],
case_insensitive: true,
contains: [
hljs.HASH_COMMENT_MODE,
{
className: 'section',
begin: /<\/?/,
end: />/,
contains: [
IP_ADDRESS,
PORT_NUMBER,
// low relevance prevents us from claming XML/HTML where this rule would
// match strings inside of XML tags
hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance: 0 })
]
},
{
className: 'attribute',
begin: /\w+/,
relevance: 0,
// keywords aren’t needed for highlighting per se, they only boost relevance
// for a very generally defined mode (starts with a word, ends with line-end
keywords: { _: [
"order",
"deny",
"allow",
"setenv",
"rewriterule",
"rewriteengine",
"rewritecond",
"documentroot",
"sethandler",
"errordocument",
"loadmodule",
"options",
"header",
"listen",
"serverroot",
"servername"
] },
starts: {
end: /$/,
relevance: 0,
keywords: { literal: 'on off all deny allow' },
contains: [
{
className: 'meta',
begin: /\s\[/,
end: /\]$/
},
{
className: 'variable',
begin: /[\$%]\{/,
end: /\}/,
contains: [
'self',
NUMBER_REF
]
},
IP_ADDRESS,
NUMBER,
hljs.QUOTE_STRING_MODE
]
}
}
],
illegal: /\S/
};
}
export { apache as default };
© 2015 - 2025 Weber Informatics LLC | Privacy Policy