Tetratto is a super simple community-oriented website where users can create various communities and share posts in them!
+
-Tetratto is your personal journal!
+
+
+
+[](https://github.com/trisuaso/tetratto/blob/master/LICENSE)
-## Features
+# Usage
-- Create new pages in your journal (essentially just posts)
-- Create new pages in your journal where people can post messages (essentially message boards that you control)
-- Follow other people and see their (public) journal entries
- - Journal entries can either be public, unlisted (only accessible via link), and fully private (only accessible to moderators and the owner)
+Everything Tetratto needs will be built into the main binary. You can build Tetratto with the following command:
+
+```bash
+cargo build -r --no-default-features features=redis,sqlite
+```
+
+You can replace `sqlite` in the above command with `postgres`, if you'd like. It's also acceptable to remove the `redis` part if you don't want to use a cache. I wouldn't recomment removing cache, though
+
+You can then take the binary and place it somewhere else (highly recommended; the binary will create a fair number of files!). You can do this to move it to a directory just called "tetratto" in the parent directory:
+
+```bash
+mkdir tetratto
+mv ./target/release/tetratto ../tetratto
+cd ../tetratto
+```
+
+Your first start of Tetratto might be a little slow as it's going to download all icon SVGs required for the HTML templates to render properly. These icons will be stored on disk, so there's no need to worry about this time _every_ restart.
+
+## Configuration
+
+In the directory you're running Tetratto from, you should create a `tetratto.toml` file. This file follows the configuration schema defined [here](https://trisuaso.github.io/tetratto/tetratto/config/struct.Config.html)!
+
+## Usage (as a user)
+
+Tetratto is very simple once you get the hang of it! At the top of the page (or bottom if you're on mobile), you'll see the navigation bar. Once logged in, you'll be able to access "Home", "Popular", and "Communities" from there! You can also press your profile picture (on the right) to view your own profile, settings, or log out!
+
+All Tetratto instances support reports for communities and posts through the UI. You can just find the ellipsis icon on either and then press "Report" to file a report!
+
+# Updating
+
+When bumping versions, you _might_ need to run a few SQL scripts in order to get your database up to what the next commit expects. It is recommended to only update from GitHub release, which will list the SQL scripts you need to run to migrate your database.
+
+# Developing
+
+All you really need to develop Tetratto is [Rust](https://rustup.rs/) and [Just](https://just.systems/).
+
+You can fix a lot of weird style issues and stuff using `just fix`. You need [Clippy](https://doc.rust-lang.org/stable/clippy/installation.html) for this
+
+You can also automatically bump all dependencies _and_ point out unused ones with `just clean-deps`! You need [cargo-edit](https://github.com/killercup/cargo-edit) and [cargo-machete](https://github.com/bnjbvr/cargo-machete) for this
+
+# Contributing
+
+Read the ["Contribution Guidelines"](./.github/CONTRIBUTING.md) before contributing!
+
+# License
+
+Tetratto is licensed under the [AGPL-3.0](./LICENSE).
diff --git a/crates/app/src/langs/en-US.toml b/crates/app/src/langs/en-US.toml
index 5af0496..da55be7 100644
--- a/crates/app/src/langs/en-US.toml
+++ b/crates/app/src/langs/en-US.toml
@@ -8,6 +8,7 @@ version = "1.0.0"
"general:link.next" = "Next"
"general:link.previous" = "Previous"
"general:link.source_code" = "Source code"
+"general:link.reference" = "Reference"
"general:link.audit_log" = "Audit log"
"general:link.reports" = "Reports"
"general:action.save" = "Save"
@@ -64,6 +65,8 @@ version = "1.0.0"
"communities:label.user_id" = "User ID"
"communities:label.danger_zone" = "Danger zone"
"communities:label.delete_community" = "Delete community"
+"communities:label.change_title" = "Change title"
+"communities:label.new_title" = "New title"
"notifs:action.mark_as_read" = "Mark as read"
"notifs:action.mark_as_unread" = "Mark as unread"
diff --git a/crates/app/src/public/css/style.css b/crates/app/src/public/css/style.css
index 93a1c19..7c2ad8e 100644
--- a/crates/app/src/public/css/style.css
+++ b/crates/app/src/public/css/style.css
@@ -102,6 +102,17 @@ article {
article {
margin-top: 0;
}
+
+ main {
+ padding: 0;
+ }
+
+ body .card:not(.card *),
+ body .pillmenu:not(.card *) > a,
+ body .card-nest:not(.card *) > .card,
+ body .banner {
+ border-radius: 0 !important;
+ }
}
.content_container {
@@ -138,13 +149,19 @@ article {
}
/* typo */
-pre {
- font-family: monospace;
+pre,
+code {
+ font-family: "Jetbrains Mono", "Fire Code", monospace;
width: 100%;
max-width: 100%;
overflow: auto;
background: var(--color-lowered);
border-radius: var(--radius);
+ padding: 0.25rem;
+ font-size: 0.8rem;
+}
+
+pre {
padding: 1rem;
}
@@ -765,6 +782,7 @@ dialog::backdrop {
display: none;
position: absolute;
background: var(--color-raised);
+ border: solid 1px var(--color-super-lowered);
z-index: 2;
border-radius: var(--radius);
top: calc(100% + 5px);
diff --git a/crates/app/src/public/html/communities/settings.html b/crates/app/src/public/html/communities/settings.html
index f471c2f..7daadb2 100644
--- a/crates/app/src/public/html/communities/settings.html
+++ b/crates/app/src/public/html/communities/settings.html
@@ -98,6 +98,36 @@
+
+