Doc cleanup

This commit is contained in:
Scott Tomaszewski 2026-06-02 20:51:32 -04:00
parent aef55d317d
commit ad89a157b4
5 changed files with 112 additions and 29 deletions

View file

@ -1,4 +1,8 @@
# Changelog # Disciples Journal Releases
New changes land under `## Unreleased`; at release time it is renamed by hand to the
version tag (see [docs/build-and-release.md](docs/build-and-release.md)). Each `## `
header text is **exactly** the release tag (no leading `v`).
## Unreleased ## Unreleased

View file

@ -52,5 +52,9 @@ change the code, update the matching doc in the same change:
- **Add a new reference format or change parsing** → update `docs/reference-formats.md`. - **Add a new reference format or change parsing** → update `docs/reference-formats.md`.
- **Introduce a workaround, magic number, or non-obvious behavior** → give it a home: - **Introduce a workaround, magic number, or non-obvious behavior** → give it a home:
a precise inline comment if local, a `docs/gotchas.md` entry if cross-cutting. a precise inline comment if local, a `docs/gotchas.md` entry if cross-cutting.
- **Defer something out of scope** → add a `FOLLOWUPS.md` entry; promote it to - **Ship a user-facing change** → add a bullet under `## Unreleased` in `CHANGELOG.md`.
`ROADMAP.md` (and a plan doc) if it grows into a real effort. - **Hit a small in-scope tangent** (worth fixing, but it'd derail the current task) →
add a numbered `## N.` section to `FOLLOWUPS.md`, and clear it before the next feature.
- **Plan a new feature or larger effort** → add a numbered `## N.` section to
`ROADMAP.md` (and a plan doc once work starts). `FOLLOWUPS.md` and `ROADMAP.md` serve
different lifespans — don't fold one into the other.

View file

@ -1,22 +1,28 @@
# Workspace Follow-Ups # Follow-ups
Lightweight tracking for tasks identified during other work that weren't tackled in the original scope. These are intentionally deferred — captured here so they don't get lost. In-scope tangents found while working — important to fix, but they'd derail the task
at hand. Add a numbered `## N.` section below instead of chasing them now, and
**clear these before starting a new feature.** New features and larger efforts go in
[ROADMAP.md](ROADMAP.md), not here.
Add new entries at the top. Remove entries when done (commit message can reference them). Mark a finished item with a `**Status:** done` line rather than deleting it; completed
items get pruned and the rest renumbered on a periodic cleanup pass. Each entry
carries the repo's standard fields (Identified / What / Why / Context / Effort), where
Effort is sized XS (<1 h) · S (14 h) · M (1 day) · L (multi-day).
## Entry format <!-- Template — copy for each item, numbering sequentially:
## N. Short title
**Status:** open
- **Identified:** YYYY-MM-DD, the work it came up in.
- **What:** brief description of the change.
- **Why:** the motivation / what value it adds.
- **Context:** file paths, gotchas, anything that saves the next person grep time.
- **Effort:** XS | S | M | L
-->
Each entry should include: ## 1. Finish pop-out window styling
- **Identified:** YYYY-MM-DD and the work it came up in **Status:** open
- **What:** brief description of the change
- **Why:** the motivation / what value it adds
- **Context:** background, file paths, gotchas, anything that would save the next person 10 minutes of grepping
- **Effort:** rough sizing — XS (<1 h), S (14 h), M (1 day), L (multi-day)
---
## Finish pop-out window styling
- **Identified:** 2026-05-31, funky-logic sweep. - **Identified:** 2026-05-31, funky-logic sweep.
- **What:** Styles aren't fully ported into freshly created pop-out windows. - **What:** Styles aren't fully ported into freshly created pop-out windows.

View file

@ -1,20 +1,85 @@
# Roadmap # Roadmap
Larger planned or in-flight efforts. For small deferred findings see New features and larger planned / in-flight efforts, tracked as numbered `## N.`
sections. For small in-scope tangents to clear before the next feature see
[FOLLOWUPS.md](FOLLOWUPS.md); for released history see [CHANGELOG.md](CHANGELOG.md). [FOLLOWUPS.md](FOLLOWUPS.md); for released history see [CHANGELOG.md](CHANGELOG.md).
> Entries below are **observations** about likely directions, inferred from the > Entries below are **observations** about likely directions, inferred from the
> code — not committed plans. Promote one to a real plan/spec doc (and a > code — not committed plans. When work actually starts, promote the item to a real
> `## Status` section) when work actually starts. > plan/spec doc and add a `## Status` line here. Mark a shipped item
> `**Status:** done`; prune and renumber on a periodic cleanup pass.
## No efforts currently in flight. Each item carries a **Lens** (User-facing / Technical health / Growth & ecosystem)
and an **Effort** tag: XS (<1 h) · S (14 h) · M (1 day) · L (multi-day).
## Observed future directions ## 1. Multiple Bible versions
- **Multiple Bible versions.** The storage path scheme is already - **Lens:** User-facing · **Effort:** L
- The storage path scheme is already
`<bibleContentVaultPath>/<preferredBibleVersion>/...` and settings expose a `<bibleContentVaultPath>/<preferredBibleVersion>/...` and settings expose a
"preferred version", but `BookNames`, `ESVApiService`, and rendering assume ESV "preferred version", but `BookNames`, `ESVApiService`, and rendering assume ESV
end-to-end. Generalizing would mean a version-agnostic content-source seam. end-to-end. The headline feature; needs a version-agnostic content-source seam.
- **A test harness.** There are no automated tests. `BibleReference.parse` (pure,
pattern-heavy, highest-risk logic) is the natural first target. See ## 2. Bundled offline public-domain version (KJV/WEB)
[FOLLOWUPS.md](FOLLOWUPS.md).
- **Lens:** User-facing · **Effort:** M
- Today the plugin is inert without an ESV API token. Shipping a public-domain
translation bundled in the plugin means it works on install with zero setup — a big
onboarding win and a natural first consumer of the multi-version seam (#1).
## 3. Copy / export passage with attribution
- **Lens:** User-facing · **Effort:** S
- A "copy passage" action that emits clean markdown/text and auto-appends the required
ESV copyright line. Serves the journaling use case and respects the copyright
obligation noted in `README.md`.
## 4. Touch / mobile interaction
- **Lens:** User-facing · **Effort:** M
- `isDesktopOnly` is `false`, but the core interaction is hover-to-preview, which
doesn't exist on touch. Define a tap/long-press affordance so the plugin is actually
usable on mobile.
## 5. Reading plans / daily reading
- **Lens:** User-facing · **Effort:** M
- A code block or command that surfaces a day's passage from a plan (e.g. M'Cheyne,
chronological). Leans on existing passage rendering; turns the plugin from a
reference tool into a daily-habit tool.
## 6. Expand the test harness
- **Lens:** Technical health · **Effort:** M
- `BibleReference.parse` is covered; extend to `BookNames` normalization, `BibleFiles`
path/filename logic, and the `BibleContentService` resolution funnel
(cache → note → API). The highest-leverage safety net before the multi-version
refactor (#1). See [docs/testing.md](docs/testing.md).
## 7. Multi-source content seam
- **Lens:** Technical health · **Effort:** L
- Decouple "where content comes from" from ESV specifically (bible-api.com, local
USFM/USX import, etc.). Pairs with multiple versions (#1) but is the *source* axis
rather than the *version* axis; enables offline import workflows.
## 8. Rendering robustness: finish pop-out styling + large-passage perf
- **Lens:** Technical health · **Effort:** M
- Promote the pop-out styling gap tracked in [FOLLOWUPS.md](FOLLOWUPS.md), and address
rendering very long passages (lazy/virtualized render, cache eviction) so whole-book
blocks don't jank.
## 9. Community plugin store submission
- **Lens:** Growth & ecosystem · **Effort:** SM
- The repo already follows `eslint-plugin-obsidianmd` and gates on lint/tests. Getting
listed in Obsidian's community catalog is the single biggest distribution lever and
mostly a compliance/review task.
## 10. Clickable cross-references & footnotes
- **Lens:** Growth & ecosystem · **Effort:** M
- The ESV HTML already carries footnotes and cross-references (rendered today as static
text). Making cross-refs clickable to open/preview the target passage turns rendered
passages into a navigable study surface.

View file

@ -31,7 +31,11 @@ The repo follows `eslint-plugin-obsidianmd` (see `eslint.config.mjs`) and the
## Releasing ## Releasing
Releases go through the `justfile` (`just release <version>`), which: **Before releasing**, rename the `## Unreleased` header in [../CHANGELOG.md](../CHANGELOG.md)
to the version tag — the `justfile` does **not** touch the changelog (it creates the
GitHub release with empty notes), so this promotion is a manual step.
Releases then go through the `justfile` (`just release <version>`), which:
1. Refuses to run if `git status` is not clean. 1. Refuses to run if `git status` is not clean.
2. Runs `npm test` — a failing test aborts the release before any files are mutated. 2. Runs `npm test` — a failing test aborts the release before any files are mutated.
@ -39,7 +43,7 @@ Releases go through the `justfile` (`just release <version>`), which:
5. Builds with `npm run build-no-check`. 5. Builds with `npm run build-no-check`.
6. Commits (`Prepares for release '<version>'`) and pushes. 6. Commits (`Prepares for release '<version>'`) and pushes.
7. Creates a GitHub release with `gh`, uploading `main.js`, `manifest.json`, and 7. Creates a GitHub release with `gh`, uploading `main.js`, `manifest.json`, and
`styles.css` as assets. `styles.css` as assets (release notes are left empty — the changelog is the record).
### gh token note ### gh token note