#!/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 }, ''