flow-web/static/highlight/es/languages/accesslog.js
Andreas Widen a4a5c7daa5
Initial commit.
Signed-off-by: Andreas Widen <aw@luflow.net>
2026-07-27 17:57:03 +02:00

100 lines
No EOL
2.2 KiB
JavaScript

/*! `accesslog` grammar compiled for Highlight.js 11.11.1 */
var hljsGrammar = (function () {
'use strict';
/*
Language: Apache Access Log
Author: Oleg Efimov <efimovov@gmail.com>
Description: Apache/Nginx Access Logs
Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog
Category: web, logs
Audit: 2020
*/
/** @type LanguageFn */
function accesslog(hljs) {
const regex = hljs.regex;
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
const HTTP_VERBS = [
"GET",
"POST",
"HEAD",
"PUT",
"DELETE",
"CONNECT",
"OPTIONS",
"PATCH",
"TRACE"
];
return {
name: 'Apache Access Log',
contains: [
// IP
{
className: 'number',
begin: /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,
relevance: 5
},
// Other numbers
{
className: 'number',
begin: /\b\d+\b/,
relevance: 0
},
// Requests
{
className: 'string',
begin: regex.concat(/"/, regex.either(...HTTP_VERBS)),
end: /"/,
keywords: HTTP_VERBS,
illegal: /\n/,
relevance: 5,
contains: [
{
begin: /HTTP\/[12]\.\d'/,
relevance: 5
}
]
},
// Dates
{
className: 'string',
// dates must have a certain length, this prevents matching
// simple array accesses a[123] and [] and other common patterns
// found in other languages
begin: /\[\d[^\]\n]{8,}\]/,
illegal: /\n/,
relevance: 1
},
{
className: 'string',
begin: /\[/,
end: /\]/,
illegal: /\n/,
relevance: 0
},
// User agent / relevance boost
{
className: 'string',
begin: /"Mozilla\/\d\.\d \(/,
end: /"/,
illegal: /\n/,
relevance: 3
},
// Strings
{
className: 'string',
begin: /"/,
end: /"/,
illegal: /\n/,
relevance: 0
}
]
};
}
return accesslog;
})();
;
export default hljsGrammar;