search for standard sites pub-search.waow.tech
search zig blog atproto
11
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix og tags for tag filter, simplify tagline

- og tags now include tag param when present
- clearTag refreshes results if query exists
- simplify tagline to "search for leaflet"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

zzstoatzz 9b6de7a0 37f519fe

+23 -12
+15 -4
site/functions/[[path]].js
··· 1 + // dynamic OG tags for link previews 1 2 export async function onRequest(context) { 2 3 const url = new URL(context.request.url); 3 4 const query = url.searchParams.get('q'); 5 + const tag = url.searchParams.get('tag'); 4 6 5 - // if no query param, just serve the static file 6 - if (!query) { 7 + // if no query or tag param, just serve the static file 8 + if (!query && !tag) { 7 9 return context.next(); 8 10 } 9 11 ··· 12 14 let html = await response.text(); 13 15 14 16 // build OG meta tags 15 - const title = `"${query}" - leaflet search`; 16 - const description = `search results for "${query}" on leaflet`; 17 + let title, description; 18 + if (query && tag) { 19 + title = `"${query}" in #${tag} - leaflet search`; 20 + description = `search results for "${query}" tagged #${tag}`; 21 + } else if (query) { 22 + title = `"${query}" - leaflet search`; 23 + description = `search results for "${query}" on leaflet`; 24 + } else { 25 + title = `#${tag} - leaflet search`; 26 + description = `leaflet documents tagged #${tag}`; 27 + } 17 28 const ogUrl = url.toString(); 18 29 19 30 // remove existing OG tags
+8 -8
site/index.html
··· 4 4 <meta charset="UTF-8"> 5 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 6 <title>leaflet search</title> 7 - <meta name="description" content="full-text search for leaflet documents on atproto"> 7 + <meta name="description" content="search for leaflet"> 8 8 <meta property="og:title" content="leaflet search"> 9 - <meta property="og:description" content="full-text search for leaflet documents on atproto"> 9 + <meta property="og:description" content="search for leaflet"> 10 10 <meta property="og:type" content="website"> 11 11 <meta name="twitter:card" content="summary"> 12 12 <meta name="twitter:title" content="leaflet search"> 13 - <meta name="twitter:description" content="full-text search for leaflet documents on atproto"> 13 + <meta name="twitter:description" content="search for leaflet"> 14 14 <style> 15 15 * { box-sizing: border-box; margin: 0; padding: 0; } 16 16 ··· 241 241 242 242 <div id="results" class="results"> 243 243 <div class="empty-state"> 244 - <p>full-text search for leaflet documents</p> 245 - <p>searches titles and content</p> 244 + <p>search for leaflet</p> 246 245 </div> 247 246 </div> 248 247 ··· 377 376 renderActiveFilter(); 378 377 renderTags(); 379 378 updateUrl(); 380 - if (!queryInput.value.trim()) { 379 + if (queryInput.value.trim()) { 380 + search(queryInput.value, null); 381 + } else { 381 382 resultsDiv.innerHTML = ` 382 383 <div class="empty-state"> 383 - <p>full-text search for leaflet documents</p> 384 - <p>searches titles and content</p> 384 + <p>search for leaflet</p> 385 385 </div> 386 386 `; 387 387 }