Skip to content

Version Packages - #1154

Merged
mikebarkmin merged 1 commit into
mainfrom
changeset-release/main
Aug 7, 2026
Merged

Version Packages#1154
mikebarkmin merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

hyperbook@0.101.0

Minor Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Rework how bookmarks store their label, so bookmarks show what the page shows.

    A bookmark label used to be baked into an onclick attribute of the bookmark
    button and rendered with innerHTML. Labels are now read from the rendered
    heading when a bookmark is saved, and stored as parts instead of markup:

    [{ text: "Getting started " }, { text: "🐧", emoji: "1f427" }];

    The bookmark list builds its entries from those parts with the DOM, so nothing
    that was stored is parsed as HTML, and an emoji that is rendered as an image
    stays an image in the bookmark list. Emojis are stored by id, never by URL, so
    bookmarks survive a change of the basePath.

    This also fixes bookmarking a heading that contains a quote or a backslash.
    Those characters ended up inside a JavaScript string in the onclick
    attribute and made the button throw a syntax error.

    The bookmark indicator is no longer the 🔖 emoji. Both the button on a heading
    and the marker in the bookmark list are drawn from the stylesheet with a mask,
    so the control looks the same on every platform, takes the color of the
    heading it belongs to in light and dark mode, and does not change when the
    emoji style changes. A bookmarked heading now shows a filled icon instead of only a less
    transparent one.

    Breaking:

    • hyperbook.ui.toggleBookmark(key, label) no longer takes a label:
      hyperbook.ui.toggleBookmark(key). The label comes from the heading.
    • Bookmark buttons no longer carry an inline onclick. They are handled by a
      delegated listener and carry data-key, data-label, aria-label and
      aria-pressed.
    • Bookmark buttons are empty. The icon comes from .bookmark in the
      stylesheet, so a custom style that replaced the emoji has to be updated.
    • The store moves to version 6. Labels of existing bookmarks are migrated to
      the new shape, and a plain label is still rendered, so nothing is lost.

Patch Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Fix mailto: and tel: links in markdown. makeUrl only passed through URLs
    containing :// or starting with data:, so [Write us](mailto:a@b.c) was
    resolved against the base path and became href="/mailto:a@b.c". Any URL with
    a scheme is now passed through untouched.

  • #1153 20de8fe Thanks @mikebarkmin! - Add elements.emoji.style. Emojis are drawn by the reader's operating system,
    so the same emoji looks different on Windows, macOS, Android and Linux. Setting
    the style to twemoji replaces them with Twemoji images at build time, so a
    hyperbook looks the same on every platform. This covers emojis in the content
    as well as icons from the config, leaves code untouched, and only copies the
    emojis a book actually uses into its output. The default stays native.

@hyperbook/markdown@0.72.0

Minor Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Rework how bookmarks store their label, so bookmarks show what the page shows.

    A bookmark label used to be baked into an onclick attribute of the bookmark
    button and rendered with innerHTML. Labels are now read from the rendered
    heading when a bookmark is saved, and stored as parts instead of markup:

    [{ text: "Getting started " }, { text: "🐧", emoji: "1f427" }];

    The bookmark list builds its entries from those parts with the DOM, so nothing
    that was stored is parsed as HTML, and an emoji that is rendered as an image
    stays an image in the bookmark list. Emojis are stored by id, never by URL, so
    bookmarks survive a change of the basePath.

    This also fixes bookmarking a heading that contains a quote or a backslash.
    Those characters ended up inside a JavaScript string in the onclick
    attribute and made the button throw a syntax error.

    The bookmark indicator is no longer the 🔖 emoji. Both the button on a heading
    and the marker in the bookmark list are drawn from the stylesheet with a mask,
    so the control looks the same on every platform, takes the color of the
    heading it belongs to in light and dark mode, and does not change when the
    emoji style changes. A bookmarked heading now shows a filled icon instead of only a less
    transparent one.

    Breaking:

    • hyperbook.ui.toggleBookmark(key, label) no longer takes a label:
      hyperbook.ui.toggleBookmark(key). The label comes from the heading.
    • Bookmark buttons no longer carry an inline onclick. They are handled by a
      delegated listener and carry data-key, data-label, aria-label and
      aria-pressed.
    • Bookmark buttons are empty. The icon comes from .bookmark in the
      stylesheet, so a custom style that replaced the emoji has to be updated.
    • The store moves to version 6. Labels of existing bookmarks are migrated to
      the new shape, and a plain label is still rendered, so nothing is lost.

