Skip to content

Commit

Permalink
add dump filter tests
Browse files Browse the repository at this point in the history
add dump filter documentation

added changelog update

Fix mobile viewport (meta) (#865)

closes #860

Order builtin filters alphabetically (#863)

Ordered filters alphabetically in English and French documentation.
Chinese docs only have references to Jinja docs, so are not updated.

Closes #858

added more elaborate tests and adding variants of values that can be passed in json

remove single quotes and added spaces here and there

change foo dump to items dump consistency

change key types

correcting documentation dump filter

perfecting dump documentation

perfecting dump testing

added different indentation

complete tests
  • Loading branch information
Jesse Eikema committed Sep 20, 2016
1 parent 5e49e4f commit fd18076
Show file tree
Hide file tree
Showing 5 changed files with 164 additions and 94 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ Changelog
* Fix handling of macro arg with default value which shares a name with another
macro. Merge of [#791](https://github.com/mozilla/nunjucks/pull/791).

* Add support for the spaces parameter in the dump template filter.
Merge of [#868](https://github.com/mozilla/nunjucks/pull/868).
Thanks Jesse Eikema


2.5.2 (Sep 14 2016)
----------------
Expand Down
1 change: 1 addition & 0 deletions docs/_layouts/page.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<title>Nunjucks</title>

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" type="text/css"
href="{{ site.baseurl }}bower_components/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="{{ site.baseurl }}css/highlight.css" />
Expand Down
97 changes: 49 additions & 48 deletions docs/fr/templating.md
Original file line number Diff line number Diff line change
Expand Up @@ -856,42 +856,6 @@ Nunjucks a porté la plupart des filtres de jinja, et il a ses propres filtres.
de travailler sur notre documentation pour les filtres. Certains d'entre eux sont documentés
ci-dessous, pour le reste, vous pouvez cliquer sur le site de jinja.

### default(value, default, [boolean])

(raccourci avec `d`)

Si `value` est strictement `undefined`, cela retourne `default`, sinon `value`. Si
`boolean` est true, toute valeur JavaScript fausse retournera `default` (false, "",
etc)

**La version 2.0 a changé le comportement par défaut de ce filtre.
Auparavant, il agissait comme si `boolean` était à true par défaut et donc toute
valeur fausse retournait `default`. Dans la 2.0, le comportement par défaut retourne
`default` seulement pour une valeur `undefined`. Vous pouvez obtenir l'ancien
comportement en passant `true` à `boolean`, ou en utilisant simplement `value or default`.**

### sort(arr, reverse, caseSens, attr)

Tri `arr` avec la fonction `arr.sort` de JavaScript. Si `reverse` est à true, le résultat
sera inversé. Le tri est insensible à la casse par défaut, mais en paramétrant `caseSens`
à true, cela le rend sensible à la casse. Si `attr` est passé, cela permettra de comparer `attr` à
chaque élément.

### striptags (value, [preserve_linebreaks])

C'est similaire à
[striptags](http://jinja.pocoo.org/docs/templates/#striptags) de jinja. Si
`preserve_linebreaks` est à false (par défaut), cela enlève les balises SGML/XML et remplace
les espaces adjacents par un seul espace. Si `preserve_linebreaks` est à true,
cela normalise les espaces, en essayant de préserver les sauts de lignes originaux. Utiliser le second
comportement si vous voulez utiliser ceci `{{ text | striptags | nl2br }}`. Sinon
utilisez le comportement par défaut.

### dump (object)

Appelle `JSON.stringify` sur un objet et déverse le résultat dans le
template. C'est utile pour le débogage : `{{ foo | dump }}`.

### abs

Retourne la valeur absolue de l'argument :
Expand Down Expand Up @@ -962,6 +926,20 @@ Centre la valeur dans un champ d'une largeur donnée :
fooo
```

### default(value, default, [boolean])

(raccourci avec `d`)

Si `value` est strictement `undefined`, cela retourne `default`, sinon `value`. Si
`boolean` est true, toute valeur JavaScript fausse retournera `default` (false, "",
etc)

**La version 2.0 a changé le comportement par défaut de ce filtre.
Auparavant, il agissait comme si `boolean` était à true par défaut et donc toute
valeur fausse retournait `default`. Dans la 2.0, le comportement par défaut retourne
`default` seulement pour une valeur `undefined`. Vous pouvez obtenir l'ancien
comportement en passant `true` à `boolean`, ou en utilisant simplement `value or default`.**

### dictsort

Tri un dictionnaire et rend des paires (clé, valeur) :
Expand All @@ -986,6 +964,11 @@ Tri un dictionnaire et rend des paires (clé, valeur) :
a b c d e f
```

### dump (object)

Appelle `JSON.stringify` sur un objet et déverse le résultat dans le
template. C'est utile pour le débogage : `{{ foo | dump }}`.

### escape (aliased as e)

Convertit les caractères &, <, >, ‘, et ” dans des chaines avec des séquences HTML sécurisées.
Expand All @@ -1004,38 +987,39 @@ Les résultats rendent la valeur comme une chaîne de balisage.
&lt;html&gt;
```

### float

Convertit une valeur en un nombre à virgule flottant. Si la conversion échoue, 0.0 est retourné.
Cette valeur par défaut peut être modifiée en utilisant le premier paramètre.
### first

Donne le premier élément dans un tableau :

**Entrée**

```jinja
{{ "3.5" | float }}
{% set items = [1,2,3] %}
{{ items | first }}
```

**Sortie**

```jinja
3.5
1
```

### first
### float

Donne le premier élément dans un tableau :
Convertit une valeur en un nombre à virgule flottant. Si la conversion échoue, 0.0 est retourné.
Cette valeur par défaut peut être modifiée en utilisant le premier paramètre.

**Entrée**

```jinja
{% set items = [1,2,3] %}
{{ items | first }}
{{ "3.5" | float }}
```

**Sortie**

```jinja
1
3.5
```

### groupby
Expand Down Expand Up @@ -1523,6 +1507,13 @@ Découpe un itérateur et retourne une liste de listes contenant ces éléments
</div>
```

### sort(arr, reverse, caseSens, attr)

Tri `arr` avec la fonction `arr.sort` de JavaScript. Si `reverse` est à true, le résultat
sera inversé. Le tri est insensible à la casse par défaut, mais en paramétrant `caseSens`
à true, cela le rend sensible à la casse. Si `attr` est passé, cela permettra de comparer `attr` à
chaque élément.

### string

Convertit un objet en une chaine :
Expand All @@ -1539,8 +1530,8 @@ Convertit un objet en une chaine :
**Sortie**

```jinja
1,2,3,4,
```
1,2,3,4,```


### sum

Expand All @@ -1559,6 +1550,16 @@ Rend la somme des éléments dans le tableau :
6
```

### striptags (value, [preserve_linebreaks])

C'est similaire à
[striptags](http://jinja.pocoo.org/docs/templates/#striptags) de jinja. Si
`preserve_linebreaks` est à false (par défaut), cela enlève les balises SGML/XML et remplace
les espaces adjacents par un seul espace. Si `preserve_linebreaks` est à true,
cela normalise les espaces, en essayant de préserver les sauts de lignes originaux. Utiliser le second
comportement si vous voulez utiliser ceci `{{ text | striptags | nl2br }}`. Sinon
utilisez le comportement par défaut.

### title

Met la première lettre de chaque mot en majuscule :
Expand Down
144 changes: 98 additions & 46 deletions docs/templating.md
Original file line number Diff line number Diff line change
Expand Up @@ -863,42 +863,6 @@ Nunjucks has ported most of jinja's filters, and has a few of its own. We need
to work on our own documentation for filters. Some of them are documented
below, for the rest you can click through to jinja's site.

### default(value, default, [boolean])

(aliased as `d`)

If `value` is strictly `undefined`, return `default`, otherwise `value`. If
`boolean` is true, any JavaScript falsy value will return `default` (false, "",
etc)

**In version 2.0, this filter changed the default behavior of this
filter. Previously, it acted as if `boolean` was true by default, and any
falsy value would return `default`. In 2.0 the default is only an `undefined`
value returns `default`. You can get the old behavior by passing `true` to
`boolean`, or just use `value or default`.**

### sort(arr, reverse, caseSens, attr)

Sort `arr` with JavaScript's `arr.sort` function. If `reverse` is true, result
will be reversed. Sort is case-insensitive by default, but setting `caseSens`
to true makes it case-sensitive. If `attr` is passed, will compare `attr` from
each item.

### striptags (value, [preserve_linebreaks])

Analog of jinja's
[striptags](http://jinja.pocoo.org/docs/templates/#striptags). If
`preserve_linebreaks` is false (default), strips SGML/XML tags and replaces
adjacent whitespace with one space. If `preserve_linebreaks` is true,
normalizes whitespace, trying to preserve original linebreaks. Use second
behavior if you want to pipe `{{ text | striptags | nl2br }}`. Use default one
otherwise.

### dump (object)

Call `JSON.stringify` on an object and dump the result into the
template. Useful for debugging: `{{ foo | dump }}`.

### abs

Return the absolute value of the argument:
Expand Down Expand Up @@ -969,6 +933,20 @@ Center the value in a field of a given width:
fooo
```

### default(value, default, [boolean])

(aliased as `d`)

If `value` is strictly `undefined`, return `default`, otherwise `value`. If
`boolean` is true, any JavaScript falsy value will return `default` (false, "",
etc)

**In version 2.0, this filter changed the default behavior of this
filter. Previously, it acted as if `boolean` was true by default, and any
falsy value would return `default`. In 2.0 the default is only an `undefined`
value returns `default`. You can get the old behavior by passing `true` to
`boolean`, or just use `value or default`.**

### dictsort

Sort a dict and yield (key, value) pairs:
Expand All @@ -992,6 +970,64 @@ Sort a dict and yield (key, value) pairs:
```jinja
a b c d e f
```
### dump

Call [`JSON.stringify`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) on an object and dump the result into the
template. Useful for debugging: `{{ items | dump }}`.

**Input**

```jinja
{% set items = ["a", 1, { b : true}] %}
{{ items | dump }}
```

**Output**

```jinja
["a",1,{"b":true}]
```

Dump provides the spaces parameter to add spaces or tabs to the resulting
values. This makes the results more readable.

**Input**

```jinja
{% set items = ["a", 1, { b : true}] %}
{{ items | dump(2) }}
```

**Output**

```jinja
[
"a",
1,
{
"b": true
}
]
```
**Input**

```jinja
{% set items = ["a", 1, { b : true}] %}
{{ items | dump('\t') }}
```

**Output**

```jinja
[
"a",
1,
{
"b": true
}
]
```

### escape (aliased as e)

Expand All @@ -1011,38 +1047,38 @@ Marks return value as markup string
&lt;html&gt;
```

### float
### first

Convert a value into a floating point number. If the conversion fails 0.0 is returned.
This default can be overridden by using the first parameter.
Get the first item in an array:

**Input**

```jinja
{{ "3.5" | float }}
{% set items = [1,2,3] %}
{{ items | first }}
```

**Output**

```jinja
3.5
1
```

### first
### float

Get the first item in an array:
Convert a value into a floating point number. If the conversion fails 0.0 is returned.
This default can be overridden by using the first parameter.

**Input**

```jinja
{% set items = [1,2,3] %}
{{ items | first }}
{{ "3.5" | float }}
```

**Output**

```jinja
1
3.5
```

### groupby
Expand Down Expand Up @@ -1529,6 +1565,12 @@ Slice an iterator and return a list of lists containing those items:
</ul>
</div>
```
### sort(arr, reverse, caseSens, attr)

Sort `arr` with JavaScript's `arr.sort` function. If `reverse` is true, result
will be reversed. Sort is case-insensitive by default, but setting `caseSens`
to true makes it case-sensitive. If `attr` is passed, will compare `attr` from
each item.

### string

Expand All @@ -1549,6 +1591,16 @@ Convert an object to a string:
1,2,3,4,
```

### striptags (value, [preserve_linebreaks])

Analog of jinja's
[striptags](http://jinja.pocoo.org/docs/templates/#striptags). If
`preserve_linebreaks` is false (default), strips SGML/XML tags and replaces
adjacent whitespace with one space. If `preserve_linebreaks` is true,
normalizes whitespace, trying to preserve original linebreaks. Use second
behavior if you want to pipe `{{ text | striptags | nl2br }}`. Use default one
otherwise.

### sum

Output the sum of items in the array:
Expand Down
Loading

0 comments on commit fd18076

Please sign in to comment.