build: remove some obsolete support scripts
[project/luci.git] / libs / uvldoc / luasrc / uvldoc / proto / xhtml / section.xml
index 985809e..691fde4 100644 (file)
@@ -1,2 +1,198 @@
+<%- title = scheme .. "." .. type -%> 
 <%+header.xml%>
+<%
+local table = require "table"
+
+types = {
+       list = "List",
+       variable = "Variable",
+       lazylist = "Mixed",
+       enum = "Enumerator",
+       reference = "Reference"
+}
+
+datatypes = {
+       boolean = "Boolean",
+       string = "String",
+       uint = "Unsigned Integer",
+       integer = "Integer",
+       float = "Real Number",
+       ipaddr = "IP-Address",
+       ip4addr = "IPv4-Address",
+       ip6addr = "IPv6-Address",
+       ip4prefix = "IPv4-Prefix",
+       ip6prefix = "IPv6-Prefix",
+       hostname = "Hostname",
+       host = "Host (Hostname or IP-Address)",
+       directory = "Filesystem path (to directory)",
+       file = "Filesystem path (to file)",
+       macaddr = "MAC-Address",
+       port = "Port",
+       portrange = "Single Port or Portrange (First-Last)"
+}
+
+function _parse_ref( r )
+       local k, v, h = r:match("([^.]+)%.([^.]+)%.([^.]+)")
+       if not k then
+               k, v = r:match("([^.]+)%.([^.]+)")
+       end
+       if k then
+               if h then
+                       return self:_variable_target(k, v, h), true
+               else
+                       return self:_section_filename(k, v)
+               end
+       end
+end 
+
+function _parse_dep( r, c, s, o )
+       local ref  = { }
+       local vars = {
+               config  = c,
+               section = s,
+               option  = o
+       }
+
+       for v in r:gmatch("[^.]+") do
+               ref[#ref+1] = (v:gsub( "%$(.+)", vars ))
+       end
+       
+       if #ref < 2 then
+               table.insert(ref, 1, s or '$section')
+       end
+       if #ref < 3 then
+               table.insert(ref, 1, c or '$config')
+       end
+
+       return self:_variable_target(unpack(ref))
+end
+
+%>
+<a name="top"></a>
+<h1 class="section-title"><%=scheme-%>
+<%-if package.title then%><dfn> - <%=package.title%></dfn><%end%></h1>
+<h2 class="section-subtitle"><%=type-%>
+<%-if section.title then%><dfn> - <%=section.title%></dfn><%end%></h2>
+<div class="section-description"><%=section.description%></div>
+
+<h3 class="section-attributes">Attributes:</h3>
+<ul class="section-attributes-index">
+<%- 
+if section.required then %>
+       <li class="section-attributes-required">required: <dfn>A section of this type is required.</dfn></li>
+<% end
+if section.unique then %>
+       <li class="section-attributes-unique">unique: <dfn>There can be only one section of this type.</dfn></li>
+<%- else -%>
+       <li class="section-attributes-multiple">multiple: <dfn>There can be more than one section of this type.</dfn></li>
+<% end
+if section.dynamic then %> 
+       <li class="section-attributes-dynamic">dynamic: <dfn>Sections of this type may contain user-defined options.</dfn></li>
+<% end 
+if section.named then %> 
+       <li class="section-attributes-named">named: <dfn>Sections of this type require a name.</dfn></li>
+<% end -%>
+</ul>
+
+<% if section.depends then %>
+       <h3 class="section-depends">Requirements (one of):</h3>
+       <ul class="section-depends-index">
+               <% for i, d in ipairs(section.depends) do 
+                       local nf = false%>
+               <li>
+               <% for k2, v in luci.util.kspairs(d) do
+                       local t = _parse_dep(k2, scheme, type)
+               %>
+                       <% if nf then %>and<% end %>
+                       <%if t then%><a href="<%=t%>"><%end%><%=k2%><%if t then%></a><%end%><%if v~=true then%>=<%=v%><%end%>
+               <% nf = true
+                       end %>
+               </li>
+               <% end %>
+       </ul>
+<% end %>
+
+<h3 class="section-variables">Variable Overview:</h3>
+<table class="section-variables-index">
+<% for k, v in luci.util.kspairs(package.variables[type]) do 
+if v.required then%>
+<tr class="section-variable-required">
+       <th><a href="#variable.<%=k%>"><%=k%></a></th>
+       <td><%=v.title%></td>
+</tr>
+<% end end
+for k, v in luci.util.kspairs(package.variables[type]) do 
+if not v.required then%>
+<tr class="section-variable-mixed">
+       <th><a href="#variable.<%=k%>"><%=k%></a></th>
+       <td><%=v.title%></td>
+</tr>
+<% end end %>
+</table>
+
+<h3 class="section-variables">Options:</h3>
+<%-
+for i=0, 1 do
+for k, v in luci.util.kspairs(package.variables[type]) do
+if (i==0) == v.required then
+%>
+<hr />
+<div class="variable-documentation">
+       <a name="variable.<%=k%>"></a>
+       <h4 class="variable-title"><%=k-%>
+       <%-if v.title then%><dfn> - <%=v.title%></dfn><%end%></h4>
+       <div class="variable-declaration">
+       <div class="variable-description"><%=v.description%></div>
+       <h5 class="variable-attributes">Attributes:</h5>
+       <ul class="varaible-attributes-index">
+       <% if v.required then %>
+               <li class="variable-attribute-required"><strong>required</strong></li>
+       <% end %>
+               <li class="variable-attribute-type"><strong>Type:</strong> <%=types[v.type] or v.type%></li>
+               <li class="variable-attribute-datatype"><strong>Datatype:</strong> <%=datatypes[v.datatype] or v.datatype%></li>
+       <% if v.multival then %>
+               <li class="variable-attribute-multiple"><strong>multiple values:</strong> space-separated</li>
+       <% end %>
+       </ul>
+       <% if v.depends then %>
+               <h5 class="variable-depends">Dependencies (one of):</h5>
+               <ul class="variable-depends-index">
+                       <% for i, d in ipairs(v.depends) do 
+                               local nf = false %>
+                       <li>
+                       <% for k2, v in luci.util.kspairs(d) do
+                               local t = _parse_dep(k2, scheme, type, k)
+                       %>
+                               <% if nf then %>and<% end %>
+                               <%if t then%><a href="<%=t%>"><%end%><%=k2%><%if t then%></a><%end%><%if v~=true then%>=<%=v%><%end%>
+                       <% nf = true
+                       end %>
+                       </li>
+                       <% end %>
+               </ul>
+       <% end %>
+       <% if v.type == "enum" then %>
+               <h5 class="variable-values">Possible Values:</h5>
+               <ul class="variable-values-index">
+                       <% for k, d in pairs(v.values) do %> 
+                       <li><strong><%=k%></strong><%if d then%> (<%=d%>)<%end%></li>
+                       <% end %>
+               </ul>
+       <% elseif v.type == "reference" then %>
+               <h5 class="variable-reference">Value references:</h5>
+               <ul class="variable-reference-index">
+                       <% for k, d in ipairs(v.valueof) do %> 
+                       <li>
+                       <% local t, x = _parse_ref(d)
+                       if t then %><%=x and "Value of" or "Section of type"%> <a href="<%=t%>"><% end %>
+                       <%=d%>
+                       <% if t then%></a><% end %>
+                       </li>
+                       <% end %>
+               </ul>
+       <% end %>
+       </div>
+       <a href="#top">&#8657;</a>
+</div>
+<% end end end -%>
 <%+footer.xml%>
\ No newline at end of file