LoginSignup
0
0

Macのライブ変換でも使える、ふりがなを自動で入力するjQueryのプラグインを作ってみた

Posted at

jQueryでふりがなを自動入力するプラグインはこちらの「jquery.autoKana.js」が有名かと思いますが、Macのライブ変換でうまく動作しませんでした。
https://github.com/harisenbon/autokana

そこで、Macのライブ変換がONの場合でも動作する、ふりがな自動変換を作ってみました。

作ったもの

Macのライブ変換で勝手に入力文字が漢字に変換される場合でも、ふりがなを出力します。

画面収録 2024-06-09 11.07.57.gif

デモサイト

ここで動作確認ができるはずです。
Github Pages を使ってみました。
https://int314.github.io/autoKana/

コード

やったこと

ローマ字とひらがな(カタカナ)の辞書を作成して、keyupイベントの時に変換してます。
押されたキーを覚えておいて、辞書とマッチしたら出力するので、ライブ変換でもなんとか変換できるようになりました。

return katakana ? katakanaMap[input] || '' : hiraganaMap[input] || '';

ローマ字とひらがなの辞書

const hiraganaMap = {
  'a': '', 'i': '', 'u': '', 'e': '', 'o': '',
  'ka': '', 'ki': '', 'ku': '', 'ke': '', 'ko': '',
  'sa': '', 'si': '', 'su': '', 'se': '', 'so': '',
  'ta': '', 'ti': '', 'tu': '', 'te': '', 'to': '',
  'na': '', 'ni': '', 'nu': '', 'ne': '', 'no': '',
  ...

ローマ字とカタカナの辞書

const katakanaMap = {
  'a': '', 'i': '', 'u': '', 'e': '', 'o': '',
  'ka': '', 'ki': '', 'ku': '', 'ke': '', 'ko': '',
  'sa': '', 'si': '', 'su': '', 'se': '', 'so': '',
  'ta': '', 'ti': '', 'tu': '', 'te': '', 'to': '',
  'na': '', 'ni': '', 'nu': '', 'ne': '', 'no': '',
  ...

一生懸命キーボードを打ち込み、辞書を作成しました...😅

Viteを入れてみた⚡️

メインのjsとひらがな・カタカナ辞書を別のファイルにして整理したかったので、複数のjsをまとめるバンドラーを導入しました。
バンドラーはWebpackの記事が多くヒットしましたが、最近名前をよく聞くしカッコ良さそうなViteにしました。

ついでにMinifyもしてjsファイルを圧縮してます。

Viteの設定ファイルを以下のようにして、

vite.config.js
import { defineConfig } from 'vite';

export default defineConfig({
  build: {
    rollupOptions: {
      input: 'src/jquery.autoKana.js',
      output: {
        entryFileNames: 'jquery.autoKana.min.js',
      }
    },
    outDir: 'dist',
    emptyOutDir: true,
    minify: true
  }
});

npm run buildするとdistフォルダの配下に

  • jquery.autoKana.js
  • hiraganaMap.js
  • katakanaMap.js

をまとめたjquery.autoKana.min.jsが出力されるようになります。

最終的にこんな感じのフォルダ構成になりました。

.
├── dist
│   └── jquery.autoKana.min.js
├── index.html
├── src
│   ├── hiraganaMap.js
│   ├── jquery.autoKana.js
│   └── katakanaMap.js
└── vite.config.js
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