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
|
#!/usr/bin/env moon
import Constant from require 'alv'
import render, render_meta, layout, subnav from require 'docs.gen.layout'
import h2, h3, p, ul, li, code from require 'docs.gen.dom'
import get_module from require 'docs.gen.shim'
import opairs from require 'alv.util'
export OUT
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 = get_module module
raw = module!
spit OUT, layout
title: "#{name} module reference"
body: table.concat {
subnav [a for a in *arg[4,]]
h2 (code name), ' module reference'
p if m = module.meta then m.summary else ''
h3 'index'
ul for key, node in opairs raw.values
li render key, node.result, nil, true
h3 'details'
ul for key, node in opairs raw.values
li render key, node.result
}, ''
|