mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 15:34:12 +01:00
Mind that this lib is not maintained through NPM yet as its sources alone don't allow to be used in CKEditor out of the box, it needs extra steps to be built/used. And as we are already struggling with the CKEditor integration, we rather make baby steps.
63 lines
1.6 KiB
JavaScript
63 lines
1.6 KiB
JavaScript
/*! `json` grammar compiled for Highlight.js 11.9.0 */
|
|
(function(){
|
|
var hljsGrammar = (function () {
|
|
'use strict';
|
|
|
|
/*
|
|
Language: JSON
|
|
Description: JSON (JavaScript Object Notation) is a lightweight data-interchange format.
|
|
Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
|
|
Website: http://www.json.org
|
|
Category: common, protocols, web
|
|
*/
|
|
|
|
function json(hljs) {
|
|
const ATTRIBUTE = {
|
|
className: 'attr',
|
|
begin: /"(\\.|[^\\"\r\n])*"(?=\s*:)/,
|
|
relevance: 1.01
|
|
};
|
|
const PUNCTUATION = {
|
|
match: /[{}[\],:]/,
|
|
className: "punctuation",
|
|
relevance: 0
|
|
};
|
|
const LITERALS = [
|
|
"true",
|
|
"false",
|
|
"null"
|
|
];
|
|
// NOTE: normally we would rely on `keywords` for this but using a mode here allows us
|
|
// - to use the very tight `illegal: \S` rule later to flag any other character
|
|
// - as illegal indicating that despite looking like JSON we do not truly have
|
|
// - JSON and thus improve false-positively greatly since JSON will try and claim
|
|
// - all sorts of JSON looking stuff
|
|
const LITERALS_MODE = {
|
|
scope: "literal",
|
|
beginKeywords: LITERALS.join(" "),
|
|
};
|
|
|
|
return {
|
|
name: 'JSON',
|
|
keywords:{
|
|
literal: LITERALS,
|
|
},
|
|
contains: [
|
|
ATTRIBUTE,
|
|
PUNCTUATION,
|
|
hljs.QUOTE_STRING_MODE,
|
|
LITERALS_MODE,
|
|
hljs.C_NUMBER_MODE,
|
|
hljs.C_LINE_COMMENT_MODE,
|
|
hljs.C_BLOCK_COMMENT_MODE
|
|
],
|
|
illegal: '\\S'
|
|
};
|
|
}
|
|
|
|
return json;
|
|
|
|
})();
|
|
|
|
hljs.registerLanguage('json', hljsGrammar);
|
|
})(); |