feat: add source_url config option for footer source link

Thread source_url through: config.ServerConfig → Handler.sourceURL
→ PageData.SourceURL → template footer. Footer only shows Source
link when source_url is set.
This commit is contained in:
Franz Kafka 2026-03-22 08:34:20 +00:00
parent bb0b97820b
commit 805e7ffdc2
6 changed files with 18 additions and 9 deletions

View file

@ -35,7 +35,7 @@
</main>
<footer>
<p>Powered by <a href="https://git.ashisgreat.xyz/penal-colony/kafka">kafka</a> — a privacy-respecting, open metasearch engine · <a href="https://git.ashisgreat.xyz/penal-colony/kafka">Source</a> · <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a></p>
<p>Powered by <a href="https://git.ashisgreat.xyz/penal-colony/kafka">kafka</a> — a privacy-respecting, open metasearch engine{{if .SourceURL}} · <a href="{{.SourceURL}}">Source</a>{{end}} · <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPLv3</a></p>
</footer>
<script src="/static/js/settings.js"></script>

View file

@ -35,6 +35,7 @@ var staticFS embed.FS
// PageData holds all data passed to templates.
type PageData struct {
SourceURL string
Query string
Pageno int
PrevPage int
@ -187,9 +188,9 @@ func FromResponse(resp contracts.SearchResponse, query string, pageno int) PageD
}
// RenderIndex renders the homepage (search box only).
func RenderIndex(w http.ResponseWriter) error {
func RenderIndex(w http.ResponseWriter, sourceURL string) error {
w.Header().Set("Content-Type", "text/html; charset=utf-8")
return tmplIndex.ExecuteTemplate(w, "base", PageData{ShowHeader: true})
return tmplIndex.ExecuteTemplate(w, "base", PageData{ShowHeader: true, SourceURL: sourceURL})
}
// RenderSearch renders the full search results page (with base layout).