summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/app/src/components/code.tsx6
-rw-r--r--packages/app/src/context/marked.tsx5
2 files changed, 9 insertions, 2 deletions
diff --git a/packages/app/src/components/code.tsx b/packages/app/src/components/code.tsx
index f76bf5e2e..e6d5ba80d 100644
--- a/packages/app/src/components/code.tsx
+++ b/packages/app/src/components/code.tsx
@@ -12,7 +12,11 @@ export function Code(props: Props) {
const ctx = useLocal()
const highlighter = useShiki()
const [local, others] = splitProps(props, ["class", "classList", "code", "path"])
- const lang = createMemo(() => getFileExtension(local.path))
+ const lang = createMemo(() => {
+ const ext = getFileExtension(local.path)
+ if (ext in bundledLanguages) return ext
+ return "text"
+ })
let container: HTMLDivElement | undefined
let isProgrammaticSelection = false
diff --git a/packages/app/src/context/marked.tsx b/packages/app/src/context/marked.tsx
index 33fea8db6..550a0456a 100644
--- a/packages/app/src/context/marked.tsx
+++ b/packages/app/src/context/marked.tsx
@@ -2,12 +2,15 @@ import { createContext, useContext, type ParentProps } from "solid-js"
import { useShiki } from "@/context"
import { marked } from "marked"
import markedShiki from "marked-shiki"
-import type { BundledLanguage } from "shiki"
+import { bundledLanguages, type BundledLanguage } from "shiki"
function init(highlighter: ReturnType<typeof useShiki>) {
return marked.use(
markedShiki({
async highlight(code, lang) {
+ if (!(lang in bundledLanguages)) {
+ lang = "text"
+ }
if (!highlighter.getLoadedLanguages().includes(lang)) {
await highlighter.loadLanguage(lang as BundledLanguage)
}