-
#1164
87e7042Thanks @mikebarkmin! - Update all dependencies to their latest versionsNotable upgrades: Shiki 4, Mermaid 11.16, three.js 0.185, p5 2.3, Excalidraw 0.18.1, React 19.2, Express 5, TypeScript 6, ESLint 10 and Vite 8. Rendered output is unchanged.
hyperbook-studio now requires VS Code 1.125.0 or newer.
-
#1159
9bdb389Thanks @mikebarkmin! - Order pages and sections together byindex. Pages were always rendered before the sections of the same level, so a page could not sit after or between them. Theindexof a page and theindexof a section are now one order, and a section that ends up between two pages is rendered between them.The reading order follows the navigation, so the previous and next buttons, the breadcrumb and
::pagelistagree with the sidebar.A page or a section without an
indexkeeps its old place: pages come before sections, and a page wins a tie against a section. A book that gives its sections anindexbut leaves it off a page will see that page move behind those sections. Give the page anindexto place it.
-
8c766ecThanks @mikebarkmin! - dev: The dev server now tracks which files each page inlines, so a change rebuilds exactly the pages that used it.Editing a file referenced by a directive's
src=attribute previously reloaded the browser without rebuilding anything, so the page came back showing the old content — and for a file underbook/nothing happened at all. Snippets and templates are now mapped to the pages that use them instead of forcing a full rebuild of the book.Two related fixes: renaming a page or changing its order rebuilds every page, because the navigation is baked into all of them and the rest were left showing the old title; and the search index is regenerated after an incremental build instead of going stale until the next full build.
d474152Thanks @mikebarkmin! - Add blockflow element
28097dfThanks @mikebarkmin! - Convert navigation bug test to proper Vitest test suite. The standalone test-navigation-bug.js has been converted to a comprehensive test file (navigation-bug.test.ts) that validates navigation behavior with proper assertions and integration with the existing test infrastructure.
f8d67dfThanks @mikebarkmin! - Fix empty pages show up in prev and next navigation
a51613fThanks @mikebarkmin! - Add newnavigationfield for pages and sections, and improve styling coherence.
8f3efe1Thanks @mikebarkmin! - Addtitleas an alternative tonamein page and section frontmatter for better compatibility with other documentation tools like MkDocs. When both are present,nametakes precedence.
db806c9Thanks @mikebarkmin! - Fix missing handlebars helpers (likedateformat) in pagelist custom snippets. The basic helpers are now properly registered when using custom snippet templates with the pagelist directive.
-
285212aThanks @mikebarkmin! - Add new Handlebars helpers for snippets and templates.New Helpers:
dateformat: Format dates with customizable patterns (YYYY-MM-DD, DD.MM.YYYY HH:mm:ss, etc.)truncate: Truncate strings by character limit with configurable suffixtruncateWords: Truncate strings by word count with configurable suffix
b0ebc52Thanks @mikebarkmin! - Another fix for the index.md in directory problem
c5ae1ccThanks @mikebarkmin! - Fix path resolving when having an index.md in a directory.
159473aThanks @mikebarkmin! - Support relative links in next and prev of the frontmatter
- #1011
f6f1b25Thanks @copilot-swe-agent! - Vastly improved learningmap element
7ef905dThanks @mikebarkmin! - Add c and l variables to snippets to allow for dynamic amount of colons.
c18ba75Thanks @mikebarkmin! - Fix colons in headings not working. Fix spaces in filenames causing trouble. Add option to disable code highlighting and copy button for inline code blocks.
91587c4Thanks @mikebarkmin! - Fix build crashes if index.md is empty
e93c807Thanks @mikebarkmin! - Fix sections need a index.md
-
b914f85Thanks @mikebarkmin! - You can now collocate images, videos, and other additional files directly within your book directory. This means you can reference media using relative paths, making it much easier to:- Organize your content intuitively
- Collaborate with others
- Share or version-control your Hyperbook with media included
Example usage:
 
