コンテンツにスキップ

ヘルプ: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:⧼モジュール名⧽ | ⧼関数名⧽ }}と書きます。試しにモジュール:Bananashelloという関数を呼び出してみましょう。

入力出力
{{#invoke:Bananas|hello}}
Hello, world!

関数にパラメータがあるときは、関数名の後にパイプ記号|で区切って渡します。例:{{#invoke:BananasArgs|hello|Kate}}

書き方

[編集]

他のモジュールはrequire( "Module:モジュール名" )で呼び出すことが出来ます。

マジックワード{{#invoke:モジュール名|関数名}}を使用して呼ばれる関数は、指定されたパラメータの他ページなどの情報を含んだ引数frameを受け取ります。この関数は他のモジュールから使用しないでください。テンプレートと外部モジュールの両方で使用したい場合、関数のコアを_で始まる別の関数に移し、frameを受け取る関数から呼び出す手法がよく使用されます。

ウィキボヤージュのモジュール

[編集]

モジュールの一覧はこちらから確認することができます。また、各モジュールにはそのモジュールの使い方の説明がついているかもしれません。

特定のモジュールが必要な場合は、水茶屋や各プロジェクトのページで依頼してください。