From 341fb76723290120bfd7418fc475c92e892ee195 Mon Sep 17 00:00:00 2001 From: Catalin Mititiuc Date: Fri, 23 May 2025 12:48:38 -0700 Subject: [PATCH] The reason it was so hard to pass in a block outside of a template is because you're not supposed to do that :/ you're supposed to just use moonscript to build it --- index.html | 19 +++++++++++++--- site.moon | 65 +++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/index.html b/index.html index 49a04cf..6aac3df 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,19 @@ -{ - date: "Thu May 08 2025 19:41:30.000000000" -} +

just_render: $just_render_the_damn_list{limit = 2}

+ +$map{$do_unpack{}} + +$(do_other())[[what $rank, ]] + + + +$({{"one", "hossssssss"}, {"two", "hesssssssssssssss"}})[[$1 and $2]] + +$({{rank = "ok"}})[[what $rank, ]] + +$do_cards[[this $rank, ]] + + +
$map{{'one', 'Spades', 3}, {'two', 'Hearts', 4}}[[$1 and $2 or $3]] diff --git a/site.moon b/site.moon index bd08593..c9ca827 100644 --- a/site.moon +++ b/site.moon @@ -43,6 +43,7 @@ rootname = (str) -> result = string.gsub str, "%..+", "" result +reflect = (obj) -> [key for key, value in pairs obj] last = (list) -> list[#list] reverse = (list={}) -> [item for item in *list[#list, 1, -1]] @@ -191,6 +192,12 @@ four1 = (template) => -- p list -- return [common.fill_ignoring_pre template, item for item in *list] +get_posts = (limit) => + pages = @site\query_pages { is_a: "post" } + table.sort pages, (a, b) -> a.source > b.source + limit_or_page_count = math.min limit or #pages, #pages + [post for post in *pages[1, limit_or_page_count]] + sitegen.create => @site_title = "WebDevCat.me" @app_name = "stasis" @@ -200,6 +207,7 @@ sitegen.create => @list2 = list2 @list3 = list3 + @some_name = "robertino farterino" @some_list = { {say: "this"} {say: "that"} @@ -210,15 +218,60 @@ sitegen.create => @two = two @three = three @four = (arg, _) => - pages = @site\query_pages { is_a: "post" } - table.sort pages, (a, b) -> a.source > b.source - limit_or_page_count = math.min arg.limit or #pages, #pages - - unpack for page in *pages[1, limit_or_page_count] - common.fill_ignoring_pre template, listing_info page + unpack for post in *get_posts @, arg.limit + common.fill_ignoring_pre template, listing_info post @map = (...) => cosmo.map ... + @do_cards = {{rank: "Ace", suit: "Spades"}, {rank: "Queen", suit: "Diamonds"}} + + @do_other = (arg, _) => + {{rank: "Ace", suit: "Spades"}, {rank: "Queen", suit: "Diamonds"}} + + @do_unpack = (arg, _) => + unpack {"three", "five", "seven"} + + @just_render_the_damn_list = (arg={}, _) => + posts = [listing_info post for post in *get_posts @, arg.limit] + + html.build -> + return for post in *posts + tag.section { + tag.h3 { tag.a { post.title, href: post.url }} + tag.time { post.publish_date } + "—" + post.blurb + tag.a { "Read post →", href: post.url } + } + + -- [tag.section { "hoh" } for post in *posts] + -- for key,value in pairs(o) do + -- print("found member " .. key); + -- end + -- p @@__name + -- p @.source + -- p reflect @ + -- p reflect @renderer + + -- unpack for post in *get_posts @, arg.limit + -- common.fill_ignoring_pre template, listing_info post + -- return for post in *get_posts @, arg.limit + -- p reflect post + -- p reflect post + -- p post\get_tpl_scope! + -- p post.meta + -- common.fill_ignoring_pre template, listing_info post + -- p reflect post + -- p html_renderer + -- p html_renderer.__base + -- p html_renderer.cosmo_helpers + -- html_renderer.render + -- p post.renderer.helpers post + -- p html_renderer.__base + -- p reflect @@__base + + -- html.build -> tag.h2 { "justrender call: $some_name (doesn't work)" } + add_all = (files) -> for path in *files add path,