006b44f580
* Begin adding support for timeline * fix some bugs with parser * fmt * add error reporting for parser * add tests for timeline query parser * add rejection tests for parse * begin adding support for lists also run migration before compiling, so schema.rs is up to date * add sqlite migration * end adding lists still miss tests and query integration * cargo fmt * try to add some tests * Add some constraint to db, and fix list test and refactor other tests to use begin_transaction * add more tests for lists * add support for lists in query executor * add keywords for including/excluding boosts and likes * cargo fmt * add function to list lists used by query will make it easier to warn users when creating timeline with unknown lists * add lang support * add timeline creation error message when using unexisting lists * Update .po files * WIP: interface for timelines * don't use diesel for migrations not sure how it passed the ci on the other branch * add some tests for timeline add an int representing the order of timelines (first one will be on top, second just under...) use first() instead of limit(1).get().into_iter().nth(0) remove migrations from build artifacts as they are now compiled in * cargo fmt * remove timeline order * fix tests * add tests for timeline creation failure * cargo fmt * add tests for timelines * add test for matching direct lists and keywords * add test for language filtering * Add a more complex test for Timeline::matches, and fix TQ::matches for TQ::Or * Make the main crate compile + FMT * Use the new timeline system - Replace the old "feed" system with timelines - Display all timelines someone can access on their home page (either their personal ones, or instance timelines) - Remove functions that were used to get user/local/federated feed - Add new posts to timelines - Create a default timeline called "My feed" for everyone, and "Local feed"/"Federated feed" with timelines @fdb-hiroshima I don't know if that's how you pictured it? If you imagined it differently I can of course make changes. I hope I didn't forgot anything… * Cargo fmt * Try to fix the migration * Fix tests * Fix the test (for real this time ?) * Fix the tests ? + fmt * Use Kind::Like and Kind::Reshare when needed * Forgot to run cargo fmt once again * revert translations * fix reviewed stuff * reduce code duplication by macros * cargo fmt |
||
---|---|---|
.circleci | ||
.github/ISSUE_TEMPLATE | ||
assets | ||
migrations | ||
plume-api | ||
plume-cli | ||
plume-common | ||
plume-front | ||
plume-macro | ||
plume-models | ||
po | ||
script | ||
snap | ||
src | ||
templates | ||
.codecov.yml | ||
.dockerignore | ||
.editorconfig | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
Cargo.lock | ||
Cargo.toml | ||
Dockerfile | ||
Dockerfile.dev | ||
LICENSE | ||
README.md | ||
build.rs | ||
crowdin.yml | ||
diesel.toml | ||
rust-toolchain |
README.md
Plume
Website — Documentation — Contribute — Instances list
Plume is a federated blogging engine, based on ActivityPub. It is written in Rust, with the Rocket framework, and Diesel to interact with the database. The front-end uses Ructe templates, WASM and SCSS.
Features
A lot of features are still missing, but what is already here should be quite stable. Current and planned features include:
- A blog-centric approach: you can create as much blogs as you want with your account, to keep your different publications separated.
- Media management: you can upload pictures to illustrate your articles, but also audio files if you host a podcast, and manage them all from Plume.
- Federation: Plume is part of a network of interconnected websites called the Fediverse. Each of these websites (often called instances) have their own rules and thematics, but they can all communicate with each other.
- Collaborative writing: invite other people to your blogs, and write articles together.
Get involved
If you want to have regular news about the project, the best place is probably our blog, or our Matrix room: #plume:disroot.org
.
If you want to contribute more, a good first step is to read our contribution guides. We accept all kind of contribution:
- Back-end or front-end development
- Translations
- Documentation
- UI and/or UX design (we don't have a dedicated guide yet, but we can talk to see how we can work together!)
- Taking part in discussions
- Financial support
But this list is not exhaustive and if you want to contribute differently you are welcome too!
As we want the various spaces related to the project (GitHub, Matrix, Loomio, etc) to be as safe as possible for everyone, we adopted a code of conduct. Please read it and make sure you accept it before contributing.
Starting your own instance
We provide various way to install Plume: from source, with pre-built binaries, with Docker or with YunoHost. For detailed explanations, please refer to the documentation.