Skip to content

feat: upgrade w:hyperlink import/export to v3 (HAR-10497) - #942

Merged
harbournick merged 16 commits into
mainfrom
feature/har-10497-2-handler-for-whyperlink
Sep 15, 2025
Merged

feat: upgrade w:hyperlink import/export to v3 (HAR-10497)#942
harbournick merged 16 commits into
mainfrom
feature/har-10497-2-handler-for-whyperlink

Conversation

@luccas-harbour

Copy link
Copy Markdown
Contributor
  • Implements a NodeTranslator for the w:hyperlink element
  • Adds support for all w:hyperlink attributes as defined in ECMA-376
  • Fixes issue where a hyperlink using a different linked style would have its style overwritten with Hyperlink during import

Luccas Correa added 4 commits September 11, 2025 16:20
The idea is that we use `target='_blank'` as a default only when
rendering the link without assigning that value to the node attribute.
The goal is to not overwrite the target value when the document is
imported.
The goal is to allow the functions to call other methods in the node
translator from their implementation.
@luccas-harbour
luccas-harbour force-pushed the feature/har-10497-2-handler-for-whyperlink branch 2 times, most recently from cdf4015 to 7a3681d Compare September 11, 2025 20:32
@luccas-harbour
luccas-harbour marked this pull request as ready for review September 11, 2025 20:42
@luccas-harbour
luccas-harbour marked this pull request as draft September 11, 2025 20:43
@luccas-harbour
luccas-harbour force-pushed the feature/har-10497-2-handler-for-whyperlink branch from 7a3681d to 5eddb01 Compare September 11, 2025 21:33
@luccas-harbour luccas-harbour changed the title feat: upgrade w:hyperlink import/export to v3 (HAR1-0497) feat: upgrade w:hyperlink import/export to v3 (HAR-10497) Sep 11, 2025
@luccas-harbour
luccas-harbour marked this pull request as ready for review September 11, 2025 21:44
@luccas-harbour luccas-harbour self-assigned this Sep 12, 2025

@artem-harbour artem-harbour left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@harbournick harbournick left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM - really great contributions to the import/export v3 upgrades here - above and beyond! Much appreciated 🎉

Comment thread packages/super-editor/package.json
Comment thread packages/super-editor/src/core/super-converter/v3/handlers/utils.js
@harbournick
harbournick enabled auto-merge (squash) September 15, 2025 17:49
@harbournick
harbournick merged commit 0f98a8e into main Sep 15, 2025
7 checks passed
@harbournick
harbournick deleted the feature/har-10497-2-handler-for-whyperlink branch September 15, 2025 17:50
@harbournick

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 0.19.0-next.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

harbournick pushed a commit that referenced this pull request Sep 17, 2025
# [0.19.0](v0.18.1...v0.19.0) (2025-09-17)

### Bug Fixes

* content-block node ext wrong schema and rendering rules ([#965](#965)) ([#966](#966)) ([f037f44](f037f44))
* full repo test on npm test or npm run test ([3ede3e0](3ede3e0))
* move undo/redo from collaboration to history ([#956](#956)) ([21299f8](21299f8))

### Features

* add document.xml.rels validator ([#881](#881)) ([ac7f2a9](ac7f2a9))
* add v3 translator for w:tr and w:trPr elements (HAR-10480) ([#953](#953)) ([ce4eb8d](ce4eb8d))
* support Blob type in fileSource and document properties ([#967](#967)) ([4260c51](4260c51))
* upgrade w:hyperlink import/export to v3 (HAR-10497) ([#942](#942)) ([0f98a8e](0f98a8e))
@harbournick

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 0.19.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

superdoc-bot Bot pushed a commit that referenced this pull request Jul 29, 2026
* feat(catalog): add permanent slugs for demos and examples

Moving a demo or example directory breaks every GitHub link already
published, because GitHub only leaves redirects behind for repository
renames, not for paths inside a repository. Today the only fix is a stub
README left at the old path, and seven of those already exist.

This adds a `slug` field to catalog entries: the permanent public name a
demo is reachable by at go.superdoc.dev, independent of where its
source currently lives. It stays separate from `id` because `id` is the
internal catalog key and should stay free to follow section renames,
while a public slug cannot move without breaking links we do not control.

Slugs are opt-in, so nothing is published until it has earned a permanent
name, and 26 entries are named here to start. The validator rejects
duplicates, non-kebab-case names, names that would shadow a service
route, and slugs on entries we have deliberately withdrawn.

The service that serves those URLs is superdoc/linkkeeper, a separate
project. It reads these manifests directly, so publishing an example is
just the slug edit and there is no second list to keep in sync. The
workflow added here only tells it when the catalog changed, and it lives
in the public repo rather than in Orbit's export pipeline: the export
pushes straight to public main, so by then the manifests are already
public and the SHA is the exported one.

The catalog had no CI gate on this branch, so metadata validation now
runs in its own fast workflow rather than inside the demo build.

* docs(superdoc): link examples through their stable URLs

Points the documentation at go.superdoc.dev for the 17 links whose
targets now have a published slug. These survive the next reorganization
of the examples tree; the raw GitHub paths they replace would not.

Links to examples that do not have a slug yet are left alone rather than
invented, so nothing here points at a URL that does not resolve. They can
move over as those examples are named.

Nothing else changes: same destinations, one redirect in front of them.

Ported-From-Source-Repo: superdoc/orbit
Ported-From-Source-Commit: 258268f8ec8ab14bb439a51ed9ec5da03279e726
Ported-Public-Prefix: superdoc/public
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants