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?

誰でも文字を追加できる文字コード Scatcode を作った

0
Posted at

誰でも文字を追加できる実験的な文字コード Scatcode を作りました。こちらがデモサイトです。

デモサイトでできること

  • サイト下部の "Available characters" の表から文字を選んで、上部のテキストボックスにコピペできます。いずれも Unicode には (現時点で) 収録されていない、以下の文字種に対応しています。
    • Sitelen Pona: 人工言語トキポナの文字。
    • Tengwar (テングワール): J・R・R・トールキンの創作した架空文字。
    • Liparxe (リパーシェ): 架空言語リパライン語などの文字。
    • Old Hylian (古ハイラル文字): ゼルダの伝説 時のオカリナに登場する文字。
    • Futurama Alien Alphabet: アニメ フューチュラマに登場する文字。
    • Daedric: ゲーム The Elder Scrolls に登場する文字。
    • Proto-Sinaitic (原シナイ文字): 古代エジプトで使われていた文字の1つ。世界中のほとんどのアルファベットの祖先とも言われる。
    • Linear Elamite (エラム線文字): 古代のエラム帝国で使われていた文字。
  • テキストボックスの内容をコピーして、他のテキストエディタに貼り付けることができます。他のテキストエディタ上では文字化けしますが、デモサイトのテキストボックスに貼り付けなおせば、きちんと表示されます。
  • テキストボックス上で文字を選択すると、下部の表に「文字の構成」と「どのようにエンコードされているか」が表示されます。

仕組み

  • Scatcode では各文字が「ドメイン」に所属します。例えば Sitelen Pona のドメインは sitelenpona.gimite.net です。
  • Scatcode では Unicode のタグ文字と呼ばれる特殊な文字を埋め込むことで、文字列のドメインを切り替えることができます。
  • Scatcode のドメインは、そのドメインの /scatcode.json () によって定義されます。 /scatcode.json には、そのドメインの文字に対応した Web フォントなどが書かれています。
  • この仕組みにより、 (その気になれば、ではありますが) ドメインとフォントを用意することで、誰でも文字を追加できます。
  • デモサイト (で使われている React コンポーネント <ScatcodeText>, <ScatcodeTextArea> ) は文字列中のタグ文字からドメイン名を取り出し、そのドメインの /scatcode.json を読み込み、そこに記述された Web フォントを読み込み、以降の文字列にそのフォントを適用することで、 Scatcode の文字列を表示します。
  • 詳細は Github を見てください。
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?