2016-12-06 14:50:14 +02:00
|
|
|
ImprovEngine = require "improv"
|
|
|
|
marked = require "marked"
|
|
|
|
fs = require 'fs'
|
|
|
|
CSON = require 'cson'
|
|
|
|
glob = require 'glob'
|
|
|
|
|
|
|
|
class ImprovModel
|
|
|
|
constructor: () ->
|
|
|
|
@tags = []
|
|
|
|
|
|
|
|
files = glob.sync('data/*.cson')
|
|
|
|
spec = {}
|
|
|
|
for file in files
|
|
|
|
data = CSON.parseCSONFile(file)
|
|
|
|
if not data.groups?
|
|
|
|
data.groups = []
|
|
|
|
if data.phrases?
|
|
|
|
data.groups.push({
|
|
|
|
tags: [],
|
|
|
|
phrases: data.phrases
|
|
|
|
})
|
|
|
|
data.phrases = null
|
|
|
|
key = file.substr(0, file.lastIndexOf('.')) || file
|
|
|
|
key = key.replace('data/', '')
|
|
|
|
spec[key] = data
|
|
|
|
|
|
|
|
improv = new ImprovEngine(spec, {
|
|
|
|
filters: [
|
|
|
|
ImprovEngine.filters.mismatchFilter()
|
|
|
|
]
|
|
|
|
reincorporate: true
|
|
|
|
})
|
|
|
|
|
|
|
|
model = new ImprovModel
|
2016-12-06 15:08:52 +02:00
|
|
|
console.log marked(improv.gen('intro', model))
|
|
|
|
for i in [1..2]
|
|
|
|
console.log marked(improv.gen('chapter', model))
|