ueberdosis / tiptap

The headless rich text editor framework for web artisans.
https://tiptap.dev
MIT License
27.55k stars 2.29k forks source link

refactor: adjust validate and add shouldAutoLink to improve URL handling #5808

Closed guarmo closed 1 week ago

guarmo commented 1 week ago

Changes Overview

Added a new shouldAutoLink function to control the auto-linking of URLs based on specific criteria, such as disallowed domains, and enhanced the existing validate function to handle URLs more robustly.

Testing Done

Checklist

Related Issues

5564

changeset-bot[bot] commented 1 week ago

🦋 Changeset detected

Latest commit: 585f6ef77e9e02e98ef19313fffc535ed23ab52f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 55 packages | Name | Type | | -------------------------------------- | ----- | | @tiptap/extension-link | Patch | | tiptap-demos | Patch | | @tiptap/core | Patch | | @tiptap/extension-blockquote | Patch | | @tiptap/extension-bold | Patch | | @tiptap/extension-bubble-menu | Patch | | @tiptap/extension-bullet-list | Patch | | @tiptap/extension-character-count | Patch | | @tiptap/extension-code-block-lowlight | Patch | | @tiptap/extension-code-block | Patch | | @tiptap/extension-code | Patch | | @tiptap/extension-collaboration-cursor | Patch | | @tiptap/extension-collaboration | Patch | | @tiptap/extension-color | Patch | | @tiptap/extension-document | Patch | | @tiptap/extension-dropcursor | Patch | | @tiptap/extension-floating-menu | Patch | | @tiptap/extension-focus | Patch | | @tiptap/extension-font-family | Patch | | @tiptap/extension-gapcursor | Patch | | @tiptap/extension-hard-break | Patch | | @tiptap/extension-heading | Patch | | @tiptap/extension-highlight | Patch | | @tiptap/extension-history | Patch | | @tiptap/extension-horizontal-rule | Patch | | @tiptap/extension-image | Patch | | @tiptap/extension-italic | Patch | | @tiptap/extension-list-item | Patch | | @tiptap/extension-list-keymap | Patch | | @tiptap/extension-mention | Patch | | @tiptap/extension-ordered-list | Patch | | @tiptap/extension-paragraph | Patch | | @tiptap/extension-placeholder | Patch | | @tiptap/extension-strike | Patch | | @tiptap/extension-subscript | Patch | | @tiptap/extension-superscript | Patch | | @tiptap/extension-table-cell | Patch | | @tiptap/extension-table-header | Patch | | @tiptap/extension-table-row | Patch | | @tiptap/extension-table | Patch | | @tiptap/extension-task-item | Patch | | @tiptap/extension-task-list | Patch | | @tiptap/extension-text-align | Patch | | @tiptap/extension-text-style | Patch | | @tiptap/extension-text | Patch | | @tiptap/extension-typography | Patch | | @tiptap/extension-underline | Patch | | @tiptap/extension-youtube | Patch | | @tiptap/html | Patch | | @tiptap/pm | Patch | | @tiptap/react | Patch | | @tiptap/starter-kit | Patch | | @tiptap/suggestion | Patch | | @tiptap/vue-2 | Patch | | @tiptap/vue-3 | Patch |

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

netlify[bot] commented 1 week ago

Deploy Preview for tiptap-embed ready!

Name Link
Latest commit 585f6ef77e9e02e98ef19313fffc535ed23ab52f
Latest deploy log https://app.netlify.com/sites/tiptap-embed/deploys/672b786a9e12930008b52c20
Deploy Preview https://deploy-preview-5808--tiptap-embed.netlify.app
Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

rfgamaral commented 1 week ago

@guarmo I can't afford to look into this carefully right now, but does this PR implement the proposed solution by @nperez0111 mentioned here (an older PR that aims to fix the same issue).

SanderLeenders commented 1 week ago

What about backward compatibility? For example, what if someone previously only wanted to autolink URLs starting with https://. They may have added a validation function like:

validate: url => url.startsWith('https://),

With the current change, only URLs starting with https:// would be valid, which is not the same behavior as before.

nperez0111 commented 1 week ago

What about backward compatibility? For example, what if someone previously only wanted to autolink URLs starting with https://. They may have added a validation function like:

validate: url => url.startsWith('https://),

With the current change, only URLs starting with https:// would be valid, which is not the same behavior as before.

Yep, you are totally right here. Good catch, will have to look into how it can be kept backwards compatible