New HTML doc structure still under evaluation and development.
Please read file readme.txt on /doc for more info.
62
doc/readme.txt
Normal file
@ -0,0 +1,62 @@
|
||||
This document describes the eLua documentation structure, formats and the
|
||||
tools used to maintain it.
|
||||
|
||||
## Temporary note:
|
||||
## - This is the new doc structure proposed for eLua, still
|
||||
## under evaluation but probably replacing soon the single manual format.
|
||||
## - The /doc directory will soon replace the current /docs
|
||||
|
||||
eLua documentation is created and maintained offline, in HTML format and
|
||||
integrated with the same version control system used for eLua Source Code.
|
||||
This allows the same content to be deployed both online, published on the
|
||||
site, and offline, included in our releases.
|
||||
All the content pages are created and edited offline, using any HTML
|
||||
editor. We're currently using KompoZer and opened to new sugestions :)
|
||||
The "doc site" structure is created by a help doc generator tool called
|
||||
WebBook, created at Tecgraf/PUC-Rio. WebBook is Open Source and Free
|
||||
Software, 100% written in Lua and it's usage is described in
|
||||
http://www.tecgraf.puc-rio.br/webbook
|
||||
WebBook takes the created pages and a configuration file, which is simply
|
||||
a Lua Table, and generates the main menu and overall site structure, in
|
||||
plain HTML and JavaScript, with regular support for CSS. There is no need
|
||||
for JavaScript programming or cgi-bin scripts to "run" the site. The result
|
||||
is pure HTML (and JavaScript) and any browser must be able to navigate the
|
||||
complete doc structure generated by WebBook.
|
||||
|
||||
eLua documentation is kept on the development repository, on the /doc
|
||||
directory, under the trunk, branch and/or tag versions.
|
||||
Different doc language versions are kept under their own sub-directories (ie:
|
||||
/doc/en for english, /doc/pt for portuguese, /doc/ro for romanian etc...)
|
||||
|
||||
Directory /doc/wb is used to run WebBook build script and to store
|
||||
configuration files. It does NOT need to be published or included in an
|
||||
offline version of the doc "site".
|
||||
File wb_usr.lua is the main configuration file. It defines the main titles,
|
||||
menu structure, utility fields/buttons and the startup options.
|
||||
File wb_build.lua is the main WebBook build script. Some facilities (bat files)
|
||||
are included for easy build under Windows but we haven't tested them.
|
||||
To create a WebBook Structure site, just edit wb_usr.lua and, from /wb dir, run
|
||||
|
||||
$ lua5.1 wb_build.lua
|
||||
|
||||
Directories that needed to be published and included in the distros are:
|
||||
|
||||
/doc (## maybe not all files but tests are required here ##)
|
||||
/doc/en (english version doc pages and optional style sheets)
|
||||
/doc/pt (portuguese version doc pages and optional style sheets)
|
||||
/doc/img (images, logos and art files)
|
||||
|
||||
eLua Doc can be viewed on any browser, simply opening the file
|
||||
index_en.html (or index_pt.html for the portuguese version), on the /doc
|
||||
directory.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
doc/ssSearch.class
Executable file
BIN
doc/ssSearchThread.class
Executable file
22
doc/template_ssSearch.html
Executable file
@ -0,0 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>ssSearch</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h3>WB_SEARCH</h3>
|
||||
<blockquote>
|
||||
<center>
|
||||
<applet code="ssSearch.class" width="640" height="480">
|
||||
<param name="BGCOLOR" value="0B6DCE">
|
||||
<param name="LISTAREACOLOR" value="ffffff">
|
||||
<!-- Use "_self", "_blank", "_parent", "_top" or any other user-defined name -->
|
||||
<param name="TARGETFRAME" value="_self">
|
||||
<param name="DATAFILE" value="wb_searchWB_LNG.txt">
|
||||
<!-- The APPLETHOME param is just an acknowledgement -->
|
||||
<!-- Do not edit the value of APPLETHOME param -->
|
||||
<param name="APPLETHOME" value="http://www.geocities.com/SiliconValley/Lakes/5365/index.html">
|
||||
</applet>
|
||||
</center>
|
||||
</blockquote>
|
||||
</body></html>
|
1
doc/wb/js2lua.bat
Executable file
@ -0,0 +1 @@
|
||||
@lua5.1 js2lua.lua %1 %2
|
28
doc/wb/js2lua.lua
Executable file
@ -0,0 +1,28 @@
|
||||
-- Convert JavaScript into Lua
|
||||
|
||||
if (not arg[1]) then
|
||||
error("Javascript filename must be passed as a parameter.")
|
||||
end
|
||||
if (not arg[2]) then
|
||||
error("Lua filename must be passed as a parameter.")
|
||||
end
|
||||
|
||||
print("Converting...")
|
||||
|
||||
local js_filename = arg[1]
|
||||
local file = io.open(js_filename)
|
||||
local wb_lua = file:read("*a")
|
||||
file:close()
|
||||
|
||||
wb_lua = string.gsub(wb_lua, ":", "=")
|
||||
wb_lua = string.gsub(wb_lua, "http=", "http:")
|
||||
wb_lua = string.gsub(wb_lua, ";", " ")
|
||||
wb_lua = string.gsub(wb_lua, "%[", "{")
|
||||
wb_lua = string.gsub(wb_lua, "%]", "}")
|
||||
|
||||
local lua_filename = arg[2]
|
||||
local file = io.open(lua_filename, "w")
|
||||
file:write(wb_lua)
|
||||
file:close()
|
||||
|
||||
print("Done.")
|
274
doc/wb/make_hh.lua
Executable file
@ -0,0 +1,274 @@
|
||||
---------------------------------------------------------------------
|
||||
-- This program converts from Tecgraf's WebBook to HTML Help Project Files.
|
||||
-- by Mark Stroetzel Glasberg and Antonio Scuri
|
||||
-- 09 Dec, 2004
|
||||
---------------------------------------------------------------------
|
||||
|
||||
languages_description = {
|
||||
en = "0x0409 English - United States",
|
||||
es = "0x040A Spanish - Standard",
|
||||
fr = "0x040C French - Standard",
|
||||
de = "0x0407 German - Standard",
|
||||
-- pt = "0x0816 Portuguese - Standard",
|
||||
pt = "0x0416 Portuguese - Brazil",
|
||||
it = "0x0410 Italian - Standard"
|
||||
}
|
||||
|
||||
-- INITIALIZATION ---------------------------------------------------
|
||||
|
||||
function isinlist(lng, list)
|
||||
local i = 1
|
||||
local n = #list
|
||||
while i <= n do
|
||||
if list[i] == lng then
|
||||
return 1
|
||||
end
|
||||
i = i + 1;
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
-- BASIC FUNCTIONS --------------------------------------------------
|
||||
|
||||
function out(string)
|
||||
file:write(string)
|
||||
end
|
||||
|
||||
function outln(string)
|
||||
local i = ident + 1
|
||||
while i>0 do
|
||||
file:write(" ")
|
||||
i = i - 1
|
||||
end
|
||||
file:write(string.."\n")
|
||||
end
|
||||
|
||||
-- HHP FILE FUNCTIONS ------------------------------------------------
|
||||
|
||||
files = {}
|
||||
|
||||
function add2files(v)
|
||||
if v then
|
||||
-- only up to "#"
|
||||
local j = string.find(v, "#")
|
||||
if j then
|
||||
f = string.sub(v, 0, j-1)
|
||||
else
|
||||
f = v
|
||||
end
|
||||
|
||||
files[f] = f
|
||||
end
|
||||
end
|
||||
|
||||
function writehhpheader()
|
||||
out("[OPTIONS]\n")
|
||||
outln("Binary Index=No")
|
||||
outln("Compatibility=1.0")
|
||||
outln("Compiled file=" .. wb_usr.file_title .. "_" .. lng .. ".chm")
|
||||
outln("Contents file=wb_tree" .. "_" .. lng .. ".hhc")
|
||||
outln("Default topic=" .. lng .. "/" .. wb_usr.tree.link)
|
||||
outln("Display compile notes=Yes")
|
||||
outln("Display compile progress=Yes")
|
||||
outln("Full-text search=Yes")
|
||||
outln("Language="..languages_description[lng])
|
||||
outln("Title="..wb_usr.messages[lng].title)
|
||||
out("\n")
|
||||
out("[FILES]\n")
|
||||
outln(lng .. "/" .. wb_usr.tree.link)
|
||||
end
|
||||
|
||||
function writehhpfooter()
|
||||
local tmp = [[
|
||||
[INFOTYPES]
|
||||
]]
|
||||
out(tmp)
|
||||
end
|
||||
|
||||
function writehhpcenter()
|
||||
if (not files) then return end
|
||||
|
||||
local v = next(files, nil)
|
||||
while v ~= nil do
|
||||
outln(dir..v)
|
||||
v = next(files, v)
|
||||
end
|
||||
end
|
||||
|
||||
function writehhp()
|
||||
writehhpheader()
|
||||
writehhpcenter()
|
||||
writehhpfooter()
|
||||
end
|
||||
|
||||
|
||||
-- HHC FILE FUNCTIONS ------------------------------------------------
|
||||
|
||||
function writeheader()
|
||||
out("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n")
|
||||
out("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML//EN\">\n")
|
||||
out("<HTML>\n")
|
||||
out("<HEAD>\n")
|
||||
out("<meta name=\"GENERATOR\" content=\"Microsoft® HTML Help Workshop 4.1\">\n")
|
||||
out("<!-- Sitemap 1.0 -->\n")
|
||||
out("<!-- Generated by WebBook -->\n")
|
||||
out("</HEAD><BODY>\n")
|
||||
out(" <UL>\n")
|
||||
out(" <LI> <OBJECT type=\"text/sitemap\">\n")
|
||||
out(" <param name=\"Name\" value=\""..wb_usr.messages[lng].title.."\">\n")
|
||||
out(" <param name=\"Local\" value=\""..lng .. "/" .. wb_usr.tree.link .. "\">\n")
|
||||
out(" </OBJECT>\n")
|
||||
end
|
||||
|
||||
function type_string (o)
|
||||
return type(o) == "string"
|
||||
end
|
||||
|
||||
function writeend()
|
||||
out(" </UL>\n")
|
||||
out("</BODY>\n")
|
||||
out("</HTML>\n")
|
||||
end
|
||||
|
||||
function writesubitems(tree, mainlink)
|
||||
if (not tree) then
|
||||
return
|
||||
end
|
||||
local i = 1
|
||||
local n = #tree
|
||||
while i <= n do
|
||||
writetopic(tree[i], mainlink)
|
||||
i = i + 1
|
||||
end
|
||||
ident = ident - 1
|
||||
end
|
||||
|
||||
-- mainlink is the link of the father -> if no link is specified
|
||||
-- this is the one that is used.
|
||||
function writetopic(t, mainlink)
|
||||
local link
|
||||
local topic_name
|
||||
|
||||
add2files(mainlink)
|
||||
|
||||
if t.name == nil then
|
||||
print("ERROR: Title is nil.")
|
||||
return
|
||||
end
|
||||
|
||||
if (t.name[lng]) then
|
||||
topic_name = t.name[lng]
|
||||
else
|
||||
topic_name = t.name["nl"]
|
||||
end
|
||||
|
||||
if topic_name == nil then
|
||||
print("ERROR: Title is nil in language [" .. lng .. "].")
|
||||
return
|
||||
end
|
||||
|
||||
if t.link and t.link ~= "" then
|
||||
link = t.link
|
||||
else
|
||||
link = nil
|
||||
end
|
||||
|
||||
add2files(link)
|
||||
|
||||
if t.bookmark then
|
||||
if link == nil and mainlink == nil then
|
||||
print("Error saving bookmark!!!")
|
||||
return
|
||||
end
|
||||
|
||||
if link then
|
||||
linkB = link .. "#" .. t.bookmark
|
||||
else
|
||||
linkB = mainlink .. "#" .. t.bookmark
|
||||
end
|
||||
else
|
||||
linkB = nil
|
||||
end
|
||||
|
||||
outln("<LI> <OBJECT type=\"text/sitemap\">")
|
||||
outln("<param name=\"Name\" value=\""..topic_name.."\">")
|
||||
if linkB then
|
||||
outln("<param name=\"Local\" value=\""..dir..linkB.."\">")
|
||||
else
|
||||
if link then
|
||||
outln("<param name=\"Local\" value=\""..dir..link.."\">")
|
||||
end
|
||||
end
|
||||
if useimage == 1 then
|
||||
if t.folder then
|
||||
if ident == 0 then
|
||||
outln("<param name=\"ImageNumber\" value=\"1\">")
|
||||
else
|
||||
outln("<param name=\"ImageNumber\" value=\"6\">")
|
||||
end
|
||||
else
|
||||
outln("<param name=\"ImageNumber\" value=\"11\">")
|
||||
end
|
||||
end
|
||||
outln("</OBJECT>")
|
||||
|
||||
-- Write folder --
|
||||
if t.folder then
|
||||
ident = ident + 1
|
||||
outln("<UL>")
|
||||
if link == nil then
|
||||
writesubitems(t.folder, mainlink)
|
||||
else
|
||||
writesubitems(t.folder, link)
|
||||
end
|
||||
outln("</UL>")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function writetopics(tree)
|
||||
if (not tree) then return end
|
||||
local i = 1;
|
||||
local n = #tree
|
||||
while i <= n do
|
||||
outln("<UL>")
|
||||
writetopic(tree[i], nil)
|
||||
outln("</UL>")
|
||||
i = i + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- MAIN -------------------------------------------------------------
|
||||
|
||||
-- lng -> from the command line
|
||||
|
||||
dofile("wb_usr.lua")
|
||||
|
||||
if (not arg[1]) then
|
||||
error("Missing language parameter.")
|
||||
end
|
||||
|
||||
lng = arg[1]
|
||||
dir = lng.."/"
|
||||
ident = 0
|
||||
useimage = 1 -- Use images based on given information
|
||||
file = nil
|
||||
|
||||
print("Writing \"wb_tree" .. "_" .. lng .. ".hhc\" file.")
|
||||
file = io.open("wb_tree" .. "_" .. lng .. ".hhc", "w")
|
||||
writeheader()
|
||||
writetopics(wb_usr.tree.folder)
|
||||
writeend()
|
||||
file:close()
|
||||
|
||||
if ident ~= 0 then
|
||||
print("Ident not correct!")
|
||||
end
|
||||
|
||||
print("Writing \"wb" .. "_" .. lng .. ".hhp\" file.")
|
||||
file = io.open("wb" .. "_" .. lng .. ".hhp", "w")
|
||||
writehhp()
|
||||
file:close()
|
||||
|
||||
print("done.")
|
||||
|
28
doc/wb/template_index.html
Executable file
@ -0,0 +1,28 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<title>WB_TITLE</title>
|
||||
</head>
|
||||
|
||||
<frameset rows="51,*" frameborder="0" framespacing="0" bordercolor="#0B6DCE">
|
||||
<frame name="wb_title" scrolling="no" noresize="noresize" src="wb_titleWB_LNG.html"
|
||||
frameborder="0" marginheight="0" marginwidth="0" target="wb_cont">
|
||||
<frameset cols="WB_START_SIZE,*" frameborder="1" framespacing="4" bordercolor="#0B6DCE" border="4">
|
||||
<frameset rows="27,*" frameborder="0" framespacing="0" bordercolor="#0B6DCE">
|
||||
<frame name="wb_bar" scrolling="no" src="wb_barWB_LNG.html" frameborder="0" target="wb_cont">
|
||||
<frame name="wb_tree" src="wb_treeWB_LNG.html" frameborder="1" target="wb_cont">
|
||||
</frameset>
|
||||
<frame name="wb_cont" src="WB_START_PAGE" frameborder="0">
|
||||
</frameset>
|
||||
<noframes>
|
||||
<body>
|
||||
|
||||
<p>This page uses frames, but your browser doesn't support them.</p>
|
||||
|
||||
</body>
|
||||
</noframes>
|
||||
</frameset>
|
||||
|
||||
</html>
|
25
doc/wb/template_ssSearch.html
Executable file
@ -0,0 +1,25 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>ssSearch</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h3>WB_SEARCH</h3>
|
||||
<blockquote>
|
||||
<center>
|
||||
<applet code="ssSearch.class" width="640" height="480">
|
||||
<param name="BGCOLOR" value="0B6DCE">
|
||||
<param name="LISTAREACOLOR" value="ffffff">
|
||||
<!-- Use "_self", "_blank", "_parent", "_top" or any other user-defined name -->
|
||||
<param name="TARGETFRAME" value="_self">
|
||||
<param name="DATAFILE" value="wb_searchWB_LNG.txt">
|
||||
<!-- The APPLETHOME param is just an acknowledgement -->
|
||||
<!-- Do not edit the value of APPLETHOME param -->
|
||||
<param name="APPLETHOME" value="http://www.geocities.com/SiliconValley/Lakes/5365/index.html">
|
||||
</applet>
|
||||
</center>
|
||||
</blockquote>
|
||||
<p>Powered by <a href="http://us.geocities.com/nsenthil/ssSearch.html">ssSearch</a>
|
||||
from Nalla
|
||||
Senthilnathan.</p>
|
||||
</body></html>
|
26
doc/wb/template_wb_bar.html
Executable file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us" >
|
||||
<title>Bar</title>
|
||||
<base target="wb_cont">
|
||||
<style type="text/css">
|
||||
.navigation{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
border: 1px solid #7F93C7;
|
||||
background-color: #FFFFFF;
|
||||
line-height: 19px;
|
||||
}
|
||||
.navigation p { margin: 1px; white-space: nowrap; }
|
||||
.navigation img { vertical-align: middle; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body style="margin: 2px; background-color: #F1F1F1">
|
||||
<div class="navigation">
|
||||
<p><a target="_blank" href="http://www.tecgraf.puc-rio.br/webbook"><img src="wb_img/webbook.png" onmouseover="this.src='wb_img/webbook_over.png'" onmouseout="this.src='wb_img/webbook.png'" style="border-width: 0px"></a><img src="wb_img/barlineleft.png"><img alt="WB_EXPALL_ALT" src="wb_img/showall.png" onclick="parent.wb_tree.showAllFolders()" onmouseover="this.src='wb_img/showall_over.png'" onmouseout="this.src='wb_img/showall.png'"><img alt="WB_CONTALL_ALT" src="wb_img/hideall.png" onclick="parent.wb_tree.hideAllFolders()" onmouseover="this.src='wb_img/hideall_over.png'" onmouseout="this.src='wb_img/hideall.png'"><img alt="WB_SYNC_ALT" src="wb_img/sync.png" onclick="parent.wb_tree.syncContents()" onmouseover="this.src='wb_img/sync_over.png'" onmouseout="this.src='wb_img/sync.png'"><img alt="WB_NEXT_ALT" src="wb_img/next.png" onclick="parent.wb_tree.nextContents()" onmouseover="this.src='wb_img/next_over.png'" onmouseout="this.src='wb_img/next.png'"><img alt="WB_PREV_ALT" src="wb_img/previous.png" onclick="parent.wb_tree.prevContents()" onmouseover="this.src='wb_img/previous_over.png'" onmouseout="this.src='wb_img/previous.png'">WB_LNG_BUTTON</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
64
doc/wb/template_wb_title.html
Executable file
@ -0,0 +1,64 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us">
|
||||
<title>Title</title>
|
||||
<base target="wb_cont">
|
||||
<style type="text/css">
|
||||
td.title {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
}
|
||||
td.contact {
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
width: 11em;
|
||||
}
|
||||
a.contact {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: #0962BB;
|
||||
font-size: 9pt;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
a.contact:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body style="background-color: WB_TITLE_BGCOLOR; margin-left: 3px; margin-right: 3px; margin-top: 2px; margin-bottom: 0; background-image: url('wb_img/title_background.png');">
|
||||
|
||||
<table style="width: 100%" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td style="width: 50px;"><img src="logo.gif"></td>
|
||||
<td class="title">WB_BAR_TITLE</td>
|
||||
<td style="width: 3.5em">
|
||||
<a class="contact" href="ssSearchWB_LNG.html">SimpleSearch</a>
|
||||
</td>
|
||||
<td style="width: 11em">
|
||||
<FORM method=GET action="http://www.google.com/search" style="margin-bottom: 0; margin: 0; text-align: center; ">
|
||||
<input type=hidden name=ie value=UTF-8>
|
||||
<input type=hidden name=oe value=UTF-8>
|
||||
<INPUT TYPE=text name=q size=21 maxlength=255 value=""><br>
|
||||
<A HREF="http://www.google.com/"><IMG SRC="wb_img/google.gif" border="0" ALT="Google"></A>
|
||||
<INPUT type=submit name=btnG VALUE="Search" style="height: 21px; vertical-align: top; font-size: x-small;">
|
||||
<input type=hidden name=domains value="WB_SEARCH_LINK">
|
||||
<input type=hidden name=sitesearch value="WB_SEARCH_LINK" checked>
|
||||
<input type=hidden name=sitesearch value="">
|
||||
</FORM>
|
||||
</td>
|
||||
<td class="contact">
|
||||
<a class="contact" target="_blank" href="WB_COPYRIGHT_LINK"><EFBFBD> WB_COPYRIGHT_NAME</a>
|
||||
<br>
|
||||
<a class="contact" href="mailto:WB_CONTACT">(WB_CONTACT)</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
220
doc/wb/template_wb_tree.html
Executable file
@ -0,0 +1,220 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Language" content="en-us" >
|
||||
<title>Tree</title>
|
||||
<base target="wb_cont">
|
||||
<style type="text/css">
|
||||
.tree { font-family: helvetica, sans-serif; font-size: 10pt; }
|
||||
.tree h3 {
|
||||
margin: 5px 0px 0px 0px;
|
||||
font-size: 12pt;
|
||||
}
|
||||
.tree p { margin: 0px; white-space: nowrap; }
|
||||
.tree p.sep { margin: 0px; white-space: nowrap; line-height: 8px; font-size: 5px; }
|
||||
.tree div { display: none; margin: 0px; }
|
||||
.tree img { vertical-align: middle; }
|
||||
.tree a.el { text-decoration: none; margin-left: 4px; color: #003366; }
|
||||
.tree a:hover { text-decoration: none; background-color: #e0e0ff }
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
lastLink = null;
|
||||
|
||||
function hideFolder(folder, id)
|
||||
{
|
||||
var imageNode = document.images["img" + id];
|
||||
if (imageNode != null)
|
||||
{
|
||||
var len = imageNode.src.length;
|
||||
if (imageNode.src.substring(len-8,len-4) == "last")
|
||||
imageNode.src = "wb_img/plusnodelast.png";
|
||||
else if (imageNode.src.substring(len-8,len-4) == "node")
|
||||
imageNode.src = "wb_img/plusnode.png";
|
||||
}
|
||||
folder.style.display = "none";
|
||||
}
|
||||
|
||||
function showFolder(folder, id)
|
||||
{
|
||||
var imageNode = document.images["img" + id];
|
||||
if (imageNode != null)
|
||||
{
|
||||
var len = imageNode.src.length;
|
||||
if (imageNode.src.substring(len-8,len-4) == "last")
|
||||
imageNode.src = "wb_img/minusnodelast.png";
|
||||
else if (imageNode.src.substring(len-8,len-4) == "node")
|
||||
imageNode.src = "wb_img/minusnode.png";
|
||||
}
|
||||
folder.style.display = "block";
|
||||
}
|
||||
|
||||
function toggleFolder(id)
|
||||
{
|
||||
var folder = document.getElementById(id);
|
||||
if (folder.style.display == "block")
|
||||
hideFolder(folder, id);
|
||||
else
|
||||
showFolder(folder, id);
|
||||
}
|
||||
|
||||
function setFoldersAtLevel(level, show)
|
||||
{
|
||||
var i = 1;
|
||||
do
|
||||
{
|
||||
var folder_id = level + "." + i;
|
||||
var id = "folder" + folder_id;
|
||||
var folder = document.getElementById(id);
|
||||
if (folder != null)
|
||||
{
|
||||
setFoldersAtLevel(folder_id, show);
|
||||
|
||||
if (show)
|
||||
showFolder(folder, id);
|
||||
else
|
||||
hideFolder(folder, id);
|
||||
}
|
||||
i++;
|
||||
} while(folder != null);
|
||||
}
|
||||
|
||||
function showAllFolders()
|
||||
{
|
||||
setFoldersAtLevel("", true);
|
||||
}
|
||||
|
||||
function hideAllFolders()
|
||||
{
|
||||
setFoldersAtLevel("", false);
|
||||
}
|
||||
|
||||
function getFolderId(name)
|
||||
{
|
||||
return name.substring(name.indexOf("folder"), name.length);
|
||||
}
|
||||
|
||||
function showFolderRec(id)
|
||||
{
|
||||
var folder = document.getElementById(id);
|
||||
if (folder != null)
|
||||
{
|
||||
showFolder(folder, id);
|
||||
|
||||
var parent_id = id.substring(0, id.lastIndexOf("."))
|
||||
if (parent_id != null && parent_id != "folder")
|
||||
{
|
||||
showFolderRec(parent_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function clearLastLink()
|
||||
{
|
||||
if (lastLink != null)
|
||||
{
|
||||
lastLink.style.color = ""
|
||||
lastLink = null;
|
||||
}
|
||||
}
|
||||
|
||||
function goToLink(link)
|
||||
{
|
||||
var id = getFolderId(link.name);
|
||||
showFolderRec(id);
|
||||
location.hash = "#" + link.name;
|
||||
link.style.color = "#ff0000";
|
||||
|
||||
clearLastLink();
|
||||
lastLink = link;
|
||||
}
|
||||
|
||||
function syncContents()
|
||||
{
|
||||
var cur_topic = parent.wb_cont.location.href
|
||||
|
||||
for (var i = 0; i < document.links.length; i++)
|
||||
{
|
||||
var link = document.links[i];
|
||||
if (cur_topic == link.href)
|
||||
{
|
||||
goToLink(link)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function nextContents()
|
||||
{
|
||||
var cur_topic = parent.wb_cont.location.href
|
||||
|
||||
for (var i = 0; i < document.links.length; i++)
|
||||
{
|
||||
var link = document.links[i];
|
||||
if (cur_topic == link.href)
|
||||
{
|
||||
if (i == document.links.length-1)
|
||||
link = document.links[0];
|
||||
else
|
||||
link = document.links[i+1];
|
||||
|
||||
goToLink(link)
|
||||
parent.wb_cont.location.href = link.href;
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function prevContents()
|
||||
{
|
||||
var cur_topic = parent.wb_cont.location.href
|
||||
var prev_link = document.links[document.links.length-1]
|
||||
|
||||
for (var i = 0; i < document.links.length; i++)
|
||||
{
|
||||
var link = document.links[i];
|
||||
if (cur_topic == link.href)
|
||||
{
|
||||
if (i == 0)
|
||||
link = document.links[document.links.length-1];
|
||||
else
|
||||
link = document.links[i-1];
|
||||
|
||||
goToLink(link)
|
||||
parent.wb_cont.location.href = link.href;
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function showStartPage()
|
||||
{
|
||||
var full_url = parent.document.URL;
|
||||
if (full_url == null)
|
||||
return;
|
||||
|
||||
var param = full_url.substring(full_url.indexOf("?") + 1, full_url.length);
|
||||
if (param == null)
|
||||
return;
|
||||
|
||||
var param_url = param.substring(param.indexOf("url=") + 4, param.length);
|
||||
if (param_url == null)
|
||||
return;
|
||||
|
||||
var param_len = param_url.length;
|
||||
for (var i = 0; i < document.links.length; i++)
|
||||
{
|
||||
var link = document.links[i];
|
||||
var link_url = link.href.substring(link.href.length-param_len, link.href.length)
|
||||
if (link_url == param_url)
|
||||
{
|
||||
goToLink(link)
|
||||
parent.wb_cont.location.href = link.href;
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body style="margin: 2px; background-color: #F1F1F1" onload="showStartPage()">
|
||||
<div class="tree" onmouseout="clearLastLink()">
|
29
doc/wb/wb2hh.bat
Executable file
@ -0,0 +1,29 @@
|
||||
@echo off
|
||||
|
||||
Echo Building...
|
||||
lua5.1 make_hh.lua %1
|
||||
Echo .
|
||||
pause
|
||||
|
||||
Echo Preparing...
|
||||
move wb_%1.hhp ..
|
||||
move wb_tree_%1.hhc ..
|
||||
cd ..
|
||||
move download download.old
|
||||
Echo .
|
||||
pause
|
||||
|
||||
Echo Compiling...
|
||||
hhc wb_%1.hhp
|
||||
Echo .
|
||||
pause
|
||||
|
||||
Echo Finishing...
|
||||
move wb_%1.hhp wb
|
||||
move wb_tree_%1.hhc wb
|
||||
move download.old download
|
||||
move /y *.chm download
|
||||
cd wb
|
||||
Echo .
|
||||
|
||||
Echo Done.
|
1
doc/wb/wb_build.bat
Executable file
@ -0,0 +1 @@
|
||||
@lua5.1 wb_build.lua
|
364
doc/wb/wb_build.lua
Executable file
@ -0,0 +1,364 @@
|
||||
|
||||
dofile("wb_usr.lua")
|
||||
|
||||
lngCount = nil
|
||||
lngSuffix = nil
|
||||
lngIndex = nil
|
||||
lngNext = nil
|
||||
linkCount = 1
|
||||
|
||||
function readFile(filename)
|
||||
local file = io.open(filename)
|
||||
local text = file:read("*a")
|
||||
file:close()
|
||||
return text
|
||||
end
|
||||
|
||||
function writeFile(filename, text)
|
||||
local file = io.open(filename, "w")
|
||||
file:write(text)
|
||||
file:close()
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
htmlFiles = {}
|
||||
|
||||
function addHtmlFile(v)
|
||||
if v then
|
||||
-- only up to "#"
|
||||
local j = string.find(v, "#")
|
||||
if j then
|
||||
f = string.sub(v, 0, j-1)
|
||||
else
|
||||
f = v
|
||||
end
|
||||
|
||||
htmlFiles[f] = f
|
||||
end
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
function writeIndexFile()
|
||||
print("Writing \"../index"..lngSuffix..".html\".")
|
||||
|
||||
local wb_index = readFile("template_index.html")
|
||||
|
||||
wb_index = string.gsub(wb_index, "WB_TITLE", wb_usr.messages[lngIndex].title)
|
||||
wb_index = string.gsub(wb_index, "WB_START_SIZE", wb_usr.start_size)
|
||||
wb_index = string.gsub(wb_index, "WB_START_PAGE", lngIndex.."/"..wb_usr.tree.link)
|
||||
if (lngCount > 1) then
|
||||
wb_index = string.gsub(wb_index, "WB_LNG", lngSuffix)
|
||||
else
|
||||
wb_index = string.gsub(wb_index, "WB_LNG", "")
|
||||
end
|
||||
|
||||
writeFile("../index"..lngSuffix..".html", wb_index)
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
function writeTitleFile()
|
||||
print("Writing \"../wb_title"..lngSuffix..".html\".")
|
||||
|
||||
local wb_title = readFile("template_wb_title.html")
|
||||
|
||||
wb_title = string.gsub(wb_title, "WB_BAR_TITLE", wb_usr.messages[lngIndex].bar_title)
|
||||
wb_title = string.gsub(wb_title, "WB_TITLE_BGCOLOR", wb_usr.title_bgcolor)
|
||||
wb_title = string.gsub(wb_title, "WB_SEARCH_LINK", wb_usr.search_link)
|
||||
wb_title = string.gsub(wb_title, "WB_COPYRIGHT_LINK", wb_usr.copyright_link)
|
||||
wb_title = string.gsub(wb_title, "WB_COPYRIGHT_NAME", wb_usr.copyright_name)
|
||||
wb_title = string.gsub(wb_title, "WB_CONTACT", wb_usr.contact)
|
||||
|
||||
if (lngCount > 1) then
|
||||
wb_title = string.gsub(wb_title, "WB_LNG", lngSuffix)
|
||||
else
|
||||
wb_title = string.gsub(wb_title, "WB_LNG", "")
|
||||
end
|
||||
|
||||
writeFile("../wb_title"..lngSuffix..".html", wb_title)
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
function writeIndent(file, level)
|
||||
-- base identation
|
||||
file:write(" ")
|
||||
|
||||
for i = 1, level*2, 1 do
|
||||
file:write(" ")
|
||||
end
|
||||
end
|
||||
|
||||
function getNodeName(node)
|
||||
local name = nil
|
||||
if (node.name[lngIndex]) then
|
||||
name = node.name[lngIndex]
|
||||
else
|
||||
name = node.name["nl"]
|
||||
end
|
||||
|
||||
if not name then
|
||||
error("Name not found.")
|
||||
end
|
||||
|
||||
return name
|
||||
end
|
||||
|
||||
function writeNode(file, node, opened, level, folder_index, folder_suffix, node_suffix, child_prefix)
|
||||
if (node.folder) then -- folder
|
||||
-- box image
|
||||
writeIndent(file, level)
|
||||
file:write("<p>")
|
||||
|
||||
folder_suffix = folder_suffix .. "." .. folder_index
|
||||
|
||||
file:write(child_prefix.."<img name=\"imgfolder"..folder_suffix.."\" ")
|
||||
|
||||
if (opened) then
|
||||
file:write("src=\"wb_img/minusnode"..node_suffix..".png\" ")
|
||||
else
|
||||
file:write("src=\"wb_img/plusnode"..node_suffix..".png\" ")
|
||||
end
|
||||
|
||||
file:write("onclick=\"toggleFolder('folder"..folder_suffix.."')\">")
|
||||
|
||||
if (node.link) then
|
||||
file:write("<a name=\"link"..linkCount.."folder"..folder_suffix.."\" class=\"el\" href=\""..lngIndex.."/"..node.link.."\">"..getNodeName(node).."</a>")
|
||||
addHtmlFile(node.link)
|
||||
linkCount = linkCount + 1
|
||||
else
|
||||
file:write(" "..getNodeName(node))
|
||||
end
|
||||
|
||||
file:write("</p>\n")
|
||||
|
||||
-- folder div
|
||||
writeIndent(file, level)
|
||||
if (opened) then
|
||||
file:write("<div id=\"folder"..folder_suffix.."\" style=\"display:block\">\n")
|
||||
else
|
||||
file:write("<div id=\"folder"..folder_suffix.."\">\n")
|
||||
end
|
||||
|
||||
local n = #(node.folder)
|
||||
local next_folder_index = 0
|
||||
local next_node_suffix = ""
|
||||
local next_child_prefix = "<img src=\"wb_img/vertline.png\">"
|
||||
if (node_suffix == "last") then
|
||||
next_child_prefix = "<img src=\"wb_img/blank.png\">"
|
||||
end
|
||||
for i = 1, n, 1 do
|
||||
if (i == n) then
|
||||
next_node_suffix = "last"
|
||||
end
|
||||
if (node.folder[i].folder) then
|
||||
next_folder_index = next_folder_index + 1
|
||||
end
|
||||
writeNode(file, node.folder[i], false, level+1, next_folder_index, folder_suffix, next_node_suffix, child_prefix..next_child_prefix)
|
||||
end
|
||||
|
||||
writeIndent(file, level)
|
||||
file:write("</div>\n")
|
||||
else -- leaf
|
||||
if (node.link and node.link ~= "") then -- normal leaf
|
||||
writeIndent(file, level)
|
||||
file:write("<p>"..child_prefix.."<img src=\"wb_img/node"..node_suffix..".png\"><a class=\"el\" name=\"link"..linkCount.."folder"..folder_suffix.."\" href=\""..lngIndex.."/"..node.link.."\">"..getNodeName(node).."</a></p>\n")
|
||||
addHtmlFile(node.link)
|
||||
linkCount = linkCount + 1
|
||||
else -- separator leaf
|
||||
writeIndent(file, level)
|
||||
file:write("<p class=\"sep\">")
|
||||
|
||||
local sep_child_prefix = string.gsub(child_prefix, "/vertline", "/sepvertline")
|
||||
sep_child_prefix = string.gsub(sep_child_prefix, "/blank", "/sepblank")
|
||||
|
||||
file:write(sep_child_prefix.."<img src=\"wb_img/sepnode.png\"></p>\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function writeTree(file)
|
||||
-- root node
|
||||
file:write(" <h3><a name=\"link0folder.0\" class=\"el\" href=\""..lngIndex.."/"..wb_usr.tree.link.."\">"..getNodeName(wb_usr.tree).."</a></h3>\n")
|
||||
addHtmlFile(wb_usr.tree.link)
|
||||
|
||||
local folder = wb_usr.tree.folder
|
||||
local n = #folder
|
||||
local node_suffix = ""
|
||||
local folder_index = 0
|
||||
for i = 1, n, 1 do
|
||||
if (i == n) then
|
||||
node_suffix = "last"
|
||||
end
|
||||
if (folder[i].folder) then
|
||||
folder_index = folder_index + 1
|
||||
end
|
||||
if (i == 1 and wb_usr.start_open) then
|
||||
writeNode(file, folder[i], true, 1, folder_index, "", node_suffix, "")
|
||||
else
|
||||
writeNode(file, folder[i], false, 1, folder_index, "", node_suffix, "")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function writeTreeFile()
|
||||
print("Writing \"../wb_tree"..lngSuffix..".html\".")
|
||||
|
||||
local file = io.open("../wb_tree"..lngSuffix..".html", "w")
|
||||
|
||||
-- Write Header
|
||||
local wb_tree = readFile("template_wb_tree.html")
|
||||
file:write(wb_tree)
|
||||
|
||||
-- Write Tree Nodes and Leafs
|
||||
writeTree(file)
|
||||
|
||||
-- Write Footer
|
||||
file:write(" </div>\n")
|
||||
file:write("</body>\n")
|
||||
file:write("</html>\n")
|
||||
|
||||
file:close()
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
lngMessages =
|
||||
{
|
||||
search= {
|
||||
en= "Simple Search",
|
||||
pt= "Busca Simples",
|
||||
es= "Busca Simples",
|
||||
},
|
||||
exp_all= {
|
||||
en= "Expand All Nodes",
|
||||
pt= "Expande Todos os N<>s",
|
||||
es= "Ensanchar Todos Nodos",
|
||||
},
|
||||
cont_all= {
|
||||
en= "Contract All Nodes",
|
||||
pt= "Contrai Todos os N<>s",
|
||||
es= "Contrato Todos Nodos",
|
||||
},
|
||||
sync= {
|
||||
en= "Sync Tree with Contents",
|
||||
pt= "Sincroniza <20>rvore com Conte<74>do",
|
||||
es= "Sincroniza <20>rbol con el Contenido",
|
||||
},
|
||||
lang= {
|
||||
en= "Switch Language",
|
||||
pt= "Troca Idioma",
|
||||
es= "Cambie Idioma",
|
||||
},
|
||||
next= {
|
||||
en= "Next Link",
|
||||
pt= "Pr<EFBFBD>ximo Link",
|
||||
es= "Pr<EFBFBD>ximo Link",
|
||||
},
|
||||
prev= {
|
||||
en= "Previous Link",
|
||||
pt= "Link Anterior",
|
||||
es= "Link Anterior",
|
||||
},
|
||||
}
|
||||
|
||||
function writeBarFile()
|
||||
print("Writing \"../wb_bar"..lngSuffix..".html\".")
|
||||
|
||||
local file = io.open("../wb_bar"..lngSuffix..".html", "w")
|
||||
|
||||
local wb_bar = readFile("template_wb_bar.html")
|
||||
|
||||
wb_bar = string.gsub(wb_bar, "WB_EXPALL_ALT", lngMessages.exp_all[lngIndex])
|
||||
wb_bar = string.gsub(wb_bar, "WB_CONTALL_ALT", lngMessages.cont_all[lngIndex])
|
||||
wb_bar = string.gsub(wb_bar, "WB_SYNC_ALT", lngMessages.sync[lngIndex])
|
||||
wb_bar = string.gsub(wb_bar, "WB_NEXT_ALT", lngMessages.next[lngIndex])
|
||||
wb_bar = string.gsub(wb_bar, "WB_PREV_ALT", lngMessages.prev[lngIndex])
|
||||
|
||||
if (lngCount > 1) then
|
||||
local lng_button = "<img src=\"wb_img/barlineright.png\">"
|
||||
lng_button = lng_button .. "<a target=\"_top\" href=\"index_"..lngNext..".html\"><img alt=\""..lngMessages.lang[lngIndex].."\" src=\"wb_img/lng"..lngSuffix..".png\" onmouseover=\"this.src='wb_img/lng"..lngSuffix.."_over.png'\" onmouseout=\"this.src='wb_img/lng"..lngSuffix..".png'\" style=\"border-width: 0px\"></a>"
|
||||
wb_bar = string.gsub(wb_bar, "WB_LNG_BUTTON", lng_button)
|
||||
else
|
||||
wb_bar = string.gsub(wb_bar, "WB_LNG_BUTTON", "")
|
||||
end
|
||||
|
||||
file:write(wb_bar)
|
||||
file:close()
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
function writeSearchFile()
|
||||
print("Writing \"../ssSearch"..lngSuffix..".html\".")
|
||||
|
||||
local file = io.open("../ssSearch"..lngSuffix..".html", "w")
|
||||
|
||||
local wb_search = readFile("template_ssSearch.html")
|
||||
|
||||
wb_search = string.gsub(wb_search, "WB_SEARCH", lngMessages.search[lngIndex])
|
||||
|
||||
if (lngCount > 1) then
|
||||
wb_search = string.gsub(wb_search, "WB_LNG", lngSuffix)
|
||||
else
|
||||
wb_search = string.gsub(wb_search, "WB_LNG", "")
|
||||
end
|
||||
|
||||
file:write(wb_search)
|
||||
file:close()
|
||||
end
|
||||
|
||||
function writeSearchIndexFile()
|
||||
print("Writing \"../wb_search"..lngSuffix..".txt\".")
|
||||
|
||||
local file = io.open("../wb_search"..lngSuffix..".txt", "w")
|
||||
|
||||
local v = next(htmlFiles, nil)
|
||||
while v ~= nil do
|
||||
file:write(lngIndex.."/"..v.."\n")
|
||||
v = next(htmlFiles, v)
|
||||
end
|
||||
|
||||
file:close()
|
||||
end
|
||||
|
||||
-- #####################################################################
|
||||
|
||||
lngCount = 0
|
||||
local first_name = nil
|
||||
local prev_elem = nil
|
||||
for name, elem in pairs(wb_usr.messages) do
|
||||
if (lngCount == 0) then
|
||||
first_name = name
|
||||
end
|
||||
lngCount = lngCount + 1
|
||||
if (prev_elem) then
|
||||
prev_elem.next = name
|
||||
end
|
||||
prev_elem = elem
|
||||
end
|
||||
prev_elem.next = first_name
|
||||
|
||||
print("Building...")
|
||||
|
||||
for name, elem in pairs(wb_usr.messages) do
|
||||
lngIndex = name
|
||||
lngNext = elem.next
|
||||
|
||||
if (lngCount > 1) then
|
||||
lngSuffix = "_"..lngIndex
|
||||
else
|
||||
lngSuffix = ""
|
||||
end
|
||||
|
||||
writeIndexFile()
|
||||
writeTitleFile()
|
||||
writeBarFile()
|
||||
writeTreeFile()
|
||||
writeSearchFile()
|
||||
writeSearchIndexFile()
|
||||
end
|
||||
|
||||
print("Done.")
|
99
doc/wb/wb_usr.lua
Executable file
@ -0,0 +1,99 @@
|
||||
-------------------------------------------------------------------------------
|
||||
-- eLua Documentation Structure Definition
|
||||
--
|
||||
-- This is a config file for the WebBook help html generator
|
||||
-- More info about WebBook can be found @ http://www.tecgraf.puc-rio.br/webbook
|
||||
--
|
||||
--
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
wb_usr = {
|
||||
langs = {"en","pt"},
|
||||
start_size = "200",
|
||||
contact = "dadosutter@eluaproject.net",
|
||||
copyright_link = "http://www.eluaproject.net",
|
||||
search_link = "http://www.eluaproject.net/doc",
|
||||
copyright_name = "eLua Team",
|
||||
title_bgcolor = "midnightblue",
|
||||
file_title = "wb",
|
||||
start_open = "1"
|
||||
}
|
||||
|
||||
wb_usr.messages = {
|
||||
pt = {
|
||||
title = "eLua Doc",
|
||||
bar_title = "eLua"
|
||||
},
|
||||
en = {
|
||||
title = "eLua Doc",
|
||||
bar_title = "eLua"
|
||||
}
|
||||
}
|
||||
|
||||
wb_usr.tree =
|
||||
{
|
||||
name= {nl= "eLua API"},
|
||||
link= "api_doc.html",
|
||||
folder=
|
||||
{
|
||||
{
|
||||
name= {en= "Modules", pt= "M<EFBFBD>dulos"},
|
||||
link= "modules_doc.html",
|
||||
folder=
|
||||
{
|
||||
{
|
||||
name= {en="gpio", pt= "gpio"},
|
||||
link= "gpio_doc.html"
|
||||
},
|
||||
{
|
||||
name= {en= "term", pt= "term"},
|
||||
link= "term_doc.html"
|
||||
},
|
||||
{
|
||||
name= {en = "bit", pt = "bit"},
|
||||
link= "bit_doc.html"
|
||||
},
|
||||
{
|
||||
name= {en = "uart", pt = "uart"},
|
||||
link= "uart_doc.html"
|
||||
},
|
||||
{
|
||||
name= {en = "spi", pt = "spi"},
|
||||
link= "spi_doc.html"
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
name= {en = "Reference", pt = "Refer<EFBFBD>ncia"},
|
||||
link= "ref.html",
|
||||
folder=
|
||||
{
|
||||
name= {en="gpio", pt= "gpio"},
|
||||
link= "gpio_ref.html",
|
||||
folder=
|
||||
{
|
||||
name={en="gpio.fun1", pt="gpio.fun1"},
|
||||
link="gpio_ref.html#fun1"
|
||||
},
|
||||
{
|
||||
name= {en= "term", pt= "term"},
|
||||
link= "gpio_ref.html#fun2"
|
||||
}
|
||||
},
|
||||
{
|
||||
name= {en = "bit", pt = "bit"},
|
||||
link= "bit_ref.html",
|
||||
folder=
|
||||
{
|
||||
name={en="bit.fun1", pt="bit.fun1"},
|
||||
link="bit_ref.html#fun1"
|
||||
},
|
||||
{
|
||||
name={en="bit.fun2", pt="bit.fun2"},
|
||||
link="bit_ref.html#fun2"
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
BIN
doc/wb_img/Thumbs.db
Executable file
BIN
doc/wb_img/barlineleft.png
Executable file
After Width: | Height: | Size: 169 B |
BIN
doc/wb_img/barlineright.png
Executable file
After Width: | Height: | Size: 165 B |
BIN
doc/wb_img/blank.png
Executable file
After Width: | Height: | Size: 219 B |
BIN
doc/wb_img/google.gif
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
doc/wb_img/hideall.png
Executable file
After Width: | Height: | Size: 204 B |
BIN
doc/wb_img/hideall_over.png
Executable file
After Width: | Height: | Size: 294 B |
BIN
doc/wb_img/lng_en.png
Executable file
After Width: | Height: | Size: 280 B |
BIN
doc/wb_img/lng_en_over.png
Executable file
After Width: | Height: | Size: 288 B |
BIN
doc/wb_img/lng_es.png
Executable file
After Width: | Height: | Size: 293 B |
BIN
doc/wb_img/lng_es_over.png
Executable file
After Width: | Height: | Size: 298 B |
BIN
doc/wb_img/lng_pt.png
Executable file
After Width: | Height: | Size: 296 B |
BIN
doc/wb_img/lng_pt_over.png
Executable file
After Width: | Height: | Size: 300 B |
BIN
doc/wb_img/minusnode.png
Executable file
After Width: | Height: | Size: 227 B |
BIN
doc/wb_img/minusnodelast.png
Executable file
After Width: | Height: | Size: 223 B |
BIN
doc/wb_img/next.png
Executable file
After Width: | Height: | Size: 330 B |
BIN
doc/wb_img/next_over.png
Executable file
After Width: | Height: | Size: 334 B |
BIN
doc/wb_img/node.png
Executable file
After Width: | Height: | Size: 248 B |
BIN
doc/wb_img/nodelast.png
Executable file
After Width: | Height: | Size: 248 B |
BIN
doc/wb_img/plusnode.png
Executable file
After Width: | Height: | Size: 231 B |
BIN
doc/wb_img/plusnodelast.png
Executable file
After Width: | Height: | Size: 227 B |
BIN
doc/wb_img/previous.png
Executable file
After Width: | Height: | Size: 330 B |
BIN
doc/wb_img/previous_over.png
Executable file
After Width: | Height: | Size: 336 B |
BIN
doc/wb_img/sepblank.png
Executable file
After Width: | Height: | Size: 209 B |
BIN
doc/wb_img/sepnode.png
Executable file
After Width: | Height: | Size: 264 B |
BIN
doc/wb_img/sepvertline.png
Executable file
After Width: | Height: | Size: 233 B |
BIN
doc/wb_img/showall.png
Executable file
After Width: | Height: | Size: 220 B |
BIN
doc/wb_img/showall_over.png
Executable file
After Width: | Height: | Size: 328 B |
BIN
doc/wb_img/sync.png
Executable file
After Width: | Height: | Size: 288 B |
BIN
doc/wb_img/sync_over.png
Executable file
After Width: | Height: | Size: 348 B |
BIN
doc/wb_img/title_background.png
Executable file
After Width: | Height: | Size: 2.6 KiB |
BIN
doc/wb_img/vertline.png
Executable file
After Width: | Height: | Size: 240 B |
BIN
doc/wb_img/webbook.png
Executable file
After Width: | Height: | Size: 608 B |
BIN
doc/wb_img/webbook_over.png
Executable file
After Width: | Height: | Size: 612 B |