<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/app/views/rss, branch erdgeist-modernize-auth</title>
<subtitle>[no description]</subtitle>
<id>https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-modernize-auth</id>
<link rel='self' href='https://erdgeist.org/gitweb/cccms/atom?h=erdgeist-modernize-auth'/>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/'/>
<updated>2026-07-09T13:29:40Z</updated>
<entry>
<title>Fix malformed-HTML fallout across RSS, link rewriting, and flash messaging</title>
<updated>2026-07-09T13:29:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-09T13:29:40Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=9c3217df50d462d6be4399e3e654d591bf704df7'/>
<id>urn:sha1:9c3217df50d462d6be4399e3e654d591bf704df7</id>
<content type='text'>
Editors' TinyMCE output can contain unclosed void elements like &lt;br&gt;,
which is valid HTML5 but invalid XML -- three different places assumed
the stricter rule and broke or silently misbehaved on the looser one.
The Atom feed's &lt;content type="xhtml"&gt; block required real, well-formed
XML structure but was handed a raw, unescaped body string; switched to
type="html" with CGI.escapeHTML, matching how title/summary already
handle the same content. rewrite_links_in_body used libxml's strict XML
parser to rewrite internal links to be locale-prefixed, which raised on
exactly this class of malformed markup -- silently, since the whole
method was wrapped in rescue; nil, meaning the link rewrite (not the
save) quietly failed with no error anywhere. Replaced with Nokogiri's
lenient HTML parser, which repairs malformed void elements rather than
rejecting them; also drops the bare rescue now that the actual failure
mode it was guarding against shouldn't occur, and fixes two adjacent
bugs found while in this method: a typo'd /sytem/uploads/ regex that
could never match, and a missing https:// exclusion alongside the
existing http:// one.

Also addresses stale flash messaging surfaced while testing the above:
update's save confirmation was being clobbered by edit's own "locked
and ready" notice on the very next request, since nothing distinguished
a fresh lock acquisition from a redirect back after saving. The save
confirmation now names the next step (publish from Status) and flags a
stale translation if one exists, using Page#outdated_translations?,
already present but previously unused by any controller.
</content>
</entry>
<entry>
<title>Remove recent_changes RSS feed.  It leaks unpublished drafts and the basic auth was only symbolic</title>
<updated>2026-06-30T17:21:09Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-29T19:32:32Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=3bb2271850bab577f35291a174b1985aea2b2b55'/>
<id>urn:sha1:3bb2271850bab577f35291a174b1985aea2b2b55</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rss: add per-tag Atom feed at /rss/tags/:tag/updates.xml</title>
<updated>2026-06-27T21:19:22Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-27T21:19:22Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=b94de9fe8c30210469953bbd9880e9cbcc7a3ef5'/>
<id>urn:sha1:b94de9fe8c30210469953bbd9880e9cbcc7a3ef5</id>
<content type='text'>
- rss#tag_updates action: filters Page.heads by tag name, default
  locale, 20 items, same caching as updates feed
- tag_updates.xml.builder: Atom feed with CGI.escapeHTML on title
  and summary, consistent with updates.xml.builder
- tags/show.html.erb: add subscription link above article list
- routes: two routes per existing pattern (format-less + .:format
  constrained to /xml/)
</content>
</entry>
<entry>
<title>rss: fix self link to include .xml suffix</title>
<updated>2026-06-27T20:49:21Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-27T20:49:21Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=1853082fcd8c067390c246f9daa01a9b47387497'/>
<id>urn:sha1:1853082fcd8c067390c246f9daa01a9b47387497</id>
<content type='text'>
/rss/updates without format suffix returns HTTP 406 when the client
does not send an appropriate Accept header. The self link in the Atom
feed was pointing to the format-less URL, causing feed readers that
follow the self link to hit the 406. Fixed to /rss/updates.xml.
</content>
</entry>
<entry>
<title>Stop forcing escaped HTML into the database just because XML Builder was used wrong</title>
<updated>2026-06-27T18:29:25Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-27T18:29:25Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=e86897c7c3ce7dea169be7f2c027aae3a7a4edab'/>
<id>urn:sha1:e86897c7c3ce7dea169be7f2c027aae3a7a4edab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Big overhaul patch and style changes</title>
<updated>2025-01-28T21:47:15Z</updated>
<author>
<name>Charlie Root</name>
<email>root@web.ccc.local</email>
</author>
<published>2025-01-28T21:47:15Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=c4296b59a7f9d667d295f9c37b71f7849b818fb3'/>
<id>urn:sha1:c4296b59a7f9d667d295f9c37b71f7849b818fb3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hmm this should've been there all along.</title>
<updated>2010-01-31T19:07:36Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2010-01-31T19:07:36Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=68d77e6afef4cbadb798229ecbb7e7392dcf44e4'/>
<id>urn:sha1:68d77e6afef4cbadb798229ecbb7e7392dcf44e4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rdf needs the path to be the url</title>
<updated>2009-11-18T13:24:10Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-11-18T13:24:10Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=2cb32d1360c882746ba413025b98a87d77b4598c'/>
<id>urn:sha1:2cb32d1360c882746ba413025b98a87d77b4598c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added template for old RDF feed - needs to be validated though</title>
<updated>2009-11-18T11:54:25Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-11-18T11:54:25Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=48699e822a9dd5141265d8ff31a8a7966a460c12'/>
<id>urn:sha1:48699e822a9dd5141265d8ff31a8a7966a460c12</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Resolved issue of changing rss feed ids when changing the slugs of nodes</title>
<updated>2009-11-14T12:51:27Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-11-14T12:51:27Z</published>
<link rel='alternate' type='text/html' href='https://erdgeist.org/gitweb/cccms/commit/?id=713f8f76e2ae1635bb938de6d8c74587d842790f'/>
<id>urn:sha1:713f8f76e2ae1635bb938de6d8c74587d842790f</id>
<content type='text'>
Closes #35</content>
</entry>
</feed>
