diff --git a/src/components/CodeBlock.svelte b/src/components/CodeBlock.svelte
new file mode 100644
index 0000000..4ab3a55
--- /dev/null
+++ b/src/components/CodeBlock.svelte
@@ -0,0 +1,129 @@
+
+
+{#if highlightResult.kind == 'highlighted'}
+
{@html sanitizeHTML(highlightResult.html)}
+{:else}
+ {highlightResult.text}
+{/if}
+
+
diff --git a/src/components/PlainTextWithCode.svelte b/src/components/PlainTextWithCode.svelte
index 3eaad59..c00139a 100644
--- a/src/components/PlainTextWithCode.svelte
+++ b/src/components/PlainTextWithCode.svelte
@@ -1,38 +1,11 @@
{#each segments as segment}
@@ -45,13 +18,7 @@
{:else if segment.kind == 'inlineCode'}
{segment.text}
{:else}
- {@const result = highlightCodeBlock(segment)}
-
- {#if result.kind == 'highlighted'}
- {@html sanitizeHTML(result.html)}
- {:else}
- {result.text}
- {/if}
+
{/if}
{/each}
@@ -64,99 +31,9 @@
padding: 1px 3px;
}
- pre {
- overflow-x: auto;
- max-width: 100%;
- margin: 10px 0;
- padding: 8px 10px;
- border-radius: 6px;
- background-color: rgba(0, 0, 0, 0.07);
- }
-
- pre code {
- display: block;
- background-color: transparent;
- border-radius: 0;
- padding: 0;
- white-space: pre;
- }
-
- pre code :global(.hljs-keyword),
- pre code :global(.hljs-selector-tag),
- pre code :global(.hljs-title.function_) {
- color: #9d174d;
- }
-
- pre code :global(.hljs-built_in),
- pre code :global(.hljs-title.class_),
- pre code :global(.hljs-type) {
- color: #7c3aed;
- }
-
- pre code :global(.hljs-string),
- pre code :global(.hljs-attr),
- pre code :global(.hljs-symbol) {
- color: #047857;
- }
-
- pre code :global(.hljs-number),
- pre code :global(.hljs-literal) {
- color: #b45309;
- }
-
- pre code :global(.hljs-comment),
- pre code :global(.hljs-quote) {
- color: #6b7280;
- font-style: italic;
- }
-
- pre code :global(.hljs-meta),
- pre code :global(.hljs-tag),
- pre code :global(.hljs-name) {
- color: #0369a1;
- }
-
@media (prefers-color-scheme: dark) {
code {
background-color: rgba(255, 255, 255, 0.12);
}
-
- pre {
- background-color: rgba(255, 255, 255, 0.1);
- }
-
- pre code :global(.hljs-keyword),
- pre code :global(.hljs-selector-tag),
- pre code :global(.hljs-title.function_) {
- color: #f472b6;
- }
-
- pre code :global(.hljs-built_in),
- pre code :global(.hljs-title.class_),
- pre code :global(.hljs-type) {
- color: #c4b5fd;
- }
-
- pre code :global(.hljs-string),
- pre code :global(.hljs-attr),
- pre code :global(.hljs-symbol) {
- color: #6ee7b7;
- }
-
- pre code :global(.hljs-number),
- pre code :global(.hljs-literal) {
- color: #fbbf24;
- }
-
- pre code :global(.hljs-comment),
- pre code :global(.hljs-quote) {
- color: #9ca3af;
- }
-
- pre code :global(.hljs-meta),
- pre code :global(.hljs-tag),
- pre code :global(.hljs-name) {
- color: #7dd3fc;
- }
}
diff --git a/src/utils/code_markup_parser.ts b/src/utils/code_markup_parser.ts
index f003105..34742bf 100644
--- a/src/utils/code_markup_parser.ts
+++ b/src/utils/code_markup_parser.ts
@@ -1,6 +1,6 @@
import type { ByteSlice, Facet } from '../../lib/rich_text_lite.js';
-export type Segment = {
+type Segment = {
kind: 'text' | 'inlineCode' | 'codeBlock';
text: string;
start: number;