mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2026-01-02 11:33:15 -06:00
Merge branch 'main' into account-featured_tags
This commit is contained in:
commit
cf925b2039
278 changed files with 10824 additions and 4223 deletions
|
|
@ -167,3 +167,11 @@ Links to the set contact account and/or email address will appear on the footer
|
|||
The selected **contact user** must be an active (not suspended) admin and/or moderator on the instance.
|
||||
|
||||
If you're on a single-user instance and you give admin privileges to your main account, you can just fill in your own username here; you don't need to make a separate admin account just for this.
|
||||
|
||||
### Instance Custom CSS
|
||||
|
||||
custom CSS allows you to further customize the way your instance looks when visited through a browser.
|
||||
|
||||
This custom CSS will be applied to all pages of your instance. Users themes and CSS still take precedence over this customization.
|
||||
|
||||
See the [Custom CSS](./custom_css.md) page for some tips on writing custom CSS for your instance.
|
||||
|
|
|
|||
|
|
@ -1570,6 +1570,10 @@ definitions:
|
|||
$ref: '#/definitions/instanceV1Configuration'
|
||||
contact_account:
|
||||
$ref: '#/definitions/account'
|
||||
custom_css:
|
||||
description: Custom CSS for the instance.
|
||||
type: string
|
||||
x-go-name: CustomCSS
|
||||
debug:
|
||||
description: Whether or not instance is running in DEBUG mode. Omitted if false.
|
||||
type: boolean
|
||||
|
|
@ -1750,6 +1754,10 @@ definitions:
|
|||
$ref: '#/definitions/instanceV2Configuration'
|
||||
contact:
|
||||
$ref: '#/definitions/instanceV2Contact'
|
||||
custom_css:
|
||||
description: Instance Custom Css
|
||||
type: string
|
||||
x-go-name: CustomCSS
|
||||
debug:
|
||||
description: Whether or not instance is running in DEBUG mode. Omitted if false.
|
||||
type: boolean
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## Where's the user interface?
|
||||
|
||||
GoToSocial is just a bare server for the most part and is designed to be used thru external applications. [Semaphore](https://semaphore.social/) in the browser, [Tusky](https://tusky.app/) for Android and [Feditext](https://github.com/feditext/feditext) for iOS, iPadOS and macOS are the best-supported. Anything that supports the Mastodon API should work, other than the features GoToSocial doesn't yet have. Permalinks and profile pages are served directly through GoToSocial as well as the settings panel, but most interaction goes through the apps.
|
||||
GoToSocial is just a bare server for the most part and is designed to be used thru external applications. [Pinafore](https://pinafore.social/) in the browser, [Tusky](https://tusky.app/) for Android and [Feditext](https://github.com/feditext/feditext) for iOS, iPadOS and macOS are the best-supported. Anything that supports the Mastodon API should work, other than the features GoToSocial doesn't yet have. Permalinks and profile pages are served directly through GoToSocial as well as the settings panel, but most interaction goes through the apps.
|
||||
|
||||
## Why aren't my posts showing up on my profile page?
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# WebSocket
|
||||
|
||||
GoToSocial uses the secure [WebSocket protocol](https://en.wikipedia.org/wiki/WebSocket) (aka `wss`) to allow for streaming updates of statuses and notifications via client apps like Semaphore.
|
||||
GoToSocial uses the secure [WebSocket protocol](https://en.wikipedia.org/wiki/WebSocket) (aka `wss`) to allow for streaming updates of statuses and notifications via client apps like Pinafore.
|
||||
|
||||
In order to use this functionality, you need to ensure that whatever proxy you've configured GoToSocial to run behind allows WebSocket connections through.
|
||||
|
||||
|
|
|
|||
|
|
@ -4980,7 +4980,7 @@ paths:
|
|||
- description: 此表情的代码,将被实例居民用于选定对应表情。此代码在实例上必须是唯一的。
|
||||
in: formData
|
||||
name: shortcode
|
||||
pattern: \w{2,30}
|
||||
pattern: \w{1,30}
|
||||
required: true
|
||||
type: string
|
||||
- description: 此表情的 png 或 gif 图像。动画 png 也可以!为了确保与其他 fedi 实现的兼容性,默认情况下表情大小限制为 50kb。
|
||||
|
|
@ -5130,7 +5130,7 @@ paths:
|
|||
- description: 用于表情的代码,将被实例居民用于选定表情。此代码在实例上必须是唯一的。仅适用于 `copy` 操作类型。
|
||||
in: formData
|
||||
name: shortcode
|
||||
pattern: \w{2,30}
|
||||
pattern: \w{1,30}
|
||||
type: string
|
||||
- description: 此表情的新 png 或 gif 图像。动画 png 也可以!为了确保与其他 fedi 实现的兼容性,默认情况下表情大小限制为 50kb。仅适用于 **本站** 表情。
|
||||
in: formData
|
||||
|
|
@ -5639,6 +5639,417 @@ paths:
|
|||
summary: 吊销实例密钥
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_drafts:
|
||||
get:
|
||||
description: |-
|
||||
该端点将返回按时间倒序排序(最新优先),并带有连续 ID 的域名权限草案(ID 值越大,草稿越新)。可以通过返回的 Link 标头解析下一页与上一页查询。
|
||||
|
||||
示例:
|
||||
```
|
||||
<https://example.org/api/v1/admin/domain_permission_drafts?limit=20&max_id=01FC0SKA48HNSVR6YKZCQGS2V8>; rel="next", <https://example.org/api/v1/admin/domain_permission_drafts?limit=20&min_id=01FC0SKW5JK2Q4EVAV2B462YY0>; rel="prev"
|
||||
````
|
||||
operationId: domainPermissionDraftsGet
|
||||
parameters:
|
||||
- description: 仅显示给定订阅 ID 创建的草案。
|
||||
in: query
|
||||
name: subscription_id
|
||||
type: string
|
||||
- description: 仅显示针对特定域名的草案。
|
||||
in: query
|
||||
name: domain
|
||||
type: string
|
||||
- description: 筛选“屏蔽”与“放行”类型的草案。
|
||||
in: query
|
||||
name: permission_type
|
||||
type: string
|
||||
- description: 仅返回早于给定 max ID 的条目(用于向下分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: max_id
|
||||
type: string
|
||||
- description: 仅返回晚于给定 since ID 的条目(用于向上分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: since_id
|
||||
type: string
|
||||
- description: 仅返回相邻且晚于给定 min ID 的条目(用于向上分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: min_id
|
||||
type: string
|
||||
- default: 20
|
||||
description: 要返回的条目数量。
|
||||
in: query
|
||||
maximum: 100
|
||||
minimum: 1
|
||||
name: limit
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 域名权限草案。
|
||||
headers:
|
||||
Link:
|
||||
description: 下一查询与上一查询的链接。
|
||||
type: string
|
||||
schema:
|
||||
items:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
type: array
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止
|
||||
"404":
|
||||
description: not found 未找到
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 查看域名权限草案。
|
||||
tags:
|
||||
- admin
|
||||
post:
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
operationId: domainPermissionDraftCreate
|
||||
parameters:
|
||||
- description: 该草案要针对的域名。
|
||||
in: formData
|
||||
name: domain
|
||||
type: string
|
||||
- description: 草案类型为“放行”或“屏蔽”。
|
||||
in: formData
|
||||
name: permission_type
|
||||
type: string
|
||||
- description: 对外公开展示时混淆具体域名。例如:`example.org` 将变为类似 `ex***e.org` 的字符串。
|
||||
in: formData
|
||||
name: obfuscate
|
||||
type: boolean
|
||||
- description: 对此域名权限的公开评注。若您选择分享此权限设定,此评注将与权限条目一起显示。
|
||||
in: formData
|
||||
name: public_comment
|
||||
type: string
|
||||
- description: 对此域名权限的私人评注。仅显示给其他管理员,因此这是一个可用于记录为什么某个域名最终被添加此权限设定的有用的内部手段。
|
||||
in: formData
|
||||
name: private_comment
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 新创建的域名权限草案。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"409":
|
||||
description: conflict 冲突
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 使用给定参数创建一条域名权限草案。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_drafts/{id}:
|
||||
get:
|
||||
operationId: domainPermissionDraftGet
|
||||
parameters:
|
||||
- description: 域名权限草案的 ID。
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 域名权限草案。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"404":
|
||||
description: not found 未找到
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 获取具有给定 ID 的域名权限草案。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_drafts/{id}/accept:
|
||||
post:
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
operationId: domainPermissionDraftAccept
|
||||
parameters:
|
||||
- description: 域名权限草案的 ID。
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
- default: false
|
||||
description: 若已经存在一条具有相同域名与权限设定类型的草案,使用新草案的字段覆盖现有权限设定。
|
||||
in: formData
|
||||
name: overwrite
|
||||
type: boolean
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 新创建的域名权限草案。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"409":
|
||||
description: conflict 冲突
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 接受一条域名权限草案,将其转换为会得到强制执行的域名权限。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_drafts/{id}/remove:
|
||||
post:
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
operationId: domainPermissionDraftRemove
|
||||
parameters:
|
||||
- description: 域名权限草案的 ID。
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
- default: false
|
||||
description: 删除此域名权限草案时,为目标域名创建一个域名排除条目,以确保之后不会为此域名创建草案。
|
||||
in: formData
|
||||
name: exclude_target
|
||||
type: boolean
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 被移除的域名权限草案。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"409":
|
||||
description: conflict 冲突
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 移除一条域名权限草案,可选择忽略所有之后的针对给定域名的草案。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_excludes:
|
||||
get:
|
||||
description: |-
|
||||
返回按时间倒序排序(新创建的条目优先),并带有连续 ID 的域名权限排除条目(ID 值越大,排除条目越新)。可以通过返回的 Link 标头解析下一页与上一页查询。
|
||||
示例:
|
||||
```
|
||||
<https://example.org/api/v1/admin/domain_permission_excludes?limit=20&max_id=01FC0SKA48HNSVR6YKZCQGS2V8>; rel="next", <https://example.org/api/v1/admin/domain_permission_excludes?limit=20&min_id=01FC0SKW5JK2Q4EVAV2B462YY0>; rel="prev"
|
||||
```
|
||||
operationId: domainPermissionExcludesGet
|
||||
parameters:
|
||||
- description: 仅返回针对给定域名的排除条目。
|
||||
in: query
|
||||
name: domain
|
||||
type: string
|
||||
- description: 仅返回比给定 max ID 新的条目(用于向下分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: max_id
|
||||
type: string
|
||||
- description: 仅返回比给定 since ID 新的条目(用于向上分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: since_id
|
||||
type: string
|
||||
- description: 仅返回比给定 min ID 相邻且更新的条目(用于向上分页)。具有对应 ID 的条目不会包含在响应中。
|
||||
in: query
|
||||
name: min_id
|
||||
type: string
|
||||
- default: 20
|
||||
description: 要返回的条目数量。
|
||||
in: query
|
||||
maximum: 100
|
||||
minimum: 1
|
||||
name: limit
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 域名权限排除条目。
|
||||
headers:
|
||||
Link:
|
||||
description: 下一查询与上一查询的链接。
|
||||
type: string
|
||||
schema:
|
||||
items:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
type: array
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"404":
|
||||
description: not found 未找到
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 查看域名权限排除条目。
|
||||
tags:
|
||||
- admin
|
||||
post:
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
description: |-
|
||||
被排除的域名(及其子域名)在导入或订阅域名权限列表时不会被自动屏蔽或放行。
|
||||
您仍然可以为被排除的域名手动创建域名屏蔽条目或域名放行条目,被排除之后,与该域名关联的任何的已有或新创建的域名屏蔽条目或域名放行条目都将被继续执行。
|
||||
operationId: domainPermissionExcludeCreate
|
||||
parameters:
|
||||
- description: 要创建权限排除的域名。
|
||||
in: formData
|
||||
name: domain
|
||||
type: string
|
||||
- description: 对该域名排除条目的私密评论。
|
||||
in: formData
|
||||
name: private_comment
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 新创建的域名排除条目。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"409":
|
||||
description: conflict 冲突
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 使用给定参数创建一个域名权限排除条目。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/domain_permission_excludes/{id}:
|
||||
delete:
|
||||
operationId: domainPermissionExcludeDelete
|
||||
parameters:
|
||||
- description: 该域名权限排除条目的 ID。
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 被移除的域名权限排除条目。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"400":
|
||||
description: bad request 无效请求
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"409":
|
||||
description: conflict 冲突
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 移除一个域名权限排除条目。
|
||||
tags:
|
||||
- admin
|
||||
get:
|
||||
operationId: domainPermissionExcludeGet
|
||||
parameters:
|
||||
- description: 域名权限排除条目的 ID。
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: 域名权限排除条目。
|
||||
schema:
|
||||
$ref: '#/definitions/domainPermission'
|
||||
"401":
|
||||
description: unauthorized 未授权
|
||||
"403":
|
||||
description: forbidden 禁止访问
|
||||
"404":
|
||||
description: not found 未找到
|
||||
"406":
|
||||
description: not acceptable 不可接受
|
||||
"500":
|
||||
description: internal server error 服务器内部错误
|
||||
security:
|
||||
- OAuth2 Bearer:
|
||||
- admin
|
||||
summary: 获取具有给定 ID 的域名权限排除。
|
||||
tags:
|
||||
- admin
|
||||
/api/v1/admin/email/test:
|
||||
post:
|
||||
consumes:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# 存储
|
||||
|
||||
When configuring an object storage backend, the `storage-s3-endpoint` **must not** include the bucket name. That's what `s3-bucket-name` is for. Using subfolders in a bucket isn't currently supported.
|
||||
|
||||
配置对象存储后端时,`storage-s3-endpoint` **不得** 包含存储桶名称。`s3-bucket-name`负责配置存储桶名称。目前不支持使用特定存储桶的子目录作为存储后端。
|
||||
|
||||
## 设置
|
||||
|
||||
```yaml
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## 用户界面在哪?
|
||||
|
||||
GoToSocial 的大部分内容只是一个裸服务端,用于通过第三方应用程序进行使用。可通过 [Semaphore](https://semaphore.social/) 在浏览器使用,可通过 [Tusky](https://tusky.app/) 在 Android 使用,可通过 [Feditext](https://github.com/feditext/feditext) 在 iOS、iPadOS 和 macOS 使用。这些应用程序兼容性最好。任何由 Mastodon API 提供的实例功能都应该可以工作,除非它们是 GoToSocial 尚不具备的功能。永久链接和个账户页是通过 GoToSocial 直接提供的,设置面板也是如此,但大多数交互都是通过应用程序完成的。
|
||||
GoToSocial 的大部分内容只是一个裸服务端,用于通过第三方应用程序进行使用。可通过 [Pinafore](https://pinafore.social/) 在浏览器使用,可通过 [Tusky](https://tusky.app/) 在 Android 使用,可通过 [Feditext](https://github.com/feditext/feditext) 在 iOS、iPadOS 和 macOS 使用。这些应用程序兼容性最好。任何由 Mastodon API 提供的实例功能都应该可以工作,除非它们是 GoToSocial 尚不具备的功能。永久链接和个账户页是通过 GoToSocial 直接提供的,设置面板也是如此,但大多数交互都是通过应用程序完成的。
|
||||
|
||||
## 为什么我的贴文没有显示在我的账户页面上?
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# WebSocket
|
||||
|
||||
GoToSocial 使用安全的 [WebSocket 协议](https://en.wikipedia.org/wiki/WebSocket)(即 `wss`)来通过客户端应用程序(如 Semaphore)实现贴文和通知的实时更新。
|
||||
GoToSocial 使用安全的 [WebSocket 协议](https://en.wikipedia.org/wiki/WebSocket)(即 `wss`)来通过客户端应用程序(如 Pinafore)实现贴文和通知的实时更新。
|
||||
|
||||
为了使用此功能,你需要确保配置 GoToSocial 所在的代理允许 WebSocket 连接通过。
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
- [浏览代码结构](#浏览代码结构)
|
||||
- [风格/代码检查/格式化](#风格代码检查格式化)
|
||||
- [测试](#测试)
|
||||
- [独立测试环境与 Semaphore](#独立测试环境与-semaphore)
|
||||
- [独立测试环境与 Pinafore](#独立测试环境与-pinafore)
|
||||
- [运行自动化测试](#运行自动化测试)
|
||||
- [SQLite](#sqlite)
|
||||
- [Postgres](#postgres)
|
||||
|
|
@ -400,9 +400,9 @@ GoToSocial 提供了一个 [testrig](https://github.com/superseriousbusiness/got
|
|||
|
||||
没有模拟的一个东西是数据库接口,因为使用内存中的 SQLite 数据库比模拟所有东西要简单得多。
|
||||
|
||||
#### 独立测试环境与 Semaphore
|
||||
#### 独立测试环境与 Pinafore
|
||||
|
||||
你可以启动一个在本地主机运行的独立测试服务器 testrig,可以通过 [Semaphore](https://github.com/NickColley/semaphore/) 连接。
|
||||
你可以启动一个在本地主机运行的独立测试服务器 testrig,可以通过 [Pinafore](https://github.com/NickColley/pinafore/) 连接。
|
||||
|
||||
要做到这一点,首先用 `DEBUG=1 ./scripts/build.sh` 构建 gotosocial 二进制文件。
|
||||
|
||||
|
|
@ -412,14 +412,14 @@ GoToSocial 提供了一个 [testrig](https://github.com/superseriousbusiness/got
|
|||
DEBUG=1 ./gotosocial testrig start
|
||||
```
|
||||
|
||||
要在本地开发模式下运行 Semaphore,首先克隆 [Semaphore](https://github.com/NickColley/semaphore/) 存储库,然后在克隆的目录中运行以下命令:
|
||||
要在本地开发模式下运行 Pinafore,首先克隆 [Pinafore](https://github.com/nolanlawson/pinafore/) 存储库,然后在克隆的目录中运行以下命令:
|
||||
|
||||
```bash
|
||||
yarn # 安装依赖
|
||||
yarn run dev
|
||||
```
|
||||
|
||||
Semaphore 实例将在 `localhost:4002` 上启动。
|
||||
Pinafore 实例将在 `localhost:4002` 上启动。
|
||||
|
||||
要连接到 testrig,导航至 `http://localhost:4002`,并将在实例域名栏输入 `localhost:8080`。
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ Mastodon API 已成为客户端与联邦宇宙服务端通信的事实标准,
|
|||
大多数实现 Mastodon API 的应用程序都应该可以使用 GoToSocial,但以下这些优秀的应用程序已经过测试,可与 GoToSocial 可靠地配合使用:
|
||||
|
||||
* [Tusky](https://tusky.app/) 适用于 Android
|
||||
* [Semaphore](https://semaphore.social/) 适用于浏览器
|
||||
* [Pinafore](https://pinafore.social/) 适用于浏览器
|
||||
* [Feditext](https://github.com/feditext/feditext) (beta) 适用于 iOS, iPadOS 和 macOS
|
||||
|
||||
如果你之前通过第三方应用来使用 Mastodon,使用 GoToSocial 将是轻而易举的。
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ GoToSocial 为贴文提供 Mastodon 风格的隐私设置。从最私密到最
|
|||
|
||||
### 互关可见
|
||||
|
||||
!!! warning
|
||||
目前暂时无法将帖文可见性设为“互关可见”。
|
||||
|
||||
`互关可见` 的贴文只会显示给贴文作者和与作者*互相关注*的人。换句话说,只有在满足两个条件时,其他人才能看到:
|
||||
|
||||
1. 其他账户关注贴文作者。
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 229 KiB |
|
|
@ -36,6 +36,9 @@ Direct posts are **not** accessible via a web URL on your GoToSocial instance.
|
|||
|
||||
### Mutuals-only
|
||||
|
||||
!!! warning
|
||||
Mutuals-only posts are not currently functional.
|
||||
|
||||
Posts with a visibility of `mutuals_only` will only appear to the post author, and to *mutual follows* of the post author. In other words, they can only be seen by others if two conditions are met:
|
||||
|
||||
1. The other account follows the post author.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue