mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-23 08:44:10 +01:00
d5e3996a18
* [feature] Parse instance descriptors as markdown, show T&C on /about * lint * remove unnecessary nullzero tags
191 lines
8.0 KiB
Cheetah
191 lines
8.0 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/>.
|
|
*/ -}}
|
|
|
|
{{- define "description" -}}
|
|
{{- if .instance.Description }}
|
|
{{ .instance.Description | noescape }}
|
|
{{- else }}
|
|
<p>No description has yet been set for this instance.</p>
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
{{- define "termsAndConditions" -}}
|
|
{{- if .instance.Terms }}
|
|
{{ .instance.Terms | noescape }}
|
|
{{- else }}
|
|
<p>No terms and conditions have yet been set for this instance.</p>
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
{{- define "registrationLimits" -}}
|
|
{{- if .instance.Registrations -}}
|
|
Registration is enabled; new signups can be submitted to this instance.<br/>
|
|
{{- if .instance.ApprovalRequired -}}
|
|
Admin approval is required for new registrations.
|
|
{{- else -}}
|
|
Admin approval is not required for registrations; new signups will be automatically approved (pending email confirmation).
|
|
{{- end -}}
|
|
{{- else -}}
|
|
Registration is disabled; new signups are currently closed for this instance.
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "customCSSLimits" -}}
|
|
{{- if .instance.Configuration.Accounts.AllowCustomCSS -}}
|
|
Users are allowed to set <a href="https://docs.gotosocial.org/en/latest/user_guide/custom_css/" target="_blank" rel="noopener noreferrer">Custom CSS</a> for their profiles.
|
|
{{- else -}}
|
|
<a href="https://docs.gotosocial.org/en/latest/user_guide/custom_css/" target="_blank" rel="noopener noreferrer">Custom CSS</a> is not enabled for user profiles.
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "statusLimits" -}}
|
|
Statuses can contain up to
|
|
{{- .instance.Configuration.Statuses.MaxCharacters }} characters, and
|
|
{{- .instance.Configuration.Statuses.MaxMediaAttachments }} media attachments.
|
|
{{- end -}}
|
|
|
|
{{- define "pollLimits" -}}
|
|
Polls can have up to
|
|
{{- .instance.Configuration.Polls.MaxOptions }} options, with
|
|
{{- .instance.Configuration.Polls.MaxCharactersPerOption }} characters per option.
|
|
{{- end -}}
|
|
|
|
{{- with . }}
|
|
<main class="about">
|
|
<nav class="about-section" aria-labelledby="toc">
|
|
<h3 id="toc">Table of Contents</h3>
|
|
<div class="about-section-contents">
|
|
<ol>
|
|
<li><a href="#about">About {{ .instance.Title -}}</a></li>
|
|
<li><a href="#contact">Contact</a></li>
|
|
<li><a href="#features">Features</a></li>
|
|
<li><a href="#languages">Languages</a></li>
|
|
<li><a href="#rules">Rules</a></li>
|
|
<li><a href="#terms">Terms and Conditions</a></li>
|
|
<li><a href="#moderated-servers">Moderated Servers</a></li>
|
|
</ol>
|
|
</div>
|
|
</nav>
|
|
<section class="about-section" role="region" aria-labelledby="about">
|
|
<h3 id="about">About {{ .instance.Title -}}</h3>
|
|
<div class="about-section-contents">
|
|
{{- with . }}
|
|
{{- include "description" . | indent 3 }}
|
|
{{- end }}
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="contact">
|
|
<h3 id="contact">Admin Contact</h3>
|
|
<div class="about-section-contents">
|
|
{{- if .instance.ContactAccount }}
|
|
<a href="{{- .instance.ContactAccount.URL -}}" class="account-card">
|
|
<img class="avatar" src="{{- .instance.ContactAccount.Avatar -}}" alt=""/>
|
|
<h3>
|
|
{{- if .instance.ContactAccount.DisplayName -}}
|
|
{{- emojify .instance.ContactAccount.Emojis (escape .instance.ContactAccount.DisplayName) -}}
|
|
{{- else -}}
|
|
{{- .instance.ContactAccount.Username -}}
|
|
{{- end -}}
|
|
</h3>
|
|
<span>@{{- .instance.ContactAccount.Username -}}</span>
|
|
</a>
|
|
{{- else }}
|
|
<p>This instance has not yet set a contact account.</p>
|
|
{{- end }}
|
|
{{- if .instance.Email }}
|
|
<p>Email: <a href="mailto:{{- .instance.Email -}}">{{- .instance.Email -}}</a></p>
|
|
{{- else }}
|
|
<p>This instance has not yet set a contact email address.</p>
|
|
{{- end }}
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="features">
|
|
<h3 id="features">Instance Features</h3>
|
|
<div class="about-section-contents">
|
|
<ul>
|
|
<li>{{- template "registrationLimits" . -}}</li>
|
|
<li>{{- template "customCSSLimits" . -}}</li>
|
|
<li>{{- template "statusLimits" . -}}</li>
|
|
<li>{{- template "pollLimits" . -}}</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="languages">
|
|
<h3 id="languages">Languages</h3>
|
|
<div class="about-section-contents">
|
|
{{- if .languages }}
|
|
<p>This instance prefers the following languages:</p>
|
|
<ol>
|
|
{{- range .languages }}
|
|
<li>{{- . -}}</li>
|
|
{{- end }}
|
|
</ol>
|
|
{{- else }}
|
|
<p>This instance does not have any preferred languages.</p>
|
|
{{- end }}
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="rules">
|
|
<h3 id="rules">Instance Rules</h3>
|
|
<div class="about-section-contents">
|
|
<p>This instance has the following rules:</p>
|
|
{{- if .instance.Rules }}
|
|
<ol>
|
|
{{- range .instance.Rules }}
|
|
<li>{{- .Text -}}</li>
|
|
{{- end }}
|
|
</ol>
|
|
{{- else }}
|
|
<p>This instance has not yet set any rules.</p>
|
|
{{- end }}
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="terms">
|
|
<h3 id="terms">Terms and Conditions</h3>
|
|
<div class="about-section-contents">
|
|
{{- with . }}
|
|
{{- include "termsAndConditions" . | indent 3 }}
|
|
{{- end }}
|
|
</div>
|
|
</section>
|
|
<section class="about-section" role="region" aria-labelledby="moderated-servers">
|
|
<h3 id="moderated-servers">Moderated servers</h3>
|
|
<div class="about-section-contents">
|
|
<p>
|
|
ActivityPub instances federate with other instances by exchanging data with them over the network.
|
|
Exchanged data includes things like accounts, statuses, likes, boosts, and media attachments.
|
|
This exchange of data can prevented for instances on specific domains via a domain block created
|
|
by an instance admin. When an instance is domain blocked by another instance:
|
|
</p>
|
|
<ul>
|
|
<li>Any existing data from the blocked instance is deleted from the storage of the instance doing the blocking.</li>
|
|
<li>Interaction between the two instances is cut off in both directions; neither instance can interact with the other.</li>
|
|
<li>No new data from the blocked instance will be created on the instance that blocks it.</li>
|
|
</ul>
|
|
<p>
|
|
{{- if .blocklistExposed }}
|
|
<a href="/about/suspended">View the list of domains blocked by this instance</a>
|
|
{{- else }}
|
|
This instance does not publically share their list of blocked domains.
|
|
{{- end }}
|
|
</p>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
{{- end }} |