| 1 | # Native hyperlink boundary controls |
| 2 | |
| 3 | `notebook/fixture.json` is the independent authored input; `inputs/page-000.xml` |
| 4 | records the submitted COM page. `read/page-001.xml` and its PDF are the native |
| 5 | output. `read/environment.json` identifies the OneNote build and fresh clone; |
| 6 | `teardown.json` records deletion. The original capture location links here. |
| 7 | |
| 8 | Ten labels isolate ASCII spaces, tabs, NBSP, EM space, literal HTML metacharacters, |
| 9 | and line breaks. Native import places leading ASCII spaces/tabs outside the link, |
| 10 | keeps trailing spaces/tabs inside it, and keeps NBSP linked at both ends. An |
| 11 | all-space label has no link. EM spaces are removed during import. Newlines become |
| 12 | stored CRs outside the hyperlink; the final CR is absent from exported HTML. |
| 13 | |
| 14 | Authored red foreground and underline do not survive this hyperlink import: |
| 15 | native storage and exported XML use automatic foreground and no underline, |
| 16 | including the leading unlinked text. Bold, 14-point font, and yellow highlight |
| 17 | remain. These are native import observations, not transformations in the reader. |
| 18 | |
| 19 | `native_hyperlink_boundaries_preserve_whitespace_and_literal_labels` checks the |
| 20 | stored visible text, linked text, exact destinations, and native formatting. The |
| 21 | seeded-history comparator must apply the evidenced leading ASCII-space/tab rule |
| 22 | to its independent expectation without stripping Unicode whitespace generally. |