Son CV dans un terminal web en Javascript!
https://terminal-cv.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.8 KiB
79 lines
1.8 KiB
/*
|
|
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
|
|
*/
|
|
|
|
/** @type LanguageFn */
|
|
function accesslog(hljs) {
|
|
// 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: '"(' + HTTP_VERBS.join("|") + ')',
|
|
end: '"',
|
|
keywords: HTTP_VERBS.join(" "),
|
|
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
|
|
}
|
|
]
|
|
};
|
|
}
|
|
|
|
module.exports = accesslog;
|
|
|