Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Custom inline content and styles commands/copy & paste fixes #425

Conversation

matthewlipski
Copy link
Collaborator

No description provided.

Copy link

vercel bot commented Nov 28, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
blocknote-website ✅ Ready (Inspect) Visit Preview Nov 29, 2023 8:56am

@YousefED
Copy link
Collaborator

YousefED commented Nov 29, 2023

I accidentally didn't have all tests enabled. I did that now and fixed 1. There's an error with the "tag" tests. Although we agreed that use-case isn't supported, maybe it's an easy fix to make addInlineContentAttributes more similar to wrapInBlockStructure.

I'll be merging some PRs because there's to much in flux, but keeping TODOs:

  • review my changes
  • decide on classnames (see comments)
  • Fix tag tests (see above)
  • Maybe add a similar tests (and / or playground) for a Custom Block "static" and "editable" content

@YousefED YousefED merged commit 9272626 into feature/html-paste-parsing-block-refs Nov 29, 2023
@YousefED YousefED deleted the feature/html-paste-parsing-fixes branch November 29, 2023 08:58
YousefED added a commit that referenced this pull request Nov 29, 2023
* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
YousefED added a commit that referenced this pull request Nov 29, 2023
* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
YousefED added a commit that referenced this pull request Nov 29, 2023
* wip custom styles

* fix

* fix tests

* simplify PartialInlineContent

* custom inline content

* clean nodeconversions test

* streamline tests

* update tests

* move schema files

* add custom style test

* inline content + tests

* misc

* clean imports

* fix react tests

* add react nodeconversions tests

* move tests and add test for ReactStyles

* fix react tests

* basis of new examples

* add react examples

* fix bug

* misc fixes

* wip

* clean

* small cleanup

* add comments

* move funcs

* fix tests

* address PR feedback

* fix inline content types

