ヘルプ:Lua
このヘルプページを読む前に、テンプレートを理解しておくことをおすすめします。
Mediawikiには、プログラミング言語 Lua を使用した「モジュール」を作成できるScribunto拡張機能があります。この機能によって、ウィキボヤージュのページには Lua で書いたプログラムを埋め込むことができます。
このページにはいくつかの専門用語が含まれている可能性があります。もしもわからない言葉に出くわしたら、ウィキペディアで検索してみてください。きっと助けになるでしょう。また、ここでは Lua の書き方についてあまり深く言及しません。ウィキブックスにLuaのページがあるので、そちらを参照するといいでしょう。
プログラミングの概念
[編集]このページを読む上で、避けては通れない用語がいくつかあります。そういった基礎的な用語をはじめにみておきましょう。ここに載っていない単語は、ウィキブックスを参照してください。
あるいは実際のコードを見た方が理解しやすいかも知れません。実際のプログラムの解説は後述します。
- 変数
- 変数は、記憶装置の様なものです。変数に何かを覚えさせる(これを代入といいます)と、その後変数を呼んだ時に先程覚えさせたものが出てきます。
数字
という名前の変数に1
を代入した後、変数数字
を表示するプログラムを実行すると 1 が表示されます。 - 関数
- 関数は、呼び出されたときに何をするかが書かれた、動作の内容です。関数が実行されると、その関数の中に書いてある動作が行われていきます。例えば
答える
という名前の関数に「「答えは1」と表示する」という動作を書いた後、関数答える
を実行すると 答えは1 と表示されます。 - 関数には、パラメータというものが存在します。パラメータは、関数が実行される時に追加される情報で、関数の中で使うことができます。例えば{{pagebanner}}を使うとき、
{{pagebanner|ファイル:Pagebanner default.jpg}}
と書くとファイル:Pagebanner default.jpgがバナーに表示されます。これはテンプレート:Pagebannerという関数に「⧼ファイル名⧽をバナーに表示する」という動作が書かれていて、ファイル名のところにファイル:Pagebanner default.jpg
が埋め込まれたと考えられます。
モジュールを実行する
[編集]モジュールの実行の仕方、つまりウィキボヤージュのページに Lua のプログラムを埋め込む方法を説明します。
ページでモジュールを使いたい時は、マジックワード{{#invoke:}}
を使用します。モジュールには1つ以上の「関数」が入っています(後述)。ページ上ではこの中からどの関数を実行するか決めなければいけません。そのため、モジュールの関数を実行するには{{#invoke:⧼モジュール名⧽ | ⧼関数名⧽ }}
と書きます。試しにモジュール:Bananasのhello
という関数を呼び出してみましょう。
入力 | 出力 |
---|---|
{{#invoke:Bananas|hello}}
| Hello, world! |
関数にパラメータがあるときは、関数名の後にパイプ記号|
で区切って渡します。例:{{#invoke:BananasArgs|hello|Kate}}
書き方
[編集]他のモジュールはrequire( "Module:モジュール名" )
で呼び出すことが出来ます。
マジックワード{{#invoke:モジュール名|関数名}}
を使用して呼ばれる関数は、指定されたパラメータの他ページなどの情報を含んだ引数frame
を受け取ります。この関数は他のモジュールから使用しないでください。テンプレートと外部モジュールの両方で使用したい場合、関数のコアを_
で始まる別の関数に移し、frame
を受け取る関数から呼び出す手法がよく使用されます。
ウィキボヤージュのモジュール
[編集]モジュールの一覧はこちらから確認することができます。また、各モジュールにはそのモジュールの使い方の説明がついているかもしれません。