├── .github └── workflows │ ├── deploy.yml │ └── rebase-needed.yml ├── .gitignore ├── LICENSE ├── README.md ├── archetypes ├── default.md ├── entities.md └── methods.md ├── assets ├── main.js ├── manrope.scss ├── roboto-mono.scss ├── roboto.scss └── style.scss ├── config.toml ├── content ├── en │ ├── _index.md │ ├── admin │ │ ├── backups.md │ │ ├── config.md │ │ ├── elasticsearch.md │ │ ├── install.md │ │ ├── migrating.md │ │ ├── moderation.md │ │ ├── optional.md │ │ ├── optional │ │ │ ├── captcha.md │ │ │ ├── object-storage-proxy.md │ │ │ ├── object-storage.md │ │ │ ├── sso.md │ │ │ └── tor.md │ │ ├── prerequisites.md │ │ ├── roles.md │ │ ├── scaling.md │ │ ├── setup.md │ │ ├── tootctl.md │ │ ├── troubleshooting.md │ │ ├── troubleshooting │ │ │ └── index-corruption.md │ │ └── upgrading.md │ ├── api │ │ ├── datetime-format.md │ │ ├── guidelines.md │ │ ├── oauth-scopes.md │ │ ├── oauth-tokens.md │ │ └── rate-limits.md │ ├── client │ │ ├── authorized.md │ │ ├── intro.md │ │ ├── libraries.md │ │ ├── public.md │ │ └── token.md │ ├── dev │ │ ├── code.md │ │ ├── disclosure.md │ │ ├── overview.md │ │ ├── routes.md │ │ └── setup.md │ ├── entities │ │ ├── Account.md │ │ ├── AccountWarning.md │ │ ├── Admin_Account.md │ │ ├── Admin_CanonicalEmailBlock.md │ │ ├── Admin_Cohort.md │ │ ├── Admin_Dimension.md │ │ ├── Admin_DomainAllow.md │ │ ├── Admin_DomainBlock.md │ │ ├── Admin_EmailDomainBlock.md │ │ ├── Admin_Ip.md │ │ ├── Admin_IpBlock.md │ │ ├── Admin_Measure.md │ │ ├── Admin_Report.md │ │ ├── Announcement.md │ │ ├── Appeal.md │ │ ├── Application.md │ │ ├── Context.md │ │ ├── Conversation.md │ │ ├── CustomEmoji.md │ │ ├── DomainBlock.md │ │ ├── EncryptedMessage.md │ │ ├── Error.md │ │ ├── ExtendedDescription.md │ │ ├── FamiliarFollowers.md │ │ ├── FeaturedTag.md │ │ ├── Filter.md │ │ ├── FilterKeyword.md │ │ ├── FilterResult.md │ │ ├── FilterStatus.md │ │ ├── IdentityProof.md │ │ ├── Instance.md │ │ ├── List.md │ │ ├── Marker.md │ │ ├── MediaAttachment.md │ │ ├── Notification.md │ │ ├── NotificationPolicy.md │ │ ├── NotificationRequest.md │ │ ├── Poll.md │ │ ├── Preferences.md │ │ ├── PreviewCard.md │ │ ├── PreviewCardAuthor.md │ │ ├── PrivacyPolicy.md │ │ ├── Quote.md │ │ ├── Reaction.md │ │ ├── Relationship.md │ │ ├── RelationshipSeveranceEvent.md │ │ ├── Report.md │ │ ├── Role.md │ │ ├── Rule.md │ │ ├── ScheduledStatus.md │ │ ├── Search.md │ │ ├── ShallowQuote.md │ │ ├── Status.md │ │ ├── StatusEdit.md │ │ ├── StatusSource.md │ │ ├── Suggestion.md │ │ ├── Tag.md │ │ ├── TermsOfService.md │ │ ├── Token.md │ │ ├── Translation.md │ │ ├── V1_Filter.md │ │ ├── V1_Instance.md │ │ ├── V1_NotificationPolicy.md │ │ └── WebPushSubscription.md │ ├── methods │ │ ├── accounts.md │ │ ├── admin │ │ │ ├── _index.md │ │ │ ├── accounts.md │ │ │ ├── canonical_email_blocks.md │ │ │ ├── dimensions.md │ │ │ ├── domain_allows.md │ │ │ ├── domain_blocks.md │ │ │ ├── email_domain_blocks.md │ │ │ ├── ip_blocks.md │ │ │ ├── measures.md │ │ │ ├── reports.md │ │ │ ├── retention.md │ │ │ └── trends.md │ │ ├── announcements.md │ │ ├── apps.md │ │ ├── blocks.md │ │ ├── bookmarks.md │ │ ├── conversations.md │ │ ├── custom_emojis.md │ │ ├── directory.md │ │ ├── domain_blocks.md │ │ ├── emails.md │ │ ├── endorsements.md │ │ ├── favourites.md │ │ ├── featured_tags.md │ │ ├── filters.md │ │ ├── follow_requests.md │ │ ├── followed_tags.md │ │ ├── grouped_notifications.md │ │ ├── instance.md │ │ ├── lists.md │ │ ├── markers.md │ │ ├── media.md │ │ ├── mutes.md │ │ ├── notifications.md │ │ ├── notifications_alpha.md │ │ ├── oauth.md │ │ ├── oembed.md │ │ ├── polls.md │ │ ├── preferences.md │ │ ├── profile.md │ │ ├── proofs.md │ │ ├── push.md │ │ ├── reports.md │ │ ├── scheduled_statuses.md │ │ ├── search.md │ │ ├── statuses.md │ │ ├── streaming.md │ │ ├── suggestions.md │ │ ├── tags.md │ │ ├── timelines.md │ │ └── trends.md │ ├── spec │ │ ├── activitypub.md │ │ ├── bearcaps.md │ │ ├── microformats.md │ │ ├── oauth.md │ │ ├── security.md │ │ └── webfinger.md │ └── user │ │ ├── contacts.md │ │ ├── discoverability.md │ │ ├── external.md │ │ ├── moderating.md │ │ ├── moving.md │ │ ├── network.md │ │ ├── posting.md │ │ ├── preferences.md │ │ ├── profile.md │ │ ├── run-your-own.md │ │ └── signup.md ├── ja │ ├── _index.md │ └── user │ │ ├── contacts.md │ │ ├── discoverability.md │ │ ├── external.md │ │ ├── moderating.md │ │ ├── moving.md │ │ ├── network.md │ │ ├── posting.md │ │ ├── preferences.md │ │ ├── profile.md │ │ ├── run-your-own.md │ │ └── signup.md ├── pl │ ├── _index.md │ └── user │ │ ├── contacts.md │ │ ├── discoverability.md │ │ ├── external.md │ │ ├── moderating.md │ │ ├── moving.md │ │ ├── network.md │ │ ├── posting.md │ │ ├── preferences.md │ │ ├── profile.md │ │ ├── run-your-own.md │ │ └── signup.md └── zh-cn │ ├── _index.md │ ├── admin │ ├── backups.md │ ├── config.md │ ├── install.md │ ├── migrating.md │ ├── moderation.md │ ├── optional.md │ ├── optional │ │ ├── elasticsearch.md │ │ ├── sso.md │ │ └── tor.md │ ├── prerequisites.md │ ├── scaling.md │ ├── setup.md │ ├── tootctl.md │ ├── troubleshooting.md │ └── upgrading.md │ └── user │ ├── contacts.md │ ├── discoverability.md │ ├── external.md │ ├── moderating.md │ ├── moving.md │ ├── network.md │ ├── posting.md │ ├── preferences.md │ ├── profile.md │ ├── run-your-own.md │ └── signup.md ├── data └── HttpCodes.toml ├── i18n ├── en.toml ├── ja.toml ├── pl.toml └── zh-cn.toml ├── layouts ├── _default │ ├── _markup │ │ └── render-heading.html │ ├── baseof.html │ ├── list.html │ └── single.html ├── index.html ├── partials │ ├── cta.html │ ├── footer.html │ ├── head.html │ └── sidebar.html └── shortcodes │ ├── api-method-description.html │ ├── api-method-form-data-parameters.html │ ├── api-method-headers.html │ ├── api-method-parameter.html │ ├── api-method-path-parameters.html │ ├── api-method-query-parameters.html │ ├── api-method-request.html │ ├── api-method-response-example-description.html │ ├── api-method-response-example.html │ ├── api-method-response.html │ ├── api-method-spec.html │ ├── api-method.html │ ├── bilibili.html │ ├── caption-link.html │ ├── code.html │ ├── deprecated.html │ ├── endapi-method-description.html │ ├── endapi-method-form-data-parameters.html │ ├── endapi-method-headers.html │ ├── endapi-method-parameter.html │ ├── endapi-method-path-parameters.html │ ├── endapi-method-query-parameters.html │ ├── endapi-method-request.html │ ├── endapi-method-response-example-description.html │ ├── endapi-method-response-example.html │ ├── endapi-method-response.html │ ├── endapi-method-spec.html │ ├── endapi-method.html │ ├── endtab.html │ ├── endtabs.html │ ├── figure.html │ ├── hint.html │ ├── no.html │ ├── nullable.html │ ├── optional.html │ ├── page-ref.html │ ├── page-relref.html │ ├── removed.html │ ├── required.html │ ├── tab.html │ ├── tabs.html │ ├── translation-status-zh-cn.html │ ├── yes.html │ └── youtube.html └── static ├── assets ├── account-delete.png ├── account-move.png ├── admin-roles-edit-role-ui.png ├── admin-roles-edit-ui.png ├── admin-roles-new-ui.png ├── admin-roles-ui.png ├── advanced-web-ui.png ├── bell.png ├── block-domain.png ├── blurhash.png ├── bot-flag.png ├── captcha │ ├── admin-view.png │ └── user-view.png ├── compose-custom-emoji.png ├── compose-hashtags.png ├── compose-links.png ├── compose-media-attachment.png ├── compose-mentions.png ├── compose-polls.png ├── compose-with-cw.png ├── decentralization.jpg ├── direct-url.png ├── directory.png ├── dm-column.png ├── dm-thread.jpg ├── edit-media.png ├── elephant.svg ├── export.png ├── external-reply.gif ├── featured-tags.png ├── filter-edit.png ├── filter-list.png ├── focal-points.jpg ├── invites.jpg ├── invites.png ├── keybase.jpg ├── light-theme.png ├── lists.png ├── network-models.jpg ├── notifications.png ├── object-storage │ ├── do-spaces.png │ ├── exoscale.png │ ├── minio-access-policy.png │ ├── minio-bucket.png │ ├── minio-mastodon-readwrite.png │ ├── minio-mastodon-user.png │ ├── scaleway-api-key.png │ ├── scaleway-bucket.png │ ├── scaleway-policy-rules.jpg │ ├── scaleway-policy.jpg │ ├── wasabi-access-control.png │ ├── wasabi-access-policy.png │ ├── wasabi-mastodon-readwrite.png │ └── wasabi-mastodon-user.png ├── pinned.png ├── post-visibility.png ├── profile-card.png ├── profile-dropdown.png ├── profile.png ├── relationships.png ├── report-modal.png ├── search-accounts.png ├── search-hashtags.png ├── search.png ├── setup.png ├── sponsors │ ├── LoadView-logo.png │ ├── SponsorMotion.png │ ├── dotcom-monitor-logo.png │ ├── driven-coffee-logo.png │ ├── stephen-tures.jpg │ ├── swayable.jpeg │ └── web-hosting-buddy-logo.png ├── status-cw.png ├── status.png └── timeline.png ├── brand.svg ├── brand_small.svg ├── decentralization.png ├── elephant.svg ├── favicon.ico ├── setup.png ├── shirt.png └── webfonts ├── manrope └── manrope-variable.woff2 ├── roboto-mono ├── robotomono-regular-webfont.svg ├── robotomono-regular-webfont.ttf ├── robotomono-regular-webfont.woff └── robotomono-regular-webfont.woff2 └── roboto ├── roboto-bold-webfont.svg ├── roboto-bold-webfont.ttf ├── roboto-bold-webfont.woff ├── roboto-bold-webfont.woff2 ├── roboto-italic-webfont.svg ├── roboto-italic-webfont.ttf ├── roboto-italic-webfont.woff ├── roboto-italic-webfont.woff2 ├── roboto-medium-webfont.svg ├── roboto-medium-webfont.ttf ├── roboto-medium-webfont.woff ├── roboto-medium-webfont.woff2 ├── roboto-regular-webfont.svg ├── roboto-regular-webfont.ttf ├── roboto-regular-webfont.woff └── roboto-regular-webfont.woff2 /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy on Github Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | # Allows you to run this workflow manually from the Actions tab 9 | workflow_dispatch: 10 | 11 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 12 | permissions: 13 | contents: read 14 | pages: write 15 | id-token: write 16 | 17 | # Allow one concurrent deployment 18 | concurrency: 19 | group: "pages" 20 | cancel-in-progress: true 21 | 22 | # Default to bash 23 | defaults: 24 | run: 25 | shell: bash 26 | 27 | jobs: 28 | build: 29 | runs-on: ubuntu-22.04 30 | steps: 31 | - uses: actions/checkout@v4 32 | with: 33 | submodules: true # Fetch Hugo themes (true OR recursive) 34 | fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod 35 | 36 | - name: Setup Pages 37 | id: pages 38 | uses: actions/configure-pages@v5 39 | 40 | - name: Setup Hugo 41 | uses: peaceiris/actions-hugo@v2 42 | with: 43 | hugo-version: "0.140.2" 44 | extended: true 45 | 46 | - name: Build 47 | run: hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/" 48 | 49 | - name: Upload artifact 50 | uses: actions/upload-pages-artifact@v3 51 | with: 52 | path: ./public 53 | 54 | # Deployment job 55 | deploy: 56 | environment: 57 | name: github-pages 58 | url: ${{ steps.deployment.outputs.page_url }} 59 | runs-on: ubuntu-latest 60 | needs: build 61 | steps: 62 | - name: Deploy to GitHub Pages 63 | id: deployment 64 | uses: actions/deploy-pages@v4 65 | -------------------------------------------------------------------------------- /.github/workflows/rebase-needed.yml: -------------------------------------------------------------------------------- 1 | name: PR Needs Rebase 2 | 3 | on: 4 | schedule: 5 | - cron: '0 * * * *' 6 | 7 | permissions: 8 | pull-requests: write 9 | 10 | jobs: 11 | label-rebase-needed: 12 | runs-on: ubuntu-latest 13 | 14 | concurrency: 15 | group: ${{ github.workflow }}-${{ github.ref }} 16 | cancel-in-progress: true 17 | 18 | steps: 19 | - name: Check for merge conflicts 20 | uses: eps1lon/actions-label-merge-conflict@releases/2.x 21 | with: 22 | dirtyLabel: 'rebase needed :construction:' 23 | repoToken: '${{ secrets.GITHUB_TOKEN }}' 24 | commentOnClean: This pull request has resolved merge conflicts and is ready for review. 25 | commentOnDirty: This pull request has merge conflicts that must be resolved before it can be merged. 26 | retryMax: 30 27 | continueOnMissingPermissions: false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public/ 2 | static/.sass-cache 3 | resources/ 4 | .hugo_build.lock 5 | .vercel 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | Mastodon 5 |

