diff --git a/index.html b/index.html
index e9c40ff..8ed32af 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,16 @@ $render{"templates/wares"}
Posts
-$list_posts{limit = 5}
+$({{go = "yeah"}})[[$go! I can't believe this thing works!
]]
+$(blah)[[$say, ]]
+$blah[[$say
]]
+$(get_posts({limit = 5}))[[
+
+]]
View more posts
diff --git a/site.moon b/site.moon
index b17601f..68f9eb2 100644
--- a/site.moon
+++ b/site.moon
@@ -2,13 +2,14 @@ sitegen = require "sitegen"
Site = require "sitegen.site"
Path = require "sitegen.path"
html = require "sitegen.html"
+common = require "sitegen.common"
cosmo = require "sitegen.cosmo"
date = require "date"
html_renderer = require "sitegen.renderers.html"
import tag from html
import escape_patt from require "sitegen.common"
-import p from require "moon"
+import p from require "moon" -- debug
-- Change output dir to what Openresty prefers
Site.config.out_dir = "html/"
@@ -51,75 +52,89 @@ join = (first, last, delimiter="/") -> table.concat { first, last }, delimiter
reverse = (list={}) -> [item for item in *list[#list, 1, -1]]
target = (path, prefix) -> join prefix, rootname(last(split path))
-posts = (path=".") ->
- files = reverse get_files path
- {join(path, file), target(file, "/posts") for file in *files}
-
extract_id = (source) -> string.match Path.filename(source), "%a[%w%-]+"
extract_date = (source) -> string.match Path.filename(source), "%d+%-%d%d%-%d%d"
format_date = (str) -> date(str)\fmt "%b %d, %Y"
publish_date = (path) -> format_date extract_date path
-posts2 = (path=".") ->
- files = reverse get_files path
-
- [{
- path: join(path, file)
- target: Path.join Path.basepath(target(file, "/posts")), extract_id(join(path, file))
- post_id: extract_id join(path, file)
- publish_date: publish_date join(path, file)
- } for file in *files]
-
-common = require("sitegen.common")
h = (word) -> word\sub(1, 1)\upper!
t = (word) -> word\sub(2, -1)\lower!
titleize = (word) -> h(word), t(word)
-titleize_slug = (slug) ->
+titleize_slug = (slug="") ->
words = [{ titleize word } for word in *common.split slug, "-"]
table.concat [head .. tail for { head, tail } in *words], " "
+template = [[
+
+]]
+
+-- limit the number with args {limit = 5}
list_posts = (page, args={}) ->
posts = page.site\query_pages { is_a: "post" }
table.sort posts, (a, b) -> a.source > b.source
- table.concat [common.fill_ignoring_pre [[
-
- ]], {
+ a = table.concat [common.fill_ignoring_pre template, {
target: meta.target
post_title: meta.title or titleize_slug meta.id
publish_date: publish_date source
blurb: meta.blurb
} for { meta: meta, source: source } in *posts[1, args.limit or #posts]]
-list_posts2 = (page, args={}) ->
- pages = page.site\query_pages { is_a: "post" }
- table.sort pages, (a, b) -> a.source > b.source
+ p for { meta: meta, source: source } in *posts[1, args.limit or #posts]
+ common.fill_ignoring_pre template, {
+ target: "target"
+ post_title: "post_title"
+ publish_date: "publish_date"
+ blurb: "blurb"
+ }
+ a
- posts = [{
- target: meta.target
- post_title: meta.title or titleize_slug(meta.id)
- publish_date: publish_date source
- blurb: meta.blurb
- } for { meta: meta, source: source } in *pages[1, args.limit or #pages]]
-
- for post in *posts do cosmo.yield post
+get_posts = (args={}) =>
+ posts = @site\query_pages { is_a: "post" }
+ table.sort posts, (a, b) -> a.source > b.source
+ for { meta: meta, source: source } in *posts[1, args.limit or #posts]
+ {
+ target: meta.target
+ post_title: meta.title or titleize_slug meta.id
+ publish_date: publish_date source
+ blurb: meta.blurb
+ }
+-- replace '$if' helper function with cosmo's 'cif'
html_renderer.cosmo_helpers.if = (args, has_block) => cosmo.cif args, has_block
-html_renderer.cosmo_helpers.titleize = (slug) => html.build ->
- titleize_slug(slug) if slug
+-- add a '$titleize' helper function
+html_renderer.cosmo_helpers.titleize = (slug) => titleize_slug slug
+
+documents = (path=".") ->
+ files = reverse get_files path
+ {join(path, file), target(file, "/posts") for file in *files}
+
+-- get_some = () -> {{say: "this"}, {say: "that"}}
+get_some = (args={}) =>
+ posts = @site\query_pages { is_a: "post" }
+ table.sort posts, (a, b) -> a.source > b.source
+
+ [{
+ target: post.meta.target
+ post_title: post.meta.title or titleize_slug post.meta.id
+ publish_date: publish_date post.source
+ blurb: post.meta.blurb
+ } for post in *posts[1, args.limit or #posts]]
sitegen.create =>
@site_title = "WebDevCat.me"
@app_name = "stasis"
@version = "0.2.12"
@list_posts = list_posts
+ @get_posts = get_posts
+ @get_some = get_some
- add "index.html", title: "Catalin Mititiuc"
+ add "index.html", title: "Catalin Mititiuc", blah: {{say: "wan"},{say: "tuu"}}
add "blog.html", title: "Posts", target: "posts/index", template: "blog"
-- add "about.html", some: {
@@ -127,7 +142,7 @@ sitegen.create =>
-- { one: "A", two: "B" }
-- }, cif: cosmo.cif, math: math, x: 2
- for path, target in pairs posts "docs"
+ for path, target in pairs documents "docs"
id = extract_id path
add path,
@@ -136,7 +151,6 @@ sitegen.create =>
is_a: "post"
publish_date: publish_date path
id: id
- -- titleize: (slug) -> html.build -> titleize_slug(slug)
-- replace post markdown yaml headers with moonscript headers
filter "docs", (body) =>