Skip to content

[pull] develop from ueberdosis:develop#40

Open
pull[bot] wants to merge 722 commits intocode:developfrom
ueberdosis:develop
Open

[pull] develop from ueberdosis:develop#40
pull[bot] wants to merge 722 commits intocode:developfrom
ueberdosis:develop

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Jul 19, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull Bot locked and limited conversation to collaborators Jul 19, 2025
@pull pull Bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Jul 19, 2025
bdbch and others added 27 commits October 3, 2025 16:49
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Old one has no mention of paste rules
… first mount & race condition with Vue (#7060)

* refactor: return safe boolean for getShouldShow

* refactor: simplify BubbleMenu setup by using a direct DOM element

* fix: update FloatingMenu element handling and visibility logic

* changesets

* fix: add ref to root div in BubbleMenu for better slot handling
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore: upgrade cypress

* bump linkify to 4.3.2 in demos

* bump @lexical/react

* fix: update prompt stubbing for YouTube video tests

* Update demos/package.json

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

* sync pnpm-lock

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat(markdown): add core markdown support with parser, serializer, and tokenizer

* remove autosort imports ignore

* remove unnecessary comments

* WIP: markdown

* feat: add Markdown serialization support and demo implementation

- Implemented `getMarkdown()` method in the Editor class for Markdown serialization.
- Enhanced MarkdownManager to support JSONContent and improved rendering logic.
- Added Markdown rendering capabilities to Emoji, Heading, BulletList, ListItem, and Paragraph nodes.
- Created a Markdown preview demo in React with styling.

* WIP: nested node rendering

* feat: enhance markdown support with new extensions and rendering capabilities

* feat: add markdown rendering support for various extensions including image, task list, and mathematics

* chore: clean up unused styles in markdown demo

* fix(youtube): update markdown rendering format for YouTube videos

* feat(table): add table extension with markdown rendering support

* feat(table): implement markdown rendering for tables

* fix(table): improve handling of cell content in markdown rendering

* feat(markdown): enhance text node rendering with mark handling

* fix(list-item): improve markdown rendering for nested list items

* feat(markdown): enhance mark handling in node rendering for improved markdown output

* feat(markdown): refactor mark handling logic and introduce utility functions for better readability and maintainability

* feat(markdown): implement markdown parsing and rendering for various elements including lists, headings, and text

* feat(markdown): add custom React node support and extend markdown features with YouTube, images, mentions, and mathematics

* feat(markdown): implement contentType option for parsing JSON, HTML, and Markdown; add example usage

* Revert "feat(markdown): implement contentType option for parsing JSON, HTML, and Markdown; add example usage"

This reverts commit 114e8f5.

* feat: add markdown extension for Tiptap

- Introduced a new package `@tiptap/markdown` for markdown parsing and serialization.
- Implemented `MarkdownManager` to handle markdown content and extensions.
- Added `Markdown` extension to integrate markdown functionality into the Tiptap editor.
- Enhanced editor capabilities with methods to get and set content as markdown.
- Created utility functions for handling markdown block wrapping and mark management.
- Updated type definitions to support markdown-related types and helpers.
- Added README and package.json for the new markdown package.

* feat: export commands and TypeScript typings from @tiptap/core

* refactor: reorganize Markdown type imports in Extendable.ts

* refactor: remove markdown registration logic from setupExtensions

* refactor: simplify tsup configuration by merging entry points

* fix markdown preview

* feat: enhance markdown parsing with custom tokenizers and highlight support

* feat: add TableKit extension and enhance markdown parsing for tables

* fix: improve table header and cell parsing for markdown

* fix: remove deprecated '@types/marked' dependency from pnpm-lock.yaml

* update demo and commands export

* allow nested task lists

* feat(task-list): add support for nested task lists in markdown parsing and rendering

* feat(list-item, task-item): refactor rendering to use renderNestedMarkdownContent utility for improved nested markdown support

* feat(task-list): integrate parseIndentedBlocks utility for improved nested task list parsing

* feat(markdown): implement utilities for parsing and rendering nested markdown content

* feat(markdown): add allowedAttributes option to filter attributes in markdown specifications

* fix(markdown): use 'as const' for tokenizer level in atom and inline markdown specs

* feat(markdown): enhance type definitions for createAtomBlockMarkdownSpec, createBlockMarkdownSpec, and createInlineMarkdownSpec functions

* test(markdown): add comprehensive tests for MarkdownManager functionality and extensions

* fix(markdown): improve attribute parsing by handling quoted strings correctly

* feat(markdown): add custom nested parser support for task lists and add tests

* Feature/markdown support  tests (#7050)

* feat(markdown): update AtomBlockMarkdownSpec to use nodeName and enhance task list conversion tests

* add tests for ordered list

* fix(tests): correct subitem numbering in ordered list test cases

* feat(markdown): enhance ExtendableMarkdownSpec and update createBlockMarkdownSpec for improved markdown handling

* fix(markdown): update expected input format in custom atom, block, and inline tests for consistency

* fix(tests): normalize JSON structure in markdown conversion tests for consistency

* fix(ordered-list): update start attribute handling in ordered list parsing

* feat(ordered-list): implement tokenizer for ordered list parsing and nesting structure

* feat(ordered-list): refactor tokenizer and add utility functions for ordered list parsing

* fix(markdown): update content handling in createBlockMarkdownSpec and createInlineMarkdownSpec for improved rendering

* feat(markdown): add HTML parsing support to MarkdownManager and update demo content

* refactor(mention): remove old comment

* refactor(markdown): remove deprecated name property from ExtendableMarkdownSpec

* update changesets so the markdown package can be versioned seperated

* add initial version

* feat(markdown): changeset

* temporary add markdown scripts

* chore: group markdown scripts

* feat(markdown): add rendering helpers for markdown processing

* Register provided extensions in MarkdownManager

Remove explicit parameter types and eslint-disable on tokenize in
createInlineMarkdownSpec to simplify the signature and avoid unused
param linting.

* Remove match field from ExtendableMarkdownSpec

* Refactor markdown API to new spec names

Replace legacy `markdown` config with explicit fields:
markdownTokenName, parseMarkdown, renderMarkdown, markdownTokenizer, and
markdownOptions. Update create*MarkdownSpec helpers, Extendable types,
MarkdownManager, extensions, and tests to use the new API

* Update changeset example to import commands

* Remove MarkdownPreview demo and tweak parser demo

Import KaTeX stylesheet for math rendering.

Replace customReactNode insertion to insert a :::react fenced Markdown
block via editor.chain().insertContent(..., { asMarkdown: true }).

* Use markdownOptions extension field

* Replace contentAsMarkdown/asMarkdown with contentType

Add a ContentType type and an assumeContentType helper to determine when
string content should be treated as markdown. Update the Markdown
extension to accept editor.options.contentType and command-level
contentType, parsing string input to JSON only when the content type is
'markdown'. Update demos and the changeset/docs to use the new option.

* Remove redundant markdown spec validation tests

* Allow tokenizer start to be string or function

* fix tests

* Feature/markdown support nested blocks (#7068)

* allow parsing of nested content

* refactor: add support for nested block tokens & reinitialization of the lexer

* use correct block separator inside block markdown specs

* update ordered-list tokenizer.start function

* remove debug console.log from renderTableToMarkdown function

* update ESLint rule to ignore unused vars with leading underscores
remove commented eslint-disable directive in createInlineMarkdownSpec

* refactor: remove unused variable from tokenize function in createAtomBlockMarkdownSpec

* fix: use substring instead of substr for ID generation in insertMention function

* fix: improve loop condition for block pattern matching in createBlockMarkdownSpec function

* fix: ensure start method in markdownTokenizer returns -1 for unmatched task list items

* fix: import ExtendableConfig type in MarkdownManager for consistency

* fix: throw error on HTML parsing failure instead of returning null

* Update tests/cypress/integration/markdown/manager.spec.ts

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

* fix: replace console.error with throw for error handling in Markdown extension

* fix: remove incomplete markdown parsing implementation for underline extension

* fix: update regex match handling to return -1 for no match in markdown specifications

* fix: update MarkdownManager to reset lexer and improve extension registration

* feat: add TODO comments for markdown support in Details and DetailsSummary components

* feat: add support for nested React components in markdown content

* feat: implement markdown parsing and rendering for underline extension

* Change markup for atom nodes to not conflict with block level nodes

* feat: add details and summary components with markdown support

* fix: correct markdown block syntax by adding closing delimiter

* feat: add markdown demo with custom React components and extended features

* feat: add markdown demo with custom React components and extended features

* feat: add serialization demo for Tiptap content with Markdown support

* feat: add custom Markdown syntax support with styled components

* feat: add styles for inline and mark custom syntax types

* fix: correct expected input format for custom atom in Markdown spec

* fix: add closing delimiter for YouTube markdown syntax

* fix: add closing delimiter for YouTube markdown syntax

* fix: add type annotations for marked.js extension and tokenizer

* fix: correct markdown capitalization in documentation

* fix: remove redundant export statement for commands and TypeScript typings

* feat: add baseExtensions property to ExtensionManager and update related components

* fix: update parseMarkdown to allow indented code blocks

* feat: add extensions property to Markdown extension options

* refactor: change registerExtension method to public visibility

* fix: update media query breakpoints from 900px to 400px for responsive layout
docs: clarify markdownTokenName description and add reference to Marked Lexer

* refactor: simplify layout and remove unused styles in Markdown demo

* fix: adjust gap and overflow properties in Markdown demo split panel

* docs: add JSDoc comments for wrapInMarkdownBlock function

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Markdown: remove invalid server configuration from package.json

Removed server-related entries from package.json to fix #7081

* Create wild-boats-rhyme.md

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix: update happy-dom to 20.0.2 minimum

* add changeset
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
bdbch and others added 28 commits February 12, 2026 20:40
* fix(markdown): return empty string for empty document instead of &nbsp;

Fixes issue where getMarkdown() returns '&nbsp;' when the editor is empty,
instead of returning an empty string as expected. This behavior was inconsistent
with getText() which correctly returns an empty string.

Changes:
- Added isEmptyOutput() helper method to detect empty documents
- Modified serialize() to check if output is only whitespace entities
- Empty documents now return empty string, preserving blank lines between content
- Added comprehensive tests for empty document and blank line preservation

All existing functionality for blank line preservation remains intact.

https://claude.ai/code/session_013q4GkzGgcDFg6oc4LwYo6y

* refactor(markdown): consolidate duplicate logic in serialize method

Simplified serialize() method by removing redundant array/single-node branches.
The renderNodes() method already handles both cases internally, making the
conditional check unnecessary.

This addresses Copilot review feedback about code duplication.

https://claude.ai/code/session_013q4GkzGgcDFg6oc4LwYo6y

* fix(markdown): apply prettier formatting to MarkdownManager

Fixed formatting issues to comply with project prettier configuration.

https://claude.ai/code/session_013q4GkzGgcDFg6oc4LwYo6y

---------

Co-authored-by: Claude <noreply@anthropic.com>
…e selection does not allow the mark (e.g. a code block) (#7506)

* isMarkActive: ignore selected text that does not allow the mark due to its parent node's marks spec

* changeset

* reword comment (Copilot suggestion)

* unit test
* fix: typo in core/src/Editor.ts

* Fix typo in documentation of editor.view

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
…7509)

* Fix: Position 3 out of range Error

* Fix drag position error for empty text node

Fixes an issue with drag position resolving when dragging an empty text node at the end of the document.

* Fix selection range calculation in dragHandler

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
…or for `CodeBlockLowlight` extension (#7370)

* fix(tiptap): use named CodeBlock import to avoid runtime extend error

CodeBlockLowlight expects CodeBlock to expose `.extend()`, but default
imports can resolve to a module wrapper in some ESM/CJS environments,
causing `extend is not a function` at runtime.

Switching to a named import ensures the actual CodeBlock extension
is used and fixes the crash.

* chore: add missing changeset
* feat(extension-invisible-characters): add storage typings

* Add missing storage typings for extension-invisible-characters

* add missing new-line

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
…eMenu/FloatingMenu to prevent cross-contamination (#7512)

* fix: use instance-specific pluginKey as transaction      meta key in BubbleMenu/FloatingMenu to prevent cross-contamination

* Document transactionHandler for floating menu position

Add documentation for transactionHandler method.

* Implement transaction handler for bubble menu

Add transaction handler for bubble menu position updates.

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
* initial commit for drag handle fix

* fix(drag-handle): correct offset calculation for non-nested mode

- Update offset logic to handle Atom nodes correctly
- Prevent creation of empty ranges during drag operations
- Improve clarity of comments regarding node size handling

* fix(drag-handle): configure Image extension for drag handle

- Added Image extension to support image handling
- Set Image extension to inline: false

* feat(drag-handle): add image to demo content

- included a random image in the demo
- enhances visual representation of drag handle functionality
- improves user experience in the demo

* feat(drag-handle): enhance drag handle functionality with table support

- Added TableKit extension to drag handle demo.
- Implemented tableStructure rule to exclude table-related nodes from drag targets.
- Updated defaultRules to include the new tableStructure rule.

* feat(drag-handle): add table support to Vue demo content

- integrated TableKit for enhanced table functionality
- added example rows to demonstrate component-based architecture
- improved documentation with a structured table layout

* fix(drag-handle): resolve drag handle visibility for atom/leaf nodes

- Fix drag handle not appearing for images in both nested and non-nested modes

* fix(drag-handle): improve drag target scoring with allowed containers

- Add check for allowed containers in drag target scoring
- Refactor context creation to be conditional on allowed container check
- Ensure candidates are only added if within allowed containers
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
- Added toggle for editable state in React and Vue implementations
- Improved button styling for active states
- Refactored control group structure for better layout
* fix(core): Fix Inline Style Parsing in `mergeAttributes`

* Update .changeset/rotten-knives-fry.md

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

* Switch to `.toEqual` for Assertions

* Fix More Kinds of Parsing failures

* Update packages/core/__tests__/mergeAttributes.spec.ts

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

---------

Co-authored-by: bdbch <6538827+bdbch@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Support tilde-fenced code blocks

Allow code block parser to accept ~~~ fences and add unit tests
covering tilde and backtick fences with and without language attributes

* Fix parsing of tilde-fenced code blocks
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* ci: optimize cypress test pipeline

- Share build artifact across jobs: build once, download in test/unit-test/release
- Add dorny/paths-filter to skip unaffected Cypress jobs on PRs
- Split test job into PR-filtered (test) and push-all (test-all)
- Remove redundant pnpm build from unit-test and release jobs
- Fix artifact name collisions for cypress screenshots/videos

https://claude.ai/code/session_01FQgrqxjwM5bZbQTCaSgWra

* ci: simplify — remove paths-filter, keep artifact sharing only

Drop the changes job and test/test-all split. Single test job runs all
Cypress specs unconditionally, but downloads pre-built artifact instead
of rebuilding. Same for unit-test and release.

https://claude.ai/code/session_01FQgrqxjwM5bZbQTCaSgWra

* ci: address PR review feedback

- Add `id` field to matrix entries for artifact-safe names (no slashes)
- Include packages-deprecated/*/dist in build artifact for release job
- Remove .turbo from artifact (not needed by downstream jobs)

https://claude.ai/code/session_01FQgrqxjwM5bZbQTCaSgWra

---------

Co-authored-by: Claude <noreply@anthropic.com>
@bdbch bdbch deleted the branch code:develop March 14, 2026 15:12
@bdbch bdbch deleted the develop branch March 14, 2026 15:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.