Skip to content

feat(reader): the places that refer to a line, and the sources, as search results - #733

Merged
kdroidFilter merged 1 commit into
masterfrom
claude/ref-links-interface-5eb6f6
Oct 28, 2026
Merged

kdroidFilter merged 1 commit into
masterfrom
claude/ref-links-interface-5eb6f6

Conversation

@kdroidFilter

Copy link
Copy Markdown
Owner

Summary

A new מראי מקומות pane lists the places that refer to the selected line: its REFERENCE and מסורת הש״ס links (both directions) and its עין משפט (Rambam, Tur, Shulchan Aruch…). None of these links were shown until now. The מקור pane is now drawn by the same view.

Both panes read like the search results:

  • one card per book, its first passage cut around its quote of the line (the quote in bold), its other places behind "עוד N מקומות";
  • filter tabs: עין משפט and מסורת הש״ס first, then by category (a category holding most books is split, e.g. תנ״ך → ראשונים / אחרונים). In מראי מקומות they show from 6 books; in מקור as soon as there are two categories;
  • a click opens the book at that line.

Bereshit 1:1 has 164 places in 38 books: they become 38 cards.

Details

  • One view, one loader (LinePlacesView, features/bookcontent/references) for both panes, on SeforimLibrary's new getReferencesForLines / getSourcesForLines (feat(dao): load a line's cross-references and sources with their books SeforimLibrary#138, submodule bumped).
  • Shared with search: ResultRow, ResultTitle, SnippetText, FilterTabs are extracted from SearchResultScreen and used by both.
  • Zoom: the results follow the text size in the panes and in the search list (LocalResultTextScale); tabs and status lines keep their size. A wide pane under the text lays its books out in columns (fewer when zoomed in).
  • Headings: a daf or perek heading lists the places of its whole section, as the commentaries do; the rail buttons are enabled by the same lines.
  • Performance: a passage's quote is found only for the passages on screen, off the UI thread, against the line it links to. Bereshit chapter 1 (31 lines, 412 places) loads in about 20 ms warm (263 ms before).
  • Panes: panes docked beside the text sit side by side instead of stacking, and the panes follow the rail's button order by default.
  • Removed: the legacy sources paging, the per-line "selected sources" state and the SOURCE branches of LineTargumView (about 400 lines).
  • Session: showReferences is appended at the end of the persisted tab state (ProtoBuf field numbers); the now unused sources selections are kept for the same reason.

Testing

  • New unit tests for the grouping, tabs, places and snippets (LineReferencesTest); the sources tests adapted.
  • :SeforimApp:jvmTest: 1236 tests, 1 failure, WidgetSizesScreenshotTest, which also fails on master.
  • detekt passes; ktlintCheck reports only the import order in E2eQuoteLinksScenario.kt, also failing on master.
  • Run locally in the app; the zoom, the bottom-dock layout and the dark theme were not checked with screenshots.

…arch results

A new "מראי מקומות" pane lists the places that refer to the selected line:
its REFERENCE and מסורת הש״ס links in both directions and its עין משפט
(Rambam, Tur, Shulchan Aruch...), until now hidden. The "מקור" pane is
drawn by the same view. Both read as the search's results: a book at a
time, its first passage cut around its quote of the line, its other
places behind "עוד N מקומות", filter tabs by kind and category. A click
opens the book there.

- One view (LinePlacesView) and one loader for both panes, on
  SeforimLibrary's getReferencesForLines / getSourcesForLines; the
  legacy sources paging, the per-line "selected sources" state and the
  SOURCE branches of LineTargumView are removed.
- The result row, title, snippet, filter tabs and links are shared with
  the search page (ResultRow, ResultTitle, SnippetText, FilterTabs).
- The results follow the text zoom in the panes and the search list
  (LocalResultTextScale); tabs and status lines keep their size.
- A daf or perek heading lists the places of its whole section, as the
  commentaries do; the rail buttons are enabled by the same lines.
- The quote of each passage is found only for the passages on screen,
  off the UI thread: Bereshit chapter 1 loads in about 20 ms.
- Panes docked beside the text sit side by side, in the rail's order.
- showReferences is appended at the end of the persisted tab state
  (ProtoBuf field numbers); the now unused sources selections stay for
  the same reason.
- SeforimLibrary bumped to the master with #138.

Signed-off-by: Elie Gambache <elyahou.hadass@gmail.com>
@kdroidFilter
kdroidFilter merged commit 32ad7b1 into master Oct 28, 2026
3 of 9 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 28, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant