Pre-submit Checks
Describe the solution you'd like?
Warp's Markdown Viewer should render raw HTML <a href="…"> links as clickable links, and <a id="…"> (or name="…") as named anchor targets that in-page #fragment links can jump to. Both are everyday patterns in hand-built READMEs and docs.
Expected behavior: <a href="https://…"> renders as a clickable external link. <a href="#target-section"> (and the markdown [text](#fragment) equivalent) scrolls to the element carrying a matching <a id="target-section"> (or heading slug, if Warp adds heading-based anchors as part of this work).
Is your feature request related to a problem? Please describe.
Hand-built tables of contents commonly pair <a id="section"> anchor targets with [Jump to Section](#section) links, or use raw <a href> tags directly for external links when an author wants attributes markdown can't express (e.g. title, target). Today neither raw HTML anchors nor anchor-target resolution work in Warp's viewer, so any doc using this pattern loses its navigation.
Concretely, today in Warp's Markdown Viewer (verified on this build):
Raw <a href="#target-section">/<a href="https://…"> tags render as literal text instead of clickable links, and the markdown-native [Jump to Target Section](#target-section) link resolves as a plain URL hyperlink rather than scrolling to the heading below it — there's no anchor-target resolution at all, HTML or markdown.
Additional context
Test case:
# Anchor links (`<a href>`, `<a id>`)
Should render: a clickable link to an external URL, a clickable in-page jump to the "Target Section" heading below, and a named anchor target. Currently: expect literal HTML text instead of live links, and the `[Jump to Target Section](#target-section)` markdown link to resolve as a plain URL hyperlink (not scrolled to the heading).
Jump via raw HTML: <a href="#target-section">Jump to Target Section</a>
Jump via markdown link (contrast): [Jump to Target Section](#target-section)
External link via raw HTML: <a href="https://warp.dev">Visit Warp</a>
<a id="target-section"></a>
## Target Section
This is the heading the links above should scroll to.
Code pointers. As far as I can tell:
crates/markdown_parser/src/markdown_parser.rs's InlineToken enum has no HTML-tag token at all, so raw <a> tags never get special-cased on the .md render path.
- The paste-path parser (
crates/markdown_parser/src/html_parser.rs) does style <a href> when converting pasted HTML to FormattedText, but that code path is only reachable from Notebooks clipboard paste — it's not wired into .md file rendering.
- There's no anchor/slug concept anywhere in the content model —
FormattedTextHeader has no id/slug field, and I couldn't find any scroll-to-fragment infrastructure. This means both the <a id> half of this request and heading-based anchor resolution for markdown links ([text](#heading)) are new territory, not just a missing tag handler.
Related: this splits out one tag from #13652 (bulk raw-HTML-subset request, since closed in favor of per-feature issues). See also #13083 and #4720 — table-of-contents requests; working in-document anchor links are a prerequisite for any TOC feature. Sibling issues from the same split: #13721 (<img> sizing), #13726 (raw HTML tables), #10259 (<details>/<summary> — pre-existing request), #13732 (<br>), #13733 (<kbd>), #13734 (<sub>/<sup>), #13735 (align on <p>/<div>), #13736 (<picture>/<source>)
Operating system (OS)
macOS
How important is this feature to you?
3
Warp Internal (ignore) - linear-label:39cc6478-1249-4ee7-950b-c428edfeecd1
No response
Scope update (2026-07-18): cross-document fragment links (other-file.md#section) are in scope for the initial implementation PR (#13962) alongside same-document fragments — a fragment link should work regardless of whether its target is in the current document. This surfaced three latent defects in relative-link resolution the PR also addresses: bare file.md targets misclassified as domains (.md is a ccTLD in the public suffix list), #fragment suffixes never stripped before file lookup, and standalone viewer tabs lacking a document-relative resolution base. Explicit <a id>/<a name> anchor targets remain the follow-up phase.
Pre-submit Checks
Describe the solution you'd like?
Warp's Markdown Viewer should render raw HTML
<a href="…">links as clickable links, and<a id="…">(orname="…") as named anchor targets that in-page#fragmentlinks can jump to. Both are everyday patterns in hand-built READMEs and docs.Expected behavior:
<a href="https://…">renders as a clickable external link.<a href="#target-section">(and the markdown[text](#fragment)equivalent) scrolls to the element carrying a matching<a id="target-section">(or heading slug, if Warp adds heading-based anchors as part of this work).Is your feature request related to a problem? Please describe.
Hand-built tables of contents commonly pair
<a id="section">anchor targets with[Jump to Section](#section)links, or use raw<a href>tags directly for external links when an author wants attributes markdown can't express (e.g.title,target). Today neither raw HTML anchors nor anchor-target resolution work in Warp's viewer, so any doc using this pattern loses its navigation.Concretely, today in Warp's Markdown Viewer (verified on this build):
Raw
<a href="#target-section">/<a href="https://…">tags render as literal text instead of clickable links, and the markdown-native[Jump to Target Section](#target-section)link resolves as a plain URL hyperlink rather than scrolling to the heading below it — there's no anchor-target resolution at all, HTML or markdown.Additional context
Test case:
Code pointers. As far as I can tell:
crates/markdown_parser/src/markdown_parser.rs'sInlineTokenenum has no HTML-tag token at all, so raw<a>tags never get special-cased on the.mdrender path.crates/markdown_parser/src/html_parser.rs) does style<a href>when converting pasted HTML toFormattedText, but that code path is only reachable from Notebooks clipboard paste — it's not wired into.mdfile rendering.FormattedTextHeaderhas no id/slug field, and I couldn't find any scroll-to-fragment infrastructure. This means both the<a id>half of this request and heading-based anchor resolution for markdown links ([text](#heading)) are new territory, not just a missing tag handler.Related: this splits out one tag from #13652 (bulk raw-HTML-subset request, since closed in favor of per-feature issues). See also #13083 and #4720 — table-of-contents requests; working in-document anchor links are a prerequisite for any TOC feature. Sibling issues from the same split: #13721 (
<img>sizing), #13726 (raw HTML tables), #10259 (<details>/<summary>— pre-existing request), #13732 (<br>), #13733 (<kbd>), #13734 (<sub>/<sup>), #13735 (alignon<p>/<div>), #13736 (<picture>/<source>)Operating system (OS)
macOS
How important is this feature to you?
3
Warp Internal (ignore) - linear-label:39cc6478-1249-4ee7-950b-c428edfeecd1
No response
Scope update (2026-07-18): cross-document fragment links (
other-file.md#section) are in scope for the initial implementation PR (#13962) alongside same-document fragments — a fragment link should work regardless of whether its target is in the current document. This surfaced three latent defects in relative-link resolution the PR also addresses: barefile.mdtargets misclassified as domains (.mdis a ccTLD in the public suffix list),#fragmentsuffixes never stripped before file lookup, and standalone viewer tabs lacking a document-relative resolution base. Explicit<a id>/<a name>anchor targets remain the follow-up phase.