Use Ructe (#327)

All the template are now compiled at compile-time with the `ructe` crate.

I preferred to use it instead of askama because it allows more complex Rust expressions, where askama only supports a small subset of expressions and doesn't allow them everywhere (for instance, `{{ macro!() | filter }}` would result in a parsing error).

The diff is quite huge, but there is normally no changes in functionality.

Fixes #161 and unblocks #110 and #273
This commit is contained in:
Baptiste Gelez
2018-12-06 18:54:16 +01:00
committed by GitHub
parent 5f059c3e98
commit 70af57c6e1
121 changed files with 3132 additions and 3260 deletions
+1 -5
View File
@@ -11,11 +11,11 @@ array_tool = "1.0"
base64 = "0.9"
failure = "0.1"
failure_derive = "0.1"
gettext-rs = "0.4"
heck = "0.3.0"
hex = "0.3"
hyper = "0.11.27"
openssl = "0.10.11"
rocket = "0.4.0-rc.1"
reqwest = "0.9"
serde = "1.0"
serde_derive = "1.0"
@@ -28,7 +28,3 @@ version = "0.4"
[dependencies.pulldown-cmark]
default-features = false
version = "0.1.2"
[dependencies.rocket]
git = "https://github.com/SergioBenitez/Rocket"
rev = "55459db7732b9a240826a5c120c650f87e3372ce"
+1 -2
View File
@@ -1,4 +1,4 @@
#![feature(custom_attribute, iterator_flatten)]
#![feature(custom_attribute)]
extern crate activitypub;
#[macro_use]
@@ -10,7 +10,6 @@ extern crate chrono;
extern crate failure;
#[macro_use]
extern crate failure_derive;
extern crate gettextrs;
extern crate hex;
extern crate heck;
extern crate hyper;
+6 -2
View File
@@ -1,4 +1,3 @@
use gettextrs::gettext;
use heck::CamelCase;
use openssl::rand::rand_bytes;
use pulldown_cmark::{Event, Parser, Options, Tag, html};
@@ -23,8 +22,13 @@ pub fn make_actor_id(name: &str) -> String {
.collect()
}
/**
* Redirects to the login page with a given message.
*
* Note that the message should be translated before passed to this function.
*/
pub fn requires_login<T: Into<Uri<'static>>>(message: &str, url: T) -> Flash<Redirect> {
Flash::new(Redirect::to(format!("/login?m={}", gettext(message.to_string()))), "callback", url.into().to_string())
Flash::new(Redirect::to(format!("/login?m={}", message)), "callback", url.into().to_string())
}
#[derive(Debug)]