Move filter list closer to the actual filters, add docs

This commit is contained in:
Dirkjan Ochtman 2017-09-04 20:31:28 +02:00
parent 32a9dd5f2e
commit 23279c3bce
2 changed files with 19 additions and 13 deletions

View File

@ -16,6 +16,23 @@ use std::fmt;
use super::Result;
// This is used by the code generator to decide whether a named filter is part of
// Askama or should refer to a local `filters` module. It should contain all the
// filters shipped with Askama, even the optional ones (since optional inclusion
// in the const vector based on features seems impossible right now).
pub const BUILT_IN_FILTERS: [&str; 9] = [
"e",
"escape",
"format",
"lower",
"lowercase",
"trim",
"upper",
"uppercase",
"json", // Optional feature; reserve the name anyway
];
fn escapable(b: &u8) -> bool {
*b == b'<' || *b == b'>' || *b == b'&'
}

View File

@ -1,3 +1,4 @@
use filters;
use parser::{self, Cond, Expr, Node, Target, WS};
use path;
@ -262,7 +263,7 @@ impl<'a> Generator<'a> {
return;
}
if BUILT_IN_FILTERS.contains(&name) {
if filters::BUILT_IN_FILTERS.contains(&name) {
self.write(&format!("::askama::filters::{}(&", name));
} else {
self.write(&format!("filters::{}(&", name));
@ -729,15 +730,3 @@ impl<'a, T: 'a> SetChain<'a, T> where T: cmp::Eq + hash::Hash {
}
type MacroMap<'a> = HashMap<&'a str, (WS, &'a str, Vec<&'a str>, Vec<Node<'a>>, WS)>;
const BUILT_IN_FILTERS: [&str; 9] = [
"e",
"escape",
"format",
"lower",
"lowercase",
"trim",
"upper",
"uppercase",
"json", // Optional feature; reserve the name anyway
];