Merge branch 'uvldoc'

This commit is contained in:
Steven Barth 2008-09-06 20:18:00 +00:00
parent 72927597bc
commit a9875adb29
7 changed files with 133 additions and 0 deletions

2
libs/uvldoc/Makefile Normal file
View file

@ -0,0 +1,2 @@
include ../../build/config.mk
include ../../build/module.mk

View file

@ -0,0 +1,9 @@
</div>
<div id="copy">
generated on <%=os.date("%c")%> with <a href="http://luci.freifunk-halle.net"><abbr title="Lua Configuration Interface">LuCI</abbr> UVLDoc</a> - written by Steven Barth and Jo-Philipp Wich
</div>
</body>
</html>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="uvldoc.css" />
<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />
<title>LuCI UVLDoc</title>
</head>
<body>
<div id="menu">
<%+menu.xml%>
</div>
<div id="content">

View file

@ -0,0 +1,11 @@
<%+header.xml%>
<h1>UCI Documentation</h1>
<table>
<% for k, v in luci.util.kspairs(self.schemes) do %>
<tr>
<td><a href="<%=self:_scheme_filename(k)%>"><%=k%></a></td>
<td><%=self.schemes[k].title%></td>
</tr>
<% end %>
</table>
<%+footer.xml%>

View file

@ -0,0 +1,7 @@
<h2>LuCI UVLDoc</h2>
<ul>
<li><a href="<%=self:_index_filename()%>">Index</a></li>
<% for k, v in luci.util.kspairs(self.schemes) do %>
<li><a href="<%=self:_scheme_filename(k)%>"><%=k%></a></li>
<% end %>
</ul>

View file

@ -0,0 +1,2 @@
<%+header.xml%>
<%+footer.xml%>

View file

@ -0,0 +1,87 @@
--[[
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]--
local io = require "io"
local fs = require "luci.fs"
local uvl = require "luci.uvl"
local util = require "luci.util"
local ltn12 = require "luci.ltn12"
local template = require "luci.template"
local ipairs = ipairs
module "luci.uvldoc.renderer"
Generator = util.class()
function Generator.__init__(self, schemes, output)
self.names = schemes
self.output = output or "doc"
self.schemes = {}
self.uvl = uvl.UVL()
self.extension = ".xml"
self.additionals = {"uvldoc.css"}
self.sourcedir = util.libpath() .. "/uvldoc/proto/xhtml/"
end
function Generator.make(self)
for i, scheme in ipairs(self.names) do
self.schemes[scheme] = self.uvl:get_scheme(scheme)
end
fs.mkdir(self.output)
for i, file in ipairs(self.additionals) do
fs.copy(self.sourcedir .. file, self.output)
end
template.compiler_mode = "memory"
template.viewdir = self.sourcedir
self:_make_index()
for scheme, file in util.kspairs(self.schemes) do
self:_make_package(scheme)
end
end
function Generator._make_index(self)
local t = template.Template("index.xml")
local sink = ltn12.sink.file(
io.open(self.output .. "/" .. self:_index_filename(), "w")
)
t:render({self = self, write = sink})
sink()
end
function Generator._make_package(self, scheme)
local t = template.Template("scheme.xml")
local sink = ltn12.sink.file(
io.open(self.output .. "/" .. self:_scheme_filename(scheme), "w")
)
t:render({self = self, package = self.schemes[scheme], scheme = scheme, write = sink})
sink()
end
function Generator._index_filename(self)
return "index%s" % self.extension
end
function Generator._scheme_filename(self, scheme)
return "scheme.%s%s" % {scheme, self.extension}
end