factory = require "spec.factory" import trim from require "sitegen.common" flatten_html = (html) -> trim (html\gsub "%>%s+%<", "><") describe "renderers", -> render_for_site = (site, renderer, str, meta={}, page) -> page or= factory.Page(:site) page.render_fn, page.meta = renderer\load str page.meta.template = false for k,v in pairs meta page.meta[k] = v page\render! describe "renderers.markdown", -> local site, renderer render = (...) -> render_for_site site, renderer, ... before_each -> MarkdownRenderer = require "renderers.markdown" site = factory.Site! renderer = MarkdownRenderer site it "syntax highlights some code", -> out = flatten_html render [[ ```lua print("hello world") ```]] assert.same [[
print("hello world")
print"Hi, #{@name}!"
print5
```lua print thing ```
]=], out it "doesn't highlight unrecognized code languages", -> out = flatten_html render [[ ```snickerdoodle this code block has an unknown label ```]] assert.same [[this code block has an unknown label
]], out
it "doesn't highlight unlabeled code blocks", ->
out = flatten_html render [[
```
this code block has no label
```]]
assert.same [[this code block has no label
<.greet name="Jane"/>