···11# Sherlodoc mld Page-Prose Indexing
2233-**Status:** Planned
33+**Status:** Phase 1 shipped (2026-04-15); Phase 2 deferred
44**Date:** 2026-04-15
5566## Problem
···7474Section < Subsection) so page-level hits float up.
75757676## Sequence
7777+7878+### Phase 1 — one-entry-per-page (SHIPPED)
7979+8080+Trivial change: remove `Doc` and `Page _` from the
8181+`is_pure_documentation` filter in
8282+`odoc/sherlodoc/index/load_doc.ml:220-223`. The inner `register_entry`
8383+already handles `Doc`-kind entries correctly (skips
8484+`register_full_name` and `register_kind` for them), so page body text
8585+flows straight into `register_doc`'s tokeniser. One result per page,
8686+matched by any word in the body. No new AST variants, no URL work.
8787+8888+Verified via a standalone cram-style test:
8989+`sherlodoc index` + `sherlodoc search "parseff"` returns the indexed
9090+`.mld` page hit, and a nonsense query returns `[No results]`.
9191+9292+### Phase 2 — per-heading entries (DEFERRED)
779378941. Add `Heading` kind in both `entry.ml`s.
79952. Recurse in `skeleton.ml`; emit heading entries.