From fb60236a54893d690a8ddba34f597e4820431154 Mon Sep 17 00:00:00 2001 From: fdb-hiroshima <35889323+fdb-hiroshima@users.noreply.github.com> Date: Wed, 14 Aug 2019 15:04:30 +0200 Subject: [PATCH 1/5] update dependancies (#643) * Bump activitystreams-derive from 0.1.0 to 0.1.1 * Bump tantivy from 0.9.1 to 0.10.1 * Bump rpassword from 3.0.2 to 4.0.1 * Bump num_cpus from 1.10.0 to 1.10.1 * Bump serde_qs from 0.4.6 to 0.5.0 * Bump stdweb-internal-runtime from 0.1.3 to 0.1.4 * [Security] Bump smallvec from 0.6.9 to 0.6.10 * Bump chrono from 0.4.6 to 0.4.7 * Bump bcrypt from 0.4.0 to 0.5.0 * Bump serde_json from 1.0.39 to 1.0.40 * Bump tokio from 0.1.21 to 0.1.22 * Bump scheduled-thread-pool from 0.2.0 to 0.2.2 * Bump stdweb from 0.4.14 to 0.4.18 * Bump hyper from 0.12.29 to 0.12.33 * Bump reqwest from 0.9.17 to 0.9.19 * Bump url from 1.7.2 to 2.1.0 --- Cargo.lock | 462 +++++++++++++++++++++++++++++----------- Cargo.toml | 8 +- plume-cli/Cargo.toml | 2 +- plume-common/Cargo.toml | 6 +- plume-front/Cargo.toml | 4 +- plume-models/Cargo.toml | 8 +- 6 files changed, 349 insertions(+), 141 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0e405dc1..91f7f611 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,17 +5,17 @@ name = "activitypub" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "activitystreams-derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "activitystreams-derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "activitystreams-traits 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "activitystreams-types 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "activitystreams-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -30,7 +30,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -38,13 +38,13 @@ name = "activitystreams-types" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "activitystreams-derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "activitystreams-derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "activitystreams-traits 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -81,11 +81,6 @@ dependencies = [ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "antidote" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "approx" version = "0.1.1" @@ -213,14 +208,14 @@ dependencies = [ [[package]] name = "bcrypt" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "blowfish 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -248,10 +243,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bitpacking" -version = "0.6.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -291,6 +286,11 @@ name = "build_const" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bumpalo" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "bytecount" version = "0.5.1" @@ -316,6 +316,15 @@ dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "c2-chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cc" version = "1.0.37" @@ -354,9 +363,10 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", @@ -445,7 +455,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -497,7 +507,7 @@ dependencies = [ "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -507,7 +517,7 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -573,7 +583,7 @@ dependencies = [ [[package]] name = "crunchy" -version = "0.1.6" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -672,7 +682,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -750,7 +760,7 @@ version = "0.0.19" source = "git+https://github.com/lettre/rust-email#3086d7bcda2c3b3fa4b1297cba216151ce4a3efc" dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -982,7 +992,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -993,6 +1003,15 @@ dependencies = [ "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "getrandom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gettext" version = "0.3.0" @@ -1162,7 +1181,7 @@ dependencies = [ "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1172,7 +1191,7 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.29" +version = "0.12.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1188,7 +1207,7 @@ dependencies = [ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1196,7 +1215,7 @@ dependencies = [ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1206,7 +1225,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1221,6 +1240,16 @@ dependencies = [ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "idna" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "if_chain" version = "0.1.3" @@ -1302,6 +1331,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "lazy_static" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "spin 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "lazycell" @@ -1324,7 +1356,7 @@ dependencies = [ "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1373,6 +1405,14 @@ dependencies = [ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lock_api" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "log" version = "0.3.9" @@ -1409,7 +1449,7 @@ dependencies = [ "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1701,7 +1741,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "num_cpus" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1712,6 +1752,14 @@ name = "numtoa" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "once_cell" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "opaque-debug" version = "0.2.2" @@ -1782,6 +1830,16 @@ dependencies = [ "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.3.1" @@ -1790,7 +1848,7 @@ dependencies = [ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1802,7 +1860,21 @@ dependencies = [ "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1831,6 +1903,11 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "phf" version = "0.7.24" @@ -1878,7 +1955,7 @@ dependencies = [ "activitypub 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "askama_escape 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "atom_syndication 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", "colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1892,7 +1969,7 @@ dependencies = [ "lettre 0.9.0 (git+https://github.com/lettre/lettre?rev=c988b1760ad8179d9e7f3fb8594d2b86cf2a0a49)", "lettre_email 0.9.0 (git+https://github.com/lettre/lettre?rev=c988b1760ad8179d9e7f3fb8594d2b86cf2a0a49)", "multipart 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "plume-api 0.3.0", "plume-common 0.3.0", "plume-models 0.3.0", @@ -1900,14 +1977,14 @@ dependencies = [ "rocket_contrib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "rocket_csrf 0.1.0 (git+https://github.com/fdb-hiroshima/rocket_csrf?rev=4a72ea2ec716cb0b26188fb00bccf2ef7d1e031c)", "rocket_i18n 0.4.0 (git+https://github.com/Plume-org/rocket_i18n?rev=e922afa7c366038b3433278c03b1456b346074f2)", - "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rpassword 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "rsass 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)", "ructe 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_qs 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_qs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "validator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "validator_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1930,7 +2007,7 @@ dependencies = [ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "dotenv 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "plume-models 0.3.0", - "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rpassword 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1938,23 +2015,23 @@ name = "plume-common" version = "0.3.0" dependencies = [ "activitypub 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "activitystreams-derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "activitystreams-derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "activitystreams-traits 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "array_tool 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", "openssl 0.10.22 (registry+https://github.com/rust-lang/crates.io-index)", "pulldown-cmark 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", "rocket 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1965,8 +2042,8 @@ dependencies = [ "gettext-macros 0.4.0 (git+https://github.com/Plume-org/gettext-macros/?rev=a7c605f7edd6bfbfbfe7778026bfefd88d82db10)", "gettext-utils 0.1.0 (git+https://github.com/Plume-org/gettext-macros/?rev=a7c605f7edd6bfbfbfe7778026bfefd88d82db10)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.18 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-runtime 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1985,8 +2062,8 @@ dependencies = [ "activitypub 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "ammonia 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "askama_escape 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bcrypt 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "bcrypt 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "diesel-derive-newtype 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1999,20 +2076,25 @@ dependencies = [ "plume-api 0.3.0", "plume-common 0.3.0", "plume-macro 0.1.0", - "reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", "rocket 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "rocket_i18n 0.4.0 (git+https://github.com/Plume-org/rocket_i18n?rev=e922afa7c366038b3433278c03b1456b346074f2)", - "scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tantivy 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tantivy 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "whatlang 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ppv-lite86" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "pq-sys" version = "0.4.6" @@ -2135,7 +2217,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2189,6 +2271,18 @@ dependencies = [ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_chacha" version = "0.1.1" @@ -2198,6 +2292,15 @@ dependencies = [ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_chacha" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_core" version = "0.3.1" @@ -2211,6 +2314,14 @@ name = "rand_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "rand_core" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_hc" version = "0.1.0" @@ -2219,6 +2330,14 @@ dependencies = [ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand_isaac" version = "0.1.1" @@ -2342,7 +2461,7 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.9.17" +version = "0.9.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2353,23 +2472,24 @@ dependencies = [ "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)", "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", + "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2397,7 +2517,7 @@ dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "pear 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rocket_codegen 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "rocket_http 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2430,7 +2550,7 @@ dependencies = [ "notify 4.0.11 (registry+https://github.com/rust-lang/crates.io-index)", "rocket 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2455,7 +2575,7 @@ dependencies = [ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "pear 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "state 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2472,12 +2592,11 @@ dependencies = [ [[package]] name = "rpassword" -version = "3.0.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2534,7 +2653,7 @@ dependencies = [ [[package]] name = "ryu" -version = "0.2.8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2566,10 +2685,10 @@ dependencies = [ [[package]] name = "scheduled-thread-pool" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2592,6 +2711,11 @@ name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "scopeguard" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "security-framework" version = "0.3.1" @@ -2644,17 +2768,17 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_qs" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2702,7 +2826,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "smallvec" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2714,6 +2838,11 @@ dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "spin" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "stable_deref_trait" version = "1.1.1" @@ -2726,16 +2855,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "stdweb" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-macros 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-macros 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-runtime 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2752,7 +2882,7 @@ dependencies = [ [[package]] name = "stdweb-internal-macros" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2760,14 +2890,14 @@ dependencies = [ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stdweb-internal-runtime" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2882,16 +3012,16 @@ dependencies = [ [[package]] name = "tantivy" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atomicwrites 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bitpacking 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitpacking 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "census 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", "combine 3.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "downcast-rs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2903,13 +3033,13 @@ dependencies = [ "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "htmlescape 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "levenshtein_automata 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "murmurhash32 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "notify 4.0.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "owned-read 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2917,14 +3047,14 @@ dependencies = [ "scoped-pool 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "snap 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tantivy-fst 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3009,13 +3139,13 @@ dependencies = [ [[package]] name = "tokio" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3026,7 +3156,6 @@ dependencies = [ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-trace-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3099,7 +3228,7 @@ dependencies = [ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3139,7 +3268,7 @@ dependencies = [ "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3156,14 +3285,6 @@ dependencies = [ "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "tokio-trace-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "tokio-udp" version = "0.1.3" @@ -3273,7 +3394,7 @@ name = "unicode-normalization" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3319,6 +3440,16 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "url" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "utf-8" version = "0.7.5" @@ -3348,7 +3479,7 @@ dependencies = [ "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3403,7 +3534,7 @@ dependencies = [ [[package]] name = "want" -version = "0.0.6" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3411,12 +3542,60 @@ dependencies = [ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wasm-bindgen" +version = "0.2.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "wasm-bindgen-macro 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bumpalo 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-macro-support 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-backend 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-shared 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.48" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "webfinger" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)", + "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3477,6 +3656,14 @@ dependencies = [ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "winreg" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winutil" version = "0.1.1" @@ -3506,14 +3693,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum activitypub 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08018b04725f5107d4a64e850f8a44a1f8a7e72abf0ca09125e3054921d26fd9" -"checksum activitystreams-derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "48db826c588a009960d74530e7c215e21fae130f585362504dc6b6357e5ce86b" +"checksum activitystreams-derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "176bdecfca82b1980e4769e3d54b6a392284b724083e0bff68272e290f17458f" "checksum activitystreams-traits 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "670ef03168e704b0cae242e7a5d8b40506772b339687e01a3496fc4afe2e8542" "checksum activitystreams-types 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "224d1e28d043f4275139445475da8866f0a430ecfc9047c9a15fbe3c70c22b04" "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" "checksum ammonia 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c799ecf1ad77acb48b643e2f45b12d60ee41576287fc575031aa020de88b8f45" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5" "checksum approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08abcc3b4e9339e33a3d0a5ed15d84a687350c05689d825e0f6655eef9e76a94" "checksum array_tool 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8f8cb5d814eb646a863c4f24978cff2880c4be96ad8cde2c0f0678732902e271" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" @@ -3530,27 +3716,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d55aa264e822dbafa12db4d54767aff17c6ba55ea2d8559b3e17392c7d000e5d" "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -"checksum bcrypt 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1bae9179df8ecf490f612b709fd8aa04408ed60ac2db50334a68fa411fd01ef5" +"checksum bcrypt 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4fd6a91ff640809cfab4ea74312a892238a7bbae53adbf717b71122deb0c85" "checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" "checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" "checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum bitpacking 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "667f3f518358b2cf64891b46a6dd2eb794e9f80d39f7eb5974f4784bcda9a61b" +"checksum bitpacking 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f94e996feb537aab4f2cc05fbf5fb572df6c9830fa11df7dc61e3793ccdc405" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" "checksum blowfish 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aeb80d00f2688459b8542068abd974cfb101e7a82182414a99b5026c0d85cc3" "checksum buf_redux 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72f25c67abbf523ff8457771622fb731ac4a2391439de33bc60febcdee1749c9" "checksum bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" +"checksum bumpalo 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2cd43d82f27d68911e6ee11ee791fb248f138f5d69424dc02e098d4f152b0b05" "checksum bytecount 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be0fdd54b507df8f22012890aadd099979befdba27713c767993f8380112ca7c" "checksum byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96c8b41881888cc08af32d47ac4edd52bc7fa27fef774be47a92443756451304" "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101" "checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" "checksum census 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "641317709904ba3c1ad137cb5d88ec9d8c03c07de087b2cff5e84ec565c7e299" "checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" "checksum cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c" "checksum chomp 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9f74ad218e66339b11fd23f693fb8f1d621e80ba6ac218297be26073365d163d" -"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" +"checksum chrono 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "77d81f58b7301084de3b958691458a53c3f7e0b1d702f77e550b6a88e3a88abe" "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cdb90b60f2927f8d76139c72dbde7e10c3a2bc47c8594c9c7a66529f2687c03" @@ -3572,7 +3760,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" -"checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" +"checksum crunchy 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" "checksum ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c7dfd2d8b4c82121dfdff120f818e09fc4380b0b7e17a742081a89b94853e87f" "checksum custom_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9" "checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" @@ -3624,6 +3812,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "a2037ec1c6c1c4f79557762eab1f7eae1f64f6cb418ace90fae88f0942b60139" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" "checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" +"checksum getrandom 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e65cce4e5084b14874c4e7097f38cab54f47ee554f9194673456ea379dcc4c55" "checksum gettext 0.3.0 (git+https://github.com/Plume-org/gettext/?rev=294c54d74c699fbc66502b480a37cc66c1daa7f3)" = "" "checksum gettext-macros 0.4.0 (git+https://github.com/Plume-org/gettext-macros/?rev=a7c605f7edd6bfbfbfe7778026bfefd88d82db10)" = "" "checksum gettext-utils 0.1.0 (git+https://github.com/Plume-org/gettext-macros/?rev=a7c605f7edd6bfbfbfe7778026bfefd88d82db10)" = "" @@ -3642,9 +3831,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" -"checksum hyper 0.12.29 (registry+https://github.com/rust-lang/crates.io-index)" = "e2cd6adf83b3347d36e271f030621a8cf95fd1fd0760546b9fc5a24a0f1447c7" +"checksum hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb44cbce9d8ee4fb36e4c0ad7b794ac44ebaad924b9c8291a63215bb44c2c8f" "checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" "checksum if_chain 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4bac95d9aa0624e7b78187d6fb8ab012b41d9f6f54b1bcb61e61c4845f8357ec" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum inotify 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40b54539f3910d6f84fbf9a643efd6e3aa6e4f001426c0329576128255994718" @@ -3664,6 +3854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" "checksum libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd6457c70bbff456d9fe49deaba35ec47c3e598bf8d7950ff0575ceb7a8a6ad1" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" +"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" @@ -3699,8 +3890,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum num-rational 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e96f040177bb3da242b5b1ecf3f54b5d5af3efbbfb18608977a5d2767b22f10" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" -"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" +"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" "checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" +"checksum once_cell 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d584f08c2d717d5c23a6414fc2822b71c651560713e54fa7eace675f758a355e" "checksum opaque-debug 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "93f5bb2e8e8dec81642920ccff6b61f1eb94fa3020c5a325c9851ff604152409" "checksum openssl 0.10.22 (registry+https://github.com/rust-lang/crates.io-index)" = "a51f452b82d622fc8dd973d7266e9055ac64af25b957d9ced3989142dc61cb6b" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" @@ -3709,16 +3901,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" +"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" +"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" "checksum pear 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c26d2b92e47063ffce70d3e3b1bd097af121a9e0db07ca38a6cc1cf0cc85ff25" "checksum pear_codegen 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "336db4a192cc7f54efeb0c4e11a9245394824cc3bcbd37ba3ff51240c35d7a6e" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" "checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" "checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" +"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b" "checksum pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda" "checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" @@ -3739,10 +3935,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" "checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" +"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" @@ -3757,7 +3957,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rental 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d57522f275b02e67391947c98f99d55f297fefcb6699bb000340696e63620194" "checksum rental-impl 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a269533a9b93bbaa4848260e51b64564cc445d46185979f31974ec703374803a" -"checksum reqwest 0.9.17 (registry+https://github.com/rust-lang/crates.io-index)" = "e57803405f8ea0eb041c1567dac36127e0c8caa1251c843cb03d43fd767b3d50" +"checksum reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)" = "1d0777154c2c3eb54f5c480db01de845652d941e47191277cc673634c3853939" "checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92" "checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rocket 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "55b83fcf219c8b4980220231d5dd9eae167bdc63449fdab0a04b6c8b8cd361a8" @@ -3766,43 +3966,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum rocket_csrf 0.1.0 (git+https://github.com/fdb-hiroshima/rocket_csrf?rev=4a72ea2ec716cb0b26188fb00bccf2ef7d1e031c)" = "" "checksum rocket_http 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "abec045da00893bd4eef6084307a4bec0742278a7635a6a8b943da023202a5f7" "checksum rocket_i18n 0.4.0 (git+https://github.com/Plume-org/rocket_i18n?rev=e922afa7c366038b3433278c03b1456b346074f2)" = "" -"checksum rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e" +"checksum rpassword 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f072d931f11a96546efd97642e1e75e807345aced86b947f9239102f262d0fcd" "checksum rsass 0.9.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4534cc03040beacd2668621815f26fe57e5b7cfe085790f98e5e87c1612316" "checksum ructe 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "976a8c6d7b90407935443485911ba072dddbe188f14e173c687b16e0b5d22b43" "checksum runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "647a821d66049faccc993fc3c379d1181b81a484097495cda79ffdb17b55b87f" "checksum rust-stemmers 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05928c187b85b38f6b98db43057a24f0245163635a5ce6325a4f77a833d646aa" "checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f" +"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" "checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" -"checksum scheduled-thread-pool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a2ff3fc5223829be817806c6441279c676e454cc7da608faf03b0ccc09d3889" +"checksum scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd07742e081ff6c077f5f6b283f12f32b9e7cc765b316160d66289b74546fbb3" "checksum scoped-pool 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "817a3a15e704545ce59ed2b5c60a5d32bda4d7869befb8b36667b658a6c00b43" "checksum scopeguard 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "59a076157c1e2dc561d8de585151ee6965d910dd4dcb5dabb7ae3e83981a6c57" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" +"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" "checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" "checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "a72e9b96fa45ce22a4bc23da3858dfccfd60acd28a25bcd328a98fdd6bea43fd" "checksum serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "101b495b109a3e3ca8c4cbe44cf62391527cdfb6ba15821c5ce80bcd5ea23f9f" -"checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" -"checksum serde_qs 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "35965fa1d2413717053d67c2df1f5c3e1763fbf77200ea7e767523707bd5a0af" +"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704" +"checksum serde_qs 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b232c387059b62b17eb0487bf23de3ddf21b648ad2206fadc6ff3af9e2f3c07" "checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" "checksum shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5f047b90b2ca2d1526ff73d67cba61f86f4cf9a8afddc99dd96702ded8e684" "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" -"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" +"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" "checksum snap 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "95d697d63d44ad8b78b8d235bf85b34022a78af292c8918527c5f0cffdde7f43" +"checksum spin 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbdb51a221842709c2dd65b62ad4b78289fc3e706a02c17a26104528b6aa7837" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum state 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7345c971d1ef21ffdbd103a75990a15eb03604fc8b8852ca8cb418ee1a099028" -"checksum stdweb 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5eafd45550bc406cfa179ea263ba0935da87adf220dab40e2c25c4675edc49d8" +"checksum stdweb 0.4.18 (registry+https://github.com/rust-lang/crates.io-index)" = "a68c0ce28cf7400ed022e18da3c4591e14e1df02c70e93573cc59921b3923aeb" "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" -"checksum stdweb-internal-macros 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1635afd059cbfac7d5b1274f0c44cec110c1e013c48e8bbc22e07e52696cf887" -"checksum stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a2a2f4a2eb556337b2d1a302630bbddf989ae383c70393e89b48152b9896cbda" +"checksum stdweb-internal-macros 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "e68f7d08b76979a43e93fe043b66d2626e35d41d68b0b85519202c6dd8ac59fa" +"checksum stdweb-internal-runtime 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d52317523542cc0af5b7e31017ad0f7d1e78da50455e38d5657cd17754f617da" "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" "checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423" "checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da" @@ -3815,7 +4017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe" "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" -"checksum tantivy 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67a63475a55950ad47573f881d912b8fab7f1f53a9cc2e036185efc92b471402" +"checksum tantivy 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a336e43be781173cff6793242157791dcfc6d3d7a3c92c9fc0a9c8828e0822e5" "checksum tantivy-fst 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16b22af5ff09b8897093287642a5aaee6f30eb496526ef83a8dd0f4c636ac367" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" @@ -3824,7 +4026,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "ec2ffcf4bcfc641413fa0f1427bf8f91dfc78f56a6559cbf50e04837ae442a87" +"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" "checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" "checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" @@ -3836,7 +4038,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" "checksum tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72558af20be886ea124595ea0f806dd5703b8958e4705429dd58b3d8231f72f2" "checksum tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e" -"checksum tokio-trace-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9c8a256d6956f7cb5e2bdfe8b1e8022f1a09206c6c2b1ba00f3b746b260c613" "checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" "checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" @@ -3858,6 +4059,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61" "checksum utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" @@ -3869,7 +4071,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" -"checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" +"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" +"checksum wasm-bindgen 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "4de97fa1806bb1a99904216f6ac5e0c050dc4f8c676dc98775047c38e5c01b55" +"checksum wasm-bindgen-backend 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "5d82c170ef9f5b2c63ad4460dfcee93f3ec04a9a36a4cc20bc973c39e59ab8e3" +"checksum wasm-bindgen-macro 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f07d50f74bf7a738304f6b8157f4a581e1512cd9e9cdb5baad8c31bbe8ffd81d" +"checksum wasm-bindgen-macro-support 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "95cf8fe77e45ba5f91bc8f3da0c3aa5d464b3d8ed85d84f4d4c7cc106436b1d7" +"checksum wasm-bindgen-shared 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "d9c2d4d4756b2e46d3a5422e06277d02e4d3e1d62d138b76a4c681e925743623" "checksum webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ec24b1b0700d4b466d280228ed0f62274eedeaa80206820f071fdc8ed787b664" "checksum whatlang 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bf61042986b0f0612917b71609b861d695e76c55f9fc81b8a8f8cd363646816c" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -3879,6 +4086,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum winconsole 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef84b96d10db72dd980056666d7f1e7663ce93d82fa33b63e71c966f4cf5032" +"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" "checksum winutil 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7daf138b6b14196e3830a588acf1e86966c694d3e8fb026fb105b8b5dca07e6e" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum yansi 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d60c3b48c9cdec42fb06b3b84b5b087405e1fa1c644a1af3930e4dfafe93de48" diff --git a/Cargo.toml b/Cargo.toml index 8a716347..0254f681 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,16 +18,16 @@ guid-create = "0.1" heck = "0.3.0" lettre = { git = "https://github.com/lettre/lettre", rev = "c988b1760ad8179d9e7f3fb8594d2b86cf2a0a49" } lettre_email = { git = "https://github.com/lettre/lettre", rev = "c988b1760ad8179d9e7f3fb8594d2b86cf2a0a49" } -num_cpus = "1.0" +num_cpus = "1.10" rocket = "0.4.0" rocket_contrib = { version = "0.4.0", features = ["json"] } rocket_i18n = { git = "https://github.com/Plume-org/rocket_i18n", rev = "e922afa7c366038b3433278c03b1456b346074f2" } -rpassword = "3.0" +rpassword = "4.0" runtime-fmt = "0.3.0" -scheduled-thread-pool = "0.2.0" +scheduled-thread-pool = "0.2.2" serde = "1.0" serde_json = "1.0" -serde_qs = "0.4" +serde_qs = "0.5" shrinkwraprs = "0.2.1" validator = "0.8" validator_derive = "0.8" diff --git a/plume-cli/Cargo.toml b/plume-cli/Cargo.toml index a5f18c99..68e89872 100644 --- a/plume-cli/Cargo.toml +++ b/plume-cli/Cargo.toml @@ -10,7 +10,7 @@ path = "src/main.rs" [dependencies] clap = "2.33" dotenv = "0.14" -rpassword = "3.0" +rpassword = "4.0" [dependencies.diesel] features = ["r2d2", "chrono"] diff --git a/plume-common/Cargo.toml b/plume-common/Cargo.toml index e2a34a3b..462a58e2 100644 --- a/plume-common/Cargo.toml +++ b/plume-common/Cargo.toml @@ -5,13 +5,13 @@ authors = ["Plume contributors"] [dependencies] activitypub = "0.1.1" -activitystreams-derive = "0.1.0" +activitystreams-derive = "0.1.1" activitystreams-traits = "0.1.0" array_tool = "1.0" base64 = "0.10" heck = "0.3.0" hex = "0.3" -hyper = "0.12.28" +hyper = "0.12.33" openssl = "0.10.22" rocket = "0.4.0" reqwest = "0.9" @@ -19,7 +19,7 @@ serde = "1.0" serde_derive = "1.0" serde_json = "1.0" shrinkwraprs = "0.2.1" -tokio = "0.1.21" +tokio = "0.1.22" [dependencies.chrono] features = ["serde"] diff --git a/plume-front/Cargo.toml b/plume-front/Cargo.toml index 61cb26d0..213c9a8f 100644 --- a/plume-front/Cargo.toml +++ b/plume-front/Cargo.toml @@ -4,8 +4,8 @@ version = "0.3.0" authors = ["Plume contributors"] [dependencies] -stdweb = "=0.4.14" -stdweb-internal-runtime = "=0.1.3" +stdweb = "=0.4.18" +stdweb-internal-runtime = "=0.1.4" gettext = { git = "https://github.com/Plume-org/gettext/", rev = "294c54d74c699fbc66502b480a37cc66c1daa7f3" } gettext-macros = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" } gettext-utils = { git = "https://github.com/Plume-org/gettext-macros/", rev = "a7c605f7edd6bfbfbfe7778026bfefd88d82db10" } diff --git a/plume-models/Cargo.toml b/plume-models/Cargo.toml index a5155f6f..436d67b4 100644 --- a/plume-models/Cargo.toml +++ b/plume-models/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Plume contributors"] activitypub = "0.1.1" ammonia = "2.1.1" askama_escape = "0.1" -bcrypt = "0.4" +bcrypt = "0.5" guid-create = "0.1" heck = "0.3.0" itertools = "0.8.0" @@ -17,12 +17,12 @@ openssl = "0.10.22" rocket = "0.4.0" rocket_i18n = { git = "https://github.com/Plume-org/rocket_i18n", rev = "e922afa7c366038b3433278c03b1456b346074f2" } reqwest = "0.9" -scheduled-thread-pool = "0.2.0" +scheduled-thread-pool = "0.2.2" serde = "1.0" serde_derive = "1.0" serde_json = "1.0" -tantivy = "0.9.1" -url = "1.7" +tantivy = "0.10.1" +url = "2.1" webfinger = "0.4.1" whatlang = "0.7.1" shrinkwraprs = "0.2.1" -- 2.38.5 From a6c84daa1a242246ac01260eb9bc201dd6e47830 Mon Sep 17 00:00:00 2001 From: Ana Gelez Date: Wed, 21 Aug 2019 00:42:04 +0200 Subject: [PATCH 2/5] Theming (#624) * 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 --- .gitignore | 5 +- Cargo.lock | 2 + {static => assets}/icons/trwnh/README.md | 0 {static => assets}/icons/trwnh/avatar.png | Bin {static => assets}/icons/trwnh/avatar.svg | 0 {static => assets}/icons/trwnh/avatar2.png | Bin .../trwnh/feather-black/plumeFeatherBlack.svg | 0 .../feather-black/plumeFeatherBlack128.png | Bin .../feather-black/plumeFeatherBlack144.png | Bin .../feather-black/plumeFeatherBlack16.png | Bin .../feather-black/plumeFeatherBlack160.png | Bin .../feather-black/plumeFeatherBlack192.png | Bin .../feather-black/plumeFeatherBlack24.png | Bin .../feather-black/plumeFeatherBlack256.png | Bin .../feather-black/plumeFeatherBlack32.png | Bin .../feather-black/plumeFeatherBlack36.png | Bin .../feather-black/plumeFeatherBlack44.png | Bin .../feather-black/plumeFeatherBlack48.png | Bin .../feather-black/plumeFeatherBlack512.png | Bin .../feather-black/plumeFeatherBlack64.png | Bin .../feather-black/plumeFeatherBlack72.png | Bin .../feather-black/plumeFeatherBlack80.png | Bin .../feather-black/plumeFeatherBlack96.png | Bin .../feather-filled/plumeFeatherFilled.svg | 0 .../feather-filled/plumeFeatherFilled128.png | Bin .../feather-filled/plumeFeatherFilled144.png | Bin .../feather-filled/plumeFeatherFilled16.png | Bin .../feather-filled/plumeFeatherFilled160.png | Bin .../feather-filled/plumeFeatherFilled192.png | Bin .../feather-filled/plumeFeatherFilled24.png | Bin .../feather-filled/plumeFeatherFilled256.png | Bin .../feather-filled/plumeFeatherFilled32.png | Bin .../feather-filled/plumeFeatherFilled36.png | Bin .../feather-filled/plumeFeatherFilled44.png | Bin .../feather-filled/plumeFeatherFilled48.png | Bin .../feather-filled/plumeFeatherFilled512.png | Bin .../feather-filled/plumeFeatherFilled64.png | Bin .../feather-filled/plumeFeatherFilled72.png | Bin .../feather-filled/plumeFeatherFilled80.png | Bin .../feather-filled/plumeFeatherFilled96.png | Bin .../icons/trwnh/feather/plumeFeather.svg | 0 .../icons/trwnh/feather/plumeFeather128.png | Bin .../icons/trwnh/feather/plumeFeather144.png | Bin .../icons/trwnh/feather/plumeFeather16.png | Bin .../icons/trwnh/feather/plumeFeather160.png | Bin .../icons/trwnh/feather/plumeFeather192.png | Bin .../icons/trwnh/feather/plumeFeather24.png | Bin .../icons/trwnh/feather/plumeFeather256.png | Bin .../icons/trwnh/feather/plumeFeather32.png | Bin .../icons/trwnh/feather/plumeFeather36.png | Bin .../icons/trwnh/feather/plumeFeather44.png | Bin .../icons/trwnh/feather/plumeFeather48.png | Bin .../icons/trwnh/feather/plumeFeather512.png | Bin .../icons/trwnh/feather/plumeFeather64.png | Bin .../icons/trwnh/feather/plumeFeather72.png | Bin .../icons/trwnh/feather/plumeFeather80.png | Bin .../icons/trwnh/feather/plumeFeather96.png | Bin {static => assets}/icons/trwnh/ideas.svg | 0 .../paragraphs-black/plumeParagraphsBlack.svg | 0 .../plumeParagraphsBlack128.png | Bin .../plumeParagraphsBlack144.png | Bin .../plumeParagraphsBlack16.png | Bin .../plumeParagraphsBlack160.png | Bin .../plumeParagraphsBlack192.png | Bin .../plumeParagraphsBlack24.png | Bin .../plumeParagraphsBlack256.png | Bin .../plumeParagraphsBlack32.png | Bin .../plumeParagraphsBlack36.png | Bin .../plumeParagraphsBlack44.png | Bin .../plumeParagraphsBlack512.png | Bin .../plumeParagraphsBlack64.png | Bin .../plumeParagraphsBlack72.png | Bin .../plumeParagraphsBlack80.png | Bin .../plumeParagraphsBlack96.png | Bin .../trwnh/paragraphs/plumeParagraphs.svg | 0 .../trwnh/paragraphs/plumeParagraphs128.png | Bin .../trwnh/paragraphs/plumeParagraphs144.png | Bin .../trwnh/paragraphs/plumeParagraphs16.png | Bin .../trwnh/paragraphs/plumeParagraphs160.png | Bin .../trwnh/paragraphs/plumeParagraphs192.png | Bin .../trwnh/paragraphs/plumeParagraphs24.png | Bin .../trwnh/paragraphs/plumeParagraphs256.png | Bin .../trwnh/paragraphs/plumeParagraphs32.png | Bin .../trwnh/paragraphs/plumeParagraphs36.png | Bin .../trwnh/paragraphs/plumeParagraphs44.png | Bin .../trwnh/paragraphs/plumeParagraphs48.png | Bin .../trwnh/paragraphs/plumeParagraphs512.png | Bin .../trwnh/paragraphs/plumeParagraphs64.png | Bin .../trwnh/paragraphs/plumeParagraphs72.png | Bin .../trwnh/paragraphs/plumeParagraphs80.png | Bin .../trwnh/paragraphs/plumeParagraphs96.png | Bin {static => assets}/images/audio-file.svg | 0 {static => assets/images}/default-avatar.png | Bin {static => assets}/images/feather-sprite.svg | 0 {static => assets}/images/unknown-file.svg | 0 {static => assets}/images/video-file.svg | 0 assets/themes/blog-monospace/theme.scss | 3 + .../themes/default}/_article.scss | 48 ++--- assets/themes/default/_dark_variables.scss | 19 ++ .../css => assets/themes/default}/_forms.scss | 18 +- .../themes/default}/_global.scss | 203 ++++++++++++++++-- .../themes/default}/_header.scss | 8 +- .../themes/default}/_variables.scss | 5 + assets/themes/default/dark.scss | 12 ++ .../css => assets/themes/default}/feather.css | 10 +- .../themes/default}/fonts/Feather/Feather.eot | Bin .../themes/default}/fonts/Feather/Feather.svg | 0 .../themes/default}/fonts/Feather/Feather.ttf | Bin .../default}/fonts/Feather/Feather.woff | Bin .../themes/default}/fonts/Lora/Lora-Bold.eot | Bin .../themes/default}/fonts/Lora/Lora-Bold.ttf | Bin .../themes/default}/fonts/Lora/Lora-Bold.woff | Bin .../default}/fonts/Lora/Lora-Bold.woff2 | Bin .../default}/fonts/Lora/Lora-BoldItalic.eot | Bin .../default}/fonts/Lora/Lora-BoldItalic.ttf | Bin .../default}/fonts/Lora/Lora-BoldItalic.woff | Bin .../default}/fonts/Lora/Lora-BoldItalic.woff2 | Bin .../default}/fonts/Lora/Lora-Italic.eot | Bin .../default}/fonts/Lora/Lora-Italic.ttf | Bin .../default}/fonts/Lora/Lora-Italic.woff | Bin .../default}/fonts/Lora/Lora-Italic.woff2 | Bin .../default}/fonts/Lora/Lora-Regular.eot | Bin .../default}/fonts/Lora/Lora-Regular.ttf | Bin .../default}/fonts/Lora/Lora-Regular.woff | Bin .../default}/fonts/Lora/Lora-Regular.woff2 | Bin .../themes/default}/fonts/Lora/Lora.css | 0 .../themes/default}/fonts/Lora/OFL.txt | 0 .../default}/fonts/Playfair_Display/OFL.txt | 0 .../PlayfairDisplay-Black.eot | Bin .../PlayfairDisplay-Black.ttf | Bin .../PlayfairDisplay-Black.woff | Bin .../PlayfairDisplay-Black.woff2 | Bin .../PlayfairDisplay-BlackItalic.eot | Bin .../PlayfairDisplay-BlackItalic.ttf | Bin .../PlayfairDisplay-BlackItalic.woff | Bin .../PlayfairDisplay-BlackItalic.woff2 | Bin .../Playfair_Display/PlayfairDisplay-Bold.eot | Bin .../Playfair_Display/PlayfairDisplay-Bold.ttf | Bin .../PlayfairDisplay-Bold.woff | Bin .../PlayfairDisplay-Bold.woff2 | Bin .../PlayfairDisplay-BoldItalic.eot | Bin .../PlayfairDisplay-BoldItalic.ttf | Bin .../PlayfairDisplay-BoldItalic.woff | Bin .../PlayfairDisplay-BoldItalic.woff2 | Bin .../PlayfairDisplay-Italic.eot | Bin .../PlayfairDisplay-Italic.ttf | Bin .../PlayfairDisplay-Italic.woff | Bin .../PlayfairDisplay-Italic.woff2 | Bin .../PlayfairDisplay-Regular.eot | Bin .../PlayfairDisplay-Regular.ttf | Bin .../PlayfairDisplay-Regular.woff | Bin .../PlayfairDisplay-Regular.woff2 | Bin .../Playfair_Display/PlayfairDisplay.css | 0 .../default}/fonts/Route159/Route159-Bold.eot | Bin .../fonts/Route159/Route159-Bold.woff | Bin .../fonts/Route159/Route159-BoldItalic.eot | Bin .../fonts/Route159/Route159-BoldItalic.woff | Bin .../fonts/Route159/Route159-Heavy.eot | Bin .../fonts/Route159/Route159-Heavy.woff | Bin .../fonts/Route159/Route159-HeavyItalic.eot | Bin .../fonts/Route159/Route159-HeavyItalic.woff | Bin .../fonts/Route159/Route159-Italic.eot | Bin .../fonts/Route159/Route159-Italic.woff | Bin .../fonts/Route159/Route159-Light.eot | Bin .../fonts/Route159/Route159-Light.woff | Bin .../fonts/Route159/Route159-LightItalic.eot | Bin .../fonts/Route159/Route159-LightItalic.woff | Bin .../fonts/Route159/Route159-Regular.eot | Bin .../fonts/Route159/Route159-Regular.woff | Bin .../fonts/Route159/Route159-SemiBold.eot | Bin .../fonts/Route159/Route159-SemiBold.woff | Bin .../Route159/Route159-SemiBoldItalic.eot | Bin .../Route159/Route159-SemiBoldItalic.woff | Bin .../fonts/Route159/Route159-UltraLight.eot | Bin .../fonts/Route159/Route159-UltraLight.woff | Bin .../Route159/Route159-UltraLightItalic.eot | Bin .../Route159/Route159-UltraLightItalic.woff | Bin .../default}/fonts/Route159/Route159.css | 0 assets/themes/default/light.scss | 12 ++ build.rs | 111 ++++++++-- .../2019-06-19-141114_themes/down.sql | 4 + .../postgres/2019-06-19-141114_themes/up.sql | 4 + .../sqlite/2019-06-21-154916_themes/down.sql | 88 ++++++++ .../sqlite/2019-06-21-154916_themes/up.sql | 4 + plume-models/Cargo.toml | 1 + plume-models/src/blogs.rs | 5 +- plume-models/src/config.rs | 2 + plume-models/src/instance.rs | 54 +++++ plume-models/src/lib.rs | 1 + plume-models/src/schema.rs | 3 + plume-models/src/users.rs | 49 +---- src/main.rs | 1 + src/routes/blogs.rs | 3 + src/routes/mod.rs | 49 ++++- src/routes/user.rs | 45 ++-- static/css/main.scss | 175 --------------- static/media/.gitkeep | 0 templates/base.rs.html | 6 +- templates/blogs/details.rs.html | 6 + templates/blogs/edit.rs.html | 13 ++ templates/instance/admin.rs.html | 7 +- templates/posts/details.rs.html | 7 + templates/users/edit.rs.html | 18 ++ 203 files changed, 667 insertions(+), 334 deletions(-) rename {static => assets}/icons/trwnh/README.md (100%) rename {static => assets}/icons/trwnh/avatar.png (100%) rename {static => assets}/icons/trwnh/avatar.svg (100%) rename {static => assets}/icons/trwnh/avatar2.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack.svg (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack128.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack144.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack16.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack160.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack192.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack24.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack256.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack32.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack36.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack44.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack48.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack512.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack64.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack72.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack80.png (100%) rename {static => assets}/icons/trwnh/feather-black/plumeFeatherBlack96.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled.svg (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled128.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled144.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled16.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled160.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled192.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled24.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled256.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled32.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled36.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled44.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled48.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled512.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled64.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled72.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled80.png (100%) rename {static => assets}/icons/trwnh/feather-filled/plumeFeatherFilled96.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather.svg (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather128.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather144.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather16.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather160.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather192.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather24.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather256.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather32.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather36.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather44.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather48.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather512.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather64.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather72.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather80.png (100%) rename {static => assets}/icons/trwnh/feather/plumeFeather96.png (100%) rename {static => assets}/icons/trwnh/ideas.svg (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack.svg (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack128.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack144.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack16.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack160.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack192.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack24.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack256.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack32.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack36.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack44.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack512.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack64.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack72.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack80.png (100%) rename {static => assets}/icons/trwnh/paragraphs-black/plumeParagraphsBlack96.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs.svg (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs128.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs144.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs16.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs160.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs192.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs24.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs256.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs32.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs36.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs44.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs48.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs512.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs64.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs72.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs80.png (100%) rename {static => assets}/icons/trwnh/paragraphs/plumeParagraphs96.png (100%) rename {static => assets}/images/audio-file.svg (100%) rename {static => assets/images}/default-avatar.png (100%) rename {static => assets}/images/feather-sprite.svg (100%) rename {static => assets}/images/unknown-file.svg (100%) rename {static => assets}/images/video-file.svg (100%) create mode 100644 assets/themes/blog-monospace/theme.scss rename {static/css => assets/themes/default}/_article.scss (89%) create mode 100644 assets/themes/default/_dark_variables.scss rename {static/css => assets/themes/default}/_forms.scss (89%) rename {static/css => assets/themes/default}/_global.scss (63%) rename {static/css => assets/themes/default}/_header.scss (94%) rename {static/css => assets/themes/default}/_variables.scss (69%) create mode 100644 assets/themes/default/dark.scss rename {static/css => assets/themes/default}/feather.css (96%) rename {static => assets/themes/default}/fonts/Feather/Feather.eot (100%) rename {static => assets/themes/default}/fonts/Feather/Feather.svg (100%) rename {static => assets/themes/default}/fonts/Feather/Feather.ttf (100%) rename {static => assets/themes/default}/fonts/Feather/Feather.woff (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Bold.eot (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Bold.ttf (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Bold.woff (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Bold.woff2 (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-BoldItalic.eot (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-BoldItalic.ttf (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-BoldItalic.woff (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-BoldItalic.woff2 (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Italic.eot (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Italic.ttf (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Italic.woff (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Italic.woff2 (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Regular.eot (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Regular.ttf (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Regular.woff (100%) rename {static => assets/themes/default}/fonts/Lora/Lora-Regular.woff2 (100%) rename {static => assets/themes/default}/fonts/Lora/Lora.css (100%) rename {static => assets/themes/default}/fonts/Lora/OFL.txt (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/OFL.txt (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Black.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Black.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Black.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Black.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Bold.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Bold.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Bold.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Bold.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Italic.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Italic.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Italic.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Italic.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Regular.eot (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Regular.ttf (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Regular.woff (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay-Regular.woff2 (100%) rename {static => assets/themes/default}/fonts/Playfair_Display/PlayfairDisplay.css (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Bold.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Bold.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-BoldItalic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-BoldItalic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Heavy.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Heavy.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-HeavyItalic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-HeavyItalic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Italic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Italic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Light.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Light.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-LightItalic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-LightItalic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Regular.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-Regular.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-SemiBold.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-SemiBold.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-SemiBoldItalic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-SemiBoldItalic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-UltraLight.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-UltraLight.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-UltraLightItalic.eot (100%) rename {static => assets/themes/default}/fonts/Route159/Route159-UltraLightItalic.woff (100%) rename {static => assets/themes/default}/fonts/Route159/Route159.css (100%) create mode 100644 assets/themes/default/light.scss create mode 100644 migrations/postgres/2019-06-19-141114_themes/down.sql create mode 100644 migrations/postgres/2019-06-19-141114_themes/up.sql create mode 100644 migrations/sqlite/2019-06-21-154916_themes/down.sql create mode 100644 migrations/sqlite/2019-06-21-154916_themes/up.sql delete mode 100644 static/css/main.scss delete mode 100644 static/media/.gitkeep diff --git a/.gitignore b/.gitignore index b24dc86c..d8d6fd27 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ translations .env Rocket.toml !.gitkeep -static/media +static docker-compose.yml *.db *.sqlite @@ -16,8 +16,5 @@ docker-compose.yml tags.* !tags.rs search_index -main.css -*.wasm -*.js .buildconfig __pycache__ diff --git a/Cargo.lock b/Cargo.lock index 91f7f611..b80f17a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2084,8 +2084,10 @@ dependencies = [ "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tantivy 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "whatlang 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/static/icons/trwnh/README.md b/assets/icons/trwnh/README.md similarity index 100% rename from static/icons/trwnh/README.md rename to assets/icons/trwnh/README.md diff --git a/static/icons/trwnh/avatar.png b/assets/icons/trwnh/avatar.png similarity index 100% rename from static/icons/trwnh/avatar.png rename to assets/icons/trwnh/avatar.png diff --git a/static/icons/trwnh/avatar.svg b/assets/icons/trwnh/avatar.svg similarity index 100% rename from static/icons/trwnh/avatar.svg rename to assets/icons/trwnh/avatar.svg diff --git a/static/icons/trwnh/avatar2.png b/assets/icons/trwnh/avatar2.png similarity index 100% rename from static/icons/trwnh/avatar2.png rename to assets/icons/trwnh/avatar2.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack.svg b/assets/icons/trwnh/feather-black/plumeFeatherBlack.svg similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack.svg rename to assets/icons/trwnh/feather-black/plumeFeatherBlack.svg diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack128.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack128.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack128.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack128.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack144.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack144.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack144.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack144.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack16.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack16.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack16.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack16.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack160.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack160.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack160.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack160.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack192.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack192.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack192.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack192.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack24.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack24.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack24.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack24.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack256.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack256.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack256.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack256.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack32.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack32.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack32.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack32.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack36.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack36.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack36.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack36.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack44.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack44.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack44.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack44.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack48.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack48.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack48.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack48.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack512.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack512.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack512.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack512.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack64.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack64.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack64.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack64.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack72.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack72.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack72.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack72.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack80.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack80.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack80.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack80.png diff --git a/static/icons/trwnh/feather-black/plumeFeatherBlack96.png b/assets/icons/trwnh/feather-black/plumeFeatherBlack96.png similarity index 100% rename from static/icons/trwnh/feather-black/plumeFeatherBlack96.png rename to assets/icons/trwnh/feather-black/plumeFeatherBlack96.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled.svg b/assets/icons/trwnh/feather-filled/plumeFeatherFilled.svg similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled.svg rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled.svg diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled128.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled128.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled128.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled128.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled144.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled144.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled144.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled144.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled16.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled16.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled16.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled16.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled160.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled160.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled160.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled160.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled192.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled192.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled192.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled192.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled24.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled24.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled24.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled24.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled256.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled256.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled256.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled256.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled32.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled32.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled32.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled32.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled36.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled36.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled36.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled36.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled44.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled44.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled44.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled44.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled48.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled48.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled48.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled48.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled512.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled512.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled512.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled512.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled64.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled64.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled64.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled64.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled72.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled72.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled72.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled72.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled80.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled80.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled80.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled80.png diff --git a/static/icons/trwnh/feather-filled/plumeFeatherFilled96.png b/assets/icons/trwnh/feather-filled/plumeFeatherFilled96.png similarity index 100% rename from static/icons/trwnh/feather-filled/plumeFeatherFilled96.png rename to assets/icons/trwnh/feather-filled/plumeFeatherFilled96.png diff --git a/static/icons/trwnh/feather/plumeFeather.svg b/assets/icons/trwnh/feather/plumeFeather.svg similarity index 100% rename from static/icons/trwnh/feather/plumeFeather.svg rename to assets/icons/trwnh/feather/plumeFeather.svg diff --git a/static/icons/trwnh/feather/plumeFeather128.png b/assets/icons/trwnh/feather/plumeFeather128.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather128.png rename to assets/icons/trwnh/feather/plumeFeather128.png diff --git a/static/icons/trwnh/feather/plumeFeather144.png b/assets/icons/trwnh/feather/plumeFeather144.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather144.png rename to assets/icons/trwnh/feather/plumeFeather144.png diff --git a/static/icons/trwnh/feather/plumeFeather16.png b/assets/icons/trwnh/feather/plumeFeather16.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather16.png rename to assets/icons/trwnh/feather/plumeFeather16.png diff --git a/static/icons/trwnh/feather/plumeFeather160.png b/assets/icons/trwnh/feather/plumeFeather160.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather160.png rename to assets/icons/trwnh/feather/plumeFeather160.png diff --git a/static/icons/trwnh/feather/plumeFeather192.png b/assets/icons/trwnh/feather/plumeFeather192.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather192.png rename to assets/icons/trwnh/feather/plumeFeather192.png diff --git a/static/icons/trwnh/feather/plumeFeather24.png b/assets/icons/trwnh/feather/plumeFeather24.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather24.png rename to assets/icons/trwnh/feather/plumeFeather24.png diff --git a/static/icons/trwnh/feather/plumeFeather256.png b/assets/icons/trwnh/feather/plumeFeather256.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather256.png rename to assets/icons/trwnh/feather/plumeFeather256.png diff --git a/static/icons/trwnh/feather/plumeFeather32.png b/assets/icons/trwnh/feather/plumeFeather32.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather32.png rename to assets/icons/trwnh/feather/plumeFeather32.png diff --git a/static/icons/trwnh/feather/plumeFeather36.png b/assets/icons/trwnh/feather/plumeFeather36.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather36.png rename to assets/icons/trwnh/feather/plumeFeather36.png diff --git a/static/icons/trwnh/feather/plumeFeather44.png b/assets/icons/trwnh/feather/plumeFeather44.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather44.png rename to assets/icons/trwnh/feather/plumeFeather44.png diff --git a/static/icons/trwnh/feather/plumeFeather48.png b/assets/icons/trwnh/feather/plumeFeather48.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather48.png rename to assets/icons/trwnh/feather/plumeFeather48.png diff --git a/static/icons/trwnh/feather/plumeFeather512.png b/assets/icons/trwnh/feather/plumeFeather512.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather512.png rename to assets/icons/trwnh/feather/plumeFeather512.png diff --git a/static/icons/trwnh/feather/plumeFeather64.png b/assets/icons/trwnh/feather/plumeFeather64.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather64.png rename to assets/icons/trwnh/feather/plumeFeather64.png diff --git a/static/icons/trwnh/feather/plumeFeather72.png b/assets/icons/trwnh/feather/plumeFeather72.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather72.png rename to assets/icons/trwnh/feather/plumeFeather72.png diff --git a/static/icons/trwnh/feather/plumeFeather80.png b/assets/icons/trwnh/feather/plumeFeather80.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather80.png rename to assets/icons/trwnh/feather/plumeFeather80.png diff --git a/static/icons/trwnh/feather/plumeFeather96.png b/assets/icons/trwnh/feather/plumeFeather96.png similarity index 100% rename from static/icons/trwnh/feather/plumeFeather96.png rename to assets/icons/trwnh/feather/plumeFeather96.png diff --git a/static/icons/trwnh/ideas.svg b/assets/icons/trwnh/ideas.svg similarity index 100% rename from static/icons/trwnh/ideas.svg rename to assets/icons/trwnh/ideas.svg diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack.svg b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack.svg similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack.svg rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack.svg diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack128.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack128.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack128.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack128.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack144.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack144.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack144.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack144.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack16.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack16.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack16.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack16.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack160.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack160.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack160.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack160.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack192.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack192.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack192.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack192.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack24.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack24.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack24.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack24.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack256.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack256.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack256.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack256.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack32.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack32.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack32.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack32.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack36.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack36.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack36.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack36.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack44.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack44.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack44.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack44.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack512.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack512.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack512.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack512.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack64.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack64.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack64.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack64.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack72.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack72.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack72.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack72.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack80.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack80.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack80.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack80.png diff --git a/static/icons/trwnh/paragraphs-black/plumeParagraphsBlack96.png b/assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack96.png similarity index 100% rename from static/icons/trwnh/paragraphs-black/plumeParagraphsBlack96.png rename to assets/icons/trwnh/paragraphs-black/plumeParagraphsBlack96.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs.svg b/assets/icons/trwnh/paragraphs/plumeParagraphs.svg similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs.svg rename to assets/icons/trwnh/paragraphs/plumeParagraphs.svg diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs128.png b/assets/icons/trwnh/paragraphs/plumeParagraphs128.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs128.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs128.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs144.png b/assets/icons/trwnh/paragraphs/plumeParagraphs144.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs144.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs144.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs16.png b/assets/icons/trwnh/paragraphs/plumeParagraphs16.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs16.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs16.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs160.png b/assets/icons/trwnh/paragraphs/plumeParagraphs160.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs160.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs160.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs192.png b/assets/icons/trwnh/paragraphs/plumeParagraphs192.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs192.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs192.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs24.png b/assets/icons/trwnh/paragraphs/plumeParagraphs24.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs24.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs24.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs256.png b/assets/icons/trwnh/paragraphs/plumeParagraphs256.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs256.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs256.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs32.png b/assets/icons/trwnh/paragraphs/plumeParagraphs32.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs32.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs32.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs36.png b/assets/icons/trwnh/paragraphs/plumeParagraphs36.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs36.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs36.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs44.png b/assets/icons/trwnh/paragraphs/plumeParagraphs44.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs44.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs44.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs48.png b/assets/icons/trwnh/paragraphs/plumeParagraphs48.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs48.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs48.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs512.png b/assets/icons/trwnh/paragraphs/plumeParagraphs512.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs512.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs512.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs64.png b/assets/icons/trwnh/paragraphs/plumeParagraphs64.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs64.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs64.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs72.png b/assets/icons/trwnh/paragraphs/plumeParagraphs72.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs72.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs72.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs80.png b/assets/icons/trwnh/paragraphs/plumeParagraphs80.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs80.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs80.png diff --git a/static/icons/trwnh/paragraphs/plumeParagraphs96.png b/assets/icons/trwnh/paragraphs/plumeParagraphs96.png similarity index 100% rename from static/icons/trwnh/paragraphs/plumeParagraphs96.png rename to assets/icons/trwnh/paragraphs/plumeParagraphs96.png diff --git a/static/images/audio-file.svg b/assets/images/audio-file.svg similarity index 100% rename from static/images/audio-file.svg rename to assets/images/audio-file.svg diff --git a/static/default-avatar.png b/assets/images/default-avatar.png similarity index 100% rename from static/default-avatar.png rename to assets/images/default-avatar.png diff --git a/static/images/feather-sprite.svg b/assets/images/feather-sprite.svg similarity index 100% rename from static/images/feather-sprite.svg rename to assets/images/feather-sprite.svg diff --git a/static/images/unknown-file.svg b/assets/images/unknown-file.svg similarity index 100% rename from static/images/unknown-file.svg rename to assets/images/unknown-file.svg diff --git a/static/images/video-file.svg b/assets/images/video-file.svg similarity index 100% rename from static/images/video-file.svg rename to assets/images/video-file.svg diff --git a/assets/themes/blog-monospace/theme.scss b/assets/themes/blog-monospace/theme.scss new file mode 100644 index 00000000..e3642d30 --- /dev/null +++ b/assets/themes/blog-monospace/theme.scss @@ -0,0 +1,3 @@ +* { + font-family: monospace; +} diff --git a/static/css/_article.scss b/assets/themes/default/_article.scss similarity index 89% rename from static/css/_article.scss rename to assets/themes/default/_article.scss index a3843d4f..c1191cef 100644 --- a/static/css/_article.scss +++ b/assets/themes/default/_article.scss @@ -1,8 +1,8 @@ // Heading main header.article { overflow: hidden; - background: $white; - color: $black; + background: $background; + color: $text-color; display: grid; background-size: cover; background-position: center; @@ -52,14 +52,14 @@ main header.article { height: 100%; width: 100%; - background: linear-gradient(180deg, transparent 20vh, black 80vh); + background: linear-gradient(180deg, transparent 20vh, $black 80vh); } & > img { z-index: 1; min-width: 100%; min-height: 100%; - background: $purple; + background: $primary; } } @@ -141,7 +141,7 @@ main .article-meta { padding: 0px; margin: 0px 10px 10px 0px; transition: all 0.2s ease-in; - border: 1px solid $purple; + border: 1px solid $primary; a { display: inline-block; @@ -149,7 +149,7 @@ main .article-meta { } &:hover { - background: transparentize($purple, 0.9); + background: transparentize($primary, 0.9); } } } @@ -181,7 +181,7 @@ main .article-meta { margin: 0; padding: 0; background: none; - color: $black; + color: $text-color; border: none; font-size: 1.1em; cursor: pointer; @@ -201,7 +201,7 @@ main .article-meta { &.reshared, &.liked { svg.feather { - color: $white; + color: $background; font-weight: 900; } } @@ -234,26 +234,26 @@ main .article-meta { } .reshares { - p, .action:hover { color: $purple; } + p, .action:hover { color: $primary; } .action svg.feather { padding: 0.7em; box-sizing: border-box; - color: $purple; - border: solid $purple thin; + color: $primary; + border: solid $primary thin; font-weight: 600; } .action:hover svg.feather { - background: transparentize($purple, 0.85); + background: transparentize($primary, 0.85); } .action.reshared svg.feather { - background: $purple; + background: $primary; } .action.reshared:hover svg.feather { - background: transparentize($purple, 0.75) - color: $purple; + background: transparentize($primary, 0.75) + color: $primary; } } @@ -262,7 +262,7 @@ main .article-meta { margin: 0 $horizontal-margin; h2 { - color: $purple; + color: $primary; font-size: 1.5em; font-weight: 600; } @@ -281,17 +281,17 @@ main .article-meta { a.button, form.inline, form.inline input { padding: 0; background: none; - color: $black; + color: $text-color; margin-right: 2em; font-family: $route159; font-weight: normal; &::before { - color: $purple; + color: $primary; padding-right: 0.5em; } - &:hover { color: $purple; } + &:hover { color: $primary; } } .comment { @@ -325,7 +325,7 @@ main .article-meta { } .dt-published a { - color: transparentize($black, 0.6); + color: transparentize($text-color, 0.6); } .author { @@ -339,11 +339,11 @@ main .article-meta { } .display-name { - color: $black; + color: $text-color; } &:hover { - .display-name { color: $purple; } + .display-name { color: $primary; } small { opacity: 1; } } } @@ -384,7 +384,7 @@ main .article-meta { } .placeholder { - color: transparentize($black, 0.6); + color: transparentize($text-color, 0.6); } article { @@ -400,7 +400,7 @@ main .article-meta { left: 20vw; right: 20vw; background: $gray; - border: 1px solid $purple; + border: 1px solid $primary; z-index: 2; padding: 2em; overflow-y: auto; diff --git a/assets/themes/default/_dark_variables.scss b/assets/themes/default/_dark_variables.scss new file mode 100644 index 00000000..2d1b9fd4 --- /dev/null +++ b/assets/themes/default/_dark_variables.scss @@ -0,0 +1,19 @@ +@import '_variables'; + +// Color Scheme +$gray: #1a3854; +$black: #102e4a; +$white: #F8F8F8; +$purple: #7765E3; +$lightpurple: #c2bbee; +$red: #d16666; +$yellow: #ff934f; +$blue: #7f96ff; + +$background: $black; +$form-input-background: $gray; +$form-input-border: $white; +$text-color: $white; +$primary: $purple; +$primary-text-color: $white; // text color on primary background (buttons for instance) +$success-color: $blue; diff --git a/static/css/_forms.scss b/assets/themes/default/_forms.scss similarity index 89% rename from static/css/_forms.scss rename to assets/themes/default/_forms.scss index 7b451d4f..7e4f0167 100644 --- a/static/css/_forms.scss +++ b/assets/themes/default/_forms.scss @@ -13,14 +13,14 @@ input, textarea, select { -webkit-appearance: textarea; background: $form-input-background; - color: $black; - border: solid $black thin; + color: $text-color; + border: solid $form-input-border thin; font-size: 1.2em; font-weight: 400; &:focus { - border-color: $purple; + border-color: $primary; } } form input[type="submit"] { @@ -64,7 +64,7 @@ form.inline { padding: 0; border: none; background: transparent; - color: $purple; + color: $primary; font-weight: normal; } } @@ -78,15 +78,15 @@ form.inline { margin: 0.5em auto; padding: 0.75em 1em; - background: $purple; - color: $white; + background: $primary; + color: $primary-text-color; font-weight: bold; border: none; cursor: pointer; &:hover { - background: transparentize($purple, 0.1); + background: transparentize($primary, 0.1); } &.destructive { @@ -99,10 +99,10 @@ form.inline { &.secondary { background: $gray; - color: $black; + color: $text-color; &:hover { - background: transparentize($black, 0.9); + background: transparentize($text-color, 0.9); } } } diff --git a/static/css/_global.scss b/assets/themes/default/_global.scss similarity index 63% rename from static/css/_global.scss rename to assets/themes/default/_global.scss index 8bc5a426..6ac03246 100644 --- a/static/css/_global.scss +++ b/assets/themes/default/_global.scss @@ -1,31 +1,38 @@ +html { + box-sizing: border-box; +} +*, *:before, *:after { + box-sizing: inherit; +} + html, body { margin: 0; padding: 0; background: $background; - color: $black; + color: $text-color; font-family: $route159; ::selection { - background: transparentize($purple, 0.7); + background: transparentize($primary, 0.7); } ::-moz-selection { - background: transparentize($purple, 0.7); + background: transparentize($primary, 0.7); } } a, a:visited { - color: $purple; + color: $primary; text-decoration: none; } a::selection { - color: $white; + color: $background; } a::-moz-selection { - color: $white; + color: $background; } small { margin-left: 1em; - color: transparentize($black, 0.6); + color: transparentize($text-color, 0.6); font-size: 0.75em; word-wrap: break-word; word-break: break-all; @@ -152,9 +159,9 @@ p.error { margin-right: 1em; padding: 0.35em 1em; - background: $white; - color: $purple; - border: 1px solid $purple; + background: $background; + color: $primary; + border: 1px solid $primary; font-size: 1rem; } @@ -203,9 +210,9 @@ p.error { font-weight: normal; a { transition: color 0.1s ease-in; - color: $black; + color: $text-color; - &:hover { color: $purple; } + &:hover { color: $primary; } } } @@ -326,8 +333,8 @@ body > footer { display: flex; align-content: center; justify-content: space-around; - background: $purple; - color: $white; + background: $primary; + color: $primary-text-color; margin-top: 5em; * { @@ -336,13 +343,13 @@ body > footer { hr { transform: skew(-15deg); - background: $white; + background: $primary-text-color; border: none; width: .2em; } a, a:visited { - color: $white; + color: $primary-text-color; } div { @@ -445,12 +452,170 @@ figure { a { display: inline-block; - color: $black; + color: $text-color; padding: 1em; &.selected { - color: $purple; - border-bottom: 1px solid $purple; + color: $primary; + border-bottom: 1px solid $primary; } } } + + +/// Small screens +@media screen and (max-width: 600px) { + @keyframes menuOpening { + from { + transform: scaleX(0); + transform-origin: left; + opacity: 0; + } + to { + transform: scaleX(1); + transform-origin: left; + opacity: 1; + } + } + + body > header { + flex-direction: column; + + nav#menu { + display: inline-flex; + z-index: 21; + } + + #content { + display: none; + appearance: none; + text-align: center; + z-index: 20; + } + } + + body > header:focus-within #content, #content.show { + position: fixed; + display: flex; + flex-direction: column; + justify-content: flex-start; + + top: 0; + left: 0; + width: 100%; + height: 100%; + box-sizing: border-box; + + animation: 0.2s menuOpening; + + &::before { + content: ""; + position: absolute; + transform: skewX(-10deg); + top: 0; + left: -20%; + width: 100%; + height: 100%; + + z-index: -10; + + background: $primary; + } + + > nav { + flex-direction: column; + align-items: flex-start; + + a { + display: flex; + flex-direction: row; + align-items: center; + margin: 0; + padding: 1rem 1.5rem; + color: $background; + font-size: 1.4em; + font-weight: 300; + + &.title { font-size: 1.8em; } + + > *:first-child { width: 3rem; } + > img:first-child { height: 3rem; } + > *:last-child { margin-left: 1rem; } + > nav hr { + display: block; + margin: 0; + width: 100%; + border: solid $background 0.1rem; + } + .mobile-label { display: initial; } + } + } + } + + main .article-meta { + > *, .comments { + margin: 0 5%; + } + > p { + margin: 2em 5%; + font-size: 0.9em; + } + .comments > * { margin: auto 5%; } + .comments .comment { padding: 2em 0px; } + } + main .article-info, main article, main h1.article, main h2.article { + max-width: 90vw; + } + + .card { + min-width: 80%; + min-height: 80%; + } + + .tabs { + margin: auto 0px 2em; + } + + .stats { flex-direction: column; } + body > footer { + flex-direction: column; + align-items: center; + } + body > footer * { + margin: 1em auto; + text-align: center; + } + + .flex.wrap { flex-direction: column; } + + .cards, .list { + margin: 1rem 0 5rem; + } + + .split { + flex-direction: column; + margin: 0; + + & > * { + max-width: 100%; + } + } + + .bottom-bar { + flex-direction: column; + align-items: center; + & > div { + margin: 0; + } + } + + main .article-meta .comments .comment { + header { + flex-direction: column; + } + + .content { + margin-top: 0.5em; + } + } +} diff --git a/static/css/_header.scss b/assets/themes/default/_header.scss similarity index 94% rename from static/css/_header.scss rename to assets/themes/default/_header.scss index 96497526..369be572 100644 --- a/static/css/_header.scss +++ b/assets/themes/default/_header.scss @@ -14,7 +14,7 @@ body > header { transform: skewX(-15deg); left: -1em; padding: 1em 1em 1em 2em; - background: $purple; + background: $primary; align-self: flex-start; a { @@ -40,7 +40,7 @@ body > header { hr { height: 100%; width: 0.2em; - background: $purple; + background: $primary; border: none; transform: skewX(-15deg); } @@ -96,8 +96,8 @@ body > header { } p.success { - color: darken($green, 20%); - background: lighten($green, 40%); + color: darken($success-color, 20%); + background: lighten($success-color, 40%); } } diff --git a/static/css/_variables.scss b/assets/themes/default/_variables.scss similarity index 69% rename from static/css/_variables.scss rename to assets/themes/default/_variables.scss index 22098f2c..d6bbf1d0 100644 --- a/static/css/_variables.scss +++ b/assets/themes/default/_variables.scss @@ -10,6 +10,11 @@ $green: #23f0c7; $background: $white; $form-input-background: white; +$form-input-border: $black; +$text-color: $black; +$primary: $purple; +$primary-text-color: $white; // text color on primary background (buttons for instance) +$success-color: $green; // Dimensions diff --git a/assets/themes/default/dark.scss b/assets/themes/default/dark.scss new file mode 100644 index 00000000..6ffcd72f --- /dev/null +++ b/assets/themes/default/dark.scss @@ -0,0 +1,12 @@ +/* color palette: https://coolors.co/23f0c7-ef767a-7765e3-6457a6-ffe347 */ + +@import url('./feather.css'); +@import url('./fonts/Route159/Route159.css'); +@import url('./fonts/Lora/Lora.css'); +@import url('./fonts/Playfair_Display/PlayfairDisplay.css'); + +@import 'dark_variables'; +@import 'global'; +@import 'header'; +@import 'article'; +@import 'forms'; diff --git a/static/css/feather.css b/assets/themes/default/feather.css similarity index 96% rename from static/css/feather.css rename to assets/themes/default/feather.css index 7f2d1292..e90dd3ba 100644 --- a/static/css/feather.css +++ b/assets/themes/default/feather.css @@ -1,10 +1,10 @@ @font-face { font-family: "Feather"; - src: url('../fonts/Feather/Feather.eot'); /* IE9 */ - src: url('../fonts/Feather/Feather.eot') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/Feather/Feather.woff') format('woff'), /* Chrome, Firefox */ - url('../fonts/Feather/Feather.ttf') format('truetype'), /* Chrome, Firefox, Opera, Safari, Android, iOS 4.2+ */ - url('../fonts/Feather/Feather.svg') format('svg'); /* iOS 4.1- */ + src: url('./fonts/Feather/Feather.eot'); /* IE9 */ + src: url('./fonts/Feather/Feather.eot') format('embedded-opentype'), /* IE6-IE8 */ + url('./fonts/Feather/Feather.woff') format('woff'), /* Chrome, Firefox */ + url('./fonts/Feather/Feather.ttf') format('truetype'), /* Chrome, Firefox, Opera, Safari, Android, iOS 4.2+ */ + url('./fonts/Feather/Feather.svg') format('svg'); /* iOS 4.1- */ } .feather { diff --git a/static/fonts/Feather/Feather.eot b/assets/themes/default/fonts/Feather/Feather.eot similarity index 100% rename from static/fonts/Feather/Feather.eot rename to assets/themes/default/fonts/Feather/Feather.eot diff --git a/static/fonts/Feather/Feather.svg b/assets/themes/default/fonts/Feather/Feather.svg similarity index 100% rename from static/fonts/Feather/Feather.svg rename to assets/themes/default/fonts/Feather/Feather.svg diff --git a/static/fonts/Feather/Feather.ttf b/assets/themes/default/fonts/Feather/Feather.ttf similarity index 100% rename from static/fonts/Feather/Feather.ttf rename to assets/themes/default/fonts/Feather/Feather.ttf diff --git a/static/fonts/Feather/Feather.woff b/assets/themes/default/fonts/Feather/Feather.woff similarity index 100% rename from static/fonts/Feather/Feather.woff rename to assets/themes/default/fonts/Feather/Feather.woff diff --git a/static/fonts/Lora/Lora-Bold.eot b/assets/themes/default/fonts/Lora/Lora-Bold.eot similarity index 100% rename from static/fonts/Lora/Lora-Bold.eot rename to assets/themes/default/fonts/Lora/Lora-Bold.eot diff --git a/static/fonts/Lora/Lora-Bold.ttf b/assets/themes/default/fonts/Lora/Lora-Bold.ttf similarity index 100% rename from static/fonts/Lora/Lora-Bold.ttf rename to assets/themes/default/fonts/Lora/Lora-Bold.ttf diff --git a/static/fonts/Lora/Lora-Bold.woff b/assets/themes/default/fonts/Lora/Lora-Bold.woff similarity index 100% rename from static/fonts/Lora/Lora-Bold.woff rename to assets/themes/default/fonts/Lora/Lora-Bold.woff diff --git a/static/fonts/Lora/Lora-Bold.woff2 b/assets/themes/default/fonts/Lora/Lora-Bold.woff2 similarity index 100% rename from static/fonts/Lora/Lora-Bold.woff2 rename to assets/themes/default/fonts/Lora/Lora-Bold.woff2 diff --git a/static/fonts/Lora/Lora-BoldItalic.eot b/assets/themes/default/fonts/Lora/Lora-BoldItalic.eot similarity index 100% rename from static/fonts/Lora/Lora-BoldItalic.eot rename to assets/themes/default/fonts/Lora/Lora-BoldItalic.eot diff --git a/static/fonts/Lora/Lora-BoldItalic.ttf b/assets/themes/default/fonts/Lora/Lora-BoldItalic.ttf similarity index 100% rename from static/fonts/Lora/Lora-BoldItalic.ttf rename to assets/themes/default/fonts/Lora/Lora-BoldItalic.ttf diff --git a/static/fonts/Lora/Lora-BoldItalic.woff b/assets/themes/default/fonts/Lora/Lora-BoldItalic.woff similarity index 100% rename from static/fonts/Lora/Lora-BoldItalic.woff rename to assets/themes/default/fonts/Lora/Lora-BoldItalic.woff diff --git a/static/fonts/Lora/Lora-BoldItalic.woff2 b/assets/themes/default/fonts/Lora/Lora-BoldItalic.woff2 similarity index 100% rename from static/fonts/Lora/Lora-BoldItalic.woff2 rename to assets/themes/default/fonts/Lora/Lora-BoldItalic.woff2 diff --git a/static/fonts/Lora/Lora-Italic.eot b/assets/themes/default/fonts/Lora/Lora-Italic.eot similarity index 100% rename from static/fonts/Lora/Lora-Italic.eot rename to assets/themes/default/fonts/Lora/Lora-Italic.eot diff --git a/static/fonts/Lora/Lora-Italic.ttf b/assets/themes/default/fonts/Lora/Lora-Italic.ttf similarity index 100% rename from static/fonts/Lora/Lora-Italic.ttf rename to assets/themes/default/fonts/Lora/Lora-Italic.ttf diff --git a/static/fonts/Lora/Lora-Italic.woff b/assets/themes/default/fonts/Lora/Lora-Italic.woff similarity index 100% rename from static/fonts/Lora/Lora-Italic.woff rename to assets/themes/default/fonts/Lora/Lora-Italic.woff diff --git a/static/fonts/Lora/Lora-Italic.woff2 b/assets/themes/default/fonts/Lora/Lora-Italic.woff2 similarity index 100% rename from static/fonts/Lora/Lora-Italic.woff2 rename to assets/themes/default/fonts/Lora/Lora-Italic.woff2 diff --git a/static/fonts/Lora/Lora-Regular.eot b/assets/themes/default/fonts/Lora/Lora-Regular.eot similarity index 100% rename from static/fonts/Lora/Lora-Regular.eot rename to assets/themes/default/fonts/Lora/Lora-Regular.eot diff --git a/static/fonts/Lora/Lora-Regular.ttf b/assets/themes/default/fonts/Lora/Lora-Regular.ttf similarity index 100% rename from static/fonts/Lora/Lora-Regular.ttf rename to assets/themes/default/fonts/Lora/Lora-Regular.ttf diff --git a/static/fonts/Lora/Lora-Regular.woff b/assets/themes/default/fonts/Lora/Lora-Regular.woff similarity index 100% rename from static/fonts/Lora/Lora-Regular.woff rename to assets/themes/default/fonts/Lora/Lora-Regular.woff diff --git a/static/fonts/Lora/Lora-Regular.woff2 b/assets/themes/default/fonts/Lora/Lora-Regular.woff2 similarity index 100% rename from static/fonts/Lora/Lora-Regular.woff2 rename to assets/themes/default/fonts/Lora/Lora-Regular.woff2 diff --git a/static/fonts/Lora/Lora.css b/assets/themes/default/fonts/Lora/Lora.css similarity index 100% rename from static/fonts/Lora/Lora.css rename to assets/themes/default/fonts/Lora/Lora.css diff --git a/static/fonts/Lora/OFL.txt b/assets/themes/default/fonts/Lora/OFL.txt similarity index 100% rename from static/fonts/Lora/OFL.txt rename to assets/themes/default/fonts/Lora/OFL.txt diff --git a/static/fonts/Playfair_Display/OFL.txt b/assets/themes/default/fonts/Playfair_Display/OFL.txt similarity index 100% rename from static/fonts/Playfair_Display/OFL.txt rename to assets/themes/default/fonts/Playfair_Display/OFL.txt diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Black.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Black.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Black.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Black.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Black.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Black.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Black.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Black.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Black.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BlackItalic.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Bold.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Bold.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Bold.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Bold.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Bold.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Bold.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Bold.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Bold.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Bold.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-BoldItalic.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Italic.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Italic.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Italic.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Italic.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Italic.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Italic.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Italic.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Italic.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Italic.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Regular.eot b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.eot similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Regular.eot rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.eot diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Regular.ttf b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.ttf similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Regular.ttf rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.ttf diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Regular.woff b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.woff similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Regular.woff rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.woff diff --git a/static/fonts/Playfair_Display/PlayfairDisplay-Regular.woff2 b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.woff2 similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay-Regular.woff2 rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay-Regular.woff2 diff --git a/static/fonts/Playfair_Display/PlayfairDisplay.css b/assets/themes/default/fonts/Playfair_Display/PlayfairDisplay.css similarity index 100% rename from static/fonts/Playfair_Display/PlayfairDisplay.css rename to assets/themes/default/fonts/Playfair_Display/PlayfairDisplay.css diff --git a/static/fonts/Route159/Route159-Bold.eot b/assets/themes/default/fonts/Route159/Route159-Bold.eot similarity index 100% rename from static/fonts/Route159/Route159-Bold.eot rename to assets/themes/default/fonts/Route159/Route159-Bold.eot diff --git a/static/fonts/Route159/Route159-Bold.woff b/assets/themes/default/fonts/Route159/Route159-Bold.woff similarity index 100% rename from static/fonts/Route159/Route159-Bold.woff rename to assets/themes/default/fonts/Route159/Route159-Bold.woff diff --git a/static/fonts/Route159/Route159-BoldItalic.eot b/assets/themes/default/fonts/Route159/Route159-BoldItalic.eot similarity index 100% rename from static/fonts/Route159/Route159-BoldItalic.eot rename to assets/themes/default/fonts/Route159/Route159-BoldItalic.eot diff --git a/static/fonts/Route159/Route159-BoldItalic.woff b/assets/themes/default/fonts/Route159/Route159-BoldItalic.woff similarity index 100% rename from static/fonts/Route159/Route159-BoldItalic.woff rename to assets/themes/default/fonts/Route159/Route159-BoldItalic.woff diff --git a/static/fonts/Route159/Route159-Heavy.eot b/assets/themes/default/fonts/Route159/Route159-Heavy.eot similarity index 100% rename from static/fonts/Route159/Route159-Heavy.eot rename to assets/themes/default/fonts/Route159/Route159-Heavy.eot diff --git a/static/fonts/Route159/Route159-Heavy.woff b/assets/themes/default/fonts/Route159/Route159-Heavy.woff similarity index 100% rename from static/fonts/Route159/Route159-Heavy.woff rename to assets/themes/default/fonts/Route159/Route159-Heavy.woff diff --git a/static/fonts/Route159/Route159-HeavyItalic.eot b/assets/themes/default/fonts/Route159/Route159-HeavyItalic.eot similarity index 100% rename from static/fonts/Route159/Route159-HeavyItalic.eot rename to assets/themes/default/fonts/Route159/Route159-HeavyItalic.eot diff --git a/static/fonts/Route159/Route159-HeavyItalic.woff b/assets/themes/default/fonts/Route159/Route159-HeavyItalic.woff similarity index 100% rename from static/fonts/Route159/Route159-HeavyItalic.woff rename to assets/themes/default/fonts/Route159/Route159-HeavyItalic.woff diff --git a/static/fonts/Route159/Route159-Italic.eot b/assets/themes/default/fonts/Route159/Route159-Italic.eot similarity index 100% rename from static/fonts/Route159/Route159-Italic.eot rename to assets/themes/default/fonts/Route159/Route159-Italic.eot diff --git a/static/fonts/Route159/Route159-Italic.woff b/assets/themes/default/fonts/Route159/Route159-Italic.woff similarity index 100% rename from static/fonts/Route159/Route159-Italic.woff rename to assets/themes/default/fonts/Route159/Route159-Italic.woff diff --git a/static/fonts/Route159/Route159-Light.eot b/assets/themes/default/fonts/Route159/Route159-Light.eot similarity index 100% rename from static/fonts/Route159/Route159-Light.eot rename to assets/themes/default/fonts/Route159/Route159-Light.eot diff --git a/static/fonts/Route159/Route159-Light.woff b/assets/themes/default/fonts/Route159/Route159-Light.woff similarity index 100% rename from static/fonts/Route159/Route159-Light.woff rename to assets/themes/default/fonts/Route159/Route159-Light.woff diff --git a/static/fonts/Route159/Route159-LightItalic.eot b/assets/themes/default/fonts/Route159/Route159-LightItalic.eot similarity index 100% rename from static/fonts/Route159/Route159-LightItalic.eot rename to assets/themes/default/fonts/Route159/Route159-LightItalic.eot diff --git a/static/fonts/Route159/Route159-LightItalic.woff b/assets/themes/default/fonts/Route159/Route159-LightItalic.woff similarity index 100% rename from static/fonts/Route159/Route159-LightItalic.woff rename to assets/themes/default/fonts/Route159/Route159-LightItalic.woff diff --git a/static/fonts/Route159/Route159-Regular.eot b/assets/themes/default/fonts/Route159/Route159-Regular.eot similarity index 100% rename from static/fonts/Route159/Route159-Regular.eot rename to assets/themes/default/fonts/Route159/Route159-Regular.eot diff --git a/static/fonts/Route159/Route159-Regular.woff b/assets/themes/default/fonts/Route159/Route159-Regular.woff similarity index 100% rename from static/fonts/Route159/Route159-Regular.woff rename to assets/themes/default/fonts/Route159/Route159-Regular.woff diff --git a/static/fonts/Route159/Route159-SemiBold.eot b/assets/themes/default/fonts/Route159/Route159-SemiBold.eot similarity index 100% rename from static/fonts/Route159/Route159-SemiBold.eot rename to assets/themes/default/fonts/Route159/Route159-SemiBold.eot diff --git a/static/fonts/Route159/Route159-SemiBold.woff b/assets/themes/default/fonts/Route159/Route159-SemiBold.woff similarity index 100% rename from static/fonts/Route159/Route159-SemiBold.woff rename to assets/themes/default/fonts/Route159/Route159-SemiBold.woff diff --git a/static/fonts/Route159/Route159-SemiBoldItalic.eot b/assets/themes/default/fonts/Route159/Route159-SemiBoldItalic.eot similarity index 100% rename from static/fonts/Route159/Route159-SemiBoldItalic.eot rename to assets/themes/default/fonts/Route159/Route159-SemiBoldItalic.eot diff --git a/static/fonts/Route159/Route159-SemiBoldItalic.woff b/assets/themes/default/fonts/Route159/Route159-SemiBoldItalic.woff similarity index 100% rename from static/fonts/Route159/Route159-SemiBoldItalic.woff rename to assets/themes/default/fonts/Route159/Route159-SemiBoldItalic.woff diff --git a/static/fonts/Route159/Route159-UltraLight.eot b/assets/themes/default/fonts/Route159/Route159-UltraLight.eot similarity index 100% rename from static/fonts/Route159/Route159-UltraLight.eot rename to assets/themes/default/fonts/Route159/Route159-UltraLight.eot diff --git a/static/fonts/Route159/Route159-UltraLight.woff b/assets/themes/default/fonts/Route159/Route159-UltraLight.woff similarity index 100% rename from static/fonts/Route159/Route159-UltraLight.woff rename to assets/themes/default/fonts/Route159/Route159-UltraLight.woff diff --git a/static/fonts/Route159/Route159-UltraLightItalic.eot b/assets/themes/default/fonts/Route159/Route159-UltraLightItalic.eot similarity index 100% rename from static/fonts/Route159/Route159-UltraLightItalic.eot rename to assets/themes/default/fonts/Route159/Route159-UltraLightItalic.eot diff --git a/static/fonts/Route159/Route159-UltraLightItalic.woff b/assets/themes/default/fonts/Route159/Route159-UltraLightItalic.woff similarity index 100% rename from static/fonts/Route159/Route159-UltraLightItalic.woff rename to assets/themes/default/fonts/Route159/Route159-UltraLightItalic.woff diff --git a/static/fonts/Route159/Route159.css b/assets/themes/default/fonts/Route159/Route159.css similarity index 100% rename from static/fonts/Route159/Route159.css rename to assets/themes/default/fonts/Route159/Route159.css diff --git a/assets/themes/default/light.scss b/assets/themes/default/light.scss new file mode 100644 index 00000000..be49dfc8 --- /dev/null +++ b/assets/themes/default/light.scss @@ -0,0 +1,12 @@ +/* color palette: https://coolors.co/23f0c7-ef767a-7765e3-6457a6-ffe347 */ + +@import url('./feather.css'); +@import url('./fonts/Route159/Route159.css'); +@import url('./fonts/Lora/Lora.css'); +@import url('./fonts/Playfair_Display/PlayfairDisplay.css'); + +@import 'variables'; +@import 'global'; +@import 'header'; +@import 'article'; +@import 'forms'; diff --git a/build.rs b/build.rs index 812a4202..c02deb59 100644 --- a/build.rs +++ b/build.rs @@ -2,7 +2,7 @@ extern crate rsass; extern crate ructe; use ructe::*; use std::process::{Command, Stdio}; -use std::{env, fs::*, io::Write, path::PathBuf}; +use std::{env, ffi::OsStr, fs::*, io::Write, path::*}; fn compute_static_hash() -> String { //"find static/ -type f ! -path 'static/media/*' | sort | xargs stat -c'%n %Y' | openssl dgst -r" @@ -41,21 +41,12 @@ fn main() { let in_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()).join("templates"); compile_templates(&in_dir, &out_dir).expect("compile templates"); - println!("cargo:rerun-if-changed=static/css/_article.scss"); - println!("cargo:rerun-if-changed=static/css/_forms.scss"); - println!("cargo:rerun-if-changed=static/css/_global.scss"); - println!("cargo:rerun-if-changed=static/css/_header.scss"); - println!("cargo:rerun-if-changed=static/css/_variables.scss"); - println!("cargo:rerun-if-changed=static/css/main.scss"); - let mut out = File::create("static/css/main.css").expect("Couldn't create main.css"); - out.write_all( - &rsass::compile_scss_file( - "static/css/main.scss".as_ref(), - rsass::OutputStyle::Compressed, - ) - .expect("Error during SCSS compilation"), - ) - .expect("Couldn't write CSS output"); + compile_themes().expect("Theme compilation error"); + recursive_copy(&Path::new("assets").join("icons"), &Path::new("static")) + .expect("Couldn't copy icons"); + recursive_copy(&Path::new("assets").join("images"), &Path::new("static")) + .expect("Couldn't copy images"); + create_dir_all(&Path::new("static").join("media")).expect("Couldn't init media directory"); let cache_id = &compute_static_hash()[..8]; println!("cargo:rerun-if-changed=target/deploy/plume-front.wasm"); @@ -74,3 +65,91 @@ fn main() { println!("cargo:rustc-env=CACHE_ID={}", cache_id) } + +fn compile_themes() -> std::io::Result<()> { + let input_dir = Path::new("assets").join("themes"); + let output_dir = Path::new("static").join("css"); + + let themes = find_themes(input_dir)?; + + for theme in themes { + compile_theme(&theme, &output_dir)?; + } + + Ok(()) +} + +fn find_themes(path: PathBuf) -> std::io::Result> { + let ext = path.extension().and_then(OsStr::to_str); + if metadata(&path)?.is_dir() { + Ok(read_dir(&path)?.fold(vec![], |mut themes, ch| { + if let Ok(ch) = ch { + if let Ok(mut new) = find_themes(ch.path()) { + themes.append(&mut new); + } + } + themes + })) + } else if (ext == Some("scss") || ext == Some("sass")) + && !path.file_name().unwrap().to_str().unwrap().starts_with('_') + { + Ok(vec![path.clone()]) + } else { + Ok(vec![]) + } +} + +fn compile_theme(path: &Path, out_dir: &Path) -> std::io::Result<()> { + let name = path + .components() + .skip_while(|c| *c != Component::Normal(OsStr::new("themes"))) + .skip(1) + .filter_map(|c| { + c.as_os_str() + .to_str() + .unwrap_or_default() + .splitn(2, '.') + .next() + }) + .collect::>() + .join("-"); + + let dir = path.parent().unwrap(); + + let out = out_dir.join(name); + create_dir_all(&out)?; + + // copy files of the theme that are not scss + for ch in read_dir(&dir)? { + recursive_copy(&ch?.path(), &out)?; + } + + // compile the .scss/.sass file + let mut out = File::create(out.join("theme.css"))?; + out.write_all( + &rsass::compile_scss_file(path, rsass::OutputStyle::Compressed) + .expect("SCSS compilation error"), + )?; + + Ok(()) +} + +fn recursive_copy(path: &Path, out_dir: &Path) -> std::io::Result<()> { + if metadata(path)?.is_dir() { + let out = out_dir.join(path.file_name().unwrap()); + create_dir_all(out.clone())?; + + for ch in read_dir(path)? { + recursive_copy(&ch?.path(), &out)?; + } + } else { + println!("cargo:rerun-if-changed={}", path.display()); + + let ext = path.extension().and_then(OsStr::to_str); + if ext != Some("scss") && ext != Some("sass") { + copy(path, out_dir.join(path.file_name().unwrap()))?; + } + } + + Ok(()) +} diff --git a/migrations/postgres/2019-06-19-141114_themes/down.sql b/migrations/postgres/2019-06-19-141114_themes/down.sql new file mode 100644 index 00000000..54e85dff --- /dev/null +++ b/migrations/postgres/2019-06-19-141114_themes/down.sql @@ -0,0 +1,4 @@ +-- This file should undo anything in `up.sql` +ALTER TABLE blogs DROP COLUMN theme; +ALTER TABLE users DROP COLUMN preferred_theme; +ALTER TABLE users DROP COLUMN hide_custom_css; diff --git a/migrations/postgres/2019-06-19-141114_themes/up.sql b/migrations/postgres/2019-06-19-141114_themes/up.sql new file mode 100644 index 00000000..5a92b2a0 --- /dev/null +++ b/migrations/postgres/2019-06-19-141114_themes/up.sql @@ -0,0 +1,4 @@ +-- Your SQL goes here +ALTER TABLE blogs ADD COLUMN theme VARCHAR; +ALTER TABLE users ADD COLUMN preferred_theme VARCHAR; +ALTER TABLE users ADD COLUMN hide_custom_css BOOLEAN NOT NULL DEFAULT 'f'; diff --git a/migrations/sqlite/2019-06-21-154916_themes/down.sql b/migrations/sqlite/2019-06-21-154916_themes/down.sql new file mode 100644 index 00000000..78599e7d --- /dev/null +++ b/migrations/sqlite/2019-06-21-154916_themes/down.sql @@ -0,0 +1,88 @@ +-- This file should undo anything in `up.sql` + +CREATE TABLE blogs_before_themes ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + actor_id VARCHAR NOT NULL, + title VARCHAR NOT NULL, + summary TEXT NOT NULL DEFAULT '', + outbox_url VARCHAR NOT NULL UNIQUE, + inbox_url VARCHAR NOT NULL UNIQUE, + instance_id INTEGER REFERENCES instances(id) ON DELETE CASCADE NOT NULL, + creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + ap_url text not null default '' UNIQUE, + private_key TEXT, + public_key TEXT NOT NULL DEFAULT '', + fqn TEXT NOT NULL DEFAULT '', + summary_html TEXT NOT NULL DEFAULT '', + icon_id INTEGER REFERENCES medias(id) ON DELETE SET NULL DEFAULT NULL, + banner_id INTEGER REFERENCES medias(id) ON DELETE SET NULL DEFAULT NULL, + CONSTRAINT blog_unique UNIQUE (actor_id, instance_id) +); +INSERT INTO blogs_before_themes SELECT + id, + actor_id, + title, + summary, + outbox_url, + inbox_url, + instance_id, + creation_date, + ap_url, + private_key, + public_key, + fqn, + summary_html, + icon_id, + banner_id +FROM blogs; +DROP TABLE blogs; +ALTER TABLE blogs_before_themes RENAME TO blogs; + +CREATE TABLE users_before_themes ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + username VARCHAR NOT NULL, + display_name VARCHAR NOT NULL DEFAULT '', + outbox_url VARCHAR NOT NULL UNIQUE, + inbox_url VARCHAR NOT NULL UNIQUE, + is_admin BOOLEAN NOT NULL DEFAULT 'f', + summary TEXT NOT NULL DEFAULT '', + email TEXT, + hashed_password TEXT, + instance_id INTEGER REFERENCES instances(id) ON DELETE CASCADE NOT NULL, + creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + ap_url TEXT NOT NULL default '' UNIQUE, + private_key TEXT, + public_key TEXT NOT NULL DEFAULT '', + shared_inbox_url VARCHAR, + followers_endpoint VARCHAR NOT NULL DEFAULT '' UNIQUE, + avatar_id INTEGER REFERENCES medias(id) ON DELETE CASCADE, + last_fetched_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + fqn TEXT NOT NULL DEFAULT '', + summary_html TEXT NOT NULL DEFAULT '', + FOREIGN KEY (avatar_id) REFERENCES medias(id) ON DELETE SET NULL, + CONSTRAINT blog_authors_unique UNIQUE (username, instance_id) +); +INSERT INTO users_before_themes SELECT + id, + username, + display_name, + outbox_url, + inbox_url, + is_admin, + summary, + email, + hashed_password, + instance_id, + creation_date, + ap_url, + private_key, + public_key, + shared_inbox_url, + followers_endpoint, + avatar_id, + last_fetched_date, + fqn, + summary_html +FROM users; +DROP TABLE users; +ALTER TABLE users_before_themes RENAME TO users; diff --git a/migrations/sqlite/2019-06-21-154916_themes/up.sql b/migrations/sqlite/2019-06-21-154916_themes/up.sql new file mode 100644 index 00000000..5a92b2a0 --- /dev/null +++ b/migrations/sqlite/2019-06-21-154916_themes/up.sql @@ -0,0 +1,4 @@ +-- Your SQL goes here +ALTER TABLE blogs ADD COLUMN theme VARCHAR; +ALTER TABLE users ADD COLUMN preferred_theme VARCHAR; +ALTER TABLE users ADD COLUMN hide_custom_css BOOLEAN NOT NULL DEFAULT 'f'; diff --git a/plume-models/Cargo.toml b/plume-models/Cargo.toml index 436d67b4..46e4e3ae 100644 --- a/plume-models/Cargo.toml +++ b/plume-models/Cargo.toml @@ -23,6 +23,7 @@ serde_derive = "1.0" serde_json = "1.0" tantivy = "0.10.1" url = "2.1" +walkdir = "2.2" webfinger = "0.4.1" whatlang = "0.7.1" shrinkwraprs = "0.2.1" diff --git a/plume-models/src/blogs.rs b/plume-models/src/blogs.rs index 8c55f402..2adfabc6 100644 --- a/plume-models/src/blogs.rs +++ b/plume-models/src/blogs.rs @@ -44,6 +44,7 @@ pub struct Blog { pub summary_html: SafeString, pub icon_id: Option, pub banner_id: Option, + pub theme: Option, } #[derive(Default, Insertable)] @@ -61,6 +62,7 @@ pub struct NewBlog { pub summary_html: SafeString, pub icon_id: Option, pub banner_id: Option, + pub theme: Option, } const BLOG_PREFIX: &str = "~"; @@ -272,7 +274,7 @@ impl Blog { pub fn icon_url(&self, conn: &Connection) -> String { self.icon_id .and_then(|id| Media::get(conn, id).and_then(|m| m.url()).ok()) - .unwrap_or_else(|| "/static/default-avatar.png".to_string()) + .unwrap_or_else(|| "/static/images/default-avatar.png".to_string()) } pub fn banner_url(&self, conn: &Connection) -> Option { @@ -392,6 +394,7 @@ impl FromId for Blog { .summary_string() .unwrap_or_default(), ), + theme: None, }, ) } diff --git a/plume-models/src/config.rs b/plume-models/src/config.rs index 493fdcd9..41a989c1 100644 --- a/plume-models/src/config.rs +++ b/plume-models/src/config.rs @@ -14,6 +14,7 @@ pub struct Config { pub search_index: String, pub rocket: Result, pub logo: LogoConfig, + pub default_theme: String, } #[derive(Debug, Clone)] @@ -199,5 +200,6 @@ lazy_static! { search_index: var("SEARCH_INDEX").unwrap_or_else(|_| "search_index".to_owned()), rocket: get_rocket_config(), logo: LogoConfig::default(), + default_theme: var("DEFAULT_THEME").unwrap_or_else(|_| "default-light".to_owned()), }; } diff --git a/plume-models/src/instance.rs b/plume-models/src/instance.rs index 003456c8..8e071689 100644 --- a/plume-models/src/instance.rs +++ b/plume-models/src/instance.rs @@ -186,6 +186,60 @@ impl Instance { .get_result(conn) .map_err(Error::from) } + + /// Returns a list of the local instance themes (all files matching `static/css/NAME/theme.css`) + /// + /// The list only contains the name of the themes, without their extension or full path. + pub fn list_themes() -> Result> { + // List all the files in static/css + std::path::Path::new("static") + .join("css") + .read_dir() + .map(|files| { + files + .filter_map(std::result::Result::ok) + // Only keep actual directories (each theme has its own dir) + .filter(|f| f.file_type().map(|t| t.is_dir()).unwrap_or(false)) + // Only keep the directory name (= theme name) + .filter_map(|f| { + f.path() + .file_name() + .and_then(std::ffi::OsStr::to_str) + .map(std::borrow::ToOwned::to_owned) + }) + // Ignore the one starting with "blog-": these are the blog themes + .filter(|f| !f.starts_with("blog-")) + .collect() + }) + .map_err(Error::from) + } + + /// Returns a list of the local blog themes (all files matching `static/css/blog-NAME/theme.css`) + /// + /// The list only contains the name of the themes, without their extension or full path. + pub fn list_blog_themes() -> Result> { + // List all the files in static/css + std::path::Path::new("static") + .join("css") + .read_dir() + .map(|files| { + files + .filter_map(std::result::Result::ok) + // Only keep actual directories (each theme has its own dir) + .filter(|f| f.file_type().map(|t| t.is_dir()).unwrap_or(false)) + // Only keep the directory name (= theme name) + .filter_map(|f| { + f.path() + .file_name() + .and_then(std::ffi::OsStr::to_str) + .map(std::borrow::ToOwned::to_owned) + }) + // Only keep the one starting with "blog-": these are the blog themes + .filter(|f| f.starts_with("blog-")) + .collect() + }) + .map_err(Error::from) + } } #[cfg(test)] diff --git a/plume-models/src/lib.rs b/plume-models/src/lib.rs index 2c30cb8b..23bb5fc7 100644 --- a/plume-models/src/lib.rs +++ b/plume-models/src/lib.rs @@ -33,6 +33,7 @@ extern crate serde_json; #[macro_use] extern crate tantivy; extern crate url; +extern crate walkdir; extern crate webfinger; extern crate whatlang; diff --git a/plume-models/src/schema.rs b/plume-models/src/schema.rs index f2cc833c..2d518fd0 100644 --- a/plume-models/src/schema.rs +++ b/plume-models/src/schema.rs @@ -47,6 +47,7 @@ table! { summary_html -> Text, icon_id -> Nullable, banner_id -> Nullable, + theme -> Nullable, } } @@ -216,6 +217,8 @@ table! { last_fetched_date -> Timestamp, fqn -> Text, summary_html -> Text, + preferred_theme -> Nullable, + hide_custom_css -> Bool, } } diff --git a/plume-models/src/users.rs b/plume-models/src/users.rs index 4b1d3a54..c30215c7 100644 --- a/plume-models/src/users.rs +++ b/plume-models/src/users.rs @@ -73,6 +73,8 @@ pub struct User { pub last_fetched_date: NaiveDateTime, pub fqn: String, pub summary_html: SafeString, + pub preferred_theme: Option, + pub hide_custom_css: bool, } #[derive(Default, Insertable)] @@ -202,30 +204,6 @@ impl User { .map_err(Error::from) } - pub fn update( - &self, - conn: &Connection, - name: String, - email: String, - summary: String, - ) -> Result { - diesel::update(self) - .set(( - users::display_name.eq(name), - users::email.eq(email), - users::summary_html.eq(utils::md_to_html( - &summary, - None, - false, - Some(Media::get_media_processor(conn, vec![self])), - ) - .0), - users::summary.eq(summary), - )) - .execute(conn)?; - User::get(conn, self.id) - } - pub fn count_local(conn: &Connection) -> Result { users::table .filter(users::instance_id.eq(Instance::get_local()?.id)) @@ -668,7 +646,7 @@ impl User { pub fn avatar_url(&self, conn: &Connection) -> String { self.avatar_id .and_then(|id| Media::get(conn, id).and_then(|m| m.url()).ok()) - .unwrap_or_else(|| "/static/default-avatar.png".to_string()) + .unwrap_or_else(|| "/static/images/default-avatar.png".to_string()) } pub fn webfinger(&self, conn: &Connection) -> Result { @@ -1076,27 +1054,6 @@ pub(crate) mod tests { }); } - #[test] - fn update() { - let conn = &db(); - conn.test_transaction::<_, (), _>(|| { - let inserted = fill_database(conn); - let updated = inserted[0] - .update( - conn, - "new name".to_owned(), - "em@il".to_owned(), - "

summary

".to_owned(), - ) - .unwrap(); - assert_eq!(updated.display_name, "new name"); - assert_eq!(updated.email.unwrap(), "em@il"); - assert_eq!(updated.summary_html.get(), "

summary

"); - - Ok(()) - }); - } - #[test] fn auth() { let conn = &db(); diff --git a/src/main.rs b/src/main.rs index 0bdfaddc..c2e545cf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -238,6 +238,7 @@ Then try to restart Plume routes::session::password_reset_request, routes::session::password_reset_form, routes::session::password_reset, + routes::theme_files, routes::plume_static_files, routes::static_files, routes::tags::tag, diff --git a/src/routes/blogs.rs b/src/routes/blogs.rs index 7ab9e2b3..8ae69084 100644 --- a/src/routes/blogs.rs +++ b/src/routes/blogs.rs @@ -181,6 +181,7 @@ pub struct EditForm { pub summary: String, pub icon: Option, pub banner: Option, + pub theme: Option, } #[get("/~//edit")] @@ -207,6 +208,7 @@ pub fn edit(name: String, rockets: PlumeRocket) -> Result { summary: blog.summary.clone(), icon: blog.icon_id, banner: blog.banner_id, + theme: blog.theme.clone(), }, ValidationErrors::default() ))) @@ -318,6 +320,7 @@ pub fn update( ); blog.icon_id = form.icon; blog.banner_id = form.banner; + blog.theme = form.theme.clone(); blog.save_changes::(&*conn) .expect("Couldn't save blog changes"); Ok(Flash::success( diff --git a/src/routes/mod.rs b/src/routes/mod.rs index c29ab10f..cb9cfc33 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -2,15 +2,20 @@ use atom_syndication::{ContentBuilder, Entry, EntryBuilder, LinkBuilder, Person, PersonBuilder}; use rocket::{ http::{ - hyper::header::{CacheControl, CacheDirective}, + hyper::header::{CacheControl, CacheDirective, ETag, EntityTag}, uri::{FromUriParam, Query}, RawStr, Status, }, request::{self, FromFormValue, FromRequest, Request}, - response::{Flash, NamedFile, Redirect}, + response::{self, Flash, NamedFile, Redirect, Responder, Response}, Outcome, }; -use std::path::{Path, PathBuf}; +use std::{ + collections::hash_map::DefaultHasher, + hash::Hasher, + io::Read, + path::{Path, PathBuf}, +}; use template_utils::Ructe; use plume_models::{posts::Post, Connection}; @@ -168,6 +173,44 @@ pub struct CachedFile { cache_control: CacheControl, } +#[derive(Debug)] +pub struct ThemeFile(NamedFile); + +impl<'r> Responder<'r> for ThemeFile { + fn respond_to(mut self, r: &Request) -> response::Result<'r> { + let mut contents = String::new(); + self.0 + .read_to_string(&mut contents) + .map_err(|_| Status::InternalServerError)?; + + let mut hasher = DefaultHasher::new(); + hasher.write(&contents.as_bytes()); + let etag = format!("{:x}", hasher.finish()); + + if r.headers() + .get("If-None-Match") + .any(|s| s[1..s.len() - 1] == etag) + { + Response::build() + .status(Status::NotModified) + .header(ETag(EntityTag::strong(etag))) + .ok() + } else { + Response::build() + .merge(self.0.respond_to(r)?) + .header(ETag(EntityTag::strong(etag))) + .ok() + } + } +} + +#[get("/static/cached/<_build_id>/css/", rank = 1)] +pub fn theme_files(file: PathBuf, _build_id: &RawStr) -> Option { + NamedFile::open(Path::new("static/").join(file)) + .ok() + .map(ThemeFile) +} + #[get("/static/cached/<_build_id>/", rank = 2)] pub fn plume_static_files(file: PathBuf, _build_id: &RawStr) -> Option { static_files(file) diff --git a/src/routes/user.rs b/src/routes/user.rs index b2316cb7..70b8699e 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -1,5 +1,6 @@ use activitypub::{activity::Create, collection::OrderedCollection}; use atom_syndication::{Entry, FeedBuilder}; +use diesel::SaveChangesDsl; use rocket::{ http::{ContentType, Cookies}, request::LenientForm, @@ -20,8 +21,10 @@ use plume_models::{ headers::Headers, inbox::inbox as local_inbox, instance::Instance, + medias::Media, posts::{LicensedArticle, Post}, reshares::Reshare, + safe_string::SafeString, users::*, Error, PlumeRocket, }; @@ -342,7 +345,9 @@ pub fn edit(name: String, user: User, rockets: PlumeRocket) -> Result, + pub hide_custom_css: bool, } #[put("/@/<_name>/edit", data = "
")] pub fn update( _name: String, conn: DbConn, - user: User, + mut user: User, form: LenientForm, intl: I18n, ) -> Result, ErrorPage> { - user.update( - &*conn, - if !form.display_name.is_empty() { - form.display_name.clone() - } else { - user.display_name.clone() - }, - if !form.email.is_empty() { - form.email.clone() - } else { - user.email.clone().unwrap_or_default() - }, - if !form.summary.is_empty() { - form.summary.clone() - } else { - user.summary.to_string() - }, - )?; + user.display_name = form.display_name.clone(); + user.email = Some(form.email.clone()); + user.summary = form.summary.clone(); + user.summary_html = SafeString::new( + &utils::md_to_html( + &form.summary, + None, + false, + Some(Media::get_media_processor(&conn, vec![&user])), + ) + .0, + ); + user.preferred_theme = form.theme.clone(); + user.hide_custom_css = form.hide_custom_css; + let _: User = user.save_changes(&*conn).map_err(Error::from)?; + Ok(Flash::success( Redirect::to(uri!(me)), i18n!(intl.catalog, "Your profile has been updated."), diff --git a/static/css/main.scss b/static/css/main.scss deleted file mode 100644 index 1615854f..00000000 --- a/static/css/main.scss +++ /dev/null @@ -1,175 +0,0 @@ -/* color palette: https://coolors.co/23f0c7-ef767a-7765e3-6457a6-ffe347 */ - -@import url('../fonts/Route159/Route159.css'); -@import url('../fonts/Lora/Lora.css'); -@import url('../fonts/Playfair_Display/PlayfairDisplay.css'); - -html { - box-sizing: border-box; -} -*, *:before, *:after { - box-sizing: inherit; -} - -@import 'variables'; -@import 'global'; -@import 'header'; -@import 'article'; -@import 'forms'; - -/// Small screens -@media screen and (max-width: 600px) { - @keyframes menuOpening { - from { - transform: scaleX(0); - transform-origin: left; - opacity: 0; - } - to { - transform: scaleX(1); - transform-origin: left; - opacity: 1; - } - } - - body > header { - flex-direction: column; - - nav#menu { - display: inline-flex; - z-index: 21; - } - - #content { - display: none; - appearance: none; - text-align: center; - z-index: 20; - } - } - - body > header:focus-within #content, #content.show { - position: fixed; - display: flex; - flex-direction: column; - justify-content: flex-start; - - top: 0; - left: 0; - width: 100%; - height: 100%; - box-sizing: border-box; - - animation: 0.2s menuOpening; - - &::before { - content: ""; - position: absolute; - transform: skewX(-10deg); - top: 0; - left: -20%; - width: 100%; - height: 100%; - - z-index: -10; - - background: $purple; - } - - > nav { - flex-direction: column; - align-items: flex-start; - - a { - display: flex; - flex-direction: row; - align-items: center; - margin: 0; - padding: 1rem 1.5rem; - color: $white; - font-size: 1.4em; - font-weight: 300; - - &.title { font-size: 1.8em; } - - > *:first-child { width: 3rem; } - > img:first-child { height: 3rem; } - > *:last-child { margin-left: 1rem; } - > nav hr { - display: block; - margin: 0; - width: 100%; - border: solid $white 0.1rem; - } - .mobile-label { display: initial; } - } - } - } - - main .article-meta { - > *, .comments { - margin: 0 5%; - } - > p { - margin: 2em 5%; - font-size: 0.9em; - } - .comments > * { margin: auto 5%; } - .comments .comment { padding: 2em 0px; } - } - main .article-info, main article, main h1.article, main h2.article { - max-width: 90vw; - } - - .card { - min-width: 80%; - min-height: 80%; - } - - .tabs { - margin: auto 0px 2em; - } - - .stats { flex-direction: column; } - body > footer { - flex-direction: column; - align-items: center; - } - body > footer * { - margin: 1em auto; - text-align: center; - } - - .flex.wrap { flex-direction: column; } - - .cards, .list { - margin: 1rem 0 5rem; - } - - .split { - flex-direction: column; - margin: 0; - - & > * { - max-width: 100%; - } - } - - .bottom-bar { - flex-direction: column; - align-items: center; - & > div { - margin: 0; - } - } - - main .article-meta .comments .comment { - header { - flex-direction: column; - } - - .content { - margin-top: 0.5em; - } - } -} diff --git a/static/media/.gitkeep b/static/media/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/templates/base.rs.html b/templates/base.rs.html index d184b574..d8a74e49 100644 --- a/templates/base.rs.html +++ b/templates/base.rs.html @@ -2,16 +2,16 @@ @use plume_models::instance::Instance; @use template_utils::*; @use routes::*; +@use std::path::Path; @(ctx: BaseContext, title: String, head: Content, header: Content, content: Content) - + @title ⋅ @i18n!(ctx.1, "Plume") - - + diff --git a/templates/blogs/details.rs.html b/templates/blogs/details.rs.html index 71c87a71..30974f29 100644 --- a/templates/blogs/details.rs.html +++ b/templates/blogs/details.rs.html @@ -5,6 +5,7 @@ @use templates::{base, partials::post_card}; @use template_utils::*; @use routes::*; +@use std::path::Path; @(ctx: BaseContext, blog: Blog, authors: &[User], page: i32, n_pages: i32, posts: Vec) @@ -23,6 +24,11 @@ + @if !ctx.2.clone().map(|u| u.hide_custom_css).unwrap_or(false) { + @if let Some(ref theme) = blog.theme { + + } + } }, { @blog.title }, { diff --git a/templates/blogs/edit.rs.html b/templates/blogs/edit.rs.html index dfa7f44f..0b1febbf 100644 --- a/templates/blogs/edit.rs.html +++ b/templates/blogs/edit.rs.html @@ -1,5 +1,6 @@ @use validator::ValidationErrors; @use plume_models::blogs::Blog; +@use plume_models::instance::Instance; @use plume_models::medias::Media; @use routes::blogs; @use routes::blogs::EditForm; @@ -31,6 +32,18 @@ @:image_select(ctx, "icon", i18n!(ctx.1, "Blog icon"), true, medias.clone(), form.icon) @:image_select(ctx, "banner", i18n!(ctx.1, "Blog banner"), true, medias, form.banner) + @if let Ok(themes) = Instance::list_themes() { + + + } else { +

@i18n!(ctx.1, "Error while loading theme selector.")

+ } + diff --git a/templates/instance/admin.rs.html b/templates/instance/admin.rs.html index fcf6f6eb..50bde423 100644 --- a/templates/instance/admin.rs.html +++ b/templates/instance/admin.rs.html @@ -20,12 +20,9 @@ @input!(ctx.1, name (text), "Name", form, errors.clone(), "props") diff --git a/templates/posts/details.rs.html b/templates/posts/details.rs.html index f8a0803f..7a67b40c 100644 --- a/templates/posts/details.rs.html +++ b/templates/posts/details.rs.html @@ -8,6 +8,7 @@ @use validator::ValidationErrors; @use routes::comments::NewCommentForm; @use routes::*; +@use std::path::Path; @(ctx: BaseContext, article: Post, blog: Blog, comment_form: &NewCommentForm, comment_errors: ValidationErrors, tags: Vec, comments: Vec, previous_comment: Option, n_likes: i64, n_reshares: i64, has_liked: bool, has_reshared: bool, is_following: bool, author: User) @@ -19,6 +20,12 @@ } + + @if !ctx.2.clone().map(|u| u.hide_custom_css).unwrap_or(false) { + @if let Some(ref theme) = blog.theme { + + } + } }, { @blog.title }, { diff --git a/templates/users/edit.rs.html b/templates/users/edit.rs.html index 86777e42..7dce82bd 100644 --- a/templates/users/edit.rs.html +++ b/templates/users/edit.rs.html @@ -1,5 +1,6 @@ @use templates::base; @use template_utils::*; +@use plume_models::instance::Instance; @use routes::user::UpdateUserForm; @use validator::ValidationErrors; @use routes::*; @@ -22,6 +23,23 @@ + @if let Ok(themes) = Instance::list_themes() { + + + } else { +

@i18n!(ctx.1, "Error while loading theme selector.")

+ } + + + -- 2.38.5 From 28fb50438e53019d5bda97e3b2532e5831096c9e Mon Sep 17 00:00:00 2001 From: Ana Gelez Date: Wed, 21 Aug 2019 21:41:11 +0200 Subject: [PATCH 3/5] Fix theme caching (#647) --- Cargo.lock | 1 - src/routes/mod.rs | 12 ++++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b80f17a1..08fc3194 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2084,7 +2084,6 @@ dependencies = [ "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)", "shrinkwraprs 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tantivy 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/src/routes/mod.rs b/src/routes/mod.rs index cb9cfc33..03a12fd7 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -13,7 +13,6 @@ use rocket::{ use std::{ collections::hash_map::DefaultHasher, hash::Hasher, - io::Read, path::{Path, PathBuf}, }; use template_utils::Ructe; @@ -177,14 +176,11 @@ pub struct CachedFile { pub struct ThemeFile(NamedFile); impl<'r> Responder<'r> for ThemeFile { - fn respond_to(mut self, r: &Request) -> response::Result<'r> { - let mut contents = String::new(); - self.0 - .read_to_string(&mut contents) - .map_err(|_| Status::InternalServerError)?; + fn respond_to(self, r: &Request) -> response::Result<'r> { + let contents = std::fs::read(self.0.path()).map_err(|_| Status::InternalServerError)?; let mut hasher = DefaultHasher::new(); - hasher.write(&contents.as_bytes()); + hasher.write(&contents); let etag = format!("{:x}", hasher.finish()); if r.headers() @@ -206,7 +202,7 @@ impl<'r> Responder<'r> for ThemeFile { #[get("/static/cached/<_build_id>/css/", rank = 1)] pub fn theme_files(file: PathBuf, _build_id: &RawStr) -> Option { - NamedFile::open(Path::new("static/").join(file)) + NamedFile::open(Path::new("static/css/").join(file)) .ok() .map(ThemeFile) } -- 2.38.5 From 11353be65cda14bb35e5793ac38a3fead8a240db Mon Sep 17 00:00:00 2001 From: requiem958 Date: Thu, 22 Aug 2019 20:01:55 +0200 Subject: [PATCH 4/5] syntax and names --- plume-front/src/main.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plume-front/src/main.rs b/plume-front/src/main.rs index a34e2ac1..fe65323e 100644 --- a/plume-front/src/main.rs +++ b/plume-front/src/main.rs @@ -46,10 +46,13 @@ lazy_static! { let catalogs = include_i18n!(); let lang = js! { return navigator.language }.into_string().unwrap(); let lang = lang.splitn(2, '-').next().unwrap_or("en"); - catalogs + + let english_position = catalogs.iter() + .position(|(language_code,_)| *language_code == "en").unwrap(); + catalogs .iter() .find(|(l, _)| l == &lang) - .unwrap_or(&catalogs[0]) + .unwrap_or(&catalogs[english_position]) .clone() .1 }; -- 2.38.5 From 9fffed0dab4b01b47fcb52b137d6852d4ed11bdd Mon Sep 17 00:00:00 2001 From: requiem958 Date: Thu, 22 Aug 2019 20:07:26 +0200 Subject: [PATCH 5/5] Solve the issue #642, by searching index of english language code in catalog. --- plume-front/src/main.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plume-front/src/main.rs b/plume-front/src/main.rs index fe65323e..deb78849 100644 --- a/plume-front/src/main.rs +++ b/plume-front/src/main.rs @@ -47,9 +47,11 @@ lazy_static! { let lang = js! { return navigator.language }.into_string().unwrap(); let lang = lang.splitn(2, '-').next().unwrap_or("en"); - let english_position = catalogs.iter() - .position(|(language_code,_)| *language_code == "en").unwrap(); - catalogs + let english_position = catalogs + .iter() + .position(|(language_code, _)| *language_code == "en") + .unwrap(); + catalogs .iter() .find(|(l, _)| l == &lang) .unwrap_or(&catalogs[english_position]) -- 2.38.5