Commit Graph

48 Commits

Author SHA1 Message Date
Xin
a128fabaf1 feat: add optional alt parameter to card shortcode (#899)
Add support for custom alt text on card images to improve accessibility.
The alt parameter is optional and defaults to the card title if not provided,
maintaining backward compatibility with existing implementations.

Fixes #896
2026-01-04 17:23:33 +00:00
Keith Stockdale
3551a56b8c feat: support GoatCounter analytics (#814)
* feat: support GoatCounter analytics

* docs: add docs for GoatCounter analytics

refactor: move analytics documentation into its own section since there are now 4 supported analytics solutions

* fix: addressing issues raised in PR

* refactor: simplifying goat counter setting logic.
refactor: simplify error handling with goat counter

* fix: fixing goat counter erroring when a code is provided

* fix: Applying suggested fixes

* Update layouts/_partials/components/analytics/goat-counter.html

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-10-13 22:50:19 +01:00
ghac101
8699deb1dd fix(analytics): change default umami analytics file to script.js (#835)
Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-09-15 21:28:27 +01:00
Ludovic Fernandez
1c06ae5580 chore(scripts): generic way to build scripts (#829)
* chore: move core scripts

* chore: extract head scripts
2025-09-11 20:29:18 +01:00
Ludovic Fernandez
ccb63d60f1 feat(tabs): revamp tabs (#815) 2025-09-10 23:54:27 +01:00
Keith Stockdale
3bc454bbf6 feat: support hiding the main sidebar in desktop site (#778)
* feat: Remove the main sidebar entirely to free up more space for the main content of the page

* fix: ensure that the footer switches are still visible when the main sidebar has been disabled

* refactor: Repurpose Params.sidebar.hide to disable the main sidebar and disable the placeholder rather than adding a new front matter parameter

* fix: change wording from "disable" to "hide" in the documentation for hiding the sidebar

* fix: using incorrect hidden class in sidebar.html broke mobile navigation. Fixed this

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-09-10 22:45:12 +01:00
Ludovic Fernandez
ec97808b69 feat(opengraph): update the partial (#819)
* chore: update opengraph partial

* docs: improve Open Grapth section
2025-09-03 21:46:30 +01:00
Ludovic Fernandez
334158af7a chore: replace .Scratch with .Store (#818) 2025-09-03 15:37:18 +01:00
Ludovic Fernandez
184ee25011 fix(analytics): Matomo analytics (#817)
* fix: Matomo analytics

* chore: use with

* Revert "chore: use with"

This reverts commit 1d86e6fa0f7efa992a25f792c0ed5b9e76eeafa4.

---------

Co-authored-by: Xin <xin@imfing.com>
2025-09-03 10:53:27 +01:00
Xin
493cfba523 fix(tags): update tag link to use the correct tag title instead of page title (#812) 2025-08-31 12:47:52 +01:00
Ludovic Fernandez
82e25c0b0d fix(navbar): menu positions (#804)
* fix: menu positions

* refactor: factorize menu management and handle window resize

* chore: the placement is better with +4 then +10

* chore: the placement is better with -10 than -15
2025-08-29 23:09:23 +01:00
Keith Stockdale
bbffff1f52 feat: support breadcrumbs for single pages that are neither docs or blogs (#743)
* feat: support breadcrumbs for single pages that are neither docs or blogs.

* feat: support enabling breadcrumbs across different content types other than docs and blog

docs: added docs and examples for enabling breadcrumbs for specific content types

* feat: breadcrumbs being enabled is fully driven by the `breadcrumbs` front matter field.

docs: updated docs to reflect that there is no site parameter driving breadcrumbs

feat: enabled breadcrumbs for lists as well as singles for uniformity

* Removing _partials/utils/default-breadcrumbs-enabled.html in favour of extra parameterization of _partials/breadcrumb.html

* fix: change breadcrumbs parameter from `enabledByDefault` to `enable` to remain consistent with the rest of the theme

* Update layouts/_partials/breadcrumb.html

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-26 20:46:51 +01:00
Ludovic Fernandez
22f81e2470 feat(card): add tagIcon and tagBorder options (#791) 2025-08-25 16:49:06 +01:00
Ludovic Fernandez
c149af0f74 feat(analytics): add Umami and Matomo (#784) 2025-08-25 12:01:10 +01:00
Lamber
524af14bd1 feat(shortcode): add shortcode for asciinema (#779)
* Add asciinema shortcode and usage examples

* Add asciinema shortcode

* Modify

* Modify

* Modify

* Modify

* Modify

* Remove old blog post and move content to dedicated documentation

* Add remote cast file support

* Fix remote cast file support

* Modify asciinema guide

* Add asciinema controls and idleTimeLimit

* fix the play button position issue and update some details

* Remove forced /casts/ prefix, implement flexible file lookup
2025-08-25 08:50:53 +01:00
Ludovic Fernandez
fee0481a6c feat(navbar): navbar link icon item (#781)
* chore: extract link code to a partial

* feat(navbar): item icon

* chore: generate

* docs: add configuration

* review

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>

* chore: generate

* chore: add examples

* chore: showcase

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-24 22:45:10 +01:00
Ludovic Fernandez
546bcc2e26 fix(giscus): theme and language (#783)
* fix(giscuss): system theme

* fix(giscuss): language

* fix(giscuss): theme switching

* chore: remove confusing comment

* fix(giscuss): use a uniq ID

* chore: remove useless function

* chore: use extra language code

* chore: add comment about hash

* Update layouts/_partials/components/giscus.html

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-24 22:06:14 +01:00
Ludovic Fernandez
f297d24189 feat(banner): add top banner (#777)
* feat: add top banner

* chore: use inside the example site

* chore: generate

* fix: banner with the burger navbar

* fix: compute the banner height to allow mutliple lines

* chore: better p style
2025-08-23 23:46:29 +01:00
Ludovic Fernandez
22c1a4f9df feat(badges): colors and border (#774)
* feat(badges): add more colors and allow to disable the border

* feat(badges): more colors

* chore: generate

* docs: add Others inside the sidebar

* chore: i18n

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-23 14:42:23 +01:00
Ludovic Fernandez
5b6f4218be fix(language-switch): manage icon menu item after the language switcher (#772)
* fix(language-switch): manage icon menu item after the language switcher

* Just for the demo will be reverted/removed when the PR will be approved

* chore: add a warning when an icon menu has no URL

* chore: trim the comment

* fix: comment

* Revert "Just for the demo will be reverted/removed when the PR will be approved"

This reverts commit 09cc9fe393b1535973cba36fbbbc27945c23b07d.
2025-08-21 23:32:20 +01:00
Ludovic Fernandez
f4d75a4e5b feat(callout): revamp of the callouts (#767)
* feat(callout): revamp of the callouts

* fix: doc

* chore: refactor gh alert

* feat: same colors on callouts and gh alerts

* docs: more relevant examples

* docs: i18n

* docs: update existing callouts
2025-08-21 23:31:16 +01:00
Ludovic Fernandez
201ce3f763 fix(theme-toggle): quick flash (light/dark) (#768)
* fix(theme-toggle): quick flash (light/dark)

* chore: simplify

* chore: simplify

* chore: simplify
2025-08-21 00:33:24 +01:00
Ludovic Fernandez
18a9335d4b feat: add 'system' inside the theme toggle (#766)
* feat: add 'system' inside the theme toggle

* chore: generate hugo_stats.json

* fix: missing css

* chore: reorganize code

* feat: menu

* chore: simplify

* chore: some i18n

* review

* fix: remove replace
2025-08-19 23:26:32 +01:00
Ludovic Fernandez
363b1e50ff feat(navbar): language switcher (#760)
* feat(navbar): language switcher

* docs: add language-switch

* chore: just for the demo

* fix: drop conflicting CSS

* fix: use constant

* fix: pre-existing bug with rtl on mobile

* docs: add comment to explain the algo

* chore: more readable algo

* review

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>

* feat: different icons

* feat: icon as param

* fix: inconsitency with rtl

* fix: render inside the sidebar

* chore: remove the demo

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-17 23:26:43 +01:00
Ludovic Fernandez
b2ff662c8e chore: simplify style definition for badge and callout (#763) 2025-08-17 18:44:02 +01:00
Ludovic Fernandez
48bae073cb fix(search): search input and results outline (#761) 2025-08-17 14:24:15 +01:00
Ludovic Fernandez
6613f94b75 feat(navbar): toggle theme inside navbar (#759)
* feat(theme-toggle): toggle inside navbar

* chore: used partial parameters

* chore: create a constant for icons height inside navbar

* feat: better style integration

* review: invert enable label option

* review: change class value

* review

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>

* docs: theme toggle

* docs: translations

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-08-16 16:46:15 +01:00
Ludovic Fernandez
880084b091 chore: remove unused variables (#758) 2025-08-16 10:17:01 +01:00
Xin
eca7665571 fix(page-width): add back page width override via css variable (#748)
* fix(page-width): add back page width override via css variable

* refactor(css): update CSS variable references for site parameters
2025-08-14 23:12:23 +08:00
Xin
4d861d7175 fix(katex): fall back to cdn when neither base or css is set 2025-08-14 17:10:49 +08:00
Xin
9f70e8a87b refactor(mermaid): enhance Mermaid JS loading logic for flexibility (#745)
* refactor(mermaid): enhance Mermaid JS loading logic for flexibility

- Updated the Mermaid JS loader to support configurable remote or local asset loading based on site parameters.
- Improved error handling for asset retrieval and added comments for clarity on behavior based on different configurations.
- Ensured that the default behavior falls back to a CDN if no base is provided, enhancing usability and maintainability.

* chore: clean up comments

* fix: comment typo
2025-08-14 00:00:03 +08:00
Xin
6823cc1fe8 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
Xin
9a20f07d4e feat(math): support local katex assets and improve docs (#742)
* refactor(math): update LaTeX guide and enhance KaTeX integration

- Revised the LaTeX documentation for clarity and improved structure, changing section titles and descriptions for better understanding.
- Added support for chemistry expressions using the mhchem extension.
- Introduced a new KaTeX CSS loader partial to streamline the integration of KaTeX, allowing for configurable remote or local asset loading.
- Updated the head partial to utilize the new KaTeX loader, enhancing the flexibility of math rendering options.

* refactor(mathjax): simplify MathJax script URL configuration

- Removed the dynamic version assignment for MathJax and set a fixed version in the script URL for consistency and clarity.

* docs(latex): enhance LaTeX guide and clarify chemistry expressions

- Updated section titles for better clarity, changing "Supported Functions" to "Chemistry Expressions."
- Improved description of the mhchem extension for rendering chemistry equations.
- Removed redundant instructions regarding the passthrough extension in Hugo.
- Corrected minor typographical errors in references to MathJax.
2025-08-13 15:14:46 +08:00
Ludovic Fernandez
b6864a0c19 fix(search): unescape title (#741) 2025-08-12 20:02:35 +08:00
Ludovic Fernandez
532cbcce10 feat: search in all headings (#740) 2025-08-12 08:52:21 +08:00
Xin
30866e328c chore: enhance tags appearance in toc and minor updates (#739)
* chore: remove standard development mode command from CLAUDE.md

* docs(toc): add TOC scroll functionality documentation

- Added detailed comments to toc-scroll.js explaining the purpose and functionality of the TOC scroll spy feature.
- Clarified the requirements for proper operation, including the need for a .hextra-toc element and matching heading IDs.

* refactor(fragments): enhance fragment processing and documentation

- Improved the fragments.html partial to better handle page content splitting into searchable fragments based on headings.
- Added comprehensive documentation within the file, detailing parameters, return values, and examples for clarity.
- Updated content handling to ensure whitespace is trimmed

* refactor(tags): enhance tag rendering and styling in toc

- Updated the tags.html partial to utilize a context variable for improved accessibility.
- Enhanced the styling of tag links for better visual consistency across different themes.
- Modified toc.html and list.html to pass the context to the tags partial, ensuring consistent rendering.

* chore: run `task css`
2025-08-11 17:36:37 +08:00
Xin
0bb59d6f49 feat(toc): add Table of Contents scroll highlighting (#738)
* feat(toc): add Table of Contents scroll highlighting

- Introduced a new toc.css file for styling the Table of Contents with active link highlighting.
- Implemented toc-scroll.js to manage scroll behavior and link activation based on viewport visibility.
- Updated core.html to include the new JavaScript file and ensure proper loading of the Table of Contents functionality.

* chore: lower root heading font weight for TOC

* chore: run `task css`

* chore: update dependencies in package.json and package-lock.json to version 4.1.11 for @tailwindcss/postcss and tailwindcss, and update @jridgewell packages to latest versions
2025-08-11 16:04:53 +08:00
Ludovic Fernandez
025dd1f211 fix: search results linking to wrong spot on page (#737) 2025-08-11 14:23:30 +08:00
Xin
096f0d9c22 fix(favicon): dynamic favicon switching based on color scheme in js (#735)
* fix(favicon): dynamic favicon switching based on color scheme in js

* refactor(favicon): simplify favicon logic and ensure dynamic switching based on color scheme

* docs(favicon): enhance favicon setup instructions with dark mode support and adaptive SVG guidance
2025-08-10 23:04:19 +08:00
lzmyhzy
ea17ae6cbd fix: giscus theme will be switched to dark when no 'color-theme' field (#723) 2025-08-06 09:01:00 +09:00
Xin
46290e10e7 feat(pagination): add blog pagination component (#725)
* feat(pagination): add blog pagination component

- Introduced a new blog pagination component for improved navigation on list pages.
- Updated the blog list layout to utilize pagination, allowing for better content organization.
- Added a new parameter for pagination size in the configuration file.

* chore: increase pager size for blog
2025-07-24 22:26:17 +01:00
Floren Munteanu
c9795867c4 refactor: extract navbar title as individual partial component (#718)
* feat: navbar title

* fix: navbar title

---------

Co-authored-by: Floren Munteanu <19806136+fmunteanu@users.noreply.github.com>
2025-07-21 20:43:21 +01:00
Xin
7031718449 feat(math): add optional MathJax support (#707)
* feat: add MathJax option

* docs: move math engine note

* refactor: update LaTeX documentation and improve MathJax integration

- Adjusted LaTeX documentation for clarity and formatting.
- Enhanced MathJax configuration in the templates to support both KaTeX and MathJax rendering.
- Removed deprecated comments and streamlined the script loading process for MathJax.
- Updated the passthrough extension settings in the Hugo configuration for better compatibility with LaTeX math expressions.

* docs: simplify LaTeX documentation and clarify configuration steps

- Updated LaTeX documentation to reflect that KaTeX is enabled by default, removing the need for manual activation.
- Added examples for using LaTeX math expressions and clarified the configuration for the passthrough extension in Hugo.
- Enhanced MathJax section to emphasize its use as an alternative rendering engine.
2025-06-14 14:36:10 +01:00
yuri
e22b8d5c0e feat(tags): improve usability of tags (#698)
* feat(tags): improve usability of tags

* Tags can be shown also at docs
* Documented tag-related config flags
* Added example tags to the site
* Made rendered tags active

* Move tags listing to ToC

* Hide tags section on no tags
2025-06-13 22:09:05 +01:00
Andreas Deininger
b43870a538 fix: wrong SRI hash for katex.css (#702)
* Correct URL given in 'dev.toml'

* stylesheet 'katex.css': fix SRI hash
2025-06-10 23:48:03 +01:00
hobobandy
b1d40c4a2d fix: spacing between title and site title (#704) 2025-06-07 14:31:25 +01:00
Xin
c24d55ee40 feat: child menu support in navbar (#695)
* feat: implement child menu support in main navbar

- Added a new JavaScript file for handling dropdown functionality in the navbar.
- Implemented event listeners for toggling dropdowns, closing them on outside clicks, and dismissing with the Escape key.
- Updated navbar HTML to support dropdown items with children, enhancing the navigation experience.
- Adjusted core script imports to include the new dropdown functionality.

* chore: update menu identifiers and add missing translations for development versions

* chore: update hugo stats

* chore: update script name

* chore: update menu item names to include arrows for external links
2025-06-01 17:33:45 +01:00
yuri
a44de285b2 chore: adapt theme to new template system (#696)
* Adapted theme's layout to [Hugo v0.146.0](https://gohugo.io/templates/new-templatesystem-overview/)
* Bumped minimal Hugo version to v0.146.0
2025-06-01 00:25:39 +01:00