6 | 7 | The documentation currently uses [Hugo](https://github.com/gohugoio/hugo) to generate a static site from Markdown. Use `hugo serve` to test the site locally. If build errors occur, ensure your Hugo version is the same as [docs.joinmastodon.org](https://github.com/mastodon/documentation/blob/main/.github/workflows/deploy.yml#L43). 8 | 9 | View the live documentation at [https://docs.joinmastodon.org](https://docs.joinmastodon.org) 10 | 11 | ## Contributing 12 | 13 | Please read the [Contributing to Mastodon](https://github.com/mastodon/.github/blob/main/CONTRIBUTING.md) guide. 14 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /archetypes/entities.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | description: 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/api/entities/SOMETHING", 9 | "/api/entities/something", 10 | ] 11 | --- 12 | 13 | ## Example 14 | 15 | ```json 16 | ``` 17 | 18 | ## Attributes 19 | 20 | ### `id` {#id} 21 | 22 | **Description:** The ID of the SOMETHING in the database.\ 23 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 24 | **Version history:**\ 25 | x.x.x - added 26 | 27 | ## See also 28 | 29 | {{< page-relref ref="methods/SOMETHING#anchor" caption="POST /api/v1/something/" >}} 30 | 31 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/SOMETHING_serializer.rb" caption="app/serializers/rest/SOMETHING_serializer.rb" >}} -------------------------------------------------------------------------------- /assets/main.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | 4 | const onLoaded = () => { 5 | // Nothing for now 6 | }; 7 | 8 | if (['interactive', 'complete'].indexOf(document.readyState) !== -1) { 9 | onLoaded(); 10 | } else { 11 | document.addEventListener('DOMContentLoaded', onLoaded); 12 | } 13 | })(); 14 | -------------------------------------------------------------------------------- /assets/manrope.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Manrope"; 3 | font-style: normal; 4 | font-weight: 100 900; 5 | src: 6 | url("/webfonts/manrope/manrope-variable.woff2") format("woff2 supports variations"), 7 | url("/webfonts/manrope/manrope-variable.woff2") format("woff2-variations"); 8 | } 9 | -------------------------------------------------------------------------------- /assets/roboto-mono.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Roboto Mono'; 3 | src: 4 | local('Roboto Mono'), 5 | url('./webfonts/roboto-mono/robotomono-regular-webfont.woff2') format('woff2'), 6 | url('./webfonts/roboto-mono/robotomono-regular-webfont.woff') format('woff'), 7 | url('./webfonts/roboto-mono/robotomono-regular-webfont.ttf') format('truetype'), 8 | url('./webfonts/roboto-mono/robotomono-regular-webfont.svg#roboto_monoregular') format('svg'); 9 | font-weight: 400; 10 | font-display: swap; 11 | font-style: normal; 12 | } 13 | -------------------------------------------------------------------------------- /assets/roboto.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Roboto'; 3 | src: 4 | local('Roboto Italic'), 5 | url('./webfonts/roboto/roboto-italic-webfont.woff2') format('woff2'), 6 | url('./webfonts/roboto/roboto-italic-webfont.woff') format('woff'), 7 | url('./webfonts/roboto/roboto-italic-webfont.ttf') format('truetype'), 8 | url('./webfonts/roboto/roboto-italic-webfont.svg#roboto-italic-webfont') format('svg'); 9 | font-weight: normal; 10 | font-display: swap; 11 | font-style: italic; 12 | } 13 | 14 | @font-face { 15 | font-family: 'Roboto'; 16 | src: 17 | local('Roboto Bold'), 18 | url('./webfonts/roboto/roboto-bold-webfont.woff2') format('woff2'), 19 | url('./webfonts/roboto/roboto-bold-webfont.woff') format('woff'), 20 | url('./webfonts/roboto/roboto-bold-webfont.ttf') format('truetype'), 21 | url('./webfonts/roboto/roboto-bold-webfont.svg#roboto-bold-webfont') format('svg'); 22 | font-weight: bold; 23 | font-display: swap; 24 | font-style: normal; 25 | } 26 | 27 | @font-face { 28 | font-family: 'Roboto'; 29 | src: 30 | local('Roboto Medium'), 31 | url('./webfonts/roboto/roboto-medium-webfont.woff2') format('woff2'), 32 | url('./webfonts/roboto/roboto-medium-webfont.woff') format('woff'), 33 | url('./webfonts/roboto/roboto-medium-webfont.ttf') format('truetype'), 34 | url('./webfonts/roboto/roboto-medium-webfont.svg#roboto-medium-webfont') format('svg'); 35 | font-weight: 500; 36 | font-display: swap; 37 | font-style: normal; 38 | } 39 | 40 | @font-face { 41 | font-family: 'Roboto'; 42 | src: 43 | local('Roboto'), 44 | url('./webfonts/roboto/roboto-regular-webfont.woff2') format('woff2'), 45 | url('./webfonts/roboto/roboto-regular-webfont.woff') format('woff'), 46 | url('./webfonts/roboto/roboto-regular-webfont.ttf') format('truetype'), 47 | url('./webfonts/roboto/roboto-regular-webfont.svg#roboto-regular-webfont') format('svg'); 48 | font-weight: normal; 49 | font-display: swap; 50 | font-style: normal; 51 | } 52 | -------------------------------------------------------------------------------- /content/en/admin/optional.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Installing optional features 3 | menu: 4 | docs: 5 | weight: 40 6 | parent: admin 7 | identifier: admin-optional 8 | --- 9 | 10 | Mastodon offers a few optional features that can be used if needed. 11 | 12 | - [Object storage](./object-storage/) 13 | - [Hidden services](./tor/) 14 | - [Single Sign On](./sso/) 15 | -------------------------------------------------------------------------------- /content/en/admin/optional/captcha.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Captcha 3 | description: Mitigating automated signup bots 4 | menu: 5 | docs: 6 | weight: 30 7 | parent: admin-optional 8 | --- 9 | 10 | As of Mastodon 4.2, using CAPTCHA technology is supported to help mitigate against bots signing up for new accounts. 11 | With CAPTCHA enabled, new registrations will be required to complete a challenge response as part of the e-mail verification process. 12 | 13 | ![](/assets/captcha/user-view.png) 14 | 15 | {{< hint style="danger" >}} 16 | For some people, the use of a central CAPTCHA service may be a security and privacy concern. 17 | In addition, CAPTCHA can make the registration process significantly less accessible, particularly for individuals with visual impairments, such as those who are blind or have low vision. 18 | {{}} 19 | 20 | Currently, hCaptcha is the only available provider supported by Mastodon. 21 | Other providers may be added in the future. 22 | 23 | ## hCaptcha 24 | 25 | - Create a free hCaptcha account at [hcaptcha.com](https://www.hcaptcha.com) 26 | - After completing registration, use the hCaptcha dashboard to add a new site with your Mastodon server domain and obtain a Site Key 27 | - From the Account Settings menu in hCaptcha, obtain your Secret Key 28 | - Add the values to your Mastodon environment configuration as `HCAPTCHA_SITE_KEY` and `HCAPTCHA_SECRET_KEY` 29 | - Restart the Mastodon services running on your server 30 | - From the Mastodon web interface navigate to **Administration** > **Server settings** > **Registrations** and check the box labled "Require new users to solve a CAPTCHA to confirm their account" 31 | 32 | ![](/assets/captcha/admin-view.png) 33 | -------------------------------------------------------------------------------- /content/en/admin/optional/sso.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Single Sign On 3 | menu: 4 | docs: 5 | weight: 40 6 | parent: admin-optional 7 | --- 8 | 9 | {{< hint style="danger" >}} 10 | This page is under construction. 11 | 12 | For the moment, please refer to [this pull request](https://github.com/mastodon/mastodon/pull/16221) 13 | {{< /hint >}} 14 | 15 | -------------------------------------------------------------------------------- /content/en/admin/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Setting up your new instance 3 | description: Things to do after installing Mastodon 4 | menu: 5 | docs: 6 | weight: 50 7 | parent: admin 8 | --- 9 | 10 | ## Creating an admin account {#admin} 11 | 12 | ### In the browser {#admin-gui} 13 | 14 | After signing up in the browser, you will need to use the command line to give your newly created account admin privileges. Assuming your username is `alice`: 15 | 16 | ```bash 17 | RAILS_ENV=production bin/tootctl accounts modify alice --role Owner 18 | ``` 19 | 20 | {{}} 21 | Prior to Mastodon 4.0, roles were hardcoded to be one of `user`, `moderator`, or `admin`. Since Mastodon 4.0, there is a customizable role system, with default roles created for `Moderator`, `Admin`, and `Owner`. Names of custom roles are case-sensitive. 22 | {{}} 23 | 24 | ### From the command line {#admin-cli} 25 | 26 | You can create a new account using the command-line interface. 27 | 28 | ```bash 29 | RAILS_ENV=production bin/tootctl accounts create \ 30 | alice \ 31 | --email alice@example.com \ 32 | --confirmed \ 33 | --role Owner 34 | ``` 35 | 36 | A randomly generated password will be shown in the terminal. 37 | 38 | ## Filling in server information {#info} 39 | 40 | After logging in, navigate to the **Site settings** page (under **Preferences** -> **Administration**). While there are no technical requirements for filling in this information, it is considered crucial for operating a server for humans. 41 | 42 | | Setting | Meaning | 43 | | :--- | :--- | 44 | | Contact username | Your username so people know who owns the server | 45 | | Business email | An email address so people locked out of their accounts, or people without accounts, can contact you | 46 | | Instance description | Why did you start this server? Who is it for? What makes it different? | 47 | | Custom extended information | You can put all sorts of information in here but a **code of conduct** is recommended | 48 | 49 | After you fill these in, click “Save changes”. 50 | -------------------------------------------------------------------------------- /content/en/api/datetime-format.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Datetime formats 3 | description: Datetime formats 4 | menu: 5 | docs: 6 | weight: 10 7 | parent: api 8 | --- 9 | 10 | ## Datetime {#datetime} 11 | 12 | A "datetime" specifies an instant in time. 13 | 14 | The string representation of a datetime uses the "Internet Date/Time Format" defined in [RFC3339 section 5.6](https://www.rfc-editor.org/rfc/rfc3339#section-5.6). 15 | 16 | To summarise, that is the following mandatory components: 17 | 18 | ``` 19 | [YYYY]-[MM]-[DD]T[hh]:[mm]:[ss].[s][TZD] 20 | ``` 21 | 22 | where: 23 | 24 | - `[YYYY]` = four-digit year 25 | - `[MM]` = two-digit month (01=January, etc.) 26 | - `[DD]` = two-digit day of month (01 through 31) 27 | - `[hh]` = two digits of hour (00 through 23) (24 NOT allowed) 28 | - `[mm]` = two digits of minute (00 through 59) 29 | - `[ss]` = two digits of second (00 through 60) 30 | - `[s]` = one or more digits representing a decimal fraction of a second 31 | - `[TZD]` = time zone designator (either `Z` for UTC, or `+[hh]:[mm]` or `-[hh]:[mm]` to represent an offset from UTC) 32 | 33 | For example, `1994-11-05T13:15:30.000Z` (equivalent to `1994-11-05T08:15:30-05:00`). 34 | 35 | See [RFC3339 section 5.6](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) for the complete [ABNF grammar](https://www.rfc-editor.org/rfc/rfc2234). 36 | 37 | ### Interoperability 38 | 39 | - The date and time portions are always separated by an uppercase `T` (not lowercase, not a space). 40 | - The timezone designator `Z` is always uppercase, not lowercase. 41 | - The fractional (`[s]`) part of the second is represented with at least one digit and at most three digits. 42 | - A field may be presented as a datetime while having lower resolution. E.g., the server clamps the value to the midnight on the date in question. 43 | 44 | ## Date {#date} 45 | 46 | A "date" specifies the calendar date an activity occurred, in UTC. 47 | 48 | The string representation of a date uses the complete, extended calendar date representation from ISO 8601, the International Standard for the representation of dates and times (section 5.2.1.1). This is also the "Complete date" format from [W3C Date and Time formats](https://www.w3.org/TR/NOTE-datetime). 49 | 50 | That is the following mandatory components: 51 | 52 | ``` 53 | [YYYY]-[MM]-[DD] 54 | ``` 55 | 56 | - `[YYYY]` = four-digit year 57 | - `[MM]` = two-digit month (01=January, etc.) 58 | - `[DD]` = two-digit day of month (01 through 31) 59 | 60 | ### Interoperability 61 | 62 | - The year, month, and date components are always separated by a `-`. 63 | 64 | -------------------------------------------------------------------------------- /content/en/api/oauth-tokens.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: OAuth Tokens 3 | description: Defining what token types are used throughout this documentation 4 | menu: 5 | docs: 6 | weight: 15 7 | parent: api 8 | --- 9 | 10 | ## OAuth Tokens 11 | 12 | Mastodon supports two different types of OAuth Tokens: App tokens and User tokens. Throughout this documentation you will see these token types referenced in the `OAuth` field for API endpoints. 13 | 14 | The `OAuth` field also references Public, in which case no OAuth access token needs to be supplied to access the API endpoint. 15 | 16 | ### App tokens 17 | 18 | In order to receive an App token, you must perform a [client credentials grant flow]({{}}), which gives you a token that can be used to interact with the API on behalf of the OAuth Application. Currently the only API endpoints that accepts this token type are: 19 | 20 | - [`GET /api/v1/apps/verify_credentials`]({{}}) 21 | - [`POST /api/v1/accounts`]({{}}) 22 | 23 | ### User tokens 24 | 25 | In order to create a User token, you must perform a [authorization code grant flow]({{}}), which gives you an access token that is associated with the user who approves the access grant request. 26 | 27 | Many Mastodon APIs require User tokens and specific scopes to access them. 28 | -------------------------------------------------------------------------------- /content/en/api/rate-limits.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rate limits 3 | description: Defining how often you can call the REST API 4 | menu: 5 | docs: 6 | weight: 30 7 | parent: api 8 | --- 9 | 10 | ## Headers 11 | 12 | Rate limit information is returned in the response headers: 13 | 14 | `X-RateLimit-Limit` 15 | : Number of requests permitted per time period 16 | 17 | `X-RateLimit-Remaining` 18 | : Number of requests you can still make 19 | 20 | `X-RateLimit-Reset` 21 | : Timestamp when your rate limit will reset 22 | 23 | {{< hint style="info" >}} 24 | An API method can be subject to multiple overlapping rate limits. The headers return information about the one you are closest to exceeding. 25 | {{}} 26 | 27 | ## Limits 28 | 29 | By default, the following limits are hardcoded: 30 | 31 | ### Per account 32 | 33 | All endpoints and methods can be called 300 times within 5 minutes. 34 | 35 | #### Uploading media 36 | 37 | `POST /api/v1/media` can be called 30 times within 30 minutes. 38 | 39 | #### Deleting statuses 40 | 41 | Either `DELETE /api/v1/statuses/:id` or `POST /api/v1/statuses/:id/unreblog` can be called 30 times within 30 minutes. 42 | 43 | ### Per IP 44 | 45 | All endpoints and methods can be called 300 times within 5 minutes. 46 | 47 | #### Creating accounts 48 | 49 | `POST /api/v1/accounts` can be called 5 times within 30 minutes. 50 | -------------------------------------------------------------------------------- /content/en/dev/code.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Code structure 3 | description: Where to find certain parts of the codebase. 4 | menu: 5 | docs: 6 | weight: 30 7 | parent: dev 8 | --- 9 | 10 | ### Code structure {#structure} 11 | 12 | The following overview should not be seen as complete or authoritative but as a rough guidance to help you find your way in the application. 13 | 14 | #### Ruby {#ruby} 15 | 16 | `app/controllers` 17 | : Code that binds business logic to templates 18 | 19 | `app/helpers` 20 | : Code that can be used from views, i.e. common operations 21 | 22 | `app/lib` 23 | : Code that doesn’t fit in the other categories 24 | 25 | `app/models` 26 | : Representation of data entities and their associated methods 27 | 28 | `app/policies` 29 | : Permission checks and other validations, before calling related methods 30 | 31 | `app/serializers` 32 | : Code that generates JSON from models 33 | 34 | `app/services` 35 | : Complex logical operations involving multiple models 36 | 37 | `app/views` 38 | : Templates for generating HTML or other output 39 | 40 | `app/workers` 41 | : Code that executes outside the request-response cycle 42 | 43 | `spec` 44 | : Automated test suite 45 | 46 | #### JavaScript {#javascript} 47 | 48 | `app/javascript/mastodon` 49 | : Code for the frontend React.js application 50 | 51 | `app/javascript/packs` 52 | : Code for non-React.js pages 53 | 54 | #### CSS and other assets {#assets} 55 | 56 | `app/javascript/images` 57 | : Images 58 | 59 | `app/javascript/styles` 60 | : Code that turns into CSS via Sass 61 | 62 | #### Localizations {#localizations} 63 | 64 | `config/locales` 65 | : Server-side localizations in the YML format 66 | 67 | `app/javascript/mastodon/locales` 68 | : Client-side localizations in the JSON format 69 | 70 | All locale files are normalized to ensure consistent formatting and key order, which minimizes changesets in version control. 71 | 72 | - Run `bundle exec i18n-tasks normalize` to normalize server-side translations 73 | - Run `yarn run i18n:extract` to extract and normalize client-side translations into `en.json` 74 | -------------------------------------------------------------------------------- /content/en/dev/disclosure.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bug bounties and responsible disclosure 3 | description: What to do if you found a serious bug 4 | menu: 5 | docs: 6 | weight: 9999 7 | parent: dev 8 | --- 9 | 10 | If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should send the report to **security@joinmastodon.org**. We will gladly reward such reports in proportion to the severity of the issue through our OpenCollective fund. 11 | 12 | You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk. 13 | 14 | {{< hint style="info" >}} 15 | A "vulnerability in Mastodon" is a vulnerability in the code distributed through our main source code repository on GitHub. Vulnerabilities that are specific to a given installation (e.g. misconfiguration) should be reported to the owner of that installation and not us. 16 | {{< /hint >}} 17 | -------------------------------------------------------------------------------- /content/en/dev/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Technical overview 3 | description: A description of Mastodon's architecture. 4 | menu: 5 | docs: 6 | weight: 10 7 | parent: dev 8 | --- 9 | 10 | 13 | 14 | Mastodon is a Ruby on Rails application with a React.js front-end. It follows standard practices of those frameworks, so if you are already familiar with Rails or React.js, you will not find any surprises here. 15 | 16 | The best way of working with Mastodon in a development environment is installing all the dependencies on your system, rather than using Docker or Vagrant. You need Ruby, Node.js, PostgreSQL and Redis, which is a pretty standard set of dependencies for Rails applications. 17 | 18 | Tutorials for installing these dependencies can be found on the “Installing from source” page in the Running Mastodon section of the documentation. After following the installation guide in the Running Mastodon section, see the “Setting up a dev environment” page for further instructions on how to configure your environment for development. 19 | 20 | ### Environments {#environments} 21 | 22 | An “environment” is a set of configuration values intended for a specific use case. Some environments could be: development, in which you intend to change the code; test, in which you intend to run the automated test suite; staging, which is meant to preview the code to end-users; and production, which is intended to face end-users. Mastodon comes with configurations for development, testing and production. 23 | 24 | The default value of `RAILS_ENV` is `development`, so you don’t need to set anything extra to run Mastodon in development mode. In fact, all of Mastodon’s configuration has correct defaults for the development environment, so you do not need an `.env` file unless you need to customize something. Here are some of the different behaviours between the development environment and the production environment: 25 | 26 | - Ruby code reloads itself when you change it, which means you don’t need to restart the Rails server process to see changes 27 | - All errors you encounter show stack traces in the browser, rather than being hidden behind a generic error page 28 | - Webpack runs continuously and re-compiles JS and CSS assets when you change any of the front-end files, and the pages automatically reload 29 | - Caching is disabled by default 30 | - An admin account with the e-mail `admin@localhost:3000` and password `mastodonadmin` is created automatically during `db:seed` 31 | 32 | It should be noted that the Docker configuration distributed with Mastodon is optimized for the production environment, and so is an extremely bad fit for development. The Vagrant configuration, on the other hand, is meant specifically for development and not production use. 33 | -------------------------------------------------------------------------------- /content/en/entities/AccountWarning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: AccountWarning 3 | description: Moderation warning against a particular account. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/AccountWarning", 9 | "/api/entities/AccountWarning", 10 | ] 11 | --- 12 | 13 | ## Attributes 14 | 15 | ### `id` {#id} 16 | 17 | **Description:** The ID of the account warning in the database.\ 18 | **Type:** String (cast from integer)\ 19 | **Version history:**\ 20 | 4.3.0 - added 21 | 22 | ### `action` {#action} 23 | 24 | **Description:** Action taken against the account.\ 25 | **Type:** String (Enumerable oneOf)\ 26 | `none` = No action was taken, this is a simple warning\ 27 | `disable` = The account has been disabled\ 28 | `mark_statuses_as_sensitive` = Specific posts from the target account have been marked as sensitive\ 29 | `delete_statuses` = Specific statuses from the target account have been deleted\ 30 | `sensitive` = All posts from the target account are marked as sensitive\ 31 | `silence` = The target account has been limited\ 32 | `suspend` = The target account has been suspended\ 33 | **Version history:**\ 34 | 4.3.0 - added 35 | 36 | ### `text` {#text} 37 | 38 | **Description:** Message from the moderator to the target account.\ 39 | **Type:** String\ 40 | **Version history:**\ 41 | 4.3.0 - added 42 | 43 | ### `status_ids` {#status_ids} 44 | 45 | **Description:** List of status IDs that are relevant to the warning. When `action` is `mark_statuses_as_sensitive` or `delete_statuses`, those are the affected statuses.\ 46 | **Type:** {{}} Array of String (cast from integer), or null\ 47 | **Version history:**\ 48 | 4.3.0 - added 49 | 50 | ### `target_account` {#target_account} 51 | 52 | **Description:** Account against which a moderation decision has been taken.\ 53 | **Type:** [Account]({{< relref "entities/Account" >}})\ 54 | **Version history:**\ 55 | 4.3.0 - added 56 | 57 | ### `appeal` {#appeal} 58 | 59 | **Description:** Appeal submitted by the target account, if any.\ 60 | **Type:** {{}} [Appeal]({{< relref "entities/Appeal" >}}), or null\ 61 | **Version history:**\ 62 | 4.3.0 - added 63 | 64 | ### `created_at` {#created_at} 65 | 66 | **Description:** When the event took place.\ 67 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 68 | **Version history:**\ 69 | 4.3.0 - added 70 | -------------------------------------------------------------------------------- /content/en/entities/Admin_CanonicalEmailBlock.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Admin::CanonicalEmailBlock 3 | description: Represents a canonical email block (hashed). 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/admin-canonicalemailblock", 9 | "/entities/Admin-CanonicalEmailBlock", 10 | "/entities/admin_canonicalemailblock", 11 | "/entities/Admin_CanonicalEmailBlock", 12 | "/api/entities/admin-canonicalemailblock", 13 | "/api/entities/Admin-CanonicalEmailBlock", 14 | "/api/entities/admin_canonicalemailblock", 15 | "/api/entities/Admin_CanonicalEmailBlock", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | { 23 | "id": "2", 24 | "canonical_email_hash": "b344e55d11b3fc25d0d53194e0475838bf17e9be67ce3e6469956222d9a34f9c" 25 | } 26 | ``` 27 | 28 | ## Attributes 29 | 30 | ### `id` {#id} 31 | 32 | **Description:** The ID of the email block in the database.\ 33 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 34 | **Version history:**\ 35 | 4.0.0 - added 36 | 37 | ### `canonical_email_hash` {#canonical_email_hash} 38 | 39 | **Description:** The SHA256 hash of the canonical email address.\ 40 | **Type:** String (SHA256)\ 41 | **Version history:**\ 42 | 4.0.0 - added 43 | 44 | ## See also 45 | 46 | {{< page-relref ref="methods/admin/canonical_email_blocks" caption="admin/canonical_email_blocks API methods" >}} 47 | 48 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/admin/canonical_email_block_serializer.rb" caption="app/serializers/rest/admin/canonical_email_block_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Admin_DomainAllow.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Admin::DomainAllow 3 | description: Represents a domain allowed to federate. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/admin-domainallow", 9 | "/entities/Admin-DomainAllow", 10 | "/entities/admin_domainallow", 11 | "/entities/Admin_DomainAllow", 12 | "/api/entities/admin-domainallow", 13 | "/api/entities/Admin-DomainAllow", 14 | "/api/entities/admin_domainallow", 15 | "/api/entities/Admin_DomainAllow", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | { 23 | "id": "1", 24 | "domain": "mastodon.social", 25 | "created_at": "2022-09-14T21:23:02.755Z" 26 | } 27 | ``` 28 | 29 | ## Attributes 30 | 31 | ### `id` {#id} 32 | 33 | **Description:** The ID of the DomainAllow in the database.\ 34 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 35 | **Version history:**\ 36 | 4.0.0 - added 37 | 38 | ### `domain` {#domain} 39 | 40 | **Description:** The domain that is allowed to federate.\ 41 | **Type:** String\ 42 | **Version history:**\ 43 | 4.0.0 - added 44 | 45 | ### `created_at` {#created_at} 46 | 47 | **Description:** When the domain was allowed to federate.\ 48 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 49 | **Version history:**\ 50 | 4.0.0 - added 51 | 52 | ## See also 53 | 54 | {{< page-relref page="methods/admin/domain_allows" caption="admin/domain_allows API methods" >}} 55 | 56 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/admin/domain_allow_serializer.rb" caption="app/serializers/rest/admin/domain_allow_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Admin_Ip.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Admin::Ip 3 | description: Represents an IP address associated with a user. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/admin-ip", 9 | "/entities/Admin-Ip", 10 | "/entities/admin_ip", 11 | "/entities/Admin_Ip", 12 | "/api/entities/admin-ip", 13 | "/api/entities/Admin-Ip", 14 | "/api/entities/admin_ip", 15 | "/api/entities/Admin_Ip", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | { 23 | "ip": "192.168.42.1", 24 | "used_at": "2022-09-15T01:38:58.851Z" 25 | } 26 | ``` 27 | 28 | ## Attributes 29 | 30 | ### `ip` {#id} 31 | 32 | **Description:** The IP address.\ 33 | **Type:** String (IP address)\ 34 | **Version history:**\ 35 | 3.5.0 - added 36 | 37 | ### `used_at` {#used_at} 38 | 39 | **Description:** The timestamp of when the IP address was last used for this account.\ 40 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 41 | **Version history:**\ 42 | 3.5.0 - added 43 | 44 | ## See also 45 | 46 | {{< page-relref ref="entities/Admin_Account#ips" caption="Admin::Account (`ips` attribute)" >}} 47 | 48 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/admin/ip_serializer.rb" caption="app/serializers/rest/admin/ip_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Admin_IpBlock.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Admin::IpBlock 3 | description: Represents an IP address range that cannot be used to sign up. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/admin-ipblock", 9 | "/entities/Admin-IpBlock", 10 | "/entities/admin_ipblock", 11 | "/entities/Admin_IpBlock", 12 | "/api/entities/admin-ipblock", 13 | "/api/entities/Admin-IpBlock", 14 | "/api/entities/admin_ipblock", 15 | "/api/entities/Admin_IpBlock", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | { 23 | "id": "1", 24 | "ip": "8.8.8.8/32", 25 | "severity": "no_access", 26 | "comment": "", 27 | "created_at": "2022-11-16T07:22:00.501Z", 28 | "expires_at": null 29 | } 30 | ``` 31 | 32 | ## Attributes 33 | 34 | ### `id` {#id} 35 | 36 | **Description:** The ID of the DomainBlock in the database.\ 37 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 38 | **Version history:**\ 39 | 4.0.0 - added 40 | 41 | ### `ip` {#ip} 42 | 43 | **Description:** The IP address range that is not allowed to federate.\ 44 | **Type:** String (IP address and prefix)\ 45 | **Version history:**\ 46 | 4.0.0 - added 47 | 48 | ### `severity` {#severity} 49 | 50 | **Description:** The associated policy with this IP block.\ 51 | **Type:** String (Enumerable, oneOf)\ 52 | `sign_up_requires_approval` = Any signup from this IP range will create a pending account\ 53 | `sign_up_block` = Any signup from this IP range will be rejected\ 54 | `no_access` = Any activity from this IP range will be rejected entirely\ 55 | **Version history:**\ 56 | 4.0.0 - added 57 | 58 | ### `comment` {#comment} 59 | 60 | **Description:** The recorded reason for this IP block.\ 61 | **Type:** String\ 62 | **Version history:**\ 63 | 4.0.0 - added 64 | 65 | ### `created_at` {#created_at} 66 | 67 | **Description:** When the IP block was created.\ 68 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 69 | **Version history:**\ 70 | 4.0.0 - added 71 | 72 | ### `expires_at` {#expires_at} 73 | 74 | **Description:** When the IP block will expire.\ 75 | **Type:** {{}} String ([Datetime](/api/datetime-format#datetime))\ 76 | **Version history:**\ 77 | 4.0.0 - added 78 | 79 | ## See also 80 | 81 | {{< page-relref page="methods/admin/ip_blocks" caption="admin/ip_blocks API methods" >}} 82 | 83 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/admin/ip_block_serializer.rb" caption="app/serializers/rest/admin/ip_block_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Appeal.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Appeal 3 | description: Appeal against a moderation action. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/Appeal", 9 | "/api/entities/Appeal", 10 | ] 11 | --- 12 | 13 | ## Attributes 14 | 15 | ### `text` {#text} 16 | 17 | **Description:** Text of the appeal from the moderated account to the moderators.\ 18 | **Type:** String\ 19 | **Version history:**\ 20 | 4.3.0 - added 21 | 22 | ### `state` {#state} 23 | 24 | **Description:** State of the appeal.\ 25 | **Type:** String (Enumerable oneOf)\ 26 | `approved` = The appeal has been approved by a moderator\ 27 | `rejected` = The appeal has been rejected by a moderator\ 28 | `pending` = The appeal has been submitted, but neither approved nor rejected yet\ 29 | **Version history:**\ 30 | 4.3.0 - added 31 | -------------------------------------------------------------------------------- /content/en/entities/Context.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Context 3 | description: Represents the tree around a given status. Used for reconstructing threads of statuses. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/context", 9 | "/entities/Context", 10 | "/api/entities/context", 11 | "/api/entities/Context", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "ancestors": [ 20 | { 21 | "id": "103188938570975982", 22 | "created_at": "2019-11-23T19:44:00.124Z", 23 | "in_reply_to_id": null, 24 | // ... 25 | }, 26 | { 27 | "id": "103188971072973252", 28 | "created_at": "2019-11-23T19:52:23.398Z", 29 | "in_reply_to_id": "103188938570975982", 30 | // ... 31 | }, 32 | { 33 | "id": "103188982235527758", 34 | "created_at": "2019-11-23T19:55:08.208Z", 35 | "in_reply_to_id": "103188971072973252", 36 | // ... 37 | } 38 | ], 39 | "descendants": [ 40 | { 41 | "id": "103189026958574542", 42 | "created_at": "2019-11-23T20:06:36.011Z", 43 | "in_reply_to_id": "103189005915505698", 44 | // ... 45 | } 46 | ] 47 | } 48 | ``` 49 | 50 | ## Attributes 51 | 52 | ### `ancestors` {#ancestors} 53 | 54 | **Description:** Parents in the thread.\ 55 | **Type:** Array of [Status]({{< relref "entities/Status" >}})\ 56 | **Version history:**\ 57 | 0.6.0 - added 58 | 59 | ### `descendants` {#descendants} 60 | 61 | **Description:** Children in the thread.\ 62 | **Type:** Array of [Status]({{< relref "entities/Status" >}})\ 63 | **Version history:**\ 64 | 0.6.0 - added 65 | 66 | ## See also 67 | 68 | {{< page-relref ref="methods/statuses#context" caption="GET /api/v1/statuses/:id/context" >}} 69 | 70 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/context_serializer.rb" caption="app/serializers/rest/context_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Conversation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Conversation 3 | description: Represents a conversation with "direct message" visibility. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/conversation", 9 | "/entities/Conversation", 10 | "/api/entities/conversation", 11 | "/api/entities/Conversation", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "418450", 20 | "unread": true, 21 | "accounts": [ 22 | { 23 | "id": "482403", 24 | "username": "amic", 25 | "acct": "amic@nulled.red", 26 | // ... 27 | } 28 | ], 29 | "last_status": { 30 | "id": "103196583826321184", 31 | "created_at": "2019-11-25T04:08:24.000Z", 32 | "in_reply_to_id": "103196540587943467", 33 | "in_reply_to_account_id": "14715", 34 | // ... 35 | } 36 | } 37 | ``` 38 | 39 | ## Attributes 40 | 41 | ### `id` {#id} 42 | 43 | **Description:** The ID of the conversation in the database.\ 44 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 45 | **Version history:**\ 46 | 2.6.0 - added 47 | 48 | ### `unread` {#unread} 49 | 50 | **Description:** Is the conversation currently marked as unread?\ 51 | **Type:** Boolean\ 52 | **Version history:**\ 53 | 2.6.0 - added 54 | 55 | ### `accounts` {#accounts} 56 | 57 | **Description:** Participants in the conversation.\ 58 | **Type:** Array of [Account]({{< relref "entities/Account" >}})\ 59 | **Version history:**\ 60 | 2.6.0 - added 61 | 62 | ### `last_status` {#last_status} 63 | 64 | **Description:** The last status in the conversation.\ 65 | **Type:** {{}} [Status]({{< relref "entities/Status" >}})\ 66 | **Version history:**\ 67 | 2.6.0 - added 68 | 69 | ## See also 70 | 71 | {{< page-relref ref="methods/conversations" caption="conversations API methods" >}} 72 | 73 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/conversation_serializer.rb" caption="app/serializers/rest/conversation_serializer.rb" >}} 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /content/en/entities/CustomEmoji.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CustomEmoji 3 | description: Represents a custom emoji. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/emoji", 9 | "/entities/Emoji", 10 | "/entities/customemoji", 11 | "/entities/CustomEmoji", 12 | "/api/entities/emoji", 13 | "/api/entities/Emoji", 14 | "/api/entities/customemoji", 15 | "/api/entities/CustomEmoji", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | { 23 | "shortcode": "blobaww", 24 | "url": "https://files.mastodon.social/custom_emojis/images/000/011/739/original/blobaww.png", 25 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/011/739/static/blobaww.png", 26 | "visible_in_picker": true, 27 | "category": "Blobs" 28 | } 29 | ``` 30 | 31 | ## Attributes 32 | 33 | ### `shortcode` {#shortcode} 34 | 35 | **Description:** The name of the custom emoji.\ 36 | **Type:** String\ 37 | **Version history:**\ 38 | 2.0.0 - added 39 | 40 | ### `url` {#url} 41 | 42 | **Description:** A link to the custom emoji.\ 43 | **Type:** String (URL)\ 44 | **Version history:**\ 45 | 2.0.0 - added 46 | 47 | ### `static_url` {#static_url} 48 | 49 | **Description:** A link to a static copy of the custom emoji.\ 50 | **Type:** String (URL)\ 51 | **Version history:**\ 52 | 2.0.0 - added 53 | 54 | ### `visible_in_picker` {#visible_in_picker} 55 | 56 | **Description:** Whether this Emoji should be visible in the picker or unlisted.\ 57 | **Type:** Boolean\ 58 | **Version history:**\ 59 | 2.0.0 - added 60 | 61 | ### `category` {#category} 62 | 63 | **Description:** Used for sorting custom emoji in the picker.\ 64 | **Type:** {{}} String\ 65 | **Version history:**\ 66 | 3.0.0 - added 67 | 68 | ## See also 69 | 70 | {{< page-relref ref="methods/custom_emojis" caption="GET /api/v1/custom_emojis" >}} 71 | 72 | {{< page-relref ref="entities/Status#emojis" caption="Status (`emojis` attribute)" >}} 73 | 74 | {{< page-relref ref="entities/Announcement#emojis" caption="Announcement (`emojis` attribute)" >}} 75 | 76 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/custom_emoji_serializer.rb" caption="app/serializers/rest/custom_emoji_serializer.rb" >}} 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /content/en/entities/DomainBlock.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: DomainBlock 3 | description: Represents a domain that is blocked by the instance. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/domainblock", 9 | "/entities/DomainBlock", 10 | "/api/entities/domainblock", 11 | "/api/entities/DomainBlock", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "domain":"daji******.com", 20 | "digest":"3752f63a7079d60c2de5dceb8bd7608e86a15544eb78a494a482041c3684b37f", 21 | "severity":"suspend", 22 | "comment":"Inappropriate content" 23 | } 24 | ``` 25 | 26 | ## Attributes 27 | 28 | ### `domain` {#domain} 29 | 30 | **Description:** The domain which is blocked. This may be obfuscated or partially censored.\ 31 | **Type:** String\ 32 | **Version history:**\ 33 | 4.0.0 - added 34 | 35 | ### `digest` {#digest} 36 | 37 | **Description:** The SHA256 hash digest of the domain string.\ 38 | **Type:** String (SHA256)\ 39 | **Version history:**\ 40 | 4.0.0 - added 41 | 42 | ### `severity` {#severity} 43 | 44 | **Description:** The level to which the domain is blocked.\ 45 | **Type:** String (Enumerable, oneOf)\ 46 | `silence` = Users from this domain will be hidden from timelines, threads, and notifications (unless you follow the user).\ 47 | `suspend` = Incoming messages from this domain will be rejected and dropped entirely.\ 48 | **Version history:**\ 49 | 4.0.0 - added 50 | 51 | ### `comment` {{%optional%}} {#comment} 52 | 53 | **Description:** An optional reason for the domain block.\ 54 | **Type:** String\ 55 | **Version history:**\ 56 | 4.0.0 - added 57 | 58 | ## See also 59 | 60 | {{< page-relref ref="methods/instance#domain_blocks" caption="GET /api/v1/instance/domain_blocks" >}} 61 | 62 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/domain_block_serializer.rb" caption="app/serializers/rest/domain_block_serializer.rb" >}} 63 | -------------------------------------------------------------------------------- /content/en/entities/EncryptedMessage.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: EncryptedMessage 3 | description: Represents an encrypted message. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/encryptedmessage", 9 | "/entities/EncryptedMessage", 10 | "/entities/encryptedmessage", 11 | "/entities/EncryptedMessage", 12 | ] 13 | draft: true 14 | --- 15 | 16 | {{< hint style="info" >}} 17 | This entity is currently unused. 18 | {{}} 19 | 20 | ## Example 21 | 22 | ```json 23 | ``` 24 | 25 | ## Attributes 26 | 27 | ### `id` {#id} 28 | 29 | **Description:** The ID of the EncryptedMessage in the database.\ 30 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 31 | **Version history:**\ 32 | 3.2.0 - added 33 | 34 | ### `account_id` {#account_id} 35 | 36 | **Description:** The ID of the Account that sent this message.\ 37 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 38 | **Version history:**\ 39 | 3.2.0 - added 40 | 41 | ### `device_id` {#device_id} 42 | 43 | **Description:** The ID of the Device that sent this message.\ 44 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 45 | **Version history:**\ 46 | 3.2.0 - added 47 | 48 | ### `type` {#type} 49 | 50 | **Description:** Whether the message is a pre-key message (used to establish a new session) or a normally encrypted message (part of an existing session).\ 51 | **Type:** String (Enumerable, oneOf)\ 52 | `0` = Pre-key message (used to establish a new session)\ 53 | `1` = Normal encrypted message (part of an existing session)\ 54 | **Version history:**\ 55 | 3.2.0 - added 56 | 57 | ### `body` {#body} 58 | 59 | **Description:** The encrypted message content.\ 60 | **Type:** String\ 61 | **Version history:**\ 62 | 3.2.0 - added 63 | 64 | ### `digest` {#digest} 65 | 66 | **Description:** An HMAC SHA-256 digest hash of the message.\ 67 | **Type:** String (SHA256)\ 68 | **Version history:**\ 69 | 3.2.0 - added 70 | 71 | ### `message_franking` {#message_franking} 72 | 73 | **Description:** A signed value to be used when reporting the message body for its content.\ 74 | **Type:** String\ 75 | **Version history:**\ 76 | 3.2.0 - added 77 | 78 | ### `created_at` {#created_at} 79 | 80 | **Description:** A timestamp for when the message was created.\ 81 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 82 | **Version history:**\ 83 | 3.2.0 - added 84 | 85 | ## See also 86 | 87 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/encrypted_message_serializer.rb" caption="app/serializers/rest/encrypted_message_serializer.rb" >}} 88 | 89 | {{< caption-link url="https://github.com/mastodon/mastodon/pull/13820" caption="Add end-to-end encryption API (#13820)" >}} 90 | 91 | -------------------------------------------------------------------------------- /content/en/entities/ExtendedDescription.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ExtendedDescription 3 | description: Represents an extended description for the instance, to be shown on its about page. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/extendeddescription", 9 | "/entities/ExtendedDescription", 10 | "/api/entities/extendeddescription", 11 | "/api/entities/ExtendedDescription", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "updated_at":"2022-11-03T04:09:07Z", 20 | "content":"

For inquiries not related specifically to the operation of this server, such as press inquiries, please contact press@joinmastodon.org.

\n\n

Funding

\n\n

This server is crowdfunded by Patreon donations. For a list of sponsors, see joinmastodon.org.

\n\n

Reporting and moderation

\n\n

When reporting accounts, please make sure to include at least a few posts that show rule-breaking behaviour, when applicable. If there is any additional context that might help make a decision, please also include it in the comment. This is especially important when the content is in a language nobody on the moderation team speaks.

\n\n

We usually handle reports within 24 hours. Please mind that you are not notified when a report you have made has led to a punitive action, and that not all punitive actions are externally visible. For first time offenses, we may opt to delete offending content, escalating to harsher measures on repeat offenses.

\n\n

Impressum

\n\n

Mastodon gGmbH
\nMühlenstraße 8a
\n14167 Berlin
\nGermany

\n\n

E-Mail-Adresse: hello@joinmastodon.org

\n\n

Vertretungsberechtigt: Eugen Rochko (Geschäftsführer)

\n\n

Umsatzsteuer Identifikationsnummer (USt-ID): DE344258260

\n\n

Handelsregister
\nGeführt bei: Amtsgericht Charlottenburg
\nNummer: HRB 230086 B

\n" 21 | } 22 | ``` 23 | 24 | ## Attributes 25 | 26 | ### `updated_at` {#updated_at} 27 | 28 | **Description:** A timestamp of when the extended description was last updated.\ 29 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 30 | **Version history:**\ 31 | 4.0.0 - added 32 | 33 | ### `content` {#content} 34 | 35 | **Description:** The rendered HTML content of the extended description.\ 36 | **Type:** String (HTML)\ 37 | **Version history:**\ 38 | 4.0.0 - added 39 | 40 | ## See also 41 | 42 | {{< page-relref ref="methods/instance#extended_description" caption="GET /api/v1/instance/extended_description" >}} 43 | 44 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/extended_description_serializer.rb" caption="app/serializers/rest/extended_description_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/FamiliarFollowers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FamiliarFollowers 3 | description: Represents a subset of your follows who also follow some other user. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/familiarfollowers", 9 | "/entities/FamiliarFollowers", 10 | "/api/entities/familiarfollowers", 11 | "/api/entities/FamiliarFollowers", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | [ 19 | { 20 | "id":"1", 21 | "accounts":[ 22 | { 23 | "id":"1087990", 24 | "username":"moss", 25 | "acct":"moss@goblin.camp", 26 | // ... 27 | }, 28 | { 29 | "id":"1092723", 30 | "username":"vivianrose", 31 | "acct":"vivianrose", 32 | // ... 33 | }, 34 | // ... 35 | ] 36 | }, 37 | { 38 | "id":"2", 39 | "accounts":[] 40 | } 41 | ] 42 | ``` 43 | 44 | ## Attributes 45 | 46 | ### `id` {#id} 47 | 48 | **Description:** The ID of the Account in the database.\ 49 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 50 | **Version history:**\ 51 | 3.5.0 - added 52 | 53 | ### `accounts` {#accounts} 54 | 55 | **Description:** Accounts you follow that also follow this account.\ 56 | **Type:** Array of [Account]({{< relref "entities/Account" >}})\ 57 | **Version history:**\ 58 | 3.5.0 - added 59 | 60 | ## See also 61 | 62 | {{< page-relref ref="methods/accounts#familiar_followers" caption="GET /api/v1/accounts/:id/familiar_followers" >}} 63 | 64 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/familiar_followers_serializer.rb" caption="app/serializers/rest/familiar_followers_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/FeaturedTag.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FeaturedTag 3 | description: Represents a hashtag that is featured on a profile. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/featuredtag", 9 | "/entities/FeaturedTag", 10 | "/api/entities/featuredtag", 11 | "/api/entities/FeaturedTag", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "627", 20 | "name": "nowplaying", 21 | "url": "https://mastodon.social/@trwnh/tagged/nowplaying", 22 | "statuses_count": "70", 23 | "last_status_at": "2022-08-29" 24 | } 25 | ``` 26 | 27 | ## Attributes 28 | 29 | ### `id` {#id} 30 | 31 | **Description:** The internal ID of the featured tag in the database.\ 32 | **Type:** String (cast from integer but not guaranteed to be a number)\ 33 | **Version history:**\ 34 | 3.0.0 - added 35 | 36 | ### `name` {#name} 37 | 38 | **Description:** The name of the hashtag being featured.\ 39 | **Type:** String\ 40 | **Version history:**\ 41 | 3.0.0 - added 42 | 43 | ### `url` {#url} 44 | 45 | **Description:** A link to all statuses by a user that contain this hashtag.\ 46 | **Type:** String (URL)\ 47 | **Version history:**\ 48 | 3.3.0 - added 49 | 50 | ### `statuses_count` {#statuses_count} 51 | 52 | **Description:** The number of authored statuses containing this hashtag.\ 53 | **Type:** String\ 54 | **Version history:**\ 55 | 3.0.0 - added 56 | 57 | ### `last_status_at` {#last_status_at} 58 | 59 | **Description:** The date of the last authored status containing this hashtag.\ 60 | **Type:** String ([Date](/api/datetime-format#date))\ 61 | **Version history:**\ 62 | 3.0.0 - added 63 | 64 | ## See also 65 | 66 | {{< page-relref ref="methods/featured_tags" caption="featured_tags API methods" >}} 67 | 68 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/featured_tag_serializer.rb" caption="app/serializers/rest/featured_tag_serializer.rb" >}} 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /content/en/entities/FilterKeyword.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FilterKeyword 3 | description: Represents a keyword that, if matched, should cause the filter action to be taken. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/filterkeyword", 9 | "/entities/FilterKeyword", 10 | "/api/entities/filterkeyword", 11 | "/api/entities/FilterKeyword", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "1197", 20 | "keyword": "bad word", 21 | "whole_word": false 22 | } 23 | ``` 24 | 25 | ## Attributes 26 | 27 | ### `id` {#id} 28 | 29 | **Description:** The ID of the FilterKeyword in the database.\ 30 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 31 | **Version history:**\ 32 | 4.0.0 - added 33 | 34 | ### `keyword` {#keyword} 35 | 36 | **Description:** The phrase to be matched against.\ 37 | **Type:** String\ 38 | **Version history:**\ 39 | 4.0.0 - added 40 | 41 | ### `whole_word` {#whole_word} 42 | 43 | **Description:** Should the filter consider word boundaries? See [implementation guidelines for filters]({{< relref "api/guidelines#filters" >}}).\ 44 | **Type:** Boolean\ 45 | **Version history:**\ 46 | 4.0.0 - added 47 | 48 | ## See also 49 | 50 | {{< page-relref ref="api/guidelines#filters" caption="Implementation guidelines for filters" >}} 51 | 52 | {{< page-relref ref="methods/filters" caption="/api/v2/filters methods" >}} 53 | 54 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/filter_keyword_serializer.rb" caption="app/serializers/rest/filter_keyword_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/FilterResult.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FilterResult 3 | description: Represents a filter whose keywords matched a given status. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/filterresult", 9 | "/entities/FilterResult", 10 | "/api/entities/filterresult", 11 | "/api/entities/FilterResult", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "filter": { 20 | "id": "3", 21 | "title": "Hide completely", 22 | "context": [ 23 | "home" 24 | ], 25 | "expires_at": "2022-09-20T17:27:39.296Z", 26 | "filter_action": "hide" 27 | }, 28 | "keyword_matches": [ 29 | "bad word" 30 | ], 31 | "status_matches": [ 32 | "109031743575371913" 33 | ] 34 | } 35 | ``` 36 | 37 | ## Attributes 38 | 39 | ### `filter` {#filter} 40 | 41 | **Description:** The filter that was matched.\ 42 | **Type:** [Filter]({{< relref "entities/Filter" >}})\ 43 | **Version history:**\ 44 | 4.0.0 - added 45 | 46 | ### `keyword_matches` {#keyword_matches} 47 | 48 | **Description:** The keyword within the filter that was matched.\ 49 | **Type:** {{}} Array of String, or null\ 50 | **Version history:**\ 51 | 4.0.0 - added 52 | 53 | ### `status_matches` {#status_matches} 54 | 55 | **Description:** The status ID within the filter that was matched.\ 56 | **Type:** {{}} Array of String, or null\ 57 | **Version history:**\ 58 | 4.0.0 - added 59 | 60 | ## See also 61 | 62 | {{< page-relref ref="api/guidelines#filters" caption="Implementation guidelines for filters" >}} 63 | 64 | {{< page-relref ref="methods/filters" caption="/api/v2/filters methods" >}} 65 | 66 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/filter_result_serializer.rb" caption="app/serializers/rest/filter_result_serializer.rb" >}} 67 | -------------------------------------------------------------------------------- /content/en/entities/FilterStatus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: FilterStatus 3 | description: Represents a status ID that, if matched, should cause the filter action to be taken. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/filterstatus", 9 | "/entities/FilterStatus", 10 | "/api/entities/filterstatus", 11 | "/api/entities/FilterStatus", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "1", 20 | "status_id": "109031743575371913" 21 | } 22 | ``` 23 | 24 | ## Attributes 25 | 26 | ### `id` {#id} 27 | 28 | **Description:** The ID of the FilterStatus in the database.\ 29 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 30 | **Version history:**\ 31 | 4.0.0 - added 32 | 33 | ### `status_id` {#keyword} 34 | 35 | **Description:** The ID of the Status that will be filtered.\ 36 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 37 | **Version history:**\ 38 | 4.0.0 - added 39 | 40 | ## See also 41 | 42 | {{< page-relref ref="api/guidelines#filters" caption="Implementation guidelines for filters" >}} 43 | 44 | {{< page-relref ref="methods/filters" caption="/api/v2/filters methods" >}} 45 | 46 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/filter_status_serializer.rb" caption="app/serializers/rest/filter_status_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/IdentityProof.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: IdentityProof 3 | description: Represents a proof from an external identity provider. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/identityproof", 9 | "/entities/IdentityProof", 10 | "/api/entities/identityproof", 11 | "/api/entities/IdentityProof", 12 | ] 13 | --- 14 | 15 | {{< hint style="danger" >}} 16 | Identity proofs have been deprecated in 3.5.0 and newer. Previously, the only proof provider was Keybase, but development on Keybase has stalled entirely since it was acquired by Zoom. 17 | {{< /hint >}} 18 | 19 | ```json 20 | { 21 | "provider": "Keybase", 22 | "provider_username": "gargron", 23 | "updated_at": "2019-07-21T20:14:39.596Z", 24 | "proof_url": "https://keybase.io/gargron/sigchain#5cfc20c7018f2beefb42a68836da59a792e55daa4d118498c9b1898de7e845690f", 25 | "profile_url": "https://keybase.io/gargron" 26 | } 27 | ``` 28 | 29 | ## Attributes 30 | 31 | ### `provider` {#provider} 32 | 33 | **Description:** The name of the identity provider.\ 34 | **Type:** String\ 35 | **Version history:**\ 36 | 2.8.0 - added 37 | 38 | ### `provider_username` {#provider_username} 39 | 40 | **Description:** The account owner's username on the identity provider's service.\ 41 | **Type:** String\ 42 | **Version history:**\ 43 | 2.8.0 - added 44 | 45 | ### `updated_at` {#updated_at} 46 | 47 | **Description:** When the identity proof was last updated.\ 48 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 49 | **Version history:**\ 50 | 2.8.0 - added 51 | 52 | ### `proof_url` {#proof_url} 53 | 54 | **Description:** A link to a statement of identity proof, hosted by the identity provider.\ 55 | **Type:** String (URL)\ 56 | **Version history:**\ 57 | 2.8.0 - added 58 | 59 | ### `profile_url` {#profile_url} 60 | 61 | **Description:** The account owner's profile URL on the identity provider.\ 62 | **Type:** String (URL)\ 63 | **Version history:**\ 64 | 2.8.0 - added 65 | 66 | ## See also 67 | 68 | {{< page-relref ref="methods/accounts#identity_proofs" caption="GET /api/v1/accounts/:id/identity_proofs" >}} 69 | 70 | {{< caption-link url="https://github.com/mastodon/mastodon/pull/17045" caption="Remove Keybase integration (#17045)" >}} 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /content/en/entities/List.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: List 3 | description: Represents a list of some users that the authenticated user follows. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/list", 9 | "/entities/List", 10 | "/api/entities/list", 11 | "/api/entities/List", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "12249", 20 | "title": "Friends" 21 | } 22 | ``` 23 | 24 | ## Attributes 25 | 26 | ### `id` {#id} 27 | 28 | **Description:** The internal database ID of the list.\ 29 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 30 | **Version history:**\ 31 | 2.1.0 - added 32 | 33 | ### `title` {#title} 34 | 35 | **Description:** The user-defined title of the list.\ 36 | **Type:** String\ 37 | **Version history:**\ 38 | 2.1.0 - added 39 | 40 | ### `replies_policy` {#replies_policy} 41 | 42 | **Description:** Which replies should be shown in the list.\ 43 | **Type:** String (Enumerable oneOf)\ 44 | `followed` = Show replies to any followed user\ 45 | `list` = Show replies to members of the list\ 46 | `none` = Show replies to no one\ 47 | **Version history:**\ 48 | 3.3.0 - added 49 | 50 | ## See also 51 | 52 | {{< page-relref ref="methods/accounts#lists" caption="GET /api/v1/accounts/:id/lists" >}} 53 | 54 | {{< page-relref ref="methods/lists" caption="lists API methods" >}} 55 | 56 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/list_serializer.rb" caption="app/serializers/rest/list_serializer.rb" >}} 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /content/en/entities/Marker.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Marker 3 | description: Represents the last read position within a user's timelines. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/marker", 9 | "/entities/Marker", 10 | "/api/entities/marker", 11 | "/api/entities/Marker", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "last_read_id": "103194548672408537", 20 | "version": 462, 21 | "updated_at": "2019-11-24T19:39:39.337Z" 22 | } 23 | ``` 24 | 25 | ## Attributes 26 | 27 | ### `last_read_id` {#last_read_id} 28 | 29 | **Description:** The ID of the most recently viewed entity.\ 30 | **Type:** String (cast from integer but not guaranteed to be a number)\ 31 | 3.0.0 - added 32 | 33 | ### `version` {#version} 34 | 35 | **Description:** An incrementing counter, used for locking to prevent write conflicts.\ 36 | **Type:** Integer\ 37 | **Version history:**\ 38 | 3.0.0 - added 39 | 40 | ### `updated_at` {#updated_at} 41 | 42 | **Description:** The timestamp of when the marker was set.\ 43 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 44 | 3.0.0 - added 45 | 46 | ## See also 47 | 48 | {{< page-relref ref="methods/markers" caption="markers API methods" >}} 49 | 50 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/marker_serializer.rb" caption="app/serializers/rest/marker_serializer.rb" >}} 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /content/en/entities/Preferences.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Preferences 3 | description: Represents a user's preferences. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/preferences", 9 | "/entities/Preferences", 10 | "/api/entities/preferences", 11 | "/api/entities/Preferences", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "posting:default:visibility": "public", 20 | "posting:default:sensitive": false, 21 | "posting:default:language": null, 22 | "reading:expand:media": "default", 23 | "reading:expand:spoilers": false 24 | } 25 | ``` 26 | 27 | ## Attributes 28 | 29 | ### `posting:default:visibility` {#posting-default-visibility} 30 | 31 | **Description:** Default visibility for new posts. Equivalent to [CredentialAccount#source\[privacy\]]({{< relref "entities/Account#source-privacy" >}}).\ 32 | **Type:** String (Enumerable, oneOf)\ 33 | `public` = Public post\ 34 | `unlisted` = Unlisted post\ 35 | `private` = Followers-only post\ 36 | `direct` = Direct post\ 37 | **Version history:**\ 38 | 2.8.0 - added 39 | 40 | ### `posting:default:sensitive` {#posting-default-sensitive} 41 | 42 | **Description:** Default sensitivity flag for new posts. Equivalent to [CredentialAccount#source\[sensitive\]]({{< relref "entities/Account#source-sensitive" >}}).\ 43 | **Type:** Boolean\ 44 | **Version history:**\ 45 | 2.8.0 - added 46 | 47 | ### `posting:default:language` {#posting-default-language} 48 | 49 | **Description:** Default language for new posts. Equivalent to [CredentialAccount#source\[language\]]({{< relref "entities/Account#source-language" >}})\ 50 | **Type:** {{}} String (ISO 639-1 language two-letter code), or null\ 51 | **Version history:**\ 52 | 2.8.0 - added 53 | 54 | ### `reading:expand:media` {#reading-expand-media} 55 | 56 | **Description:** Whether media attachments should be automatically displayed or blurred/hidden.\ 57 | **Type:** String (Enumerable, oneOf)\ 58 | `default` = Hide media marked as sensitive\ 59 | `show_all` = Always show all media by default, regardless of sensitivity\ 60 | `hide_all` = Always hide all media by default, regardless of sensitivity\ 61 | **Version history:**\ 62 | 2.8.0 - added 63 | 64 | ### `reading:expand:spoilers` {#reading-expand-spoilers} 65 | 66 | **Description:** Whether CWs should be expanded by default.\ 67 | **Type:** Boolean\ 68 | **Version history:**\ 69 | 2.8.0 - added 70 | 71 | ## See also 72 | 73 | {{< page-relref ref="methods/preferences" caption="preferences API methods" >}} 74 | 75 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/preferences_serializer.rb" caption="app/serializers/rest/preferences_serializer.rb" >}} 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /content/en/entities/PreviewCardAuthor.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PreviewCardAuthor 3 | description: Represents an author in a rich preview card. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/PreviewCardAuthor", 9 | ] 10 | --- 11 | 12 | ## Attributes 13 | 14 | ### `name` {#name} 15 | 16 | **Description:** The original resource author's name. Replaces the deprecated `author_name` attribute of the preview card.\ 17 | **Type:** String\ 18 | **Version history:**\ 19 | 4.3.0 - added 20 | 21 | ### `url` {#url} 22 | 23 | **Description:** A link to the author of the original resource. Replaces the deprecated `author_url` attribute of the preview card.\ 24 | **Type:** String (URL)\ 25 | **Version history:**\ 26 | 4.3.0 - added 27 | 28 | ### `account` {{%nullable%}} {#account} 29 | 30 | **Description:** The fediverse account of the author.\ 31 | **Type:** [Account]({{< relref "entities/Account">}})\ 32 | **Version history:**\ 33 | 4.3.0 - added 34 | 35 | ## See also 36 | 37 | {{< page-relref ref="entities/PreviewCard#authors" caption="PreviewCard (`authors` attribute)" >}} 38 | 39 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/preview_card_serializer.rb" caption="app/serializers/rest/preview_card_serializer.rb" >}} 40 | -------------------------------------------------------------------------------- /content/en/entities/PrivacyPolicy.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: PrivacyPolicy 3 | description: Represents the privacy policy of the instance. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/privacypolicy", 9 | "/entities/PrivacyPolicy", 10 | "/api/entities/privacypolicy", 11 | "/api/entities/PrivacyPolicy", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "updated_at": "2022-10-07T00:00:00+00:00", 20 | "content": "

This privacy policy describes how example.com ("example.com", "we", "us") collects,\nprotects and uses the personally identifiable information you may provide\nthrough the example.com website or its API.

\n\n

What information do we collect?

\n\n
    \n
  • Basic account information: If you register on this server, you may be\nasked to enter a username, an e-mail address and a password.
  • \n
  • Posts, following and other public information: The list of people you\nfollow is listed publicly, the same is true for your followers.
  • \n
  • Direct and followers-only posts: All posts are stored and processed on the\nserver. You may\ntoggle an option to approve and reject new followers manually in the settings.\nPlease keep in mind that the operators of the server and any receiving\nserver may view such messages, and that recipients may screenshot, copy or\notherwise re-share them. Do not share any sensitive information over\nMastodon.
  • \n
  • IPs and other metadata: When you log in, we record the IP address you log\nin from, as well as the name of your browser application.
  • \n
\n\n
\n\n

This document is CC-BY-SA. Originally adapted from the Discourse privacy\npolicy.

\n" 21 | } 22 | ``` 23 | 24 | ## Attributes 25 | 26 | ### `updated_at` {#updated_at} 27 | 28 | **Description:** A timestamp of when the privacy policy was last updated.\ 29 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 30 | **Version history:**\ 31 | 4.0.0 - added 32 | 33 | ### `content` {#content} 34 | 35 | **Description:** The rendered HTML content of the privacy policy.\ 36 | **Type:** String (HTML)\ 37 | **Version history:**\ 38 | 4.0.0 - added 39 | 40 | ## See also 41 | 42 | {{< page-relref ref="methods/instance#privacy_policy" caption="GET /api/v1/instance/privacy_policy" >}} 43 | 44 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/privacy_policy_serializer.rb" caption="app/serializers/rest/privacy_policy_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Reaction.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reaction 3 | description: Represents an emoji reaction to an Announcement. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/announcementreaction", 9 | "/entities/AnnouncementReaction", 10 | "/entities/reaction", 11 | "/entities/Reaction", 12 | "/api/entities/announcementreaction", 13 | "/api/entities/AnnouncementReaction", 14 | "/api/entities/reaction", 15 | "/api/entities/Reaction", 16 | ] 17 | --- 18 | 19 | ## Example 20 | 21 | ```json 22 | [ 23 | { 24 | "name": "bongoCat", 25 | "count": 9, 26 | "me": false, 27 | "url": "https://files.mastodon.social/custom_emojis/images/000/067/715/original/fdba57dff7576d53.png", 28 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/067/715/static/fdba57dff7576d53.png" 29 | }, 30 | { 31 | "name": "🤔", 32 | "count": 1, 33 | "me": true 34 | } 35 | ] 36 | ``` 37 | 38 | ## Attributes 39 | 40 | ### `name` {#name} 41 | 42 | **Description:** The emoji used for the reaction. Either a unicode emoji, or a custom emoji's shortcode.\ 43 | **Type:** String\ 44 | **Version history:**\ 45 | 3.1.0 - added 46 | 47 | ### `count` {#count} 48 | 49 | **Description:** The total number of users who have added this reaction.\ 50 | **Type:** Integer\ 51 | **Version history:**\ 52 | 3.1.0 - added 53 | 54 | ### `me` {{%optional%}} {#me} 55 | 56 | **Description:** If there is a currently authorized user: Have you added this reaction?\ 57 | **Type:** Boolean\ 58 | **Version history:**\ 59 | 3.1.0 - added 60 | 61 | ### `url` {{%optional%}} {#url} 62 | 63 | **Description:** If the reaction is a custom emoji: A link to the custom emoji.\ 64 | **Type:** String (URL)\ 65 | **Version history:**\ 66 | 3.1.0 - added 67 | 68 | ### `static_url` {{%optional%}} {#static_url} 69 | 70 | **Description:** If the reaction is a custom emoji: A link to a non-animated version of the custom emoji.\ 71 | **Type:** String (URL)\ 72 | **Version history:**\ 73 | 3.1.0 - added 74 | 75 | ## See also 76 | 77 | {{< page-relref ref="methods/announcements#put-reactions" caption="Add a reaction to an announcement" >}} 78 | 79 | {{< page-relref ref="methods/announcements#delete-reactions" caption="Delete a reaction from an announcement" >}} 80 | 81 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/reaction_serializer.rb" caption="app/serializers/rest/reaction_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/RelationshipSeveranceEvent.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: RelationshipSeveranceEvent 3 | description: Summary of a moderation or block event that caused follow relationships to be severed. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/RelationshipSeveranceEvent", 9 | "/api/entities/RelationshipSeveranceEvent", 10 | ] 11 | --- 12 | 13 | ## Attributes 14 | 15 | ### `id` {#id} 16 | 17 | **Description:** The ID of the relationship severance event in the database.\ 18 | **Type:** String (cast from integer)\ 19 | **Version history:**\ 20 | 4.3.0 - added 21 | 22 | ### `type` {#type} 23 | 24 | **Description:** Type of event.\ 25 | **Type:** String (Enumerable oneOf)\ 26 | `domain_block` = A moderator suspended a whole domain\ 27 | `user_domain_block` = The user blocked a whole domain\ 28 | `account_suspension` = A moderator suspended a specific account\ 29 | **Version history:**\ 30 | 4.3.0 - added 31 | 32 | ### `purged` {#purged} 33 | 34 | **Description:** Whether the list of severed relationships is unavailable because the underlying issue has been purged.\ 35 | **Type:** Boolean\ 36 | **Version history:**\ 37 | 4.3.0 - added 38 | 39 | ### `target_name` {#target_name} 40 | 41 | **Description:** Name of the target of the moderation/block event. This is either a domain name or a user handle, depending on the event type.\ 42 | **Type:** String\ 43 | **Version history:**\ 44 | 4.3.0 - added 45 | 46 | ### `followers_count` {#followers_count} 47 | 48 | **Description:** Number of followers that were removed as result of the event.\ 49 | **Type:** Integer\ 50 | **Version history:**\ 51 | 4.3.0 - added 52 | 53 | ### `following_count` {#following_count} 54 | 55 | **Description:** Number of accounts the user stopped following as result of the event.\ 56 | **Type:** Integer\ 57 | **Version history:**\ 58 | 4.3.0 - added 59 | 60 | ### `created_at` {#created_at} 61 | 62 | **Description:** When the event took place.\ 63 | **Type:** String ([Datetime](/api/datetime-format#datetime))\ 64 | **Version history:**\ 65 | 4.3.0 - added 66 | -------------------------------------------------------------------------------- /content/en/entities/Rule.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rule 3 | description: Represents a rule that server users should follow. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/rule", 9 | "/entities/Rule", 10 | "/api/entities/rule", 11 | "/api/entities/Rule", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "2", 20 | "text": "No racism, sexism, homophobia, transphobia, ableism, xenophobia, or casteism.", 21 | "hint": "Transphobic behavior such as intentional misgendering and deadnaming is strictly prohibited. Promotion of \"conversion therapy\" is strictly prohibited. Criticism of governments and religions is permissible unless being used as a proxy for discrimination.", 22 | "translations": { 23 | "fr": { 24 | "text": "Pas de racisme, sexisme, homophobie, transphobie, validisme, xénophobie ou casteisme.", 25 | "hint": "Les comportements transhobes tels que le deadnaming intentionel sont formellement interdits. La promotion des « thérapies de conversion » est formellement interdite. La critique des gouvernements et des religions est permise à moins qu'elle ne soit utilisée comme excuse pour de la discrimination." 26 | } 27 | } 28 | } 29 | ``` 30 | 31 | ## Attributes 32 | 33 | ### `id` {#id} 34 | 35 | **Description:** An identifier for the rule.\ 36 | **Type:** String (cast from integer, but not guaranteed to be a number)\ 37 | **Version history:**\ 38 | 3.4.0 - added 39 | 40 | ### `text` {#text} 41 | 42 | **Description:** The rule to be followed.\ 43 | **Type:** String \ 44 | **Version history:**\ 45 | 3.4.0 - added 46 | 47 | ### `hint` {#hint} 48 | 49 | **Description:** Longer-form description of the rule.\ 50 | **Type:** String \ 51 | **Version history:**\ 52 | 4.3.0 - added 53 | 54 | ### `translations` {#translations} 55 | 56 | **Description:** Available translations for this rule's `text` and `hint`, as a Hash where keys are locale codes and values are hashes with `text` and `hint` keys.\ 57 | **Type:** Hash\ 58 | **Version history:**\ 59 | 4.4.0 - added 60 | 61 | ## See also 62 | 63 | {{< page-relref ref="methods/instance#rules" caption="GET /api/v1/instance/rules" >}} 64 | 65 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/models/rule.rb" caption="app/models/rule.rb" >}} 66 | 67 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/rule_serializer.rb" caption="app/serializers/rest/rule_serializer.rb" >}} 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /content/en/entities/ShallowQuote.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ShallowQuote 3 | description: Represents a quote or a quote placeholder, with the current authorization status. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/shallow_quote", 9 | ] 10 | --- 11 | 12 | ## Example 13 | 14 | ```json 15 | { 16 | "state": "accepted", 17 | "status_id": "103270115826048975" 18 | } 19 | ``` 20 | 21 | ## Attributes 22 | 23 | ### `state` {#state} 24 | 25 | **Description:** The state of the quote.\ 26 | **Type:** String (Enumerable, oneOf)\ 27 | `pending` = The quote has not been acknowledged by the quoted account yet, and requires authorization before being displayed.\ 28 | `accepted` = The quote has been accepted and can be displayed. This is the only case where `status_id` is non-null.\ 29 | `rejected` = The quote has been explicitly rejected by the quoted account, and cannot be displayed.\ 30 | `revoked` = The quote has been previously accepted, but is now revoked, and thus cannot be displayed.\ 31 | `deleted` = The quote has been approved, but the quoted post itself has now been deleted.\ 32 | `unauthorized` = The quote has been approved, but cannot be displayed because the user is not authorized to see it. 33 | **Version history:**\ 34 | 4.4.0 - added 35 | 36 | ### `status_id` {#status_id} 37 | 38 | **Description:** The identifier of the status being quoted, if the quote has been accepted. This will be `null`, unless the `state` attribute is `accepted`.\ 39 | **Type:** {{}} String (cast from an integer but not guaranteed to be a number) or null\ 40 | **Version history:**\ 41 | 4.4.0 - added 42 | 43 | ## See also 44 | 45 | {{< page-relref ref="entities/quote" caption="Quote" >}} 46 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/shallow_quote_serializer.rb" caption="app/serializers/rest/shallow_quote_serializer.rb" >}} 47 | -------------------------------------------------------------------------------- /content/en/entities/StatusSource.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: StatusSource 3 | description: Represents a status's source as plain text. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/statussource", 9 | "/entities/StatusSource", 10 | "/api/entities/statussource", 11 | "/api/entities/StatusSource", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "108942703571991143", 20 | "text": "this is a status that will be edited", 21 | "spoiler_text": "" 22 | } 23 | ``` 24 | 25 | ## Attributes 26 | 27 | ### `id` {#id} 28 | 29 | **Description:** ID of the status in the database.\ 30 | **Type:** String (cast from an integer but not guaranteed to be a number)\ 31 | **Version history:**\ 32 | 3.5.0 - added 33 | 34 | ### `text` {#text} 35 | 36 | **Description:** The plain text used to compose the status.\ 37 | **Type:** String\ 38 | **Version history:**\ 39 | 3.5.0 - added 40 | 41 | ### `spoiler_text` {#spoiler_text} 42 | 43 | **Description:** The plain text used to compose the status's subject or content warning.\ 44 | **Type:** String\ 45 | **Version history:**\ 46 | 3.5.0 - added 47 | 48 | ## See also 49 | 50 | {{< page-relref ref="methods/statuses#source" caption="GET /api/v1/statuses/:id/source" >}} 51 | 52 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/status_source_serializer.rb" caption="app/serializers/rest/status_source_serializer.rb" >}} -------------------------------------------------------------------------------- /content/en/entities/Suggestion.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Suggestion 3 | description: Represents a suggested account to follow and an associated reason for the suggestion. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/suggestion", 9 | "/entities/Suggestion", 10 | "/api/entities/suggestion", 11 | "/api/entities/Suggestion", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "source": "staff", 20 | "account": { 21 | "id": "109031732217496096", 22 | "username": "alice", 23 | "acct": "alice", 24 | // ... 25 | } 26 | } 27 | ``` 28 | 29 | ## Attributes 30 | 31 | ### `source` {#source} 32 | 33 | **Description:** The reason this account is being suggested.\ 34 | **Type:** String (Enumerable oneOf)\ 35 | `staff` = This account was manually recommended by your administration team\ 36 | `past_interactions` = You have interacted with this account previously\ 37 | `global` = This account has many reblogs, favourites, and active local followers within the last 30 days\ 38 | **Version history:**\ 39 | 3.4.0 - added\ 40 | 4.3.0 - deprecated, use `sources` instead 41 | 42 | ### `sources` {#sources} 43 | 44 | **Description:** A list of reasons this account is being suggested. This replaces `source`\ 45 | **Type:** Array of String (Enumerable oneOf)\ 46 | `featured` = This account was manually recommended by your administration team. Equivalent to the `staff` value for `source`\ 47 | `most_followed` = This account has many active local followers\ 48 | `most_interactions` = This account had many reblogs and favourites within the last 30 days\ 49 | `similar_to_recently_followed` = This account's profile is similar to your most recent follows\ 50 | `friends_of_friends` = This account is followed by people you follow\ 51 | **Version history:**\ 52 | 4.3.0 - added 53 | 54 | ### `account` {#account} 55 | 56 | **Description:** The account being recommended to follow.\ 57 | **Type:** [Account]({{< relref "entities/Account" >}})\ 58 | **Version history:**\ 59 | 3.4.0 - added 60 | 61 | ## See also 62 | 63 | {{< page-relref ref="methods/suggestions#v2" caption="GET /api/v2/suggestions" >}} 64 | 65 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/suggestion_serializer.rb" caption="app/serializers/rest/suggestion_serializer.rb" >}} 66 | 67 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/models/account_suggestions.rb" caption="app/models/account_suggestions.rb" >}} 68 | 69 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/models/account_suggestions/" caption="app/models/account_suggestions/" >}} 70 | 71 | -------------------------------------------------------------------------------- /content/en/entities/TermsOfService.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: TermsOfService 3 | description: Represents the terms of service of the instance. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/termsofservice", 9 | "/entities/TermsOfService", 10 | "/api/entities/termsofservice", 11 | "/api/entities/TermsOfService", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "effective_date": "2025-04-15", 20 | "effective": true, 21 | "content": "

Foo bar newer

\n", 22 | "succeeded_by": null 23 | } 24 | ``` 25 | 26 | ## Attributes 27 | 28 | ### `effective_date` {#effective_date} 29 | 30 | **Description:** The date these terms of service are coming or have come in effect.\ 31 | **Type:** String ([Date](/api/datetime-format#date))\ 32 | **Version history:**\ 33 | 4.4.0 - added 34 | 35 | ### `effective` {#effective} 36 | 37 | **Description:** Whether these terms of service are currently in effect.\ 38 | **Type:** Boolean\ 39 | **Version history:**\ 40 | 4.4.0 - added 41 | 42 | ### `content` {#content} 43 | 44 | **Description:** The rendered HTML content of the terms of service.\ 45 | **Type:** String (HTML)\ 46 | **Version history:**\ 47 | 4.4.0 - added 48 | 49 | ### `succeeded_by` {#succeeded_by} 50 | 51 | **Description:** If there are newer terms of service, their effective date.\ 52 | **Type:** {{}} String ([Date](/api/datetime-format#date))\ 53 | **Version history:**\ 54 | 4.4.0 - added 55 | 56 | ## See also 57 | 58 | {{< page-relref ref="methods/instance#terms_of_service" caption="GET /api/v1/instance/terms_of_service" >}} 59 | 60 | {{< page-relref ref="methods/instance#terms_of_service_date" caption="GET /api/v1/instance/terms_of_service/:date" >}} 61 | 62 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/terms_of_service_serializer.rb" caption="app/serializers/rest/terms_of_service_serializer.rb" >}} 63 | -------------------------------------------------------------------------------- /content/en/entities/Token.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Token 3 | description: Represents an OAuth token used for authenticating with the API and performing actions. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/token", 9 | "/entities/Token", 10 | "/api/entities/token", 11 | "/api/entities/Token", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "access_token": "ZA-Yj3aBD8U8Cm7lKUp-lm9O9BmDgdhHzDeqsY8tlL0", 20 | "token_type": "Bearer", 21 | "scope": "read write follow push", 22 | "created_at": 1573979017 23 | } 24 | ``` 25 | 26 | ## Attributes 27 | 28 | ### `access_token` {#access_token} 29 | 30 | **Description:** An OAuth token to be used for authorization.\ 31 | **Type:** String\ 32 | **Version history:**\ 33 | 0.1.0 - added 34 | 35 | ### `token_type` {#token_type} 36 | 37 | **Description:** The OAuth token type. Mastodon uses `Bearer` tokens.\ 38 | **Type:** String\ 39 | **Version history:**\ 40 | 0.1.0 - added 41 | 42 | ### `scope` {#scope} 43 | 44 | **Description:** The OAuth scopes granted by this token, space-separated.\ 45 | **Type:** String\ 46 | **Version history:**\ 47 | 0.1.0 - added 48 | 49 | ### `created_at` {#created_at} 50 | 51 | **Description:** When the token was generated.\ 52 | **Type:** Number (UNIX Timestamp)\ 53 | **Version history:**\ 54 | 0.1.0 - added 55 | 56 | ## See also 57 | 58 | {{< page-relref ref="oauth-scopes" caption="OAuth Scopes" >}} 59 | 60 | {{< page-relref ref="methods/oauth" caption="oauth methods" >}} 61 | 62 | {{< page-ref page="client/token" >}} 63 | 64 | {{< page-ref page="client/authorized" >}} -------------------------------------------------------------------------------- /content/en/entities/V1_Filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: V1::Filter 3 | description: Represents a user-defined filter for determining which statuses should not be shown to the user. Contains a single keyword or phrase. 4 | menu: 5 | docs: 6 | parent: entities 7 | aliases: [ 8 | "/entities/v1_filter/", 9 | "/entities/V1_Filter", 10 | "/api/entities/v1_filter/", 11 | "/api/entities/V1_Filter", 12 | ] 13 | --- 14 | 15 | ## Example 16 | 17 | ```json 18 | { 19 | "id": "8449", 20 | "phrase": "test", 21 | "context": [ 22 | "home", 23 | "notifications", 24 | "public", 25 | "thread" 26 | ], 27 | "whole_word": false, 28 | "expires_at": "2019-11-26T09:08:06.254Z", 29 | "irreversible": true 30 | } 31 | ``` 32 | 33 | ## Attributes 34 | 35 | ### `id` {#id} 36 | 37 | **Description:** The ID of the filter in the database.\ 38 | **Type:** String (cast from an integer, but not guaranteed to be a number)\ 39 | **Version history:**\ 40 | 2.4.3 - added 41 | 42 | ### `phrase` {#phrase} 43 | 44 | **Description:** The text to be filtered.\ 45 | **Type:** String\ 46 | **Version history:**\ 47 | 2.4.3 - added 48 | 49 | ### `context` {#context} 50 | 51 | **Description:** The contexts in which the filter should be applied.\ 52 | **Type:** Array of String (Enumerable anyOf)\ 53 | `home` = home timeline and lists\ 54 | `notifications` = notifications timeline\ 55 | `public` = public timelines\ 56 | `thread` = expanded thread of a detailed status\ 57 | `account` = when viewing a profile\ 58 | **Version history:**\ 59 | 2.4.3 - added\ 60 | 3.1.0 - added `account` 61 | 62 | ### `expires_at` {#expires_at} 63 | 64 | **Description:** When the filter should no longer be applied.\ 65 | **Type:** {{}} String ([Datetime](/api/datetime-format#datetime)), or null if the filter does not expire\ 66 | **Version history:**\ 67 | 2.4.3 - added 68 | 69 | ### `irreversible` {#irreversible} 70 | 71 | **Description:** Should matching entities in home and notifications be dropped by the server? See [implementation guidelines for filters]({{< relref "api/guidelines#filters" >}}).\ 72 | **Type:** Boolean\ 73 | **Version history:**\ 74 | 2.4.3 - added 75 | 76 | ### `whole_word` {#whole_word} 77 | 78 | **Description:** Should the filter consider word boundaries? See [implementation guidelines for filters]({{< relref "api/guidelines#filters" >}}).\ 79 | **Type:** Boolean\ 80 | **Version history:**\ 81 | 2.4.3 - added 82 | 83 | ## See also 84 | 85 | {{< page-relref ref="api/guidelines#filters" caption="Implementation guidelines for filters" >}} 86 | 87 | {{< page-relref ref="methods/filters#v1" caption="v1 filters API" >}} 88 | 89 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/serializers/rest/v1/filter_serializer.rb" caption="app/serializers/rest/v1/filter_serializer.rb" >}} 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /content/en/methods/admin/_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: admin API methods 3 | description: View and manage administrative information. 4 | menu: 5 | docs: 6 | weight: 80 7 | name: admin 8 | parent: methods 9 | identifier: methods-admin 10 | --- -------------------------------------------------------------------------------- /content/en/methods/custom_emojis.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: custom_emojis API methods 3 | description: >- 4 | Each site can define and upload its own custom emoji to be attached to 5 | profiles or statuses. 6 | menu: 7 | docs: 8 | weight: 30 9 | name: custom_emojis 10 | parent: methods-instance 11 | identifier: methods-custom_emojis 12 | aliases: [ 13 | "/methods/custom_emojis", 14 | "/api/methods/custom_emojis", 15 | "/methods/instance/custom_emojis" 16 | ] 17 | --- 18 | 19 | 22 | 23 | ## View all custom emoji {#get} 24 | 25 | ```http 26 | GET /api/v1/custom_emojis HTTP/1.1 27 | ``` 28 | 29 | Returns custom emojis that are available on the server. 30 | 31 | **Returns:** Array of [CustomEmoji]({{< relref "entities/CustomEmoji" >}})\ 32 | **OAuth:** Public\ 33 | **Version history:**\ 34 | 2.0.0 - added\ 35 | 3.0.0 - optional `category` added to response 36 | 37 | #### Response 38 | ##### 200: OK 39 | 40 | Sample response from mastodon.social 41 | 42 | ```json 43 | [ 44 | { 45 | "shortcode": "aaaa", 46 | "url": "https://files.mastodon.social/custom_emojis/images/000/007/118/original/aaaa.png", 47 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/007/118/static/aaaa.png", 48 | "visible_in_picker": true 49 | }, 50 | { 51 | "shortcode": "AAAAAA", 52 | "url": "https://files.mastodon.social/custom_emojis/images/000/071/387/original/AAAAAA.png", 53 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/071/387/static/AAAAAA.png", 54 | "visible_in_picker": true 55 | }, 56 | 57 | // [...] 58 | 59 | { 60 | "shortcode": "blobaww", 61 | "url": "https://files.mastodon.social/custom_emojis/images/000/011/739/original/blobaww.png", 62 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/011/739/static/blobaww.png", 63 | "visible_in_picker": true, 64 | "category": "Blobs" 65 | }, 66 | 67 | // [...] 68 | 69 | { 70 | "shortcode": "yikes", 71 | "url": "https://files.mastodon.social/custom_emojis/images/000/031/275/original/yikes.png", 72 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/031/275/static/yikes.png", 73 | "visible_in_picker": true 74 | }, 75 | { 76 | "shortcode": "ziltoid", 77 | "url": "https://files.mastodon.social/custom_emojis/images/000/017/094/original/05252745eb087806.png", 78 | "static_url": "https://files.mastodon.social/custom_emojis/images/000/017/094/static/05252745eb087806.png", 79 | "visible_in_picker": true 80 | } 81 | ] 82 | ``` 83 | 84 | --- 85 | 86 | ## See also 87 | 88 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/v1/custom_emojis_controller.rb" caption="app/controllers/api/v1/custom_emojis_controller.rb" >}} -------------------------------------------------------------------------------- /content/en/methods/directory.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: directory API methods 3 | description: A directory of profiles that your website is aware of. 4 | menu: 5 | docs: 6 | weight: 20 7 | name: directory 8 | parent: methods-instance 9 | identifier: methods-directory 10 | aliases: [ 11 | "/methods/directory", 12 | "/api/methods/directory", 13 | "/methods/instance/directory", 14 | ] 15 | --- 16 | 17 | 20 | 21 | ## View profile directory {#get} 22 | 23 | ```http 24 | GET /api/v1/directory HTTP/1.1 25 | ``` 26 | 27 | List accounts visible in the directory. 28 | 29 | **Returns:** Array of [Account]({{< relref "entities/account" >}})\ 30 | **OAuth:** Public\ 31 | **Version history:**\ 32 | 3.0.0 - added 33 | 34 | #### Request 35 | 36 | ##### Query parameters 37 | 38 | offset 39 | : Number. Skip the first n results. 40 | 41 | limit 42 | : Number. How many accounts to load. Defaults to 40 accounts. Max 80 accounts. 43 | 44 | order 45 | : String. Use `active` to sort by most recently posted statuses (default) or `new` to sort by most recently created profiles. 46 | 47 | local 48 | : Boolean. If true, returns only local accounts. 49 | 50 | #### Response 51 | ##### 200: OK 52 | 53 | Sample results with limit=2 54 | 55 | ```json 56 | [ 57 | { 58 | "id": "796927", 59 | "username": "eternalNo3", 60 | "acct": "eternalNo3@best-friends.chat", 61 | "display_name": "ESD@┓(谷)┏", 62 | // ... 63 | }, 64 | { 65 | "id": "787648", 66 | "username": "ariel", 67 | "acct": "ariel@best-friends.chat", 68 | "display_name": "あやっしー🧜🏻‍♀️", 69 | // ... 70 | } 71 | ] 72 | ``` 73 | 74 | --- 75 | 76 | ## See also 77 | 78 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/v1/directories_controller.rb" caption="app/controllers/api/v1/directories_controller.rb" >}} -------------------------------------------------------------------------------- /content/en/methods/emails.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: emails API methods 3 | description: Request a new confirmation email, potentially to a new email address. 4 | menu: 5 | docs: 6 | weight: 20 7 | name: emails 8 | parent: methods-apps 9 | identifier: methods-emails 10 | aliases: [ 11 | "/methods/emails", 12 | "/api/methods/emails", 13 | "/methods/apps/emails", 14 | ] 15 | --- 16 | 17 | 20 | 21 | ## Resend confirmation email {#confirmation} 22 | 23 | ```http 24 | POST /api/v1/emails/confirmations HTTP/1.1 25 | ``` 26 | 27 | Resend a new confirmation email. If an email is provided, updates the unconfirmed user's email before resending the confirmation email. 28 | 29 | **Returns:** Empty\ 30 | **OAuth:** User token issued to the client that created the unconfirmed user\ 31 | **Version history:**\ 32 | 3.4.0 - added 33 | 34 | #### Request 35 | ##### Headers 36 | 37 | Authorization 38 | : {{}} Provide this header with `Bearer ` to gain authorized access to this API method. 39 | 40 | ##### Form data parameters 41 | 42 | email 43 | : String. If provided, updates the unconfirmed user's email before resending the confirmation email. 44 | 45 | #### Response 46 | ##### 200: OK 47 | 48 | ```json 49 | {} 50 | ``` 51 | 52 | ##### 403: Forbidden 53 | 54 | The client associated with the token does not own the unconfirmed user. 55 | 56 | ```json 57 | { 58 | "error": "This method is only available to the application the user originally signed-up with" 59 | } 60 | ``` 61 | 62 | Alternatively, the user has already confirmed their email. 63 | 64 | ```json 65 | { 66 | "error": "This method is only available while the e-mail is awaiting confirmation" 67 | } 68 | ``` 69 | 70 | --- 71 | 72 | ## See also 73 | 74 | {{< page-relref ref="methods/apps#create" caption="POST /api/v1/apps" >}} 75 | 76 | {{< page-relref ref="methods/accounts#create" caption="POST /api/v1/accounts" >}} 77 | 78 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/v1/emails/confirmations_controller.rb" caption="app/controllers/api/v1/emails/confirmations_controller.rb" >}} 79 | -------------------------------------------------------------------------------- /content/en/methods/mutes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: mutes API methods 3 | description: View your mutes. See also accounts/:id/{mute,unmute} 4 | menu: 5 | docs: 6 | weight: 30 7 | name: mutes 8 | parent: methods-accounts 9 | identifier: methods-mutes 10 | aliases: [ 11 | "/methods/mutes", 12 | "/api/methods/mutes", 13 | "/methods/accounts/mutes", 14 | ] 15 | --- 16 | 17 | 20 | 21 | ## View muted accounts {#get} 22 | 23 | ```http 24 | GET /api/v1/mutes HTTP/1.1 25 | ``` 26 | 27 | Accounts the user has muted. 28 | 29 | **Returns:** Array of [Account]({{}})\ 30 | **OAuth:** User token + `read:mutes` or `follow`\ 31 | **Version history:**\ 32 | 0.0.0 - added\ 33 | 3.3.0 - added `mute_expires_at` 34 | 35 | #### Request 36 | ##### Headers 37 | 38 | Authorization 39 | : {{}} Provide this header with `Bearer ` to gain authorized access to this API method. 40 | 41 | ##### Query parameters 42 | 43 | max_id 44 | : **Internal parameter.** Use HTTP `Link` header for pagination. 45 | 46 | since_id 47 | : **Internal parameter.** Use HTTP `Link` header for pagination. 48 | 49 | limit 50 | : Integer. Maximum number of results to return. Defaults to 40 accounts. Max 80 accounts. 51 | 52 | #### Response 53 | ##### 200: OK 54 | 55 | Sample response with limit=2. 56 | 57 | ```json 58 | [ 59 | { 60 | "id": "963076", 61 | "username": "Simia91", 62 | "acct": "Simia91", 63 | "display_name": "", 64 | // ... 65 | }, 66 | { 67 | "id": "1001524", 68 | "username": "hakogamae", 69 | "acct": "hakogamae", 70 | "display_name": "Hakogamae 🔞", 71 | // ... 72 | } 73 | ] 74 | ``` 75 | 76 | Because Mute IDs are generally not exposed via any API responses, you will have to parse the HTTP `Link` header to load older or newer results. See [Paginating through API responses]({{}}) for more information. 77 | 78 | ```http 79 | Link: ; rel="next", ; rel="prev" 80 | ``` 81 | 82 | ##### 401: Unauthorized 83 | 84 | Invalid or missing Authorization header. 85 | 86 | ```json 87 | { 88 | "error": "The access token is invalid" 89 | } 90 | ``` 91 | 92 | --- 93 | 94 | ## See also 95 | 96 | {{< page-relref ref="methods/accounts#mute" caption="POST /api/v1/accounts/:id/mute" >}} 97 | 98 | {{< page-relref ref="methods/accounts#unmute" caption="POST /api/v1/accounts/:id/unmute" >}} 99 | 100 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/v1/mutes_controller.rb" caption="app/controllers/api/v1/mutes_controller.rb" >}} -------------------------------------------------------------------------------- /content/en/methods/oembed.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: oembed API methods 3 | description: For generating OEmbed previews. 4 | menu: 5 | docs: 6 | weight: 110 7 | name: oembed 8 | parent: methods 9 | identifier: methods-oembed 10 | aliases: [ 11 | "/methods/oembed", 12 | "/api/methods/oembed", 13 | ] 14 | --- 15 | 16 | 19 | 20 | ## Get OEmbed info as JSON {#get} 21 | 22 | ```http 23 | GET /api/oembed HTTP/1.1 24 | ``` 25 | 26 | **Returns:** OEmbed metadata\ 27 | **OAuth:** Public\ 28 | **Version history:**\ 29 | 1.0.0 - added 30 | 31 | #### Request 32 | ##### Query parameters 33 | 34 | url 35 | : {{}} String. URL of a status. 36 | 37 | maxwidth 38 | : Number. Width of the iframe. Defaults to 400 39 | 40 | maxheight 41 | : Number. Height of the iframe. Defaults to null 42 | 43 | #### Response 44 | ##### 200: OK 45 | 46 | Represents OEmbed "rich" preview, with associated iframe and metadata. 47 | 48 | ```json 49 | { 50 | "type": "rich", 51 | "version": "1.0", 52 | "title": "New status by trwnh", 53 | "author_name": "infinite love ⴳ", 54 | "author_url": "https://mastodon.social/@trwnh", 55 | "provider_name": "mastodon.social", 56 | "provider_url": "https://mastodon.social/", 57 | "cache_age": 86400, 58 | "html": "", 59 | "width": 400, 60 | "height": null 61 | } 62 | ``` 63 | 64 | ##### 404: Not found 65 | 66 | Status not found for given URL 67 | 68 | ```json 69 | { 70 | "error": "Record not found" 71 | } 72 | ``` 73 | 74 | --- 75 | 76 | ## See also 77 | 78 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/oembed_controller.rb" caption="app/controllers/api/oembed_controller.rb" >}} -------------------------------------------------------------------------------- /content/en/methods/preferences.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: preferences API methods 3 | description: Preferred common behaviors to be shared across clients. 4 | menu: 5 | docs: 6 | weight: 110 7 | name: preferences 8 | parent: methods-accounts 9 | identifier: methods-preferences 10 | aliases: [ 11 | "/methods/preferences", 12 | "/api/methods/preferences", 13 | "/methods/accounts/preferences", 14 | ] 15 | --- 16 | 17 | 20 | 21 | ## View user preferences {#get} 22 | 23 | ```http 24 | GET /api/v1/preferences HTTP/1.1 25 | ``` 26 | 27 | Preferences defined by the user in their account settings. 28 | 29 | **Returns:** Preferences by key and value\ 30 | **OAuth:** User token + `read:accounts`\ 31 | **Version history:**\ 32 | 2.8.0 - added 33 | 34 | #### Request 35 | 36 | ##### Headers 37 | 38 | Authorization 39 | : {{}} Provide this header with `Bearer ` to gain authorized access to this API method. 40 | 41 | #### Response 42 | ##### 200: OK 43 | 44 | ```json 45 | { 46 | "posting:default:visibility": "public", 47 | "posting:default:sensitive": false, 48 | "posting:default:language": null, 49 | "reading:expand:media": "default", 50 | "reading:expand:spoilers": false 51 | } 52 | ``` 53 | 54 | ##### 401: Unauthorized 55 | 56 | Invalid or missing Authorization header. 57 | 58 | ```json 59 | { 60 | "error": "The access token is invalid" 61 | } 62 | ``` 63 | 64 | --- 65 | 66 | ## See also 67 | 68 | {{< caption-link url="https://github.com/mastodon/mastodon/blob/main/app/controllers/api/v1/preferences_controller.rb" caption="app/controllers/api/v1/preferences_controller.rb" >}} -------------------------------------------------------------------------------- /content/en/methods/proofs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: proofs API methods 3 | description: For use by identity providers. 4 | menu: 5 | docs: 6 | weight: 100 7 | name: proofs 8 | parent: methods 9 | identifier: methods-proofs 10 | aliases: [ 11 | "/methods/proofs", 12 | "/api/methods/proofs", 13 | "/methods/accounts/proofs", 14 | ] 15 | --- 16 | 17 | 20 | 21 | {{< hint style="danger" >}} 22 | **Deprecated**\ 23 | Identity proofs have been deprecated in 3.5.0 and newer. Previously, the only proof provider was Keybase, but development on Keybase has stalled entirely since it was acquired by Zoom. 24 | {{< /hint >}} 25 | 26 | ## View identity proofs {{%removed%}} {#get} 27 | 28 | ```http 29 | GET /api/proofs HTTP/1.1 30 | ``` 31 | 32 | **Returns:** custom response defined by provider\ 33 | **OAuth:** Public\ 34 | **Version history:**\ 35 | 2.8.0 - added 36 | 37 | #### Request 38 | ##### Query parameters 39 | 40 | provider 41 | : String. The identity provider to be looked up. Currently only supports `keybase` (case-sensitive). 42 | 43 | username 44 | : String. The username on the selected identity provider. 45 | 46 | #### Response 47 | ##### 200: OK 48 | 49 | Looking up the `username` "gargron" via the "keybase" `provider` 50 | 51 | ```json 52 | { 53 | "avatar": "https://files.mastodon.social/accounts/avatars/000/000/001/original/d96d39a0abb45b92.jpg", 54 | "signatures": [ 55 | { 56 | "sig_hash": "5cfc20c7018f2beefb42a68836da59a792e55daa4d118498c9b1898de7e845690f", 57 | "kb_username": "gargron" 58 | } 59 | ] 60 | } 61 | ``` 62 | 63 | ##### 404: Not found 64 | 65 | No identity proof found for `username` on `provider` 66 | 67 | ```json 68 | { 69 | "error": "Record not found" 70 | } 71 | ``` 72 | 73 | --- 74 | 75 | ## See also 76 | 77 | {{< caption-link url="https://github.com/mastodon/mastodon/pull/17045" caption="Remove Keybase integration (#17045)" >}} -------------------------------------------------------------------------------- /content/en/spec/bearcaps.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Bearcaps 3 | description: A URI scheme combining URLs with a Bearer token needed to access them. 4 | menu: 5 | docs: 6 | weight: 60 7 | parent: spec 8 | --- 9 | 10 | ## What are bearcaps? {#intro} 11 | 12 | In certain cases, resources may not be publically available and may require a token to successfully fetch them. This is typically done by using an HTTP `Authorization` header containing a `Bearer` token, like so: 13 | 14 | ```http 15 | GET https://example.com/foo 16 | Authorization: Bearer 17 | ``` 18 | 19 | Bearcaps allow for a way to link to a resource with the token included, like so: 20 | 21 | ``` 22 | bear:?t=&u=https://example.com/foo' 23 | ``` 24 | 25 | To translate a bearcap to an HTTP request, make a request to the `u` parameter and attach the `t` parameter as a `Bearer` token in the `Authorization` header. 26 | 27 | ## How are bearcaps used in Mastodon? {#usage} 28 | 29 | As of v3.3.0, Mastodon supports dereferencing bearcaps in a received Activity. Bearcaps are not used for sending any Activity yet. 30 | -------------------------------------------------------------------------------- /content/en/user/contacts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: More settings 3 | description: Invite new users, sort through your contacts, and secure your account. 4 | menu: 5 | docs: 6 | weight: 80 7 | parent: user 8 | --- 9 | 10 | ## Generating invites {#invites} 11 | 12 | {{< figure src="assets/invites.png" width="70%" caption="Invite people to join your server" >}} 13 | 14 | Invite links can be generated and shared with other people, and some servers require invites in order to register for an account. When generating an invite link, you can set the max uses to limit how many times a certain link is used, or how long it has been active. Invite links can be deactivated at any time. 15 | 16 | ## Follows and followers {#relationships} 17 | 18 | {{< figure src="assets/relationships.png" width="70%" caption="Mutuals who have not moved their account, sorted by most recent" >}} 19 | 20 | Within settings, you can find a relationship manager that lets you filter and sort through the profiles that you are connected to, based on different criteria: 21 | 22 | * **Relationship:** whether a profile is following you, followed by you, or mutually following each other. 23 | * **Account status:** whether a profile is currently marked as redirected or not. 24 | * **Account activity:** whether a profile has posted in the past month or not. 25 | 26 | You can select certain users to unfollow, or to remove from your followers, by checking the boxes and clicking the corresponding button in the table header. 27 | 28 | ## Account settings {#account} 29 | 30 | From the account settings, you can change your email address, set a new password, revoke active sessions or authorized apps, and enable two-factor authentication. 31 | -------------------------------------------------------------------------------- /content/en/user/discoverability.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Promoting yourself and others 3 | description: Give visibility to hashtags, profiles, and posts. 4 | menu: 5 | docs: 6 | weight: 60 7 | parent: user 8 | --- 9 | 10 | ## Featured links on your profile {#featured} 11 | 12 | ### Featured hashtags {#featured-tags} 13 | 14 | {{< figure src="assets/featured-tags.png" width="50%" caption="A list of featured hashtags showing last usage date and total usage" >}} 15 | 16 | You can choose to feature certain hashtags that you use often. Go to **Preferences** > **Edit profile** > **Featured hashtags** to manage which hashtags you are currently featuring. Once featured, a link to the hashtag will be shown on your profile, with the date of the last time it was used in a status, as well as the total number of statuses in which it was used. 17 | 18 | ## Pinned posts {#pinned} 19 | 20 | {{< figure src="assets/pinned.png" width="70%" caption="An example of a user's pinned post" >}} 21 | 22 | You can choose to feature up to 5 of your own public posts at the top of your profile. Go to the status dropdown menu and click "Pin on profile". When you pin a post, it will appear at the top of your "posts" tab, before all other chronological status updates. 23 | 24 | ## Profile directory {#directory} 25 | 26 | {{< figure src="assets/directory.png" width="70%" caption="List of users in the profile directory" >}} 27 | 28 | The profile directory shows all accounts that have opted into being shown in the directory, and can be used to quickly find profiles that you may be interested in following. 29 | 30 | The profile directory can be sorted either by recent activity (the most recently published status), or by new arrivals (the most recently created accounts). The directory can also be filtered to show only local accounts, or to show all known accounts that your website is aware of. 31 | 32 | Profiles appear as cards that include a user's display name, address, account bio, and some brief stats such as how many posts they've published, how many followers they have, and the time of their last published status. 33 | -------------------------------------------------------------------------------- /content/en/user/external.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using Mastodon externally 3 | description: You can browse and interact on Mastodon from external apps or websites. 4 | menu: 5 | docs: 6 | weight: 90 7 | parent: user 8 | --- 9 | 10 | ## Remote interactions on another Mastodon site {#interact} 11 | 12 | When you are browsing a remote site powered by Mastodon, clicking on any of the interaction buttons will load a dialog that will redirect you to your local site. 13 | 14 | {{< figure src="assets/external-reply.gif" caption="A remote interaction dialog for replying to a post" >}} 15 | 16 | ## Signing into a client app {#apps} 17 | 18 | You can use your Mastodon account to sign into any app that implements the Mastodon API. A list of such apps can be found at [https://joinmastodon.org/apps](https://joinmastodon.org/apps). 19 | -------------------------------------------------------------------------------- /content/ja/user/contacts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: その他の設定 3 | description: 新しいユーザーの招待、連絡先を並べ替え、安全なアカウント。 4 | menu: 5 | docs: 6 | weight: 80 7 | parent: user 8 | --- 9 | 10 | ## 招待リンクの作成 {#invites} 11 | 12 | {{< figure src="assets/image%20%2862%29.png" caption="設定で、人を招待するリンクを作成できる" >}} 13 | 14 | 招待リンクを作成して他の人に配ることができます。一部のサーバーではアカウンを登録するために招待を必要とします。招待リンクを作成するときに、そのリンクの使用回数の最大値や有効期限を設定できます。招待リンクはいつでも無効にできます。 15 | 16 | ## フォローとフォロワー {#relationships} 17 | 18 | {{< figure src="assets/image%20%2849%29.png" caption="相互にフォローしているアカウントのうち、引っ越ししていな人を「最後の活動」で並び替えたところ" >}} 19 | 20 | 設定では、繋がりを管理できます。次に挙げるさまざまな基準に基づいて、あなたが繋がっているプロフィールをフィルターしたり並び替えて表示できます。 21 | 22 | * **関係:** あなたのフォロー、フォロワー、または相互にフォローしているプロフィール。 23 | * **状態:** プロフィールが現在リダイレクト済みとしてマークされているか(引っ越し済み)、されていないか(標準)。 24 | * **活動:** 過去1か月の間にそのプロフィールが投稿したかどうか(投稿していないものは非アクティブ)。 25 | 26 | 特定のユーザーのフォローを解除したりフォロワーを外したりすることは、各チェックボックスにチェックを付けて、表見出しにあるボタンをクリックすることで可能です。 27 | 28 | ## アカウント設定 {#account} 29 | 30 | アカウント設定から、メールアドレスの変更、新しいパスワードの設定、現在ログインしているセッションまたは認可済みアプリの取り消し、そして2要素認証を有効にできます。 31 | 32 | ## 本人証明 {#proofs} 33 | 34 | プロフィール補足情報で[リンク検証](../profile#verification)を行ってrel=meリンクを設定することは、あなたの本人証明を行うための1つの方法です。しかし、マストドンはより一般的な証明プロバイダーのサブシステムにも対応しています。ただし現在、このサブシステムに対応しているIDプロバイダーはKeybaseのみです。 35 | 36 | ### Keybaseを使ったID検証 {#keybase} 37 | 38 | {{< figure src="assets/image%20%2860%29.png" caption="プロフィールにおける本人証明" >}} 39 | 40 | はじめに、Keybaseに登録し、Keybaseアカウント上でGPG公開鍵を生成するかアップロードするかします。次に、「prove more identities(他のIDを証明する)」に進みます。そして、動ているあなたのサーバーを見つけてください。もし見つからない場合はKeybaseにその内容を問い合わせてください。Mastodonのドメインを選択し、ユーザー名を入力します。Mastodonアカウントで認可し、証明メッセージを投稿することで、あなたのIDを証明できます。これを一度行うと本人証明が確立され、KeybaseがIDを証明したことをプロフィールに表示します。 41 | 42 | {{< hint style="danger" >}} 43 | **Keybaseの検証は元に戻せません。** Keybaseは本人証明に変更不可能な署名チェーンを使用するため、KeybaseでIDを一度証明するとそれを削除できません。関連付けられた秘密鍵を使って取り消しメッセージに署名することでのみ、本人証明を取り消せます。 44 | {{< /hint >}} 45 | -------------------------------------------------------------------------------- /content/ja/user/discoverability.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 自分や他のユーザーの宣伝 3 | description: ハッシュタグ、プロフィール、投稿を目立たせられます。 4 | menu: 5 | docs: 6 | weight: 60 7 | parent: user 8 | --- 9 | 10 | ## プロフィールにある、注目を集められるリンク {#featured} 11 | 12 | ### 注目のハッシュタグ {#featured-tags} 13 | 14 | {{< figure src="assets/image%20%2858%29.png" caption="注目のハッシュタグでは、最終更新日時と使用数も表示される" >}} 15 | 16 | あなたがよく使う特定のハッシュタグを目立たさせられます。いまの時点でどんなハッシュタグを目立たせたいかを管理するためには、設定から「プロフィール」-「注目のハッシュタグ」に移動してください。そうして目立たせると、そのハッシュタグへのリンクが、最後に使った更新日時とどの程度使われたかを示す使用数とともに、あなたのプロフィールに表示されるでしょう。 17 | 18 | ### おすすめプロフィール {#featured-profiles} 19 | 20 | {{< figure src="assets/image%20%2833%29.png" caption="ランダムに選択される、4つのおすすめプロフィール" >}} 21 | 22 | フォローしているユーザーのプロフィールを目立たせられます。そのユーザーのプロフィールに移動して、ドロップダウンメニューにある「プロフィールで紹介する」をクリックします。プロフィールを目立たせると、自分のプロフィールにある「あなたのおすすめ」という見出しの下の領域に、そのプロフィールへのリンクが表示されるでしょう。4つまでのプロフィールが一度に表示されます。これらのプロフィールは、ページが読み込まれる度に、あなたがおすすめするプロフィールの中からランダムに選択されます。 23 | 24 | ## 固定された投稿 {#pinned} 25 | 26 | {{< figure src="assets/image%20%2837%29.png" caption="mastodon.social/@gargronにおける固定されたトゥート" >}} 27 | 28 | プロフィールの上部に、自分の公開投稿を5つまで目立たせられます。該当ステータスのドロップダウンメニューから「プロフィールに固定表示(=ピン留め)」をクリックします。トゥートを固定すると、すべての時系列ステータスの更新の前、つまりトゥート欄の上部に、固定したトゥートが表示されます。 29 | 30 | ## ディレクトリ {#directory} 31 | 32 | {{< figure src="assets/image%20%2831%29.png" caption="mastodon.socialにおけるディレクトリ" >}} 33 | 34 | ディレクトリ(=プロフィールディレクトリ)では、ディレクトリに表示することを選択したすべてのアカウントが表示されます。これを使うことで、フォローを検討できそうなプロフィールを簡単に見つけるのに役立ちます。 35 | 36 | ディレクトリは、最近の活動順(新しく掲載されたステータス順)、または新着順(新しく作られたアカウント順)のいずれかに並び変えられます。また、あなたのいるサーバーに所属しているアカウントのみ、またはあなたのいるサーバーが把握している既知の連合でフィルターすることもできます。 37 | 38 | 各プロフィールは、そのユーザーの表示名やアドレス、プロフィール文、そして公開投稿数やフォロワー数、最後の活動(現在から最終更新日時までの時間)といった簡単な統計を含めたカードとして表示されます。 39 | -------------------------------------------------------------------------------- /content/ja/user/external.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 外部からのMasotodonの使用 3 | description: 外部のアプリやウェブサイトからMastodonを閲覧して操作できます。 4 | menu: 5 | docs: 6 | weight: 90 7 | parent: user 8 | --- 9 | 10 | ## 別のMastodonサイト上での遠隔操作 {#interact} 11 | 12 | {{< figure src="assets/image%20%2863%29.png" caption="Mastodonサイトにおける公開投稿のパーマリンクの例" >}} 13 | 14 | Mastodonが動いている別のサイトを閲覧しているときに操作ボタンをクリックすると、あなたの所属するサイトにリダイレクトするダイアログが読み込まれます。 15 | 16 | {{< figure src="assets/image%20%288%29.png" caption="トゥートに返信するための遠隔操作のダイアログ" >}} 17 | 18 | ## クライアントアプリでのログイン {#apps} 19 | 20 | Mastodonアカウントがあれば、Mastodon APIを実装しているどんなアプリにもログインできます。このようなアプリの一覧は、[https://joinmastodon.org/apps](https://joinmastodon.org/apps)に掲載されています。 21 | -------------------------------------------------------------------------------- /content/ja/user/moving.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: アカウントの引っ越しや削除 3 | description: 自分の情報は自由に扱えます。 4 | menu: 5 | docs: 6 | weight: 100 7 | parent: user 8 | --- 9 | 10 | ## 自分の情報のエクスポート {#export} 11 | 12 | {{< figure src="assets/image%20%2835%29.png" caption="設定における「データのエクスポート」ページ" >}} 13 | 14 | 設定から「データのエクスポート」に移動して、現在フォローしているアカウント、現在作成しているリスト、現在ブロックしているアカウント、現在ミュートしているアカウント、および現在ブロックしているドメインを、CSVファイルとしていつでもダウンロードできます。フォロー、ブロック、ミュート、ドメインブロックの一覧は、設定から「データのインポート」で追加できます。この追加は、結合または上書きのいずれかで実行できます。 15 | 16 | トゥートとメディアのアーカイブについてのリクエストは7日に1回行うことができ、ActivityPub JSON形式でダウンロードできます。Mastodonは現在、技術的な制限により、トゥートやメディアの追加に対応していません。しかし、ActivityPubドキュメントを解釈できるソフトウェアを使うことでアーカイブを見ることができます。 17 | 18 | ## プロフィールのリダイレクトまたは引っ越し {#migration} 19 | 20 | 設定の「アカウント」の下部に、アカウントのリダイレクトまたは引っ越しに関連する項目を見つけられます。 21 | 22 | ### プロフィールのリダイレクト {#redirect} 23 | 24 | {{< figure src="assets/image%20%2853%29.png" caption="プロフィールのリダイレクトのための設定欄" >}} 25 | 26 | アカウントをリダイレクトすると、そのアカウントからの投稿が無効になります。そのとき、新しいアカウントを示して「引っ越ししました」という案内を表示します。あなたのプロフィールを見ている誰もがこの案内を見ることができ、新しいアカウントであなたをフォローできることに気づくでしょう。リダイレクトを設定したアカウントはフォローできません。リダイレクトはいつでもキャンセルできます。 27 | 28 | ### プロフィールの引っ越し {#move} 29 | 30 | {{< figure src="assets/image%20%2847%29.png" caption="プロフィールを引っ越しするための設定欄" >}} 31 | 32 | アカウントを引っ越しすることは、アカウントをリダイレクトすることと同じです。ただしソフトウェアがMoveアクティビティに対応している場合、現在のあなたのアカウントをフォローしている人は、そのフォローが解除され、新しいアカウントをフォローし直すことを不可逆的に実行します。技術的な制限のためトゥートは引っ越しされません。また、再度引っ越しようとしてもできない、とても重いクールダウン期間があるため、この引っ越し機能を使う前に十分に注意してください。 33 | 34 | ### アカウントエイリアス {#aliases} 35 | 36 | {{< figure src="assets/image%20%2840%29.png" caption="エイリアス管理画面" >}} 37 | 38 | プロフィールの引っ越しは、2つのアカウントがエイリアスを設定している場合のみに実行できます。現在、アカウントエイリアスはプロフィールの引っ越し以外に使われません。引っ越しを始める前に、新しいアカウントのエイリアスとして古いアカウントを設定する必要があります。エイリアスの設定は特に何かを起こすことはなく、そのエイリアス自体を元に戻せます。 39 | 40 | ## アカウントの削除 {#delete} 41 | 42 | {{< figure src="assets/image%20%2816%29.png" caption="アカウント削除の設定欄。" >}} 43 | 44 | 設定の「アカウント」の下部に、アカウントを削除するための設定欄を見つけられます。アカウントを削除すると元に戻せず、プロフィールとユーザー名の両方が永久に使えなくなります。 45 | -------------------------------------------------------------------------------- /content/ja/user/preferences.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 環境の設定 3 | description: あなたの好きなようにカスタマイズできます。 4 | menu: 5 | docs: 6 | weight: 70 7 | parent: user 8 | --- 9 | 10 | ## ユーザーインターフェースのカスタマイズ {#interface} 11 | 12 | ### テーマの選択 {#theme} 13 | 14 | Mastodonのデフォルトはダークテーマですが、ライトまたはハイコントラストのテーマも選択できます。 15 | 16 | {{< figure src="assets/image%20%2834%29.png" caption="Mastodonのライトテーマ" >}} 17 | 18 | ### レイアウトの選択 {#layout} 19 | 20 | Mastodonは初期設定で、単純なシングルカラム(=1つの縦列)レイアウトになっています。その左側がトゥートするための領域であり、右側がカラム内容を変更するための切り替えメニューを持っています。 21 | 22 | 上級者向けウェブインターフェース(=上級者向けUI)を有効にすることも選択できます。これを有効にすると、複数のカラムを同時に固定して表示できます。 23 | 24 | {{< figure src="assets/image%20%2832%29.png" caption="上級者向けウェブインターフェース" >}} 25 | 26 | どちらのインターフェースでも、新しい投稿がされると、その更新が自動的に読み込まれます。新着件数をカラムの一番上にバナー状のボタンとして表示する、手動更新モード(=スローモード;Slow Mode)を有効にすることもできます。このときは、そのバナーをクリックしたときのみ読み込まれるでしょう。 27 | 28 | アクセシビリティ上の理由から、アニメーションGIFの自動再生は初期設定で無効にしています。もしアニメーションを見たいなら、アニメーションGIFを有効にできます。また、UIにおけるアニメーションの動きを減らすこともできます。 29 | 30 | トレンドタグは、上級者向けUIではスタートのカラムの下に、簡易UIではカラム切り替えメニューの下に表示されるか、または隠されています(表示するのに十分な余白領域がある場合にのみ表示されます)。 31 | 32 | ### 確認ダイアログ {#confirm} 33 | 34 | 特定の操作を実行する前に、その確認を行うことを選択できます。現在、次の操作を実行する前に確認を行うことを設定できます。 35 | 36 | * フォローの解除 37 | * ブースト 38 | * 削除 39 | 40 | ### 閲覧注意コンテンツ {#sensitive} 41 | 42 | 初期設定において、閲覧注意(=センシティブ)としてマークが付けられたメディアは、クリックするまで覆われてしまい、その後ろに隠れてしまいます。閲覧注意のマークが付けられているかどうかに関係なく、この覆われた後ろにあるメディアを常に表示または非表示にすることも選択できます。 43 | 44 | 隠されたメディアや読み込むことができなかったメディアに、BlurHashアルゴリズムによって処理された色付きの階調を使います。画像の色を使っていますが、詳細をぼかすわけです。この階調を使うことを無効にもできます。 45 | 46 | {{< figure src="assets/image%20%286%29.png" caption="ぼかしたサムネイルの例" >}} 47 | 48 | コンテンツ警告を伴う投稿は初期設定で折りたたまれますが、その警告を常に展開して完全な投稿を表示することも選択できます。 49 | 50 | ## 通知の制御 {#notifications} 51 | 52 | ### メールの送信 {#email} 53 | 54 | マストドン内で受け取る通知の種類に応じて、メールで通知することを選択できます。次の通知の種類で有効にできます。 55 | 56 | * フォロー 57 | * フォローリクエスト 58 | * ブースト 59 | * お気に入り 60 | * メンション 61 | 62 | ダイジェストメールを有効にすることもできます。これにより、長期間使っていないときに受信した通知の概要が分かります。 63 | 64 | ### 特定の通知のブロック {#hide-notifications} 65 | 66 | フォローしていない人やフォロワー以外の人からの通知を受信しないように選択できます。これにより、返信、お気に入り、ブースト、その他のやり取りが表示されなくなります。 67 | 68 | フォローしていない人からダイレクトメッセージを受信したときに通知を受信しないように選択することもできます。 69 | 70 | ## その他、選択できること {#misc} 71 | 72 | 検索エンジンによるインデックスを拒否すると、`noindex`フラグが公開プロフィールと各ステータスページに追加されます。 73 | 74 | 繋がり(=あなたのネットワーク)を隠すと、フォローリストとフォロワーリストが非公開になります。 75 | 76 | {{< figure src="assets/image%20%284%29.png" caption="繋がりを非表示にすることを選択したプロフィール" >}} 77 | 78 | 複数回ブーストされた投稿をフィードの上部に再度表示したい場合は、タイムラインにおける「ブーストをまとめる」を無効にすることで可能になります。 79 | 80 | ### 初期設定での投稿 {#posting} 81 | 82 | 投稿のプライバシーは初期設定で「公開」になっています。その代わりに、新しい投稿を未収載またはフォロワー限定にする初期設定を選択できます。投稿のプライバシーレベルの説明については、[「トゥートの投稿」における「公開範囲」の項](../posting#privacy)を参照してください。 83 | 84 | 初期設定では、投稿する際の言語は自動的に検出されます。しかしこの検出は不正確であり、間違っている可能性があります。 85 | 特定の言語で主にまたは必ず投稿する場合は、その言語を設定することをおすすめします。 86 | 87 | 閲覧注意のメディアを頻繁に投稿する場合は、メディアを常に閲覧注意としてマークを付ける選択もできます。 88 | 89 | ### 言語による公開タイムラインのフィルター {#languages} 90 | 91 | 公開タイムラインを閲覧しているときに、特定の言語で検出した投稿のみを表示するように選択できます。しかしながら、その言語の検出は非常に不正確であるため、無効にしたはずの言語の投稿が表示されたり、検出した言語の投稿を見逃したりする可能性があることに注意してください。 92 | -------------------------------------------------------------------------------- /content/ja/user/profile.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: プロフィールの設定 3 | description: 新しいアカウントで始めよう。 4 | menu: 5 | docs: 6 | weight: 20 7 | parent: user 8 | --- 9 | 10 | ## あなたの外観 {#appearance} 11 | 12 | {{< figure src="assets/image%20%2829%29.png" caption="プロフィールカードでは表示名、アイコン、ヘッダーが表示される" >}} 13 | 14 | 設定の「プロフィール」を選択して「外観」に移動し、あなたのプロフィールが他の人にどのように見られるかを変更できます。 15 | 16 | ### 表示名 {#name} 17 | 18 | 表示名(=ディスプレイネーム)は他のユーザーにとって、あなたのアドレスの前に表示される名前です。標準では30文字までの表示名を設定できます。 19 | 20 | ### プロフィール {#bio} 21 | 22 | プロフィール(=バイオ)は、プロフィール部分でメモとして表示される、あなた自身の短い説明です。標準では500文字までのプロフィールを設定できます。 23 | 24 | ### アイコン {#avatar} 25 | 26 | アイコン(=アバター)は投稿の横に表示され、視覚的にあなたであることを示す情報の一つです。サイズとして2MBまでのPNG、GIF、またはJPG形式の画像をアイコンとしてアップロードできます。この画像は400x400に縮小されます。 27 | 28 | ### ヘッダー {#header} 29 | 30 | ヘッダーは、プロフィールの上部で表示されたり、またディレクトリで使われるプロフィールカードにおいて表示されたりするバナー画像です。サイズとして2MBまでのPNG、GIF、またはJPG形式の画像をヘッダーとしてアップロードできます。この画像は1500x500に縮小されます。 31 | 32 | ## プロフィールに関するフラグ {#flags} 33 | 34 | プロフィールに関するフラグを設定することで、どのようにマストドンを使っているかを、他の人に知らせることができます。 35 | 36 | ![]({{ relUrl "/assets/image%20%281%29.png" }}) 37 | 38 | ### 承認制アカウント {#locked} 39 | 40 | 承認制アカウントにすることで、次の2つが引き起こされます。 41 | 42 | - 新しいフォロワーを自動的に受け入れなくなります。その代わりに、その新しいフォロワーを手動で承認する必要があります。 43 | - 他のユーザーに対して鍵アイコンを表示し、フォローがすぐに受け入れられないことを知らせます。 44 | 45 | ### BOTアカウント {#bot} 46 | 47 | BOT(ボット)のフラグを有効にすると、BOTアイコンがプロフィールに追加されます。BOTアイコンは、そのプロフィールが自動化された行動を実行したり、そのアカウントを持っている人に監視されていない可能性があったりすることを他の人に知らせます。他のソフトウェアではBOTプロフィールを普通の場合と異なるように取り扱っているかもしれませんが、Mastodonでは現在、視覚的な表示としてのみBOTフラグを取り扱っています。 48 | 49 | ### ディレクトリ {#discoverable} 50 | 51 | ディレクトリ(=プロフィールディレクトリ)に掲載されることを許可することで、プロフィールを一覧できる機能を通して、あなたのプロフィールを見つけられるようにします。 52 | 53 | ## プロフィール補足情報 {#fields} 54 | 55 | プロフィール補足情報(=プロフィールメタデータ)は、プロフィール上で簡単に拾い読みできる補足情報を追加する手段です。4つの行を持っていて、そこではラベルとその値を設定できます。例えば、次のように記入できます。 56 | 57 | | ラベル | 内容 | 58 | | :--- | :--- | 59 | | 年齢 | 25 | 60 | | 国 | ドイツ | 61 | | 代名詞 | he/him | 62 | | ウェブサイト | https://example.com | 63 | 64 | 何を書くかは完全にあなた次第です。その内容はメンション、ハッシュタグ、カスタム絵文字、リンクを含められます。 65 | 66 | ### リンク検証 {#verification} 67 | 68 | 申請書を元にした検証と青い認証済みのバッジは、中央型の権威なしには不可能です。しかしながらMastodonでは、プロフィールに書いたリンクが本当にあなたの所有であることを証明するために、リンク先のページからもMasotodonのプロフィールにリンクできます。Mastodonからのリンクの一つがすでに知られていて信用できるあなた個人のホームページである場合には、本人確認の次善策として機能させられるでしょう。 69 | 70 | プロフィール補足情報にリンクを書くと、Mastodonは、リンクされているページがMastodonのプロフィールにもリンクしているかを確認します。もしそのような場合、Mastodonで書いたリンクの横に検証済みのチェックマークが付きます。これにより、あなたがそのリンクを所有していることを確認できます。 71 | 72 | この仕組みの裏側では、リンクされているページに`rel="me"`属性があることをMastodonが確認します。また、Mastodonのプロフィール補足情報のリンクでも`rel="me"`を設定します。 73 | 74 | {{< hint style="info" >}} 75 | Mastodonは自己ホスト型であるため、人々がすでに信頼しているあなたのドメインでMastodonをホストすること以上に、あなたの本人確認を行う良い手段はありません。 76 | {{< /hint >}} 77 | -------------------------------------------------------------------------------- /content/ja/user/run-your-own.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 自分のサーバーを動かすこと 3 | description: 4 | menu: 5 | docs: 6 | weight: 9999 7 | parent: user 8 | --- 9 | 10 | ## なぜ自分のMastodonサーバーを動かしたいのか? 11 | 12 | * 他の人のルールや気まぐれの対象となることなく、ウェブ上であなた自身の声を完全に制御できます。あなたのサーバーはあなたの所有物であり、あなたが決めたルールを持っているわけです。そのサーバーはあなたが続けたい限り存続します。 13 | * あなた自身のサーバー上にあなたは*孤立されません*。他のサーバーにいるどんな人もフォローでき、その人たちもあなたをフォローできます。そして同じサーバーにいるかのようにメッセージを交換できるのです。 14 | * サーバーにおける登録を唯一あなただけに制限して個人の(マイクロ)ブログのように運用するか、または家族や友人への招待のみにしてコミュニティを維持するか、誰でも登録できるサーバーとして運用するか。それはあなた次第です! 15 | 16 | {{< hint style="warning" >}} 17 | 公共のインターネットサービスの提供はモデレーション作業やコミュニティ管理を伴います。そのような作業は、あなたのサーバーが大きくなるほど複雑になることに注意してください。 18 | {{< /hint >}} 19 | 20 | ## とどのつまり、自分のMastodonサーバーを動かしたい 21 | 22 | 以下があなたに必要なものです。 23 | 24 | * **ドメイン名。** これはあなたと他の人があなたのサーバーにアクセスする手段になり、あなたとあなたのユーザーがネットワーク上で識別されるのに必要です。 25 | 26 | * **入手方法:** Namecheap、Gandiなど、無数にあるドメイン名レジストラのいずれかより。ドメイン名の選択に応じて異なる費用が毎年かかります。 27 | * **VPS。** インターネットに常時接続されていて、Mastodonコードを実行できるところです。 28 | 29 | * **入手方法:** DigitalOcean、Hetzner、Exoscale、Scalewayなど、無数にあるホスティングプロバイダーのいずれかより。ハードウェアの仕様に応じて異なる費用が毎月または毎年かかります。 30 | * **電子メールプロバイダー**。 Mastodonは確認リンクとさまざまな通知を電子メールで送信しています。自分でSMTPサーバーをホストすることもできますが、サードパーティのプロバイダーを単に使うことよりも信頼性を持たせることははるかに難しいです。 31 | 32 | * **入手方法:** Mailgun、SparkPost、Postmark、Sendgridなど、SMTP APIを公開している無数にある電子メールホスティングプロバイダーのいずれかより。電子メールの送信量に基づいて毎月費用がかかります。 33 | * 選択項目:**オブジェクトストレージプロバイダー。** Mastodonにおいて、あなたやあなたのユーザーがアップロードしたファイルは、そのサーバーが実行されているVPSのハードディスクドライブに保存されます。しかし、ハードディスクドライブは通常無制限に使えませんし、後でアップグレードすることは難しいです。オブジェクトストレージプロバイダーは実質的に無制限の従量制ファイルストレージを提供します。 34 | 35 | * **入手方法:** Amazon S3、Exoscale、Wasabi、Google Cloudなど、S3互換またはOpenStack Swift互換のAPIを持っているもの。ファイルの保存量とそれらがアクセスされる頻度に基づいて費用が毎月かかります。 36 | 37 | 上記の要件のすべてを満たさないかもしれませんが、この多くを処理してくれる**専用のMastodonホスティングプロバイダー**がいくつかあります。技術的なことは他の誰かにすべて処理してもらうことに関心があるなら、ホスティングプロバイダーを選択をしても良いでしょう。通常、あなたのサーバーのドメイン名は別途購入する必要があります。こういったホスティングプロバイダーの一部は次のとおりです。 38 | 39 | {{< caption-link url="https://masto.host" caption="Masto.host" >}} 40 | 41 | {{< caption-link url="https://hostdon.jp" caption="Hostdon" >}} 42 | 43 | {{< caption-link url="https://app.spacebear.ee/mastodon" caption="Spacebear" >}} 44 | 45 | 管理されたホスティングによるサーバー構築は、ソフトウェアのインストールとメンテナンスの経験がないとか、またはそういったことを望まない人にとって最適です。しかしながら、自分で用意したハードウェア上で構成要素すべてを組むことで、スケーリング、パフォーマンス、およびカスタマイズをよりきちんと制御できます。 46 | 47 | また、**DigitalOcean用のワンクリックインストールイメージ**を提供しています。これはあなたの選択肢に、DigitalOceanのドロップレットを加えます。インストール手順どおりに対話型のセットアップウィザードを進めるだけで、基本的なすべての機能を利用できるようになります。 48 | 49 | {{< caption-link url="https://marketplace.digitalocean.com/apps/mastodon" caption="DigitalOcean用の、Mastodonワンクリックインストールイメージ" >}} 50 | 51 | ただし、このワンクリックインストールイメージは単一マシンへのセットアップを前提としています。Mastodonはとてもよくスケールアウトされます。あなたの要求がマシン1台の能力を超えてくる場合、Mastodonは複数のアプリサーバー、バックグラウンドワーカー、複数のRedisバックエンド、PostgreSQLレプリカに分割できます。しかし、ワンクリックインストールではその手間を省くことはできません。 52 | 53 | もしMastodonをインストールすることに興味がある場合は、次の手順に進んでください。 54 | 55 | {{< page-ref page="admin/prerequisites" >}} 56 | -------------------------------------------------------------------------------- /content/ja/user/signup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: アカウントの登録 3 | description: あなたにとって最適なコミュニティを見つけよう。 4 | menu: 5 | docs: 6 | weight: 10 7 | parent: user 8 | --- 9 | 10 | ## ウェブサイトの選択 {#picker} 11 | 12 | 登録するウェブサイトを選択できます。それは電子メールプロバイダーを選択したり、またはWorld of WarcraftのRealmにおいて新しいキャラクターを選択したりするようなものです。登録したウェブサイトはあなたのサービスプロバイダーとなり、あなたのアカウント、あなたのプロフィール、そしてあなたのホームフィードを管理します。 13 | 14 | {{< hint style="info" >}} 15 | [joinmastodon.org](https://joinmastodon.org/#getting-started)ではカテゴリや言語別に、サーバーの一覧を閲覧できます。 16 | {{< /hint >}} 17 | 18 | ### ウェブサイトのポリシーの理解 {#tos} 19 | 20 | サービスに登録する前に、そのポリシーと利用規約を理解することが重要です。Mastodonのウェブサイトは通常、`/about/more`のページにそのポリシーを掲載しています。そのウェブサイトにログインしていないときには、最初に訪問したページの「もっと詳しく」をクリックするとこのポリシーを見つけられます。 21 | 22 | ### 登録の様式 {#signup} 23 | 24 | Mastodonでは異なる3つの登録様式(自由登録、招待、承認)のいずれかを、ウェブサイトの管理者が設定できます。 25 | 26 | #### 自由登録 {#open} 27 | 28 | 一部のウェブサイトではすぐに登録できるでしょう。その場合にはユーザー名とメールアドレス、そしてパスワードを単に記入するだけです。その後、自分のアカウントを用いて始められます。 29 | 30 | #### サーバーへの招待 {#invite} 31 | 32 | 一部のウェブサイトでは登録欄を無効にしています。その代わり、登録のための招待リンクを必要とします。この招待リンクを作ってもらい共有してもらいます。 33 | 34 | #### 承認を基にした登録 {#approval} 35 | 36 | 一部のウェブサイトでは登録欄がありますが、それだけでなく、そのウェブサイトに参加したい理由に言及するために追加の記述欄があり,その記入が求められます。その内容を送信した後、ウェブサイトを使えるようになるには、あなたのアカウントがモデレーターによって承認されなければいけません。 37 | 38 | ## あなたのユーザー名と、あなたのドメイン {#address} 39 | 40 | Mastodonのユーザー名は、実際には2つの部分で構成されています。 41 | 42 | * ローカルのユーザー名。たとえば、`alice`です。 43 | * そしてウェブサイトのドメイン。たとえば、`example.com`です。 44 | 45 | ちょうどメールアドレスと同じです。Mastodonでは利便性のために、同じサーバーにいるユーザーのアドレスを指定するときにはドメインの部分を省略できます。しかし、自分のユーザー名を他のユーザーに共有するときはドメインを含める必要があります。そうしないとあなたを簡単に見つけてもらえなくなることに注意してください。 46 | 47 | | | | 48 | | :--- | :--- | 49 | | Mastodonの @alice です! | 間違い | 50 | | Mastodonの @alice@example.com です! | 正しい | 51 | | Mastodonの https://example.com/@alice です! | 正しい | 52 | 53 | Mastodonの検索欄では、上記のようにアドレス形式、またはユーザーのプロフィールへのリンクを用いてそのユーザーを検索できるでしょう。そのためリンクを好むのであれば、アドレスの代わりにリンクを共有することもできます。 54 | 55 | 異なるサーバーにおいて、同じユーザー名を登録*できます*。しかし、すべてのサーバーで同じユーザー名を事前予約する方法はありません。電子メールと同じように、`alice@outlook.com`が、`alice@gmail.com`や`alice@yahoo.com`を使っている人と同じであるとは限らないのです。 56 | -------------------------------------------------------------------------------- /content/pl/user/discoverability.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Promuj siebie i innych 3 | description: Uwidocznij swoje hashtagi, profile i wpisy. 4 | menu: 5 | docs: 6 | weight: 60 7 | parent: user 8 | --- 9 | 10 | ## Wyróżnione odnośniki na profilu {#featured} 11 | 12 | ### Wyróżnione hashtagi {#featured-tags} 13 | 14 | {{< figure src="assets/featured-tags.jpg" caption="Wyróżniony hashtag wraz z datą ostatniego użycia i całkowitym użyciem." >}} 15 | 16 | Możesz wyróżnić hashtagi, których używasz najczęściej. Przejdź do Preferencje > Profil > Wyróżnione hashtagi, aby wybrać, które hashtagi obecnie wyróżniasz. Po wybraniu odnośnik do tego hashtagu wraz z datą ostatniego użycia przez Ciebie oraz łączną liczbą jego wystąpień pojawi się na Twoim profilu. 17 | 18 | ### Wyróżnione profile {#featured-profiles} 19 | 20 | {{< figure src="assets/featured-profiles.jpg" caption="Cztery losowo wybrane wyróżnione profile." >}} 21 | 22 | Możesz wyróżnić profile osób, które obserwujesz. Wybierz menu opcji na profilu tej osoby i naciśnij „Polecaj na profilu”. Kiedy wyróżnisz jakiś profil, odnośnik do tego profilu pojawi się na Twoim profilu, w sekcji nazwanej „Polecani przez…”. Jednocześnie może tam pojawiać się do czterech profilów, które są wybierane losowo spośród wyróżnionych profilów za każdym razem, gdy strona jest ładowana. 23 | 24 | ## Przypięte wpisy {#pinned} 25 | 26 | {{< figure src="assets/pinned.jpg" caption="Wpis przypięty przez mastodon.social/@gargron" >}} 27 | 28 | Możesz wybrać maksymalnie 5 spośród swoich publicznych wpisów do wyróżnienia na górze profilu. Przejdź w okno opcji wpisu i wybierz „Przypnij do profilu”. Gdy przypniesz wpis, pojawi się na górze Twojej zakładki „wpisy”, przed pozostałymi wpisami, występującymi w kolejności chronologicznej. 29 | 30 | ## Katalog profilów {#directory} 31 | 32 | {{< figure src="assets/directory.jpg" caption="Katalog profilów na mastodon.social" >}} 33 | 34 | Katalog profilów pokazuje wszystkie konta, które zgodziły się być pokazywane w katalogu i może służyć szybkiemu wyszukiwaniu profilów, którymi możesz być zainteresowany(-a). 35 | 36 | Katalog profilów może być posortowany według ostatniej aktywności (ostatnio opublikowane wpisy) lub od najnowszych użytkowników (ostatnio założone konto). Katalog może wyświetlać tylko lokalne konta lub wszystkie znane przez serwer. 37 | 38 | Profile są przedstawiane jako karty zawierające nazwę wyświetlaną użytkownika, adres, biogram i kilka podstawowych statystyk jak liczba opublikowanych wpisów, liczba obserwujących i kiedy opublikowali ostatni wpis. 39 | -------------------------------------------------------------------------------- /content/pl/user/external.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Korzystaj z Mastodona zewnętrznie 3 | description: Możesz korzystać i wchodzić w interakcje na Mastodonie z poziomu zewnętrznych aplikacji i stron. 4 | menu: 5 | docs: 6 | weight: 90 7 | parent: user 8 | --- 9 | 10 | ## Zdalne interakcje z innym serwerem Mastodona {#interact} 11 | 12 | {{< figure src="assets/status-permalink.jpg" caption="Przykład odnośnika bezpośredniego do wpisu na serwerze Mastodona" >}} 13 | 14 | Kiedy odwiedzasz zdalny serwer oparty na Mastodonie, kliknięcie dowolnego z przycisków interakcji przeniesie Cię do okna dialogowego, które przekieruje Cię na Twój lokalny serwer. 15 | 16 | {{< figure src="assets/external-reply.jpg" caption="Ekran zdalnej interakcji przy odpowiadaniu na wpis" >}} 17 | 18 | ## Logowanie się do aplikacji klienckiej {#apps} 19 | 20 | Możesz użyć swojego konta na Mastodonie, aby zalogować się w dowolnej aplikacji obsługującej API Mastodona. Listę takich aplikacji znajdziesz na [https://joinmastodon.org/apps](https://joinmastodon.org/apps). 21 | -------------------------------------------------------------------------------- /content/zh-cn/admin/backups.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 备份你的服务器 3 | description: 设置日常备份(可选,但并非如此) 4 | menu: 5 | docs: 6 | weight: 80 7 | parent: admin 8 | --- 9 | 10 | 对于任何真实世界用途来说,你都应该保证日常备份Mastodon服务器。 11 | 12 | ## 概览 {#overview} 13 | 14 | 你所需要备份的东西,按重要程度排序: 15 | 16 | 1. PostgreSQL 数据库 17 | 2. `.env.production` 文件或等效文件中的应用密钥 18 | 3. 用户上传的文件 19 | 4. Redis 数据库 20 | 21 | ## 故障模式 {#failure} 22 | 23 | 人们通常要应对两种类型故障:硬件故障,诸如磁盘上数据损坏;以及人为软件故障,诸如误删特定文件。本文档中,仅考虑前一种类型。 24 | 25 | 丢失PostgreSQL数据库,那一切都完了。Mastodon将所有重要数据存储于PostgreSQL数据库中。如果数据库消失,那你服务器上所有的帐户、所有的嘟文、所有关注者都将随之消失。 26 | 27 | 如果你丢失了应用密钥,对你的用户而言,Mastodon的某些功能将停止工作。你服务器上的用户将被登出,双因子认证(2FA)将不可用,Web Push API订阅将停止工作。 28 | 29 | 如果你丢失了用户上传的文件,你将丢失头像、横幅、媒体附件,但Mastodon*仍会*继续工作。 30 | 31 | 丢失Redis数据库几乎是无害的:唯一不可逆的数据是Sidekiq队列及之前失败任务的重试计划。主页与列表时间流虽然存储于Redis,但它们可以使用tootctl再生成。 32 | 33 | 最好的备份是所谓的异地备份,即与Mastodon自身不在同一台计算机上存储的备份。如果你托管的服务器起火了,硬盘爆炸了,存储于同一硬件备份将不可用。 34 | 35 | ## 备份应用密钥 {#env} 36 | 37 | 应用密钥是最容易备份的,因为它们是不变的。你只需要将 `.env.production` 存储在安全的地方就可以了。 38 | 39 | ## 备份 PostgreSQL {#postgresql} 40 | 41 | 突然断电、硬盘故障、错误迁移数库库schema都会致使数据损坏。由于以上原因,推荐偶尔使用 `pg_dump` 或 `pg_dumpall` 备份数据库。 42 | 43 | 如果要求高可用性,可以使用热流拷贝(hot streaming replication)使第二台PostgreSQL服务器始终具有最新数据,并做好另一台服务器出现故障切换至此的准备。 44 | 45 | ## 备份用户上传的文件 {#media} 46 | 47 | 如果你使用外部对象存储,诸如Amazon S3、Google Cloud 或 Wasabi,你无需为怎么备份它们而担心。各自的公司将负责处理硬件故障。 48 | 49 | 如果你使用本地文件存储,复制体积巨大的 `public/system` 目录(默认存储上传文件的地方)。 50 | 51 | ## 备份 Redis {#redis} 52 | 53 | 备份Redis是很容易的。Redis会定期将数据写入`/var/lib/redis/dump.rdb`文件,你只需要复制这个文件就可以了。 54 | 55 | {{< translation-status-zh-cn raw_title="Backing up your server" raw_link="/admin/backups/" last_tranlation_time="2020-05-06" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 56 | -------------------------------------------------------------------------------- /content/zh-cn/admin/moderation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 运营操作 3 | description: 处理不想要的用户与域名 4 | menu: 5 | docs: 6 | weight: 110 7 | parent: admin 8 | --- 9 | 10 | ## 帐户管理 {#individual-moderation} 11 | 12 | Mastodon运营操作始终作用于本地,即从特定服务器查看的内容。一台服务器管理员(admin)或运营员(moderator)不能影响另一台服务器上的用户,他们只能影响另一台服务器用户的本地服务器副本。 13 | 14 | ### 禁止登录(disable login) {#disable-login} 15 | 16 | Mastodon可以被禁止登录。这样可以禁止用户对帐户进行任何操作,但是其帐户的内容仍保持不变。这个限制是可撤销的,任何时候都可以重新激活该用户。本限制仅适用于你服务器的本地用户。 17 | 18 | ### 隐藏(silence) {#silence-user} 19 | 20 | 在Mastodon,隐藏(silence)是沙箱(sandbox)的同义词。一个被隐藏的帐户不会出现在未关注该帐户的用户面前。该帐户所有内容仍存在,这些内容可以通过搜索查找到,该帐户可以被提及、被关注,但是这些内容是不可见的。 21 | 22 | 此外,隐藏操作不会影响联邦宇宙。一个本地隐藏了的帐户*不会*自动在其他服务器隐藏。 23 | 24 | 本限制是可撤销的,任何时间都可以去除该帐户的隐藏。 25 | 26 | ### 封禁(suspension) {#suspend-user} 27 | 28 | 在Mastodon,封禁(suspension)是删除(deletion)的同义词。该帐户不会出现在搜索之中,其用户资料页将消失,该帐户的所有嘟文,上传,关注者以及所有其它数据都将被移除。本限制是**不可逆的**。当一个帐户被解除屏蔽,用户可以重新控制帐户,但旧数据已经一去不复返了。 29 | 30 | ## 实例管理 {#server-wide-moderation} 31 | 32 | 由于使用帐户管理单独处理来自行为异常服务器的大量用户是让人精疲力竭的事,所以可以预清空来自特定服务器的所有用户,即所谓的**域名屏蔽(domain block)**。该操作有多个不同严厉程度。 33 | 34 | ### 拒绝接收媒体文件(reject media) {#reject-media} 35 | 36 | 当这个选项被激活,来自该服务器的文件将不会传递至本地。其包括头像、横幅、emoji及媒体附件。 37 | 38 | ### 隐藏(silence) {#silence-server} 39 | 40 | 对来自该服务器的所有帐户应用隐藏(silence)操作。 41 | 42 | ### 屏蔽(suspend) {#suspend-server} 43 | 44 | 对来自该服务器的所有帐户应用封禁(suspension)操作。本地将不储存除用户名外的任何数据。 45 | 46 | ## 反广告措施 {#spam-fighting-measures} 47 | 48 | Mastodon有以下基本措施以阻止广告内容: 49 | 50 | * 注册时需确认电子邮件地址 51 | * 基于IP的注册频率限制 52 | 53 | 然而,专业广告发送者(spammer)将绕过这些措施。你可以应用的措施是**电子邮件域名屏蔽**。在注册期间,Mastodon将解析所给电子邮箱地址的A纪录或MX纪录,即电子邮件服务器的IP地址,并对照动态存储的黑名单中检查该IP地址。 54 | 55 | ### 屏蔽电子邮件域名 {#blocking-by-email-server} 56 | 57 | 广告发送者(spammer)时常使用不同的电子邮件域名,以让他们看起来是使用许多不同的电子邮件服务器注册,而这些电子邮件域名很难被分别列入黑名单。但是,有时这些域名被解析到了同IP地址电子邮件服务器。如果你发现同一时间有大数广告发送者(spammer)注册,你可以使用在线DNS查询工具或 Linux `dig` 组件来检查,例如:`dig example.com` 将查询该域名的所有DNS A纪录。如果你注意到所有域名指向同一IP,你可以把它添加至电子邮件域名屏蔽列表中。 58 | 59 | ### 封禁IP {#blocking-by-ip} 60 | 61 | Mastodon自身不支持基于IP地址的访问者屏蔽,这不是一个万无一失的策略。IP有时会被不同的人共享,并时常会易手。但可以使用 Linux 防火墙来基于IP地址屏蔽访问者。下面的例子需要使用 `iptables` 和 `ipset`: 62 | 63 | ```bash 64 | # Install ipset 65 | sudo apt install ipset 66 | # Create blacklist named "spambots" 67 | sudo ipset create spambots nethash 68 | # Add 1.2.3.4 to the blacklist 69 | sudo ipset add spambots 1.2.3.4 70 | # Add firewall rule based on the blacklist 71 | sudo iptables -I INPUT 1 -m set --match-set spambots src -j DROP 72 | ``` 73 | 74 | 但是注意,不要把你自己封禁了。 75 | 76 | {{< translation-status-zh-cn raw_title="Moderation actions" raw_link="/admin/moderation/" last_tranlation_time="2020-05-08" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 77 | -------------------------------------------------------------------------------- /content/zh-cn/admin/optional.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 安装可选特色功能 3 | menu: 4 | docs: 5 | weight: 40 6 | parent: admin 7 | identifier: admin-optional 8 | --- 9 | 10 | {{< translation-status-zh-cn raw_title="Installing optional features" raw_link="/admin/optional/" last_tranlation_time="2020-05-04" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 11 | -------------------------------------------------------------------------------- /content/zh-cn/admin/optional/sso.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 单点登录(SSO) 3 | menu: 4 | docs: 5 | weight: 30 6 | parent: admin-optional 7 | --- 8 | 9 | {{< hint style="danger" >}} 10 | 本页面仍在建设中。 11 | {{< /hint >}} 12 | 13 | {{< translation-status-zh-cn raw_title="Single Sign On" raw_link="/admin/optional/sso/" last_tranlation_time="2020-05-04" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 14 | -------------------------------------------------------------------------------- /content/zh-cn/admin/prerequisites.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 准备你的机器 3 | menu: 4 | docs: 5 | weight: 10 6 | parent: admin 7 | --- 8 | 9 | 如果你正在设置一台全新的机器,推荐你首要完成安全设置。以下内容假定你运行 **Ubuntu 18.04**: 10 | 11 | ## 禁止密码登录SSH(仅允许密钥登录) 12 | 13 | 首先,请确保你实际上是通过密钥而不是通过密码登录到服务器的,否则这将使你无法登录。许多托管服务提供商支持上传公钥,并自动为新机器设置基于密钥的root登录。 14 | 15 | 编辑 `/etc/ssh/sshd_config` 并找到 `PasswordAuthentication`。确保它已被去除注释并被设为 `no`。如果你做了任何改动,请重启 sshd。 16 | 17 | ## 更新系统 18 | 19 | ```bash 20 | apt update && apt upgrade -y 21 | ``` 22 | 23 | ## 安装 fail2ban 以阻止重复登录尝试 24 | 25 | 编辑 `/etc/fail2ban/jail.local` 并添加以下内容: 26 | 27 | ```text 28 | [DEFAULT] 29 | destemail = your@email.here 30 | sendername = Fail2Ban 31 | 32 | [sshd] 33 | enabled = true 34 | port = 22 35 | 36 | [sshd-ddos] 37 | enabled = true 38 | port = 22 39 | ``` 40 | 41 | 最后重启fail2ban: 42 | 43 | ```bash 44 | systemctl restart fail2ban 45 | ``` 46 | 47 | ## 安装防火墙并只暴露SSH、HTTP、HTTPS端口 48 | 49 | 首先,安装 iptables-persistent。在安装期间,它将询问你是否保留现有规则。 50 | 51 | ```bash 52 | apt install -y iptables-persistent 53 | ``` 54 | 55 | 编辑 `/etc/iptables/rules.v4` 并添加如下内容: 56 | 57 | ```text 58 | *filter 59 | 60 | # Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 61 | -A INPUT -i lo -j ACCEPT 62 | -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT 63 | 64 | # Accept all established inbound connections 65 | -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 66 | 67 | # Allow all outbound traffic - you can modify this to only allow certain traffic 68 | -A OUTPUT -j ACCEPT 69 | 70 | # Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL). 71 | -A INPUT -p tcp --dport 80 -j ACCEPT 72 | -A INPUT -p tcp --dport 443 -j ACCEPT 73 | 74 | # Allow SSH connections 75 | # The -dport number should be the same port number you set in sshd_config 76 | -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT 77 | 78 | # Allow ping 79 | -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 80 | 81 | # Log iptables denied calls 82 | -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 83 | 84 | # Reject all other inbound - default deny unless explicitly allowed policy 85 | -A INPUT -j REJECT 86 | -A FORWARD -j REJECT 87 | 88 | COMMIT 89 | ``` 90 | 91 | iptables-persistent 将在机器启动时自动加载配置。但是由于我们现在不会立刻重启,我们需要第一次手动加载它: 92 | 93 | ```bash 94 | iptables-restore < /etc/iptables/rules.v4 95 | ``` 96 | 97 | {{< translation-status-zh-cn raw_title="Preparing your machine" raw_link="/admin/prerequisites/" last_tranlation_time="2020-05-04" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 98 | -------------------------------------------------------------------------------- /content/zh-cn/admin/setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 配置你的新实例 3 | description: 一些需要在安装完Mastodon做的事情 4 | menu: 5 | docs: 6 | weight: 50 7 | parent: admin 8 | --- 9 | 10 | ## 创建一个管理员帐户 {#admin} 11 | 12 | ### 通过浏览器 {#admin-gui} 13 | 14 | 在通过浏览器完成帐户注册后,你需要使用命令行给你新创建的帐户以管理员特权。假设你帐户的用户名为`alice`: 15 | 16 | ```bash 17 | RAILS_ENV=production bin/tootctl accounts modify alice --role Owner 18 | ``` 19 | 20 | ### 通过命令行 {#admin-cli} 21 | 22 | 你可以使用命令行创建一个全新帐户。 23 | 24 | ```bash 25 | RAILS_ENV=production bin/tootctl accounts create \ 26 | alice \ 27 | --email alice@example.com \ 28 | --confirmed \ 29 | --role Owner 30 | ``` 31 | 32 | 一个随机密码将会显示在终端上。 33 | 34 | ## 填写站点信息 {#info} 35 | 36 | 登录后,打开**网站设置**页面。虽然从技术上来说无需填写这些信息,但对于操作服务器的人而言,这被认为是至关重要的。 37 | 38 | | 设置 | 含意 | 39 | | :--- | :--- | 40 | | 用于联系的公开用户名 | 你的用户名,人们可以知道谁运营着这台服务器 | 41 | | 用于联系的公开电子邮件地址 | 一个可以联系到你的电子邮件地址,可供那些帐户被锁或没有帐户的人使用 | 42 | | 本站简介 | 你为什么启动这个站点?为谁运营?什么使它与众不同? | 43 | | 本站详细介绍 | 你可以在此放置各种信息,但建议放置**行为准则**。 | 44 | 45 | 填写完这些后,请点击“保存更改”。 46 | 47 | {{< translation-status-zh-cn raw_title="Setting up your new instance" raw_link="/admin/setup/" last_tranlation_time="2020-05-04" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 48 | -------------------------------------------------------------------------------- /content/zh-cn/admin/troubleshooting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 故障分析 3 | menu: 4 | docs: 5 | weight: 120 6 | parent: admin 7 | --- 8 | 9 | ## **我看到一个故障页说一些东西出错了。我怎么找出哪里出错了?** 10 | 11 | 所有带堆栈追踪(stack traces)的错误信息都将会被写入系统日志。当使用systemd时,可使用 `journalctl -u mastodon-web`(替换以相应的服务名) 来浏览每个服务的日志。当使用Docker时,与之类似:`docker logs mastodon_web_1`(替换以相应的容器名)。 12 | 13 | 服务端详细错误信息将*永不会*公开显示,因为它们可能会暴露你的内部设置,并为攻击者提供线索,让他们了解如何更好的入侵或如何更高效的滥用。 14 | 15 | 来自Mastodon web服务器的每一个响应都带有独一无二的请求ID(request ID),该ID也将反映在日志中。通过检查错误页的请求头,你可以在日志中轻松找到与之对应的堆栈追踪(stack traces)。 16 | 17 | ## **升级新版本后,有些页面看起来很奇怪,就像它们含有未设置样式的元素一样。为什么?** 18 | 19 | 检查升级后,你是否运行 `RAILS_ENV=production bin/rails assets:precompile` 并重启Mastodon web 进程。因为这看起来像提供了过期的样式与脚本。这也有可能由于内存缺乏导致预编译失败,很不幸webpack会占用大量内存。如果是这个原因,请确保你已经分配了swap空间。另外,也可以在另一台机器上预编译静态文件,然后把它们复制至 `public/packs` 目录。 20 | 21 | ## **升级新版本后,一些请求失败了,日志中的错误信息是 missing columns or tables。为什么?** 22 | 23 | 检查升级后,你是否运行 `RAILS_ENV=production bin/rails db:migrate`。因为这看起来Mastodon代码访问了一个更新或更旧的数据库schema。如果你使用PgBouncer,请确保此命令直接连接PostgreSQL,因为PgBouncer不支持迁移过程中的锁表操作。 24 | 25 | ## **我试图运行 `tootctl` 或 `rake`/`rails` 命令,但我得到 uninitialized constants 错误信息。哪里出错了?** 26 | 27 | 检查你是否在命令前使用 `RAILS_ENV=production` 指定正确的环境。默认情况下,假定使用开发环境,因此代码尝试加载开发相关gem。然而,在生产环境中,我们避免安装这些gem。这就是错误的来源。 28 | 29 | {{< translation-status-zh-cn raw_title="Troubleshooting errors" raw_link="/admin/troubleshooting/" last_tranlation_time="2020-05-08" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 30 | -------------------------------------------------------------------------------- /content/zh-cn/admin/upgrading.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 升级到新版本 3 | menu: 4 | docs: 5 | weight: 70 6 | parent: admin 7 | --- 8 | 9 | {{< hint style="info" >}} 10 | 当一个新的Mastodon版本释出后,它将出现在[GitHub releases页面](https://github.com/mastodon/mastodon/releases)。请注意:运行来自`main`分支的未释出代码,虽然可以进行,但不推荐这样做。 11 | {{< /hint >}} 12 | 13 | Mastodon版本与git tags一致。在尝试升级之前,请至[GitHub releases页面](https://github.com/mastodon/mastodon/releases)查找所需版本。该页面包含了一个**更新日专**,其中描述你需要了解的所有差异,以及**特定的升级指令**。 14 | 15 | 开始之前,切换至`mastodon`用户: 16 | 17 | ```bash 18 | su - mastodon 19 | ``` 20 | 21 | 并转至Mastodon根目录: 22 | 23 | ```bash 24 | cd /home/mastodon/live 25 | ``` 26 | 27 | 下载相应版本代码,这里假定版本为`v3.1.2`: 28 | 29 | ```bash 30 | git fetch --tags 31 | git checkout v3.1.2 32 | ``` 33 | 34 | 现在,执行GitHub版本发布说明中的升级指令。因为不同的版本有不同的指令,所以本页面将不包括任何指令。 35 | 36 | {{< hint style="info" >}} 37 | 从旧版本升级时,你可以安全的跳过中间版本。你无需单独检出他们。然而,你确实需要追踪每一个版本的升级指令。大多数指令都是重叠的,你只需要确保每条至少执行一次即可。 38 | {{< /hint >}} 39 | 40 | 当你执行完版本发布说明中的指令后,切换回root用户: 41 | 42 | ```bash 43 | exit 44 | ``` 45 | 46 | 重启**后台worker**: 47 | 48 | ```bash 49 | systemctl restart mastodon-sidekiq 50 | ``` 51 | 52 | 并重载**web进程**: 53 | 54 | ```bash 55 | systemctl reload mastodon-web 56 | ``` 57 | 58 | {{< hint style="info" >}} 59 | `reload`操作是零下线时间的重启(restart),也被称为“分阶段重启(phased restart)”。因此,Mastodon升级通常不需要为计划下线而提前发布公告。罕见情况下,你可以改用`restart`操作,但你的用户将感到(短暂的)服务中断。 60 | {{< /hint >}} 61 | 62 | 罕见情况下,**streaming API** 服务也会被更新并需要重启: 63 | 64 | ```bash 65 | systemctl restart mastodon-streaming 66 | ``` 67 | 68 | {{< hint style="danger" >}} 69 | 更新streaming API服务非常罕见,在大多数版本中,*不*需要重启它。重启streaming API将导致服务器负载增加,因为断线的用户会尝试重连或改用REST API轮询。因此请尽量避免重启streaming API服务 70 | {{< /hint >}} 71 | 72 | {{< hint style="success" >}} 73 | **就这样!** 您现在正在运行新版本的Mastodon。 74 | {{< /hint >}} 75 | 76 | {{< translation-status-zh-cn raw_title="Upgrading to a new release" raw_link="/admin/upgrading/" last_tranlation_time="2020-05-04" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 77 | -------------------------------------------------------------------------------- /content/zh-cn/user/contacts.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 更多设置 3 | description: 邀请新用户,对你的联系人进行排序,并保护你的帐户。 4 | menu: 5 | docs: 6 | weight: 80 7 | parent: user 8 | --- 9 | 10 | ## 生成邀请链接 {#invites} 11 | 12 | {{< figure src="assets/image%20%2862%29.png" caption="从你的帐户设置中邀请别人加入本站" >}} 13 | 14 | 邀请链接可以被生成并与其他人分享,有些服务器需要邀请才能注册账号。在生成邀请链接时,你可以设置最多使用次数,以限制某个链接的使用次数,或者限制链接的可使用时间。邀请链接可以在任何时候停用。 15 | 16 | ## 关注管理 {#relationships} 17 | 18 | {{< figure src="assets/image%20%2849%29.png" caption="所有与你互相关注并且没有启用迁移功能的用户,按最后一次活动时间排序" >}} 19 | 20 | 在设置中有关注管理器,你可以根据不同的标准,对和你有关的用户进行筛选和排序。 21 | 22 | * **关系:** 你关注的、关注你的以及互相关注的账号。 23 | * **帐户状态:** 用户是否已启用迁移功能。 24 | * **帐户活动:** 用户在过去一个月内是否发布过信息。 25 | 26 | 你可以选择取消关注某些用户,或从你的关注者中删除某些用户,只需勾选方框并点击表头的相应按钮即可。 27 | 28 | ## 账号设置 {#account} 29 | 30 | 在帐户设置中,你可以更改你的电子邮件地址,设置新密码,注销活跃会话以及以授权应用,也可以启用双重认证。 31 | 32 | ## 身份验证 {#proofs} 33 | 34 | 个人资料附加信息的[链接验证](../profile#verification)是通过使用rel=me链接验证你的身份的一种方法,但Mastodon也支持一个更通用的身份验证子系统。目前,这个子系统唯一支持的身份验证提供商是Keybase。 35 | 36 | ### Keybase身份验证 {#keybase} 37 | 38 | {{< figure src="assets/image%20%2860%29.png" caption="个人资料上的身份验证" >}} 39 | 40 | 首先,注册Keybase并生成或上传一个GPG公钥到你的Keybase帐户。接下来,进入“证明更多身份(prove more identities)”。找到你的实例,如果没有,请联系Keybase寻求帮助。选择你的Mastodon域名,输入你的用户名。你可以通过使用你的Mastodon账号进行授权,并发布验证消息,来验证你的身份。一旦你这样做了,身份验证就会建立,你的个人资料将会显示Keybase的身份验证。 41 | 42 | {{< hint style="danger" >}} 43 | **Keybase的身份验证是不可逆的。** Keybase使用不可变的签名链进行身份验证,所以一旦你在Keybase上验证了你的身份,你就不能删除它。你只能用你的相关私钥签署一个吊销信息来吊销你的验证。 44 | {{< /hint >}} 45 | 46 | {{< translation-status-zh-cn raw_title="More settings" raw_link="/user/contacts/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 47 | -------------------------------------------------------------------------------- /content/zh-cn/user/discoverability.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 推广自己和他人 3 | description: 推广话题标签、用户资料和嘟文。 4 | menu: 5 | docs: 6 | weight: 60 7 | parent: user 8 | --- 9 | 10 | ## 在你的个人资料上推荐内容 {#featured} 11 | 12 | ### 精选话题标签 {#featured-tags} 13 | 14 | {{< figure src="assets/image%20%2858%29.png" caption="精选话题标签会显示该标签最后使用日期和总使用量" >}} 15 | 16 | 你可以选择展示你经常使用的某些话题标签。进入 设置 > 个人资料 > 精选的话题标签 来管理你目前正在使用的精选话题标签。一旦被精选,你的个人资料上就会显示一个指向该话题标签的链接,其中包括上次在嘟文中使用该话题标签的日期,以及使用该话题标签的嘟文总数。 17 | 18 | ### 推荐用户 {#featured-profiles} 19 | 20 | {{< figure src="assets/image%20%2833%29.png" caption="图为四个被随机展示出来的推荐用户列表" >}} 21 | 22 | 你可以选择在个人资料中推荐你所关注的人。进入你所关注的人的个人资料页,打开下拉菜单,点击“在个人资料中推荐该用户”。当你推荐某用户时时,一个指向该用户个人资料页的链接将会出现在你个人资料页“你的推荐”栏目下。“你的推荐”栏目一次最多展示4个推荐用户,每次加载页面时,这四个推荐用户将会从你所有的推荐用户中随机选出。 23 | 24 | ## 置顶嘟文 {#pinned} 25 | 26 | {{< figure src="assets/image%20%2837%29.png" caption="一篇来自mastodon.social/@gargron的置顶嘟文" >}} 27 | 28 | 你可以选择在你的个人档案的顶部最多置顶5个自己的公开嘟文。进入嘟文下拉菜单,然后点击“在个人资料页面置顶”。置顶后,它将出现在你的嘟文选项卡的顶部,在所有其他按时间顺序排列的嘟文的之前。 29 | 30 | ## 用户资料目录 {#directory} 31 | 32 | {{< figure src="assets/image%20%2831%29.png" caption="mastodon.social上的用户资料目录" >}} 33 | 34 | 用户资料目录显示了所有选择在目录中显示的帐户,可以用来快速找到你可能感兴趣的用户资料。 35 | 36 | 用户资料目录可以按照最近的活动(最近发布的嘟文)或新来的帐户(最近创建的帐户)进行排序。该目录也可以设定为只显示本地帐户,或者显示你的站点知道的所有已知帐户。 37 | 38 | 个人资料以卡片的形式出现,其中包括用户的昵称、账号地址、账号简介,以及一些简短的统计信息,比如他们发布了多少条嘟文、有多少关注者、以及最后一次发布嘟文的时间。 39 | 40 | {{< translation-status-zh-cn raw_title="Promoting yourself and others" raw_link="/user/discoverability/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 41 | -------------------------------------------------------------------------------- /content/zh-cn/user/external.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 站外使用Mastodon 3 | description: 你可以通过外部应用程序或网站来浏览Mastodon或与Mastodon进行交互。 4 | menu: 5 | docs: 6 | weight: 90 7 | parent: user 8 | --- 9 | 10 | ## 与另一个Mastodon站点的远程互动 {#interact} 11 | 12 | {{< figure src="assets/image%20%2863%29.png" caption="Mastodon网站上的一个嘟文的永久链接" >}} 13 | 14 | 当你在跨站浏览其他由Mastodon驱动的远程站点时,点击任何一个交互按钮都会加载一个对话框,将你重定向到你的本地站点。 15 | 16 | {{< figure src="assets/image%20%288%29.png" caption="跨站嘟文回复对话框" >}} 17 | 18 | ## 登录到一个客户端应用程序 {#apps} 19 | 20 | 你可以使用你的Mastodon帐户登录到任何可以实现Mastodon API的应用程序。这些应用程序的列表可以在 [https://joinmastodon.org/apps](https://joinmastodon.org/apps) 中找到。 21 | 22 | {{< translation-status-zh-cn raw_title="Using Mastodon externally" raw_link="/user/external/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 23 | -------------------------------------------------------------------------------- /content/zh-cn/user/moderating.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 处理不想要的内容 3 | description: 控制你看到的内容,以获得更舒适的社交媒体体验。 4 | menu: 5 | docs: 6 | weight: 50 7 | parent: user 8 | --- 9 | 10 | ## 过滤嘟文 {#filters} 11 | 12 | 你可以过滤特定关键字和短语的嘟文,自动隐藏它们。 13 | 14 | {{< figure src="assets/image%20%2848%29.png" caption="含有不同内容不同关键词的已激活的过滤器" >}} 15 | 16 | 要创建或管理过滤器,请转到设置 > 过滤器。点击“添加新的过滤器”按钮,你可以创建、编辑或删除过滤器。你现有的过滤器将汇总在一个表格中。 17 | 18 | {{< figure src="assets/image%20%2814%29.png" caption="可以为筛选器设置到期日期、过滤位置、是否服务器端删除而非隐藏、是否过滤整个词条" >}} 19 | 20 | 过滤器有以下设置: 21 | 22 | ### 关键词 {#filter-phrase} 23 | 24 | 这是将被匹配的字符串,用于在嘟文的任意内容(包括CW,媒体描述和投票选项)中搜索该关键字。 25 | 26 | ### 失效时间 {#filter-expire} 27 | 28 | (可选)仅在有限的时间内应用过滤器。过期的过滤器不会自动删除,但可以通过设置新的过期日期(或将其更改回“永不过期”)来重新激活。 29 | 30 | ### 过滤器场景 {#filter-context} 31 | 32 | 选择应用过滤器的场景: 33 | 34 | * 主页时间轴 = 含有关键词的嘟文将从你的主页时间轴中删除 35 | * 通知 = 不会显示含有关键词的通知 36 | * 公共时间轴 = 含有关键词嘟文不会显示在本站/跨站公共时间轴中 37 | * 对话 = 含有关键词的嘟文将不会显示在对话、嘟文详情页 38 | 39 | ### 丢弃而非隐藏 {#filter-drop} 40 | 41 | 过滤通常是在客户端进行的,因此禁用过滤器将使过滤后的嘟文再次可见。但是,如果启用“丢弃而不是隐藏”,则任何匹配嘟文将完全消失,并且永远不会出现在你的主页时间轴或通知中。 42 | 43 | ### 整个词条 {#filter-whole} 44 | 45 | 过滤器通常会匹配任何状态下的关键词字符,无论它们是否位于单词中间。当启用“整个词条”后,只有当关键字前后是空格或其他非字母数字字符时,该关键词才会被过滤。 46 | 47 | ## 用户级操作 {#blocking-and-muting} 48 | 49 | {{< figure src="assets/image%20%2824%29.png" caption="用户下拉菜单提供了多种操作" >}} 50 | 51 | ### 隐藏转嘟 {#hide-boosts} 52 | 53 | 如果你隐藏了某人的转嘟,你将不会在你的主页上看到他们的转嘟。这个选项只出现在你当前关注的用户身上。 54 | 55 | ### 隐藏 {#mute} 56 | 57 | {{< figure src="assets/image%20%2852%29.png" caption="图为被隐藏的帐户" >}} 58 | 59 | 隐藏某一账号时,你可以选择是否将其通知一并隐藏。隐藏用户,而不隐藏通知时,会将该账号从用户界面中隐藏: 60 | 61 | * 你不会在你的主页中看到该账号。 62 | * 你不会看到其他人转嘟的该账号的嘟文。 63 | * 你不会看到其他人提及这个账号。 64 | * 你不会在公共时间轴中看到该账号。 65 | 66 | 如果你选择了同时隐藏通知,你还将不会收到来自该账号的通知。 67 | 68 | 用户不会知道他们已经被其他用户隐藏。 69 | 70 | ### 屏蔽 {#block} 71 | 72 | {{< figure src="assets/image%20%2836%29.png" caption="图为被屏蔽的帐户" >}} 73 | 74 | 屏蔽会将账号从用户界面中隐藏。 75 | 76 | * 你不会在你的主页中看到该账号。 77 | * 你不会看到其他人转嘟的该账号的嘟文。 78 | * 你不会看到其他人提及这个账号。 79 | * 你不会在公共时间轴中看到该账号。 80 | * 你不会收到来自该账号的通知。 81 | 82 | 此外,在被屏蔽的账号一方, 83 | 84 | * 被屏蔽账号会被强制取消对你的关注。 85 | * 被屏蔽账号不能关注你。 86 | * 被屏蔽账号不能看到别人对你的转嘟。 87 | * 被屏蔽账号不能在公共时间轴中看到你。 88 | 89 | 如果你和被屏蔽的账号在同一服务器上,被屏蔽的用户将无法在登录时查看你的个人资料页。 90 | 91 | ### 屏蔽整个域名 {#hide-domain} 92 | 93 | ![]({{ relUrl "/assets/image%20%2861%29.png" }}) 94 | 95 | 如果你屏蔽了整个域名: 96 | 97 | * 你将无法在公共时间轴上看到来自该域名的嘟文。 98 | * 你将不会在主页看到其他人转发来自该域名的嘟文。 99 | * 你将不会收到来自该域名的通知。 100 | * 你将失去该域名上的所有关注者。 101 | 102 | ## 向管理员报告有问题的内容 {#report} 103 | 104 | {{< figure src="assets/image%20%283%29.png" caption="报告模块允许选择被报告嘟文、添加注释和是否转发报告" >}} 105 | 106 | 如果你看到有违反站点规则的嘟文或用户,你可以向站点管理员报告该用户。点击用户下拉菜单或嘟文的下拉菜单上的“举报”选项将打开报告模块。在这里,你可以(并且应该)添加一个关于你为什么要举报这个帐号的注释。你可以附加某些有问题的嘟文,以了解你为什么要报告该账号,如果他们的行为违反了他们所在Mastodon站点的规则,你还可以选择将报告转发至他们所在Mastodon站点的管理员。 107 | 108 | {{< translation-status-zh-cn raw_title="Dealing with unwanted content" raw_link="/user/moderating/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 109 | -------------------------------------------------------------------------------- /content/zh-cn/user/moving.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 迁移或删除帐户 3 | description: 你的信息,由你掌控。 4 | menu: 5 | docs: 6 | weight: 100 7 | parent: user 8 | --- 9 | 10 | ## 导出你的信息 {#export} 11 | 12 | {{< figure src="assets/image%20%2835%29.png" caption="设置中的数据导出页面" >}} 13 | 14 | 在任何时候,你都可以在 设置 > 导出 中下载一个CSV文件,其中包括你当前关注的帐户、当前创建的列表、当前屏蔽的帐户、当前隐藏的帐户和当前被屏蔽的域名。你可以在 设置 > 导入 中导入你的关注、用户屏蔽、隐藏和域屏蔽列表,在这里可以合并或覆盖它们。 15 | 16 | 每七天可以申请下载你嘟文与媒体文件的存档一次,该存档的格式是ActivityPub JSON。由于技术上的限制,Mastodon目前不支持导入嘟文或媒体,但你的存档可以使用任何能够解析ActivityPub格式的软件查看。 17 | 18 | ## 迁入或迁出你的帐户 {#migration} 19 | 20 | 在 设置 > 帐户 底部,你可以找到与帐户迁入或迁出相关的选项。 21 | 22 | ### 帐户跳转 {#redirect} 23 | 24 | {{< figure src="assets/image%20%2853%29.png" caption="帐户跳转设置页面" >}} 25 | 26 | 跳转帐户将禁止从该帐户发布信息,并显示一个指向你的新帐户的“帐户已经迁移”通知。任何查看你的个人资料的人都可以看到这个通知,并知道要关注你的新帐户。已跳转的帐户无法被关注。可以在任何时候取消跳转。 27 | 28 | ### 帐户迁移 {#move} 29 | 30 | {{< figure src="assets/image%20%2847%29.png" caption="帐户迁移设置页面" >}} 31 | 32 | 迁移你的帐户等同于跳转你的帐户,但是,如果他们的软件支持迁移功能的话,它将不可逆转地迫使每个人取消关注你当前的帐户并关注你的新帐户。由于技术上的限制,你的嘟文将不会被移动。迁移帐户功能有一个很长的冷却期,在此期间你无法再次迁移,因此在使用这个功能之前要格外小心! 33 | 34 | ### 账号别名 {#aliases} 35 | 36 | {{< figure src="assets/image%20%2840%29.png" caption="别名管理页面" >}} 37 | 38 | 仅当你的两个账号都已设置别名后,帐户迁移才会启动。帐户别名当前仅用于帐户迁移,开始迁移之前,你需要将旧帐户设置为新帐户的别名。设置帐户别名本身是无害且可逆的。 39 | 40 | ## 删除帐户 {#delete} 41 | 42 | {{< figure src="assets/image%20%2816%29.png" caption="删除帐户页面" >}} 43 | 44 | 在 设置 > 帐户 底部,你可以找到删除帐户的选项。删除你的帐户是不可逆的,并且会导致你的个人资料和用户名永远无法使用。 45 | 46 | {{< translation-status-zh-cn raw_title="Moving or leaving accounts" raw_link="/user/moving/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 47 | -------------------------------------------------------------------------------- /content/zh-cn/user/preferences.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 设置你的首选项 3 | description: 以你喜欢的方式自定义Mastodon。 4 | menu: 5 | docs: 6 | weight: 70 7 | parent: user 8 | --- 9 | 10 | ## 自定义用户界面外观 {#interface} 11 | 12 | ### 选择一个站点主题 {#theme} 13 | 14 | Mastodon默认为深色主题,但可以选择浅色或高对比度主题。 15 | 16 | {{< figure src="assets/image%20%2834%29.png" caption="Mastodon浅色主题" >}} 17 | 18 | ### 选择你的布局 {#layout} 19 | 20 | Mastodon默认为简单的单列布局,左侧有一个撰写框,右侧有一个列切换器。你可以选择启用高级网页界面,该界面允许你同时查看和固定多个列。 21 | 22 | {{< figure src="assets/image%20%2832%29.png" caption="高级 web 界面" >}} 23 | 24 | 在这两个界面中,当有新的嘟文时,更新会自动加载。你可以启用“慢速模式”在栏目顶部显示一个横幅,显示新嘟文数量,只有当你点击横幅时,时间轴才会在点击后更新。 25 | 26 | 出于无障碍性的原因,GIF动画的自动播放默认是禁用的。如果你想看动图,可以启用自动播放 GIF 动画。你也可以在整个界面中减少动画的运动。 27 | 28 | 趋势标签在高级web界面中的“开始使用”栏下面,或者简单web界面中的列切换器下面(只有当有足够的空间显示它们时才会显示)。 29 | 30 | ### 确认对话框 {#confirm} 31 | 32 | 你可以选择在执行某些操作前要求确认。目前,可在执行以下操作前设置确认: 33 | 34 | * 取消关注 35 | * 转嘟 36 | * 删除 37 | 38 | ### 敏感内容 {#sensitive} 39 | 40 | 默认情况下,任何标记为敏感的媒体都会被隐藏在可点击的覆盖层后。你也可以选择始终显示/隐藏在此覆盖层后面的媒体,无论其是否被标记为敏感媒体。 41 | 42 | 隐藏和未加载的媒体使用由BlurHash算法提供的彩色渐变,它使用图像的颜色,但模糊了细节。这些渐变可以被禁用。 43 | 44 | {{< figure src="assets/image%20%286%29.png" caption="Blurhash缩略图示例" >}} 45 | 46 | 带有内容警告的嘟文默认是折叠的,但你可以选择总是展开警告嘟文,以便显示完整的嘟文。 47 | 48 | ## 控制你的通知 {#notifications} 49 | 50 | ### 发送电子邮件 {#email} 51 | 52 | 你可以根据你在Mastodon中收到的通知类型选择接收电子邮件通知。以下的通知类型可以启用。 53 | 54 | * 关注 55 | * 关注请求 56 | * 转嘟 57 | * 喜欢 58 | * 提及 59 | 60 | 你还可以启用摘要邮件,这将为你提供长期不活动期间收到的通知概览。 61 | 62 | ### 隐藏特定通知 {#hide-notifications} 63 | 64 | 你可以选择不接收来自你不关注的人,或者不关注你的人的通知。这将导致回复、收藏、喜欢、转嘟和其他互动不会显示给你。 65 | 66 | 你也可以选择不接收来自你不关注的人的私信消息。 67 | 68 | ## 杂项选项 {#misc} 69 | 70 | 如果你选择`禁止搜索引擎建立索引`,你的公开资料和嘟文页面上将会被添加 `noindex` 标签。 71 | 72 | 你可以选择`隐藏你的社交网络`,这将使你关注的人和关注你的人仅你自己可见。 73 | 74 | {{< figure src="assets/image%20%284%29.png" caption="选择隐藏社交网络后的个人资料" >}} 75 | 76 | 如果你想看到被多次转嘟的嘟文重新插入到你时间流的最上方,你可以禁用`在时间轴中合并转嘟`。 77 | 78 | ### 发布默认值 {#posting} 79 | 80 | 嘟文默认可见范围为公开。你可以将新嘟文的默认可见范围改为不列出或仅关注者。关于嘟文可见范围的解释,请参阅 [发布嘟文 > 嘟文可见范围](../posting#privacy)。 81 | 82 | 默认情况下,你的嘟文的语言会被自动检测,但这种检测可能不准确。如果你主要或专门用某种语言发帖,最好在`发布语言`设置该语言。 83 | 84 | 如果你经常发布敏感媒体,你可以选择`总是将我发送的媒体文件标记为敏感内容`。 85 | 86 | ### 公共时间轴的语言过滤 {#languages} 87 | 88 | 你可以选择在浏览公共时间轴时只显示特定语言的嘟文。但是,请注意,语言检测可能非常不精确,因此你可能仍然会看到一些使用被禁用语言的嘟文,或者错过一些使用已启用语言的嘟文。 89 | 90 | {{< translation-status-zh-cn raw_title="Set your preferences" raw_link="/user/preferences/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 91 | -------------------------------------------------------------------------------- /content/zh-cn/user/profile.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 设置个人资料 3 | description: 开始使用你的新帐户。 4 | menu: 5 | docs: 6 | weight: 20 7 | parent: user 8 | --- 9 | 10 | ## 你的外观 {#appearance} 11 | 12 | {{< figure src="assets/image%20%2829%29.png" caption="用户资料卡会显示你的用户名、头像和横幅图片" >}} 13 | 14 | 你可以在 设置 > 配置文件 > 外观 页面中配置你的个人资料显示外观。 15 | 16 | ### 昵称 {#name} 17 | 18 | 你的昵称会显示在你的Mastodon用户地址之前。默认情况下,你可以设置最多30个字符的昵称。 19 | 20 | ### 简介 {#bio} 21 | 22 | 自我简介是对你自己的简短描述,这会在你的个人资料上显示出来。默认情况下,你可以设置最多500个字符的自我简介。 23 | 24 | ### 头像 {#avatar} 25 | 26 | 你的头像是一个图标,会显示在你的嘟文旁边,作为你的视觉身份的一部分。头像文件大小限制 2.0 MB,只支持 PNG、GIF 或 JPG 格式。图片分辨率将会裁剪至 400x400px。 27 | 28 | ### 个人资料页横幅图片 {#header} 29 | 30 | 这个横幅图像会显示在你的个人资料页顶部,以及关注列表和帐户目录中的个人资料卡上。横幅图片文件大小限制 2.0 MB,只支持 PNG、GIF 或 JPG 格式。图片分辨率将会裁剪至 1500x500px。 31 | 32 | ## 账号标志 {#flags} 33 | 34 | 你可以在你的资料上设置特定的标志,让别人知道你会如何使用Mastodon。 35 | 36 | ![]({{ relUrl "/assets/image%20%281%29.png" }}) 37 | 38 | ### 保护你的帐户(锁嘟) {#locked} 39 | 40 | 勾选 `保护你的帐户(锁嘟)` 后,两件事情将会发生: 41 | 42 | * 新关注者不会被自动接受,你需要手动审核所有关注请求。 43 | * 一个锁形图标会显示在你的个人页面上,让其他人知道他们的关注不会立即被接受。 44 | 45 | ### 机器人(bot)帐户 {#bot} 46 | 47 | 勾选 `这是一个机器人帐户` 后,将向你的个人资料页面上添加一个bot图标。此图标将让其他人知道你的帐户可能执行自动化活动,并且可能无人监控。其他的软件可能选择用不同方式对待bot账号,但是目前Mastodon只将bot标志作为一个视觉标识。 48 | 49 | ### 用户目录 {#discoverable} 50 | 51 | 勾选 `在本站用户目录中收录此账号` 后,将使你的个人资料可被通过浏览用户目录发现。 52 | 53 | ## 个人资料附加信息 {#fields} 54 | 55 | 个人资料附加信息是一种向你的配置文件添加易于浏览的额外信息的方式。你有4行可自定义标签和值。例如: 56 | 57 | | 标签 | 内容 | 58 | | :--- | :--- | 59 | | 年龄 | 25 | 60 | | 国家 | 德国 | 61 | | Pronouns | he/him | 62 | | 网站 | https://example.com | 63 | 64 | 在这里填写什么,完全取决于你自己。附加信息内容可以包含提及、标签、自定义表情和链接。 65 | 66 | ### 链接验证 {#verification} 67 | 68 | 没有中心化的权威,基于文件材料的验证和加V是不可能的。然而,Mastodon可以交叉引用你放置在个人资料中的链接,以证明你是这些链接的真正所有者。如果这些链接之一是你的已被他人知晓并信任个人主页,那么它可以作为身份验证的次好方法。 69 | 70 | 如果你把一个链接放在你的个人资料附加信息中,Mastodon会检查被链接的页面是否也链接到你的Mastodon个人资料页。如果是,你会在链接旁边得到一个验证通过的标记,确认你是该页面的所有者。 71 | 72 | 在后台,Mastodon将检查回链链接的`rel="me"`属性。同样的,放置在个人资料附加信息中的链接将会被附加上`rel="me"`属性。 73 | 74 | {{< hint style="info" >}} 75 | 由于Mastodon可以自托管,因此没有比在已经被人们信任的域名之上托管一个Mastodon站点更好的方法来验证你的身份。 76 | {{< /hint >}} 77 | 78 | {{< translation-status-zh-cn raw_title="Setting up your profile" raw_link="/user/profile/" last_tranlation_time="2020-05-02" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 79 | -------------------------------------------------------------------------------- /content/zh-cn/user/run-your-own.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 运行自己的服务器 3 | description: 4 | menu: 5 | docs: 6 | weight: 9999 7 | parent: user 8 | --- 9 | 10 | ## 为什么你要运行自己的Mastodon服务器? 11 | 12 | - 绝对控制自己在网络上的声音,不受制于任何其他人的管理与左右。你的服务器是你的财产,受你的管理。只要你想让它存在,它就会一直存在。 13 | - 你在你自己的服务器上并*不是*孤立的。你可以关注其他任意服务器上任何人,他们也可以关注你,你可以像在同一服务器上一样交换信息。 14 | - 你可以限制注册人数,成为服务器上唯一的一个人,然后像个人(微)博客一样运行;也可以为家人或朋友维护一个邀请制的社区;或者运行一个任何人都可以注册的服务器。这都由你自己决定! 15 | 16 | {{< hint style="warning" >}} 17 | 请注意,提供公共互联网服务涉及到审核工作和社区管理,而且这些工作会随着服务器的扩大而变得更加复杂。 18 | {{< /hint >}} 19 | 20 | ## 如果你想要运行自己的Mastodon服务器…… 21 | 22 | 你需要这些: 23 | 24 | - 一个**域名**。这是你和其他人访问你的服务器的方式,也是你和你的用户在网络上的身份标识。 25 | 26 | **如何获得**:Namecheap, Gandi 等任何域名注册商。自带的年费根据域名选择的不同而不同。 27 | 28 | - 一个**VPS**。将运行Mastodon代码的东西,它将始终连接到互联网。 29 | 30 | **如何获得**:DigitalOcean, Hetzner, Exoscale, Scaleway 等任何主机提供商都可以。自带月费或年费,根据硬件规格不同,费用也不同。 31 | 32 | - 一个**电子邮件发送服务提供商**。Mastodon需要通过电子邮件发送确认链接和各种通知,自己托管一个SMTP服务器,虽然可行,但是相较使用第三方提供商,自己托管SMTP服务器要保证可靠是更加困难的。 33 | 34 | **如何获得**:Mailgun,SparkPost,Postmark,Sendgrid,任何一个提供SMTP API的电子邮件服务商。每月的费用根据发送的邮件量而定。 35 | 36 | - 可选:**对象存储**。Mastodon可以将你和你的用户上传的文件保存在其运行的VPS的硬盘驱动器上,但是,硬盘驱动器通常不是无限的,而且后续很难升级扩容。对象存储实际上为你提供了无限制的计量文件存储。 37 | 38 | **如何获得**:Amazon S3,Exoscale,Wasabi,Google Cloud,任何提供S3兼容或OpenStack Swift兼容API的服务商都可以。每用费用取决于存储的文件数量及其访问频率。 39 | 40 | 有许多**Mastodon专用托管服务提供商**可以满足上述许多(全部)要求,如果你对让他人处理所有技术问题感兴趣的话,你可以选择使用。通常情况下,你仍然需要购买自己的域名。一些这样的提供商是: 41 | 42 | {{< caption-link url="https://masto.host" caption="Masto.host" >}} 43 | 44 | {{< caption-link url="https://hostdon.jp" caption="Hostdon" >}} 45 | 46 | {{< caption-link url="https://app.spacebear.ee/mastodon" caption="Spacebear" >}} 47 | 48 | 全托管解决方案非常适合那些没有经验或不想安装和维护软件的人。然而,自己负责硬件的所有组件,可以让你在伸缩性、性能和自定义方面有更大的控制权。 49 | 50 | 我们提供了一个**DigitalOcean 一键安装镜像**,你可以把它放在DigitalOcean vps上,通过交互式的安装向导,遵照我们的安装说明,基本上可以为你提供所需的所有东西。 51 | 52 | {{< caption-link url="https://marketplace.digitalocean.com/apps/mastodon" caption="DigitalOcean Mastodon一键安装镜像" >}} 53 | 54 | 然而,这只是假定单机的情况下安装。Mastodon可以很好地横向伸缩。如果你的需求超出了单机的容量,Mastodon可以被分成多个应用服务器、后台workers、多个Redis后端、PostgreSQL replicas。如果你有上述需求,就不能使用一键安装镜像。 55 | 56 | 如果你有兴趣自己安装一切,请点击这里: 57 | 58 | {{< page-ref page="admin/prerequisites" >}} 59 | 60 | {{< translation-status-zh-cn raw_title="Running your own server" raw_link="/user/run-your-own/" last_tranlation_time="2020-05-03" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 61 | -------------------------------------------------------------------------------- /content/zh-cn/user/signup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 创建一个帐户 3 | description: 找寻属于你的完美社区。 4 | menu: 5 | docs: 6 | weight: 10 7 | parent: user 8 | --- 9 | 10 | ## 选择一个站点 {#picker} 11 | 12 | 你必须选择一个Mastodon站点进行注册,就好比你需要选择一个电子邮件提供商,或者像是为你的魔兽世界新角色选择一个地区(服务器)一样。该站点将是你的服务提供方,托管你的帐户、个人资料及个人主页信息流。 13 | 14 | {{< hint style="info" >}} 15 | 你可以 [在 joinmastodon.org 上按类别和语言浏览Mastodon站点列表](https://joinmastodon.org/#getting-started). 16 | {{< /hint >}} 17 | 18 | ### 了解站点的政策 {#tos} 19 | 20 | 在你注册之前,了解该Mastodon站点的政策和使用条款是很重要的。Mastodon站点通常会在`/about/more`页面上列出它的政策。你可以在未登录的状态下,点击登录页面上的“了解更多”链接来找到政策和使用条款信息。 21 | 22 | ### 站点注册模式 {#signup} 23 | 24 | Mastodon软件允许站点管理员从三种站点注册模式中选择一种:开放注册、邀请制和审核制。 25 | 26 | #### 开放注册 {#open} 27 | 28 | 有些站点可能允许你立即注册。只需使用你的用户名、电子邮件地址和密码填写注册信息,就可以开始使用你的帐户了。 29 | 30 | #### 邀请制 {#invite} 31 | 32 | 有些站点禁用注册表单,而是要求生成并分享邀请链接以允许人们注册。 33 | 34 | #### 审核制 {#approval} 35 | 36 | 有些站点允许你填写注册表单,但是会有一个附加的表单条目来说明你为什么想要加入那个站点。提交了表单之后,你的帐户必须得到管理员的批准才能开始使用。 37 | 38 | ## 你的用户名和域名 {#address} 39 | 40 | Mastodon的用户名由两部分组成: 41 | 42 | * 本站用户名,比如 `alice` 43 | * Mastodon站点的域名,比如 `example.com` 44 | 45 | 就像电子邮件地址一样,为了方便起见,Mastodon允许你在向与你相同的服务器上的人发送地址时跳过第二部分,但是你必须记住:在与他人分享你的用户名时,应当包含站点的域名,否则他人将不能轻松的找到你。 46 | 47 | | | | 48 | | :--- | :--- | 49 | | 我是Mastodon上的 @alice ! | 错误的表述 | 50 | | 我是Mastodon上的 @alice@example.com ! | 正确的表述 | 51 | | 我是Mastodon上的 https://example.com/@alice ! | 正确的表述 | 52 | 53 | 上述两种地址形式(完整用户名、用户主页链接)都可以在Mastodon搜索栏中查找相应的用户,所以你可以根据你的喜好分享。 54 | 55 | 相同的用户名*可以*在不同的服务器上注册——无法提前声明所有的域名后缀。就像电子邮件一样,你不应期待 `alice@outlook.com` 与 `alice@gmail.com` 或 `alice@yahoo.com` 是同一个人。 56 | 57 | {{< translation-status-zh-cn raw_title="Signing up for an account" raw_link="/user/signup/" last_tranlation_time="2020-05-02" raw_commit="ad1ef20f171c9f61439f32168987b0b4f9abd74b">}} 58 | -------------------------------------------------------------------------------- /data/HttpCodes.toml: -------------------------------------------------------------------------------- 1 | 200 = "Success" 2 | 401 = "Unauthorized" 3 | 403 = "Forbidden" 4 | 404 = "Not Found" 5 | 409 = "Conflict" 6 | 410 = "Gone" 7 | 422 = "Unprocessable Entity" 8 | -------------------------------------------------------------------------------- /i18n/en.toml: -------------------------------------------------------------------------------- 1 | [improvePage] 2 | other = "Improve this page" 3 | 4 | [lastUpdated] 5 | other = "Last updated" 6 | 7 | [lastUpdatedDateFormat] 8 | other = "{{ .Format \"January 2, 2006\" }}" 9 | 10 | [joinTitle] 11 | other = "Join the social media revolution" 12 | 13 | [joinText] 14 | other = "Mastodon is a free, decentralized platform with over three million people" 15 | 16 | [joinAction] 17 | other = "Join Mastodon now!" 18 | 19 | [merch] 20 | other = "Merch" 21 | 22 | [shirtsAndStickers] 23 | other = "T-shirts and stickers" 24 | 25 | [joinMastodon] 26 | other = "Join Mastodon" 27 | 28 | [blog] 29 | other = "Blog" 30 | 31 | [viewSource] 32 | other = "View source" 33 | 34 | [imprint] 35 | other = "Imprint" 36 | 37 | [formDataParameters] 38 | other = "Form Data Parameters" 39 | 40 | [headers] 41 | other = "Headers" 42 | 43 | [required] 44 | other = "required" 45 | 46 | [optional] 47 | other = "optional" 48 | 49 | [deprecated] 50 | other = "deprecated" 51 | 52 | [removed] 53 | other = "removed" 54 | 55 | [nullable] 56 | other = "nullable" 57 | 58 | [pathParameters] 59 | other = "Path Parameters" 60 | 61 | [queryParameters] 62 | other = "Query Parameters" 63 | 64 | [request] 65 | other = "Request" 66 | 67 | [response] 68 | other = "Response" 69 | 70 | [otherTranslations] 71 | other = "Also available in:" 72 | 73 | [sponsoredBy] 74 | other = "Sponsored by" 75 | -------------------------------------------------------------------------------- /i18n/ja.toml: -------------------------------------------------------------------------------- 1 | [improvePage] 2 | other = "このページを改善する" 3 | 4 | [lastUpdated] 5 | other = "最終更新" 6 | 7 | [lastUpdatedDateFormat] 8 | other = "{{ .Format \"January 2, 2006\" }}" 9 | 10 | [joinTitle] 11 | other = "ソーシャルメディア革命に参加する" 12 | 13 | [joinText] 14 | other = "Mastodonは自由度を持った分散プラットフォームであり,400万人以上の人々が利用しています" 15 | 16 | [joinAction] 17 | other = "いまがマストドンに参加する,そのときです!" 18 | 19 | [merch] 20 | other = "グッズ" 21 | 22 | [shirtsAndStickers] 23 | other = "Tシャツやステッカー" 24 | 25 | [joinMastodon] 26 | other = "Mastodonに参加する" 27 | 28 | [blog] 29 | other = "ブログ" 30 | 31 | [viewSource] 32 | other = "ソースコードを見る" 33 | 34 | [imprint] 35 | other = "インプリメント" 36 | 37 | [formDataParameters] 38 | other = "データパラメーターより" 39 | 40 | [headers] 41 | other = "ヘッダー" 42 | 43 | [required] 44 | other = "必須" 45 | 46 | [optional] 47 | other = "選択" 48 | 49 | [nullable] 50 | other = "nullable" 51 | 52 | [pathParameters] 53 | other = "パスパラメーター" 54 | 55 | [queryParameters] 56 | other = "クエリパラメーター" 57 | 58 | [request] 59 | other = "リクエスト" 60 | 61 | [response] 62 | other = "レスポンス" 63 | 64 | [otherTranslations] 65 | other = "他の言語も利用可能:" 66 | -------------------------------------------------------------------------------- /i18n/pl.toml: -------------------------------------------------------------------------------- 1 | [improvePage] 2 | other = "Popraw tę stronę" 3 | 4 | [lastUpdated] 5 | other = "Ostatnio aktualizowano" 6 | 7 | [lastUpdatedDateFormat] 8 | other = "{{ .Format \"January 2, 2006\" }}" 9 | 10 | [joinTitle] 11 | other = "Przyłącz się do rewolucji w mediach społecznościowych" 12 | 13 | [joinText] 14 | other = "Mastodon to wolna i zdecentralizowana platforma mająca ponad trzy miliony użytkowników" 15 | 16 | [joinAction] 17 | other = "Dołącz do Mastodona teraz!" 18 | 19 | [merch] 20 | other = "Sklep" 21 | 22 | [shirtsAndStickers] 23 | other = "Koszulki i naklejki" 24 | 25 | [joinMastodon] 26 | other = "Dołącz do Mastodona" 27 | 28 | [blog] 29 | other = "Blog" 30 | 31 | [viewSource] 32 | other = "Zobacz źródła" 33 | 34 | [imprint] 35 | other = "Imprint" 36 | 37 | [formDataParameters] 38 | other = "Parametry formularza" 39 | 40 | [headers] 41 | other = "Nagłówki" 42 | 43 | [required] 44 | other = "wymagane" 45 | 46 | [optional] 47 | other = "nieobowiązkowe" 48 | 49 | [nullable] 50 | other = "nullable" 51 | 52 | [pathParameters] 53 | other = "Parametry ścieżki" 54 | 55 | [queryParameters] 56 | other = "Parametry zapytania" 57 | 58 | [request] 59 | other = "Żądanie" 60 | 61 | [response] 62 | other = "Odpowiedź" 63 | 64 | [otherTranslations] 65 | other = "Dostępne również w języku:" 66 | 67 | [sponsoredBy] 68 | other = "Sponsorzy" 69 | -------------------------------------------------------------------------------- /i18n/zh-cn.toml: -------------------------------------------------------------------------------- 1 | [improvePage] 2 | other = "改进此页面" 3 | 4 | [lastUpdated] 5 | other = "最后更新于" 6 | 7 | [lastUpdatedDateFormat] 8 | other = "{{ .Format \"January 2, 2006\" }}" 9 | 10 | [joinTitle] 11 | other = "加入社交媒体革命" 12 | 13 | [joinText] 14 | other = "Mastodon是一个有超过300万用户的自由、去中心化的平台" 15 | 16 | [joinAction] 17 | other = "现在就加入Mastodon!" 18 | 19 | [merch] 20 | other = "纪念品商店" 21 | 22 | [shirtsAndStickers] 23 | other = "T恤衫和贴纸" 24 | 25 | [joinMastodon] 26 | other = "加入Mastodon" 27 | 28 | [blog] 29 | other = "博客" 30 | 31 | [viewSource] 32 | other = "查看源代码" 33 | 34 | [imprint] 35 | other = "版权信息" 36 | 37 | [formDataParameters] 38 | other = "表单数据参数" 39 | 40 | [headers] 41 | other = "标题" 42 | 43 | [required] 44 | other = "必需的" 45 | 46 | [optional] 47 | other = "可选的" 48 | 49 | [nullable] 50 | other = "nullable" 51 | 52 | [pathParameters] 53 | other = "路径参数" 54 | 55 | [queryParameters] 56 | other = "查询参数" 57 | 58 | [request] 59 | other = "请求" 60 | 61 | [response] 62 | other = "响应" 63 | 64 | [otherTranslations] 65 | other = "也可在此找到:" 66 | -------------------------------------------------------------------------------- /layouts/_default/_markup/render-heading.html: -------------------------------------------------------------------------------- 1 | 2 | {{.Text | safeHTML}} 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /layouts/_default/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ partial "head" }} 6 | 7 | {{ block "title" . }}{{ .Title }} - {{ .Site.Title }}{{ end }} 8 | 9 | 10 | 11 | 12 | {{ with .Description }} 13 | 14 | 15 | 16 | {{ end }} 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 29 | 30 | {{ partial "footer" . }} 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /layouts/_default/list.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 | 3 |
    4 | {{ range .Paginator.Pages.ByWeight }} 5 |
  • {{ .Title }}
  • 6 | {{ end }} 7 |
8 | 9 | {{ end }} 10 | -------------------------------------------------------------------------------- /layouts/_default/single.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |

{{ .Title }}

3 | 4 | {{ with .Description }} 5 |

{{.}}

6 | {{ end }} 7 | 10 |
11 | {{ .Content }} 12 | 13 |

14 | {{ i18n "lastUpdated" }} · {{ i18n "improvePage" }}{{ end }} 15 | 16 | {{ if .IsTranslated }} 17 |
18 | 19 | {{ i18n "otherTranslations" }} 20 | 21 | {{ range .Translations }} 22 | {{ .Language.LanguageName }} 23 | {{ end }} 24 | {{ end }} 25 |

26 | 27 |
28 | {{ end }} 29 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "title"}}{{ .Site.Title }}{{ end }} 2 | 3 | {{ define "main" }} 4 |