* feat: HTML paste handling (#422)

* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* fix build

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
YousefED added a commit that referenced this pull request Nov 29, 2023
* fix table types

* add tablecontent

* clean BNUpdateBlock

* add partial inline content

* add contentNodeToTableContent

* first draft of tablehandles

* implement table functions

* fix styles

* fix imports

* create separate TableExtension

* improve types

* test some types

* Fixed setting selection for table blocks

* Fixed backspace deleting table if at start of cell

* small code fixes

* Implemented PR feedback

* Improved table row/column drag & drop UX

* Fixed table menus moving around, drag indicator flakiness, menu z-index issues, and drag preview

* Implemented PR feedback

* Implemented PR feedback

* Fixed drag handles sometimes not showing

* Fixed scrolling behaviour

* Small fixes

* Fixed table handles UI

* Fixed remaining UX/UI issues

* Removed redundant state from table handles plugin

* Implemented table drag & drop logic

* Added table enter handling

* Small fix

* feat: custom styles and custom inline content (#418)

* wip custom styles

* fix

* fix tests

* simplify PartialInlineContent

* custom inline content

* clean nodeconversions test

* streamline tests

* update tests

* move schema files

* add custom style test

* inline content + tests

* misc

* clean imports

* fix react tests

* add react nodeconversions tests

* move tests and add test for ReactStyles

* fix react tests

* basis of new examples

* add react examples

* fix bug

* misc fixes

* wip

* clean

* small cleanup

* add comments

* move funcs

* fix tests

* address PR feedback

* fix inline content types

* feat: HTML paste handling (#422)

* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* fix build

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
YousefED added a commit that referenced this pull request Nov 29, 2023
* refactor types for blocks

* remove unused comment

* fix test

* run tests on all branches

* fix build

* change BlockFromBlockConfig to Block

* simplify customblockconfig

* rename BlockImplementation to TiptapBlockImplementation

* fix build

* add comment

* feat: tables (#413)

* fix table types

* add tablecontent

* clean BNUpdateBlock

* add partial inline content

* add contentNodeToTableContent

* first draft of tablehandles

* implement table functions

* fix styles

* fix imports

* create separate TableExtension

* improve types

* test some types

* Fixed setting selection for table blocks

* Fixed backspace deleting table if at start of cell

* small code fixes

* Implemented PR feedback

* Improved table row/column drag & drop UX

* Fixed table menus moving around, drag indicator flakiness, menu z-index issues, and drag preview

* Implemented PR feedback

* Implemented PR feedback

* Fixed drag handles sometimes not showing

* Fixed scrolling behaviour

* Small fixes

* Fixed table handles UI

* Fixed remaining UX/UI issues

* Removed redundant state from table handles plugin

* Implemented table drag & drop logic

* Added table enter handling

* Small fix

* feat: custom styles and custom inline content (#418)

* wip custom styles

* fix

* fix tests

* simplify PartialInlineContent

* custom inline content

* clean nodeconversions test

* streamline tests

* update tests

* move schema files

* add custom style test

* inline content + tests

* misc

* clean imports

* fix react tests

* add react nodeconversions tests

* move tests and add test for ReactStyles

* fix react tests

* basis of new examples

* add react examples

* fix bug

* misc fixes

* wip

* clean

* small cleanup

* add comments

* move funcs

* fix tests

* address PR feedback

* fix inline content types

* feat: HTML paste handling (#422)

* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* fix build

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
YousefED added a commit that referenced this pull request Nov 29, 2023
* Added serialization for vanilla custom blocks

* Added serialization for React custom blocks

* Cleaned up serializer implementation - no longer uses function override

* Revert "Cleaned up serializer implementation - no longer uses function override"

This reverts commit b4f3fb6.

* Removed comment

* Added ability to set custom serialization and parse functions for custom blocks (parse still WIP)

* Fixed build and most runtime issues

* Added `react-dom` dependency

* Added PoC copy/paste handling

* Small changes & fixes

* Added serialization tests

* Changed copy/paste implementation

* Small fix

* Implemented PR feedback

* Converted styles from modules to regular CSS

* Implemented PR feedback

* Updated serialization test snapshots

* Updated serialization tests to use BlockNote API

* Commented out custom block parsing code (out of scope for this PR)

* Improved `nodeToBlock` typing

* Small fixes

* Fixed `destroy` function not getting passed to TipTap node view

* Updated comment regarding clipboard issues

* Major restructure of copy/paste code

* Reduced code duplication for HTML serializer & exporter

* Implemented PR feedback & cleaned up CSS class names

* Updated serialization unit test snapshots

* Changed `DOMOutputSpec` implementation for default blocks

* Fixed some CSS issues

* Implemented PR feedback

* Reverted `nodeToBlock` typing

* Made external HTML conversions no longer `async` and fixed Firefox clipboard reading

* Fixed image test issues and small changes

* Fixed remaining image test issues

* Updated serialization unit test snapshots

* Excluded `formatConversions` test

* Fixed HTML export for custom blocks with inline content

* Fixed duplicate `blockContainer` attributes getting added to custom blocks' `blockContent` nodes from color default props and changed `toExternalHTML` typing for React custom blocks

* Added React serialization unit tests and extra vanilla tests

* Updated image e2e snapshots

* Small e2e test fix

* Added comments

* Fixed error when copying only nested blocks

* refactor types for blocks (#412)

* refactor types for blocks

* remove unused comment

* fix test

* run tests on all branches

* fix build

* change BlockFromBlockConfig to Block

* simplify customblockconfig

* rename BlockImplementation to TiptapBlockImplementation

* fix build

* add comment

* feat: tables (#413)

* fix table types

* add tablecontent

* clean BNUpdateBlock

* add partial inline content

* add contentNodeToTableContent

* first draft of tablehandles

* implement table functions

* fix styles

* fix imports

* create separate TableExtension

* improve types

* test some types

* Fixed setting selection for table blocks

* Fixed backspace deleting table if at start of cell

* small code fixes

* Implemented PR feedback

* Improved table row/column drag & drop UX

* Fixed table menus moving around, drag indicator flakiness, menu z-index issues, and drag preview

* Implemented PR feedback

* Implemented PR feedback

* Fixed drag handles sometimes not showing

* Fixed scrolling behaviour

* Small fixes

* Fixed table handles UI

* Fixed remaining UX/UI issues

* Removed redundant state from table handles plugin

* Implemented table drag & drop logic

* Added table enter handling

* Small fix

* feat: custom styles and custom inline content (#418)

* wip custom styles

* fix

* fix tests

* simplify PartialInlineContent

* custom inline content

* clean nodeconversions test

* streamline tests

* update tests

* move schema files

* add custom style test

* inline content + tests

* misc

* clean imports

* fix react tests

* add react nodeconversions tests

* move tests and add test for ReactStyles

* fix react tests

* basis of new examples

* add react examples

* fix bug

* misc fixes

* wip

* clean

* small cleanup

* add comments

* move funcs

* fix tests

* address PR feedback

* fix inline content types

* feat: HTML paste handling (#422)

* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* fix build

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Yousef <yousefdardiry@gmail.com>
matthewlipski added a commit that referenced this pull request Dec 4, 2023
…copy / paste handling (#426)

* feat: Custom block serialization (#257)

* Added serialization for vanilla custom blocks

* Added serialization for React custom blocks

* Cleaned up serializer implementation - no longer uses function override

* Revert "Cleaned up serializer implementation - no longer uses function override"

This reverts commit b4f3fb6.

* Removed comment

* Added ability to set custom serialization and parse functions for custom blocks (parse still WIP)

* Fixed build and most runtime issues

* Added `react-dom` dependency

* Added PoC copy/paste handling

* Small changes & fixes

* Added serialization tests

* Changed copy/paste implementation

* Small fix

* Implemented PR feedback

* Converted styles from modules to regular CSS

* Implemented PR feedback

* Updated serialization test snapshots

* Updated serialization tests to use BlockNote API

* Commented out custom block parsing code (out of scope for this PR)

* Improved `nodeToBlock` typing

* Small fixes

* Fixed `destroy` function not getting passed to TipTap node view

* Updated comment regarding clipboard issues

* Major restructure of copy/paste code

* Reduced code duplication for HTML serializer & exporter

* Implemented PR feedback & cleaned up CSS class names

* Updated serialization unit test snapshots

* Changed `DOMOutputSpec` implementation for default blocks

* Fixed some CSS issues

* Implemented PR feedback

* Reverted `nodeToBlock` typing

* Made external HTML conversions no longer `async` and fixed Firefox clipboard reading

* Fixed image test issues and small changes

* Fixed remaining image test issues

* Updated serialization unit test snapshots

* Excluded `formatConversions` test

* Fixed HTML export for custom blocks with inline content

* Fixed duplicate `blockContainer` attributes getting added to custom blocks' `blockContent` nodes from color default props and changed `toExternalHTML` typing for React custom blocks

* Added React serialization unit tests and extra vanilla tests

* Updated image e2e snapshots

* Small e2e test fix

* Added comments

* Fixed error when copying only nested blocks

* refactor types for blocks (#412)

* refactor types for blocks

* remove unused comment

* fix test

* run tests on all branches

* fix build

* change BlockFromBlockConfig to Block

* simplify customblockconfig

* rename BlockImplementation to TiptapBlockImplementation

* fix build

* add comment

* feat: tables (#413)

* fix table types

* add tablecontent

* clean BNUpdateBlock

* add partial inline content

* add contentNodeToTableContent

* first draft of tablehandles

* implement table functions

* fix styles

* fix imports

* create separate TableExtension

* improve types

* test some types

* Fixed setting selection for table blocks

* Fixed backspace deleting table if at start of cell

* small code fixes

* Implemented PR feedback

* Improved table row/column drag & drop UX

* Fixed table menus moving around, drag indicator flakiness, menu z-index issues, and drag preview

* Implemented PR feedback

* Implemented PR feedback

* Fixed drag handles sometimes not showing

* Fixed scrolling behaviour

* Small fixes

* Fixed table handles UI

* Fixed remaining UX/UI issues

* Removed redundant state from table handles plugin

* Implemented table drag & drop logic

* Added table enter handling

* Small fix

* feat: custom styles and custom inline content (#418)

* wip custom styles

* fix

* fix tests

* simplify PartialInlineContent

* custom inline content

* clean nodeconversions test

* streamline tests

* update tests

* move schema files

* add custom style test

* inline content + tests

* misc

* clean imports

* fix react tests

* add react nodeconversions tests

* move tests and add test for ReactStyles

* fix react tests

* basis of new examples

* add react examples

* fix bug

* misc fixes

* wip

* clean

* small cleanup

* add comments

* move funcs

* fix tests

* address PR feedback

* fix inline content types

* feat: HTML paste handling (#422)

* refactor parse

* fix parse-divsc

* add test case

* add extra test (that should be fixed)

* readd markdown functions

* fix tests

* remove unused file

* remove comments

* add comment

* nested list handling

* add todos

* added comment

* use refs for blocks (#424)

* use refs for blocks

* update react htmlConversion test

* Custom inline content and styles commands/copy & paste fixes (#425)

* Fixed commands and internal copy/paste for inline content

* Fixed internal copy/paste for styles

* Small cleanup

* fix some tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* use processSync

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* fix build

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

---------

Co-authored-by: Yousef <yousefdardiry@gmail.com>

* fix: change parse function to only return props

* fix lint

* add comment

* Made block, inline content, and style content get parsed from `contentDOM` instead of `dom`

* Small fixes

* Fixed table enter handling

* Updated unit tests

* Fixed parsing error when `dom` is same as `contentDOM` (#429)

* Fixed parsing error for styles/inline content where `dom` was the same as `contentDOM`

* Updated react snapshots

* Playground custom elements (#430)

* Added playgrounds for vanilla blocks, React blocks, and vanilla inline content

* fix renderHTML error

* clean examples

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

* Add markdown tests (#428)

* update docs

* add markdown tests

* remove unused file

* add missing space to mention tests

* move and update playwright tests (#427)

* move and update playwright tests

* fix build

* fix test setup

* fix pw config

* fix test command

* Playwright refactor fixes (#436)

* Fixed issues with most tests

* Temporarily commented out failing unit test

* Temporarily commented out failing unit test

* Fixed remaining failing playwright tests

* Re-added test that was causing issues

* re-add tests

* add pw-report

* skip tests and edit css

* revert style

* add logs

* fix unit tests

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>

* Block backspace key event at start of custom editable inline content (#435)

* Fixed parsing error for styles/inline content where `dom` was the same as `contentDOM`

* Updated react snapshots

* Blocked backspace at start of custom editable inline content

* add comment

---------

Co-authored-by: yousefed <yousefdardiry@gmail.com>

* fix empty table content

* update comments

* extract transformPasted

* widen slashmenu typings

* Updated docs for custom blocks and added tables (#442)

---------

Co-authored-by: Matthew Lipski <50169049+matthewlipski@users.noreply.github.com>
Co-authored-by: Matthew Lipski <matthewlipski@gmail.com>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants