corpus/clipboard/README.md | 14 + corpus/clipboard/word-2010.html | 691 ++++++++++++++++++++++++++++++++ corpus/word-lists/README.md | 12 + corpus/word-lists/candidate/Open Notebook.onetoc2 | Bin 0 -> 1596 bytes corpus/word-lists/candidate/word.one | Bin 0 -> 9632 bytes corpus/word-lists/cold/commands.jsonl | 3 + corpus/word-lists/cold/machine.json | 1 + corpus/word-lists/cold/notebook/Open Notebook.onetoc2 | Bin 0 -> 3748 bytes corpus/word-lists/cold/notebook/word.one | Bin 0 -> 11112 bytes corpus/word-lists/cold/read/environment.json | 7 + corpus/word-lists/cold/read/hierarchy.xml | 2 + corpus/word-lists/cold/read/page-000.navigation.json | 13 + corpus/word-lists/cold/read/page-000.png | Bin 0 -> 39136 bytes corpus/word-lists/cold/read/page-000.xml | 2 + corpus/word-lists/cold/read/payloads.json | 3 + corpus/word-lists/cold/run.json | 18 + corpus/word-lists/cold/scripts/cold.ps1 | 27 ++ corpus/word-lists/cold/scripts/read.ps1 | 144 +++++++ corpus/word-lists/cold/source.json | 14 + corpus/word-lists/cold/teardown.json | 1 + crates/canvas/src/editor/clip.rs | 14 +- crates/canvas/src/editor/html.rs | 210 +++++++++- crates/canvas/tests/clip_paste.rs | 74 +++- tools/test_word_lists.py | 55 +++ 24 files changed, 1285 insertions(+), 20 deletions(-)