Skip to content

Book settings (note style, numbering, bibliography scope) have no UI — only reachable by hand-editing project.json #24

Description

@inactinique

Summary

None of the four book-level settings that govern how a book exports — note style, note numbering, bibliography scope, chapter/section numbering — have any UI anywhere in the app. A historian writing a book can only ever get the hardcoded defaults (footnotes, continuous numbering, a single bibliography, numbering on) unless they hand-edit project.json's book key directly, which the app never tells them is possible or necessary.

Found while auditing the ClioDeck wiki against the actual code (1.15-Books-and-Chapters.md), which currently presents these as ordinary, user-configurable settings — they aren't reachable from the UI at all.

Current behavior (verified against code)

  • noteStyle: grep -rln "noteStyle\b" src/renderer/src/ returns only a test file (stores/__tests__/projectStore-chapters.test.ts) — zero UI components reference it.
  • bookSettings. (the object holding all four settings): grep -rln "bookSettings\." src/renderer/src/components/ returns only Editor/EditorPanel.tsx:169 (useProjectStore.getState().bookSettings.noteNumbering), which reads the value to decide renumbering behavior — nothing writes to it, no form control anywhere.
  • noteNumbering/numberChapters/numberSections name-collide with unrelated Beamer-specific i18n keys in BeamerConfig.tsx (beamer.numberSections, beamer.numberSectionsInToc) — a different, presentation-export-only setting that happens to share vocabulary. Confirmed as a false-positive lead, not a real UI path for book settings.
  • Project/ProjectPanel.tsx — the project creation/properties panel — only exposes the project type selector (article/book/presentation, line 49). No book-settings fields anywhere in this component.
  • DEFAULT_BOOK_SETTINGS (backend/types/book.ts:97) is the only source of these values in practice: projectStore.ts:86,121,266 always falls back to it via { ...DEFAULT_BOOK_SETTINGS, ...(project.book ?? {}) } — the spread means a hand-edited project.json would work, but nothing in the app surfaces that as an option.
  • No dedicated BookSettings-style component exists anywhere under src/renderer/.

Why this matters

Books are explicitly the flagship feature this app added for historians (chapters, per-chapter or unified bibliography, footnote vs. endnote conventions — the kinds of choices that vary significantly across historical publishing conventions and presses). Right now, every book project silently gets footnotes with continuous numbering and a single bibliography, with no way to choose otherwise short of editing a JSON file the app never mentions. This is the same "capability exists, no UI" shape as issues #18/#21/#22/#23, but broader — four settings, not one — and higher-impact given how central book settings are to the feature's stated purpose.

Suggested fix

Add a book-settings panel (e.g., in Project properties, visible only for type: 'book' projects) exposing the four BookSettings fields, wired to write back into project.json's book key the same way DEFAULT_BOOK_SETTINGS already reads from it.

Evidence trail

  • backend/types/book.ts:97DEFAULT_BOOK_SETTINGS.
  • src/renderer/src/stores/projectStore.ts:86,121,266 — read-only fallback-merge pattern.
  • src/renderer/src/components/Editor/EditorPanel.tsx:169 — the one read site.
  • src/renderer/src/components/Project/ProjectPanel.tsx — confirmed no book-settings fields.
  • Wiki page corrected in the same pass: 1.15-Books-and-Chapters.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions