* feat(external-link-guard): add native redirect mode and improve external-link guard UX * fix(external-link-guard): remove redirect_url and clarify scope/new_tab_policy docs * i18n(external-link-guard): localize guard texts across non-English locales * feat(config)!: migrate `site.Params.externalIcon` to `site.Params.link.external_icon` * refactor: implement regular and card link rendering * feat(link-guard): implement link redirection page with copy and confirm functionality * revert * feat: implement link guard dialog for external links --------- Co-authored-by: Cell <1024@lruihao.cn>
3.0 KiB
title, date, collections, categories, tags
| title | date | collections | categories | tags | |||
|---|---|---|---|---|---|---|---|
| Link Rendering Test | 2026-04-10T11:40:06+08:00 |
|
|
|
This post validates link rendering paths in FixIt, including Markdown render hook and link shortcode modes.
Markdown Render Hook (Regular Link)
These links are rendered by layouts/_markup/render-link.html and should always produce regular links.
- Internal relative link: Task list test
- Internal anchor link: Jump to Card Link section
- Absolute same-site link: Test site home
- External HTTP link: FixIt Repository
- Mail link: Email test
- JavaScript link: JavaScript test
- Tel link: Phone test
- File link: File test
- Data link: Data URI test
Title Attribute (Markdown)
Link Shortcode (Regular)
Named parameters
{{< link href="https://github.com/hugo-fixit/FixIt" content="GitHub via shortcode" title="GitHub title" >}}
{{< link href="/test/units/codeblock-test/" content="Internal shortcode link" class="shortcode-link-test" >}}
{{< link href="https://example.com" content="Custom rel + no noreferrer" rel="ugc" noreferrer=false >}}
{{< link href="/images/fixit.svg" content="Download local file" download="fixit.svg" >}}
Positional parameters
{{< link "https://example.org" "Positional regular link" "Positional title" >}}
Card Link Shortcode
Basic card
{{< link href="https://fixit.lruihao.cn" content="FixIt Documentation" card=true >}}
Card with custom icon class
{{< link href="https://github.com/hugo-fixit/FixIt" content="FixIt on GitHub" card=true card-icon="fa-brands fa-github" >}}
Card with custom image icon
{{< link href="https://gohugo.io" content="Hugo Official Site" card=true card-icon="/test/images/hugo.min.svg" >}}
Card with download state
{{< link href="/images/fixit.svg" content="Download as card" card=true download="fixit.svg" >}}
Positional card parameters
{{< link "https://example.com" "Positional card link" "" true "fa-solid fa-link" >}}
Edge Cases
- URL with query string: Search query test
- URL with fragment: Fragment test
- Long URL display (card meta should trim protocol automatically): {{< link href="https://example.com/a/very/long/path/for/testing/card/url/display?foo=bar&baz=qux" content="Long URL card" card=true >}}
Manual Verification Checklist
- Regular Markdown external links include external behavior and icon policy.
- Internal links are not treated as external.
- Shortcode card links render
.card-linkstructure and card meta URL. downloadshows download icon/state in both regular and card modes.noreferrer=falseremovesnoopener noreferrerfrom generated rel values.