+++ /dev/null
-<%- 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">⇑</a>
-</div>
-<% end end end -%>
-<%+footer.xml%>
\ No newline at end of file