Skip to content

Conversation

@maoberlehner
Copy link
Contributor

@maoberlehner maoberlehner commented Nov 7, 2025

Parsing did not work correctly for certain combinations of <a> and nested tags inside or around it.

To ensure parsing is aligned with the Tiptap editor format, we now use the Tiptap editor's generateJSON command, which gives us HTML-to-richtext conversion out of the box.

BREAKING CHANGE: Instead of our own resolver format, we now allow users to override the Tiptap extensions used for parsing.

Fixes WDX-141


Note

Migrates richtext HTML/Markdown parsing to Tiptap (with configurable extensions) and updates ecosystem dependencies (Vitest env, React/Vue/Nuxt/Vite) across the repo.

  • Richtext:
    • Replace custom HTML/Markdown parsing with Tiptap’s @tiptap/html + extensions (e.g., link, list, table, image, etc.).
    • Remove previous parsers (node-html-parser, markdown-it-github).
    • Expose configuration to override Tiptap extensions.
    • BREAKING: parsing now follows Tiptap schema/extension behavior.
  • Tooling/Deps:
    • Add happy-dom to Vitest setups; align vitest-related deps.
    • Bump framework libs (React/Vue/Next/Nuxt) and build tooling (Vite/Rollup/esbuild).
    • Lockfile and minor dependency refreshes across packages.

Written by Cursor Bugbot for commit 6d45762. This will update automatically on new commits. Configure here.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR refactors HTML and Markdown parsing to use Tiptap's built-in generateJSON command, fixing edge cases with links and nested tags that weren't handled correctly by the previous custom parser.

  • Replaced custom HTML parsing logic with Tiptap's generateJSON for more robust HTML-to-richtext conversion
  • Simplified Markdown parser to convert Markdown to HTML first, then use the HTML parser
  • Changed the API from custom resolvers to Tiptap tipTapExtensions for customization

Reviewed Changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/richtext/src/markdown-parser.ts Simplified to render Markdown as HTML then delegate to HTML parser
packages/richtext/src/markdown-parser.test.ts Updated tests to use Tiptap extensions and reflect new output format
packages/richtext/src/html-parser.ts Complete rewrite using Tiptap's generateJSON with custom extensions
packages/richtext/src/html-parser.test.ts Updated tests for new Tiptap-based implementation
packages/richtext/package.json Added Tiptap dependencies, removed node-html-parser

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Parsing did not work correctly for certain combinations of `<a>` and
nested tags inside or around it.

To ensure parsing is aligned with the Tiptap editor format, we now use
the Tiptap editor's `generateJSON` command, which gives us
HTML-to-richtext conversion out of the box.

BREAKING CHANGE: Instead of our own resolver format, we now allow users
to override the Tiptap extensions used for parsing.

Fixes WDX-141
@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 7, 2025

Open in StackBlitz

@storyblok/astro

npm i https://pkg.pr.new/@storyblok/astro@369

storyblok

npm i https://pkg.pr.new/storyblok@369

@storyblok/eslint-config

npm i https://pkg.pr.new/@storyblok/eslint-config@369

@storyblok/js

npm i https://pkg.pr.new/@storyblok/js@369

storyblok-js-client

npm i https://pkg.pr.new/storyblok-js-client@369

@storyblok/management-api-client

npm i https://pkg.pr.new/@storyblok/management-api-client@369

@storyblok/nuxt

npm i https://pkg.pr.new/@storyblok/nuxt@369

@storyblok/react

npm i https://pkg.pr.new/@storyblok/react@369

@storyblok/region-helper

npm i https://pkg.pr.new/@storyblok/region-helper@369

@storyblok/richtext

npm i https://pkg.pr.new/@storyblok/richtext@369

@storyblok/svelte

npm i https://pkg.pr.new/@storyblok/svelte@369

@storyblok/vue

npm i https://pkg.pr.new/@storyblok/vue@369

commit: 6d45762

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

},
];
},
});
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Reporter falsely warns on allowed link custom attributes

The Reporter mark warns about unsupported attributes on all elements, including custom attributes on <a> tags. When allowCustomAttributes is enabled, custom attributes on links are intentionally supported via the custom field, but the Reporter has no awareness of this option and incorrectly warns that these attributes cannot be transformed.

Fix in Cursor Fix in Web

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