131 lines
3.3 KiB
ReStructuredText
131 lines
3.3 KiB
ReStructuredText
|
:title: Variables
|
|||
|
:date: 2022-09-22
|
|||
|
|
|||
|
=========
|
|||
|
Variables
|
|||
|
=========
|
|||
|
|
|||
|
The following variables are passed to the template. Еach variable corresponds
|
|||
|
to a data source, which is described in the previous article.
|
|||
|
|
|||
|
``page``: dict
|
|||
|
Dictonary with article attributes. Data structure example:
|
|||
|
|
|||
|
.. code-block:: python
|
|||
|
|
|||
|
page = {
|
|||
|
'title': 'Variables',
|
|||
|
'date': '2022-09-22',
|
|||
|
}
|
|||
|
|
|||
|
Note that the ``type`` and ``template`` keys are missing. These keys are
|
|||
|
added implicitly. The ``page`` dict will always contain only the data
|
|||
|
specified directly in the article.
|
|||
|
|
|||
|
Here ``type`` and ``template`` fallbacks to defaults:
|
|||
|
|
|||
|
.. code-block:: text
|
|||
|
|
|||
|
'template': `template.jinja2`
|
|||
|
'type': 'page',
|
|||
|
|
|||
|
Usage example:
|
|||
|
|
|||
|
.. code-block:: jinja
|
|||
|
|
|||
|
<h1>{{ page.title }}</h1>
|
|||
|
|
|||
|
``site``: dict
|
|||
|
Dict of values from ``site`` section from **settings.toml**. The structure
|
|||
|
and data types can be arbitrary.
|
|||
|
|
|||
|
This data can be used to add custom elements common to the entire site.
|
|||
|
Below is an example of adding a list of links.
|
|||
|
|
|||
|
.. code-block:: toml
|
|||
|
|
|||
|
[site]
|
|||
|
title = 'My awesome site'
|
|||
|
description = 'Awesome site about awesome things'
|
|||
|
|
|||
|
[[site.links]]
|
|||
|
title = 'GitHub'
|
|||
|
url = 'https://github.com/username'
|
|||
|
|
|||
|
[[site.links]]
|
|||
|
title = 'Twitter'
|
|||
|
url = 'https://twitter.com/username'
|
|||
|
|
|||
|
This data is serialized into a dictionary with the following structure:
|
|||
|
|
|||
|
.. code-block:: python
|
|||
|
|
|||
|
site = {
|
|||
|
'title': 'My awesome site',
|
|||
|
'description': 'Awesome site about awesome things',
|
|||
|
'links': [
|
|||
|
{
|
|||
|
'title': 'GitHub',
|
|||
|
'url': 'https://github.com/username',
|
|||
|
},
|
|||
|
{
|
|||
|
'title': 'Twitter',
|
|||
|
'url': 'https://twitter.com/username',
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
In template:
|
|||
|
|
|||
|
.. code-block:: jinja
|
|||
|
|
|||
|
{% for link in site.links %}
|
|||
|
<a href="{{ link.url }}">{{ link.title }} </a>
|
|||
|
{% endfor %}
|
|||
|
|
|||
|
``aggr``: dict
|
|||
|
This dictonary contains list of posts and list of pages. The elements of
|
|||
|
each list consist of dictionaries with strings.
|
|||
|
|
|||
|
Structure of the ``aggr`` dictonary:
|
|||
|
|
|||
|
.. code-block:: python
|
|||
|
|
|||
|
aggr = {
|
|||
|
'posts': [
|
|||
|
{
|
|||
|
'title': 'Hello, World!',
|
|||
|
'date': '1970-01-01',
|
|||
|
'type': 'post'
|
|||
|
},
|
|||
|
{
|
|||
|
'title': 'reStructuredText Example',
|
|||
|
'date': '1970-01-01',
|
|||
|
'type': 'post'
|
|||
|
}
|
|||
|
],
|
|||
|
'pages': [
|
|||
|
{
|
|||
|
'title': 'Variables',
|
|||
|
'date': '2022-09-22'
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
|
|||
|
These lists are applicable, for example, to display a list of posts on the
|
|||
|
blog's main page.
|
|||
|
|
|||
|
``pygments_theme``: str
|
|||
|
A string containing the name of the Pygments theme. In **settings.toml**:
|
|||
|
|
|||
|
.. code-block:: toml
|
|||
|
|
|||
|
[pygments]
|
|||
|
theme = 'rrt'
|
|||
|
|
|||
|
The default theme is ``default``. An example of usage in a template:
|
|||
|
|
|||
|
.. code-block:: jinja
|
|||
|
|
|||
|
<link rel="stylesheet" href="/css/pygments/{{ pygments_theme }}.css">
|