<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pzwiki.wdka.nl/mw-mediadesign/index.php?action=history&amp;feed=atom&amp;title=User%3ARiviera%2FPodcasts_continued</id>
	<title>User:Riviera/Podcasts continued - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?action=history&amp;feed=atom&amp;title=User%3ARiviera%2FPodcasts_continued"/>
	<link rel="alternate" type="text/html" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;action=history"/>
	<updated>2026-08-05T07:19:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=261391&amp;oldid=prev</id>
		<title>Riviera: adjusted transclusion tags</title>
		<link rel="alternate" type="text/html" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=261391&amp;oldid=prev"/>
		<updated>2024-03-20T09:38:46Z</updated>

		<summary type="html">&lt;p&gt;adjusted transclusion tags&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:38, 20 March 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What I worked on was quite relevant to our discussion of regular expressions on Monday 9th. It could furthermore bear relevance to CSS and paged media if an HTML page was made for the channel. I envision a publication made with [https://pzwiki.wdka.nl/mediadesign/Weasyprint weasyprint], perhaps using the technique of [https://pzwiki.wdka.nl/mediadesign/Imposition imposition]. Each page might contain a link to a radio broadcast from the past, along with some text.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What I worked on was quite relevant to our discussion of regular expressions on Monday 9th. It could furthermore bear relevance to CSS and paged media if an HTML page was made for the channel. I envision a publication made with [https://pzwiki.wdka.nl/mediadesign/Weasyprint weasyprint], perhaps using the technique of [https://pzwiki.wdka.nl/mediadesign/Imposition imposition]. Each page might contain a link to a radio broadcast from the past, along with some text.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;draft-three-of-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;draft-three-of-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;= Draft three of script =&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;= Draft three of script =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;===A Podcast Generator Script===&amp;lt;/includeonly&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;===A Podcast Generator Script===&amp;lt;/includeonly&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l321&quot;&gt;Line 321:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 320:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;=Discussion of draft three=&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;=Discussion of draft three=&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Riviera</name></author>
	</entry>
	<entry>
		<id>https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=256522&amp;oldid=prev</id>
		<title>Riviera at 15:17, 22 December 2023</title>
		<link rel="alternate" type="text/html" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=256522&amp;oldid=prev"/>
		<updated>2023-12-22T15:17:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:17, 22 December 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l322&quot;&gt;Line 322:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/del&gt;noinclude&amp;gt;= Discussion of draft three =&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;=Discussion of draft three=&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;===Discussion of the script===&amp;lt;/includeonly&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;===Discussion of the script===&amp;lt;/includeonly&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Riviera</name></author>
	</entry>
	<entry>
		<id>https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=256521&amp;oldid=prev</id>
		<title>Riviera at 15:15, 22 December 2023</title>
		<link rel="alternate" type="text/html" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=256521&amp;oldid=prev"/>
		<updated>2023-12-22T15:15:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:15, 22 December 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;includeonly&gt;==Podcasts Continued==&amp;lt;/includeonly&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss The other week] I started writing a shell script to generate podcasts in an RSS format. I first [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Podcasts_are_RSS_feeds outlined the connection between podcasts and rss feeds] following a discussion we had in class. Then I wrote about how I utilised [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Fourth_Attempt grep, cat and sed]. I combined these commands in a shell script. The aim was to write a file containing the tag-structure of an XML document whilst removing content. This outline structure became the basis of the podcast generator script, [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_two_of_script skeleton]. Along the way I [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Analysis_of_draft_one analysed] and [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Improvements_to_draft_one improved] the [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_one_of_script first version of the script]. I am summarising what I did the other week here because the commentary on the code is somewhat inaccurate. I utilised a less than consistent document production workflow to write the wiki page. However, I have since decided upon a more consistent way of writing wiki pages (using &amp;lt;span class=&amp;quot;spurious-link&amp;quot; target=&amp;quot;pandoc&amp;quot;&amp;gt;''https://pandoc.org''&amp;lt;/span&amp;gt;) and so pages will be better maintained starting from now.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss The other week] I started writing a shell script to generate podcasts in an RSS format. I first [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Podcasts_are_RSS_feeds outlined the connection between podcasts and rss feeds] following a discussion we had in class. Then I wrote about how I utilised [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Fourth_Attempt grep, cat and sed]. I combined these commands in a shell script. The aim was to write a file containing the tag-structure of an XML document whilst removing content. This outline structure became the basis of the podcast generator script, [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_two_of_script skeleton]. Along the way I [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Analysis_of_draft_one analysed] and [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Improvements_to_draft_one improved] the [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_one_of_script first version of the script]. I am summarising what I did the other week here because the commentary on the code is somewhat inaccurate. I utilised a less than consistent document production workflow to write the wiki page. However, I have since decided upon a more consistent way of writing wiki pages (using &amp;lt;span class=&amp;quot;spurious-link&amp;quot; target=&amp;quot;pandoc&amp;quot;&amp;gt;''https://pandoc.org''&amp;lt;/span&amp;gt;) and so pages will be better maintained starting from now.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;draft-three-of-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;draft-three-of-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Draft three of script =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;noinclude&amp;gt;&lt;/ins&gt;= Draft three of script =&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;includeonly&amp;gt;===A Podcast Generator Script===&amp;lt;/includeonly&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;#!/usr/bin/fish&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;#!/usr/bin/fish&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l320&quot;&gt;Line 320:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 322:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Discussion of draft three =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&amp;gt;&lt;/ins&gt;= Discussion of draft three =&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;includeonly&amp;gt;===Discussion of the script===&amp;lt;/includeonly&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The script now features several additional flags. The &amp;amp;quot;verbose&amp;amp;quot; flag sends to stdout descriptive information about what the script is doing whilst it does it. This information is useful for debugging. It is also a more convenient means of documenting the software than writing about it. The &amp;amp;quot;add&amp;amp;quot; flag allows the user to add an mp3 file to a podcast. If the podcast does not exist, skelegen creates the channel. If the channel exists, skelegen adds the item to the channel. This is a flexible way of creating podcasts. Lastly, the &amp;amp;quot;auto&amp;amp;quot; flag automatically inserts a title and description for the item(s) / channel.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The script now features several additional flags. The &amp;amp;quot;verbose&amp;amp;quot; flag sends to stdout descriptive information about what the script is doing whilst it does it. This information is useful for debugging. It is also a more convenient means of documenting the software than writing about it. The &amp;amp;quot;add&amp;amp;quot; flag allows the user to add an mp3 file to a podcast. If the podcast does not exist, skelegen creates the channel. If the channel exists, skelegen adds the item to the channel. This is a flexible way of creating podcasts. Lastly, the &amp;amp;quot;auto&amp;amp;quot; flag automatically inserts a title and description for the item(s) / channel.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l329&quot;&gt;Line 329:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 332:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;cron-and-skelegen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;cron-and-skelegen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Cron and Skelegen =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;noinclude&amp;gt;&lt;/ins&gt;= Cron and Skelegen =&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/noinclude&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;includeonly&amp;gt;===Creating a podcast with random content using cron===&amp;lt;/includeonly&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;0 14  *   *   7    skelegen --auto --add (random choice (tree -if /media/worm/radio/ | grep -Eo &amp;amp;quot;(/[^/]+)+.mp3&amp;amp;quot;)) --channel /home/$USER/public_html/random-podcast.xml&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;0 14  *   *   7    skelegen --auto --add (random choice (tree -if /media/worm/radio/ | grep -Eo &amp;amp;quot;(/[^/]+)+.mp3&amp;amp;quot;)) --channel /home/$USER/public_html/random-podcast.xml&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above line of code is an example of how the shell script can be used to generate a podcast. Here I have combined the script with cron, an automatic task scheduler. The above line of code goes in a crontab file. It calls skelegen at 1400 every Sunday. The cronjob adds a random .mp3 file from Worm's radio archive to a podcast channel called 'random-podcast'. The &amp;amp;quot;auto&amp;amp;quot; flag ensures the script runs to completion. The podcast was inspired by worm's 'random-radio' which plays when nobody is broadcasting live.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The above line of code is an example of how the shell script can be used to generate a podcast. Here I have combined the script with cron, an automatic task scheduler. The above line of code goes in a crontab file. It calls skelegen at 1400 every Sunday. The cronjob adds a random .mp3 file from Worm's radio archive to a podcast channel called 'random-podcast'. The &amp;amp;quot;auto&amp;amp;quot; flag ensures the script runs to completion. The podcast was inspired by worm's 'random-radio' which plays when nobody is broadcasting live.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Riviera</name></author>
	</entry>
	<entry>
		<id>https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=249462&amp;oldid=prev</id>
		<title>Riviera: Created page with &quot;[https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss The other week] I started writing a shell script to generate podcasts in an RSS format. I first [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Podcasts_are_RSS_feeds outlined the connection between podcasts and rss feeds] following a discussion we had in class. Then I wrote about how I utilised [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Fourth_Attempt grep, cat and sed]. I combin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pzwiki.wdka.nl/mw-mediadesign/index.php?title=User:Riviera/Podcasts_continued&amp;diff=249462&amp;oldid=prev"/>
		<updated>2023-10-15T10:36:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;[https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss The other week] I started writing a shell script to generate podcasts in an RSS format. I first [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Podcasts_are_RSS_feeds outlined the connection between podcasts and rss feeds] following a discussion we had in class. Then I wrote about how I utilised [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Fourth_Attempt grep, cat and sed]. I combin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss The other week] I started writing a shell script to generate podcasts in an RSS format. I first [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Podcasts_are_RSS_feeds outlined the connection between podcasts and rss feeds] following a discussion we had in class. Then I wrote about how I utilised [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Fourth_Attempt grep, cat and sed]. I combined these commands in a shell script. The aim was to write a file containing the tag-structure of an XML document whilst removing content. This outline structure became the basis of the podcast generator script, [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_two_of_script skeleton]. Along the way I [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Analysis_of_draft_one analysed] and [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Improvements_to_draft_one improved] the [https://pzwiki.wdka.nl/mediadesign/User:Riviera/Podcast_rss#Draft_one_of_script first version of the script]. I am summarising what I did the other week here because the commentary on the code is somewhat inaccurate. I utilised a less than consistent document production workflow to write the wiki page. However, I have since decided upon a more consistent way of writing wiki pages (using &amp;lt;span class=&amp;quot;spurious-link&amp;quot; target=&amp;quot;pandoc&amp;quot;&amp;gt;''https://pandoc.org''&amp;lt;/span&amp;gt;) and so pages will be better maintained starting from now.&lt;br /&gt;
&lt;br /&gt;
What I worked on was quite relevant to our discussion of regular expressions on Monday 9th. It could furthermore bear relevance to CSS and paged media if an HTML page was made for the channel. I envision a publication made with [https://pzwiki.wdka.nl/mediadesign/Weasyprint weasyprint], perhaps using the technique of [https://pzwiki.wdka.nl/mediadesign/Imposition imposition]. Each page might contain a link to a radio broadcast from the past, along with some text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;draft-three-of-script&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Draft three of script =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;#!/usr/bin/fish&lt;br /&gt;
function skelegen -d &amp;quot;Generate an RSS channel for a podcast&amp;quot;&lt;br /&gt;
    set -l options (fish_opt -s h -l help);&lt;br /&gt;
    set options $options (fish_opt --short=v --long=verbose);&lt;br /&gt;
    set options $options (fish_opt --short=A --long=auto);&lt;br /&gt;
    set options $options (fish_opt --short=g --long=generate --required-val); &lt;br /&gt;
    set options $options (fish_opt --short=a --long=add --required-val --multiple-vals);&lt;br /&gt;
    set options $options (fish_opt --short=c --long=channel --required-val);&lt;br /&gt;
&lt;br /&gt;
    argparse $options -- $argv;&lt;br /&gt;
    or return&lt;br /&gt;
&lt;br /&gt;
    if set -ql _flag_help&lt;br /&gt;
        echo &amp;quot;skelegen [ -h ] [ -vA ] [ -g DIR | -a FILE ] -c XML_FILE&lt;br /&gt;
        -h --help                Display this text&lt;br /&gt;
        -v --verbose             Output information about processes&lt;br /&gt;
        -A --auto                Automatically insert titles and descriptions&lt;br /&gt;
        -g --generate DIR        Generate an RSS feed for DIR&lt;br /&gt;
        -a --add FILE            Add an item to a channel&lt;br /&gt;
        -c --channel XML_FILE    Create output channel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Skelegen is a command line application for generating and writing RSS feeds for podcasts. Skelegen is capable of generating an RSS feed for a directory of audio recordings. It is also possible to add audio recordings to a channel. Titles and descriptions can be added automatically.&lt;br /&gt;
&lt;br /&gt;
EXAMPLE USAGE&lt;br /&gt;
skelegen --generate ~/Music/podcast --channel ~/public_html/podcasts/mypodcast.xml&lt;br /&gt;
skelegen --add ~/Music/podcast/episode.mp3 --channel ~/public_html/podcasts/myotherpodcast.xml&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if set -ql _flag_generate and set -ql _flag_add;&lt;br /&gt;
        echo 'ERROR: skelegen cannot add and generate simultaneously';&lt;br /&gt;
        return 1;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if not set -ql _flag_channel;&lt;br /&gt;
        echo &amp;quot;ERROR: channel must be specified.&amp;quot;;&lt;br /&gt;
        return 1;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if set -ql _flag_channel;&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Touching ~/.skeleton/channellist'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        mkdir -p ~/.skeleton;&lt;br /&gt;
        touch ~/.skeleton/channellist;&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Setting local variables'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        set -g channelprefix (echo $_flag_channel | sed -E 's/\\/([^\\/]*.xml)/\\/\n\1/' | grep -Ev &amp;quot;[^/]*.xml&amp;quot;);&lt;br /&gt;
        set -g publicprefix (echo $channelprefix | sed -E 's/\\/home\\/'$USER'\\/public_html\\/([^\\/]+\\/)/https:\\/\\/hub.xpub.nl\\/chopchop\\/~'$USER'\\/\1/');&lt;br /&gt;
        set -g channelfile (echo $_flag_channel | sed -E 's/\\/([^\\/]*.xml)/\\/\n\1/' | grep -Eo &amp;quot;[^/]*.xml&amp;quot;);&lt;br /&gt;
        if grep -Eoq '[[:alnum:]]{8}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{12}/'$channelfile ~/.skeleton/channellist;&lt;br /&gt;
            set -g showid (grep -Eo '[[:alnum:]]{8}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{12}/'$channelfile ~/.skeleton/channellist | uniq -d | sed -E 's/([[:alnum:]]{8}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{12})\\/('$channelfile')/\1\n\2/' | grep -Eo &amp;quot;[[:alnum:]]{8}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{12}&amp;quot;);&lt;br /&gt;
        else;&lt;br /&gt;
            set showid (uuidgen)&lt;br /&gt;
        end&lt;br /&gt;
        set -g channel {$channelprefix}{$showid}/{$channelfile};&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo ' '&lt;br /&gt;
            echo 'Local Variables'&lt;br /&gt;
            echo '---------------'&lt;br /&gt;
            echo 'Showid:         '$showid;&lt;br /&gt;
            echo 'Channel:        '$channel;&lt;br /&gt;
            echo 'Channel file:   '$channelfile;&lt;br /&gt;
            echo 'Public prefix:  '$publicprefix;&lt;br /&gt;
            echo 'Channel prefix: '$channelprefix;&lt;br /&gt;
            echo ' '&lt;br /&gt;
            echo 'Making parent directory: ' {$channelprefix}{$showid};&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        mkdir -p {$channelprefix}{$showid};&lt;br /&gt;
&lt;br /&gt;
        if not cat $_flag_channel &amp;gt; /dev/null;&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Writing channel data'&lt;br /&gt;
            end&lt;br /&gt;
            touch $channel;&lt;br /&gt;
            echo '&amp;lt;rss version=&amp;quot;2.0&amp;quot; xmlns:atom=&amp;quot;http://www.w3.org/2005/Atom&amp;quot;&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;channel&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;ttl&amp;gt;60&amp;lt;/ttl&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;generator&amp;gt;skeleton&amp;lt;/generator&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_auto&lt;br /&gt;
                echo '&amp;lt;title&amp;gt;'My Podcast'&amp;lt;/title&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            else;&lt;br /&gt;
                if set -ql _flag_verbose&lt;br /&gt;
                    echo 'What is the title of your podcast?'&lt;br /&gt;
                end&lt;br /&gt;
                read -l channelname -P &amp;quot;Channel Title: &amp;quot;;&lt;br /&gt;
                echo '&amp;lt;title&amp;gt;'$channelname'&amp;lt;/title&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            echo '&amp;lt;link&amp;gt;https://hub.xpub.nl/chopchop/worm/&amp;lt;/link&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;atom:link href=&amp;quot;'$publicprefix$showid'&amp;quot; ref=&amp;quot;self&amp;quot; type=&amp;quot;application/rss+xml&amp;quot;/&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;language&amp;gt;en&amp;lt;/language&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_auto&lt;br /&gt;
                echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['Chanel Description']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            else;&lt;br /&gt;
                if set -ql _flag_verbose&lt;br /&gt;
                    echo 'Provide a description for your podcast'&lt;br /&gt;
                end&lt;br /&gt;
                read -l channeldesc -P &amp;quot;Channel Description: &amp;quot;;&lt;br /&gt;
                echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['$channeldesc']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Adding image to channel'&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            echo '&amp;lt;image&amp;gt;&amp;lt;url&amp;gt;'{$publicprefix}{$showid}'/image.jpg&amp;lt;/url&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;link&amp;gt;https://hub.xpub.nl/chopchop/worm/&amp;lt;/link&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;title&amp;gt;'$channelname'&amp;lt;/title&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;/image&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            # end&lt;br /&gt;
            echo '&amp;lt;/channel&amp;gt;' &amp;gt;&amp;gt; $channel;&lt;br /&gt;
            echo '&amp;lt;/rss&amp;gt;' &amp;gt;&amp;gt; $channel;        &lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Indexing channel in ~/.skeleton/channellist'&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            echo $channel &amp;gt;&amp;gt; ~/.skeleton/channellist;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        mv $channel $_flag_channel&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Generated channel '$_flag_channel&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if set -ql _flag_generate&lt;br /&gt;
        head -n 13 $_flag_channel &amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        # end&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Writing item data ...'&lt;br /&gt;
            echo ' '&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        for file in (ls $_flag_generate);&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Setting incremental counter'&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            set i (math $i + 1);&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Setting guid'&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            set -l guid (sha256sum {$_flag_generate}/{$file} | grep -Eo &amp;quot;[[:alnum:]]{64}&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Making directory: ' {$channelprefix}{$showid}/e/{$guid};&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            mkdir -p {$channelprefix}{$showid}/e/{$guid};&lt;br /&gt;
            if set -ql _flag_verbose&lt;br /&gt;
                echo 'Creating link to ' $file&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            ln -s {$_flag_generate}/{$file} {$channelprefix}{$showid}/e/{$guid}/{$file};&lt;br /&gt;
            set itemfile (printf '%s%s/e/%s/item-%i' $channelprefix $showid $guid $i);&lt;br /&gt;
            echo &amp;quot;&amp;lt;item&amp;gt;&amp;quot; &amp;gt; $itemfile;&lt;br /&gt;
&lt;br /&gt;
            if set -ql _flag_auto&lt;br /&gt;
                echo &amp;quot;&amp;lt;title&amp;gt;&amp;quot;$file&amp;quot;&amp;lt;/title&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            else;&lt;br /&gt;
                read -l title -P &amp;quot;Item $i Title: &amp;quot;;            &lt;br /&gt;
                echo &amp;quot;&amp;lt;title&amp;gt;&amp;quot;$title&amp;quot;&amp;lt;/title&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            end&lt;br /&gt;
            echo &amp;quot;&amp;lt;pubDate&amp;gt;&amp;quot;(date)&amp;quot;&amp;lt;/pubDate&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            echo '&amp;lt;enclosure url=&amp;quot;'$publicprefix$showid'/e/'$guid'/'$file'&amp;quot; length=&amp;quot;'(soxi -D {$_flag_generate}/{$file})'&amp;quot; type=&amp;quot;'(file -b --mime-type {$_flag_generate}/{$file})'&amp;quot;/&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            sed -i 's/\\/\\/[^.]*\(\\/[^\\/]*.mp3\)/\1/' $itemfile;&lt;br /&gt;
            echo '&amp;lt;guid isPermaLink=&amp;quot;false&amp;quot;&amp;gt;'$guid'&amp;lt;/guid&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            set -l link &amp;quot;https://hub.xpub.nl/chopchop/~river/podcasts/$showid/e/$guid/$file&amp;quot;;&lt;br /&gt;
            echo '&amp;lt;link&amp;gt;'$link'&amp;lt;/link&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            if set -ql _flag_auto&lt;br /&gt;
                echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['No description']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            else;&lt;br /&gt;
                read -l desc -P &amp;quot;Item $i Description: &amp;quot;;&lt;br /&gt;
                echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['$desc']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
            end&lt;br /&gt;
&lt;br /&gt;
            echo '&amp;lt;/item&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        end&lt;br /&gt;
        # concatenate items in reverse order and append to the channel file&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Writing item data ... done'&lt;br /&gt;
            echo 'Generating channel ...'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        for item in (ls -t {$channelprefix}*/e/*/item-*);&lt;br /&gt;
            cat $item &amp;gt;&amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        end&lt;br /&gt;
        # close the rss and channel tags&lt;br /&gt;
&lt;br /&gt;
        tail -n 2 $_flag_channel &amp;gt;&amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        cat {$channelprefix}tmpchannel &amp;gt; $_flag_channel&lt;br /&gt;
        rm {$channelprefix}tmpchannel&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Generating channel ... done'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    if set -ql _flag_add&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Setting local variables'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        set -g guid (sha256sum $_flag_add | grep -Eo &amp;quot;[[:alnum:]]{64}&amp;quot;);&lt;br /&gt;
        set -g channelprefix (echo $_flag_channel | sed -E 's/\\/([^\\/]*.xml)/\\/\n\1/' | grep -Ev &amp;quot;[^/]*.xml&amp;quot;);&lt;br /&gt;
        set -g addfile (readlink -f $_flag_add | grep -Eo &amp;quot;[^/]*.mp3&amp;quot;);&lt;br /&gt;
        set -g addprefix (echo $_flag_add | sed -E 's/\\/([^\\/]*.mp3)/\\/\n\1/' | grep -Ev &amp;quot;[^/]*.mp3&amp;quot;);&lt;br /&gt;
        set -g itemprefix (printf '%s%s/e/%s' $channelprefix $showid $guid );&lt;br /&gt;
        set -g itemfile (printf '%s%s/e/%s/item' $channelprefix $showid $guid);&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Indexing channel in ~/.skeleton/channellist'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        touch ~/.skeleton/channellist&lt;br /&gt;
        echo {$channelprefix}{$showid}/{$channelfile} &amp;gt;&amp;gt; ~/.skeleton/channellist&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo ' '&lt;br /&gt;
            echo 'Local Variables'&lt;br /&gt;
            echo '---------------'&lt;br /&gt;
            echo 'Guid:           '$guid;&lt;br /&gt;
            echo 'Showid:         '$showid;&lt;br /&gt;
            echo 'Channel:        '$channel;&lt;br /&gt;
            echo 'Item file:      '$itemfile;&lt;br /&gt;
            echo 'Add prefix:     '$addprefix;&lt;br /&gt;
            echo 'File to add:    '$addfile;&lt;br /&gt;
            echo 'Item prefix:    '$itemprefix;        &lt;br /&gt;
            echo 'Channel file:   '$channelfile;&lt;br /&gt;
            echo 'Public prefix:  '$publicprefix;&lt;br /&gt;
            echo 'Channel prefix: '$channelprefix;&lt;br /&gt;
            echo ' '&lt;br /&gt;
            echo 'Making directory' $itemprefix&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        mkdir -p $itemprefix&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Touching' $itemfile&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        touch $itemfile&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Writing item data'&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        echo &amp;quot;&amp;lt;item&amp;gt;&amp;quot; &amp;gt; $itemfile;&lt;br /&gt;
        if set -ql _flag_auto&lt;br /&gt;
            echo &amp;quot;&amp;lt;title&amp;gt;&amp;quot;No Title&amp;quot;&amp;lt;/title&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        else;            &lt;br /&gt;
            read -l title -P &amp;quot;Title: &amp;quot;&lt;br /&gt;
            echo &amp;quot;&amp;lt;title&amp;gt;&amp;quot;$title&amp;quot;&amp;lt;/title&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        echo &amp;quot;&amp;lt;pubDate&amp;gt;&amp;quot;(date)&amp;quot;&amp;lt;/pubDate&amp;gt;&amp;quot; &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        echo &amp;quot;Enclosing url&amp;quot;&lt;br /&gt;
        # set foo (readlink -f $addfile | soxi -D)&lt;br /&gt;
        echo '&amp;lt;enclosure url=&amp;quot;https://hub.xpub.nl/chopchop/~'$USER'/podcasts/'$showid'/e/'$guid'/'$addfile'&amp;quot; length=&amp;quot;'(soxi -D {$addprefix}{$addfile})'&amp;quot; type=&amp;quot;'(file -b --mime-type {$addprefix}{$addfile})'&amp;quot;/&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        sed -i 's/\\/\\/[^.]*\(\\/[^\\/]*\\.mp3\)/\1/' $itemfile;&lt;br /&gt;
        echo '&amp;lt;guid isPermaLink=&amp;quot;false&amp;quot;&amp;gt;'$guid'&amp;lt;/guid&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        set -l link &amp;quot;https://hub.xpub.nl/chopchop/~&amp;quot;$USER&amp;quot;/podcasts/$showid/e/$guid/$addfile&amp;quot;;&lt;br /&gt;
        echo '&amp;lt;link&amp;gt;'$link'&amp;lt;/link&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        if set -ql _flag_auto&lt;br /&gt;
            echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['No description']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        else;&lt;br /&gt;
            read -l desc -P &amp;quot;Description: &amp;quot;;&lt;br /&gt;
            echo '&amp;lt;description&amp;gt;&amp;lt;![CDATA['$desc']]&amp;gt;&amp;lt;/description&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        end&lt;br /&gt;
        echo '&amp;lt;/item&amp;gt;' &amp;gt;&amp;gt; $itemfile;&lt;br /&gt;
        touch {$channelprefix}{$channelfile};&lt;br /&gt;
&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Adding item to channel';&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        head -n 13 $_flag_channel &amp;gt;&amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        cat $itemfile &amp;gt;&amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        tail -n +14 $_flag_channel &amp;gt;&amp;gt; {$channelprefix}tmpchannel;&lt;br /&gt;
        mv {$channelprefix}tmpchannel $_flag_channel&lt;br /&gt;
        if set -ql _flag_verbose&lt;br /&gt;
            echo 'Creating link to '$addfile&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        ln -s $_flag_add {$channelprefix}{$showid}/e/{$guid}/{$addfile};&lt;br /&gt;
        # ln (readlink -f $_flag_channel)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;discussion-of-draft-three&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Discussion of draft three =&lt;br /&gt;
&lt;br /&gt;
The script now features several additional flags. The &amp;amp;quot;verbose&amp;amp;quot; flag sends to stdout descriptive information about what the script is doing whilst it does it. This information is useful for debugging. It is also a more convenient means of documenting the software than writing about it. The &amp;amp;quot;add&amp;amp;quot; flag allows the user to add an mp3 file to a podcast. If the podcast does not exist, skelegen creates the channel. If the channel exists, skelegen adds the item to the channel. This is a flexible way of creating podcasts. Lastly, the &amp;amp;quot;auto&amp;amp;quot; flag automatically inserts a title and description for the item(s) / channel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;fish&amp;quot;&amp;gt;skelegen --generate /media/worm/radio/ --channel ~/public_html/podcast.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
I turned the script into a zine using free and open source software. In particular I used Emacs, pandoc, ConTeXt and pdfcpu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;cron-and-skelegen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Cron and Skelegen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0 14  *   *   7    skelegen --auto --add (random choice (tree -if /media/worm/radio/ | grep -Eo &amp;amp;quot;(/[^/]+)+.mp3&amp;amp;quot;)) --channel /home/$USER/public_html/random-podcast.xml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The above line of code is an example of how the shell script can be used to generate a podcast. Here I have combined the script with cron, an automatic task scheduler. The above line of code goes in a crontab file. It calls skelegen at 1400 every Sunday. The cronjob adds a random .mp3 file from Worm's radio archive to a podcast channel called 'random-podcast'. The &amp;amp;quot;auto&amp;amp;quot; flag ensures the script runs to completion. The podcast was inspired by worm's 'random-radio' which plays when nobody is broadcasting live.&lt;/div&gt;</summary>
		<author><name>Riviera</name></author>
	</entry>
</feed>