summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/code-highlighter.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/scripts/code-highlighter.ts')
-rw-r--r--packages/frontend/src/scripts/code-highlighter.ts32
1 files changed, 17 insertions, 15 deletions
diff --git a/packages/frontend/src/scripts/code-highlighter.ts b/packages/frontend/src/scripts/code-highlighter.ts
index 4d57dcd944..4f2aff9d4c 100644
--- a/packages/frontend/src/scripts/code-highlighter.ts
+++ b/packages/frontend/src/scripts/code-highlighter.ts
@@ -10,18 +10,20 @@ import { bundledThemesInfo } from 'shiki/themes';
import { bundledLanguagesInfo } from 'shiki/langs';
import lightTheme from '@@/themes/_light.json5';
import darkTheme from '@@/themes/_dark.json5';
+import defaultLightTheme from '@@/themes/l-light.json5';
+import defaultDarkTheme from '@@/themes/d-green-lime.json5';
import { unique } from './array.js';
import { deepClone } from './clone.js';
import { deepMerge } from './merge.js';
import type { HighlighterCore, LanguageRegistration, ThemeRegistration, ThemeRegistrationRaw } from 'shiki/core';
-import { ColdDeviceStorage } from '@/store.js';
+import { prefer } from '@/preferences.js';
let _highlighter: HighlighterCore | null = null;
export async function getTheme(mode: 'light' | 'dark', getName: true): Promise<string>;
export async function getTheme(mode: 'light' | 'dark', getName?: false): Promise<ThemeRegistration | ThemeRegistrationRaw>;
export async function getTheme(mode: 'light' | 'dark', getName = false): Promise<ThemeRegistration | ThemeRegistrationRaw | string | null> {
- const theme = deepClone(ColdDeviceStorage.get(mode === 'light' ? 'lightTheme' : 'darkTheme'));
+ const theme = deepClone(mode === 'light' ? prefer.s.lightTheme ?? defaultLightTheme : prefer.s.darkTheme ?? defaultDarkTheme);
if (theme.base) {
const base = [lightTheme, darkTheme].find(x => x.id === theme.base);
@@ -77,19 +79,19 @@ async function initHighlighter() {
],
});
- ColdDeviceStorage.watch('lightTheme', async () => {
- const newTheme = await getTheme('light');
- if (newTheme.name && !highlighter.getLoadedThemes().includes(newTheme.name)) {
- highlighter.loadTheme(newTheme);
- }
- });
-
- ColdDeviceStorage.watch('darkTheme', async () => {
- const newTheme = await getTheme('dark');
- if (newTheme.name && !highlighter.getLoadedThemes().includes(newTheme.name)) {
- highlighter.loadTheme(newTheme);
- }
- });
+ // TODO
+ //watch('lightTheme', async () => {
+ // const newTheme = await getTheme('light');
+ // if (newTheme.name && !highlighter.getLoadedThemes().includes(newTheme.name)) {
+ // highlighter.loadTheme(newTheme);
+ // }
+ //});
+ //watch('darkTheme', async () => {
+ // const newTheme = await getTheme('dark');
+ // if (newTheme.name && !highlighter.getLoadedThemes().includes(newTheme.name)) {
+ // highlighter.loadTheme(newTheme);
+ // }
+ //});
_highlighter = highlighter;