MCPcopy
hub / github.com/npmx-dev/npmx.dev / parseJsDocLinks

Function parseJsDocLinks

server/utils/docs/text.ts:71–93  ·  view source on GitHub ↗
(text: string, symbolLookup: SymbolLookup)

Source from the content-addressed store, hash-verified

69 * @internal Exported for testing
70 */
71export function parseJsDocLinks(text: string, symbolLookup: SymbolLookup): string {
72 let result = escapeHtml(text)
73
74 result = result.replace(/\{@link\s+([^\s}]+)(?:\s+([^}]+))?\}/g, (_, target, label) => {
75 const displayText = label || target
76
77 // External URL
78 if (target.startsWith('http://') || target.startsWith('https://')) {
79 return `<a href="${target}" target="_blank" rel="noreferrer" class="docs-link">${displayText}</a>`
80 }
81
82 // Internal symbol reference
83 const symbolId = symbolLookup.get(target)
84 if (symbolId) {
85 return `<a href="#${symbolId}" class="docs-symbol-link">${displayText}</a>`
86 }
87
88 // Unknown symbol
89 return `<code class="docs-symbol-ref">${displayText}</code>`
90 })
91
92 return result
93}
94
95/**
96 * Render simple markdown-like formatting.

Callers 3

text.spec.tsFile · 0.90
renderJsDocTagsFunction · 0.90
renderMarkdownFunction · 0.85

Calls 2

escapeHtmlFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected