diff options
| author | Shoubhit Dash <[email protected]> | 2026-01-22 16:18:39 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-22 04:48:39 -0600 |
| commit | c737776958d45fbd30434d9aa49289a93acf72c8 (patch) | |
| tree | 6a969a84b792189da10c619f80d84d875516d3be /packages/app/src | |
| parent | 7b0ad87781a038798fcd501c173fef227c93701a (diff) | |
| download | opencode-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.tsx | 10 | ||||
| -rw-r--r-- | packages/app/src/context/platform.tsx | 3 |
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({ |
