From 81a59feab1e17452c0ebc17500ecfe77037caac3 Mon Sep 17 00:00:00 2001 From: Ben Is Date: Sat, 17 Oct 2020 08:19:40 +0000 Subject: [PATCH 001/306] Translated using Weblate (Italian) Currently translated at 100.0% (669 of 669 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index ce508630..67e92b32 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -598,12 +598,12 @@ "reject": "Rifiuta", "accept": "Accetta", "simple_policies": "Regole specifiche alla stanza", - "accept_desc": "Questa stanza accetta messaggi solo dalle seguenti stanze:", - "reject_desc": "Questa stanza non accetterà messaggi dalle stanze seguenti:", + "accept_desc": "Questa stanza accetta messaggi solo dalle seguenti altre:", + "reject_desc": "Questa stanza rifiuterà i messaggi provenienti dalle seguenti:", "quarantine": "Quarantena", - "quarantine_desc": "Questa stanza inoltrerà solo messaggi pubblici alle seguenti stanze:", + "quarantine_desc": "Questa stanza inoltrerà solo messaggi pubblici alle seguenti:", "ftl_removal": "Rimozione dalla sequenza globale", - "ftl_removal_desc": "Questa stanza rimuove le seguenti stanze dalla sequenza globale:", + "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza globale:", "media_removal": "Rimozione multimedia", "media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:", "media_nsfw": "Allegati oscurati forzatamente", From 4835f567d44c12830bc5e8eebe864ad09f2e127b Mon Sep 17 00:00:00 2001 From: Kana Date: Sun, 18 Oct 2020 06:20:10 +0000 Subject: [PATCH 002/306] Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (667 of 669 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hans/ --- src/i18n/zh.json | 108 +++++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 50 deletions(-) diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 1fb0b548..fa15991b 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -11,7 +11,7 @@ "gopher": "Gopher", "media_proxy": "媒体代理", "scope_options": "可见范围设置", - "text_limit": "文字數量限制", + "text_limit": "文字数量限制", "title": "功能", "who_to_follow": "推荐关注", "pleroma_chat_messages": "Pleroma 聊天" @@ -24,8 +24,8 @@ "apply": "应用", "submit": "提交", "more": "更多", - "generic_error": "发生一个错误", - "optional": "可选项", + "generic_error": "发生了一个错误", + "optional": "可选", "show_more": "展开", "show_less": "收起", "cancel": "取消", @@ -95,28 +95,28 @@ }, "notifications": { "broken_favorite": "未知的状态,正在搜索中…", - "favorited_you": "收藏了你的状态", + "favorited_you": "喜欢了你的状态", "followed_you": "关注了你", "load_older": "加载更早的通知", "notifications": "通知", - "read": "阅读!", + "read": "已阅!", "repeated_you": "转发了你的状态", "no_more_notifications": "没有更多的通知", - "reacted_with": "和 {0} 互动过", + "reacted_with": "作出了 {0} 的反应", "migrated_to": "迁移到", "follow_request": "想要关注你" }, "polls": { - "add_poll": "增加问卷调查", + "add_poll": "增加投票", "add_option": "增加选项", "option": "选项", "votes": "投票", "vote": "投票", - "type": "问卷类型", - "single_choice": "单选项", - "multiple_choices": "多选项", - "expiry": "问卷的时间", - "expires_in": "投票于 {0} 内结束", + "type": "投票类型", + "single_choice": "单选", + "multiple_choices": "多选", + "expiry": "投票期限", + "expires_in": "投票于 {0} 后结束", "expired": "投票 {0} 前已结束", "not_enough_options": "投票的选项太少" }, @@ -189,7 +189,7 @@ "settings": { "app_name": "App 名称", "security": "安全", - "enter_current_password_to_confirm": "输入你当前密码来确认你的身份", + "enter_current_password_to_confirm": "输入您当前的密码来确认您的身份", "mfa": { "otp": "OTP", "setup_otp": "设置 OTP", @@ -197,18 +197,18 @@ "confirm_and_enable": "确认并启用 OTP", "title": "双因素验证", "generate_new_recovery_codes": "生成新的恢复码", - "warning_of_generate_new_codes": "当你生成新的恢复码时,你的旧恢复码就失效了。", + "warning_of_generate_new_codes": "当您生成新的恢复码时,您旧的恢复码将会失效。", "recovery_codes": "恢复码。", "waiting_a_recovery_codes": "正在接收备份码…", - "recovery_codes_warning": "抄写这些号码,或者保存在安全的地方。这些号码不会再次显示。如果你无法访问你的 2FA app,也丢失了你的恢复码,你的账号就再也无法登录了。", + "recovery_codes_warning": "抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。", "authentication_methods": "身份验证方法", "scan": { "title": "扫一下", - "desc": "使用你的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", + "desc": "使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", "secret_code": "密钥" }, "verify": { - "desc": "要启用双因素验证,请把你的双因素验证 app 里的数字输入:" + "desc": "要启用双因素验证,请输入您的双因素验证 app 里的数字:" } }, "attachmentRadius": "附件", @@ -218,12 +218,12 @@ "avatarRadius": "头像", "background": "背景", "bio": "简介", - "block_export": "拉黑名单导出", - "block_export_button": "导出你的拉黑名单到一个 csv 文件", - "block_import": "拉黑名单导入", - "block_import_error": "导入拉黑名单出错", - "blocks_imported": "拉黑名单导入成功!需要一点时间来处理。", - "blocks_tab": "块", + "block_export": "屏蔽名单导出", + "block_export_button": "导出你的屏蔽名单到一个 csv 文件", + "block_import": "屏蔽名单导入", + "block_import_error": "导入屏蔽名单出错", + "blocks_imported": "屏蔽名单导入成功!需要一点时间来处理。", + "blocks_tab": "屏蔽", "btnRadius": "按钮", "cBlue": "蓝色(回复,关注)", "cGreen": "绿色(转发)", @@ -243,7 +243,7 @@ "delete_account": "删除账户", "delete_account_description": "永久删除你的帐号和所有数据。", "delete_account_error": "删除账户时发生错误,如果一直删除不了,请联系实例管理员。", - "delete_account_instructions": "在下面输入你的密码来确认删除账户", + "delete_account_instructions": "在下面输入您的密码来确认删除账户。", "avatar_size_instruction": "推荐的头像图片最小的尺寸是 150x150 像素。", "export_theme": "导出预置主题", "filtering": "过滤器", @@ -277,7 +277,7 @@ "invalid_theme_imported": "您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。", "limited_availability": "在您的浏览器中无法使用", "links": "链接", - "lock_account_description": "你需要手动审核关注请求", + "lock_account_description": "您需要手动审核关注请求", "loop_video": "循环视频", "loop_video_silent_only": "只循环没有声音的视频(例如:Mastodon 里的“GIF”)", "mutes_tab": "隐藏", @@ -292,7 +292,7 @@ "notification_visibility_mentions": "提及", "notification_visibility_repeats": "转发", "no_rich_text_description": "不显示富文本格式", - "no_blocks": "没有拉黑的", + "no_blocks": "没有屏蔽", "no_mutes": "没有隐藏", "hide_follows_description": "不要显示我所关注的人", "hide_followers_description": "不要显示关注我的人", @@ -338,7 +338,7 @@ "text": "文本", "theme": "主题", "theme_help": "使用十六进制代码(#rrggbb)来设置主题颜色。", - "theme_help_v2_1": "你也可以通过切换复选框来覆盖某些组件的颜色和透明。使用“清除所有”来清楚所有覆盖设置。", + "theme_help_v2_1": "您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。", "theme_help_v2_2": "某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。", "tooltipRadius": "提醒", "upload_a_photo": "上传照片", @@ -349,7 +349,7 @@ }, "notifications": "通知", "notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。", - "notification_blocks": "拉黑一个用户会停掉所有他的通知,等同于取消关注。", + "notification_blocks": "屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。", "enable_web_push_notifications": "启用 web 推送通知", "style": { "switcher": { @@ -364,7 +364,7 @@ "clear_opacity": "清除透明度", "load_theme": "加载主题", "help": { - "upgraded_from_v2": "PleromaFE 已升级,主题会和你记忆中的不太一样。", + "upgraded_from_v2": "PleromaFE 已升级,主题会与您记忆中的不太一样。", "older_version_imported": "您导入的文件来自旧版本的 FE。", "future_version_imported": "您导入的文件来自更高版本的 FE。", "v2_imported": "您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。", @@ -468,7 +468,7 @@ }, "fonts": { "_tab_label": "字体", - "help": "给用户界面的元素选择字体。选择 “自选”的你必须输入确切的字体名称。", + "help": "为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。", "components": { "interface": "界面", "input": "输入框", @@ -503,7 +503,7 @@ "notification_setting_filters": "过滤器", "domain_mutes": "域名", "changed_email": "邮箱修改成功!", - "change_email_error": "修改你的电子邮箱时发生错误", + "change_email_error": "修改您的电子邮箱时发生错误。", "change_email": "修改电子邮箱", "allow_following_move": "正在关注的账号迁移时自动重新关注", "notification_setting_privacy_option": "在通知推送中隐藏发送者和内容", @@ -539,7 +539,14 @@ "fun": "趣味", "useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些消息)", "chatMessageRadius": "聊天消息", - "greentext": "Meme 箭头" + "greentext": "Meme 箭头", + "virtual_scrolling": "优化时间线渲染", + "import_mutes_from_a_csv_file": "从 csv 文件导入隐藏名单", + "mutes_imported": "隐藏名单导入成功!处理它们将需要一段时间。", + "mute_import_error": "导入隐藏名单出错", + "mute_import": "隐藏名单导入", + "mute_export_button": "导出你的隐藏名单到一个 csv 文件", + "mute_export": "隐藏名单导出" }, "time": { "day": "{0} 天", @@ -609,7 +616,8 @@ "status_unavailable": "状态不可取得", "unbookmark": "取消书签", "bookmark": "书签", - "thread_muted_and_words": ",含有过滤词:" + "thread_muted_and_words": ",含有过滤词:", + "status_deleted": "该状态已被删除" }, "user_card": { "approve": "允许", @@ -636,9 +644,9 @@ "statuses": "状态", "subscribe": "订阅", "unsubscribe": "退订", - "unblock": "取消拉黑", - "unblock_progress": "取消拉黑中…", - "block_progress": "拉黑中…", + "unblock": "取消屏蔽", + "unblock_progress": "正在取消屏蔽…", + "block_progress": "正在屏蔽…", "unmute": "取消隐藏", "unmute_progress": "取消隐藏中…", "mute_progress": "隐藏中…", @@ -659,7 +667,7 @@ "disable_any_subscription": "完全禁止关注用户", "quarantine": "从联合实例中禁止用户帖子", "delete_user": "删除用户", - "delete_user_confirmation": "你确认吗?此操作无法撤销。" + "delete_user_confirmation": "你确定吗?此操作无法撤销。" }, "hidden": "已隐藏", "show_repeats": "显示转发", @@ -674,12 +682,12 @@ }, "user_reporting": { "title": "报告 {0}", - "add_comment_description": "此报告会发送给你的实例管理员。你可以在下面提供更多详细信息解释报告的缘由:", + "add_comment_description": "此报告会发送给您的实例管理员。您可以在下面提供更多详细信息解释报告的缘由:", "additional_comments": "其它信息", "forward_description": "这个账号是从另外一个服务器。同时发送一个副本到那里?", "forward_to": "转发 {0}", "submit": "提交", - "generic_error": "当处理你的请求时,发生了一个错误。" + "generic_error": "当处理您的请求时,发生了一个错误。" }, "who_to_follow": { "more": "更多", @@ -720,12 +728,12 @@ "password_reset": { "forgot_password": "忘记密码了?", "password_reset": "重置密码", - "instruction": "输入你的电邮地址或者用户名,我们将发送一个链接到你的邮箱,用于重置密码。", - "placeholder": "你的电邮地址或者用户名", - "check_email": "检查你的邮箱,会有一个链接用于重置密码。", + "instruction": "输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。", + "placeholder": "您的电邮地址或者用户名", + "check_email": "检查您的邮箱,会有一个链接用于重置密码。", "return_home": "回到首页", - "too_many_requests": "你触发了尝试的限制,请稍后再试。", - "password_reset_disabled": "密码重置已经被禁用。请联系你的实例管理员。", + "too_many_requests": "您达到了尝试次数的上限,请稍后再试。", + "password_reset_disabled": "密码重置已被禁用。请联系您的实例管理员。", "password_reset_required_but_mailer_is_disabled": "您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。", "password_reset_required": "您必须重置密码才能登陆。" }, @@ -736,7 +744,7 @@ }, "emoji": { "keep_open": "选择器保持打开", - "stickers": "贴图", + "stickers": "贴纸", "unicode": "Unicode 表情符号", "custom": "自定义表情符号", "add_emoji": "插入表情符号", @@ -748,22 +756,22 @@ "about": { "mrf": { "simple": { - "quarantine_desc": "本实例只会把公开状态发送非下列实例:", + "quarantine_desc": "对于下列实例,本实例只发送公开的状态,不发送其它状态:", "quarantine": "隔离", "reject_desc": "本实例不会接收来自下列实例的消息:", "reject": "拒绝", "accept_desc": "本实例只接收来自下列实例的消息:", - "simple_policies": "站规", + "simple_policies": "对于特定实例的策略", "accept": "接受", "media_removal": "移除媒体", "media_nsfw_desc": "本实例将来自以下实例的媒体强制设置为敏感内容:", "media_nsfw": "强制设置媒体为敏感内容", "media_removal_desc": "本实例移除了来自以下实例的媒体内容:", - "ftl_removal_desc": "该实例在从“全部已知网络”时间线上移除了:", + "ftl_removal_desc": "该实例在从“全部已知网络”时间线上移除了下列实例:", "ftl_removal": "从“全部已知网络”时间线上移除" }, "mrf_policies_desc": "MRF 策略会影响本实例的互通行为。以下策略已启用:", - "mrf_policies": "已启动 MRF 策略", + "mrf_policies": "已启动的 MRF 策略", "keyword": { "ftl_removal": "从“全部已知网络”时间线上移除", "keyword_policies": "关键词策略", @@ -771,7 +779,7 @@ "replace": "替换", "reject": "拒绝" }, - "federation": "联邦" + "federation": "联邦互通" }, "staff": "管理人员" }, From 54987b0bc88045ed365aab268ac3b27fe721f100 Mon Sep 17 00:00:00 2001 From: Ilja Date: Tue, 20 Oct 2020 10:45:05 +0000 Subject: [PATCH 003/306] Split up user guide * I split up the user guide into seperate section to make it more clear/orderly * I added a general overview page for the FE from where it links to the other sections that give more detailed information * I updated outdated information and added new information where I felt was required * I fixed broken links in other parts of the docs as well --- docs/CONFIGURATION.md | 4 +- docs/HACKING.md | 6 +- docs/USER_GUIDE.md | 207 ------------------ docs/{ => assets}/example_emoji.png | Bin docs/assets/example_markdown.png | Bin 0 -> 16249 bytes docs/index.md | 2 +- docs/user_guide/index.md | 44 ++++ .../posting_reading_basic_functions.md | 76 +++++++ docs/user_guide/settings.md | 116 ++++++++++ docs/user_guide/timelines.md | 13 ++ docs/user_guide/users_follow_mute_block.md | 11 + 11 files changed, 266 insertions(+), 213 deletions(-) delete mode 100644 docs/USER_GUIDE.md rename docs/{ => assets}/example_emoji.png (100%) create mode 100644 docs/assets/example_markdown.png create mode 100644 docs/user_guide/index.md create mode 100644 docs/user_guide/posting_reading_basic_functions.md create mode 100644 docs/user_guide/settings.md create mode 100644 docs/user_guide/timelines.md create mode 100644 docs/user_guide/users_follow_mute_block.md diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md index 14b0428f..dfc5f9dc 100644 --- a/docs/CONFIGURATION.md +++ b/docs/CONFIGURATION.md @@ -1,13 +1,13 @@ # Pleroma-FE configuration and customization for instance administrators -* *For user configuration, see [Pleroma-FE user guide](USER_GUIDE.md)* +* *For user configuration, see [Pleroma-FE user guide](../user_guide)* * *For local development server configuration, see [Hacking, tweaking, contributing](HACKING.md)* ## Where configuration is stored PleromaFE gets its configuration from several sources, in order of preference (the one above overrides ones below it) -1. `/api/statusnet/config.json` - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses `pleromafe` field of it. For more info on changing config on BE, look [here](https://docs-develop.pleroma.social/config.html#frontend_configurations) +1. `/api/statusnet/config.json` - this is generated on Backend and contains multiple things including instance name, char limit etc. It also contains FE/Client-specific data, PleromaFE uses `pleromafe` field of it. For more info on changing config on BE, look [here](../backend/configuration/cheatsheet.md#frontend_configurations) 2. `/static/config.json` - 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 [here](https://git.pleroma.social/pleroma/pleroma-fe/blob/develop/static/config.json). 3. Built-in defaults. Those are hard-coded defaults that are used when `/static/config.json` is not available and BE-provided configuration JSON is missing some JSON properties. ( [Code](https://git.pleroma.social/pleroma/pleroma-fe/blob/develop/src/modules/instance.js) ) diff --git a/docs/HACKING.md b/docs/HACKING.md index 783ff9e3..7f2964b4 100644 --- a/docs/HACKING.md +++ b/docs/HACKING.md @@ -25,7 +25,7 @@ This could be a bit trickier, you basically need steps 1-4 from *develop build* ### Replacing your instance's frontend with custom FE build -This is the most easiest way to use and test FE build: you just need to copy or symlink contents of `dist` folder into backend's [static directory](https://docs.pleroma.social/static_dir.html), by default it is located in `instance/static`, or in `/var/lib/pleroma/static` for OTP release installations, create it if it doesn't exist already. Be aware that running `yarn build` wipes the contents of `dist` folder. +This is the most easiest way to use and test FE build: you just need to copy or symlink contents of `dist` folder into backend's [static directory](../backend/configuration/static_dir.md), by default it is located in `instance/static`, or in `/var/lib/pleroma/static` for OTP release installations, create it if it doesn't exist already. Be aware that running `yarn build` wipes the contents of `dist` folder. ### Running production build locally or on a separate server @@ -67,9 +67,9 @@ server { ### API, Data, Operations -In 99% cases PleromaFE uses [MastoAPI](https://docs.joinmastodon.org/api/) with [Pleroma Extensions](https://docs-develop.pleroma.social/differences_in_mastoapi_responses.html) to fetch the data. The rest is either QvitterAPI leftovers or pleroma-exclusive APIs. QvitterAPI doesn't exactly have documentation and uses different JSON structure and sometimes different parameters and workflows, [this](https://twitter-api.readthedocs.io/en/latest/index.html) could be a good reference though. Some pleroma-exclusive API may still be using QvitterAPI JSON structure. +In 99% cases PleromaFE uses [MastoAPI](https://docs.joinmastodon.org/api/) with [Pleroma Extensions](../backend/API/differences_in_mastoapi_responses.md) to fetch the data. The rest is either QvitterAPI leftovers or pleroma-exclusive APIs. QvitterAPI doesn't exactly have documentation and uses different JSON structure and sometimes different parameters and workflows, [this](https://twitter-api.readthedocs.io/en/latest/index.html) could be a good reference though. Some pleroma-exclusive API may still be using QvitterAPI JSON structure. -PleromaFE supports both formats by transforming them into internal format which is basically QvitterAPI one with some additions and renaming. All data is passed trough [Entity Normalizer](/src/services/entity_normalizer/entity_normalizer.service.js) which can serve as a reference of API and what's actually used, it's also a host for all the hacks and data transformation. +PleromaFE supports both formats by transforming them into internal format which is basically QvitterAPI one with some additions and renaming. All data is passed trough [Entity Normalizer](https://git.pleroma.social/pleroma/pleroma-fe/-/blob/develop/src/services/entity_normalizer/entity_normalizer.service.js) which can serve as a reference of API and what's actually used, it's also a host for all the hacks and data transformation. For most part, PleromaFE tries to store all the info it can get in global vuex store - every user and post are passed trough updating mechanism where data is either added or merged with existing data, reactively updating the information throughout UI, so if in newest request user's post counter increased, it will be instantly updated in open user profile cards. This is also used to find users, posts and sometimes to build timelines and/or request parameters. diff --git a/docs/USER_GUIDE.md b/docs/USER_GUIDE.md deleted file mode 100644 index 241ad331..00000000 --- a/docs/USER_GUIDE.md +++ /dev/null @@ -1,207 +0,0 @@ -# Pleroma-FE user guide - -> Be prepared for breaking changes, unexpected behavior and this user guide becoming obsolete and wrong. - -> If there was no insanity -> -> it would be necessary to create it. -> -> --Catbag - -## Posting, reading, basic functions. - -After registering and logging in you're presented with your timeline in right column and new post form with timeline list and notifications in the left column. - -Posts will contain the text you are posting, but some content will be modified: - -1. Mentions: Mentions have the form of @user or @user@instance.tld. These will become links to the user's profile. In addition, the mentioned user will always get a notification about the post they have been mentioned in, so only mention users that you want to receive this message. -2. URLs: URLs like `http://example.com` will be automatically be turned into a clickable links. -3. Hashtags: Hashtags like #cofe will also be turned into links. - -**Depending on your instance some of the options might not be available or have different defaults** - -Let's clear up some basic stuff. When you post something it's called a **post** or it could be called a **status** or even a **toot** or a **prööt** depending on whom you ask. Post has body/content but it also has some other stuff in it - from attachments, visibility scope, subject line. -* **Emoji** are small images embedded in text, there are two major types of emoji: [unicode emoji](https://en.wikipedia.org/wiki/Emoji) and custom emoji. While unicode emoji are universal and standardized, they can appear differently depending on where you are using them or may not appear at all on older systems. Custom emoji are more *fun* kind - instance administrator can define many images as *custom emoji* for their users. This works very simple - custom emoji is defined by its *shortcode* and an image, so that any shortcode enclosed in colons get replaced with image if such shortcode exist. -Let's say there's `:pleroma:` emoji defined on instance. That means -> First time using :pleroma: pleroma! - -will become -> First time using ![pleroma](./example_emoji.png) pleroma! - -Note that you can only use emoji defined on your instance, you cannot "copy" someone else's emoji, and will have to ask your administrator to copy emoji from other instance to yours. -Lastly, there's two convenience options for emoji: an emoji picker (smiley face to the right of "submit" button) and autocomplete suggestions - when you start typing :shortcode: it will automatically try to suggest you emoj and complete the shortcode for you if you select one. **Note** that if emoji doesn't show up in suggestions nor in emoji picker it means there's no such emoji on your instance, if shortcode doesn't match any defined emoji it will appear as text. -* **Attachments** are fairly simple - you can attach any file to a post as long as the file is within maximum size limits. If you're uploading explicit material you can mark all of your attachments as sensitive (or add `#nsfw` tag) - it will hide the images and videos behind a warning so that it won't be displayed instantly. -* **Subject line** also known as **CW** (Content Warning) could be used as a header to the post and/or to warn others about contents of the post having something that might upset somebody or something among those lines. Several applications allow to hide post content leaving only subject line visible. Using a subject line will not mark your images as sensitive, you will have to do that explicitly (see above). -* **Visiblity scope** controls who will be able to see your posts. There are four scopes available: - -1. `Public`: This is the default, and some fediverse software like GNU Social only supports this. This means that your post is accessible by anyone and will be shown in the public timelines. -2. `Unlisted`: This is the same as public, but your post won't appear in the public timelines. The post will still be accessible by anyone who comes across it (for example, by looking at your profile) or by direct linking. They will also appear in public searches. -3. `Followers only`: This will show your post only to your followers. Only they will be able to interact with it. Be careful: When somebody follows you, they will be able to see all your previous `followers only` posts as well! If you want to restrict who can follow you, consider [locking your account down to only approved followers](#profle). -4. `Direct`: This will only send the message to the people explicitly mentioned in the post. - -A few things to consider about the security and usage of these scopes: - -- None of these options will change the fact that the messages are all saved in the database unencrypted. They will be visible to your server admin and to any other admin of a server who receives this post. Do not share information that you would consider secret or dangerous. Use encrypted messaging systems for these things. -- Follower-only posts can lead to fragmented conversations. If you post a follower-only post and somebody else replies to it with a follower-only post, only people following both of you will see the whole conversation thread. Everybody else will only see half of it. Keep this in mind and keep conversations public if possible. -- Changing scopes during a thread or adding people to a direct message will not retroactively make them see the whole conversation. If you add someone to a direct message conversation, they will not see the post that happened before they were mentioned. -* **Reply-to** if you are replying to someone, your post will also contain a note that your post is referring to the post you're replying to. Person you're replying to will receive a notification *even* if you remove them from mentioned people. You won't receive notifications when replying to your own posts, but it's useful to reply to your own posts to provide people some context if it's a follow-up to a previous post. There's a small "Reply to ..." label under post author's name which you can hover on to see what post it's referring to. - -Sometimes you may encounter posts that seem different than what they are supposed to. For example, you might see a direct message without any mentions in the text. This can happen because internally, the Fediverse has a different addressing mechanism similar to email, with `to` and `cc` fields. While these are not directly accessible in PleromaFE, other software in the Fediverse might generate those posts. Do not worry in these cases, these are normal and not a bug. - -#### Rich text - -By default new posts you make are plaintext, meaning you can't make text **bold** or add custom links or make lists or anything like that. However if your instance allows it you can use Markdown or BBCode or HTML to spice up your text, however there are certain limitations to what HTML tags and what features of Markdown you can use. - -this section will be expanded later - -### Other actions - -In addition to posting you can also *favorite* post also known as *liking* them and *repeat* posts (also known as *retweeting*, *boosting* and even *reprööting*). Favoriting a post increments a counter on it, notifies post author of your affection towards that post and also adds that post to your "favorited" posts list (in your own profile, "Favorites" tab). Reprööting a post does all that and also repeats this post to your followers and your profile page with a note "*user* repeated post". - -Your own posts can be deleted, but this will only reliably delete the post from your own instance. Other instances will receive a deletion notice, but there's no way to force them to actually delete a post. In addition, not all instances that contain the message might even receive the deletion notice, because they might be offline or not known to have the post because they received it through a repeat. Lastly, deletion notice might not reach certain frontends and clients - post will be visible for them until page refresh or cache clear, they probably won't be able to interact with it apart from replying to it (which will have reply-to mark missing). - -If you are a moderator, you can also delete posts by other people. If those people are on your instance, it will delete the post and send out the deletion notice to other servers. If they are not on your instance, it will just remove the post from your local instance. - -There's also an option to report a user via a post (if the feature is available on your instance) which could be used to notify your (and probably other instance's) admin that someone is being naughty. - -## Users - -When you see someone, you can click on their user picture to view their profile, and click on the userpic in that to see *full* profile. You can *follow* them, *mute* and *block* them. Following is self-explanatory, it adds them t your Home Timeline, lists you as a follower and gives you access to follower-only posts if they have any. Muting makes posts and notifications made by them very tiny, giving you an option to see the post if you're curious. However on clients other than PleromaFE their posts will be completely removed. *Blocking* a user removes them from your timeline and notifications and prevents them from following you (automatically unfollows them from you). - -Please note that some users can be "locked", meaning instead of following them you send a follow request they need to approve for you to become their follower. - -## Timelines - -Currently you have several timelines to browse trough: -* **Timeline** aka Home Timeline - this timeline contains all posts by people you follow and your own posts, as well as posts mentioning you directly. -* **Interactions** all interactions you've had with people on the network, basically same as notifications except grouped in convenient way - mentions separate from favorites with repeats separate from follows -* **Direct Messages** all posts with `direct` scope addressed to you or mentioning you. -* **Public Timelines** all posts made by users on instance you're on -* **The Whole Known Network** also known as **TWKN** or **Federated Timeline** - all posts on the network by everyone, almost. Due to nature of the network your instance may not know *all** the instances on the network, so only posts originating from known instances are shown there. - -## Your profile - -By clicking wrench icon above the post form you can access the profile edit or "user settings" screen. - -### Profle - -Here you can set up how you appear to other users among with some other settings: - -- Name: this is text that displays next to your avatar in posts. Please note that you **cannot** change your *@handle* -- Bio: this will be displayed under your profile - you can put anything you want there you want for everyone to see. -- Restrict your account to approved followers only: this makes your account "locked", when people follow you - you have to approve or deny their follow requests, this gives more control over who sees your followers only posts. -- Default visibility scope: this chooses your default post scope for new posts -- Strip rich text from all posts: this strips rich text formatting (bold/italics/lists etc) from all incoming posts. Will only affect newly fetched posts. - -If you're admin or moderator on your instance you also get "Show [role] badge in my profile" - this controls whether to show "Admin" or "Moderator** label on your profile page. - -**For all options mentioned above you have to click "Submit" button for changes to take place** - -- Avatar: this changes picture next to your posts. Your avatar shouldn't exceed 2 MiB (2097152 bytes) or it could cause problems with certain instances. -- Banner: this changes background on your profile card. Same as avatar it shouldn't exceed 2 MiB limit. -- Profile Background: this changes background picture for UI. It isn't shown to anyone else **yet**, but some time later it will be shown when viewing your profile. - -### Security - -Here you can change your password, revoke access tokens, configure 2-factor authentication (if available). - -### Notifications - -This screen allows more fine-grained control over what notifications to show to you based on whom it comes from - -### Data Import/Export - -This allows you to export and import a list of people you follow, in case instance's database gets reverted or if you want to move to another server. Note that you **CANNOT export/import list of people who *follow you***, they'll just need to follow you back after you move. - -### Blocks and Mutes - -These screens give access to full list of people you block/mute, useful for *un*blocking/*un*muting people because blocking/muting them most likely removes them out of your sight completely. - -## Other stuff - -By default you can see **ALL** posts made by other users on your Home Timeline, this contrast behavior of Twitter and Mastodon, which shows you only non-reply posts and replies to people you follow. You can set it up to replicate the said behavior, however the option is currently broken. - -You can view other people's profiles and search for users (top-right corner, person with a plus icon). Tag search is possible but not implemented properly yet, right now you can click on tag link in a post to see posts tagged with that post. - -You can also view posts you've favorited on your own profile, but you cannot see favorites by other people. - -Due to nature of how Pleroma (backend) operates you might see old posts appear as if they are new, this is because instance just learned about that post (i.e. your instance is younger that some other ones) and someone interacted with old post. Posts are sorted by date of when they are received, not date they have been posted because it's very easy to spoof the date, so a post claiming it "was" made in year 2077 could hand at top of your TL forever. - -# Customization and configuration - -Clicking on the cog icon in the upper right will go to the settings screen. - -## General - -### Interface - -- Language: Here you can set the interface language. The default language is the one that you set in your browser settings. -- Hide instance-specific panel: This hides the panel in the lower left that usually contains general information about the server. - -### Timeline - -- Hide posts of muted users: If this is set, 'muting' a user will completely hide their posts instead of collapsing them. -- Collapse posts with subjects: This will collapse posts that contain a subject, hiding their content. Subjects are also sometimes called content warnings. -- Enable automatic streaming of new posts when scrolled to the top: With this enabled, new posts will automatically stream in when you are scrolled to the top. Otherwise, you will see a button on the timeline that will let you display the new posts. -- Pause streaming when tab is not focused: This pauses the automatic streaming that the previous option enables when the tab is out of focus. This is useful if you don't want to miss any new posts. -- Enable automatic loading when scrolled to the bottom: When this is disabled, a button will be shown on the bottom of the timeline that will let you load older posts. -- Enable reply-link preview on hover: Status posts in the timeline and notifications contain links to replies and to the post they are a reply to. If this setting is enabled, hovering over that link will display that linked post in a small hovering overlay. - -### Composing - -- Copy scope when replying: When this is activated, the scope of a reply will be the same as the scope of the post it is replying to. This is useful to prevent accidentally moving private discussions to public, or vice versa. -- Always show subject field: Whether or not to display the 'subject' input field in the post form. If you do not want to use subjects, you can deactivate this. -- Copy subject when replying: This controls if the subject of a post will be copied from the post it is replying to. -- Post status content type: Selects the default content type of your post. The options are: Plain text, HTML, BBCode and Markdown. -- Minimize scope selection options: Selecting this will reduce the visibility scopes to 'direct', your default post scope and post scope of post you're replying to. -- Automatically hide New Post button: Mobile interface only: hide floating "New post" button when scrolling - -### Attachments - -- Hide attachments in timeline: Do not display attachments in timelines. They will still display in expanded conversations. This is useful to save bandwidth and for browsing in public. -- Hide attachments in conversations: Also hide attachments in expanded conversations. -- Maximum amount of thumbnails per post: Exactly that :) -- Enable clickthrough NSFW attachment hiding: Hide attachments that are marked as NSFW/sensitive behind a click-through image.` -- Preload images: This will preload the hidden images so that they display faster when clicking through. -- Open NSFW attachments with just one click: Directly open NSFW attachments in a maximised state instead of revealing the image thumbnail. -- Play-on-hover GIFs: With this activated, GIFs images and avatars will only be animated on mouse hover. Otherwise, they will be always animated. This is very useful if your timeline looks too flashy from people's animated avatars and eases the CPU load. -- Loop videos: Whether to loop videos indefinitely. -- Loop only videos without sound: Some instances will use videos without sounds instead of GIFs. This will make only those videos autoplay. -- Play videos directly in the media viewer: Play videos right in the timeline instead of opening it in a modal -- Don't crop the attachment in thumbnails: if enabled, images in attachments will be fit entirely inside the container instead of being zoomed in and cropped. - -### Notifications - -- Enable web push notifications: this enables Web Push notifications, to allow receiving notifications even when the page isn't opened, doesn't affect regular notifications. - -## Theme - -You can change the look and feel of Pleroma Frontend here. You can choose from several instance-provided presets and you can load one from file and save current theme to file. Before you apply new theme you can see what it will look like approximately in preview section. - -Themes engine was made to be easy to use while giving an option for powerful in-depth customization - you can just tweak colors on "Common" tab and leave everything else as is. - -If there's a little check box next to a color picker it means that color is optional and unless checked will be automatically picked based on some other color or defaults. - -For some features you can also adjust transparency of it by changing its opacity, you just need to tick checkbox next to it, otherwise it will be using default opacity. - -Contrast information is also provided - you can see how readable text is based on contrast between text color and background, icons under color pickers represent contrast rating based on [WCAG](https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast) - thumbs up means AAA rating (good), half-filled circle means AA rating (acceptable) and warning icon means it doesn't pass the minimal contrast requirement and probably will be less readable, especially for vision-challenged people, you can hover over icon to see more detailed information. *Please note* that if background is not opaque (opacity != 1) contrast will be measured based on "worst case scenario", i.e. behind semi-transparent background lies some solid color that makes text harder to read, this however is still inaccurate because it doesn't account that background can be noisy/busy, making text even harder to read. - -Apart from colors you can also tweak shadow and lighting, which is used mostly to give buttons proper relief based on their state, give panes their shade, make things glow etc. It's quite powerful, and basically provides somewhat convenient interface for [CSS Shadows](https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow). - -Another thing you can tweak is theme's roundness - some people like sharp edges, some want things more rounded. This is also used if you want circled or square avatars. - -Lastly, you can redefine fonts used in UI without changing fonts in your browser or system, this however requires you to enter font's full name and having that font installed on your system. - -## Filtering - -- Types of notifications to show: This controls what kind of notifications will appear in notification column and which notifications to get in your system outside the web page -- Replies in timeline: You may know that other social networks like Twitter will often not display replies to other people in your timeline, even if you are following the poster. Pleroma usually will show these posts to you to encourage conversation. If you do not like this behavior, you can change it here. -- Hide post statistics: This hides the number of favorites, number of replies, etc. -- Hide user statistics: This hides the number of followers, friends, etc. -- Muted words: A list of words that will be muted (i.e. displayed in a collapsed state) on the timeline and in notifications. An easy way to tune down noise in your timeline. Posts can always be expanded when you actually want to see them. -- Hide filtered statuses: Selecting this will hide the filtered / muted posts completely instead of collapsing them. - - -## Version - -Just displays the backend and frontend version. Useful to mention in bug reports. diff --git a/docs/example_emoji.png b/docs/assets/example_emoji.png similarity index 100% rename from docs/example_emoji.png rename to docs/assets/example_emoji.png diff --git a/docs/assets/example_markdown.png b/docs/assets/example_markdown.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9df753c8f58f5a8dcc2871f71d757936986566 GIT binary patch literal 16249 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 kemGE2gcy)h77yS~XelPH*Pgc^d+DL1#N). You can read more about it's basic functionality in the [Pleroma-FE User Guide](./USER_GUIDE.md). We also have [a guide for administrators](./CONFIGURATION.md) and for [hackers/contributors](./HACKING.md). +If your instance uses Pleroma-FE, you can acces it by going to your instance (e.g. ). You can read more about it's basic functionality in the [Pleroma-FE User Guide](./user_guide/). We also have [a guide for administrators](./CONFIGURATION.md) and for [hackers/contributors](./HACKING.md). diff --git a/docs/user_guide/index.md b/docs/user_guide/index.md new file mode 100644 index 00000000..ce4f69c2 --- /dev/null +++ b/docs/user_guide/index.md @@ -0,0 +1,44 @@ +# General overview + +> Be prepared for breaking changes, unexpected behavior and this user guide becoming obsolete and wrong. + +> If there was no insanity +> +> it would be necessary to create it. +> +> --Catbag + +Pleroma-FE is the default user-facing frontend for Pleroma. If your instance uses Pleroma-FE, you can access it by going to your instance (e.g. ). After logging in you will have two columns in front of you. Here we're going to keep it to the default behaviour, but some instances swap the left and right columns. If you're on such an instance what we refer to as the left column will be on your right and vice versa. + +### Left column + +- first block: This section is dedicated to [posting](posting_reading_basic_functions.md) +- second block: Here you can switch between the different views for the right column. +- Optional third block: This is the Instance panel that can be activated, but is deactivated by default. It's fully customisable by instance admins and by default has links to the Pleroma-FE and Mastodon-FE. +- fourth block: This is the Notifications block, here you will get notified whenever somebody mentions you, follows you, repeats or favorites one of your statuses + +### Right column +This is where the interesting stuff happens! There are different views depending on what you choose in the second block of the left panel. + +- **Timelines** Depending on the [timeline](timelines.md) you will see different statuses, but each status has a standard structure: + - Profile pic, name and link to profile. An optional left-arrow if it's a reply to another status (hovering will reveal the reply-to status). Clicking on the profile pic will uncollapse the user's profile where you can find information about the account and can [follow, mute or block the account](users_follow_mute_block.md). + - An arrow icon on the right side allows you to open the status on the instance where it's originating from. + - A `+` button on the rightmost side allows you to Expand/Collapse an entire discussion thread. + - The text of the status, including mentions and attachments. If you click on a mention, it will automatically open the profile page of that person. + - Four buttons (left to right): Reply, Repeat, Favorite and Add Reaction. The three dots next to it are a dropdown menu for extra options including simple moderation, bookmarking, deleting posts, pinning your own posts to your profile and more. +- **Interactions** shows all interactions you've had with people on the network, basically same as notifications except grouped in convenient way. +- **Chats** is the chat feature. You can find your friends and start chatting with them. At the moment chat are only one-on-one, but once groups are introduced groupchats will also be possible. +- **About** is the about-page and lists the staff, the TOS, activated MRF's, and enabled features + +### Top right + +- The magnifier icon opens the search screen + - You can search for statuses, people and hashtags. + - You can import statuses from remote servers by pasting the url to the post in the search field. + - If you want to search for users that your instance doesn't know about yet, you can search for them using the full `name@instance.tld` handle. You can also use the full url from their remote profile. +- The gear icon gives you [settings](settings.md) +- If you have admin rights, you'll see an icon that opens the admin interface +- The last icon is to log out + +### Bottom right +On the bottom right you have the Shoutbox. Here you can communicate with people on the same instance in realtime. It is local-only, very basic and will most probably be removed once the Chats functionality allows group chats. diff --git a/docs/user_guide/posting_reading_basic_functions.md b/docs/user_guide/posting_reading_basic_functions.md new file mode 100644 index 00000000..a5ae5ac8 --- /dev/null +++ b/docs/user_guide/posting_reading_basic_functions.md @@ -0,0 +1,76 @@ +# Posting, reading, basic functions. + +!!! warning + Depending on your instance some of the options might not be available or have different defaults + +After registering and logging in you're presented with your timeline in right column and new post form with timeline list and notifications in the left column. + +Posts will contain the text you are posting, but some content will be modified: + +1. Mentions: Mentions have the form of @user or @user@instance.tld. These will become links to the user's profile. In addition, the mentioned user will always get a notification about the post they have been mentioned in, so only mention users that you want to receive this message. +2. URLs: URLs like `http://example.com` will be automatically be turned into a clickable links. +3. Hashtags: Hashtags like #cofe will also be turned into links. +4. There is a default character limit of 5000 characters. + +Let's clear up some basic stuff. When you post something it's called a **post** or it could be called a **status** or even a **toot** or a **prööt** depending on whom you ask. Post has body/content but it also has some other stuff in it - from attachments, visibility scope, subject line... + +**Emoji** are small images embedded in text, there are two major types of emoji: [unicode emoji](https://en.wikipedia.org/wiki/Emoji) and custom emoji. While unicode emoji are universal and standardized, they can appear differently depending on where you are using them or may not appear at all on older systems. Custom emoji are a more *fun* kind - instance administrator can define many images as *custom emoji* for their users. This works very simple - custom emoji is defined by its *shortcode* and an image, so that any shortcode enclosed in colons get replaced with image if such shortcode exist. +Let's say there's a `:pleroma:` emoji defined on an instance. That means +> First time using :pleroma: pleroma! + +will become +> First time using ![pleroma](../assets/example_emoji.png) pleroma! + +Note that you can only use emoji defined on your instance, you cannot "copy" someone else's emoji, and will have to ask your administrator to copy emoji from other instance to yours. +Lastly, there's two convenience options for emoji: an emoji picker (smiley face to the right of "submit" button) and autocomplete suggestions - when you start typing :shortcode: it will automatically try to suggest you emoji and complete the shortcode for you if you select one. If emoji doesn't show up in suggestions nor in emoji picker it means there's no such emoji on your instance, if shortcode doesn't match any defined emoji it will appear as text. + +**Attachments** are fairly simple - you can attach any file to a post as long as the file is within maximum size limits. If you're uploading explicit material you can mark all of your attachments as sensitive (or add the `#nsfw` tag) - it will hide the images and videos behind a warning so that it won't be displayed instantly. + +**Subject line** also known as **CW** (Content Warning) could be used as a header to the post and/or to warn others about contents of the post having something that might upset somebody or something among those lines. Several applications allow to hide post content leaving only subject line visible. Using a subject line will not mark your images as sensitive, you will have to do that explicitly (see above). + +**Visiblity scope** controls who will be able to see your posts. There are four scopes available: + +1. `Public`: This is the default, and some fediverse software, like GNU Social, only supports this. This means that your post is accessible by anyone and will be shown in the public timelines. +2. `Unlisted`: This is the same as public, but your post won't appear in the public timelines. The post will still be accessible by anyone who comes across it (for example, by looking at your profile) or by direct linking. They will also appear in public searches. +3. `Followers only`: This will show your post only to your followers. Only they will be able to interact with it. Be careful: When somebody follows you, they will be able to see all your previous `followers only` posts as well! If you want to restrict who can follow you, consider [locking your account down to only approved followers](../settings#profile). +4. `Direct`: This will only send the message to the people explicitly mentioned in the post. + +A few things to consider about the security and usage of these scopes: + +- None of these options will change the fact that the messages are all saved in the database unencrypted. They will be visible to your server admin and to any other admin of a server who receives this post. Do not share information that you would consider secret or dangerous. Use encrypted messaging systems for these things. +- Follower-only posts can lead to fragmented conversations. If you post a follower-only post and somebody else replies to it with a follower-only post, only people following both of you will see the whole conversation thread. Everybody else will only see half of it. Keep this in mind and keep conversations public if possible. +- Changing scopes during a thread or adding people to a direct message will not retroactively make them see the whole conversation. If you add someone to a direct message conversation, they will not see the post that happened before they were mentioned. +* **Reply-to** if you are replying to someone, your post will also contain a note that your post is referring to the post you're replying to. Person you're replying to will receive a notification *even* if you remove them from mentioned people. You won't receive notifications when replying to your own posts, but it's useful to reply to your own posts to provide people some context if it's a follow-up to a previous post. There's a small "Reply to ..." label under post author's name which you can hover on to see what post it's referring to. + +Sometimes you may encounter posts that seem different than what they are supposed to. For example, you might see a direct message without any mentions in the text. This can happen because internally, the Fediverse has a different addressing mechanism similar to email, with `to` and `cc` fields. While these are not directly accessible in PleromaFE, other software in the Fediverse might generate those posts. Do not worry in these cases, these are normal and not a bug. + +## Rich text + +By default new posts you make are plaintext, meaning you can't make text **bold** or add custom links or make lists or anything like that. However if your instance allows it you can use Markdown or BBCode or HTML to spice up your text, however there are certain limitations to what HTML tags and what features of Markdown you can use. + +Here is a small example of some text in markdown. + +``` +This is an example of markdown text using **bold** and *cursive* text. +To get a newline we add two spaces at the end of the previous line. + +Let's also add a list + +* with +* some +* items +``` + +If you set the input-method to Markdown, and post this, it will look something like + +![example_markdown](../assets/example_markdown.png) + +## Other actions + +In addition to posting you can also *favorite* posts also known as *liking* them and *repeat* posts (also known as *retweeting*, *boosting* and even *reprööting*). Favoriting a post increments a counter on it, notifies the post author of your affection towards that post and also adds that post to your "favorited" posts list (in your own profile, "Favorites" tab). Reprööting a post does all that and also repeats this post to your followers and your profile page with a note "*user* repeated post". + +Your own posts can be deleted, but this will only reliably delete the post from your own instance. Other instances will receive a deletion notice, but there's no way to force them to actually delete a post. In addition, not all instances that contain the message might even receive the deletion notice, because they might be offline or not known to have the post because they received it through a repeat. Lastly, deletion notice might not reach certain frontends and clients - post will be visible for them until page refresh or cache clear, they probably won't be able to interact with it apart from replying to it (which will have reply-to mark missing). + +If you are a moderator, you can also delete posts by other people. If those people are on your instance, it will delete the post and send out the deletion notice to other servers. If they are not on your instance, it will just remove the post from your local instance. + +There's also an option to report a user's post which can be used to notify your (and optionally the other instance's) admin that someone is being naughty. diff --git a/docs/user_guide/settings.md b/docs/user_guide/settings.md new file mode 100644 index 00000000..ef9306c5 --- /dev/null +++ b/docs/user_guide/settings.md @@ -0,0 +1,116 @@ +# Settings + +On the top-right you will see a gear icon. Click it to open the settings. + +## General + +### Interface + +- **Interface language** is where you can set the interface language. The default language is the one that you set in your browser settings. +- **Hide instance-specific panel** hides the panel in the lower left that usually contains general information about the server. This will only be visible if your admin has activated this panel and is deactivated by default. + +### Timeline + +- **Hide posts of muted users** If this is set, 'muting' a user will completely hide their posts instead of collapsing them. +- **Collapse posts with subjects** This will collapse posts that contain a subject, hiding their content. Subjects are also sometimes called content warnings. +- **Enable automatic streaming of new posts when scrolled to the top** With this enabled, new posts will automatically stream in when you are scrolled to the top. Otherwise, you will see a button on the timeline that will let you display the new posts. +- **Pause streaming when tab is not focused** This pauses the automatic streaming that the previous option enables when the tab is out of focus. This is useful if you don't want to miss any new posts. +- **Enable automatic loading when scrolled to the bottom** When this is disabled, a button will be shown on the bottom of the timeline that will let you load older posts. +- **Enable reply-link preview on hover** Status posts in the timeline and notifications contain links to replies and to the post they are a reply to. If this setting is enabled, hovering over that link will display that linked post in a small hovering overlay. + +### Composing + +- **Copy scope when replying** makes the scope of a reply be the same as the scope of the post it is replying to. This is useful to prevent accidentally moving private discussions to public, or vice versa. +- **Always show subject field** Whether or not to display the 'subject' input field in the post form. If you do not want to use subjects, you can deactivate this. +- **Copy subject when replying** controls if the subject of a post will be copied from the post it is replying to. +- **Post status content type** selects the default content type of your post. The options are: Plain text, HTML, BBCode and Markdown. +- **Minimize scope selection options** will reduce the visibility scopes to 'direct', your default post scope and post scope of post you're replying to. +- **Automatically hide New Post button** hides the floating "New post" button when scrolling on mobile view. +- **Pad emoji with spaces when adding from picker** Will add spaces around emoji you select it from the picker. + +### Attachments + +- **Hide attachments in timeline** Do not display attachments in timelines. They will still display in expanded conversations. This is useful to save bandwidth and for browsing in public. +- **Hide attachments in conversations** Also hide attachments in expanded conversations. +- **Maximum amount of thumbnails per post** Exactly that :) +- **Enable clickthrough NSFW attachment hiding** Hide attachments that are marked as NSFW/sensitive behind a click-through image.` + - **Preload images** This will preload the hidden images so that they display faster when clicking through. + - **Open NSFW attachments with just one click** Directly open NSFW attachments in a maximised state instead of revealing the image thumbnail. +- **Play-on-hover GIFs** With this activated, GIFs images and avatars will only be animated on mouse hover. Otherwise, they will be always animated. This is very useful if your timeline looks too flashy from people's animated avatars and eases the CPU load. +- **Loop videos** Whether to loop videos indefinitely. + - **Loop only videos without sound** Some instances will use videos without sounds instead of GIFs. This will make only those videos autoplay. +- **Play videos directly in the media viewer** Play videos right in the timeline instead of opening it in a modal +- **Don't crop the attachment in thumbnails** if enabled, images in attachments will be fit entirely inside the container instead of being zoomed in and cropped. + +### Notifications + +- **Enable web push notifications** this enables Web Push notifications, to allow receiving notifications even when the page isn't opened, doesn't affect regular notifications. + +### Fun + +- **Meme arrows** will make `> greentext` be shown in green (using the "green" from the theme that is used). + +## Profile + +Here you can set up how you appear to other users among with some other settings: + +- **Name** is text that displays next to your avatar in posts. Please note that you **cannot** change your *@handle* +- **Bio** will be displayed under your profile - you can put anything you want there you want for everyone to see. +- **Restrict your account to approved followers only** makes your account "locked", when people follow you - you have to approve or deny their follow requests, this gives more control over who sees your followers only posts. +- **Default visibility scope** is your default post scope for new posts +- **Strip rich text from all posts** strips rich text formatting (bold/italics/lists etc) from all incoming posts. This will only affect newly fetched posts. + +If you're admin or moderator on your instance you also get **Show [role] badge in my profile** - this controls whether to show "Admin" or "Moderator** label on your profile page. + +**For all options mentioned above you have to click "Submit" button for changes to take place** + +- **Avatar** this changes picture next to your posts. Your avatar shouldn't exceed 2 MiB (2097152 bytes) or it could cause problems with certain instances. +- **Banner** this changes background on your profile card. Same as avatar it shouldn't exceed 2 MiB limit. +- **Profile Background** this changes background picture for UI. It isn't shown to anyone else *yet*, but some time later it will be shown when viewing your profisle. + +## Security + +Here you can change your password, revoke access tokens, configure 2-factor authentication (if available). + +## Filtering + +- **Types of notifications to show** This controls what kind of notifications will appear in notification column and which notifications to get in your system outside the web page +- **Replies in timeline** You may know that other social networks like Twitter will often not display replies to other people in your timeline, even if you are following the poster. Pleroma usually will show these posts to you to encourage conversation. If you do not like this behavior, you can change it here. +- **Hide post statistics** This hides the number of favorites, number of replies, etc. +- **Hide user statistics** This hides the number of followers, friends, etc. +- **Muted words** allows a list of words that will be muted (i.e. displayed in a collapsed state) on the timeline and in notifications. An easy way to tune down noise in your timeline. By default posts can be expanded if you want to see them. +- **Hide filtered statuses** will hide the filtered / muted posts completely instead of collapsing them. + +## Theme + +Here you can change the look and feel of Pleroma-FE. You can choose from several instance-provided presets and you can load one from file and save current theme to file. Before you apply new theme you can see what it will look like approximately in preview section. + +The themes engine was made to be easy to use while giving an option for powerful in-depth customization - you can just tweak colors on "Common" tab and leave everything else as is. + +If there's a little check box next to a color picker it means that color is optional and unless checked will be automatically picked based on some other color or defaults. + +For some features you can also adjust transparency of it by changing its opacity, you just need to tick checkbox next to it, otherwise it will be using default opacity. + +Contrast information is also provided - you can see how readable text is based on contrast between text color and background, icons under color pickers represent contrast rating based on [WCAG](https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast) - thumbs up means AAA rating (good), half-filled circle means AA rating (acceptable) and warning icon means it doesn't pass the minimal contrast requirement and probably will be less readable, especially for vision-challenged people, you can hover over icon to see more detailed information. *Please note* that if background is not opaque (opacity != 1) contrast will be measured based on "worst case scenario", i.e. behind semi-transparent background lies some solid color that makes text harder to read, this however is still inaccurate because it doesn't account that background can be noisy/busy, making text even harder to read. + +Apart from colors you can also tweak shadow and lighting, which is used mostly to give buttons proper relief based on their state, give panes their shade, make things glow etc. It's quite powerful, and basically provides somewhat convenient interface for [CSS Shadows](https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow). + +Another thing you can tweak is theme's roundness - some people like sharp edges, some want things more rounded. This is also used if you want circled or square avatars. + +Lastly, you can redefine fonts used in UI without changing fonts in your browser or system, this however requires you to enter font's full name and having that font installed on your system. + +## Notifications + +This screen allows more fine-grained control over what notifications to show to you based on whom it comes from. + +## Data Import/Export + +This allows you to export and import a list of people you follow and block, in case instance's database gets reverted or if you want to move to another server. Note that you **CANNOT export/import list of people who *follow you***, they'll need to follow you back themselves. + +## Mutes and Blocks + +These screens give access to full list of people you block/mute, useful for *un*blocking/*un*muting people because blocking/muting them most likely removes them out of your sight completely. + +## Version + +Just displays the backend and frontend version. Useful to mention in bug reports. diff --git a/docs/user_guide/timelines.md b/docs/user_guide/timelines.md new file mode 100644 index 00000000..d0ad95a1 --- /dev/null +++ b/docs/user_guide/timelines.md @@ -0,0 +1,13 @@ +# Timelines + +You have several timelines to browse trough + +- **Timeline** aka Home Timeline - this timeline contains all posts by people you follow and your own posts, as well as posts mentioning you directly. +- **Bookmarks** all the posts you've bookmarked. You can bookmark a post by clicking the three dots on the bottom right of the post and choose Bookmark. +- **Direct Messages** all posts with `direct` scope addressed to you or mentioning you. +- **Public Timelines** all public posts made by users on the instance you're on +- **The Whole Known Network** also known as **TWKN** or **Federated Timeline** - all public posts known by your instance. Due to nature of the network your instance may not know *all* the posts on the network, so only posts known by your instance are shown there. + +Note that by default you will see all posts made by other users on your Home Timeline, this contrast behavior of Twitter and Mastodon, which shows you only non-reply posts and replies to people you follow. You can change said behavior in the [settings](settings.md#filtering). + +By default instances will try to send activities (e.g. posts, favorites, etc.) up to 7 days or until the target server received them. For this reason posts that are up to 7 days old and your server didn't know about yet can pop up on your timeline. This is the default behaviour and can be changed by your admin. diff --git a/docs/user_guide/users_follow_mute_block.md b/docs/user_guide/users_follow_mute_block.md new file mode 100644 index 00000000..530b98a4 --- /dev/null +++ b/docs/user_guide/users_follow_mute_block.md @@ -0,0 +1,11 @@ +# Users: follow, mute, block + +When you see someone, you can click on their user picture to view their profile, and click on the userpic in that to see *full* profile. You can **follow** them, **mute** and **block** them. + +**Following** is self-explanatory, it adds them to your Home Timeline, lists you as a follower and gives you access to follower-only posts if they have any. + +**Muting** collapses posts and notifications made by them, giving you an option to see the post if you're curious. Clients other than PleromaFE may completely remove their posts. + +**Blocking** a user removes them from your timeline and notifications and prevents them from following you (automatically unfollows them from you). + +Please note that some users can be "locked", meaning instead of following them you send a follow request they need to approve for you to become their follower. From cf65ecb99d932f42d6efd3e493a374b3d48fa2c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Miko=C5=82ajczak?= Date: Tue, 20 Oct 2020 15:00:22 +0000 Subject: [PATCH 004/306] Translated using Weblate (Polish) Currently translated at 100.0% (669 of 669 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/pl/ --- src/i18n/pl.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/pl.json b/src/i18n/pl.json index dfa0729d..67cf38a5 100644 --- a/src/i18n/pl.json +++ b/src/i18n/pl.json @@ -666,7 +666,8 @@ "hide_full_subject": "Ukryj cały temat", "show_full_subject": "Pokaż cały temat", "thread_muted_and_words": ", ma słowa:", - "thread_muted": "Wątek wyciszony" + "thread_muted": "Wątek wyciszony", + "status_deleted": "Ten wpis został usunięty" }, "user_card": { "approve": "Przyjmij", From 38142182774ea772aacc88f26586512d6279267f Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 19 Oct 2020 19:38:49 +0300 Subject: [PATCH 005/306] Some initial work on replacing icons with FA5 --- package.json | 4 + src/App.scss | 9 +- src/components/emoji_input/emoji_input.js | 9 + src/components/emoji_input/emoji_input.vue | 2 +- src/components/emoji_picker/emoji_picker.js | 16 +- src/components/emoji_picker/emoji_picker.scss | 2 +- src/components/emoji_picker/emoji_picker.vue | 4 +- src/components/extra_buttons/extra_buttons.js | 4 + .../extra_buttons/extra_buttons.vue | 6 +- .../favorite_button/favorite_button.js | 14 +- .../favorite_button/favorite_button.vue | 33 ++-- src/components/media_upload/media_upload.js | 8 + src/components/media_upload/media_upload.vue | 10 +- src/components/nav_panel/nav_panel.js | 23 +++ src/components/nav_panel/nav_panel.vue | 160 +++++++++--------- src/components/poll/poll_form.js | 12 ++ src/components/poll/poll_form.vue | 16 +- .../post_status_form/post_status_form.js | 17 ++ .../post_status_form/post_status_form.vue | 31 ++-- src/components/react_button/react_button.js | 4 + src/components/react_button/react_button.vue | 6 +- src/components/reply_button/reply_button.js | 4 + src/components/reply_button/reply_button.vue | 28 ++- .../retweet_button/retweet_button.js | 8 +- .../retweet_button/retweet_button.vue | 48 ++++-- .../scope_selector/scope_selector.js | 15 ++ .../scope_selector/scope_selector.vue | 50 +++--- src/components/status/status.js | 49 +++++- src/components/status/status.scss | 26 +-- src/components/status/status.vue | 70 ++++---- src/components/timeline_menu/timeline_menu.js | 18 ++ .../timeline_menu/timeline_menu.vue | 32 ++-- src/main.js | 4 + yarn.lock | 31 ++++ 34 files changed, 528 insertions(+), 245 deletions(-) diff --git a/package.json b/package.json index 75d9ee56..6bc285c8 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,10 @@ "dependencies": { "@babel/runtime": "^7.7.6", "@chenfengyuan/vue-qrcode": "^1.0.0", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-regular-svg-icons": "^5.15.1", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@fortawesome/vue-fontawesome": "^2.0.0", "body-scroll-lock": "^2.6.4", "chromatism": "^3.0.0", "cropperjs": "^1.4.3", diff --git a/src/App.scss b/src/App.scss index e1e1bdd0..d34698e2 100644 --- a/src/App.scss +++ b/src/App.scss @@ -318,7 +318,7 @@ option { } } -i[class*=icon-] { +i[class*=icon-], .svg-inline--fa { color: $fallback--icon; color: var(--icon, $fallback--icon); } @@ -808,7 +808,12 @@ nav { } .button-icon { - font-size: 1.2em; + &i, + &.svg-inline--fa.fa-lg { + display: inline-block; + padding: 0 0.3em; + font-size: 1.1em; + } } @keyframes shakeError { diff --git a/src/components/emoji_input/emoji_input.js b/src/components/emoji_input/emoji_input.js index f0123447..87303d08 100644 --- a/src/components/emoji_input/emoji_input.js +++ b/src/components/emoji_input/emoji_input.js @@ -3,6 +3,15 @@ import EmojiPicker from '../emoji_picker/emoji_picker.vue' import { take } from 'lodash' import { findOffset } from '../../services/offset_finder/offset_finder.service.js' +import { library } from '@fortawesome/fontawesome-svg-core' +import { + faSmileBeam +} from '@fortawesome/free-regular-svg-icons' + +library.add( + faSmileBeam +) + /** * EmojiInput - augmented inputs for emoji and autocomplete support in inputs * without having to give up the comfort of and