remove tag-prefix deletion
as discussed here: https://github.com/igalic/Plume/pull/1
Update all versions numbers
Update Crowdin config to v3 + Pull translations with cargo release
Follow a more standard CHANGELOG format
add release.toml configuration file for cargo-release
and also add overrides in all other crates, since we only have one
CHANGELOG.md: https://github.com/sunng87/cargo-release/issues/205
we might wanna have that looked at or fixed
ignore .vscode/
add / backfill Changelog.md
Co-authored-by: Mina Galić <me+git@igalic.co>
Co-authored-by: Ana Gelez <ana@gelez.xyz>
Reviewed-on: https://git.joinplu.me/Plume/Plume/pulls/835
before we embark on upgrading to async, and all the refactoring that
this will bring on us (see #797 & #799), we should keep our `main`
branch as stable and current as possible.
Let's start by upgrading rocket and its dependencies.
* [REFACTORING]Rename whitespace_tokenizer to tag_tokenizer for
registration
Name representing its purpose is preferred.
* Add lindera-tantivy to plume-model's dependencies
* Install lindera-tantivy
* Add SearchTokenizerConfig struct
* Add search tokenizers to config option
* Use CONFIG for tokenizers
* Use enum to hold tokenizer config instead of initializing on config phase
* Use guard instead of duplicate default values
* Use as_deref() instead of guard
* Move SearchTokenizer from plume-models to plume-models::search::tokenizer
* Rename SearchTokenizer to TokenizerKind
* Define SearchTokenierConfig::determine_tokenizer()
* Use determine_tokenizer in SearchTokenizerConfig::init()
* Pass tokenizer config to Searcher methods
* Add LowerCase filter to Lindera tokenizer
* Add test for Lindera tokenizer
* Define SEARCH_LANG env to specify tokenizers set
* Run cargo fmt
* Make Lindera tokenizer optional
* Fix typos
* Upgrade Tantivy to 0.12.0
* Follow Tantivy Tokenizer's new type definition
* Wrap tokenizers with TextAnalyzer to use filter methods
* Replace async IndexWriter::garbage_collect_files with sync functions
* Update Cargo.toml
* update compiler to recent nightly
* cargo fmt
* fix clippy
but ructe code is still complaining
* update circleci and rocket_csrf
* fix last clippy problems
* cargo fmt
* fix build issue
was caused be improper handling of recursive template (comment) by old ructe, which is fixed on newer version
* Syntax highlighting mostly... Exists.
* Add dependency to dockerfile
* Handle non-existent languages better
* Make the default a bit nicer
* Improve highlighting. Clean up function
* Add dark theme, add the comment scope to the allowed classes
* update build env
* Address review comments
* Use find_syntax_by_token which produces the desired behavior
* Change flat_map into flatten
(commit cargo.lock)
* Ensure footnotes classes generated are not filtered
pulldown-cmark add somes classes when footnotes html is generated. This commit ensure they are not filtered by html sanitizer
* Add some footnotes styling
* Paginate the outbox responses. Fixes#669
* Address Ana's review
* Make outbox_fetch page through instance outboxes
* Fix infinite loop in fetch_outbox
* Fix off by one
* 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
* Make a distinction between moderators and admins
And rework the user list in the moderation interface, to be able to run the same action on many users,
and to have a huge list of actions whithout loosing space.
* Make user's role an enum + make it impossible for a moderator to escalate privileges
With the help of diesel-derive-enum (maybe it could be used in other places too?)
Also, moderators are still able to grant or revoke moderation rights to other people, but maybe only admins should be able to do it?
* Cargo fmt
* copy/pasting is bad
* Remove diesel-derive-enum and use an integer instead
It was not compatible with both Postgres and SQlite, because for one it generated a schema
with the "User_role" type, but for the other it was "Text"…
* Reset translations
* Use an enum to avoid magic numbers + fix the tests
* Reset translations
* Fix down.sql
* Theming
- Custom CSS for blogs
- Custom themes for instance
- New dark theme
- UI to choose your instance theme
- Option to disable blog themes if you prefer to only have the instance theme
- UI to choose a blog theme