Tools

Anki で JavaScript を使う

投稿日:2021年8月26日 更新日:

Anki日本語マニュアル Wiki には、JavaScript に対して以下の記載があります。

(省略)これは高度な機能であり、特定の Javascript が動作することを保証できませんし、動かない場合のサポート提供もできません。迷ったら、使用を避けるのが一番です。
カード表示の実装は Anki クライアントごとに異なっており、プラットフォームごとに動作のテストをする必要があります。(省略)

カードとテンプレート (Cards and Templates) – Anki日本語マニュアル Wiki*

確かにその通りだろうと思うのですが、通常 Anki はプライベートなツールであり、自分で作ったデッキは自分で使うだけなので、他人の使うプラットフォームまでテストする必要はそもそもないでしょう。自分の環境で動けば十分です。

また、JavaScript の実装に関しても 最近では標準化が進んでいるおかげで、よほど細かい機能でない限り、1つのプラットフォームで動作すれば他のプラットフォームでも動くだろうと予想されます。

ところで、Anki のテンプレートに JavaScript コードを記述する際、私は以下のように書いています。

{{Front}}

<script> 
(() => {
  // ここにコードを書く

})()
</script>

実行したいコードを無名関数に閉じ込め、その無名関数を即時実行しています。こうすることで、この中で定義した変数の影響範囲がこの無名関数内に限定され、グローバルなスコープを汚染することがなくなります。但し、Anki だとそれほど複雑な処理を書くことはないでしょうから、ここまでする必要はないかもしれません。

ときどき、共有デッキの記述を見て参考にさせて貰っています。よりよい書き方があれば取り入れていきたいと思っています。

📂-Tools
-

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

WSL

【WSL 2】1つのディストロから複数のインスタンスを作成する方法

1つのディストロ (WSL 2) から複数のインスタンスを作成する方法について説明します。

Anki

Anki: テンプレート内でのみ使う画像ファイルとマスターとしての画像ファイル

Ankiにおける、テンプレート内でのみ使う画像ファイルと、マスターとしての画像ファイルについて書きました。

Linux

ウェブサーバー(Linux) 上で特定のクライアントとの通信を記録してWindowsで内容を確認する

ウェブサーバー(Linux) 上で特定のクライアントとの通信を記録してWindowsで内容を確認する方法について説明します。

英辞郎

英辞郎 on the WEB はどこに行った?

最近、株式会社アルクのURL https://www.alc.co.jp/ は完全にコーポレートサイトになったようです。英辞郎 on the WEB は全く表示されなくなり、英単語を調べることはできま …

Anki

Anki: 質問文をタイプライター表示する

Ankiで、質問文をタイプライター表示する方法を紹介します。