summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src
diff options
context:
space:
mode:
authorShoubhit Dash <[email protected]>2026-01-22 16:18:39 +0530
committerGitHub <[email protected]>2026-01-22 04:48:39 -0600
commitc737776958d45fbd30434d9aa49289a93acf72c8 (patch)
tree6a969a84b792189da10c619f80d84d875516d3be /packages/app/src
parent7b0ad87781a038798fcd501c173fef227c93701a (diff)
downloadopencode-c737776958d45fbd30434d9aa49289a93acf72c8.tar.gz
opencode-c737776958d45fbd30434d9aa49289a93acf72c8.zip
refactor(desktop): move markdown rendering to rust (#10000)
Diffstat (limited to 'packages/app/src')
-rw-r--r--packages/app/src/app.tsx10
-rw-r--r--packages/app/src/context/platform.tsx3
2 files changed, 11 insertions, 2 deletions
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx
index c59cbe898..1c82439d4 100644
--- a/packages/app/src/app.tsx
+++ b/packages/app/src/app.tsx
@@ -23,6 +23,7 @@ import { NotificationProvider } from "@/context/notification"
import { DialogProvider } from "@opencode-ai/ui/context/dialog"
import { CommandProvider } from "@/context/command"
import { LanguageProvider, useLanguage } from "@/context/language"
+import { usePlatform } from "@/context/platform"
import { Logo } from "@opencode-ai/ui/logo"
import Layout from "@/pages/layout"
import DirectoryLayout from "@/pages/directory-layout"
@@ -45,6 +46,11 @@ declare global {
}
}
+function MarkedProviderWithNativeParser(props: ParentProps) {
+ const platform = usePlatform()
+ return <MarkedProvider nativeParser={platform.parseMarkdown}>{props.children}</MarkedProvider>
+}
+
export function AppBaseProviders(props: ParentProps) {
return (
<MetaProvider>
@@ -54,11 +60,11 @@ export function AppBaseProviders(props: ParentProps) {
<UiI18nBridge>
<ErrorBoundary fallback={(error) => <ErrorPage error={error} />}>
<DialogProvider>
- <MarkedProvider>
+ <MarkedProviderWithNativeParser>
<DiffComponentProvider component={Diff}>
<CodeComponentProvider component={Code}>{props.children}</CodeComponentProvider>
</DiffComponentProvider>
- </MarkedProvider>
+ </MarkedProviderWithNativeParser>
</DialogProvider>
</ErrorBoundary>
</UiI18nBridge>
diff --git a/packages/app/src/context/platform.tsx b/packages/app/src/context/platform.tsx
index 6d2d3db06..89056b2c8 100644
--- a/packages/app/src/context/platform.tsx
+++ b/packages/app/src/context/platform.tsx
@@ -46,6 +46,9 @@ export type Platform = {
/** Set the default server URL to use on app startup (desktop only) */
setDefaultServerUrl?(url: string | null): Promise<void>
+
+ /** Parse markdown to HTML using native parser (desktop only, returns unprocessed code blocks) */
+ parseMarkdown?(markdown: string): Promise<string>
}
export const { use: usePlatform, provider: PlatformProvider } = createSimpleContext({