Files
yacy_search_server/htroot/js/languages/nestedtext.js
2025-11-23 23:56:26 +01:00

93 lines
1.8 KiB
JavaScript

/*! `nestedtext` grammar compiled for Highlight.js 11.11.1 */
(function(){
var hljsGrammar = (function () {
'use strict';
/*
Language: NestedText
Description: NestedText is a file format for holding data that is to be entered, edited, or viewed by people.
Website: https://nestedtext.org/
Category: config
*/
/** @type LanguageFn */
function nestedtext(hljs) {
const NESTED = {
match: [
/^\s*(?=\S)/, // have to look forward here to avoid polynomial backtracking
/[^:]+/,
/:\s*/,
/$/
],
className: {
2: "attribute",
3: "punctuation"
}
};
const DICTIONARY_ITEM = {
match: [
/^\s*(?=\S)/, // have to look forward here to avoid polynomial backtracking
/[^:]*[^: ]/,
/[ ]*:/,
/[ ]/,
/.*$/
],
className: {
2: "attribute",
3: "punctuation",
5: "string"
}
};
const STRING = {
match: [
/^\s*/,
/>/,
/[ ]/,
/.*$/
],
className: {
2: "punctuation",
4: "string"
}
};
const LIST_ITEM = {
variants: [
{ match: [
/^\s*/,
/-/,
/[ ]/,
/.*$/
] },
{ match: [
/^\s*/,
/-$/
] }
],
className: {
2: "bullet",
4: "string"
}
};
return {
name: 'Nested Text',
aliases: [ 'nt' ],
contains: [
hljs.inherit(hljs.HASH_COMMENT_MODE, {
begin: /^\s*(?=#)/,
excludeBegin: true
}),
LIST_ITEM,
STRING,
NESTED,
DICTIONARY_ITEM
]
};
}
return nestedtext;
})();
hljs.registerLanguage('nestedtext', hljsGrammar);
})();