aboutsummaryrefslogtreecommitdiffstats
path: root/docs/gen/module
blob: 143e3fefd8a69d0b4a76b7c01490e9a2e012ae07 (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
#!/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
  }