Commit Graph

486 Commits

Author SHA1 Message Date
Xin
05e28a716d feat(navbar): enhance active link detection for multilingual section landing pages (#913)
- Added logic to normalize trailing slashes for section landing pages in multilingual sites, improving the accuracy of active link detection in the navbar.
- This enhancement ensures that the correct link is highlighted as active, providing a better user experience across different languages.
2026-01-24 12:27:37 +00:00
Xin
162f3a3fa7 fix(tabs): prevent markdown blockquote parsing when nested in steps (#912)
* fix(tabs): prevent markdown blockquote parsing when nested in steps

Consolidate HTML attributes onto single lines and add proper whitespace
trimming to prevent `>` characters on separate lines from being
interpreted as markdown blockquotes when tabs are nested inside the
steps shortcode.

Fixes #876

* chore: add comment explaining single-line HTML requirement
2026-01-24 12:00:47 +00:00
Xin
02cca4cd0b fix(layout): make content width respect page.width config (#911)
Fixes #886 - The content area in `<main>` was hardcoded to `hx:max-w-6xl`
(72rem), ignoring the `params.page.width` setting. Added a new CSS
variable `--hextra-max-content-width` that responds to the page width
config, so users can now get full-width or wide content as expected.
2026-01-24 00:02:50 +00:00
Xin
fa8f8554ea feat(context-menu): add page context menu for copy/view Markdown (#908)
* feat(context-menu): implement page context menu for copy Markdown

- Added a context menu to Markdown pages allowing users to copy content as Markdown or view it in a new tab.
- Introduced new layout files for Markdown rendering and updated existing layouts to include the context menu.
- Enhanced configuration options to enable or disable the context menu globally or per page.
- Updated internationalization files to support new context menu actions.
- Improved documentation to guide users on the new features and their usage.

* feat(context-menu): enhance dropdown positioning and responsiveness

- Updated the context menu dropdown to use responsive positioning classes for better alignment on different screen sizes.
- Added new CSS classes to ensure the dropdown appears correctly on smaller devices, improving user experience.

* refactor(context-menu): adjust button styles for improved layout and usability

- Modified button classes in the page context menu to enhance spacing and alignment.
- Reduced padding and gap sizes for a more compact design, improving overall user experience.

* refactor(styles): update CSS classes for improved layout and consistency

- Removed outdated ring classes and adjusted padding and border styles in various components for a cleaner design.
- Enhanced hover effects and gap sizes for better user experience across language switcher, navbar, and theme toggle elements.
- Standardized rounded styles to maintain visual consistency throughout the interface.

* feat(context-menu): add custom links to page context menu

- Introduced new configuration options for custom links in the page context menu, allowing users to open documentation in ChatGPT and Claude.
- Updated the context menu layout to include a separator and display the new links with appropriate styling.
- Enhanced the CSS classes for better visual integration with existing context menu elements.

* feat(icons): add new AI icons and update context menu links

- Introduced new icons for AI tools including ChatGPT, Claude, Gemini, and others in the icons.yaml file.
- Enhanced the page context menu in multiple languages to include links for opening documentation in ChatGPT and Claude, improving user accessibility to AI resources.
- Updated internationalization files to reflect new context menu options and additional copy functionalities.

* refactor(layouts): simplify page structure in glossary and section layouts

- Removed the conditional rendering of page links in the glossary and section layouts to streamline the markup.
- Adjusted the blog and docs list layouts to ensure consistent closing of HTML tags and improved formatting.

* feat(context-menu): add outbound icons to external links

Add arrow-up-right icons to "View as Markdown" and custom links
in the page context menu to indicate they open in new tabs.

* Revert "feat(context-menu): add outbound icons to external links"

This reverts commit 670175e200f091ed89b15bd16f44a585355db57d.

* chore: rebuild css

* chore: update stats json

* chore: rename project and update context menu structure

- Changed project name from "wizardly-wing" to "hextra" in package-lock.json.
- Refactored context menu structure in hugo.yaml to improve organization and consistency across multiple languages.
- Updated context menu links to ensure proper functionality and accessibility.

* feat(context-menu): enhance clipboard functionality and pre-fetching

- Implemented pre-fetching of markdown content for copy buttons to improve performance and avoid clipboard access issues in Safari.
- Updated click event handlers to utilize cached content for clipboard operations, with a fallback to fetch content if not pre-fetched.
- Added checks to ensure elements exist before performing actions, enhancing robustness of the context menu interactions.

* fix(context-menu): improve hover effects and border styles

- Enhanced the context menu's border styles with transition effects for better visual feedback on hover.
- Updated CSS classes to ensure consistent styling across different themes, improving user experience.

* feat(context-menu): add page context menu functionality across multiple languages

- Introduced a page context menu that allows users to copy content as Markdown or view the raw Markdown source, enhancing usability for documentation sites.
- Added configuration options to enable the context menu globally and control it on a per-page basis.
- Implemented support for custom links in the context menu, allowing integration with external services.
- Updated documentation in Persian, Japanese, Chinese, and English to reflect these new features.

* fix(icons): update SVG definitions for Gemini and add fill attribute

- Updated the SVG definition for the Gemini icon to include the 'fill' attribute for better rendering.
- Ensured consistency in the SVG structure for the Gemini icon while maintaining the existing definitions for ChatGPT and Claude.

* chore: rebuild css

* chore: remove Claude links from context menu in multiple languages

- Removed the "Open in Claude" option from the context menu for Persian, Japanese, and Simplified Chinese languages to streamline the user experience.

* fix(context-menu): update cursor styles for buttons in context menu

- Changed cursor style from default to pointer for buttons in the page context menu to enhance user interaction feedback.
2026-01-23 23:40:29 +00:00
Xin
e81447e7ae feat(image-zoom): add image zoom functionality and documentation (#907)
* feat(image-zoom): add image zoom functionality and documentation

- Introduced a new `imageZoom` parameter in the configuration to enable click-to-zoom for Markdown images.
- Updated the `render-image.html` layout to support zoom functionality by adding a `data-zoomable` attribute to images.
- Created a new `medium-zoom.html` script to handle the zoom effect, with options for CDN or local asset loading.
- Enhanced documentation in `configuration.md` and `markdown.md` to guide users on enabling and configuring image zoom.

* docs(image-zoom): add image zoom documentation in multiple languages

- Added sections for image zoom functionality in Persian, Japanese, and Simplified Chinese documentation.
- Included configuration examples for enabling and disabling image zoom in specific pages.
- Updated related documentation to ensure consistency across languages.
2026-01-20 22:55:41 +00:00
Xin
6a13f17326 fix(sidebar): update transform syntax for improved compatibility 2026-01-19 23:03:28 +00:00
Xin
8e1e446cb8 fix: migrate tabs shortcode to new standard syntax (#906)
* doc(tabs): update shortcode syntax to use new syntax

- Changed tab shortcode syntax from `items` to `name` for better clarity and consistency in multiple language documentation.
- Updated related examples in Persian, Japanese, and Simplified Chinese to reflect the new syntax.
- Adjusted the sidebar CSS to correct a z-index value for improved layout behavior on mobile devices.

* fix(sidebar, toc): update CSS classes for improved layout and text wrapping

- Adjusted the sidebar CSS class to use a new transform syntax for better compatibility.
- Updated the table of contents link class to ensure proper text wrapping behavior.

* chore: recompile css

* fix(css): update CSS classes for improved text wrapping

- Changed `break-words` to `wrap-break-word` in multiple CSS files to enhance text wrapping behavior.
- Adjusted the `.hextra-code-filename` and typography styles for better compatibility and consistency.
2026-01-19 22:50:49 +00:00
yuri
5028140432 feat(glossary): provide basic term glossary (#869)
* feat(glossary): provide basic term glossary

Enabled a site-wide terminology glossary.

* Added the `term` shortcode displaying term definition.
* Added the /glossary page showing all term definitions.
* Enabled a simplistic search of term definitions.

* refactor(glossary): update glossary page links and add callout for Hugo support

- Removed the glossary entry from the menu and adjusted weights for subsequent items.
- Added informational callouts in the glossary documentation for multiple languages, directing users to the Hugo Glossary Quick Reference.
- Updated links in the glossary documentation to point to the correct pages.

* fix(glossary): update links to glossary page format across multiple languages

- Changed links in the glossary documentation to use Hugo's relref format for consistency.
- Updated links in Persian, Japanese, English, and Simplified Chinese glossary pages.

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
Co-authored-by: Xin <xin@imfing.com>
2026-01-19 22:33:09 +00:00
Illia Volochii
66a9d98630 fix: respect search.enable in the sidebar (#904) 2026-01-19 22:25:42 +00:00
Illia Volochii
1e4338cd97 fix: respect the page parameter toc in the mobile dropdown (#905) 2026-01-19 22:21:41 +00:00
Xin
a9ef7ad57d fix(flexsearch): enhance match highlighting and safe DOM manipulation (#903)
- Replaced the highlightMatches function with appendHighlightedText to improve match highlighting using safe text nodes.
- Updated DOM manipulation for search results to create elements directly instead of using innerHTML, enhancing security and performance.
- Ensured consistent handling of empty text and query cases in the new highlighting function.
2026-01-18 19:59:09 +00:00
Xin
2b00f92a42 chore: update dependencies in package.json and package-lock.json
- Upgraded @tailwindcss/postcss, prettier, and tailwindcss to version 4.1.18 and 3.8.0 respectively.
- Updated @jridgewell/gen-mapping and other related packages to their latest versions.
- Removed deprecated entries and ensured consistency across package versions.
2026-01-18 10:58:06 +00:00
Antonin P
c35d7b3a9e fix(card): ensure subtitle stays at bottom by wrapping title/subtitle… (#877)
* fix(card): ensure subtitle stays at bottom by wrapping title/subtitle in container

* Update layouts/_partials/shortcodes/card.html

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-17 12:14:55 +00:00
Xin
447acb7df3 fix(og-image): handle leading slashes in image paths for subpath deployments (#901)
* fix(og-image): handle leading slashes in image paths for subpath deployments

Fix Open Graph image paths not working correctly when deploying to subpaths
(e.g., https://example.com/docs/). The issue occurred when image paths with
leading slashes were specified in configuration, causing the subpath to be
ignored.

The fix follows the established pattern used throughout the theme by stripping
leading slashes before applying relURL, ensuring paths respect the baseURL
subpath configuration.

- Update opengraph.html to process image paths consistently
- Update configuration examples to remove leading slashes
- Add investigation document explaining the issue and fix

* chore: remove issue summary
2026-01-17 12:14:15 +00:00
Mark Alexander
c4a39472eb fix: work around flexsearch returning fewer than expected result pages (#847)
Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2026-01-06 16:28:18 +00:00
Torbjørn Pedersen
1391ebe04b feat: support page bundle images in OpenGraph metadata (#892)
* Support page bundle images in OpenGraph metadata

* Fix file permissions

---------

Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2026-01-04 17:25:53 +00:00
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
yuri
9466af337f chore(docs): link KaTeX (#860) 2025-11-28 01:04:09 +00:00
PrintN
0e8982876a chore: Update Beginner Privacy showcase image and add PrintN website (#859) 2025-11-28 01:03:00 +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
Bubbler
bfeae19076 docs(details): change details shortcode calls to angle brackets (#855)
Co-authored-by: Xin <5097752+imfing@users.noreply.github.com>
2025-10-12 23:07:24 +01:00
Paul Marrapese
b7f4bffce6 feat(shortcode): added markdown attribute support for headers (#851)
docs: added "no-step-marker" example for steps
2025-10-11 23:13:04 +01:00
Kowyo
708358de80 fix: enhance table readability (#826)
* feat: enhance table readability

* use v0.9.0 table style

* Update table styles

---------

Co-authored-by: Xin <xin@imfing.com>
2025-09-15 21:59:05 +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
a03dbf463f fix(docs): menu main duplicate field (#837) 2025-09-15 21:23: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
Xin
1b536e27a5 chore(build): update MAIN_VERSION to v0.11.1 and change source directory to docs 2025-09-06 14:03:29 +01:00
Xin
0e919e77f8 fix(build): update version source directory for v0.10.2 to exampleSite 2025-09-06 11:17:38 +00:00
Xin
83f3b5052e chore(docs): rename exampleSite to docs and create examples (#813)
* chore(docs): rename `exampleSite` to `docs` and create `examples`

* chore(build): update build script to support new version format and source directories; add v0.10 to documentation menu
2025-09-06 12:06:26 +01:00
Kowyo
f8eae96c11 docs: update file paths for hugo new template system (#821) 2025-09-04 19:17:28 +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
cc5884dd2a fix(banner): update link formats (#816)
* fix(banner): update link formats

* fix(banner): correct link format in localized messages for v0.11 announcement
2025-09-02 23:54:40 +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
Xin
5846274db7 chore: update thumbnail image tn.jpg 2025-08-30 14:05:31 +01:00
Xin
4635bdc846 chore: update main version to v0.11.0 in build script 2025-08-30 13:53:52 +01:00
Xin
6d0e59b16f chore: release blog for Hextra v0.11 (#806)
* feat: release Hextra v0.11 with new features and improvements

- Updated banner key to 'announcement-v0.11' with a new message.
- Added new padding option 'hx:px-8' in hugo_stats.json.
- Introduced new blog post for Hextra v0.11 detailing UX enhancements, new components, and stability fixes.
- Added translations for the new blog post in French, Japanese, and Simplified Chinese.
- Updated getting started documentation to include instructions for using the development branch.
- Removed outdated banner HTML for v0.10.

* feat: update language banners for Hextra v0.11 release

- Added localized banner messages for Persian, Japanese, and Simplified Chinese.
- Updated the main announcement message format in the configuration file.

* Update exampleSite/content/blog/v0.11.md

Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>

* Update exampleSite/content/blog/v0.11.md

Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>

* Update blog post for Hextra v0.11 release

- Refined upgrade guide and removed unnecessary breaking change note.
- Enhanced descriptions for new features including the top banner, callouts, and analytics configuration.
- Improved clarity in code examples and added links to documentation for new components.
- Updated navbar enhancements and breadcrumbs enablement instructions.
- Fixed formatting inconsistencies and improved overall readability.

* Add blog post for Hextra v0.11 in Persian, Japanese, and Simplified Chinese

- Introduced new features including a site-wide top banner, redesigned callouts, and analytics support for Umami and Matomo.
- Enhanced navigation with icon support and improved layout.
- Added Asciinema shortcode for terminal recordings and external link decoration options.
- Updated upgrade guide and documentation for new components.
- Included stability fixes and quality of life improvements.

---------

Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2025-08-30 13:48:04 +01:00
Ludovic Fernandez
3abcde4f8e fix: move dir attribute to :root (#805) 2025-08-30 09:07:09 +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
Xin
f9a94f02a6 fix(typography): add styles for task lists with checkboxes and update documentation (#796)
* fix(typography): add styles for task lists with checkboxes and update documentation

* chore: run task css

* feat(docs): add task lists to markdown guides in Persian, Japanese, and Simplified Chinese
2025-08-26 20:28:29 +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
a19de798b6 feat(links): add an option for external link decoration (#780)
* chore: add icons

* feat: add option to flag outbound links

* chore: generate

* docs: add configuration

* chore: use with the example site

* chore: use one icon with rotation
2025-08-24 12:57:07 +01:00