🛠 ed heredocs

hey guess what i figured out some unix 101 stuff about how to redirect
input and output, and used HEREDOC with ed to inline my edits and
transformations to index.md to create the rss feeds for episodes and
journal entries!
main
Dozens B. McCuzzins 2022-09-23 16:08:05 -04:00
parent 53825991ba
commit bed8dcd8c5
4 changed files with 38 additions and 46 deletions

View File

@ -1,13 +0,0 @@
.
g/BEGIN/ka
g/END/kb
1,'ad
'b,$d
%s/^- //
%s,<time>\(.*\)</time>,time: \1|,
%s, - \[\(.*\)\],title: \1|,
%s,(\(.*\))$,source: \1|link: \1|,
%s/html/md/
%s/|/\
/g
1,$w /dev/stdout

View File

@ -1,13 +0,0 @@
.
g/BEGIN/ka
g/END/kb
1,'ad
'b,$d
g/^##/+s/^/note: /
v/^note/s/^/+ /
%s/+ ##/##/
%s_^## <time>\(.*\)</time> - \(.*\)_\
time: \1\
title: \2_
1,$w /dev/stdout
q

View File

@ -21,27 +21,47 @@ up: html rss
# make episodes rss
episoderss:
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/episodes.xml \
&& echo "<link>http://tilde.town/~dozens/clericthief/index.html</link><description>adventures of iofi and maddox</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://tilde.town/~dozens/clericthief/episodes.xml\"/>" >> www/episodes.xml \
&& echo i \
| cat - src/index.md ed/blogitem.ed \
| ed -s \
| recfmt -f templates/blogitem.rec.template \
| m4 \
>> www/episodes.xml \
&& echo '</channel></rss>' >> www/episodes.xml
#!/usr/bin/env zsh
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/episodes.xml
echo "<link>http://tilde.town/~dozens/clericthief/index.html</link><description>adventures of iofi and maddox</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://tilde.town/~dozens/clericthief/episodes.xml\"/>" >> www/episodes.xml
ed -s << HEREDOC src/index.md | recfmt -f templates/blogitem.rec.template | m4 >> www/episodes.xml
/BEGIN/ka
/END/kb
1,'ad
'b,d
%s/^- //
%s,<time>\(.*\)</time>,time: \1|,
%s, - \[\(.*\)\],title: \1|,
%s,(\(.*\))$,source: \1|link: \1|,
%s/html/md/
%s/|/\\
/g
,w /dev/stdout
Q
HEREDOC
echo '</channel></rss>' >> www/episodes.xml
# make journal rss
journalrss:
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/journal.xml \
&& echo "<link>http://tilde.town/~dozens/clericthief/index.html</link><description>behind the scenes of cleric + thief</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://tilde.town/~dozens/clericthief/journal.xml\"/>" >> www/journal.xml \
&& echo i \
| cat - src/journal.md ed/journalitem.ed \
| ed -s \
| recfmt -f templates/journalitem.rec.template \
| m4 \
>> www/journal.xml \
&& echo '</channel></rss>' >> www/journal.xml
#!/usr/bin/env zsh
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/journal.xml
echo "<link>http://tilde.town/~dozens/clericthief/index.html</link><description>behind the scenes of cleric + thief</description><atom:link rel=\"self\" type=\"application/rss+xml\" href=\"http://tilde.town/~dozens/clericthief/journal.xml\"/>" >> www/journal.xml
ed -s !'markdown src/journal.md' << HEREDOC | recfmt -f templates/journalitem.rec.template | m4 >> www/journal.xml
/BEGIN/ka
/END/kb
1,'ad
'b,d
g/^<h2>/+s/^/note: /
v/^note/s/^/+ /
%s/+ <h2>/<h2>/
%s_^<h2><time>\(.*\)</time> - \(.*\)</h2>_\\
time: \1\\
title: \2_
g/^+ $/d
,w /dev/stdout
Q
HEREDOC
echo '</channel></rss>' >> www/journal.xml
# build all rss
rss: episoderss journalrss

View File

@ -5,11 +5,9 @@
<pubDate>syscmd(`gdate -d {{time}}')</pubDate>
<description>
<![CDATA[
<pre>
changequote(<!,!>)dnl Or else `code blocks` confuse m4
{{note}}
changequote`'dnl change quotes `back to default'
</pre>
]]>
</description>
</item>