Merge branch 'uvldoc'
This commit is contained in:
parent
72927597bc
commit
a9875adb29
7 changed files with 133 additions and 0 deletions
2
libs/uvldoc/Makefile
Normal file
2
libs/uvldoc/Makefile
Normal file
|
@ -0,0 +1,2 @@
|
|||
include ../../build/config.mk
|
||||
include ../../build/module.mk
|
9
libs/uvldoc/luasrc/uvldoc/proto/xhtml/footer.xml
Normal file
9
libs/uvldoc/luasrc/uvldoc/proto/xhtml/footer.xml
Normal 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>
|
15
libs/uvldoc/luasrc/uvldoc/proto/xhtml/header.xml
Normal file
15
libs/uvldoc/luasrc/uvldoc/proto/xhtml/header.xml
Normal 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">
|
11
libs/uvldoc/luasrc/uvldoc/proto/xhtml/index.xml
Normal file
11
libs/uvldoc/luasrc/uvldoc/proto/xhtml/index.xml
Normal 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%>
|
7
libs/uvldoc/luasrc/uvldoc/proto/xhtml/menu.xml
Normal file
7
libs/uvldoc/luasrc/uvldoc/proto/xhtml/menu.xml
Normal 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>
|
2
libs/uvldoc/luasrc/uvldoc/proto/xhtml/scheme.xml
Normal file
2
libs/uvldoc/luasrc/uvldoc/proto/xhtml/scheme.xml
Normal file
|
@ -0,0 +1,2 @@
|
|||
<%+header.xml%>
|
||||
<%+footer.xml%>
|
87
libs/uvldoc/luasrc/uvldoc/renderer.lua
Normal file
87
libs/uvldoc/luasrc/uvldoc/renderer.lua
Normal 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
|
Loading…
Reference in a new issue