aboutsummaryrefslogtreecommitdiffstats
path: root/docs/gen/module
blob: 77336cf1e70710cd2e4f3ea1f945c23ac7ce1969 (plain)
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
  }, ''