{{ .Title }}

5 | 6 | {{ with .Description }} 7 |

{{.}}

8 | {{ end }} 9 | 10 |
11 | {{ .Content }} 12 | 13 |

14 | {{ i18n "lastUpdated" }} {{ with .File }} · {{ i18n "improvePage" }}{{ end }} 15 | 16 | {{ if .IsTranslated }} 17 |
18 | 19 | {{ i18n "otherTranslations" }} 20 | 21 | {{ range .Translations }} 22 | {{ .Language.LanguageName }} 23 | {{ end }} 24 | {{ end }} 25 |

26 | 27 |
28 | {{ end }} 29 | -------------------------------------------------------------------------------- /layouts/partials/cta.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ i18n "joinTitle" }}

3 |

{{ i18n "joinText" }}

4 | {{ i18n "joinAction" }} 5 |
6 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /layouts/partials/head.html: -------------------------------------------------------------------------------- 1 | {{ .Hugo.Generator }} 2 | 3 | 4 | 5 | 6 | 7 | 8 | {{ $css := resources.Get "style.scss" | toCSS | minify | fingerprint }} 9 | 10 | 11 | {{ $js := resources.Get "main.js" | minify | fingerprint }} 12 | 13 | -------------------------------------------------------------------------------- /layouts/partials/sidebar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 14 | 15 |
    16 | {{ $currentPage := . }} 17 | {{ range .Site.Menus.docs.ByWeight }} 18 |
  • 19 | {{ if .Page }} 20 | {{ .Name }} 21 | {{ else }} 22 | {{ .Name }} 23 | {{ end }} 24 | 25 | {{ if .HasChildren }} 26 | 43 | {{ end }} 44 |
  • 45 | {{ end }} 46 |
