github bee-san/hachidori 0.3.2
Hachidori 0.3.2

4 hours ago

🐦 Hachidori 0.3.2

Blurred definitions can now wait for a click, so a stray hover no longer gives the answer away. Frequency dictionaries now work as they do in Yomitan, with one average, and names follow the order of the dictionaries you rank first. Kanji entries can be mined to Anki. Large libraries can be exported as a backup, a folder of dictionaries imports in one go, and a backup made with 0.3.1 restores in this version.

πŸ™ˆ Reveal blurred definitions with a click

Settings β†’ Reading β†’ Definition blur β†’ Reveal has a third choice, On click only, beside After a delay and On hover only. Hovering and time never reveal; click a definition or the compact summary when you are ready. With the keyboard, Tab to a blurred definition (a screen reader announces it as "Reveal definitions") and press Enter or Space. Until you reveal them, nothing inside the blurred definitions can be opened or looked up, so the click only reveals. Automatic pronunciation still waits and plays once at the reveal. (#599, fixes #598)

πŸ“Š Frequencies, the way Yomitan reads them

  • One average. A frequency dictionary that does not say whether it lists ranks or counts, such as CC100 or BCCWJ, is read as a rank list, as Yomitan does. With Design β†’ Frequency labels β†’ Show frequency averages on, it now averages with Jiten's ranks: a word ranked 15,700 by Jiten and 26,700 by CC100 shows one Avg rank of about 19.8k instead of two separate averages. The average uses Yomitan's rule (each dictionary's first value, harmonic mean), so Anki's {frequency-harmonic-rank} gives the same number. (#588, #591)
  • Each dictionary beside the average. Design β†’ Frequency labels β†’ Show each dictionary's frequencies with the averages keeps each dictionary's value after the average. It is off by default, so with averages on you see only the average, as in Yomitan. (#591)
  • Sort direction for lists that don't say. Choosing such a dictionary under Reading β†’ Frequency sorting sets its direction from sample words, as Yomitan does; an inconclusive sample reads it as ranks, lowest first. Definition blur's automatic direction reads it as ranks too. The original Innocent Corpus counts occurrences without saying so: choose Descending as its Blur threshold direction. (#586, #588)
  • Names follow your dictionary order. When a frequency doesn't separate two readings of a name, the reading from the dictionary you ranked higher comes first, as in Yomitan: η₯žεŽŸ reads かんばら from JP Wikipedia Proper Nouns before Pixiv's かみはら. With no sort dictionary, or with the sort order on Automatic, results follow your dictionary order, and Settings now says so: None β€” dictionary order and Automatic β€” dictionary order. (#576, #589)
  • JPDB's kana rank stays its own. JPDB v2.2 Kana Display Only shows θͺ­γ‚€ as 312, 19896γ‹•. Hachidori no longer labels the word's rank 312 as the kana form's rank. (#590)

πŸ€„ Kanji

  • Mine kanji entries. When a clicked kanji opens a kanji dictionary's entry (readings, meanings, stroke count), that view now has the Anki button and your custom Anki buttons in the Default, JL, Bee and Nazeka themes. Templates gain {character}, {onyomi}, {kunyomi} and {stroke-count}. (#592)
  • Your clicked-kanji dictionary stays chosen. Disabling and re-enabling it, for example Bee's Ultimate Kanji Dictionary, no longer leaves kanji clicks failing with "Kanji lookup failed". (#593)

πŸƒ Anki

  • Sentence furigana. {sentence-furigana-plain} now gives 今ζ—₯[きょう]は<b>食[た]べます</b>と 言[い]γ£γŸγ€‚ and {sentence-furigana} the same in ruby, so the Kiku preset's SentenceFurigana field gets readings. (#595)
  • Smaller Anki cards is a regular option under Anki β†’ Card formatting, off by default. If you turned it on as an experiment, it stays on. (#587)
  • Pressing Enter on the popup's Anki button, to add a note or to view existing notes, keeps the popup open, and the button gets the keyboard focus back when it finishes. (#564)
  • Plain-text Anki definitions from very deeply nested dictionary entries no longer fail to export. (#585)

πŸ“š Dictionaries

  • A folder of dictionaries imports in one go. A batch no longer loses archives to "the dictionary engine is busy mutating". Each archive waits for the previous one ("Waiting for the previous import to finish…"), a failed attempt is retried, and Cancel import stops the rest. (#581, fixes #578)
  • See which dictionaries need an update. Dictionaries β†’ Updates lists available updates and failed checks by name, with Update, Retry update or Check again for each. Update all includes disabled dictionaries. (#565)
  • A stalled update check no longer holds up the rest. A dictionary whose update server stops answering fails after two minutes without data, and the others are checked. (#584)
  • Bee's Theme keeps All. With a Grammar group first, Bee's Theme showed only that group. All now always shows every definition, and Grammar filters only when you choose it. (#566)

πŸ’Ύ Backups

  • Large libraries export. Export backup no longer fails in Chrome with "Check internet connection" on a large library. With Chrome's usual storage (OPFS), the archive is written to a file as it is made instead of being assembled in memory. (#580, fixes #577 and #579)
  • Settings restore one at a time. A setting this version can't read is skipped on its own and the rest of the backup's settings are kept; before, one such setting meant all of the backup's reader settings were skipped. A backup from a newer Hachidori restores too, without what it added. (#580)
  • Checked from 0.3.1. A new browser test exports a backup with the released 0.3.1 and restores it into this version, then exports and restores again with this version. Dictionaries, settings, Anki settings, the personal dictionary, lookup counts and known words all come back. (#600)

✨ No longer experimental

Design β†’ Theme Store and Reading β†’ Word highlighting are always available. Word highlighting stays off until you turn it on, and your theme choice is kept. (#587)

🎬 Netflix mining (experimental)

Drag a subtitle line to move it; it stays where you put it until you reload. Opening a lookup pauses the video, even without hovering the subtitle first. (#583)

🐞 Better bug reports

Errors are kept from the moment each part of Hachidori starts, including the errors Settings showed you and which buttons you pressed before them (never what you typed or looked up), and they survive a browser restart. Settings β†’ Advanced β†’ Troubleshooting β†’ Get debug info includes them, and Copy error details beside an error copies a report you can paste into an issue. (#582)

πŸ› οΈ Under the hood

  • The dictionary engine (hoshidicts) is updated for the dictionary-order tie-break. (#576)
  • Test tooling: jsdom 30.1.2, puppeteer-core 25.13.0, @puppeteer/browsers 3.2.4 and undici 8.12.3. They are used only in development and are not part of the extension. (#568, #569, #570, #594)
  • CI: actions/setup-node 7.1.0, actions/upload-artifact 7.0.2 and actions/download-artifact 8.0.2; Dependabot runs monthly and the weekly note-type check is gone. (#571, #572, #573, #567)
  • The issue template asks four questions. (#574)
  • The release guide and the 0.3.1 speed claim are corrected. (#563)
  • The theme guide describes what the click reveal does to a theme's popup, and the new backup test no longer fails now and then while waiting for a clicked kanji. (#601, #602)

πŸ“¦ Downloads

  • *-chrome.zip: extract it, open chrome://extensions, enable Developer mode, choose Load unpacked, and select the extracted folder. To update an existing unpacked installation, replace its files and click Reload.
  • *-source.zip: the matching complete source, including the engine and the sources of bundled dependencies.
  • *-SHA256SUMS.txt: checksums for both packages.

Chrome 128 or newer is supported. Your dictionaries and saved settings are kept, and you don't need to reimport anything.

Full changelog: 0.3.1...0.3.2

Don't miss a new hachidori release

NewReleases is sending notifications on new releases.