0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

History TechAdvent Calendar 2024

Day 12

歴史的文字入力用のWeb IME作成しました ~龍樹(Nagarjuna)~

Last updated at Posted at 2024-12-14

ただでさえほぼ1人でヒストリーテックアドベントカレンダー書いてるのに、4日以上書くの貯めたまま、他の事やってました。
別にこれやらなくてもネタは(書く分量はでかくなりますが)ないわけではないのですが、一度始めると完成させないと、気がかりで他の事に気を払えなくて…。
なんとかこれができたんで、頑張って他の記事書きます。
というか、俺程度の技術者が、数日でほぼゼロから新しいnpmモジュール完成させられるとか、生成AIパワーすごいっすね。

歴史的文字の表示/入力用Web環境

今はあまり使われないが、歴史的に使われる文字というのはよくあります。
仏教の石造物によく使われる梵字(悉曇文字)や、漢字の異体字、古文書によく使われる変体仮名などです。
このような文字は、ユニコードで整備されフォントも少ないながら用意されて、材料としては使える環境がそろってきていながら、ラストワンマイルともいえる入力するためのツールと、それを確認したり、表示したりする環境が整備されていないために、まだ完全に使われる状況にはなっていないと思います。

そこで、歴史調査のWebツールなどで、歴史的文字の入力や表示用の環境を作れるJavaScriptライブラリを作りました。
ツール名は龍樹(Nagarjuna)です。

動作デモ

特徴

  • 変体仮名(NINJAL変体仮名フォント使用)
  • 悉曇文字(Noto Sans Siddham使用)
  • 漢字異体字(Noto Sans JP使用)
  • フォントの自動読み込み
  • モバイル対応IME機能

使い方

表示用途のみ(フォントローダー)

特殊文字の表示のみが必要な場合:

import { FontLoader } from 'nagarjuna';

const fontLoader = new FontLoader();

// 必要なフォントのみを読み込み
await fontLoader.loadFonts({
  hentaigana: true,  // 変体仮名を使用
  siddham: true,     // 悉曇文字を使用
  itaiji: true       // 異体字を使用
});

// フォントファミリーの設定
const element = document.getElementById('target');
element.style.fontFamily = fontLoader.getFontFamilyString({
  hentaigana: true,
  siddham: true,
  itaiji: true
});

IME機能を使用

入力機能が必要な場合:

import { IMEManager } from 'nagarjuna/ime';

// IMEマネージャーの初期化
const manager = IMEManager.getInstance();

// 入力フィールドへのIME機能の追加
const input = document.querySelector('input');
manager.attach(input, {
  options: {
    enabledTypes: {
      hentaigana: true,  // 変体仮名変換を有効化
      siddham: true,     // 悉曇文字変換を有効化
      itaiji: true,      // 異体字変換を有効化
      buddha_name: true  // 仏名変換を有効化(悉曇文字の一部)
    }
  }
});

// IMEオプションの動的更新
manager.updateOptions({
  enabledTypes: {
    hentaigana: true,
    siddham: false,
    itaiji: true,
    buddha_name: false
  }
});

使ってみてください

まだ作ったばかりで、自分でもどこのプロジェクトにも投入していないツールですが、これまでになかったプロジェクトだと自負しています。
ぜひ使ってみて、改善点や追加機能など寄せてください。
将来的には、大谷正幸さんの許可を得られれば、富士講の角行系文字フォントなどにも対応してみたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?