<feed xmlns='http://www.w3.org/2005/Atom'>
<title>albumen.git/views/search.erb, branch main</title>
<subtitle>Ruby/Sinatra photo album</subtitle>
<link rel='alternate' type='text/html' href='https://git.jots.org/albumen.git/'/>
<entry>
<title>Add photo search with Boolean operators</title>
<updated>2026-06-08T19:11:51+00:00</updated>
<author>
<name>Ken D'Ambrosio</name>
<email>ken@jots.org</email>
</author>
<published>2026-06-08T19:11:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.jots.org/albumen.git/commit/?id=00f63c03b7c5de68aea6a2305886bc1953a722b6'/>
<id>00f63c03b7c5de68aea6a2305886bc1953a722b6</id>
<content type='text'>
- Server-side search index built from all album.json files + people.json,
  cached in memory for 5 minutes.  Each photo document includes filename,
  album path words, title, caption, camera, date parts (year/month-name/
  full date), and person names.
- Recursive-descent Boolean parser: AND (explicit or implicit between
  consecutive terms), OR, NOT, with standard precedence.
- GET /search?q=... returns a photo grid (max 300 results) linking each
  photo back to its album lightbox.
- Search box added to the site header; hidden on mobile.
- Results show filename, date, person names, and album path per photo.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Server-side search index built from all album.json files + people.json,
  cached in memory for 5 minutes.  Each photo document includes filename,
  album path words, title, caption, camera, date parts (year/month-name/
  full date), and person names.
- Recursive-descent Boolean parser: AND (explicit or implicit between
  consecutive terms), OR, NOT, with standard precedence.
- GET /search?q=... returns a photo grid (max 300 results) linking each
  photo back to its album lightbox.
- Search box added to the site header; hidden on mobile.
- Results show filename, date, person names, and album path per photo.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
