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
|
#!/usr/bin/env moon
import Scope from require 'alv'
import render, layout from require 'docs.gen.layout'
import section, h2, h3, ul, li, code from require 'docs.gen.dom'
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
module = Scope.from_table require module
spit OUT, layout
title: "#{name} reference"
body: section {
h2 (code name), ' module reference'
h3 'index'
ul for key, res in opairs module.values
li render key, res.value, nil, true
h3 'details'
ul for key, res in opairs module.values
li render key, res.value
}
|