site/controllers/blog.moon

48 lines
1.0 KiB
Plaintext
Raw Normal View History

2015-02-13 20:42:42 +00:00
discount = require "discount"
lapis = require "lapis"
file = require "pl.file"
2015-02-13 20:42:42 +00:00
oleg = require "lib/oleg"
path = require "pl.path"
2015-02-13 20:42:42 +00:00
util = require "lapis.util"
split = require "util"
class Blog extends lapis.Application
["blog.index": "/blog"]: =>
@doc = oleg.cache "caches", "blog-index", ->
local data
with io.open "static/markdown/blog.html", "r"
data = \read "*a"
data
@title = "Blog"
@page = "blog"
2015-02-13 20:42:42 +00:00
render: true
["blog.post": "/blog/:name"]: =>
@name = util.slugify @params.name
unless path.exists "blog/#{@name}.markdown"
return render: "notfound", status: 404
2015-02-13 20:42:42 +00:00
@doc = oleg.cache "blogposts", @name, ->
local data
do
fin = io.open "blog/#{@name}.markdown", "r"
fin\read "*l"
fin\read "*l"
fin\read "*l"
data = fin\read "*a"
fin\close!
2015-02-13 20:42:42 +00:00
discount data, "toc", "nopants", "autolink"
2015-02-13 20:48:30 +00:00
with io.open "blog/#{@name}.markdown", "r"
@title = \read "*l"
\close!
2015-02-13 20:48:30 +00:00
@page = "blog"
2015-02-13 20:42:42 +00:00
render: true