rSW/docs/content/variables.rst
2022-09-30 14:24:39 +03:00

131 lines
3.3 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

: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">