Patch Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Add elements.emoji.style. Emojis are drawn by the reader's operating system,
    so the same emoji looks different on Windows, macOS, Android and Linux. Setting
    the style to twemoji replaces them with Twemoji images at build time, so a
    hyperbook looks the same on every platform. This covers emojis in the content
    as well as icons from the config, leaves code untouched, and only copies the
    emojis a book actually uses into its output. The default stays native.

create-hyperbook@0.3.9

Patch Changes

@hyperbook/types@0.23.2

Patch Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Fix mailto: and tel: links in markdown. makeUrl only passed through URLs
    containing :// or starting with data:, so [Write us](mailto:a@b.c) was
    resolved against the base path and became href="/mailto:a@b.c". Any URL with
    a scheme is now passed through untouched.

  • #1153 20de8fe Thanks @mikebarkmin! - Add elements.emoji.style. Emojis are drawn by the reader's operating system,
    so the same emoji looks different on Windows, macOS, Android and Linux. Setting
    the style to twemoji replaces them with Twemoji images at build time, so a
    hyperbook looks the same on every platform. This covers emojis in the content
    as well as icons from the config, leaves code untouched, and only copies the
    emojis a book actually uses into its output. The default stays native.

hyperbook-studio@0.52.0

Minor Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Rework how bookmarks store their label, so bookmarks show what the page shows.

    A bookmark label used to be baked into an onclick attribute of the bookmark
    button and rendered with innerHTML. Labels are now read from the rendered
    heading when a bookmark is saved, and stored as parts instead of markup:

    [{ text: "Getting started " }, { text: "🐧", emoji: "1f427" }];

    The bookmark list builds its entries from those parts with the DOM, so nothing
    that was stored is parsed as HTML, and an emoji that is rendered as an image
    stays an image in the bookmark list. Emojis are stored by id, never by URL, so
    bookmarks survive a change of the basePath.

    This also fixes bookmarking a heading that contains a quote or a backslash.
    Those characters ended up inside a JavaScript string in the onclick
    attribute and made the button throw a syntax error.

    The bookmark indicator is no longer the 🔖 emoji. Both the button on a heading
    and the marker in the bookmark list are drawn from the stylesheet with a mask,
    so the control looks the same on every platform, takes the color of the
    heading it belongs to in light and dark mode, and does not change when the
    emoji style changes. A bookmarked heading now shows a filled icon instead of only a less
    transparent one.

    Breaking:

    • hyperbook.ui.toggleBookmark(key, label) no longer takes a label:
      hyperbook.ui.toggleBookmark(key). The label comes from the heading.
    • Bookmark buttons no longer carry an inline onclick. They are handled by a
      delegated listener and carry data-key, data-label, aria-label and
      aria-pressed.
    • Bookmark buttons are empty. The icon comes from .bookmark in the
      stylesheet, so a custom style that replaced the emoji has to be updated.
    • The store moves to version 6. Labels of existing bookmarks are migrated to
      the new shape, and a plain label is still rendered, so nothing is lost.

Patch Changes

  • #1153 20de8fe Thanks @mikebarkmin! - Fix mailto: and tel: links in markdown. makeUrl only passed through URLs
    containing :// or starting with data:, so [Write us](mailto:a@b.c) was
    resolved against the base path and became href="/mailto:a@b.c". Any URL with
    a scheme is now passed through untouched.

  • #1153 20de8fe Thanks @mikebarkmin! - Add elements.emoji.style. Emojis are drawn by the reader's operating system,
    so the same emoji looks different on Windows, macOS, Android and Linux. Setting
    the style to twemoji replaces them with Twemoji images at build time, so a
    hyperbook looks the same on every platform. This covers emojis in the content
    as well as icons from the config, leaves code untouched, and only copies the
    emojis a book actually uses into its output. The default stays native.

  • Updated dependencies [20de8fe, 20de8fe]:

    • @hyperbook/markdown@0.72.0
    • create-hyperbook@0.3.9
    • @hyperbook/fs@0.25.1

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyperbook-4fwa Ready Ready Preview Aug 7, 2026 10:53am

@mikebarkmin
mikebarkmin merged commit 1d59ab2 into main Aug 7, 2026
3 checks passed
@mikebarkmin
mikebarkmin deleted the changeset-release/main branch August 7, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant