Skip to content

Commit b26bb62

Browse files
committed
fix: render markdown-style links in deprecated blocks in package docs
1 parent 3a4c729 commit b26bb62

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

app/pages/docs/[...path].vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,16 @@ const showEmptyState = computed(() => docsData.value?.status !== 'ok')
364364
@apply text-badge-orange text-sm;
365365
}
366366
367-
.docs-content .docs-deprecated p {
368-
@apply text-badge-orange text-sm mt-2 mb-0;
367+
.docs-content .docs-deprecated-message {
368+
@apply text-badge-orange text-sm mt-2;
369+
}
370+
371+
.docs-content .docs-deprecated-message code {
372+
@apply bg-badge-orange/20 text-badge-orange;
373+
}
374+
375+
.docs-content .docs-deprecated-message .docs-link {
376+
@apply text-badge-orange;
369377
}
370378
371379
/* Parameters, Returns, Examples, See Also sections */

server/utils/docs/render.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,8 @@ async function renderJsDocTags(tags: JsDocTag[], symbolLookup: SymbolLookup): Pr
184184
lines.push(`<div class="docs-deprecated">`)
185185
lines.push(`<strong>Deprecated</strong>`)
186186
if (deprecated.doc) {
187-
lines.push(`<p>${parseJsDocLinks(deprecated.doc, symbolLookup)}</p>`)
187+
const renderedMessage = await renderMarkdown(deprecated.doc, symbolLookup)
188+
lines.push(`<div class="docs-deprecated-message">${renderedMessage}</div>`)
188189
}
189190
lines.push(`</div>`)
190191
}

server/utils/docs/text.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ export async function renderMarkdown(text: string, symbolLookup: SymbolLookup):
116116
// Now process the rest (JSDoc links, HTML escaping, etc.)
117117
result = parseJsDocLinks(result, symbolLookup)
118118

119+
// Markdown links - i.e. [text](url)
120+
result = result.replace(
121+
/\[([^\]]+)\]\((https?:\/\/[^)]+)\)/g,
122+
'<a href="$2" target="_blank" rel="noopener" class="docs-link">$1</a>',
123+
)
124+
119125
// Handle inline code (single backticks) - won't interfere with fenced blocks
120126
result = result
121127
.replace(/`([^`]+)`/g, '<code class="docs-inline-code">$1</code>')

0 commit comments

Comments
 (0)