feat(pptx): expose slide boundaries as per-slide anchors"

OD
2mo ago
+33-18

Summary

Every slide now carries a `slide-N` start anchor in the document model, so downstream consumers (RAG / document-indexing pipelines) can tell where one slide ends and the next begins. The anchor id was already computed, but the node was only emitted for slides some internal slide-to-slide link happened to target.

Change

Remove the `targeted` gate in `src/formats/pptx/mod.rs` and emit the per-slide anchor unconditionally. Anchors nothing links to already render as nothing in Markdown, so `to_markdown` output is unchanged; the boundary is visible via `to_document`.

Test

Added `pptx_slide_boundaries_are_exposed` (asserts `slide-1`/`slide-2` from `handmade-links.pptx`). Full snapshot suite passes with zero output regression.

Closes #94
Fixes #31

Note: the binary `.ppt` reader has no anchor machinery yet; left as a follow-up."


Summary by cubic

Expose PPTX slide boundaries by always emitting a slide-N start anchor per slide. Previously we emitted anchors only when another slide linked to them; now all slides have an anchor so downstream chunkers/RAG can segment reliably. to_document now includes these anchors; to_markdown output is unchanged.

  • Remove the targeted gate and the SLIDE_REL usage; unconditionally push a single Inline::Anchor before each slide’s content.
  • Add pptx_slide_boundaries_are_exposed test asserting slide-1/slide-2 anchors; snapshot outputs remain unchanged.
  • .ppt reader is unchanged and still has no anchor support.