# feat: build internal links from page and section identities; tag colours gated · clo/snowbound

[View on GitCafe](https://git.cafe/clo/snowbound/commit/bcb13ba046299393ccadffa70cc2c57963ffc3ce)

Repository: [clo/snowbound](https://git.cafe/clo/snowbound)

Visibility: public

Requested revision: bcb13ba046299393ccadffa70cc2c57963ffc3ce

Requested commit: bcb13ba046299393ccadffa70cc2c57963ffc3ce

Commit: bcb13ba046299393ccadffa70cc2c57963ffc3ce

Tree: e3385fdebbc3ae00d47dc853bbdf7aa52062cc8e

Author: clover caruso

Committer: clover caruso

## Message

```
feat: build internal links from page and section identities; tag colours gated

OneNote 2010 was observed linking to a page, a paragraph and the section
through the COM API on a Rust-written page (corpus/link-edit/native-links,
authored by tools/native/page-link.ps1): each link is the same HYPERLINK
field code as an external one whose URL is the relative form
onenote:#Title&section-id={section file identity}&page-id={page
notebook-management identity}&end&base-path=<section path>, with
&object-id={paragraph identity}&n instead of &end for a paragraph and
neither title nor page for a section. The page model now carries that page
identity (Page::identity, from the metadata object, absent on damaged
pages), Section::identity exposes the file identity, and
onestore::page::link::internal_link builds the URL; the native URLs are
reproduced byte for byte from stored identities, and
corpus/link-edit/internal is the cold read of a Rust page linking to a
second page. The base path is the caller's, as OneNote writes its own.

The tag corpus is regenerated with a red-on-yellow definition so custom tag
colours and highlights have their native gate.

Assisted-by: claude-fable-5.1

```

## Parents

- [23f0f23fc7064901d2942eb0d0ff5c4adea3afd6](https://git.cafe/clo/snowbound/commit/23f0f23fc7064901d2942eb0d0ff5c4adea3afd6?format=markdown)

[Source at this commit](https://git.cafe/clo/snowbound/tree/bcb13ba046299393ccadffa70cc2c57963ffc3ce?format=markdown)
