docs: enable syntax highlighting for cue
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
parent
4bce5de08b
commit
c76f65aa14
@ -19,7 +19,7 @@ module.exports = {
|
||||
themeConfig: {
|
||||
sidebarCollapsible: false,
|
||||
prism: {
|
||||
defaultLanguage: "go",
|
||||
theme: require("prism-react-renderer/themes/vsDark"),
|
||||
},
|
||||
navbar: {
|
||||
logo: {
|
||||
|
24
tools/daggosaurus/src/theme/prism-include-languages.js
Normal file
24
tools/daggosaurus/src/theme/prism-include-languages.js
Normal file
@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
import ExecutionEnvironment from "@docusaurus/ExecutionEnvironment";
|
||||
import siteConfig from "@generated/docusaurus.config";
|
||||
|
||||
const prismIncludeLanguages = (PrismObject) => {
|
||||
if (ExecutionEnvironment.canUseDOM) {
|
||||
const {
|
||||
themeConfig: { prism: { additionalLanguages = [] } = {} },
|
||||
} = siteConfig;
|
||||
window.Prism = PrismObject;
|
||||
additionalLanguages.forEach((lang) => {
|
||||
require(`prismjs/components/prism-${lang}`); // eslint-disable-line
|
||||
});
|
||||
require("./prism.cue.js");
|
||||
delete window.Prism;
|
||||
}
|
||||
};
|
||||
|
||||
export default prismIncludeLanguages;
|
32
tools/daggosaurus/src/theme/prism.cue.js
Normal file
32
tools/daggosaurus/src/theme/prism.cue.js
Normal file
@ -0,0 +1,32 @@
|
||||
Prism.languages.cue = Prism.languages.extend("clike", {
|
||||
// https://github.com/PrismJS/prism/blob/master/components/prism-swift.js
|
||||
string: {
|
||||
pattern: /(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,
|
||||
greedy: true,
|
||||
inside: {
|
||||
interpolation: {
|
||||
pattern: /\\\#*\((?:[^()]|\([^)]+\))+\)/,
|
||||
inside: {
|
||||
delimiter: {
|
||||
pattern: /^\\\#*\(|\)$/,
|
||||
alias: "variable",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// https://cuelang.org/docs/references/spec/#values
|
||||
keyword: /\b(?:package|import|if|else|for|in|let)\b/,
|
||||
boolean: /\b(?:true|false)\b/,
|
||||
constant: /\b(?:_\|_|_)\b/,
|
||||
|
||||
// https://github.com/PrismJS/prism/blob/master/components/prism-go.js
|
||||
number: /(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,
|
||||
operator:
|
||||
/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,
|
||||
|
||||
// https://cuelang.org/docs/references/spec/#predeclared-identifiers
|
||||
builtin:
|
||||
/\b(?:len|null|bool|int|float|string|bytes|number|u?int(?:8|16|32|64|128)?|rune|float(?:32|64))\b/,
|
||||
});
|
Reference in New Issue
Block a user