Three new image search engines: - bing_images: Bing Images via RSS endpoint - ddg_images: DuckDuckGo Images via VQD API - qwant_images: Qwant Images via v3 search API Frontend: - Image grid layout with responsive columns - image_item template with thumbnail, title, and source metadata - Hover animations and lazy loading - Grid activates automatically when category=images Backend: - category=images routes to image engines via planner - Image engines registered in factory and engine allowlist - extractImgSrc helper for parsing thumbnail URLs from HTML - IsImageSearch flag on PageData for template layout switching
15 lines
531 B
HTML
15 lines
531 B
HTML
{{define "image_item"}}
|
|
<a class="image-result" href="{{.URL}}" target="_blank" rel="noopener noreferrer">
|
|
<div class="image-thumb">
|
|
{{if .Thumbnail}}
|
|
<img src="{{.Thumbnail}}" alt="{{.Title}}" loading="lazy" onerror="this.parentElement.classList.add('image-error')">
|
|
{{else}}
|
|
<div class="image-placeholder">🖼️</div>
|
|
{{end}}
|
|
</div>
|
|
<div class="image-meta">
|
|
<span class="image-title">{{.Title}}</span>
|
|
{{if .Content}}<span class="image-source">{{.Content}}</span>{{end}}
|
|
</div>
|
|
</a>
|
|
{{end}}
|