<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/config/locales, branch master</title>
<subtitle>[no description]</subtitle>
<id>http://erdgeist.org/gitweb/cccms/atom?h=master</id>
<link rel='self' href='http://erdgeist.org/gitweb/cccms/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/'/>
<updated>2026-08-20T15:37:01Z</updated>
<entry>
<title>Surface redirects in nodes#show, the action log and when publishing</title>
<updated>2026-08-20T15:37:01Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T15:37:01Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a1794d3087e6cbd228f3641e7313815d8c59695f'/>
<id>urn:sha1:a1794d3087e6cbd228f3641e7313815d8c59695f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add redirect ui in in nodes#edit and apply some minor cleanup</title>
<updated>2026-08-20T10:50:30Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T10:50:30Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=a8cf725312d245d8d1f1df0fff22718975ce249e'/>
<id>urn:sha1:a8cf725312d245d8d1f1df0fff22718975ce249e</id>
<content type='text'>
Also give search inputs a magnifier and a clear control: input_group
wraps a field with an icon and, where clearing is meaningful, a
button that empties it and any hidden companion named by data-clears.

Clean up some inconistency between field hints presented as p and as
span.

Remove stray console.log.
</content>
</entry>
<entry>
<title>Redirect a page to a node or an external URL</title>
<updated>2026-08-19T14:05:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-19T14:05:40Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=4df88b601b1900c287051d827eaff46f498f60d0'/>
<id>urn:sha1:4df88b601b1900c287051d827eaff46f498f60d0</id>
<content type='text'>
Page#redirect_target resolves the precedence and returns nil for a
destination that is restricted or has no head, so a page with a broken
target renders itself rather than linking nowhere. The banner partial will
call the same method, so the redirect and the link cannot drift.

One hop, no exceptions, checked in publish_draft! rather than as a
validation: two nodes publishing concurrently could each pass a save-time
check and still produce a chain. "Live" means heads only, a draft redirect
that has not published is not yet a link anyone can follow.

Node.search excludes redirecting pages. editor_search does not: an editor
looking for one searches by title, and only the body is worth hiding.
</content>
</entry>
<entry>
<title>Import Markdown into the editor</title>
<updated>2026-08-16T20:56:09Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-16T20:56:09Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=bbd10eec6b8b46a7173d3be4dd7e05de212f8038'/>
<id>urn:sha1:bbd10eec6b8b46a7173d3be4dd7e05de212f8038</id>
<content type='text'>
Use a vendored marked to import Markdown documents into tinymce.
</content>
</entry>
<entry>
<title>Style totp input fields so that they work better on mobile</title>
<updated>2026-08-15T14:28:21Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-15T14:28:21Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=445362ed2f8591d54a3c34cb3c5a69049aefa8c6'/>
<id>urn:sha1:445362ed2f8591d54a3c34cb3c5a69049aefa8c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restore from and redesign the trash list</title>
<updated>2026-08-14T22:34:14Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-14T22:34:14Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=d15dc3f1d2c9421c44d2c82c08b44d84459fcaaf'/>
<id>urn:sha1:d15dc3f1d2c9421c44d2c82c08b44d84459fcaaf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Retire conventions overview page</title>
<updated>2026-08-14T18:14:46Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-14T18:14:46Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=fe89095ccb34bcdc9838a71bc1fa48279ea3ec8c'/>
<id>urn:sha1:fe89095ccb34bcdc9838a71bc1fa48279ea3ec8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fold revision metadata into a two-line row</title>
<updated>2026-08-14T15:02:30Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-14T15:02:30Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=f93969e772a36b54998496092b54972825a07dd8'/>
<id>urn:sha1:f93969e772a36b54998496092b54972825a07dd8</id>
<content type='text'>
Title on the first line, date, revision and editor on the second, with the
two actions as an icon grid. Four columns become two, so the table needs no
mobile card treatment.
</content>
</entry>
<entry>
<title>Select revisions to compare by picking rows</title>
<updated>2026-08-14T13:55:13Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-14T13:55:13Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=dcdc892d940adffced3d2bc272d813a47c7d4700'/>
<id>urn:sha1:dcdc892d940adffced3d2bc272d813a47c7d4700</id>
<content type='text'>
Two hidden fields hold the pair, picking a row pushes it as the target and
the previous target becomes the source, so any pair takes two picks. Source
and target carry the diff view's own colours, in the rows and in the sticky
bar's readout.

Rows are focusable and respond to Enter and Space, the readout is the
accessible equivalent of the colour, so it is aria-live.
</content>
</entry>
<entry>
<title>Report every editorial attribute in the revision diff</title>
<updated>2026-08-09T13:45:56Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-09T13:45:56Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=9d32458491d79f8e06a706375030c78282f4427b'/>
<id>urn:sha1:9d32458491d79f8e06a706375030c78282f4427b</id>
<content type='text'>
diff_against gained external_url, published_at and user. The view renders
each metadata section only when that attribute changed, and says so once
when none did.

Metadata now precedes the locale pointer, which speaks only of translations:
above the metadata it read as "nothing changed" on a revision that had moved
the page.
</content>
</entry>
</feed>
