Skip to the content

Hikidashi引き出し

Era dates (和暦) and kanji numerals both ways, the dictionary forms of a conjugated word, a reading shared out over its kanji, words pulled from pasted text, and how hard a sentence is to read.

Hikidashi (引き出し) is a drawer: each tool is pulled out when it is wanted. About the name

Contents

Changelog

All notable changes to this project are written here. The format follows Keep a Changelog, and the project uses Semantic Versioning.

[Unreleased]

[1.1.0] - 2026-10-14

The furigana, era-year and numeral tools are custom elements with the family's standard embed attributes and a shared builder, and the package has an English and Japanese documentation site with a checked example for every export. The existing functions and their results are unchanged.

Added

  • Furigana, Japanese era-year and numeral custom elements, a shared embed builder and validated iframe routes. Attributes reflect to properties; structured results and host callbacks are available, with composed JSON-safe native events.
  • Share a package-independent embed builder for option controls, preview adapters, code tabs and shareable links.

Changed

  • Preserve repository-level guides and real source links for workspace SDKs, and include generated type-only entries in the shared documentation reference.
  • Generate valid default imports and retain their native declaration names in the HTML and Markdown references.
  • Budget the exhaustive docs browser walk by page count, retaining every page check and its original minimum deadline.
  • Keep large resource catalogues on the docs entry index and the active resource beside core navigation, preserving all reference pages while avoiding repeated catalogues on every page.
  • Add language-aware Docs and API navigation to the text-tool embed builder.
  • Keep text-conversion results in local getters/callbacks; public embed events and frame messages carry status metadata only. Add the embed job to the English/Japanese documentation guides.
  • The API link in the header reads "API" in English, so that the header takes the same number of rows in English and in Japanese on a phone, as the demo's test of a language change asks.
  • The demo's test of the family footer counts eight groups and thirty-two packages, after the sports packages joined the list.
  • Group the package family by kind, alphabetize each group, and include the geography packages and REST in Pieces in the shared footer and README.
  • Update the shared family description for addresses in all seven supported countries, including France and Germany.

[1.0.3] - 2026-10-09

Nothing that is exported has changed: the package's code is the same, and every export now carries the doc comment its documentation page is made from.

Added

  • A documentation site at https://johnmorrisdotca.github.io/hikidashi/docs/, in English and Japanese: a page for every export, with its definition, its parameters, what it returns and what null means, and examples that are run when the site is built, shown with what they print; Getting started, five how-to guides, two explanations, Troubleshooting & FAQ, and Upgrading (with Intl's Japanese calendar, wanakana and kuromoji compared); the changelog; search that runs in the browser; llms.txt and llms-full.txt. api.html stays, as an index whose old anchors each lead to the export's page.
  • Every export has a doc comment with @param, @returns and an @example, so an editor shows them on hover.
  • The README's title carries the English job beside the name, "Hikidashi 引き出し — Japanese text tools for JavaScript", and so does the npm description; the README has a size badge (6.4 kB minified and gzipped, measured with esbuild), an npm provenance badge, links to the documentation, and a note on installing the package under an English name (npm install japanese-text@npm:@johnmorrisdotca/hikidashi).
  • Repository only: scripts/docs-site.mjs, the family's documentation site generator, with pnpm docs:site, pnpm docs:check and pnpm size; src/docs-site.test.js and e2e/docs-site.demo.mjs; docs/ROLLOUT.md, the steps by which every package of the family adopts it; scripts/social-preview.mjs, which makes each package's 1280×640 social preview.

Changed

  • The README's section on the drawers keeps each drawer's first calls and the era table, and points to the documentation's "How each drawer works", where the longer explanations now are, in full.
  • The demo's header has a Docs link beside the API reference.

[1.0.2] - 2026-10-06

Nothing that was exported has changed. The README is the family's one layout, in full.

