Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Search Concordance

オープン
#50 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
静か
技術スタック
typescript
領域
frontend, search

調査の方向性

ブロックされている issue #48 から始めて concordance index と panel を理解し、その後 src/utils/search-fold.ts と src/utils/analysis-query.ts を読んで、共有されている folding と indexing の先行例を確認してください。未解決の UX の問題を解決する前に、#186、#155、#117、#192、および AGENTS.md を確認してください。完了とは、panel が検索、ソート、カバレッジ、頻度について合意された動作を、状態を永続化せずにサポートすることです。

索引モデルが issue の本文から書いたものです。

説明

up next

Search, sort, and filtering over the concordance index built in #48 — including the coverage question the Analysis Catalog deliberately cannot answer: what haven't I glossed yet?

Blocked by #48: there is nothing to search until the index and its panel exist.

Scoping stub. This issue was title-only; the body below was drafted from the surrounding code and issues to make it schedulable, and records open questions rather than deciding them. Correct it freely.

Scope

  • Search over surface forms, using foldForSearch from src/utils/search-fold.ts (#192, in review) — the same fold the catalog uses, so αρχη finds ἀρχῇ and salom finds šālôm. Do not add a second fold, and do not use normalizeSurfaceForm here — #186 is emphatic that the search fold and the identity normalization must stay separate, and #48 buckets rows on the identity one.
  • Fold once at index build time, not per keystroke, following the searchText precedent in src/utils/analysis-query.ts.
  • Sort — occurrence count descending as the default, plus alphabetical by surface form. Collate with Intl.Collator on the source project's platform.languageTag; code-point ordering is wrong for Greek and Hebrew.
  • Coverage filters — the reason this issue carries weight beyond "add a search box":
    • unglossed only (no analysis for any occurrence)
    • partly glossed (some occurrences analyzed, some not)
    • fully glossed
  • Frequency filters — e.g. hapax legomena, or a minimum occurrence count. Cheap once the index exists and genuinely useful for triaging what to gloss next.
  • Search / sort / filter state stays ephemeral useState, matching #186's reasoning: persisting a filter across a reload is the classic "where did my data go" bug.

Why this is the coverage surface

#186 routes coverage questions here explicitly: "Coverage questions ('what haven't I glossed?') are out of scope and belong to #50 / #117." #117 answers it per book (counts and last-modified); this answers it per word. Between them they cover "how far along am I" and "what specifically is left".

Relationship to Find (#155)

#155 (Ctrl+F) and this issue are both text search and will confuse users if they behave differently. Find is a transient in-view jump-to-next; this is a persistent ranked list. They should at minimum share the fold, and the wording of "no matches" and the match-highlighting treatment should agree. Worth designing the two together even though they ship separately.

Open questions

  • Does search match glosses too, or only surface forms? Matching glosses makes this overlap the catalog's search; restricting to surface forms keeps the two panels' jobs distinct. Leaning surface-forms-only, but not decided.
  • Regex or morphological search? Out of scope for a first pass, but decide whether the query shape forecloses it.
  • Should this go to user-questions.md for review outside the dev team? (per AGENTS.md UX-decisions guidance)

Blocked by: #48. Related: #186, #155, #117, #192.

主要言語
TypeScript
スター
2
フォーク
0
平均マージ
1日 13時間
マージ済み PR(30日)
73

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

sillsdev/interlinearizer-extension のほかの issue

sillsdev/interlinearizer-extension の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。