This improvement enables a more seamless and portable authoring experience—no more managing separate static folders or absolute paths.
b4b9593Thanks @mikebarkmin! - update dependencies
9671fffThanks @mikebarkmin! - The development server does not crash anymore, when an error occurs.
e1720b5Thanks @mikebarkmin! - Update dependencies
69328bbThanks @mikebarkmin! - Make hyperbook config accessible in snippets
e9bfec9Thanks @mikebarkmin! - Fix parsing of snippets parameters.
27d2f47Thanks @mikebarkmin! - Improve concat function to accept many strings
d9f0b71Thanks @mikebarkmin! - Allow permaids to be set in the frontmatter of a page. The permaids can be use in links and in the frontmatter for next and prev. See the page configuration documentation for details. All pages with permaids are available at /@/[permaid].
2074212Thanks @mikebarkmin! - Sometimes snippets were not resolved correctly. This should fix the issue.
-
#882
26ae87eThanks @mikebarkmin! - The release is a complete rewrite of the underlying process to generate the HTML files. React was removed from the project and replaced with remark plugins. This improves build times and give us more control over the whole process. For example there is no need anymore for runningnpx hyperbook setup.I also added a new pagelist directive, which can be used to list pages based on user-defined criteria. This directive also replaces the included glossary page. Therefore, you need to create on yourself. This can be easily done by creating a page
glossary.mdwith the following content:--- name: Glossary --- ::pagelist{format="glossary" source="href(/glossary/)"}
Additionally, I added the ability to use custom JavaScript and CSS-files - see the documentation under Advanced Features - in addition to using HTML in your hyperbook, when the
allowDangerousHtmloption is enabled in your config.I also improved the appearance of custom links, by moving them to the footer on mobile devices.
2bfe682Thanks @mikebarkmin! - update packages
c500196Thanks @mikebarkmin! - Add elements to vfile. In the future this can be used only include elements which are needed for a given page.
4a3a21fThanks @mikebarkmin! - update dependencies
90c99bdThanks @mikebarkmin! - Add prev and next properties to pages. This will allow you to set the prev and next buttons to an individual page by using the absolute path to the page.
d723aafThanks @mikebarkmin! - Fix fs module for windows. This should also fix the vscode extension on windows.
5792288Thanks @mikebarkmin! - fix snippets not respecting whitespace
cfdb112Thanks @mikebarkmin! - Fix drawer in hyperbook-studio
2e67754Thanks @mikebarkmin! - Disable caching, which caused problems. Enable the dev server to serve libraries aswell as individual book.
9bb80bbThanks @mikebarkmin! - Move to pure ESM packages
ff0e867Thanks @mikebarkmin! - Improve the build of hyperbooks and the generation of the toc.
832678bThanks @mikebarkmin! - update packages
511f497Thanks @mikebarkmin! - Add single use templates. Every page can now be a template, where you can use all the helper functions defined in the snippets documentation (https://hyperbook.openpatch.org/elements/snippets#helpers). You only have to use the file extension.md.hbs.
13bfad5Thanks @mikebarkmin! - Fix .md.hbs not in allowed file extensions.
cf58c13Thanks @mikebarkmin! - update dependencies
e581f06Thanks @mikebarkmin! - Fix bug index not found when no other sibling directories are present.
17ad5ebThanks @mikebarkmin! - Fix extension did not find the .git folder.
c6414c8Thanks @mikebarkmin! - When getting the markdown content of a vfile, an empty string will be returned and a waring will be display on the console. This should lead to a better experience, when developing a hyperbook.
6fa6ebaThanks @mikebarkmin! - Fix rbase and rfile including .git in the path, which lead to files not found.
ff21264Thanks @mikebarkmin! - Add helpers for accesing the root of your project. rbase64 and rfile work find you .git directory and work from there. In contrast base64 and file work relative to your hyperbook. So rbase64 and rfile are helpful, when working in a mono-repo.
6e3fcd5Thanks @mikebarkmin! - Remove console.log statement
1614352Thanks @mikebarkmin! - Fix hyperbook not buidling when an unsupported file is present in the book or glossary folder.
-
e4712b2Thanks @mikebarkmin! - Fix bug when no repo is defined. -
cad9962Thanks @mikebarkmin! - fix pages not in navigation
56a42f6Thanks @mikebarkmin! - Add ability to extract lines based on a regex.
b134e02Thanks @mikebarkmin! - Add more helpers for templates and snippets. See documentation of snippets for more details.
-
0c58ad8Thanks @mikebarkmin! - Implement use a virtual file system. This allow for an abstraction layer, which enables us to implement a template system. -
0c58ad8Thanks @mikebarkmin! - Add templates to Hyperbook. Templates allow for resuing a layout. See the documentation for more details.
9298af0Thanks @mikebarkmin! - Add the snippet element. Snippets are helpful for making the handling of repeated blocks easiert. For example you can define a protect-block, which uses the same password across your hyperbook in a snippet. If you want to change the password, you can just change it in the snippet. See the documentation for snippets to get a more in detail view on snippets.
104f2deThanks @mikebarkmin! - Repo can now be configured. So you can customize the label of the edit button on a page and you can insert the current path anywhere in the link, by using "%path%" placeholder.
40ec0fdThanks @mikebarkmin! - Empty section index pages now correctly link to the first non-empty subpage.
af4964bThanks @mikebarkmin! - Fix hyperbook not building when glossary folder is not present.
f906c50Thanks @mikebarkmin! - We fixed links to pages on a glossary page are not relative to book, but relative to the root of the hyperbook, which caused unresolved links.
- #392
8d53899Thanks @mikebarkmin! - Extract core funcationality from platfrom web into separate packages. This helps us to support more platforms.