2025-03-29 12:51:42 +00:00
|
|
|
{{- $navWidth := "hx:max-w-[90rem]" -}}
|
2023-09-20 23:36:00 +01:00
|
|
|
{{- with .Site.Params.navbar.width -}}
|
|
|
|
{{ if eq . "normal" -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{ $navWidth = "hx:max-w-screen-xl" -}}
|
2023-09-20 23:36:00 +01:00
|
|
|
{{ else if eq . "full" -}}
|
|
|
|
{{ $navWidth = "max-w-full" -}}
|
|
|
|
{{ end -}}
|
|
|
|
{{- end -}}
|
2023-08-20 20:34:01 +01:00
|
|
|
|
2025-08-18 00:26:43 +02:00
|
|
|
{{- $page := . -}}
|
2025-08-16 17:46:15 +02:00
|
|
|
{{- $iconHeight := 24 -}}
|
2025-06-01 17:33:45 +01:00
|
|
|
|
refactor(css): add prefix to component classes for consistency (#744)
* refactor(navbar): add hextra prefix to navbar and hamburger menu classes
- Updated CSS class names from `nav-container` to `hextra-nav-container` and `hamburger-menu` to `hextra-hamburger-menu` for improved clarity and consistency across the project.
- Adjusted related JavaScript and documentation to reflect the new class names.
* refactor(search): update class names for search components
- Renamed CSS classes from `search-wrapper`, `search-input`, `active`, `no-result`, `prefix`, `excerpt`, and `match` to `hextra-search-wrapper`, `hextra-search-input`, `hextra-search-active`, `hextra-search-no-result`, `hextra-search-prefix`, `hextra-search-excerpt`, and `hextra-search-match` for improved clarity and consistency.
- Updated JavaScript selectors to match the new class names, ensuring functionality remains intact.
- Adjusted HTML structure to reflect the new class naming convention.
* refactor(search): update search component class names for consistency
- Renamed existing search-related CSS classes to include the `hextra` prefix for improved clarity and consistency.
- Added optional nested classes for enhanced customization of the search UI, including titles, active states, and result snippets.
- Removed outdated breadcrumb section as no specific class is available.
* refactor(sidebar): rename sidebar classes for consistency
- Updated CSS and JavaScript to replace `sidebar-container` with `hextra-sidebar-container` and `sidebar-active-item` with `hextra-sidebar-active-item` for improved clarity and consistency across the project.
- Adjusted related documentation to reflect the new class names.
* refactor(language & theme): update class names for consistency
- Renamed language switcher and theme toggle classes to include the `hextra` prefix for improved clarity and consistency across the project.
- Updated related JavaScript selectors and documentation to reflect the new class names.
* refactor(css & html): rename classes for consistency and clarity
- Updated various CSS class names to include the `hextra` prefix, enhancing consistency across the project. This includes renaming classes such as `content` to `hextra-content`, `filename` to `hextra-code-filename`, and `steps` to `hextra-steps`.
- Adjusted related HTML and JavaScript to reflect the new class names, ensuring functionality and styling remain intact.
- Updated documentation to include the new class names for better clarity.
* refactor(language): update class names for language options
- Renamed the `language-options` class to `hextra-language-options` for consistency with the existing `hextra` prefix convention.
- Updated the corresponding HTML to reflect the new class name, ensuring clarity and uniformity across the project.
* refactor(css & html): rename classes for consistency and clarity
- Renamed CSS classes to include the `hextra` prefix, such as changing `subheading-anchor` to `hextra-subheading-anchor` and `footnotes` to `hextra-footnotes`, enhancing consistency across the project.
- Updated related HTML and documentation to reflect the new class names, ensuring clarity and uniformity.
* feat(typography): add styling for horizontal lines
- Introduced new styles for horizontal lines to enhance visual separation in content. The styles apply margin and border color adjustments, ensuring consistency with the overall design.
* feat(blog): add draft release announcement for Hextra v0.10.0
- Created a new markdown file for the draft release announcement of Hextra v0.10.0, including upgrade instructions and author details.
- The announcement is currently marked as a draft and may be updated before the official release.
* refactor(css & html): rename `hextra-content` class to `content` for consistency
- Updated the `hextra-content` class to simply `content` across various HTML files and CSS, enhancing clarity and consistency in the codebase.
- Adjusted the `package.json` script for the development server to include the `-F` flag for better functionality.
* refactor(typography & markdown): enhance table styling and markdown syntax
- Updated CSS for tables to improve styling, including adjustments to margins, borders, and text properties for better readability.
- Revised markdown documentation to standardize table formatting and improve clarity, including consistent syntax for headers and lists.
- Enhanced examples in the documentation to reflect the updated styling and ensure accurate representation of output.
* fix(blog): update text color for improved accessibility
- Modified the text color in the blog single layout to enhance readability in dark mode by adding a dark text color class.
- Ensured consistency in styling for better user experience across different themes.
* docs(blog): update draft release announcement for Hextra v0.10.0
- Revised the "What's New" section to include a TODO placeholder for future updates.
- Added a comprehensive migration guide detailing the CSS class prefix changes to enhance consistency and avoid conflicts.
- Updated the announcement to reflect the new class naming conventions for various components.
* chore: rebuild css
2025-08-13 22:55:38 +08:00
|
|
|
<div class="hextra-nav-container hx:sticky hx:top-0 hx:z-20 hx:w-full hx:bg-transparent hx:print:hidden">
|
2025-06-01 17:33:45 +01:00
|
|
|
<div
|
refactor(css): add prefix to component classes for consistency (#744)
* refactor(navbar): add hextra prefix to navbar and hamburger menu classes
- Updated CSS class names from `nav-container` to `hextra-nav-container` and `hamburger-menu` to `hextra-hamburger-menu` for improved clarity and consistency across the project.
- Adjusted related JavaScript and documentation to reflect the new class names.
* refactor(search): update class names for search components
- Renamed CSS classes from `search-wrapper`, `search-input`, `active`, `no-result`, `prefix`, `excerpt`, and `match` to `hextra-search-wrapper`, `hextra-search-input`, `hextra-search-active`, `hextra-search-no-result`, `hextra-search-prefix`, `hextra-search-excerpt`, and `hextra-search-match` for improved clarity and consistency.
- Updated JavaScript selectors to match the new class names, ensuring functionality remains intact.
- Adjusted HTML structure to reflect the new class naming convention.
* refactor(search): update search component class names for consistency
- Renamed existing search-related CSS classes to include the `hextra` prefix for improved clarity and consistency.
- Added optional nested classes for enhanced customization of the search UI, including titles, active states, and result snippets.
- Removed outdated breadcrumb section as no specific class is available.
* refactor(sidebar): rename sidebar classes for consistency
- Updated CSS and JavaScript to replace `sidebar-container` with `hextra-sidebar-container` and `sidebar-active-item` with `hextra-sidebar-active-item` for improved clarity and consistency across the project.
- Adjusted related documentation to reflect the new class names.
* refactor(language & theme): update class names for consistency
- Renamed language switcher and theme toggle classes to include the `hextra` prefix for improved clarity and consistency across the project.
- Updated related JavaScript selectors and documentation to reflect the new class names.
* refactor(css & html): rename classes for consistency and clarity
- Updated various CSS class names to include the `hextra` prefix, enhancing consistency across the project. This includes renaming classes such as `content` to `hextra-content`, `filename` to `hextra-code-filename`, and `steps` to `hextra-steps`.
- Adjusted related HTML and JavaScript to reflect the new class names, ensuring functionality and styling remain intact.
- Updated documentation to include the new class names for better clarity.
* refactor(language): update class names for language options
- Renamed the `language-options` class to `hextra-language-options` for consistency with the existing `hextra` prefix convention.
- Updated the corresponding HTML to reflect the new class name, ensuring clarity and uniformity across the project.
* refactor(css & html): rename classes for consistency and clarity
- Renamed CSS classes to include the `hextra` prefix, such as changing `subheading-anchor` to `hextra-subheading-anchor` and `footnotes` to `hextra-footnotes`, enhancing consistency across the project.
- Updated related HTML and documentation to reflect the new class names, ensuring clarity and uniformity.
* feat(typography): add styling for horizontal lines
- Introduced new styles for horizontal lines to enhance visual separation in content. The styles apply margin and border color adjustments, ensuring consistency with the overall design.
* feat(blog): add draft release announcement for Hextra v0.10.0
- Created a new markdown file for the draft release announcement of Hextra v0.10.0, including upgrade instructions and author details.
- The announcement is currently marked as a draft and may be updated before the official release.
* refactor(css & html): rename `hextra-content` class to `content` for consistency
- Updated the `hextra-content` class to simply `content` across various HTML files and CSS, enhancing clarity and consistency in the codebase.
- Adjusted the `package.json` script for the development server to include the `-F` flag for better functionality.
* refactor(typography & markdown): enhance table styling and markdown syntax
- Updated CSS for tables to improve styling, including adjustments to margins, borders, and text properties for better readability.
- Revised markdown documentation to standardize table formatting and improve clarity, including consistent syntax for headers and lists.
- Enhanced examples in the documentation to reflect the updated styling and ensure accurate representation of output.
* fix(blog): update text color for improved accessibility
- Modified the text color in the blog single layout to enhance readability in dark mode by adding a dark text color class.
- Ensured consistency in styling for better user experience across different themes.
* docs(blog): update draft release announcement for Hextra v0.10.0
- Revised the "What's New" section to include a TODO placeholder for future updates.
- Added a comprehensive migration guide detailing the CSS class prefix changes to enhance consistency and avoid conflicts.
- Updated the announcement to reflect the new class naming conventions for various components.
* chore: rebuild css
2025-08-13 22:55:38 +08:00
|
|
|
class="hextra-nav-container-blur hx:pointer-events-none hx:absolute hx:z-[-1] hx:h-full hx:w-full hx:bg-white hx:dark:bg-dark hx:shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)] hx:contrast-more:shadow-[0_0_0_1px_#000] hx:dark:shadow-[0_-1px_0_rgba(255,255,255,.1)_inset] hx:contrast-more:dark:shadow-[0_0_0_1px_#fff]"
|
2025-06-01 17:33:45 +01:00
|
|
|
></div>
|
2023-07-25 23:27:01 +01:00
|
|
|
|
2025-05-23 00:57:12 +01:00
|
|
|
<nav class="hextra-max-navbar-width hx:mx-auto hx:flex hx:items-center hx:justify-end hx:gap-2 hx:h-16 hx:px-6">
|
2025-07-21 15:43:21 -04:00
|
|
|
{{ partial "navbar-title.html" . }}
|
2023-07-25 23:27:01 +01:00
|
|
|
|
2023-08-04 01:11:31 +01:00
|
|
|
{{- $currentPage := . -}}
|
|
|
|
{{- range .Site.Menus.main -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
{{- if eq .Params.type "search" -}}
|
2023-08-14 21:56:26 +01:00
|
|
|
{{- partial "search.html" (dict "params" .Params) -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
{{- else -}}
|
2023-11-10 12:45:44 -05:00
|
|
|
{{- $link := .URL -}}
|
|
|
|
{{- $external := strings.HasPrefix $link "http" -}}
|
|
|
|
{{- with .PageRef -}}
|
|
|
|
{{- if hasPrefix . "/" -}}
|
|
|
|
{{- $link = relLangURL (strings.TrimPrefix "/" .) -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
|
2023-08-14 21:56:26 +01:00
|
|
|
{{/* Display icon menu item */}}
|
2023-08-06 15:23:37 +01:00
|
|
|
{{- if .Params.icon -}}
|
2024-11-01 18:12:14 +08:00
|
|
|
{{- $rel := cond (eq .Params.icon "mastodon") "noreferrer me" "noreferrer" }}
|
2025-03-29 12:51:42 +00:00
|
|
|
<a class="hx:p-2 hx:text-current" {{ if $external }}target="_blank" rel="{{ $rel }}"{{ end }} href="{{ $link }}" title="{{ or (T .Identifier) .Name | safeHTML }}">
|
2025-08-16 17:46:15 +02:00
|
|
|
{{- partial "utils/icon.html" (dict "name" .Params.icon "attributes" (printf "height=%d" $iconHeight)) -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
<span class="hx:sr-only">{{ or (T .Identifier) .Name | safeHTML }}</span>
|
2023-08-06 15:23:37 +01:00
|
|
|
</a>
|
2025-08-16 17:46:15 +02:00
|
|
|
{{- else if eq .Params.type "theme-toggle" -}}
|
2025-08-20 00:26:32 +02:00
|
|
|
{{- partial "theme-toggle.html" (dict "iconHeight" $iconHeight "hideLabel" (not .Params.label) "iconHeight" $iconHeight "location" "top" "class" "hx:p-2") -}}
|
2025-08-18 00:26:43 +02:00
|
|
|
{{- else if eq .Params.type "language-switch" -}}
|
|
|
|
{{- partial "language-switch" (dict "context" $page "grow" false "hideLabel" (not .Params.label) "iconName" (.Params.icon | default "translate") "iconHeight" $iconHeight "location" "top" "class" "hx:p-2") -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
{{- else -}}
|
2023-08-14 21:56:26 +01:00
|
|
|
{{- $active := or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .) -}}
|
2025-03-29 12:51:42 +00:00
|
|
|
{{- $activeClass := cond $active "hx:font-medium" "hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200" -}}
|
2025-06-01 17:33:45 +01:00
|
|
|
|
|
|
|
{{- if .HasChildren -}}
|
|
|
|
{{/* Dropdown menu for items with children */}}
|
|
|
|
<div class="hx:relative hx:hidden hx:md:inline-block">
|
|
|
|
<button
|
|
|
|
title="{{ or (T .Identifier) .Name | safeHTML }}"
|
|
|
|
data-state="closed"
|
|
|
|
class="hextra-nav-menu-toggle hx:cursor-pointer hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:whitespace-nowrap hx:p-2 hx:flex hx:items-center hx:gap-1 {{ $activeClass }}"
|
|
|
|
type="button"
|
|
|
|
aria-label="{{ or (T .Identifier) .Name | safeHTML }}"
|
|
|
|
>
|
|
|
|
<span class="hx:text-center">{{ or (T .Identifier) .Name | safeHTML }}</span>
|
|
|
|
{{- partial "utils/icon.html" (dict "name" "chevron-down" "attributes" "height=12 class=\"hx:transition-transform hx:duration-200 hx:ease-in-out\"") -}}
|
|
|
|
</button>
|
|
|
|
<ul
|
|
|
|
class="hextra-nav-menu-items hx:hidden hx:z-20 hx:max-h-64 hx:overflow-auto hx:rounded-md hx:ring-1 hx:ring-black/5 hx:bg-white hx:py-1 hx:text-sm hx:shadow-lg hx:dark:ring-white/20 hx:dark:bg-neutral-800"
|
|
|
|
style="min-width: 100px;"
|
|
|
|
>
|
|
|
|
{{ range .Children }}
|
|
|
|
{{- $link := .URL -}}
|
|
|
|
{{- $external := strings.HasPrefix $link "http" -}}
|
|
|
|
{{- with .PageRef -}}
|
|
|
|
{{- if hasPrefix . "/" -}}
|
|
|
|
{{- $link = relLangURL (strings.TrimPrefix "/" .) -}}
|
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
|
|
|
<li class="hextra-nav-menu-item hx:flex hx:flex-col">
|
|
|
|
<a
|
|
|
|
href="{{ $link }}"
|
|
|
|
{{ if $external }}target="_blank" rel="noreferrer"{{ end }}
|
|
|
|
class="hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200 hx:relative hx:cursor-pointer hx:whitespace-nowrap hx:py-1.5 hx:transition-colors hx:ltr:pl-3 hx:ltr:pr-9 hx:rtl:pr-3 hx:rtl:pl-9"
|
|
|
|
>
|
|
|
|
{{- or (T .Identifier) .Name | safeHTML -}}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
{{- end -}}
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
{{- else -}}
|
|
|
|
{{/* Regular menu item without children */}}
|
|
|
|
<a
|
|
|
|
title="{{ or (T .Identifier) .Name | safeHTML }}"
|
|
|
|
href="{{ $link }}"
|
|
|
|
{{ if $external }}target="_blank" rel="noreferrer"{{ end }}
|
|
|
|
class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-block {{ $activeClass }}"
|
|
|
|
>
|
|
|
|
<span class="hx:text-center">{{ or (T .Identifier) .Name | safeHTML }}</span>
|
|
|
|
</a>
|
|
|
|
{{- end -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
{{- end -}}
|
2023-08-14 21:56:26 +01:00
|
|
|
{{- end -}}
|
|
|
|
{{- end -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
|
|
|
|
|
refactor(css): add prefix to component classes for consistency (#744)
* refactor(navbar): add hextra prefix to navbar and hamburger menu classes
- Updated CSS class names from `nav-container` to `hextra-nav-container` and `hamburger-menu` to `hextra-hamburger-menu` for improved clarity and consistency across the project.
- Adjusted related JavaScript and documentation to reflect the new class names.
* refactor(search): update class names for search components
- Renamed CSS classes from `search-wrapper`, `search-input`, `active`, `no-result`, `prefix`, `excerpt`, and `match` to `hextra-search-wrapper`, `hextra-search-input`, `hextra-search-active`, `hextra-search-no-result`, `hextra-search-prefix`, `hextra-search-excerpt`, and `hextra-search-match` for improved clarity and consistency.
- Updated JavaScript selectors to match the new class names, ensuring functionality remains intact.
- Adjusted HTML structure to reflect the new class naming convention.
* refactor(search): update search component class names for consistency
- Renamed existing search-related CSS classes to include the `hextra` prefix for improved clarity and consistency.
- Added optional nested classes for enhanced customization of the search UI, including titles, active states, and result snippets.
- Removed outdated breadcrumb section as no specific class is available.
* refactor(sidebar): rename sidebar classes for consistency
- Updated CSS and JavaScript to replace `sidebar-container` with `hextra-sidebar-container` and `sidebar-active-item` with `hextra-sidebar-active-item` for improved clarity and consistency across the project.
- Adjusted related documentation to reflect the new class names.
* refactor(language & theme): update class names for consistency
- Renamed language switcher and theme toggle classes to include the `hextra` prefix for improved clarity and consistency across the project.
- Updated related JavaScript selectors and documentation to reflect the new class names.
* refactor(css & html): rename classes for consistency and clarity
- Updated various CSS class names to include the `hextra` prefix, enhancing consistency across the project. This includes renaming classes such as `content` to `hextra-content`, `filename` to `hextra-code-filename`, and `steps` to `hextra-steps`.
- Adjusted related HTML and JavaScript to reflect the new class names, ensuring functionality and styling remain intact.
- Updated documentation to include the new class names for better clarity.
* refactor(language): update class names for language options
- Renamed the `language-options` class to `hextra-language-options` for consistency with the existing `hextra` prefix convention.
- Updated the corresponding HTML to reflect the new class name, ensuring clarity and uniformity across the project.
* refactor(css & html): rename classes for consistency and clarity
- Renamed CSS classes to include the `hextra` prefix, such as changing `subheading-anchor` to `hextra-subheading-anchor` and `footnotes` to `hextra-footnotes`, enhancing consistency across the project.
- Updated related HTML and documentation to reflect the new class names, ensuring clarity and uniformity.
* feat(typography): add styling for horizontal lines
- Introduced new styles for horizontal lines to enhance visual separation in content. The styles apply margin and border color adjustments, ensuring consistency with the overall design.
* feat(blog): add draft release announcement for Hextra v0.10.0
- Created a new markdown file for the draft release announcement of Hextra v0.10.0, including upgrade instructions and author details.
- The announcement is currently marked as a draft and may be updated before the official release.
* refactor(css & html): rename `hextra-content` class to `content` for consistency
- Updated the `hextra-content` class to simply `content` across various HTML files and CSS, enhancing clarity and consistency in the codebase.
- Adjusted the `package.json` script for the development server to include the `-F` flag for better functionality.
* refactor(typography & markdown): enhance table styling and markdown syntax
- Updated CSS for tables to improve styling, including adjustments to margins, borders, and text properties for better readability.
- Revised markdown documentation to standardize table formatting and improve clarity, including consistent syntax for headers and lists.
- Enhanced examples in the documentation to reflect the updated styling and ensure accurate representation of output.
* fix(blog): update text color for improved accessibility
- Modified the text color in the blog single layout to enhance readability in dark mode by adding a dark text color class.
- Ensured consistency in styling for better user experience across different themes.
* docs(blog): update draft release announcement for Hextra v0.10.0
- Revised the "What's New" section to include a TODO placeholder for future updates.
- Added a comprehensive migration guide detailing the CSS class prefix changes to enhance consistency and avoid conflicts.
- Updated the announcement to reflect the new class naming conventions for various components.
* chore: rebuild css
2025-08-13 22:55:38 +08:00
|
|
|
<button type="button" aria-label="Menu" class="hextra-hamburger-menu hx:cursor-pointer hx:-mr-2 hx:rounded-sm hx:p-2 hx:active:bg-gray-400/20 hx:md:hidden">
|
2025-08-16 17:46:15 +02:00
|
|
|
{{- partial "utils/icon.html" (dict "name" "hamburger-menu" "attributes" (printf "height=%d" $iconHeight)) -}}
|
2023-08-06 15:23:37 +01:00
|
|
|
</button>
|
2023-07-25 23:27:01 +01:00
|
|
|
</nav>
|
|
|
|
</div>
|