{{- /* // GoToSocial // Copyright (C) GoToSocial Authors admin@gotosocial.org // SPDX-License-Identifier: AGPL-3.0-or-later // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. */ -}} {{- /* NESTED TEMPLATE DECLARATIONS If some if/else macro is used multiple times, declare it once here instead. When invoking these nested templates, remember to pass in the values passed to the executing template, ie., use '{{ template "example" . }}' not '{{ template "example" }}', otherwise you'll end up with empty variables. */ -}} {{ define "thumbnailType" }}{{ if .instance.ThumbnailType }}{{ .instance.ThumbnailType }}{{ else }}image/png{{ end }}{{ end }} {{ define "instanceTitle" }}{{ if .ogMeta }}{{ .ogMeta.Title }}{{ else }}{{ .instance.Title }} - GoToSocial{{ end }}{{ end }} {{- /* BOILERPLATE GOES HERE */ -}} <!DOCTYPE html> <!-- header.tmpl --> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> {{- /* ROBOTS META TAGS If this template was provided with a specific robots meta policy, use that. Otherwise, fall back to a default restrictive policy. See: https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag */ -}} <meta name="robots" content="{{ if .robotsMeta }}{{ .robotsMeta }}{{ else }}noindex, nofollow{{ end }}"> {{- /* OPEN GRAPH META TAGS To enable fancy previews of links to GtS posts/profiles shared via instant messaging, or other social media, parse out provided Open Graph meta tags. */ -}} {{ if .ogMeta -}} {{ if .ogMeta.Locale }}<meta name="og:locale" content="{{ .ogMeta.Locale }}">{{ end }} <meta property="og:type" content="{{ .ogMeta.Type }}"> <meta property="og:title" content="{{ .ogMeta.Title }}"> <meta property="og:url" content="{{ .ogMeta.URL }}"> <meta property="og:site_name" content="{{ .ogMeta.SiteName }}"> <meta property="og:description" {{ .ogMeta.Description | noescapeAttr }}> {{ if .ogMeta.ArticlePublisher }} <meta property="og:article:publisher" content="{{ .ogMeta.ArticlePublisher }}"> <meta property="og:article:author" content="{{ .ogMeta.ArticleAuthor }}"> <meta property="og:article:modified_time" content="{{ .ogMeta.ArticleModifiedTime }}"> <meta property="og:article:published_time" content="{{ .ogMeta.ArticlePublishedTime }}"> {{ end }} {{ if .ogMeta.ProfileUsername }}<meta property="og:profile:username" content="{{ .ogMeta.ProfileUsername }}">{{ end }} <meta property="og:image" content="{{ .ogMeta.Image }}"> {{ if .ogMeta.ImageAlt }}<meta property="og:image:alt" content="{{ .ogMeta.ImageAlt }}">{{ end }} {{ if .ogMeta.ImageWidth }} <meta property="og:image:width" content="{{ .ogMeta.ImageWidth }}"> <meta property="og:image:height" content="{{ .ogMeta.ImageHeight }}"> {{ end }} {{- end }} {{- /* ICON For icon, provide a link to the instance thumbnail. If the instance admin has set a custom thumbnail, use the type they uploaded, else assume image/png. See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel#icon */ -}} <link rel="icon" href="{{ .instance.Thumbnail }}" type="{{ template "thumbnailType" . }}"> <link rel="apple-touch-icon" href="{{ .instance.Thumbnail }}" type="{{ template "thumbnailType" . }}"> <link rel="apple-touch-startup-image" href="{{ .instance.Thumbnail }}" type="{{ template "thumbnailType" . }}"> {{- /* RSS FEED To enable automatic rss feed discovery for feed readers, provide the 'alternate' link only if rss is enabled. See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel#alternate */ -}} {{ if .rssFeed -}} <link rel="alternate" type="application/rss+xml" href="{{ .rssFeed }}" title="{{ template "instanceTitle" . }}"> {{- end }} {{- /* STYLESHEET STUFF To try to speed up rendering a little bit, offer a preload for each stylesheet. See: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preload. */ -}} <link rel="preload" href="/assets/dist/_colors.css" as="style"> <link rel="preload" href="/assets/dist/base.css" as="style"> {{ range .stylesheets }}<link rel="preload" href="{{ . }}" as="style">{{ end }} <link rel="stylesheet" href="/assets/dist/_colors.css"> <link rel="stylesheet" href="/assets/dist/base.css"> {{ range .stylesheets }}<link rel="stylesheet" href="{{ . }}">{{ end }} <title>{{ template "instanceTitle" . }}</title> </head> <body> <div class="page"> <header> <a aria-label="{{ .instance.Title }}. Go to instance homepage" href="/" class="nounderline header"> <img src="{{ .instance.Thumbnail }}" alt="{{ if .instance.ThumbnailDescription }}{{ .instance.ThumbnailDescription }}{{ else }}Instance Logo{{ end }}" /> <h1> {{ .instance.Title }} </h1> </a> </header> <div class="content">