Login
or
register
Overview
Overview
Why Lua?
Vision
Uses
Modules
General FAQ
Credits
License
Getting Started
Installation
Hello World
Databases
Web Servers
More Examples
Reference
FAQ
Getting Help
Status
News
Road Map
Releases
Site Edits
Community
Overview
Architecture
Detailed Road Map
Source
Builds
Bugs
FAQ
Dev Team
Mailing List
LuaScripts and LuaPages
Anonymous users must enter
captcha
below.
Don't put anything here
Don't put anything here
Page Parameters
Page Name (for URL)
Don't put anything here
Page Title
Show Advanced Options
Don't put anything here
Category
Prototype
Page Content
Kepler 1.1 provides two mechanisms for sending a page back to the browser: LuaPage and LuaScript. LuaPage is an HTML file with some Lua code in it, e.g. <html> <head>...</head> <body>...</body> CGI Parameter X: <i><%= cgi.x %></i> A loop: <ul> <% for i=1,5 do %> <li> <%= i %> </li> <% end %> </ul> </html> This file should be saved with the ``.lp`` extension, e.g. ``showx.lp``. A LuaScript is just a Lua program that writes HTML through ``cgi.put``: cgilua.contentheader ("text", "html") cgilua.put([[<html> <head>...</head> <body>...</body>]]) cgilua.put(string.format("CGI Parameter X: <i>%s</i>", cgi.x) cgilua.put("<ul>") for i=1,5 do cgilua.put("<li>") cgilua.put(i) cgilua.put("</li>") end cgilua.put("</ul>") cgilua.put("</html>") This should be saved with a ``.lua`` extension, e.g. ``showx.lua``. LuaPages can be nested inside other LuaPages using ``cgilua.lp.include()``, e.g. ``showx.lp``: <html> <head>...</head> <body> <% cgilua.lp.include ("justx.lp") %> </body> </html> ``justx.lp``: CGI Parameter X: <i><%= cgi.x %></i> A loop: <ul> <% for i=1,5 do %> <li> <%= i %> </li> <% end %> </ul> They can also be included in LuaScripts, e.g. we can rewrite ``showx.lua`` as: cgilua.contentheader ("text", "html") cgilua.put([[<html> <head>...</head> <body>...</body>]]) cgilua.lp.include ("justx.lp") cgilua.put("</html>") More practically, you might want to use a LuaScript to dispatch requests to multiple lua pages: if cgi.action == "rss" then cgilua.contentheader ("application", "rss+xml") else cgilua.contentheader ("text", "html") end function figure_out_the_title(...) ... end function figure_out_the_lua_page(...) ... end new_title = figure_out_the_title(cgi) lua_page = figure_out_the_lua_page(cgi) cgi.title = params.new_title if not cgi.action == "rss" then cgilua.lp.include("header.lp") else cgilua.lp.include("rss-header.lp") end cgilua.lp.include(lua_page) if not cgi.action == "rss" then cgilua.lp.include("footer.lp") else cgilua.lp.include("rss-footer.lp") end
Don't put anything here
About this Edit
Minor Edit
Edit Summary
Don't put anything here
Powered by
Sputnik
|
XHTML 1.1