added language (a config value) and character set to default template

This commit is contained in:
Amy G. Bowersox 2024-08-15 00:36:59 -06:00
parent 69012044f8
commit 17a9ed1273
4 changed files with 25 additions and 12 deletions

View File

@ -56,6 +56,8 @@ stylesheet = "dragonglass.css"
[metadata] [metadata]
# If true, use page title as default description. # If true, use page title as default description.
description-title = false 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 <base> element in the page metadata. # The site base URL. If supplied, this will be added to a <base> element in the page metadata.
sitebase = "" sitebase = ""
# The site title. If supplied, this will be included in page metadata and used to formulate the default title. # The site title. If supplied, this will be included in page metadata and used to formulate the default title.

View File

@ -1,20 +1,23 @@
TEMPLATE VARIABLES PROVIDED BY DRAGONGLASS WHEN RENDERING A DOCUMENT 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 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. 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 The filename of the default stylesheet which is generated by dragonglass and added to the
generated pages. generated pages.
description description:
The description of this page. May be empty. The description of this page. May be empty.
dragonglass_version dragonglass_version:
The version number of dragonglass. 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. The version number of Python that's running dragonglass.
site_base: site_base:
@ -26,8 +29,8 @@ site_title:
tags: tags:
A list of all tags the page being rendered has, in sorted order. A list of all tags the page being rendered has, in sorted order.
text text:
The text of the page being rendered. The text of the page being rendered.
title title:
The title of the page being rendered. The title of the page being rendered.

View File

@ -121,14 +121,20 @@ class Context:
@property @property
def site_base(self) -> str | None: def site_base(self) -> str | None:
"""Returns the configured site base URL.""" """Returns the configured site base URL."""
generate_section = self.config.get("metadata", {}) metadata_section = self.config.get("metadata", {})
return generate_section.get("sitebase", None) 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 @property
def site_title(self) -> str | None: def site_title(self) -> str | None:
"""Returns the configured site title.""" """Returns the configured site title."""
generate_section = self.config.get("metadata", {}) metadata_section = self.config.get("metadata", {})
return generate_section.get("sitetitle", None) return metadata_section.get("sitetitle", None)
@property @property
def url_prefix(self) -> str: def url_prefix(self) -> str:

View File

@ -13,7 +13,7 @@ from ._version import __version__
"""The default template used to render Markdown data.""" """The default template used to render Markdown data."""
DEFAULT_TEMPLATE = """<html> DEFAULT_TEMPLATE = """<html lang="{{ lang }}">
<head> <head>
{% if site_title is defined %} {% if site_title is defined %}
<title>{{ title }} - {{ site_title }}</title> <title>{{ title }} - {{ site_title }}</title>
@ -21,6 +21,7 @@ DEFAULT_TEMPLATE = """<html>
{% else %} {% else %}
<title>{{ title }}</title> <title>{{ title }}</title>
{% endif %} {% endif %}
<meta charset="utf-8"/>
{% if site_base is defined %} {% if site_base is defined %}
<base href="{{ site_base }}"/> <base href="{{ site_base }}"/>
{% endif %} {% 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]}" tenv.globals["python_version"] = f"{sys.version_info[0]}.{sys.version_info[1]}.{sys.version_info[2]}"
# Add values derived from configuration. # Add values derived from configuration.
tenv.globals["lang"] = ctxt.site_language
t = ctxt.site_base t = ctxt.site_base
if t: if t:
tenv.globals["site_base"] = t tenv.globals["site_base"] = t