<feed xmlns='http://www.w3.org/2005/Atom'>
<title>toaster/src, branch main</title>
<subtitle>Generate websites from markdown files
</subtitle>
<id>https://code.benbridle.com/toaster/atom?h=main</id>
<link rel='self' href='https://code.benbridle.com/toaster/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/'/>
<updated>2026-03-04T00:15:16Z</updated>
<entry>
<title>Break list lines on ': ' instead of just ':'</title>
<updated>2026-03-04T00:15:16Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2026-03-04T00:15:10Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=777d31d1001645870437cc37c8463e164caba71e'/>
<id>urn:sha1:777d31d1001645870437cc37c8463e164caba71e</id>
<content type='text'>
This prevents strings like '7:00am' from breaking a list line, the colon
must be followed by a space.
</content>
</entry>
<entry>
<title>Omit outer heading link if heading title contains a link</title>
<updated>2026-03-02T02:22:19Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2026-03-02T02:22:19Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=3ba351ac3142d09e752fcc723ffbc44ec8ef0015'/>
<id>urn:sha1:3ba351ac3142d09e752fcc723ffbc44ec8ef0015</id>
<content type='text'>
&lt;a&gt; tags can't be nested in HTML, so we omit the outer link on the
heading (that links to itself) if the title itself contains a link. This
avoids generating a nested &lt;a&gt; tag.
</content>
</entry>
<entry>
<title>Sanitize heading names in table of contents</title>
<updated>2026-03-02T02:19:02Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2026-03-02T02:17:32Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=e88199551b5d2beba0fbaa054d0f2209b66627c6'/>
<id>urn:sha1:e88199551b5d2beba0fbaa054d0f2209b66627c6</id>
<content type='text'>
Heading names in the table of contents are now sanitised and fancified,
so that quotes and em-dashes and the likes are shown properly.
</content>
</entry>
<entry>
<title>Remove dead code</title>
<updated>2026-03-02T02:08:42Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2026-03-02T02:08:42Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=35b89decebe3b55ae636bff09d922af08d2164cb'/>
<id>urn:sha1:35b89decebe3b55ae636bff09d922af08d2164cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Collapse consecutive hyphens in slugs</title>
<updated>2026-03-02T01:38:07Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2026-03-02T01:38:07Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=a490ead653cac5f3d1ecc25899b89431c4be3483'/>
<id>urn:sha1:a490ead653cac5f3d1ecc25899b89431c4be3483</id>
<content type='text'>
Previously, a heading or page called something like 'Name - subtitle'
would become the slug 'name---subtitle' because the hyphen is stuck
between spaces which also become hyphens. This looks silly. The new
function will generate the slug 'name-subtitle' instead.
</content>
</entry>
<entry>
<title>Fix variable name</title>
<updated>2026-03-02T01:35:49Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2026-03-02T01:35:49Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=12b28c938bd28ca643cd7da32c8b054847f3b79e'/>
<id>urn:sha1:12b28c938bd28ca643cd7da32c8b054847f3b79e</id>
<content type='text'>
Variable containing the name of the current page was incorrectly called
site_name.
</content>
</entry>
<entry>
<title>Use website name as name of the root index page</title>
<updated>2026-02-24T04:28:05Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2026-02-24T04:28:05Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=13720b80dea74d7a18cd491469e33150964ae0cf'/>
<id>urn:sha1:13720b80dea74d7a18cd491469e33150964ae0cf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix special yes/no/-- syntax for tables</title>
<updated>2026-02-24T02:58:41Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2026-02-24T02:58:16Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=bd8247d3fba55311b0ac8bb2458e78ec05d832d2'/>
<id>urn:sha1:bd8247d3fba55311b0ac8bb2458e78ec05d832d2</id>
<content type='text'>
These values weren't being matched correctly because whitespace wasn't
trimmed beforehand.
</content>
</entry>
<entry>
<title>Support linking to generated feeds</title>
<updated>2026-02-21T21:15:33Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2026-02-21T21:04:07Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=f7d67da481c8523a2cb09df057b5d17de459cd37'/>
<id>urn:sha1:f7d67da481c8523a2cb09df057b5d17de459cd37</id>
<content type='text'>
The has_static routine that checks whether links to static files are
valid now correctly considers generated feeds as static files.
</content>
</entry>
<entry>
<title>Big rewrite</title>
<updated>2026-02-21T21:15:33Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2026-02-21T21:15:06Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/toaster/commit/?id=700c0ddd79fc6ca01d52250b69b02c1a13d4ddef'/>
<id>urn:sha1:700c0ddd79fc6ca01d52250b69b02c1a13d4ddef</id>
<content type='text'>
A quick list of everything that's changed:
- links to a duplicate heading beneath the same level 1 heading now work
- rss feed generation using a .feed file
- customisation of the html template using the html.template key
- option to use symlinks instead of copying static files
- fixed incorrect resolution of internal links
- simplified different name forms with the Name type
- allow linking to a redirect
</content>
</entry>
</feed>
