docs: facelift and article

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2025-11-23 01:55:48 +01:00
parent ce12ffecb7
commit e2b95c9b92
9 changed files with 2055 additions and 2248 deletions

View File

@ -1,6 +1,7 @@
import { defineConfig } from "astro/config"
import starlight from "@astrojs/starlight"
import markdownIntegration from "@astropub/md"
import starlightThemeNext from 'starlight-theme-next'
// https://astro.build/config
export default defineConfig({
@ -8,10 +9,11 @@ export default defineConfig({
base: "/for-android",
integrations: [
starlight({
plugins: [starlightThemeNext()],
title: "Stoat for Android Technical Documentation",
social: {
github: "https://github.com/stoatchat/for-android",
},
social: [
{ icon: "github", label: 'GitHub', href: "https://github.com/stoatchat/for-android" },
],
sidebar: [
{
label: "Contributing",
@ -26,11 +28,11 @@ export default defineConfig({
link: "/contributing/setup",
}
],
}
/* {
},
{
label: "Reference",
autogenerate: { directory: "reference" },
}, */
},
],
customCss: ["./src/styles/custom.css"],
}),

View File

@ -10,11 +10,12 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "^0.7.0",
"@astrojs/starlight": "^0.24.0",
"@astrojs/check": "^0.9.5",
"@astrojs/starlight": "^0.36.2",
"@astropub/md": "^0.4.0",
"astro": "^4.8.6",
"astro": "^5.16.0",
"sharp": "^0.32.5",
"starlight-theme-next": "^0.3.3",
"typescript": "^5.4.5"
},
"packageManager": "pnpm@9.1.1+sha256.9551e803dcb7a1839fdf5416153a844060c7bce013218ce823410532504ac10b"

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 KiB

After

Width:  |  Height:  |  Size: 238 KiB

View File

@ -1,21 +1,21 @@
---
title: Contribution Guidelines
description: Read the guidelines before setting out to contribute to Revolt on Android.
description: Read the guidelines before setting out to contribute to Stoat for Android.
template: doc
---
This page contains the guidelines for contributing to Revolt on Android. These guidelines are
This page contains the guidelines for contributing to Stoat for Android. These guidelines are
important to ensure that your contribution is accepted and merged into the main codebase.
:::danger
Make sure you read these guidelines _before starting to contribute_ to Revolt on Android.
Make sure you read these guidelines _before starting to contribute_ to Stoat for Android.
If you do not follow these guidelines, your contribution may be rejected!
:::
## Before You Start
- Make sure you have read
the [Code of Conduct](https://github.com/revoltchat/.github/blob/master/.github/CODE_OF_CONDUCT.md)
the [Code of Conduct](https://github.com/stoatchat/.github/blob/master/.github/CODE_OF_CONDUCT.md)
before contributing. You must follow it at all times.
Before you start contributing, you first need to know what to contribute. Based on that, you must
@ -23,7 +23,7 @@ make a decision:
:::tip[Translation]
If you want to contribute to translations, you can do so by
visiting [Weblate](https://translate.revolt.chat/projects/revolt/android/).
visiting [Weblate](https://translate.stoat.chat/projects/revolt/android/).
:::
#### I want to fix a bug
@ -42,13 +42,13 @@ If you are fixing a bug, you must follow these guidelines:
you are adding a feature, you must follow these guidelines:
- The feature must be useful to a wide variety of users.
- UI/UX is centrally managed by Revolt's design team. Make sure your feature aligns closely with the
- UI/UX is centrally managed by Stoat's design team. Make sure your feature aligns closely with the
current design as well as [Material 3](https://m3.material.io/).
- If you need any new UI, you are recommended to request a design from the design team and implement
it as per the design. If your UI/UX is not up to the mark, your PR may be rejected by the design
team.
- The feature must not be a duplicate of an existing feature.
- If you are adding a new feature, you should consult with the Android team at Revolt to make sure
- If you are adding a new feature, you should consult with the Android team at Stoat to make sure
that the feature is not already in development or planned for the future. Conflicting features
will not be merged.

View File

@ -1,10 +1,10 @@
---
title: Setting up your Development Environment
description: A guide to setting up your development environment for Revolt on Android.
description: A guide to setting up your development environment for Stoat for Android.
template: doc
---
This page contains the guidelines for setting up your development environment for Revolt on Android. These guidelines are important to ensure that your development environment is set up correctly and you can start contributing to the project.
This page contains the guidelines for setting up your development environment for Stoat for Android. These guidelines are important to ensure that your development environment is set up correctly and you can start contributing to the project.
If you want to compile the app yourself, you can follow these guidelines. You may not need Android Studio, as its possible to build the app from the command line. GitHub Codespaces automates most of the process for you if you want to go that route and this guide covers those steps, but wont go into detail on other command-line methods.
@ -87,7 +87,7 @@ import { Tabs, TabItem, Steps } from "@astrojs/starlight/components"
4. Clone the repository.
```sh
git clone --recursive https://github.com/revoltchat/android.git
git clone --recursive https://github.com/stoatchat/for-android.git
```
Specify `--recursive` to ensure that submodules are cloned as well.
@ -108,24 +108,25 @@ import { Tabs, TabItem, Steps } from "@astrojs/starlight/components"
```
:::tip
You can run this script with the `-y` flag to skip confirmation prompts.
You can run this script with the `-y` flag to skip confirmation
prompts.
:::
:::note
This script will query the Revolt version control server for the latest version of the
This script will query the Stoat version control server for the latest version of the
final-markdown native library and download it. If you do not wish to use pre-built libraries,
you can build final-markdown yourself from the source code at https://git.revolt.chat/android/final-markdown,
and copy the files to the `app/src/main/jniLibs` folder. Note the files that are downloaded are
exactly the same as the ones we use for the app on Google Play, so you can be sure they are safe to use.
:::
8. Copy the `revoltbuild.properties.example` file to `revoltbuild.properties` and fill in the required values.
8. Copy the `stoatbuild.properties.example` file to `stoatbuild.properties` and fill in the required values.
```sh
cp revoltbuild.properties.example revoltbuild.properties
cp stoatbuild.properties.example stoatbuild.properties
```
The `revoltbuild.properties` file contains the following properties:
The `stoatbuild.properties` file contains the following properties:
| Property | Description |
| ------------------------ | ---------------------------------------------- |
@ -171,6 +172,6 @@ import { Tabs, TabItem, Steps } from "@astrojs/starlight/components"
If building within Github Codespaces, you can build a fresh debug apk by running `./gradlew assembledebug --no-daemon` from the root of the project.
Upon completion, the apk will be within `app/build/outputs/apk/debug/`
12. **You're all set!** You can now start contributing to Revolt on Android.
12. **You're all set!** You can now start contributing to Stoat for Android.
</Steps>

View File

@ -7,7 +7,7 @@ hero:
file: ../../assets/phone.png
actions:
- text: Contribution Guidelines
link: /android/contributing/guidelines
link: /for-android/contributing/guidelines
icon: right-arrow
variant: primary
---

View File

@ -0,0 +1,29 @@
---
title: Why does Stoat for Android bundle CA certificates?
description: Explanation of the bundled CA certificates in Stoat for Android.
template: doc
---
Stoat for Android comes with a set of bundled CA (Certificate Authority) certificates.
This is mostly due to the fact that Cloudflare — one of the major CDN providers used by Stoat —
issues CA certificates which are not included in Android's system CA store. By bundling our own CA
certificates, we ensure that Stoat for Android can always connect to Stoat's servers regardless.
This should not have security implications, as the bundled CA certificates are only trusted when
connecting to the domain `stoatusercontent.com` and subdomains thereof. For all other connections,
Stoat uses the system CA store provided by Android.
## What certificates are bundled?
The bundled CA certificates are the following:
- [SSL.com TLS ECC Root CA 2022](https://crt.sh/?id=7439766705)
- [Cloudflare TLS Issuing ECC CA 1](https://crt.sh/?id=11092622664)
## Why not use the system CA store?
Google rejects those certificates from their system CA store due to unclear reasons. As a result, if
we were to use the system CA store, Stoat for Android would not be able to connect to Stoat's
content delivery network (CDN) at all, rendering the app bare as it would not be able to load any
images or other media.

View File

@ -1,29 +1,29 @@
/* Dark mode colours. */
/* Dark mode colors. */
:root {
--sl-color-accent-low: #460910;
--sl-color-accent: #c60032;
--sl-color-accent-high: #feb1b0;
--sl-color-white: #ffffff;
--sl-color-gray-1: #f4ebec;
--sl-color-gray-2: #cabfc0;
--sl-color-gray-3: #998688;
--sl-color-gray-4: #655355;
--sl-color-gray-5: #443335;
--sl-color-gray-6: #312224;
--sl-color-black: #1d1617;
}
/* Light mode colours. */
:root[data-theme="light"] {
--sl-color-accent-low: #ffc7c5;
--sl-color-accent: #c90033;
--sl-color-accent-high: #640014;
--sl-color-white: #1d1617;
--sl-color-gray-1: #312224;
--sl-color-gray-2: #443335;
--sl-color-gray-3: #655355;
--sl-color-gray-4: #998688;
--sl-color-gray-5: #cabfc0;
--sl-color-gray-6: #f4ebec;
--sl-color-gray-7: #f9f5f5;
--sl-color-black: #ffffff;
--sl-color-accent-low: #00273d;
--sl-color-accent: #0071a7;
--sl-color-accent-high: #92d1fe;
--sl-color-white: #ffffff;
--sl-color-gray-1: #eceef2;
--sl-color-gray-2: #c0c2c7;
--sl-color-gray-3: #888b96;
--sl-color-gray-4: #545861;
--sl-color-gray-5: #353841;
--sl-color-gray-6: #24272f;
--sl-color-black: #17181c;
}
/* Light mode colors. */
:root[data-theme='light'] {
--sl-color-accent-low: #b0deff;
--sl-color-accent: #0073aa;
--sl-color-accent-high: #003653;
--sl-color-white: #17181c;
--sl-color-gray-1: #24272f;
--sl-color-gray-2: #353841;
--sl-color-gray-3: #545861;
--sl-color-gray-4: #888b96;
--sl-color-gray-5: #c0c2c7;
--sl-color-gray-6: #eceef2;
--sl-color-gray-7: #f5f6f8;
--sl-color-black: #ffffff;
}