159 lines
4.6 KiB
Plaintext
159 lines
4.6 KiB
Plaintext
sitegen = require "sitegen"
|
|
tools = require "sitegen.tools"
|
|
site = require "sitegen.site"
|
|
lfs = require "lfs"
|
|
|
|
date = require "date"
|
|
path = require "sitegen.path"
|
|
-- import slugify from "sitegen.common"
|
|
common = require "sitegen.common"
|
|
|
|
rootname = (str) ->
|
|
result = string.gsub str, "%..+", ""
|
|
result
|
|
|
|
split = (str, delimiter="/") ->
|
|
[capture for capture in string.gmatch str, "[^#{delimiter}]+"]
|
|
|
|
last = (list) -> list[#list]
|
|
join = (first, last, delimiter="/") -> table.concat {first, last}, delimiter
|
|
target = (path, prefix) -> join prefix, rootname(last(split path))
|
|
|
|
posts = (path=".") ->
|
|
files = [file for file in lfs.dir path when file != "." and file != ".."]
|
|
{join(path, file), target(file, "/posts") for _, file in ipairs files}
|
|
|
|
-- Change output dir to what Openresty prefers
|
|
-- site = site!
|
|
site.config.out_dir = "html/"
|
|
|
|
css = tools.system_command "cp %s %s", "css"
|
|
|
|
ps = posts("docs")
|
|
|
|
-- require("moon").p ps
|
|
|
|
files = [file for file in lfs.dir "docs" when file != "." and file != ".."]
|
|
|
|
-- sf = require("sitegen.site_file")
|
|
|
|
-- require("moon").p sf
|
|
|
|
-- for file in lfs.dir "docs" -- when file != "." and file != ".."
|
|
-- print rootname(last(split path))
|
|
-- print file
|
|
|
|
at = (one, two) ->
|
|
print "ANOTHER TEST"
|
|
require("moon").p two
|
|
|
|
html = require("sitegen.html")
|
|
|
|
one = () ->
|
|
html.build ->
|
|
tag.a { href: "momo", "yayaya" }
|
|
tag.a { href: "momo", "yayaya" }
|
|
|
|
require("sitegen.renderers.markdown").render = (page, md_source) =>
|
|
discount = require "discount"
|
|
|
|
md_source = page\pipe "renderer.markdown.pre_render", md_source
|
|
md_source, escapes = escape_cosmo md_source
|
|
|
|
html_source = assert discount md_source
|
|
html_source = unescape_cosmo html_source, escapes
|
|
print("DDDDDDDDDDDDDD")
|
|
|
|
super page, html_source
|
|
|
|
-- require("moon").p require("sitegen.renderers.markdown")
|
|
|
|
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
|
|
|
|
sitegen.create =>
|
|
@site_title = "WebDevCat.me · Catalin Mititiuc"
|
|
@app_name = "stasis"
|
|
@version = "0.2.12"
|
|
@val = "yes"
|
|
@posts = (page) ->
|
|
-- require("moon").p [key for key in pairs page.site.pages[1]]
|
|
-- require("moon").p [key for key in pairs page.site]
|
|
-- posts = [{
|
|
-- id: p.meta.id
|
|
-- target: p.meta.target
|
|
-- source: p.source
|
|
-- } for _, p in pairs page.site.pages when p.meta.template == "blog"]
|
|
-- pages = [key for key, _ in pairs page for _, page in ipairs page.site.pages]
|
|
|
|
-- posts = [{
|
|
-- id: p.meta.id
|
|
-- target: p.meta.target
|
|
-- source: p.source
|
|
-- } for _, p in pairs page.site.pages when p.meta.template == "blog"]
|
|
|
|
-- require("moon").p posts
|
|
-- posts
|
|
-- require("moon").p [key for key in pairs page.site]
|
|
-- require("moon").p [k for k,v in pairs page for _, page in ipairs pages]
|
|
-- require("moon").p [{page.meta, page.source} for _, page in ipairs pages when page.meta.template == "blog"]
|
|
-- require("moon").p [{dv} for k, dv in pairs(v) for _, v in pairs pages]
|
|
-- require("moon").p [k,v for key, v in pairs pages]
|
|
-- require("moon").p site.target
|
|
|
|
-- require("moon").p get_site
|
|
@test = (page) -> {{"b": 1, "c": 2}, {"d": 3, "e": 4}}
|
|
@what = (page) ->
|
|
page
|
|
-- require("moon").p [{ln, lv} for ln, lv in pairs debug.getlocal(2, idx)]
|
|
-- require("moon").p
|
|
|
|
-- require("moon").p @
|
|
|
|
-- @what = (page) =>
|
|
-- require("moon").p @
|
|
|
|
-- require("moon").p site.pages
|
|
|
|
-- @what!
|
|
|
|
add "index.html"
|
|
add path, target: out, template: "blog", is_a: "post", post: {
|
|
publish_date: publish_date(path)
|
|
}, id: extract_id(path) for path, out in pairs posts "docs"
|
|
|
|
-- add "docs/2023-11-15-test-mix-task-file-modify.md",
|
|
-- target: "posts/2023-11-15-test-mix-task-file-modify.html"
|
|
-- template: "blog"
|
|
-- is_a: "post"
|
|
-- post: {
|
|
-- publish_date: publish_date "docs/2023-11-15-test-mix-task-file-modify.md"
|
|
-- }
|
|
-- id: extract_id "docs/2023-11-15-test-mix-task-file-modify.md"
|
|
|
|
-- add "test.md"
|
|
-- feed "posts.moon", "feed.xml"
|
|
|
|
-- require("moon").p site
|
|
|
|
-- build css, "app.css"
|
|
copy "app.css"
|
|
|
|
-- filter "docs", (body) =>
|
|
-- require("moon").p body
|
|
|
|
-- require("moon").p search "start", "docs"
|
|
|
|
-- filter "2023%-08%-03", (body) =>
|
|
-- table.concat { body, "<p>hey there</p>" }
|
|
|
|
-- require("moon").p body
|
|
-- body\gsub "<h1>.-</h1>", (header) ->
|
|
-- table.concat { body, "yoyoasdf" }
|
|
-- body .. "yoyo"
|
|
-- body\gsub "{.-}", (header) ->
|
|
-- require("moon").p header
|
|
-- table.concat { '</div>', header, '<div class="main">' }
|