GoldentTuft / elm-japanese-typing / Typing

Japanese Typing Library for Elm.

Core

newData : String -> Rules -> Data

タイピングすべき文字列とRulesからDataを生成します。

typeTo : String -> Data -> Data

Dataに入力をします。

getState : Data -> State

Dataの状態を返します。

getFixed : Data -> String

入力し終わって確定した文字列を返します。

getRest : Data -> String

入力されていない文字列を返します。

getHistory : Data -> String

入力したキーを返します。

makeRomaji : Data -> Maybe String

入力すべきローマ字を返します。

Rules

romanTable : Rules

ローマ字入力のテーブルです。

defaultPriorities : Rules -> Rules

デフォルトの優先度をルールに適用します。

defaultPriorities romanTable

setPriorities : List PrintRule -> Rules -> Rules

優先度をRulesにセットします。

setEfficiency : Rules -> List PrintRule

コスパによる優先度を設定します。

"xtu" "っ" => 1/3=0.33 "xtsu" "っ" => 1/4=0.25

setFavoriteKeys : List String -> Rules -> List PrintRule

たぶんs/c, j/z, k/c, f/h, t/cと、sy,shのy/hで使います。

setFavoriteStart : List String -> Rules -> List PrintRule

たぶんx,lから始まるltu,xtuなどの設定に使います。

insertLowPriorities : List PrintRule -> Rules -> Rules

Rulesに設定されている優先度より低く、新たに優先度を設定します。

getSamePriority : Rules -> Rules

優先度の頭がないかチェックするために使う(手動で目視)。

Types


type Data

タイピングに利用されるデータです。


type alias Rules =
List Rule

変換テーブルです。


type alias PrintRule =
{ input : String
, output : String
, priority : Basics.Int 
}

表示するローマ字を設定するのに使います。

Typing.romanTable
    |> Typing.setPriorities
        [ Typing.PrintRule "n" "ん" 3
        , Typing.PrintRule "xn" "ん" 2
        , Typing.PrintRule "nn" "ん" 1
        ]


type State
    = Waiting
    | Typing
    | Miss
    | Finish

Dataの状態です。

getState data