├── assets
├── css
│ ├── custom.css
│ ├── safelist.txt
│ ├── components
│ │ ├── badge.css
│ │ ├── toc.css
│ │ ├── hextra
│ │ │ └── feature-grid.css
│ │ ├── code-copy.css
│ │ ├── banner.css
│ │ ├── jupyter.css
│ │ ├── sidebar.css
│ │ ├── scrollbar.css
│ │ ├── steps.css
│ │ ├── cards.css
│ │ ├── navbar.css
│ │ └── search.css
│ ├── variables.css
│ └── highlight.css
├── js
│ ├── head
│ │ ├── banner.js
│ │ └── theme.js
│ └── core
│ │ ├── back-to-top.js
│ │ ├── banner.js
│ │ ├── filetree.js
│ │ ├── favicon.js
│ │ ├── lang.js
│ │ ├── sidebar.js
│ │ ├── menu.js
│ │ ├── switcher-menu.js
│ │ ├── theme.js
│ │ ├── tabs.js
│ │ └── nav-menu.js
└── json
│ └── search-data.json
├── layouts
├── _partials
│ ├── custom
│ │ ├── banner.html
│ │ ├── footer.html
│ │ ├── head-end.html
│ │ └── navbar-title.html
│ ├── google-analytics.html
│ ├── utils
│ │ ├── format-date.html
│ │ ├── page-width-override.html
│ │ ├── page-description.html
│ │ ├── icon.html
│ │ ├── lang-link.html
│ │ ├── title.html
│ │ ├── file-path.html
│ │ ├── sort-pages.html
│ │ └── extract-headings.html
│ ├── shortcodes
│ │ ├── cards.html
│ │ └── callout.html
│ ├── components
│ │ ├── comments.html
│ │ ├── analytics
│ │ │ ├── google-analytics.html
│ │ │ ├── analytics.html
│ │ │ ├── goat-counter.html
│ │ │ ├── matomo.html
│ │ │ └── umami.html
│ │ ├── last-updated.html
│ │ ├── codeblock.html
│ │ ├── codeblock-copy-button.html
│ │ ├── blog-pager.html
│ │ └── github-style-alert.html
│ ├── tags.html
│ ├── scripts.html
│ ├── scripts
│ │ ├── core.html
│ │ ├── mathjax.html
│ │ └── search.html
│ ├── favicons.html
│ ├── banner.html
│ ├── breadcrumb.html
│ ├── navbar-title.html
│ └── search.html
├── _markup
│ ├── render-blockquote-regular.html
│ ├── render-codeblock-mermaid.html
│ ├── render-heading.html
│ ├── render-blockquote-alert.html
│ ├── render-codeblock.html
│ ├── render-passthrough.html
│ ├── render-link.html
│ └── render-image.html
├── _shortcodes
│ ├── cards.html
│ ├── steps.html
│ ├── filetree
│ │ ├── container.html
│ │ ├── file.html
│ │ └── folder.html
│ ├── pdf.html
│ ├── hextra
│ │ ├── hero-subtitle.html
│ │ ├── hero-headline.html
│ │ ├── feature-grid.html
│ │ ├── hero-section.html
│ │ ├── hero-button.html
│ │ ├── hero-badge.html
│ │ └── feature-card.html
│ ├── tab.html
│ ├── icon.html
│ ├── include.html
│ ├── details.html
│ ├── tabs.html
│ ├── badge.html
│ └── callout.html
├── baseof.html
├── hextra-home.html
├── wide.html
├── home.html
├── list.html
├── docs
│ ├── list.html
│ └── single.html
├── single.html
├── llms.txt
├── 404.html
├── taxonomy.html
├── term.html
├── list.rss.xml
└── blog
│ └── list.html
├── docs
├── hugo.work
├── assets
│ └── images
│ │ └── space.jpg
├── go.mod
├── static
│ ├── images
│ │ ├── hextra-doc.webp
│ │ ├── hextra-search.webp
│ │ ├── hextra-markdown.webp
│ │ └── card-image-unprocessed.jpg
│ └── favicon-dark.svg
├── i18n
│ ├── zh-cn.yaml
│ ├── ja.yaml
│ └── fa.yaml
├── layouts
│ ├── _partials
│ │ └── custom
│ │ │ └── head-end.html
│ └── _shortcodes
│ │ └── new-feature.html
└── content
│ ├── blog
│ ├── _index.ja.md
│ ├── _index.zh-cn.md
│ ├── _index.fa.md
│ ├── _index.md
│ └── markdown.zh-cn.md
│ ├── docs
│ ├── advanced
│ │ ├── _index.zh-cn.md
│ │ ├── _index.ja.md
│ │ ├── _index.fa.md
│ │ ├── _index.md
│ │ ├── comments.zh-cn.md
│ │ ├── comments.ja.md
│ │ ├── comments.fa.md
│ │ ├── comments.md
│ │ ├── multi-language.zh-cn.md
│ │ └── multi-language.ja.md
│ ├── guide
│ │ ├── shortcodes
│ │ │ ├── steps.zh-cn.md
│ │ │ ├── details.zh-cn.md
│ │ │ ├── details.ja.md
│ │ │ ├── steps.ja.md
│ │ │ ├── details.fa.md
│ │ │ ├── details.md
│ │ │ ├── steps.fa.md
│ │ │ ├── _index.zh-cn.md
│ │ │ ├── icon.zh-cn.md
│ │ │ ├── _index.ja.md
│ │ │ ├── steps.md
│ │ │ ├── icon.ja.md
│ │ │ ├── _index.fa.md
│ │ │ ├── _index.md
│ │ │ ├── icon.md
│ │ │ ├── icon.fa.md
│ │ │ ├── filetree.zh-cn.md
│ │ │ ├── filetree.ja.md
│ │ │ ├── filetree.fa.md
│ │ │ ├── filetree.md
│ │ │ └── jupyter.zh-cn.md
│ │ ├── _index.zh-cn.md
│ │ ├── _index.ja.md
│ │ ├── _index.fa.md
│ │ ├── _index.md
│ │ ├── diagrams.zh-cn.md
│ │ ├── diagrams.ja.md
│ │ ├── diagrams.md
│ │ ├── diagrams.fa.md
│ │ └── syntax-highlighting.zh-cn.md
│ ├── _index.zh-cn.md
│ ├── _index.ja.md
│ ├── _index.fa.md
│ └── _index.md
│ ├── about
│ ├── index.zh-cn.md
│ ├── index.ja.md
│ ├── index.md
│ └── index.fa.md
│ └── showcase
│ └── index.fa.md
├── go.mod
├── images
├── tn.jpg
└── screenshot.jpg
├── .gitignore
├── static
├── favicon.ico
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── site.webmanifest
├── casts
│ └── demo.cast
├── images
│ ├── logo-dark.svg
│ └── logo.svg
└── favicon.svg
├── postcss.config.mjs
├── .vscode
├── settings.json
└── tailwind.json
├── hugo.toml
├── i18n
├── zh-tw.yaml
├── ko.yaml
├── ja.yaml
├── zh-cn.yaml
├── nb.yaml
├── nn.yaml
├── he.yaml
├── vi.yaml
├── pt.yaml
├── sw.yaml
├── cs.yaml
├── ru.yaml
├── uk.yaml
├── fa.yaml
├── nl.yaml
├── de.yaml
├── ro.yaml
├── en.yaml
├── es.yaml
└── fr.yaml
├── examples
└── README.md
├── netlify.toml
├── .prettierrc
├── taskfile.yaml
├── .devcontainer
└── devcontainer.json
├── .github
├── ISSUE_TEMPLATE
│ ├── feature_request.md
│ └── bug_report.md
├── FUNDING.yml
└── workflows
│ └── pages.yml
├── package.json
├── theme.toml
├── dev.toml
├── LICENSE
└── README.zh-cn.md
/assets/css/custom.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layouts/_partials/custom/banner.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layouts/_partials/custom/footer.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/layouts/_partials/custom/head-end.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/css/safelist.txt:
--------------------------------------------------------------------------------
1 | hx:max-w-full
2 |
--------------------------------------------------------------------------------
/docs/hugo.work:
--------------------------------------------------------------------------------
1 | go 1.20
2 |
3 | use ../
4 |
--------------------------------------------------------------------------------
/layouts/_partials/custom/navbar-title.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/imfing/hextra
2 |
3 | go 1.20
4 |
--------------------------------------------------------------------------------
/images/tn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/images/tn.jpg
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | public/
3 | resources/
4 |
5 | .hugo_build.lock
6 |
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/favicon.ico
--------------------------------------------------------------------------------
/images/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/images/screenshot.jpg
--------------------------------------------------------------------------------
/assets/css/components/badge.css:
--------------------------------------------------------------------------------
1 | .hextra-badge {
2 | @apply hx:inline-flex hx:items-center;
3 | }
--------------------------------------------------------------------------------
/static/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/favicon-16x16.png
--------------------------------------------------------------------------------
/static/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/favicon-32x32.png
--------------------------------------------------------------------------------
/layouts/_markup/render-blockquote-regular.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Text }}
3 |
4 |
--------------------------------------------------------------------------------
/static/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/apple-touch-icon.png
--------------------------------------------------------------------------------
/docs/assets/images/space.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/docs/assets/images/space.jpg
--------------------------------------------------------------------------------
/postcss.config.mjs:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | "@tailwindcss/postcss": {},
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/docs/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/imfing/hextra/docs
2 |
3 | go 1.20
4 |
5 | replace github.com/imfing/hextra => ../
6 |
--------------------------------------------------------------------------------
/docs/static/images/hextra-doc.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/docs/static/images/hextra-doc.webp
--------------------------------------------------------------------------------
/static/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/android-chrome-192x192.png
--------------------------------------------------------------------------------
/static/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/static/android-chrome-512x512.png
--------------------------------------------------------------------------------
/docs/static/images/hextra-search.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/docs/static/images/hextra-search.webp
--------------------------------------------------------------------------------
/docs/static/images/hextra-markdown.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/docs/static/images/hextra-markdown.webp
--------------------------------------------------------------------------------
/docs/static/images/card-image-unprocessed.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imfing/hextra/HEAD/docs/static/images/card-image-unprocessed.jpg
--------------------------------------------------------------------------------
/layouts/_partials/google-analytics.html:
--------------------------------------------------------------------------------
1 | {{- /* Only for compatibility. */ -}}
2 | {{- partial "components/analytics/google-analytics.html" . -}}
3 |
--------------------------------------------------------------------------------
/layouts/_partials/utils/format-date.html:
--------------------------------------------------------------------------------
1 | {{- with . -}}
2 | {{- . | time.Format (site.Params.dateFormat | default ":date_long") -}}
3 | {{- end -}}
4 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.tabSize": 2,
3 | "css.customData": [".vscode/tailwind.json"],
4 | "markdown.extension.toc.levels": "2..6"
5 | }
6 |
--------------------------------------------------------------------------------
/docs/i18n/zh-cn.yaml:
--------------------------------------------------------------------------------
1 | documentation: "文档"
2 | showcase: "项目展示"
3 | blog: "博客"
4 | about: "关于"
5 | more: "更多"
6 | hugoDocs: "Hugo 文档 ↗"
7 | versions: "版本"
8 | development: "最新开发版本"
9 |
--------------------------------------------------------------------------------
/layouts/_markup/render-codeblock-mermaid.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Inner | htmlEscape | safeHTML }}
3 |
4 | {{- .Page.Store.Set "hasMermaid" true -}}
5 |
--------------------------------------------------------------------------------
/docs/i18n/ja.yaml:
--------------------------------------------------------------------------------
1 | documentation: "ドキュメント"
2 | showcase: "展示"
3 | blog: "ブログ"
4 | about: "概要"
5 | more: "もっと見る"
6 | hugoDocs: "Hugo ドキュメント ↗"
7 | versions: "バージョン"
8 | development: "最新の開発版"
9 |
--------------------------------------------------------------------------------
/assets/css/components/toc.css:
--------------------------------------------------------------------------------
1 | /* Table of Contents Scroll Spy Styles */
2 | .hextra-toc a.hextra-toc-active {
3 | @apply hx:text-gray-900! hx:dark:text-gray-50! hx:transition-all hx:duration-200;
4 | }
5 |
--------------------------------------------------------------------------------
/assets/css/components/hextra/feature-grid.css:
--------------------------------------------------------------------------------
1 | .hextra-feature-grid {
2 | @media (min-width: 1024px) {
3 | grid-template-columns: repeat(var(--hextra-feature-grid-cols), minmax(0, 1fr));
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/docs/i18n/fa.yaml:
--------------------------------------------------------------------------------
1 | documentation: "مستندات"
2 | showcase: "ویترین"
3 | blog: "وبلاگ"
4 | about: "درباره ما"
5 | more: "بیشتر"
6 | hugoDocs: "مستندات هیوگو ↖"
7 | versions: "نسخهها"
8 | development: "آخرین نسخه توسعهای"
9 |
--------------------------------------------------------------------------------
/hugo.toml:
--------------------------------------------------------------------------------
1 | [module]
2 | [module.hugoVersion]
3 | min = '0.146.0'
4 |
5 | [outputFormats]
6 | [outputFormats.llms]
7 | name= 'llms'
8 | baseName = 'llms'
9 | mediaType = 'text/plain'
10 | isPlainText = true
11 |
--------------------------------------------------------------------------------
/layouts/_partials/utils/page-width-override.html:
--------------------------------------------------------------------------------
1 | {{- with .Params.width -}}
2 |
7 | {{- end -}}
8 |
--------------------------------------------------------------------------------
/assets/css/components/code-copy.css:
--------------------------------------------------------------------------------
1 | @supports (
2 | (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))
3 | ) {
4 | .hextra-code-copy-btn {
5 | @apply hx:backdrop-blur-md hx:opacity-85 hx:dark:opacity-80;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/docs/layouts/_partials/custom/head-end.html:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/layouts/_partials/shortcodes/cards.html:
--------------------------------------------------------------------------------
1 | {{- $cols := .cols | default 3 -}}
2 | {{- $content := .content -}}
3 |
4 |
7 |
--------------------------------------------------------------------------------
/docs/content/blog/_index.ja.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "ブログ"
3 | ---
4 |
5 |
6 | {{< hextra/hero-badge link="index.xml" >}}
7 | RSS フィード
8 | {{< icon name="rss" attributes="height=14" >}}
9 | {{< /hextra/hero-badge >}}
10 |
--------------------------------------------------------------------------------
/docs/content/blog/_index.zh-cn.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "博客"
3 | ---
4 |
5 |
6 | {{< hextra/hero-badge link="index.xml" >}}
7 | RSS 订阅
8 | {{< icon name="rss" attributes="height=14" >}}
9 | {{< /hextra/hero-badge >}}
10 |
--------------------------------------------------------------------------------
/docs/content/blog/_index.fa.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "وبلاگ"
3 | ---
4 |
5 |
6 | {{< hextra/hero-badge link="index.xml" >}}
7 | فید RSS
8 | {{< icon name="rss" attributes="height=14" >}}
9 | {{< /hextra/hero-badge >}}
10 |
--------------------------------------------------------------------------------
/docs/content/blog/_index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Blog"
3 | ---
4 |
5 |
6 | {{< hextra/hero-badge link="index.xml" >}}
7 | RSS Feed
8 | {{< icon name="rss" attributes="height=14" >}}
9 | {{< /hextra/hero-badge >}}
10 |
11 |
--------------------------------------------------------------------------------
/layouts/_shortcodes/cards.html:
--------------------------------------------------------------------------------
1 | {{- /*
2 | A shortcode for creating cards.
3 |
4 | @param {string} cols The number of columns.
5 |
6 | @example {{< cards cols="3" >}}{{< /cards >}}
7 | */ -}}
8 |
9 | {{- $cols := .Get "cols" | default 3 -}}
10 |
11 | {{- partial "shortcodes/cards" (dict "cols" $cols "content" .Inner) -}}
12 |
--------------------------------------------------------------------------------
/layouts/_shortcodes/steps.html:
--------------------------------------------------------------------------------
1 | {{- /*
2 | A shortcode for creating a step list.
3 |
4 | @example {{% steps %}}{{% /steps %}}
5 | */ -}}
6 |
7 |
10 |
--------------------------------------------------------------------------------
/assets/js/head/banner.js:
--------------------------------------------------------------------------------
1 | // The section must not be in the banner.js (body) file because it can create a quick flash.
2 |
3 | if (localStorage.getItem('{{ site.Params.banner.key | default `banner-closed` }}')) {
4 | document.documentElement.style.setProperty("--hextra-banner-height", "0px");
5 | document.documentElement.classList.add("hextra-banner-hidden");
6 | }
7 |
--------------------------------------------------------------------------------
/i18n/zh-tw.yaml:
--------------------------------------------------------------------------------
1 | backToTop: "返回頂部"
2 | changeLanguage: "切換語言"
3 | changeTheme: "切換主題"
4 | copyright: "© 2025 Hextra Project."
5 | dark: "深色"
6 | editThisPage: "在 GitHub 上編輯此頁 →"
7 | lastUpdated: "最後更新於"
8 | light: "淺色"
9 | noResultsFound: "無結果"
10 | onThisPage: "此頁上"
11 | tags: "標籤"
12 | poweredBy: "由 Hextra 驅動"
13 | readMore: "更多 →"
14 | searchPlaceholder: "搜尋文檔..."
15 |
--------------------------------------------------------------------------------
/layouts/_partials/utils/page-description.html:
--------------------------------------------------------------------------------
1 | {{ with .Description | plainify | htmlUnescape -}}
2 | {{ . -}}
3 | {{ else -}}
4 | {{ if .IsHome -}}
5 | {{ with .Site.Params.description | plainify | htmlUnescape -}}
6 | {{ . -}}
7 | {{ end -}}
8 | {{ else -}}
9 | {{ .Summary | plainify | htmlUnescape | chomp -}}
10 | {{ end -}}
11 | {{ end -}}
12 |
--------------------------------------------------------------------------------
/i18n/ko.yaml:
--------------------------------------------------------------------------------
1 | backToTop: "맨위로 스크롤"
2 | changeLanguage: "언어 변경"
3 | changeTheme: "테마 변경"
4 | copyright: "© 2025 Hextra Project."
5 | dark: "어두운 테마"
6 | editThisPage: "GitHub에서 편집하기 →"
7 | lastUpdated: "마지막 수정 일자"
8 | light: "밝은 테마"
9 | noResultsFound: "결과 없음"
10 | onThisPage: "페이지 목차"
11 | tags: "태그"
12 | poweredBy: "Hextra로 제작됨"
13 | readMore: "더보기 →"
14 | searchPlaceholder: "검색..."
15 |
--------------------------------------------------------------------------------
/assets/css/components/banner.css:
--------------------------------------------------------------------------------
1 | .hextra-banner-hidden .hextra-banner {
2 | display: none;
3 | }
4 |
5 | .hextra-banner {
6 | :where(a):not(:where([class~=not-prose],[class~=not-prose] *)) {
7 | @apply hx:underline hx:decoration-from-font;
8 | }
9 | :where(p):not(:where([class~=not-prose],[class~=not-prose] *)) {
10 | @apply hx:leading-7 hx:first:mt-0;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/layouts/_partials/components/comments.html:
--------------------------------------------------------------------------------
1 | {{- $enableComments := site.Params.comments.enable | default false -}}
2 |
3 | {{ if not (eq .Params.comments nil) }}
4 | {{ $enableComments = .Params.comments }}
5 | {{ end }}
6 |
7 | {{- if $enableComments -}}
8 | {{- if eq site.Params.comments.type "giscus" -}}
9 | {{ partial "components/giscus.html" . }}
10 | {{- end -}}
11 | {{- end -}}
12 |
--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 | # Examples
2 |
3 | This folder will host boilerplate example sites demonstrating Hextra for different use-cases.
4 |
5 | Planned examples:
6 | - docs/ (minimal docs boilerplate)
7 | - blog/ (blog-centric setup)
8 | - portfolio/ (personal site/portfolio)
9 |
10 | Each example will include:
11 | - A ready-to-run Hugo site
12 | - Recommended config and params
13 | - Customizations and best practices
14 |
--------------------------------------------------------------------------------
/i18n/ja.yaml:
--------------------------------------------------------------------------------
1 | backToTop: "トップにスクロール"
2 | changeLanguage: "言語を変更"
3 | changeTheme: "テーマを変更"
4 | copyright: "© 2025 Hextra プロジェクト。"
5 | dark: "ダーク"
6 | editThisPage: "このページをGitHubで編集 →"
7 | lastUpdated: "最終更新日"
8 | light: "ライト"
9 | noResultsFound: "結果が見つかりませんでした。"
10 | onThisPage: "このページの内容"
11 | tags: "タグ"
12 | poweredBy: "提供元 Hextra"
13 | readMore: "もっと読む →"
14 | searchPlaceholder: "検索..."
15 | previous: "前へ"
16 | next: "次へ"
17 |
--------------------------------------------------------------------------------
/layouts/_markup/render-heading.html:
--------------------------------------------------------------------------------
1 |
2 | {{- .Text | safeHTML -}}
3 | {{- if gt .Level 1 -}}
4 |
5 |
6 | {{- end -}}
7 |
8 | {{- /* Drop trailing newlines */ -}}
9 |
--------------------------------------------------------------------------------
/layouts/_partials/utils/icon.html:
--------------------------------------------------------------------------------
1 | {{/* Render raw svg icon from .Site.Data */}}
2 | {{- $icon := index site.Data.icons .name -}}
3 |
4 | {{- if not $icon -}}
5 | {{ errorf "icon %q not found" .name }}
6 | {{- end -}}
7 |
8 | {{- $icon = $icon | safeHTML -}}
9 |
10 | {{- if .attributes -}}
11 | {{- $icon = replaceRE "