🛠 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!
このコミットが含まれているのは:
Dozens B. McCuzzins 2022-09-23 16:08:05 -04:00
コミット bed8dcd8c5
4個のファイルの変更38行の追加46行の削除

ファイルの表示

@ -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

ファイルの表示

@ -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

ファイルの表示

@ -21,27 +21,47 @@ up: html rss
# make episodes rss # make episodes rss
episoderss: episoderss:
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/episodes.xml \ #!/usr/bin/env zsh
&& 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 "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/episodes.xml
&& echo i \ 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
| cat - src/index.md ed/blogitem.ed \ ed -s << HEREDOC src/index.md | recfmt -f templates/blogitem.rec.template | m4 >> www/episodes.xml
| ed -s \ /BEGIN/ka
| recfmt -f templates/blogitem.rec.template \ /END/kb
| m4 \ 1,'ad
>> www/episodes.xml \ 'b,d
&& echo '</channel></rss>' >> www/episodes.xml %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 # make journal rss
journalrss: journalrss:
echo "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/journal.xml \ #!/usr/bin/env zsh
&& 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 "<rss version=\"2.0\"><channel><title>cleric + thief</title>" > www/journal.xml
&& echo i \ 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
| cat - src/journal.md ed/journalitem.ed \ ed -s !'markdown src/journal.md' << HEREDOC | recfmt -f templates/journalitem.rec.template | m4 >> www/journal.xml
| ed -s \ /BEGIN/ka
| recfmt -f templates/journalitem.rec.template \ /END/kb
| m4 \ 1,'ad
>> www/journal.xml \ 'b,d
&& echo '</channel></rss>' >> www/journal.xml 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 # build all rss
rss: episoderss journalrss rss: episoderss journalrss

ファイルの表示

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