started text diffing tool

Well, that went fast :D

I've started on the text diffing tool. I got a basic unified and split differences view working.

It's inspired by Diffchecker, but it will run fully locally in the browser, and without any tracking etc

Screenshot of the diffing tool. There are two inputs at the top, labeled "Original" and "Changed". Then a button labeled diff. Underneath the diff between the original and diffed inputs. Once mixed, and underneath split into original, with the removals, and next to it changed, with the additions in the changed input

Implementation

It's once again using a rust crate, this time the similar crate. With some extra splitting, to make line based diffs for the split diff work.

The wasm calls js functions directly, to insert the text into the targets in the dom.

Testing

This makes unit testing a bit harder, so I added e2e testing with playwright to the repo.

I'm not sure how I'll handle the unified diff testing yet (I'll guess very manually). But for the split view, I could check, that the results have the same text as the inputs, and then extra checks, that the diffs are also showing up correctly.

Future Plans

I want to make the split diffing look way nicer, and maybe add options? Starting with nicer looking line numbers, and spacers for removed/added lines, so related lines are also closer together.

Followed by an optimization pass, as soon as the functionality is there.

Once I'm happy with how it looks and works, it'll be listed in the tools index page.