Added

  • The README has a picture of the demo on a desk and on a phone, in light and dark, taken from the demo by pnpm screenshots:readme (the pictures are in docs/images/ and are not in the package), a picture of each of the six drawers' panels, an Examples section of seven examples that run, examples for React, Vue, Svelte and Angular, a Theming section and an Accessibility section.
  • pnpm test:readme type-checks and runs every TypeScript and JavaScript example in the README against the built package, as a job of its own in CI; src/readme.test.js holds the README to the family's standard (sections in order, languages on code fences, pictures with alt text and a caption, no marketing words, version pins) in pnpm check; pnpm test:package fails if a picture or anything under docs/ is in the packed package.

Changed

  • pnpm pictures is pnpm screenshots:readme, and takes WebP pictures in light and dark under docs/images/; docs/desktop.jpg and docs/phone.jpg are gone.
  • The README's examples for /align and /extract now compile and run as written: they named a word list and a dictionary that were not defined, and the dictionary's value type is WordClass[].
  • Repository only: the package and everything it exports are unchanged. CONTRIBUTING.md is the family's one text with a section of its own for Hikidashi, held to the master in johnmorrisdotca/.github by src/family.test.js; ci.yml and pages.yml are the family's one text (pnpm check, the demo, and the package on Linux, macOS and Windows), and any jobs of the package's own after them.

Fixed

  • The API reference page wraps a long entry path instead of running about 2 px wider than a 360 px screen. Nothing the package exports has changed.

[1.0.1] - 2026-10-05

Nothing that was exported has changed.

Added

  • A test holds every @johnmorrisdotca/hikidashi@N version pin in the README to this package's major version.

Changed

  • The family's list, in the README and in the demo's footer, names all twenty-four packages, Karakuri and Houseki included.
  • The npm description is one sentence of 250 characters or fewer, so npm and its search show it whole; it is also the repository's About text. homepage is the demo site and author is "John Morris", the same in every package.
  • The GitHub Actions workflows use the current versions of the actions (checkout 7, setup-node 7, pnpm/action-setup 6; configure-pages 6, upload-pages-artifact 5 and deploy-pages 5 for Pages), which clears GitHub's Node 20 deprecation warning.

[1.0.0] - 2026-10-01

A drawer of small Japanese text tools, taken out of UmaKuma, a Japanese study app by the same author, so that other tools can use them. Each drawer is an entry of its own, and the package has no data and no dependencies.

  • @johnmorrisdotca/hikidashi/wareki: era years (和暦) both ways for 明治 to 令和. parseEraYear reads 令和6年, Heisei 3 and 令和元年; eraYearsOf, eraYearOf and eraOnDate go from a Western year or a day to its era year, answering a changeover year with both eras; each era carries its first and last day.
  • /numerals: kanji numerals both ways: parseJapaneseNumber (一億二千万, 1億2000万, 2万5千, formal 壱万), writeJapaneseNumber (also formal), readJapaneseNumber (hiragana, with the sound changes), and parseEnglishNumber (words and romaji).
  • /deinflect: dictionaryForms gives every dictionary form a conjugated verb or adjective could come from, with the kind of word it must be, for godan and ichidan verbs, i-adjectives, する and 来る (kana too); wordClassesOf reads a dictionary's parts of speech, plain or JMdict's tags.
  • /align: segmentWord shares a reading out over a word's kanji, kana and okurigana; kanjiAsWord; buildKanjiTest makes a seeded かん字テスト.
  • /extract: extractFromText pulls the words your dictionary knows and every kanji out of pasted text, capped and stripped of control characters; wordCandidates.
  • /difficulty: kanjiCost and sentenceDifficulty, from the grades or frequency ranks you hold.
  • A demo with a panel for each drawer, a Help switch, the cloth patches and English and Japanese, and browser tests (pnpm test:demo) at a phone's width and a desk's, in Chromium and WebKit.

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/hikidashi 1.1.0.