diff options
| author | Alexander Pickering <alex@cogarr.net> | 2020-07-05 17:18:56 -0400 |
|---|---|---|
| committer | Alexander Pickering <alex@cogarr.net> | 2020-07-05 17:18:56 -0400 |
| commit | e87b06ee0fe2a588b72a356bbb8378899365d626 (patch) | |
| tree | 0d0acd945a70644835e8958425e6d5e6c10196a6 /share | |
| parent | d2ba262c5307aa14c325ef53d8e4e56a5ece0376 (diff) | |
| download | mdoc-e87b06ee0fe2a588b72a356bbb8378899365d626.tar.gz mdoc-e87b06ee0fe2a588b72a356bbb8378899365d626.tar.bz2 mdoc-e87b06ee0fe2a588b72a356bbb8378899365d626.zip | |
Add rockspec
Add a rockspec and move the files around so that luarocks can
install it correctly
Diffstat (limited to 'share')
| -rw-r--r-- | share/func.etlua.lua | 43 | ||||
| -rw-r--r-- | share/funcsignature.etlua.lua | 24 | ||||
| -rw-r--r-- | share/index.etlua.lua | 19 | ||||
| -rw-r--r-- | share/navbar.etlua.lua | 26 | ||||
| -rw-r--r-- | share/page.etlua.lua | 91 | ||||
| -rw-r--r-- | share/style.css.lua | 28 |
6 files changed, 231 insertions, 0 deletions
diff --git a/share/func.etlua.lua b/share/func.etlua.lua new file mode 100644 index 0000000..f635851 --- /dev/null +++ b/share/func.etlua.lua @@ -0,0 +1,43 @@ +return [[
+<section>
+ <h4 id="<%- name %>">
+ <%- name %>(
+ <% for n, param in pairs(data.params) do %>
+ <% if param.optional then %>[<% end %>
+ <% if n ~= 1 then %>,<% end %>
+ <%- param.type %> <%- param.name %>
+ <% if param.optional then %>]<% end %>
+ <% end %>
+ )
+ </h4>
+ <p><%- data.short_desc %>
+ <p><%- data.desc %>
+ <% if #data.params > 0 then %>
+ <h5>Parameters</h5>
+ <ul>
+ <% for _, param in pairs(data.params) do %>
+ <li>
+ <p><b><%- param.name %></b>
+ <% if param.optional then %>(optional)<% end %>
+ <% if param.type then %>
+ (<a href="<%- param.type %>.html"><%- param.type %></a>)
+ <% end %>
+ <p><%- param.description %>
+ </li>
+ <% end %>
+ </ul>
+ <% end %>
+ <% if #data.returns > 0 then %>
+ <h5>Returns</h5>
+ <ul>
+ <% for _, ret in pairs(data.returns) do %>
+ <li>
+ <p><a href="<%- ret.type %>.html"><%- ret.type %></a>
+ <p><%- ret.description %>
+ </li>
+ <% end %>
+ </ul>
+ <% end %>
+ <p> Defined at <%- data.file %>:<%- data.line %>
+</section>
+]]
diff --git a/share/funcsignature.etlua.lua b/share/funcsignature.etlua.lua new file mode 100644 index 0000000..de34880 --- /dev/null +++ b/share/funcsignature.etlua.lua @@ -0,0 +1,24 @@ +return [[
+<% assert(func, "Requires function to render a function signature") %>
+<% assert(funcname, "Requires a function name to render a function signature") %>
+<a href="#<%- funcname %>"><%- funcname %></a>(
+ <% if func.params and #func.params > 0 then %>
+ <% local optchain = false %>
+ <% for paramid, param in pairs(func.params) do %>
+ <% if paramid == 1 and param.optional then %>
+ [
+ <% elseif param.optional then %>
+ [,
+ <% elseif paramid > 1 then %>
+ ,
+ <% end %>
+ <%- param.name %>
+ <% if paramid == 1 and param.optional then %>
+ ]
+ <% elseif param.optional then %>
+ ]
+ <% end %>
+ <% end %>
+ <% end %>
+)
+]]
diff --git a/share/index.etlua.lua b/share/index.etlua.lua new file mode 100644 index 0000000..9f07fff --- /dev/null +++ b/share/index.etlua.lua @@ -0,0 +1,19 @@ +return [[
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <title><%- options.title %></title>
+ <link rel="stylesheet" href="style.css" type="text/css">
+ <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.0.0/build/styles/default.min.css">
+ <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.0.0/build/highlight.min.js"></script>
+ </head>
+ <body>
+ <%- navbar %>
+ <article>
+ <%- text %>
+ </article>
+ </body>
+</html>
+]]
diff --git a/share/navbar.etlua.lua b/share/navbar.etlua.lua new file mode 100644 index 0000000..21192f7 --- /dev/null +++ b/share/navbar.etlua.lua @@ -0,0 +1,26 @@ +return [[
+<nav>
+<% local sorted_headers = {} %>
+<% for name,_ in pairs(headers) do %>
+<% table.insert(sorted_headers, name) %>
+<% end %>
+<% table.sort(sorted_headers) %>
+<% for _,header in pairs(sorted_headers) do %>
+ <% local sections = headers[header] %>
+ <h3><%- header %></h3>
+ <% local sorted_sections = {} %>
+ <% local section_map = {} %>
+ <% for _,section in pairs(sections) do %>
+ <% table.insert(sorted_sections, section.name) %>
+ <% section_map[section.name] = section %>
+ <% end %>
+ <% table.sort(sorted_sections) %>
+ <ol>
+ <% for _,sectionname in ipairs(sorted_sections) do %>
+ <% local section = section_map[sectionname] %>
+ <li><a href="<%- section.name %>.html"><%- section.name %></a></li>
+ <% end %>
+ </ol>
+<% end %>
+</nav>
+]]
diff --git a/share/page.etlua.lua b/share/page.etlua.lua new file mode 100644 index 0000000..6e359e6 --- /dev/null +++ b/share/page.etlua.lua @@ -0,0 +1,91 @@ +return [[
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+ <head>
+ <title><%- options.title %></title>
+ <link rel="stylesheet" href="style.css" type="text/css">
+ <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.0.0/build/styles/default.min.css">
+ <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.0.0/build/highlight.min.js"></script>
+ </head>
+ <body>
+ <%- navbar %>
+ <article>
+ <% if header.data_file then %>
+ <% local reffd = io.open(header.data_file,"r") %>
+ <p><%- reffd:read("*a") %>
+ <% reffd:close() %>
+ <% else %>
+ <section>
+ <h3><%- header.name %></h3>
+ <% if header.short_desc then %>
+ <p><%- header.short_desc %>
+ <% header.short_desc = nil %>
+ <% end %>
+ <% if header.desc then %>
+ <p><%- header.desc or "" %>
+ <% header.desc = nil %>
+ <% end %>
+ <% if header.inherits then %>
+ <p>Inherits from
+ <% for _,name in pairs(header.inherits) do %>
+ <a href="<%- name %>.html"><%- name %></a>
+ <% end %>
+ <% end %>
+ </section>
+ <% local funcorder = {} %>
+ <% for funcname,_ in pairs(header) do %>
+ <% table.insert(funcorder,funcname) %>
+ <% end %>
+ <% table.sort(funcorder) %>
+ <section>
+ <h4>Contents</h4>
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Description</th>
+ </tr>
+ <% for _, funcname in ipairs(funcorder) do %>
+ <% local data = header[funcname] %>
+ <% if data and data.short_desc then %>
+ <tr>
+ <% if data.type == "function" or data.type == "method" then %>
+ <td><%- funcsig({funcname = funcname, func = header[funcname]}) %></td>
+ <td><%- data.short_desc %></td>
+ <% else %>
+ <td><%- data.name %></td>
+ <td><%- data.short_desc %></td>
+ <% end %>
+ </tr>
+ <% end %>
+ <% end %>
+ </table>
+ </section>
+ <hr>
+ <% local func_sec = assert(et.compile(require("mdoc.files.func"))) %>
+ <% for _, funcname in ipairs(funcorder) do %>
+ <% local data = header[funcname] %>
+ <% if data.type == "method" or data.type == "function" then %>
+ <%- assert(func_sec{
+ name = funcname,
+ data = data
+ }) %>
+ <hr>
+ <% elseif data.type == "field" then %>
+ <h4><%- funcname %></h4>
+ <p><%- data.desc or "" %>
+ <hr>
+ <% else %>
+ <% if funcname ~= "name" and funcname ~= "type" then %>
+ <p>Unknown field type: <%- data and data.type or "" %> for <%- funcname %>
+ <p><%- tostring(data) %>
+ <p><%- tostring(header) %>
+ <hr>
+ <% end %>
+ <% end %>
+ <% end %>
+ <% end %>
+ </article>
+ </body>
+</html>
+]]
diff --git a/share/style.css.lua b/share/style.css.lua new file mode 100644 index 0000000..88df99e --- /dev/null +++ b/share/style.css.lua @@ -0,0 +1,28 @@ +return [[
+nav{
+ float:left;
+ padding:2em;
+ border-right:1px solid black;
+}
+article{
+ margin: auto auto auto 20%;
+}
+a{
+ text-decoration: none;
+}
+a:hover{
+ text-decoration:underline;
+}
+nav>ol{
+ list-style-type: none;
+}
+body{
+ line-height:1.6;
+ font-size:18px;
+ color:#444;
+ padding:0 10px
+}
+h1,h2,h3{
+ line-height:1.2
+}
+]]
|
