diff options
| author | David Hill <[email protected]> | 2025-12-16 11:50:23 +0000 |
|---|---|---|
| committer | David Hill <[email protected]> | 2025-12-16 11:50:23 +0000 |
| commit | 6c1a1a77b762dbde875f0325ca43903c2c0840b6 (patch) | |
| tree | 5a3cf0cdf1e1b9594383db32229a8c2f30133981 /packages/web/src/components | |
| parent | 2e21c623204df104af2f7cd64d5b9344c9e2c99c (diff) | |
| download | opencode-6c1a1a77b762dbde875f0325ca43903c2c0840b6.tar.gz opencode-6c1a1a77b762dbde875f0325ca43903c2c0840b6.zip | |
fix: strip parentheses from file paths generated by llm
Diffstat (limited to 'packages/web/src/components')
| -rw-r--r-- | packages/web/src/components/share/content-markdown.tsx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/web/src/components/share/content-markdown.tsx b/packages/web/src/components/share/content-markdown.tsx index 69cde82b2..db3f4a516 100644 --- a/packages/web/src/components/share/content-markdown.tsx +++ b/packages/web/src/components/share/content-markdown.tsx @@ -29,7 +29,7 @@ interface Props { } export function ContentMarkdown(props: Props) { const [html] = createResource( - () => strip(props.text), + () => removeParensAroundFileRefs(strip(props.text)), async (markdown) => { return markedWithShiki.parse(markdown) }, @@ -65,3 +65,9 @@ function strip(text: string): string { const match = text.match(wrappedRe) return match ? match[2] : text } + +function removeParensAroundFileRefs(text: string): string { + // Remove parentheses around inline code that looks like a file reference + // Matches: (`path/to/file.ext`) or (`path/to/file.ext:1-10`) or (`file.ext:42`) + return text.replace(/\(\s*(`[^`]+\.[a-zA-Z0-9]+(?::\d+(?:-\d+)?)?`)\s*\)/g, "$1") +} |
