[pull] develop from ueberdosis:develop#40
Open
pull[bot] wants to merge 722 commits intocode:developfrom
Open
Conversation
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>
* fix(markdown): return empty string for empty document instead of Fixes issue where getMarkdown() returns ' ' 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
…revent removal fix #7537
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 : )