@observablehq/highlight.js
Version:
Syntax highlighting with language autodetection.
58 lines (55 loc) • 1.14 kB
JavaScript
/*
Language: Parser3
Requires: xml.js
Author: Oleg Volchkov <oleg@volchkov.net>
Category: template
*/
define(["./xml.js"], (...$requiredLanguages) => function(hljs) {
hljs.registerLanguage("xml", $requiredLanguages[0]);
var CURLY_SUBCOMMENT = hljs.COMMENT(
'{',
'}',
{
contains: ['self']
}
);
return {
subLanguage: 'xml', relevance: 0,
contains: [
hljs.COMMENT('^#', '$'),
hljs.COMMENT(
'\\^rem{',
'}',
{
relevance: 10,
contains: [
CURLY_SUBCOMMENT
]
}
),
{
className: 'meta',
begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
relevance: 10
},
{
className: 'title',
begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
},
{
className: 'variable',
begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
},
{
className: 'keyword',
begin: '\\^[\\w\\-\\.\\:]+'
},
{
className: 'number',
begin: '\\^#[0-9a-fA-F]+'
},
hljs.C_NUMBER_MODE
]
};
}
)