just to bin scripts

main
dozens 2024-02-03 15:56:10 -07:00
parent a47a0d7e95
commit 280a077509
3 changed files with 124 additions and 104 deletions

30
bin/feed.sh 100644
View File

@ -0,0 +1,30 @@
#!/usr/bin/env sh
database="db/games.rec"
feedtmpl='<item>
<title>{{Game_System}} - {{Game_Module}}</title>
<link>http://tilde.town/~dozens/gamelog/index.html</link>
<pubDate>{{Created}}</pubDate>
<description>
<![CDATA[
{{Text}}
]]>
</description>
</item>
'
exec > dist/feed.xml
cat<<EOF
<rss version="2.0">
<channel>
<title>gamelog</title>
<link>http://tilde.town/~dozens/gamelog/index.html</link>
<description>all the games i play</description>
<atom:link rel="self" type="application/rss+xml" href="http://tilde.town/~dozens/gamelog/feed.xml"/>
EOF
recsel -t Update -j Game $database | recfmt "$feedtmpl"
echo '</channel></rss>'
sed -i '' 's/&/and/g' dist/feed.xml

92
bin/html.sh 100644
View File

@ -0,0 +1,92 @@
#!/usr/bin/env sh
database="db/games.rec"
## BEGIN: TEMPLATES ##
gameheadertmpl='<article>
<h2 id={{Id}}>{{Module}} ({{System}}) <small><a href="#{{Id}}">#</a></small></h2>
<p>{{Module}} is a game of {{System}} that I started playing on {{Started}} as a {{Role}}. It is a {{Format}} {{Length}} and is currently {{Status}}.</p>
<p>Here is how it went!</p>
'
updatetmpl='<h3 id="u{{Id}}">{{Created}} <small><a href="#u{{Id}}">#</a></small></h3>
{{Text}}
'
gamefootertmpl='<center>🎲🎲</center>
</article>'
toctmpl='<li><a href="#{{Id}}">{{Module}} ({{System}})</a></li>'
## END: TEMPLATES ##
exec > dist/index.html
## BEGIN: STYLE ##
cat<<EOF
<link rel="alternate" type="application/rss+xml" href="feed.xml" title="dozens gamelog">
<style>
body {
max-width: 80ch;
margin: 0 auto;
padding: 3rem 1rem;
}
h2 {
border-bottom: solid 1px black;
margin-top: 3rem;
}
h2, h3 {
position: relative;
}
h2 a, h3 a {
position: absolute;
left: -1.2rem;
text-decoration: none;
opacity: 0.2;
}
h2 a {
line-height: 1.4;
}
h3 a {
line-height: 1.2;
}
h2:hover a, h3:hover a {
opacity: 1;
}
</style>
EOF
## END: STYLE ##
## BEGIN: INTRO ##
cat<<EOF
<h1>Gamelogs</h1>
<p>All the roleplaying games I've played.</p>
<li>src: <a href='https://git.tilde.town/dozens/gamelog'>https://git.tilde.town/dozens/gamelog</a></li>
<li>dozens webring: <a href='https://tilde.town/%7Edozens/webring/dozens/index.html?name=gamelog&amp;dir=prev'>previous</a> <a href='https://tilde.town/%7Edozens/webring/dozens/index.html'>index</a> <a href='https://tilde.town/%7Edozens/webring/dozens/index.html?name=gamelog&amp;dir=next'>next</a></li>
<li><a href="feed.xml">rss</a></li>
EOF
## END: INTRO ##
## BEGIN: TOC ##
echo '<h2>Contents</h2>'
recsel $database -t Game | recfmt "$toctmpl"
## END: TOC ##
## BEGIN: BODY ##
allgames=(`recsel $database -t Game -P Id -C | tr '\n' ' '`)
for idx in "${allgames[@]}"
do
recsel $database -t Game -e "Id = $idx" | recfmt "$gameheadertmpl"
recsel $database -t Update -e "Game = $idx" | recfmt "$updatetmpl" | markdown
echo $gamefootertmpl
done
## END: BODY ##

