diff --git a/doc/configuration.toml b/doc/configuration.toml
index 14ad2b0..fc0a516 100644
--- a/doc/configuration.toml
+++ b/doc/configuration.toml
@@ -56,6 +56,8 @@ stylesheet = "dragonglass.css"
[metadata]
# If true, use page title as default description.
description-title = false
+# The language of the site, expressed as a RFC5646 language identifier.
+lang = "en"
# The site base URL. If supplied, this will be added to a element in the page metadata.
sitebase = ""
# The site title. If supplied, this will be included in page metadata and used to formulate the default title.
diff --git a/doc/template-vars.txt b/doc/template-vars.txt
index bc7e50b..347f0f3 100644
--- a/doc/template-vars.txt
+++ b/doc/template-vars.txt
@@ -1,20 +1,23 @@
TEMPLATE VARIABLES PROVIDED BY DRAGONGLASS WHEN RENDERING A DOCUMENT
-backlinks
+backlinks:
A list of pages that link to the page being rendered. Formatted as a list of dicts with
two elements, "name" and "link", containing the page title and the link to it, respectively.
-default_stylesheet
+default_stylesheet:
The filename of the default stylesheet which is generated by dragonglass and added to the
generated pages.
-description
+description:
The description of this page. May be empty.
-dragonglass_version
+dragonglass_version:
The version number of dragonglass.
-python_version
+lang:
+ The configured site language, as a RFC5646 language identifier.
+
+python_version:
The version number of Python that's running dragonglass.
site_base:
@@ -26,8 +29,8 @@ site_title:
tags:
A list of all tags the page being rendered has, in sorted order.
-text
+text:
The text of the page being rendered.
-title
+title:
The title of the page being rendered.
diff --git a/src/dragonglass/config.py b/src/dragonglass/config.py
index f5fae20..bb3a7a1 100644
--- a/src/dragonglass/config.py
+++ b/src/dragonglass/config.py
@@ -121,14 +121,20 @@ class Context:
@property
def site_base(self) -> str | None:
"""Returns the configured site base URL."""
- generate_section = self.config.get("metadata", {})
- return generate_section.get("sitebase", None)
+ metadata_section = self.config.get("metadata", {})
+ return metadata_section.get("sitebase", None)
+
+ @property
+ def site_language(self) -> str:
+ """Returns the defayult language for the site."""
+ metadata_section = self.config.get("metadata", {})
+ return metadata_section.get("lang", "en")
@property
def site_title(self) -> str | None:
"""Returns the configured site title."""
- generate_section = self.config.get("metadata", {})
- return generate_section.get("sitetitle", None)
+ metadata_section = self.config.get("metadata", {})
+ return metadata_section.get("sitetitle", None)
@property
def url_prefix(self) -> str:
diff --git a/src/dragonglass/template.py b/src/dragonglass/template.py
index 67bf471..8f2c236 100644
--- a/src/dragonglass/template.py
+++ b/src/dragonglass/template.py
@@ -13,7 +13,7 @@ from ._version import __version__
"""The default template used to render Markdown data."""
-DEFAULT_TEMPLATE = """
+DEFAULT_TEMPLATE = """
{% if site_title is defined %}
{{ title }} - {{ site_title }}
@@ -21,6 +21,7 @@ DEFAULT_TEMPLATE = """
{% else %}
{{ title }}
{% endif %}
+
{% if site_base is defined %}
{% endif %}
@@ -112,6 +113,7 @@ def create_template_environment(ctxt: Context) -> Environment:
tenv.globals["python_version"] = f"{sys.version_info[0]}.{sys.version_info[1]}.{sys.version_info[2]}"
# Add values derived from configuration.
+ tenv.globals["lang"] = ctxt.site_language
t = ctxt.site_base
if t:
tenv.globals["site_base"] = t