1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#!/usr/bin/env moon
import Constant from require 'alv'
import render, layout, subnav from require 'docs.gen.layout'
import h2, h3, ul, li, code from require 'docs.gen.dom'
import opairs from require 'alv.util'
export OUT, require
require = do
old_require = require
blacklist = {k, true for k in *{'osc', 'socket', 'system', 'luartmidi'}}
(mod, ...) ->
return {} if blacklist[mod]
old_require mod, ...
slurp = (file) ->
file = io.open file, 'r'
with file\read '*all'
file\close!
spit = (file, str) ->
file = io.open file, 'w'
file\write str
file\close!
{ OUT, module, name } = arg
name or= module
const = Constant.wrap require module
module = const\unwrap!
spit OUT, layout
title: "#{name} module reference"
body: table.concat {
subnav [a for a in *arg[4,]]
h2 (code name), ' module reference'
h3 'index'
ul for key, node in opairs module.values
li render key, node.result, nil, true
h3 'details'
ul for key, node in opairs module.values
li render key, node.result
}, ''
|