skunk: require #
Lobby[
Theme: is-obj[
theme: fn[ >[ $ set/[ bg fg a av ] ] swap &push ]
aqua: theme[ "#061911" "#21ef9f" "aqua" "#32e6e6" ]
forest: theme[ "#191e2a" "#daffac" "#32e667" "#32e667" ]
qbasic: theme[ "#0000aa" "#e8e8e8" "#aaaaaa" "#aaaaaa" ]
stark: theme[ "black" "white" "white" "grey" ]
aqua
]
css: fn[
{: fn-[ let[ css-q ]
" {" /nl
css-q. Array .of .pairs each[ let[ k v ]
%s[ @(k): @(v); ] /nl
] "}" /nl
]
Array .of .[ "" join ]
]
]
page: Skunk .layout[
footer: fn-[
---
%writeln[ ] ]
%writeln[
@(?title)@(content)
@(?footer)
]
]
skunkPage: alsoCan[
setup/: fn[
each[ let[ todo ] case[ todo footnotes: eq?[ Array .of[ ] >footnotes ] ] ]
]
style.css.stk: File .slurp let[ cssTemplate ]
%s[ [ @cssTemplate ] ] StackTalk .eval >styleOfTheme
Theme .aqua css[ styleOfTheme ] >style
themeIs: fn[ Theme[ &run ] css[ styleOfTheme ] :style ]
%#[ ?backlink: fn[ backlink: %if-prop?[ ] else?[ ] ] ]
?title: fn[ title: %if-prop?[ ] ]
webring: fn[
%writeln[
]
]
Array .of[ ] >footnotes
initFootnotes: fn[ Array .of[ ] >footnotes ]
showFootnotes: fn[ 1 let[ idx ]
footnotes each[ let[ thisNote ] %s[ [@(idx)] ] let[ bidx ]
%s[ ] write
idx: inc
]
]
note: fn[ footnotes .[ push size ] let[ i ]
>[ $i let[ i ] %s[ @(i) ] write ]
swap &push ]
hr: fn[ "
" write ]
]
project[
css-test: cmd[ Theme .aqua css[ style.css.stk: StackTalk .doFile ] println ]
build: cmd[
Skunk[ true :copySources site: target content: scan ]
File[ content/index.pstk: site/index.pstk: cp
skript: site/skript.txt: cp
style.css.stk: site/style.css.stk: cp ]
]
publish: cmd[
sh[ rsync: -a: --delete: site/: yumaikas@junglecoder.com:/var/www/junglecoder.com/: ]
]
]