HackerTrans
トップ新着トレンドコメント過去質問紹介求人

thomasnowhere

no profile record

投稿

Show HN: Domternal – headless rich-text editor for Angular/React/Vue/Vanilla

domternal.dev
1 ポイント·投稿者 thomasnowhere·12 日前·0 コメント

Show HN: Domternal – Rich text editor toolkit on ProseMirror with Angular UI

github.com
2 ポイント·投稿者 thomasnowhere·3 か月前·0 コメント

コメント

thomasnowhere
·12 日前·議論
[flagged]
thomasnowhere
·13 日前·議論
[dead]
thomasnowhere
·2 か月前·議論
The cost of writing code dropped but the cost of maintaining it didn't. If anything that makes saying no more important, not less.
thomasnowhere
·2 か月前·議論
One area where AI is reliably faster with no quality tradeoff is writing E2E tests. You can cover a ton of edge cases in an afternoon that you would normally skip, and if something breaks you see it immediately.
thomasnowhere
·3 か月前·議論
[dead]
thomasnowhere
·3 か月前·議論
The never-resolving promise trick is clever but what caught me off guard is how clean the GC behavior is. Always assumed hanging promises would leak in long-lived apps but apparently not as long as you drop the references.
thomasnowhere
·4 か月前·議論
This looks nice. I work on a rich text editor and have a large Playwright test suite. The hardest bugs to catch are always the ones where a speciffic sequence of user actions leaves the editor in a broken state, things like formatting inside a merged table cell or pasting content mid-selection. You would never think to write a test for those combos manually.

Curious how well the action generators work with contenteditable elements though. Rich text editors have a lot of browser-level behavior that isn't just clicks and keypresses, things like IME input, drag and drop, clipboard events. Can you write custom action generators for that kind of stuff?
thomasnowhere
·4 か月前·議論
That makes sense, the hidden input approach is clever. Google Docs definitely proved it's viable at scale. The RTL support is a nice touch, that's notoriously tricky to get right.

Great work pulling this off in 10 months. Good luck with the project!
thomasnowhere
·4 か月前·議論
Impressive that you built the rendering layer from scratch on Canvas. Curious about one thing though, how do you handle accessibility? With contenteditable you get a lot of browser accessibility features for free (screen readers, selection, input methods). With Canvas rendering you'd need to reimplement most of that manually.

I've been working on a ProseMirror-based editor and the biggest lesson was how much the browser gives you for free with contenteditable, even though it's painful to work with. IME input handling alone took weeks to get right, and that's with the browser doing most of the heavy lifting. Starting from Canvas seems like an order of magnitude harder.

How's the IME/CJK input working? And does it play nice with browser spellcheck?