From 26d44e84da1a81a070a1d44ff0516a82d21da12e Mon Sep 17 00:00:00 2001
From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
Date: Sun, 22 Feb 2026 16:24:59 -0800
Subject: [PATCH] Fix changelog page rendering markdown links as raw text
(#320)
The InlineCode component only handled backtick code spans but ignored
markdown links, causing PR/issue references to display as raw
[#N](url) text instead of clickable links. Rename to InlineMarkdown
and add link parsing to the split regex.
---
web/app/docs/changelog/page.tsx | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/web/app/docs/changelog/page.tsx b/web/app/docs/changelog/page.tsx
index ed6a9307..f3f3140a 100644
--- a/web/app/docs/changelog/page.tsx
+++ b/web/app/docs/changelog/page.tsx
@@ -75,17 +75,24 @@ function parseChangelog(markdown: string): ChangelogVersion[] {
return versions;
}
-function InlineCode({ text }: { text: string }) {
- const parts = text.split(/(`[^`]+`)/g);
+function InlineMarkdown({ text }: { text: string }) {
+ const parts = text.split(/(`[^`]+`|\[[^\]]+\]\([^)]+\))/g);
return (
<>
- {parts.map((part, i) =>
- part.startsWith("`") && part.endsWith("`") ? (
- {part.slice(1, -1)}
- ) : (
- {part}
- )
- )}
+ {parts.map((part, i) => {
+ if (part.startsWith("`") && part.endsWith("`")) {
+ return {part.slice(1, -1)};
+ }
+ const linkMatch = part.match(/^\[([^\]]+)\]\(([^)]+)\)$/);
+ if (linkMatch) {
+ return (
+
+ {linkMatch[1]}
+
+ );
+ }
+ return {part};
+ })}
>
);
}
@@ -115,7 +122,7 @@ export default function ChangelogPage() {