47 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-description.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-form-data-parameters.html: -------------------------------------------------------------------------------- 1 |
{{ i18n "formDataParameters" }}
2 |
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-headers.html: -------------------------------------------------------------------------------- 1 |
{{ i18n "headers" }}
2 |
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-parameter.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
{{ .Get "name" | markdownify }}
4 | {{ if (.Get "required") }}
{{ i18n "required" }}
{{ else}}
{{ i18n "optional" }}
{{ end }} 5 |
6 | 7 |
8 | {{ .Get "type" }} 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-path-parameters.html: -------------------------------------------------------------------------------- 1 |
{{ i18n "pathParameters" }}
2 |
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-query-parameters.html: -------------------------------------------------------------------------------- 1 |
{{ i18n "queryParameters" }}
2 |
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-request.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ i18n "request" }}

3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-response-example-description.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-response-example.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | {{ .Get "httpCode" }}: {{ index .Site.Data.HttpCodes (.Get "httpCode" | string) }} 5 |
6 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-response.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ i18n "response" }}

3 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method-spec.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/api-method.html: -------------------------------------------------------------------------------- 1 |
2 |

3 |
4 | {{ .Get "method"}} 5 |
6 | 7 | {{ .Get "title" }} 8 |

9 | 10 |
11 | {{ .Get "host" }}{{ .Get "path" }} 12 |
13 | -------------------------------------------------------------------------------- /layouts/shortcodes/bilibili.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 |