106
justfile
View File

@ -34,113 +34,11 @@ cli:
# build da html
html:
#!/usr/bin/env sh
## BEGIN: TEMPLATES ##
gameheadertmpl='<article>
<h2 id={{{{Id}}>{{{{Module}} ({{{{System}}) <small><a href="#{{{{Id}}">#</a></small></h2>
<p>{{{{Module}} is a game of {{{{System}} that I started playing on {{{{Started}} as a {{{{Role}}. It is a {{{{Format}} {{{{Length}} and is currently {{{{Status}}.</p>
<p>Here is how it went!</p>
'
updatetmpl='<h3 id="u{{{{Id}}">{{{{Created}} <small><a href="#u{{{{Id}}">#</a></small></h3>
{{{{Text}}
'
gamefootertmpl='<center>🎲🎲</center>
</article>'
toctmpl='<li><a href="#{{{{Id}}">{{{{Module}} ({{{{System}})</a></li>'
## END: TEMPLATES ##
exec > dist/index.html
## BEGIN: STYLE ##
cat<<EOF
<link rel="alternate" type="application/rss+xml" href="feed.xml" title="dozens gamelog">
<style>
body {
max-width: 80ch;
margin: 0 auto;
padding: 3rem 1rem;
}
h2 {
border-bottom: solid 1px black;
margin-top: 3rem;
}
h2, h3 {
position: relative;
}
h2 a, h3 a {
position: absolute;
left: -1.2rem;
text-decoration: none;
opacity: 0.2;
}
h2 a {
line-height: 1.4;
}
h3 a {
line-height: 1.2;
}
h2:hover a, h3:hover a {
opacity: 1;
}
</style>
EOF
## END: STYLE ##
## BEGIN: INTRO ##
cat<<EOF
<h1>Gamelogs</h1>
<p>All the roleplaying games I've played.</p>
<li>src: <a href='https://git.tilde.town/dozens/gamelog'>https://git.tilde.town/dozens/gamelog</a></li>
<li>dozens webring: <a href='https://tilde.town/%7Edozens/webring/dozens/index.html?name=gamelog&amp;dir=prev'>previous</a> <a href='https://tilde.town/%7Edozens/webring/dozens/index.html'>index</a> <a href='https://tilde.town/%7Edozens/webring/dozens/index.html?name=gamelog&amp;dir=next'>next</a></li>
<li><a href="feed.xml">rss</a></li>
EOF
## END: INTRO ##
## BEGIN: TOC ##
echo '<h2>Contents</h2>'
recsel {{database}} -t Game | recfmt "$toctmpl"
## END: TOC ##
## BEGIN: BODY ##
allgames=(`recsel {{database}} -t Game -P Id -C | tr '\n' ' '`)
for idx in "${allgames[@]}"
do
recsel {{database}} -t Game -e "Id = $idx" | recfmt "$gameheadertmpl"
recsel {{database}} -t Update -e "Game = $idx" | recfmt "$updatetmpl" | markdown
echo $gamefootertmpl
done
## END: BODY ##
sh bin/html.sh
# rss feed
feed:
#!/usr/bin/env sh
feedtmpl='<item>
<title>{{{{Game_System}} - {{{{Game_Module}}</title>
<link>http://tilde.town/~dozens/gamelog/index.html</link>
<pubDate>{{{{Created}}</pubDate>
<description>
<![CDATA[
{{{{Text}}
]]>
</description>
</item>
'
exec > dist/feed.xml
cat<<EOF
<rss version="2.0">
<channel>
<title>gamelog</title>
<link>http://tilde.town/~dozens/gamelog/index.html</link>
<description>all the games i play</description>
<atom:link rel="self" type="application/rss+xml" href="http://tilde.town/~dozens/gamelog/feed.xml"/>
EOF
recsel -t Update -j Game {{database}} | recfmt "$feedtmpl"
echo '</channel></rss>'
sed -i '' 's/&/and/g' dist/feed.xml
sh bin/feed.sh
# copy to blog
export: