mirror of
https://github.com/zadam/trilium.git
synced 2025-10-30 01:36:24 +01:00
chore(highlightjs): introduce client-level list of themes
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
import hljs from "../node_modules/highlight.js/es/core.js";
|
||||
import { normalizeMimeTypeForCKEditor, type MimeType } from "@triliumnext/commons";
|
||||
import definitions from "./syntax_highlighting.js";
|
||||
import syntaxDefinitions from "./syntax_highlighting.js";
|
||||
import { type Theme } from "./themes.js";
|
||||
import { type HighlightOptions } from "highlight.js";
|
||||
|
||||
export { default as Themes } from "./themes.js";
|
||||
|
||||
const registeredMimeTypes = new Set<string>();
|
||||
const unsupportedMimeTypes = new Set<string>();
|
||||
|
||||
@@ -18,7 +21,7 @@ export async function ensureMimeTypes(mimeTypes: MimeType[]) {
|
||||
}
|
||||
|
||||
registeredMimeTypes.add(mime);
|
||||
const loader = definitions[mime];
|
||||
const loader = syntaxDefinitions[mime];
|
||||
if (!loader) {
|
||||
unsupportedMimeTypes.add(mime);
|
||||
continue;
|
||||
@@ -42,4 +45,8 @@ export function highlight(code: string, options: HighlightOptions) {
|
||||
return hljs.highlight(code, options);
|
||||
}
|
||||
|
||||
export async function loadTheme(theme: Theme) {
|
||||
console.log("Got", theme.default);
|
||||
}
|
||||
|
||||
export const { highlightAuto } = hljs;
|
||||
|
||||
85
packages/highlightjs/src/themes.ts
Normal file
85
packages/highlightjs/src/themes.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
export type Theme = { default: typeof import("*.css", { with: { "resolution-mode": "import" } }); };
|
||||
|
||||
const themeDefinitions: Record<string, () => Promise<Theme>> = {
|
||||
"a11y (Dark)": () => import("../node_modules/highlight.js/styles/a11y-dark.css?raw"),
|
||||
"a11y (Light)": () => import("../node_modules/highlight.js/styles/a11y-light.css?raw"),
|
||||
"Agate (Dark)": () => import("../node_modules/highlight.js/styles/agate.css?raw"),
|
||||
"An Old Hope (Dark)": () => import("../node_modules/highlight.js/styles/an-old-hope.css?raw"),
|
||||
"Android Studio (Dark)": () => import("../node_modules/highlight.js/styles/androidstudio.css?raw"),
|
||||
"Arduino (Light)": () => import("../node_modules/highlight.js/styles/arduino-light.css?raw"),
|
||||
"Arta (Dark)": () => import("../node_modules/highlight.js/styles/arta.css?raw"),
|
||||
"Ascetic (Light)": () => import("../node_modules/highlight.js/styles/ascetic.css?raw"),
|
||||
"Atom One with ReasonML support (Dark)": () => import("../node_modules/highlight.js/styles/atom-one-dark-reasonable.css?raw"),
|
||||
"Atom One (Dark)": () => import("../node_modules/highlight.js/styles/atom-one-dark.css?raw"),
|
||||
"Atom One (Light)": () => import("../node_modules/highlight.js/styles/atom-one-light.css?raw"),
|
||||
"Brown Paper (Light)": () => import("../node_modules/highlight.js/styles/brown-paper.css?raw"),
|
||||
"CodePen Embed (Dark)": () => import("../node_modules/highlight.js/styles/codepen-embed.css?raw"),
|
||||
"Color Brewer (Light)": () => import("../node_modules/highlight.js/styles/color-brewer.css?raw"),
|
||||
"Cybertopia Cherry (Dark)": () => import("../node_modules/highlight.js/styles/cybertopia-cherry.css?raw"),
|
||||
"Cybertopia Dimmer (Dark)": () => import("../node_modules/highlight.js/styles/cybertopia-dimmer.css?raw"),
|
||||
"Cybertopia Icecap (Dark)": () => import("../node_modules/highlight.js/styles/cybertopia-icecap.css?raw"),
|
||||
"Cybertopia Saturated (Dark)": () => import("../node_modules/highlight.js/styles/cybertopia-saturated.css?raw"),
|
||||
"Dark": () => import("../node_modules/highlight.js/styles/dark.css?raw"),
|
||||
"Original highlight.js Theme (Light)": () => import("../node_modules/highlight.js/styles/default.css?raw"),
|
||||
"devibeans (Dark)": () => import("../node_modules/highlight.js/styles/devibeans.css?raw"),
|
||||
"Docco (Light)": () => import("../node_modules/highlight.js/styles/docco.css?raw"),
|
||||
"FAR (Dark)": () => import("../node_modules/highlight.js/styles/far.css?raw"),
|
||||
"FelipeC (Dark)": () => import("../node_modules/highlight.js/styles/felipec.css?raw"),
|
||||
"Foundation 4 Docs (Light)": () => import("../node_modules/highlight.js/styles/foundation.css?raw"),
|
||||
"GitHub Dimmed (Dark)": () => import("../node_modules/highlight.js/styles/github-dark-dimmed.css?raw"),
|
||||
"GitHub (Dark)": () => import("../node_modules/highlight.js/styles/github-dark.css?raw"),
|
||||
"GitHub (Light)": () => import("../node_modules/highlight.js/styles/github.css?raw"),
|
||||
"GML (Dark)": () => import("../node_modules/highlight.js/styles/gml.css?raw"),
|
||||
"Google Code (Light)": () => import("../node_modules/highlight.js/styles/googlecode.css?raw"),
|
||||
"Gradient (Dark)": () => import("../node_modules/highlight.js/styles/gradient-dark.css?raw"),
|
||||
"Gradient (Light)": () => import("../node_modules/highlight.js/styles/gradient-light.css?raw"),
|
||||
"Grayscale (Light)": () => import("../node_modules/highlight.js/styles/grayscale.css?raw"),
|
||||
"hybrid (Dark)": () => import("../node_modules/highlight.js/styles/hybrid.css?raw"),
|
||||
"Idea (Light)": () => import("../node_modules/highlight.js/styles/idea.css?raw"),
|
||||
"IntelliJ (Light)": () => import("../node_modules/highlight.js/styles/intellij-light.css?raw"),
|
||||
"IR Black (Dark)": () => import("../node_modules/highlight.js/styles/ir-black.css?raw"),
|
||||
"ISBL Editor (Dark)": () => import("../node_modules/highlight.js/styles/isbl-editor-dark.css?raw"),
|
||||
"ISBL Editor (Light)": () => import("../node_modules/highlight.js/styles/isbl-editor-light.css?raw"),
|
||||
"Kimbie (Dark)": () => import("../node_modules/highlight.js/styles/kimbie-dark.css?raw"),
|
||||
"Kimbie (Light)": () => import("../node_modules/highlight.js/styles/kimbie-light.css?raw"),
|
||||
"Lightfair (Light)": () => import("../node_modules/highlight.js/styles/lightfair.css?raw"),
|
||||
"Lioshi (Dark)": () => import("../node_modules/highlight.js/styles/lioshi.css?raw"),
|
||||
"Magula (Light)": () => import("../node_modules/highlight.js/styles/magula.css?raw"),
|
||||
"Mono Blue (Light)": () => import("../node_modules/highlight.js/styles/mono-blue.css?raw"),
|
||||
"Monokai Sublime (Dark)": () => import("../node_modules/highlight.js/styles/monokai-sublime.css?raw"),
|
||||
"Monokai (Dark)": () => import("../node_modules/highlight.js/styles/monokai.css?raw"),
|
||||
"Night Owl (Dark)": () => import("../node_modules/highlight.js/styles/night-owl.css?raw"),
|
||||
"NNFX (Dark)": () => import("../node_modules/highlight.js/styles/nnfx-dark.css?raw"),
|
||||
"NNFX (Light)": () => import("../node_modules/highlight.js/styles/nnfx-light.css?raw"),
|
||||
"Nord (Dark)": () => import("../node_modules/highlight.js/styles/nord.css?raw"),
|
||||
"Obsidian (Dark)": () => import("../node_modules/highlight.js/styles/obsidian.css?raw"),
|
||||
"Panda (Dark)": () => import("../node_modules/highlight.js/styles/panda-syntax-dark.css?raw"),
|
||||
"Panda (Light)": () => import("../node_modules/highlight.js/styles/panda-syntax-light.css?raw"),
|
||||
"Paraiso (Dark)": () => import("../node_modules/highlight.js/styles/paraiso-dark.css?raw"),
|
||||
"Paraiso (Light)": () => import("../node_modules/highlight.js/styles/paraiso-light.css?raw"),
|
||||
"Pojoaque (Dark)": () => import("../node_modules/highlight.js/styles/pojoaque.css?raw"),
|
||||
"PureBasic (Light)": () => import("../node_modules/highlight.js/styles/purebasic.css?raw"),
|
||||
"Qt Creator (Dark)": () => import("../node_modules/highlight.js/styles/qtcreator-dark.css?raw"),
|
||||
"Qt Creator (Light)": () => import("../node_modules/highlight.js/styles/qtcreator-light.css?raw"),
|
||||
"Rainbow (Dark)": () => import("../node_modules/highlight.js/styles/rainbow.css?raw"),
|
||||
"RouterOS Script (Light)": () => import("../node_modules/highlight.js/styles/routeros.css?raw"),
|
||||
"Rose Pine Dawn (Light)": () => import("../node_modules/highlight.js/styles/rose-pine-dawn.css?raw"),
|
||||
"Rose Pine Moon (Dark)": () => import("../node_modules/highlight.js/styles/rose-pine-moon.css?raw"),
|
||||
"Rose Pine (Dark)": () => import("../node_modules/highlight.js/styles/rose-pine.css?raw"),
|
||||
"School Book (Light)": () => import("../node_modules/highlight.js/styles/school-book.css?raw"),
|
||||
"Shades of Purple (Dark)": () => import("../node_modules/highlight.js/styles/shades-of-purple.css?raw"),
|
||||
"Srcery (Dark)": () => import("../node_modules/highlight.js/styles/srcery.css?raw"),
|
||||
"Stack Overflow (Dark)": () => import("../node_modules/highlight.js/styles/stackoverflow-dark.css?raw"),
|
||||
"Stack Overflow (Light)": () => import("../node_modules/highlight.js/styles/stackoverflow-light.css?raw"),
|
||||
"Sunburst (Dark)": () => import("../node_modules/highlight.js/styles/sunburst.css?raw"),
|
||||
"Tokyo Night (Dark)": () => import("../node_modules/highlight.js/styles/tokyo-night-dark.css?raw"),
|
||||
"Tokyo Night (Light)": () => import("../node_modules/highlight.js/styles/tokyo-night-light.css?raw"),
|
||||
"Tomorrow Night Blue (Dark)": () => import("../node_modules/highlight.js/styles/tomorrow-night-blue.css?raw"),
|
||||
"Tomorrow Night Bright (Dark)": () => import("../node_modules/highlight.js/styles/tomorrow-night-bright.css?raw"),
|
||||
"Visual Studio (Light)": () => import("../node_modules/highlight.js/styles/vs.css?raw"),
|
||||
"Visual Studio 2015 (Dark)": () => import("../node_modules/highlight.js/styles/vs2015.css?raw"),
|
||||
"Xcode (Light)": () => import("../node_modules/highlight.js/styles/xcode.css?raw"),
|
||||
"xt256 (Dark)": () => import("../node_modules/highlight.js/styles/xt256.css?raw")
|
||||
}
|
||||
|
||||
export default themeDefinitions;
|
||||
Reference in New Issue
Block a user