Add path to TranslatedContent (#863)

* Add path to `TranslatedContent`

This makes it possible to retrieve the translated page through the `get_page` function.

* Use TranslatedContent::path field in test_site_i18n

Use it with the `get_page` function to get a reference to the page object.
This commit is contained in:
Philipp Oppermann 2019-12-06 13:11:30 +01:00 committed by Vincent Prouillet
parent 73ea4b3b16
commit 72373bea9b
3 changed files with 15 additions and 0 deletions

View file

@ -1,5 +1,6 @@
//! What we are sending to the templates when rendering them //! What we are sending to the templates when rendering them
use std::collections::HashMap; use std::collections::HashMap;
use std::path::Path;
use tera::{Map, Value}; use tera::{Map, Value};
@ -12,6 +13,9 @@ pub struct TranslatedContent<'a> {
lang: &'a str, lang: &'a str,
permalink: &'a str, permalink: &'a str,
title: &'a Option<String>, title: &'a Option<String>,
/// The path to the markdown file; useful for retrieving the full page through
/// the `get_page` function.
path: &'a Path,
} }
impl<'a> TranslatedContent<'a> { impl<'a> TranslatedContent<'a> {
@ -25,6 +29,7 @@ impl<'a> TranslatedContent<'a> {
lang: &other.lang, lang: &other.lang,
permalink: &other.permalink, permalink: &other.permalink,
title: &other.meta.title, title: &other.meta.title,
path: &other.file.path,
}); });
} }
@ -40,6 +45,7 @@ impl<'a> TranslatedContent<'a> {
lang: &other.lang, lang: &other.lang,
permalink: &other.permalink, permalink: &other.permalink,
title: &other.meta.title, title: &other.meta.title,
path: &other.file.path,
}); });
} }

View file

@ -132,5 +132,8 @@ lang: String?;
title: String?; title: String?;
// A permalink to that content // A permalink to that content
permalink: String; permalink: String;
// The path to the markdown file; useful for retrieving the full page through
// the `get_page` function.
path: String;
``` ```

View file

@ -4,6 +4,12 @@ Language: {{lang}}
{% for t in page.translations %} {% for t in page.translations %}
Translated in {{t.lang|default(value=config.default_language)}}: {{t.title}} {{t.permalink|safe}} Translated in {{t.lang|default(value=config.default_language)}}: {{t.title}} {{t.permalink|safe}}
<br><br>
{% set translated_page = get_page(path = t.path) %}
{{ translated_page.content | safe }}
{% endfor %} {% endfor %}
{% for taxo_kind, items in page.taxonomies %} {% for taxo_kind, items in page.taxonomies %}