hikaru-coffee
Version:
A static site generator that generates routes based on directories naturally.
37 lines (32 loc) • 881 B
text/coffeescript
colors = require("colors/safe")
Promise = require("bluebird")
{Site, File, Category, Tag} = require("./type")
class Processer
constructor: (logger) ->
= logger
= {}
# fn: param p, posts, ctx, return Promise
register: (layout, fn) =>
if fn not instanceof Function
throw new TypeError("fn must be a Function!")
return
if layout instanceof Array
for l in layout
if l not of
[l] = []
[l].push(fn)
return
if layout not of
[layout] = []
[layout].push(fn)
process: (p, posts, ctx) =>
.debug(
"Hikaru is processing `#{colors.cyan(p["docPath"])}`..."
)
if p["layout"] of
results = []
for fn in [p["layout"]]
p = await fn(p, posts, ctx)
return p
return Object.assign(new File(), p, ctx)
module.exports = Processer