{{- .Get "caption" | markdownify -}}

8 |
9 |
10 | -------------------------------------------------------------------------------- /layouts/shortcodes/caption-link.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | {{ .Get "caption" | markdownify }} 4 |
5 | -------------------------------------------------------------------------------- /layouts/shortcodes/code.html: -------------------------------------------------------------------------------- 1 |
2 | {{ .Inner | markdownify }} 3 | 4 |
5 |

{{ .Get "title" | markdownify }}

6 |
7 |
8 | -------------------------------------------------------------------------------- /layouts/shortcodes/deprecated.html: -------------------------------------------------------------------------------- 1 | {{ i18n "deprecated" }} -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-description.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-form-data-parameters.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-headers.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-parameter.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-path-parameters.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-query-parameters.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-request.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-response-example-description.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-response-example.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-response.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method-spec.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endapi-method.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endtab.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layouts/shortcodes/endtabs.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /layouts/shortcodes/figure.html: -------------------------------------------------------------------------------- 1 | 2 | {{- if .Get "link" -}} 3 | 4 | {{- end -}} 5 | {{ with .Get 12 | {{- if .Get "link" }}{{ end -}} 13 | {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}} 14 |
15 | {{ with (.Get "title") -}} 16 |

{{ . }}

17 | {{- end -}} 18 | {{- if or (.Get "caption") (.Get "attr") -}}

19 | {{- .Get "caption" | markdownify -}} 20 | {{- with .Get "attrlink" }} 21 | 22 | {{- end -}} 23 | {{- .Get "attr" | markdownify -}} 24 | {{- if .Get "attrlink" }}{{ end }}

25 | {{- end }} 26 |
27 | {{- end }} 28 | 29 | -------------------------------------------------------------------------------- /layouts/shortcodes/hint.html: -------------------------------------------------------------------------------- 1 |
2 |
{{ if (eq (.Get "style") "warning") }}{{ end }}{{ if (eq (.Get "style") "success") }}{{ end }}{{ if (eq (.Get "style") "info") }}{{ end }}{{ if (eq (.Get "style") "danger") }}{{ end }}
3 | 4 | {{ .Inner | markdownify }} 5 |
6 | -------------------------------------------------------------------------------- /layouts/shortcodes/no.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layouts/shortcodes/nullable.html: -------------------------------------------------------------------------------- 1 | {{ i18n "nullable" }} -------------------------------------------------------------------------------- /layouts/shortcodes/optional.html: -------------------------------------------------------------------------------- 1 | {{ i18n "optional" }} -------------------------------------------------------------------------------- /layouts/shortcodes/page-ref.html: -------------------------------------------------------------------------------- 1 | {{- $page := .Site.GetPage (.Get "page") -}} 2 | {{- with $page -}} 3 | 4 |
5 | {{ .Title }} 6 |
7 | {{- end -}} 8 | -------------------------------------------------------------------------------- /layouts/shortcodes/page-relref.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | {{ .Get "caption" | markdownify }} 4 |
-------------------------------------------------------------------------------- /layouts/shortcodes/removed.html: -------------------------------------------------------------------------------- 1 | {{ i18n "removed" }} -------------------------------------------------------------------------------- /layouts/shortcodes/required.html: -------------------------------------------------------------------------------- 1 | {{ i18n "required" }} -------------------------------------------------------------------------------- /layouts/shortcodes/tab.html: -------------------------------------------------------------------------------- 1 |
2 |
{{ .Get "title" }}
3 | -------------------------------------------------------------------------------- /layouts/shortcodes/tabs.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /layouts/shortcodes/translation-status-zh-cn.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | 翻译状态: 4 | 本文是英文页面 {{ .Get "raw_title" }} 的翻译,最后翻译时间:{{ .Get "last_translation_time" }},点击这里可以查看翻译后页面的改动。 5 |

6 |
7 | -------------------------------------------------------------------------------- /layouts/shortcodes/yes.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /layouts/shortcodes/youtube.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 |

{{- .Get "caption" | markdownify -}}

8 |
9 |
10 | -------------------------------------------------------------------------------- /static/assets/account-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/account-delete.png -------------------------------------------------------------------------------- /static/assets/account-move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/account-move.png -------------------------------------------------------------------------------- /static/assets/admin-roles-edit-role-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/admin-roles-edit-role-ui.png -------------------------------------------------------------------------------- /static/assets/admin-roles-edit-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/admin-roles-edit-ui.png -------------------------------------------------------------------------------- /static/assets/admin-roles-new-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/admin-roles-new-ui.png -------------------------------------------------------------------------------- /static/assets/admin-roles-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/admin-roles-ui.png -------------------------------------------------------------------------------- /static/assets/advanced-web-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/advanced-web-ui.png -------------------------------------------------------------------------------- /static/assets/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/bell.png -------------------------------------------------------------------------------- /static/assets/block-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/block-domain.png -------------------------------------------------------------------------------- /static/assets/blurhash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/blurhash.png -------------------------------------------------------------------------------- /static/assets/bot-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/bot-flag.png -------------------------------------------------------------------------------- /static/assets/captcha/admin-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/captcha/admin-view.png -------------------------------------------------------------------------------- /static/assets/captcha/user-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/captcha/user-view.png -------------------------------------------------------------------------------- /static/assets/compose-custom-emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-custom-emoji.png -------------------------------------------------------------------------------- /static/assets/compose-hashtags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-hashtags.png -------------------------------------------------------------------------------- /static/assets/compose-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-links.png -------------------------------------------------------------------------------- /static/assets/compose-media-attachment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-media-attachment.png -------------------------------------------------------------------------------- /static/assets/compose-mentions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-mentions.png -------------------------------------------------------------------------------- /static/assets/compose-polls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-polls.png -------------------------------------------------------------------------------- /static/assets/compose-with-cw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/compose-with-cw.png -------------------------------------------------------------------------------- /static/assets/decentralization.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/decentralization.jpg -------------------------------------------------------------------------------- /static/assets/direct-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/direct-url.png -------------------------------------------------------------------------------- /static/assets/directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/directory.png -------------------------------------------------------------------------------- /static/assets/dm-column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/dm-column.png -------------------------------------------------------------------------------- /static/assets/dm-thread.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/dm-thread.jpg -------------------------------------------------------------------------------- /static/assets/edit-media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/edit-media.png -------------------------------------------------------------------------------- /static/assets/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/export.png -------------------------------------------------------------------------------- /static/assets/external-reply.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/external-reply.gif -------------------------------------------------------------------------------- /static/assets/featured-tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/featured-tags.png -------------------------------------------------------------------------------- /static/assets/filter-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/filter-edit.png -------------------------------------------------------------------------------- /static/assets/filter-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/filter-list.png -------------------------------------------------------------------------------- /static/assets/focal-points.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/focal-points.jpg -------------------------------------------------------------------------------- /static/assets/invites.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/invites.jpg -------------------------------------------------------------------------------- /static/assets/invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/invites.png -------------------------------------------------------------------------------- /static/assets/keybase.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/keybase.jpg -------------------------------------------------------------------------------- /static/assets/light-theme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/light-theme.png -------------------------------------------------------------------------------- /static/assets/lists.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/lists.png -------------------------------------------------------------------------------- /static/assets/network-models.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/network-models.jpg -------------------------------------------------------------------------------- /static/assets/notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/notifications.png -------------------------------------------------------------------------------- /static/assets/object-storage/do-spaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/do-spaces.png -------------------------------------------------------------------------------- /static/assets/object-storage/exoscale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/exoscale.png -------------------------------------------------------------------------------- /static/assets/object-storage/minio-access-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/minio-access-policy.png -------------------------------------------------------------------------------- /static/assets/object-storage/minio-bucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/minio-bucket.png -------------------------------------------------------------------------------- /static/assets/object-storage/minio-mastodon-readwrite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/minio-mastodon-readwrite.png -------------------------------------------------------------------------------- /static/assets/object-storage/minio-mastodon-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/minio-mastodon-user.png -------------------------------------------------------------------------------- /static/assets/object-storage/scaleway-api-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/scaleway-api-key.png -------------------------------------------------------------------------------- /static/assets/object-storage/scaleway-bucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/scaleway-bucket.png -------------------------------------------------------------------------------- /static/assets/object-storage/scaleway-policy-rules.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/scaleway-policy-rules.jpg -------------------------------------------------------------------------------- /static/assets/object-storage/scaleway-policy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/scaleway-policy.jpg -------------------------------------------------------------------------------- /static/assets/object-storage/wasabi-access-control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/wasabi-access-control.png -------------------------------------------------------------------------------- /static/assets/object-storage/wasabi-access-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/wasabi-access-policy.png -------------------------------------------------------------------------------- /static/assets/object-storage/wasabi-mastodon-readwrite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/wasabi-mastodon-readwrite.png -------------------------------------------------------------------------------- /static/assets/object-storage/wasabi-mastodon-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/object-storage/wasabi-mastodon-user.png -------------------------------------------------------------------------------- /static/assets/pinned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/pinned.png -------------------------------------------------------------------------------- /static/assets/post-visibility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/post-visibility.png -------------------------------------------------------------------------------- /static/assets/profile-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/profile-card.png -------------------------------------------------------------------------------- /static/assets/profile-dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/profile-dropdown.png -------------------------------------------------------------------------------- /static/assets/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/profile.png -------------------------------------------------------------------------------- /static/assets/relationships.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/relationships.png -------------------------------------------------------------------------------- /static/assets/report-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/report-modal.png -------------------------------------------------------------------------------- /static/assets/search-accounts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/search-accounts.png -------------------------------------------------------------------------------- /static/assets/search-hashtags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/search-hashtags.png -------------------------------------------------------------------------------- /static/assets/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/search.png -------------------------------------------------------------------------------- /static/assets/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/setup.png -------------------------------------------------------------------------------- /static/assets/sponsors/LoadView-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/LoadView-logo.png -------------------------------------------------------------------------------- /static/assets/sponsors/SponsorMotion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/SponsorMotion.png -------------------------------------------------------------------------------- /static/assets/sponsors/dotcom-monitor-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/dotcom-monitor-logo.png -------------------------------------------------------------------------------- /static/assets/sponsors/driven-coffee-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/driven-coffee-logo.png -------------------------------------------------------------------------------- /static/assets/sponsors/stephen-tures.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/stephen-tures.jpg -------------------------------------------------------------------------------- /static/assets/sponsors/swayable.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/swayable.jpeg -------------------------------------------------------------------------------- /static/assets/sponsors/web-hosting-buddy-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/sponsors/web-hosting-buddy-logo.png -------------------------------------------------------------------------------- /static/assets/status-cw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/status-cw.png -------------------------------------------------------------------------------- /static/assets/status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/status.png -------------------------------------------------------------------------------- /static/assets/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/assets/timeline.png -------------------------------------------------------------------------------- /static/brand_small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /static/decentralization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/decentralization.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/favicon.ico -------------------------------------------------------------------------------- /static/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/setup.png -------------------------------------------------------------------------------- /static/shirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/shirt.png -------------------------------------------------------------------------------- /static/webfonts/manrope/manrope-variable.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/manrope/manrope-variable.woff2 -------------------------------------------------------------------------------- /static/webfonts/roboto-mono/robotomono-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto-mono/robotomono-regular-webfont.ttf -------------------------------------------------------------------------------- /static/webfonts/roboto-mono/robotomono-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto-mono/robotomono-regular-webfont.woff -------------------------------------------------------------------------------- /static/webfonts/roboto-mono/robotomono-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto-mono/robotomono-regular-webfont.woff2 -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-bold-webfont.ttf -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-bold-webfont.woff -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-bold-webfont.woff2 -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-italic-webfont.ttf -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-italic-webfont.woff -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-italic-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-italic-webfont.woff2 -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-medium-webfont.ttf -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-medium-webfont.woff -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-medium-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-medium-webfont.woff2 -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-regular-webfont.ttf -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-regular-webfont.woff -------------------------------------------------------------------------------- /static/webfonts/roboto/roboto-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mastodon/documentation/a8443ae07beedaf5b9ebb15553ecf9557c8f4df4/static/webfonts/roboto/roboto-regular-webfont.woff2 --------------------------------------------------------------------------------