Luan / ドキュメント - reactionary software by fschmidt

Luanチュートリアル

hello.luanというファイルを作成し、以下を含めます:

%> Hello World <%

これを実行するには、コマンドラインでluan hello.luanと入力します。これによりHello Worldが表示されます。

ここでの構文はJSPに基づいています。少し変更してみましょう:

local name = "Bob" %> Hello <%= name %> <%

これによりHello Bobが表示されます。次に、より一般的なアプローチを試してみましょう:

local Io = require "luan:Io.luan" local print = Io.print print("Hello World")

Luanでは、1つの文字列引数を持つ関数呼び出しには括弧が必要ありません。したがって、print("Hello World")print "Hello World"と同じであり、require "luan:Io.luan"require("luan:Io.luan")と同じです。requireprintはどちらも関数です。

require関数はURIを引数として取ります。URIの例としてはluan:Io.luanfile:hello.luanがあります。requireはモジュールをインポートするために使用され、require関数呼び出しから返されます。上記の例では、モジュールをローカル変数Ioに割り当てます。関数printはこのモジュールのメンバーです。Io.print("Hello World")とすることもできますが、代わりにprintをローカル変数に割り当てて、その変数を使って関数を呼び出すことにしました。

Luanはrequireという1つの定義済み関数から始まります。必要なものをインポートするためにrequireを使用します。これは少し手間がかかりますが、各ファイルで各関数がどこから来ているのかを明確にします。

もっと洗練されたバージョンを作ってみましょう:

local Io = require "luan:Io.luan" local print = Io.print local function hello(name) print("Hello "..name) end hello("Bob")

..演算子は連結を行います。これによりHello Bobが表示されます。

次に、ウェブページを作成しましょう。まず、ウェブサイト用のディレクトリが必要です。srcというディレクトリを作成します。このディレクトリにhi.html.luanというファイルを作成し、以下を含めます:

local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" return function() Io.stdout = Http.response.text_writer() %> <!doctype html> <html> <body> Hello World </body> </html> <% end

次に、親ディレクトリに戻り、luan luan:http/serve.luan srcを実行します。これにより、Luanウェブサーバーがポート8080で実行されます。http://localhost:8080/にアクセスしてみてください。ディレクトリが表示されます。hi.html.luanをクリックするとソースが表示されますが、.luanを削除してhttp://localhost:8080/hi.htmlにアクセスすると、プログラムが実行され、ウェブページが生成されます。実際、現在見ているページtutorial.htmltutorial.html.luanから生成されています。

Luanウェブサーバーは、ファイルが関数を返し、それを呼び出してページを生成することを期待しています。%>...<%形式のコードは、その出力をIo.stdoutに書き込みます。デフォルトでは、これはコマンドラインの標準出力です。したがって、返された関数では通常、Io.stdoutをHTTPレスポンス(ウェブブラウザへの)に出力を行うtext_writerに設定することから始めます。

この例や他の例は例のディレクトリにあります。次にhi2.html.luanを見てみてください。コードを実行するには、URLから.luanを削除することを忘れないでください。

これでウェブサイトを構築し、公開したいと思います。独自のドメインを持っている場合は、それをs1.luan.softwareに向けるCNAMEレコードを作成します。ドメインを持っていない場合は、bob.s1.luan.softwareのようなドメイン(*.s1.luan.softwareの形式のもの)を使用します。ディレクトリがsrcで、パスワードをsecretとして使用する場合、コマンドラインから次のようにします:

luan luan:host/push.luan bob.s1.luan.software secret src

形式はluan luan:host/push.luan domain password directoryです。サイトを変更した場合は、再度これを実行するとサイトが更新されます。サイトを削除するには、luan luan:host/delete.luan domain passwordを実行します。

この短いチュートリアルが、Luanを使用してウェブサイトを作成する方法のアイデアを提供できたことを願っています。