mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-29 04:52:24 -05:00
This pull request closes https://codeberg.org/superseriousbusiness/gotosocial/issues/3403 by searching for alt or title attributes in HTML, looking for the shortest indent (if any) at the start of multiline content of said attributes, and remove that shortest indent from each line. This is a bit more fiddly than the "easy" way of doing it, but it has the advantage that it preserves user-added indents at the start of lines of alt text. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4149 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
93 lines
No EOL
3.8 KiB
Cheetah
93 lines
No EOL
3.8 KiB
Cheetah
{{- /*
|
|
// 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/webp
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "instanceTitle" -}}
|
|
{{- if .ogMeta -}}
|
|
{{- demojify .ogMeta.Title | noescape -}}
|
|
{{- else -}}
|
|
{{- .instance.Title }} - GoToSocial
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
<!DOCTYPE html>
|
|
<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">
|
|
<meta name="robots" content="{{- if .robotsMeta -}}{{- .robotsMeta -}}{{- else -}}noindex, nofollow, noai, noimageai{{- end -}}">
|
|
{{- if .ogMeta }}
|
|
{{- include "page_ogmeta.tmpl" . | indent 2 }}
|
|
{{- else }}
|
|
{{- end }}
|
|
{{- if .rssFeed }}
|
|
<link rel="alternate" type="application/rss+xml" href="{{- .rssFeed -}}" title="{{- template "instanceTitle" . -}}">
|
|
{{- else }}
|
|
{{- end }}
|
|
{{- if .account }}
|
|
<link rel="alternate" type="application/activity+json" href="/users/{{- .account.Username -}}">
|
|
{{- else if .status }}
|
|
<link rel="alternate" type="application/activity+json" href="/users/{{- .status.Account.Username -}}/statuses/{{- .status.ID -}}">
|
|
{{- else }}
|
|
{{- end }}
|
|
<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" . -}}">
|
|
{{- include "page_stylesheets.tmpl" . | indent 2 }}
|
|
{{- range .javascript }}
|
|
{{- if not .Bottom }}
|
|
<script type="text/javascript" src="{{- .Src -}}"{{- if .Async }} async=""{{- end -}}{{- if .Defer }} defer=""{{- end -}}></script>
|
|
{{- end }}
|
|
{{- end }}
|
|
<title>{{- template "instanceTitle" . -}}</title>
|
|
</head>
|
|
<body class="page{{- if .pageClass }} {{ .pageClass }}-page{{- end -}}">
|
|
{{- include "login_button.tmpl" . | indent 3 }}
|
|
<header class="page-header">
|
|
{{- include "page_header.tmpl" . | indent 3 }}
|
|
</header>
|
|
<div class="page-content">
|
|
{{- include .pageContent . | indent 3 | outdentPreformatted }}
|
|
</div>
|
|
<footer class="page-footer">
|
|
{{- include "page_footer.tmpl" . | indent 3 }}
|
|
</footer>
|
|
{{- range .javascript }}
|
|
{{- if .Bottom }}
|
|
<script type="text/javascript" src="{{- .Src -}}"></script>
|
|
{{- end }}
|
|
{{- end }}
|
|
</body>
|
|
</html> |