akkoma-fe/docs/site/CONFIGURATION/index.html

1103 lines
36 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" href="../images/pleroma_logo_vector_bg_32.png">
<meta name="generator" content="mkdocs-1.3.0, mkdocs-material-8.3.9">
<title>Pleroma-FE configuration and customization for instance administrators - Pleroma-FE Documentation</title>
<link rel="stylesheet" href="../assets/stylesheets/main.1d29e8d0.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.cbb835fc.min.css">
<meta name="theme-color" content="#7e56c2">
<link rel="stylesheet" href="../css/extra.css">
<script>__md_scope=new URL("..",location),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="" data-md-color-primary="deep-purple" data-md-color-accent="blue-grey">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#pleroma-fe-configuration-and-customization-for-instance-administrators" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href=".." title="Pleroma-FE Documentation" class="md-header__button md-logo" aria-label="Pleroma-FE Documentation" data-md-component="logo">
<img src="../images/pleroma_logo_vector_nobg.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Pleroma-FE Documentation
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Pleroma-FE configuration and customization for instance administrators
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<!--
Copyright (c) 2016-2019 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!--
Check whether the repository is hosted on one of the supported code hosting
platforms (GitHub, GitLab or Bitbucket) to show icon.
-->
<!-- Repository containing source -->
<a href="https://akkoma.dev/AkkomaGang/pleroma-fe" title="Go to repository"
class="md-source" data-md-source="">
<div class="md-source__repository">
AkkomaGang/pleroma-fe
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href=".." title="Pleroma-FE Documentation" class="md-nav__button md-logo" aria-label="Pleroma-FE Documentation" data-md-component="logo">
<img src="../images/pleroma_logo_vector_nobg.svg" alt="logo">
</a>
Pleroma-FE Documentation
</label>
<div class="md-nav__source">
<!--
Copyright (c) 2016-2019 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
<!--
Check whether the repository is hosted on one of the supported code hosting
platforms (GitHub, GitLab or Bitbucket) to show icon.
-->
<!-- Repository containing source -->
<a href="https://akkoma.dev/AkkomaGang/pleroma-fe" title="Go to repository"
class="md-source" data-md-source="">
<div class="md-source__repository">
AkkomaGang/pleroma-fe
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href=".." class="md-nav__link">
Introduction to Pleroma-FE
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Pleroma-FE configuration and customization for instance administrators
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
Pleroma-FE configuration and customization for instance administrators
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#where-configuration-is-stored" class="md-nav__link">
Where configuration is stored
</a>
</li>
<li class="md-nav__item">
<a href="#instance-defaults" class="md-nav__link">
Instance-defaults
</a>
</li>
<li class="md-nav__item">
<a href="#options" class="md-nav__link">
Options
</a>
<nav class="md-nav" aria-label="Options">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#alwaysshowsubjectinput" class="md-nav__link">
alwaysShowSubjectInput
</a>
</li>
<li class="md-nav__item">
<a href="#background" class="md-nav__link">
background
</a>
</li>
<li class="md-nav__item">
<a href="#collapsemessagewithsubject" class="md-nav__link">
collapseMessageWithSubject
</a>
</li>
<li class="md-nav__item">
<a href="#disablechat" class="md-nav__link">
disableChat
</a>
</li>
<li class="md-nav__item">
<a href="#greentext" class="md-nav__link">
greentext
</a>
</li>
<li class="md-nav__item">
<a href="#hidefilteredstatuses" class="md-nav__link">
hideFilteredStatuses
</a>
</li>
<li class="md-nav__item">
<a href="#hidemutedposts" class="md-nav__link">
hideMutedPosts
</a>
</li>
<li class="md-nav__item">
<a href="#hidepoststats" class="md-nav__link">
hidePostStats
</a>
</li>
<li class="md-nav__item">
<a href="#hidesitename" class="md-nav__link">
hideSitename
</a>
</li>
<li class="md-nav__item">
<a href="#hideuserstats" class="md-nav__link">
hideUserStats
</a>
</li>
<li class="md-nav__item">
<a href="#loginmethod" class="md-nav__link">
loginMethod
</a>
</li>
<li class="md-nav__item">
<a href="#logo-logomask-logomargin" class="md-nav__link">
logo, logoMask, logoMargin
</a>
</li>
<li class="md-nav__item">
<a href="#minimalscopesmode" class="md-nav__link">
minimalScopesMode
</a>
</li>
<li class="md-nav__item">
<a href="#nsfwcensorimage" class="md-nav__link">
nsfwCensorImage
</a>
</li>
<li class="md-nav__item">
<a href="#postcontenttype" class="md-nav__link">
postContentType
</a>
</li>
<li class="md-nav__item">
<a href="#redirectrootnologin-redirectrootlogin" class="md-nav__link">
redirectRootNoLogin, redirectRootLogin
</a>
</li>
<li class="md-nav__item">
<a href="#scopecopy" class="md-nav__link">
scopeCopy
</a>
</li>
<li class="md-nav__item">
<a href="#sidebarright" class="md-nav__link">
sidebarRight
</a>
</li>
<li class="md-nav__item">
<a href="#showfeaturespanel" class="md-nav__link">
showFeaturesPanel
</a>
</li>
<li class="md-nav__item">
<a href="#showinstancespecificpanel" class="md-nav__link">
showInstanceSpecificPanel
</a>
</li>
<li class="md-nav__item">
<a href="#subjectlinebehavior" class="md-nav__link">
subjectLineBehavior
</a>
</li>
<li class="md-nav__item">
<a href="#theme" class="md-nav__link">
theme
</a>
</li>
<li class="md-nav__item">
<a href="#webpushnotifications" class="md-nav__link">
webPushNotifications
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#indirect-configuration" class="md-nav__link">
Indirect configuration
</a>
<nav class="md-nav" aria-label="Indirect configuration">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#chat" class="md-nav__link">
Chat
</a>
</li>
<li class="md-nav__item">
<a href="#private-mode" class="md-nav__link">
Private Mode
</a>
</li>
<li class="md-nav__item">
<a href="#rich-text-formatting-in-post-formatting" class="md-nav__link">
Rich text formatting in post formatting
</a>
</li>
<li class="md-nav__item">
<a href="#who-to-follow" class="md-nav__link">
Who to follow
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../HACKING/" class="md-nav__link">
Hacking, tweaking, contributing
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
<label class="md-nav__link" for="__nav_4">
User guide
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" aria-label="User guide" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
User guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../user_guide/" class="md-nav__link">
General overview
</a>
</li>
<li class="md-nav__item">
<a href="../user_guide/posting_reading_basic_functions/" class="md-nav__link">
Posting, reading, basic functions.
</a>
</li>
<li class="md-nav__item">
<a href="../user_guide/settings/" class="md-nav__link">
Settings
</a>
</li>
<li class="md-nav__item">
<a href="../user_guide/timelines/" class="md-nav__link">
Timelines
</a>
</li>
<li class="md-nav__item">
<a href="../user_guide/users_follow_mute_block/" class="md-nav__link">
Users: follow, mute, block
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#where-configuration-is-stored" class="md-nav__link">
Where configuration is stored
</a>
</li>
<li class="md-nav__item">
<a href="#instance-defaults" class="md-nav__link">
Instance-defaults
</a>
</li>
<li class="md-nav__item">
<a href="#options" class="md-nav__link">
Options
</a>
<nav class="md-nav" aria-label="Options">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#alwaysshowsubjectinput" class="md-nav__link">
alwaysShowSubjectInput
</a>
</li>
<li class="md-nav__item">
<a href="#background" class="md-nav__link">
background
</a>
</li>
<li class="md-nav__item">
<a href="#collapsemessagewithsubject" class="md-nav__link">
collapseMessageWithSubject
</a>
</li>
<li class="md-nav__item">
<a href="#disablechat" class="md-nav__link">
disableChat
</a>
</li>
<li class="md-nav__item">
<a href="#greentext" class="md-nav__link">
greentext
</a>
</li>
<li class="md-nav__item">
<a href="#hidefilteredstatuses" class="md-nav__link">
hideFilteredStatuses
</a>
</li>
<li class="md-nav__item">
<a href="#hidemutedposts" class="md-nav__link">
hideMutedPosts
</a>
</li>
<li class="md-nav__item">
<a href="#hidepoststats" class="md-nav__link">
hidePostStats
</a>
</li>
<li class="md-nav__item">
<a href="#hidesitename" class="md-nav__link">
hideSitename
</a>
</li>
<li class="md-nav__item">
<a href="#hideuserstats" class="md-nav__link">
hideUserStats
</a>
</li>
<li class="md-nav__item">
<a href="#loginmethod" class="md-nav__link">
loginMethod
</a>
</li>
<li class="md-nav__item">
<a href="#logo-logomask-logomargin" class="md-nav__link">
logo, logoMask, logoMargin
</a>
</li>
<li class="md-nav__item">
<a href="#minimalscopesmode" class="md-nav__link">
minimalScopesMode
</a>
</li>
<li class="md-nav__item">
<a href="#nsfwcensorimage" class="md-nav__link">
nsfwCensorImage
</a>
</li>
<li class="md-nav__item">
<a href="#postcontenttype" class="md-nav__link">
postContentType
</a>
</li>
<li class="md-nav__item">
<a href="#redirectrootnologin-redirectrootlogin" class="md-nav__link">
redirectRootNoLogin, redirectRootLogin
</a>
</li>
<li class="md-nav__item">
<a href="#scopecopy" class="md-nav__link">
scopeCopy
</a>
</li>
<li class="md-nav__item">
<a href="#sidebarright" class="md-nav__link">
sidebarRight
</a>
</li>
<li class="md-nav__item">
<a href="#showfeaturespanel" class="md-nav__link">
showFeaturesPanel
</a>
</li>
<li class="md-nav__item">
<a href="#showinstancespecificpanel" class="md-nav__link">
showInstanceSpecificPanel
</a>
</li>
<li class="md-nav__item">
<a href="#subjectlinebehavior" class="md-nav__link">
subjectLineBehavior
</a>
</li>
<li class="md-nav__item">
<a href="#theme" class="md-nav__link">
theme
</a>
</li>
<li class="md-nav__item">
<a href="#webpushnotifications" class="md-nav__link">
webPushNotifications
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#indirect-configuration" class="md-nav__link">
Indirect configuration
</a>
<nav class="md-nav" aria-label="Indirect configuration">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#chat" class="md-nav__link">
Chat
</a>
</li>
<li class="md-nav__item">
<a href="#private-mode" class="md-nav__link">
Private Mode
</a>
</li>
<li class="md-nav__item">
<a href="#rich-text-formatting-in-post-formatting" class="md-nav__link">
Rich text formatting in post formatting
</a>
</li>
<li class="md-nav__item">
<a href="#who-to-follow" class="md-nav__link">
Who to follow
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="pleroma-fe-configuration-and-customization-for-instance-administrators">Pleroma-FE configuration and customization for instance administrators<a class="headerlink" href="#pleroma-fe-configuration-and-customization-for-instance-administrators" title="Permanent link">&para;</a></h1>
<ul>
<li><em>For user configuration, see <a href="../user_guide">Pleroma-FE user guide</a></em></li>
<li><em>For local development server configuration, see <a href="../HACKING/">Hacking, tweaking, contributing</a></em></li>
</ul>
<h2 id="where-configuration-is-stored">Where configuration is stored<a class="headerlink" href="#where-configuration-is-stored" title="Permanent link">&para;</a></h2>
<p>PleromaFE gets its configuration from several sources, in order of preference (the one above overrides ones below it)</p>
<ol>
<li><code>/api/statusnet/config.json</code> - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses <code>pleromafe</code> field of it. For more info on changing config on BE, look <a href="https://docs.akkoma.dev/stable/configuration/cheatsheet.md#frontend_configurations">here</a></li>
<li><code>/static/config.json</code> - this is a static FE-provided file, containing only FE specific configuration. This file is completely optional and could be removed but is useful as a fallback if some configuration JSON property isn't present in BE-provided config. It's also a reference point to check what default configuration are and what JSON properties even exist. In local dev mode it could be used to override BE configuration, more about that in HACKING.md. File is located <a href="https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/static/config.json">here</a>.</li>
<li>Built-in defaults. Those are hard-coded defaults that are used when <code>/static/config.json</code> is not available and BE-provided configuration JSON is missing some JSON properties. ( <a href="https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/src/modules/instance.js">Code</a> )</li>
</ol>
<h2 id="instance-defaults">Instance-defaults<a class="headerlink" href="#instance-defaults" title="Permanent link">&para;</a></h2>
<p>Important note that some configurations are treated as "instance default" - it means user is able to change this configuration for themselves. Currently, defaults are only applied for new visitors and people who haven't changed the option in question. If you change some instance default option, there is a chance it won't affect some users.</p>
<p>There's currently no mechanism for user-settings synchronization across several browsers, <em>user</em> essentially means <em>visitor</em>, most user settings are stored in local storage/IndexedDB and not tied to an account in any way.</p>
<h2 id="options">Options<a class="headerlink" href="#options" title="Permanent link">&para;</a></h2>
<h3 id="alwaysshowsubjectinput"><code>alwaysShowSubjectInput</code><a class="headerlink" href="#alwaysshowsubjectinput" title="Permanent link">&para;</a></h3>
<p><code>true</code> - will always show subject line input, <code>false</code> - only show when it's not empty (i.e. replying). To hide subject line input completely, set it to <code>false</code> and <code>subjectLineBehavior</code> to <code>"noop"</code></p>
<h3 id="background"><code>background</code><a class="headerlink" href="#background" title="Permanent link">&para;</a></h3>
<p>Default image background. Be aware of using too big images as they may take longer to load. Currently image is fitted with <code>background-size: cover</code> which means "scaled and cropped", currently left-aligned. De-facto instance default, user can choose their own background, if they remove their own background, instance default will be used instead.</p>
<h3 id="collapsemessagewithsubject"><code>collapseMessageWithSubject</code><a class="headerlink" href="#collapsemessagewithsubject" title="Permanent link">&para;</a></h3>
<p>Collapse post content when post has a subject line (content warning). Instance-default.</p>
<h3 id="disablechat"><code>disableChat</code><a class="headerlink" href="#disablechat" title="Permanent link">&para;</a></h3>
<p>hides the chat (TODO: even if it's enabled on backend)</p>
<h3 id="greentext"><code>greentext</code><a class="headerlink" href="#greentext" title="Permanent link">&para;</a></h3>
<p>Changes lines prefixed with the <code>&gt;</code> character to have a green text color</p>
<h3 id="hidefilteredstatuses"><code>hideFilteredStatuses</code><a class="headerlink" href="#hidefilteredstatuses" title="Permanent link">&para;</a></h3>
<p>Removes filtered statuses from timelines.</p>
<h3 id="hidemutedposts"><code>hideMutedPosts</code><a class="headerlink" href="#hidemutedposts" title="Permanent link">&para;</a></h3>
<p>Removes muted statuses from timelines.</p>
<h3 id="hidepoststats"><code>hidePostStats</code><a class="headerlink" href="#hidepoststats" title="Permanent link">&para;</a></h3>
<p>Hide repeats/favorites counters for posts.</p>
<h3 id="hidesitename"><code>hideSitename</code><a class="headerlink" href="#hidesitename" title="Permanent link">&para;</a></h3>
<p>Hide instance name in header.</p>
<h3 id="hideuserstats"><code>hideUserStats</code><a class="headerlink" href="#hideuserstats" title="Permanent link">&para;</a></h3>
<p>Hide followers/friends counters for users.</p>
<h3 id="loginmethod"><code>loginMethod</code><a class="headerlink" href="#loginmethod" title="Permanent link">&para;</a></h3>
<p><code>"password"</code> - show simple password field
<code>"token"</code> - show button to log in with external method (will redirect to login form, more details in BE documentation)</p>
<h3 id="logo-logomask-logomargin"><code>logo</code>, <code>logoMask</code>, <code>logoMargin</code><a class="headerlink" href="#logo-logomask-logomargin" title="Permanent link">&para;</a></h3>
<p>Instance <code>logo</code>, could be any image, including svg. By default it assumes logo used will be monochrome-with-alpha one, this is done to be compatible with both light and dark themes, so that white logo designed with dark theme in mind won't be invisible over light theme, this is done via <a href="https://www.html5rocks.com/en/tutorials/masking/adobe/">CSS3 Masking</a>. Basically - it will take alpha channel of the image and fill non-transparent areas of it with solid color. If you really want colorful logo - it can be done by setting <code>logoMask</code> to <code>false</code>.</p>
<p><code>logoMargin</code> allows you to adjust vertical margins between logo boundary and navbar borders. The idea is that to have logo's image without any extra margins and instead adjust them to your need in layout.</p>
<h3 id="minimalscopesmode"><code>minimalScopesMode</code><a class="headerlink" href="#minimalscopesmode" title="Permanent link">&para;</a></h3>
<p>Limit scope selection to <em>Direct</em>, <em>User default</em> and <em>Scope of post replying to</em>. This also makes it impossible to reply to a DM with a non-DM post from PleromaFE.</p>
<h3 id="nsfwcensorimage"><code>nsfwCensorImage</code><a class="headerlink" href="#nsfwcensorimage" title="Permanent link">&para;</a></h3>
<p>Use custom image for NSFW'd images</p>
<h3 id="postcontenttype"><code>postContentType</code><a class="headerlink" href="#postcontenttype" title="Permanent link">&para;</a></h3>
<p>Default post formatting option (markdown/bbcode/plaintext/etc...)</p>
<h3 id="redirectrootnologin-redirectrootlogin"><code>redirectRootNoLogin</code>, <code>redirectRootLogin</code><a class="headerlink" href="#redirectrootnologin-redirectrootlogin" title="Permanent link">&para;</a></h3>
<p>These two settings should point to where FE should redirect visitor when they login/open up website root</p>
<h3 id="scopecopy"><code>scopeCopy</code><a class="headerlink" href="#scopecopy" title="Permanent link">&para;</a></h3>
<p>Copy post scope (visibility) when replying to a post. Instance-default.</p>
<h3 id="sidebarright"><code>sidebarRight</code><a class="headerlink" href="#sidebarright" title="Permanent link">&para;</a></h3>
<p>Change alignment of sidebar and panels to the right. Defaults to <code>false</code>.</p>
<h3 id="showfeaturespanel"><code>showFeaturesPanel</code><a class="headerlink" href="#showfeaturespanel" title="Permanent link">&para;</a></h3>
<p>Show panel showcasing instance features/settings to logged-out visitors</p>
<h3 id="showinstancespecificpanel"><code>showInstanceSpecificPanel</code><a class="headerlink" href="#showinstancespecificpanel" title="Permanent link">&para;</a></h3>
<p>This allows you to include arbitrary HTML content in a panel below navigation menu. PleromaFE looks for an html page <code>instance/panel.html</code>, by default it's not provided in FE, but BE bundles some <a href="https://git.pleroma.social/pleroma/pleroma/blob/develop/priv/static/instance/panel.html">default one</a>. De-facto instance-defaults, since user can hide instance-specific panel.</p>
<h3 id="subjectlinebehavior"><code>subjectLineBehavior</code><a class="headerlink" href="#subjectlinebehavior" title="Permanent link">&para;</a></h3>
<p>How to handle subject line (CW) when replying to a post.
* <code>"email"</code> - like EMail - prepend <code>re:</code> to subject line if it doesn't already start with it.
* <code>"masto"</code> - like Mastodon - copy it as is.
* <code>"noop"</code> - do not copy
Instance-default.</p>
<h3 id="theme"><code>theme</code><a class="headerlink" href="#theme" title="Permanent link">&para;</a></h3>
<p>Default theme used for new users. De-facto instance-default, user can change theme.</p>
<h3 id="webpushnotifications"><code>webPushNotifications</code><a class="headerlink" href="#webpushnotifications" title="Permanent link">&para;</a></h3>
<p>Enables <a href="https://developer.mozilla.org/en-US/docs/Web/API/Push_API">PushAPI</a> - based notifications for users. Instance-default.</p>
<h2 id="indirect-configuration">Indirect configuration<a class="headerlink" href="#indirect-configuration" title="Permanent link">&para;</a></h2>
<p>Some features are configured depending on how backend is configured. In general the approach is "if backend allows it there's no need to hide it, if backend doesn't allow it there's no need to show it.</p>
<h3 id="chat">Chat<a class="headerlink" href="#chat" title="Permanent link">&para;</a></h3>
<p><strong>TODO somewhat broken, see: disableChat</strong> chat can be disabled by disabling it in backend</p>
<h3 id="private-mode">Private Mode<a class="headerlink" href="#private-mode" title="Permanent link">&para;</a></h3>
<p>If the <code>private</code> instance setting is enabled in the backend, features that are not accessible without authentication, such as the timelines and search will be disabled for unauthenticated users.</p>
<h3 id="rich-text-formatting-in-post-formatting">Rich text formatting in post formatting<a class="headerlink" href="#rich-text-formatting-in-post-formatting" title="Permanent link">&para;</a></h3>
<p>Rich text formatting options are displayed depending on how many formatting options are enabled on backend, if you don't want your users to use rich text at all you can only allow "text/plain" one, frontend then will only display post text format as a label instead of dropdown (just so that users know for example if you only allow Markdown, only BBCode or only Plain text)</p>
<h3 id="who-to-follow">Who to follow<a class="headerlink" href="#who-to-follow" title="Permanent link">&para;</a></h3>
<p>This is a panel intended for users to find people to follow based on randomness or on post contents. Being potentially privacy unfriendly feature it needs to be enabled and configured in backend to be enabled.</p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer" >
<a href=".." class="md-footer__link md-footer__link--prev" aria-label="Previous: Introduction to Pleroma-FE" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</div>
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Previous
</span>
Introduction to Pleroma-FE
</div>
</div>
</a>
<a href="../HACKING/" class="md-footer__link md-footer__link--next" aria-label="Next: Hacking, tweaking, contributing" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
Next
</span>
Hacking, tweaking, contributing
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"/></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["tabs"], "search": "../assets/javascripts/workers/search.b97dbffb.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version.title": "Select version"}}</script>
<script src="../assets/javascripts/bundle.6c7ad80a.min.js"></script>
</body>
</html>