Version: | 8.3.1 |
---|---|
Author: | Chris Warrick <chris@getnikola.com> |
Variables available in templates are listed below.
Variables and functions come from three places:
Some variables on the global variables list may be None (the ? symbol is not used).
Name | Type | Description |
---|---|---|
_link | function | Nikola.link function |
abs_link | function | Nikola.abs_link function |
atom_path | TranslatableSetting[str] | ATOM_PATH setting |
author_pages_generated | bool | False |
blog_author | TranslatableSetting[str] | BLOG_AUTHOR setting |
blog_email | str | BLOG_EMAIL setting |
blog_description | TranslatableSetting[str] | BLOG_DESCRIPTION setting |
blog_title | TranslatableSetting[str] | BLOG_TITLE setting |
blog_url | str | SITE_URL setting |
body_end | TranslatableSetting[str] | BODY_END setting |
colorize_str_from_base_color | function | utils.colorize_str_from_base_color function |
color_hsl_adjust_hex | function | utils.color_hsl_adjust_hex function |
comment_system_id | str | COMMENT_SYSTEM_ID setting |
comment_system | str | COMMENT_SYSTEM setting |
content_footer | TranslatableSetting[str] | CONTENT_FOOTER setting |
data | dict | data files (from the data/ directory) |
date_fanciness | int | DATE_FANCINESS setting |
date_format | TranslatableSetting[str] | DATE_FORMAT setting |
exists | function | Nikola.file_exists function |
extra_head_data | TranslatableSetting[str] | EXTRA_HEAD_DATA setting |
favicons | tuple | FAVICONS setting |
front_index_header | TranslatableSetting[str] | FRONT_INDEX_HEADER setting |
generate_atom | bool | GENERATE_ATOM setting |
generate_rss | bool | GENERATE_RSS setting |
global_data | dict | alias for data |
has_custom_css | bool | True if custom.css exists |
hidden_authors | list[str] | HIDDEN_AUTHORS setting |
hidden_categories | list[str] | HIDDEN_CATEGORIES setting |
hidden_tags | list[str] | HIDDEN_TAGS setting |
hide_sourcelink | bool | SHOW_SOURCELINK setting, negated |
index_display_post_count | int | INDEX_DISPLAY_POST_COUNT setting |
index_file | str | INDEX_FILE setting |
js_date_format | TranslatableSetting[str] | MOMENTJS_DATE_FORMAT setting, JSONified |
katex_auto_render | str | KATEX_AUTO_RENDER setting |
license | TranslatableSetting[str] | LICENSE setting |
logo_url | str | LOGO_URL setting |
luxon_date_format | TranslatableSetting[str] | LUXON_DATE_FORMAT setting, JSONified |
mathjax_config | str | MATHJAX_CONFIG setting |
messages | dict[dict[str, str]] | translated messages ({language: {english: translated}}) |
meta_generator_tag | bool | META_GENERATOR_TAG setting |
momentjs_locales | defaultdict[str, str] | dictionary of available Moment.js locales |
multiple_authors_per_post | bool | MULTIPLE_AUTHORS_PER_POST setting |
navigation_links | TranslatableSetting | NAVIGATION_LINKS setting |
navigation_alt_links | TranslatableSetting | NAVIGATION_ALT_LINKS setting |
needs_ipython_css | bool | whether or not Jupyter CSS is needed by this site |
rel_link | function | Nikola.rel_link function |
rss_link | str | RSS_LINK setting |
search_form | TranslatableSetting[str] | SEARCH_FORM setting |
set_locale | function | LocaleBorg.set_locale function (or None if not available) |
show_blog_title | bool | SHOW_BLOG_TITLE setting |
show_sourcelink | bool | SHOW_SOURCELINK setting |
site_has_comments | bool | whether or not a comment system is configured |
social_buttons_code | TranslatableSetting[str] | SOCIAL_BUTTONS_CODE setting |
sort_posts | function | utils.sort_posts function |
smartjoin | function | utils.smartjoin function |
colorize_str | function | utils.colorize_str function |
template_hooks | dict[str, TemplateHookRegistry] | Template hooks registered by plugins |
theme_color | str | THEME_COLOR setting |
theme_config | dict | THEME_CONFIG setting |
timezone | tzinfo | Timezone object (represents the configured timezone) |
translations | dict[str, str] | TRANSLATIONS setting |
twitter_card | dict | TWITTER_CARD setting, defaults to an empty dictionary |
url_replacer | function | Nikola.url_replacer function |
url_type | str | URL_TYPE setting |
use_bundles | bool | USE_BUNDLES setting |
use_cdn | bool | USE_CDN setting |
use_katex | bool | USE_KATEX setting |
subtheme | str? | THEME_REVEAL_CONFIG_SUBTHEME setting (only if set — deprecated) |
transition | str? | THEME_REVEAL_CONFIG_TRANSITION setting (only if set — deprecated) |
Those variables are available on all pages, but their contents are dependent on page contents.
Name | Type | Description |
---|---|---|
description | str | Description of the page |
is_rtl | bool | Whether or not the language is left-to-right |
lang | str | Current language |
pagekind | list[str] | List of strings that identify the type of this page (docs) |
title | str | Title of the page (taken from post, config, etc.) |
formatmsg | function | Wrapper over % string formatting |
striphtml | function | Strips HTML tags (Mako only) |
crumbs | list | Breadcrumbs for this page |
Name | Type | Description |
---|---|---|
post | Post | The post object |
permalink | str | Permanent link to the post |
enable_comments | bool | True for posts, COMMENTS_IN_PAGES setting for pages |
Name | Type | Description |
---|---|---|
posts | list[Post] | List of post objects that appear in this list |
prevlink | str | Link to previous page |
nextlink | str | Link to next page |
Name | Type | Description |
---|---|---|
posts | list[Post] | List of post objects that appear in this list |
index_teasers | bool | INDEX_TEASERS setting |
show_index_page_navigation | bool | SHOW_INDEX_PAGE_NAVIGATION setting |
current_page | int | Number of current page |
page_links | list[str] | Links to different pages |
prevlink | str | Link to previous page |
nextlink | str | Link to next page |
prevfeedlink | str | Link to previous page as an Atom feed |
nextfeedlink | str | Link to next page as an Atom feed |
prev_next_links_reversed | bool | Whether or not previous and next links should be reversed (INDEXES_STATIC) |
is_frontmost_index | bool | Whether or not this is the front-most index (page 0) |
Variable names enclosed in {} are dependent on the taxonomy.
Taxonomy | Variable | Value |
---|---|---|
archive | overview_page_variable_name | archive |
author | overview_page_variable_name | authors |
category | overview_page_variable_name | categories |
category | overview_page_items_variable_name | cat_items |
category | overview_page_hierarchy_variable_name | cat_hierarchy |
index | overview_page_variable_name | unavailable (None) |
page_index_folder | overview_page_variable_name | page_folder |
tag | overview_page_variable_name | tags |
tag | overview_page_items_variable_name | items |
Taxonomy | Has hierarchy | List (one classification) template | Index (one classification) template | Overview (list of classifications) template | Subcategories list template | List is an index | Show as list of subcategories |
---|---|---|---|---|---|---|---|
(default settings) | no | tagindex.tmpl | tagindex.tmpl | list.tmpl | taxonomy_list.tmpl (does not exist) | no | no |
archive | yes (0-3 levels) | list_post.tmpl | archiveindex.tmpl | list.tmpl | list.tmpl | ARCHIVES_ARE_INDEXES | not CREATE_FULL_ARCHIVES |
author | no | author.tmpl | authorindex.tmpl | authors.tmpl | n/a | AUTHOR_PAGES_ARE_INDEXES | no |
category | yes | tag.tmpl | tagindex.tmpl | tags.tmpl (with tags) | n/a | CATEGORY_PAGES_ARE_INDEXES | n/a |
index | no | n/a | index.tmpl | n/a | n/a | yes | no |
page_index_folder | yes | list.tmpl | n/a | n/a | n/a | no | no |
tag | no | tag.tmpl | tagindex.tmpl | tags.tmpl (with categories) | n/a | TAG_PAGES_ARE_INDEXES | no |
Hierarchy-related variables are available if and only if has_hierarchy is True.
Name | Type | Description |
---|---|---|
{overview_page_variable_name} | str | List of classifications |
{overview_page_items_variable_name} | list | List of items (name, link) |
{overview_page_items_variable_name + "_with_postcount"} | list | List of items (name, link, number of posts) |
{overview_page_hierarchy_variable_name} | list? | List of hierarchies (name, full name, path, link, indent levels, indent to change before, indent to change after) |
{overview_page_hierarchy_variable_name + "_with_postcount"} | list? | List of hierarchies, with added counts (name, full name, path, link, indent levels, indent to change before, indent to change after, number of children, number of posts) |
has_hierarchy | bool | Value of has_hierarchy for the taxonomy |
permalink | str | Permanent link to page |
Name | Type | Description |
---|---|---|
kind | str | The classification name |
items | list? | List of items for list.tmpl (title, permalink, None) |
posts | list[Post]? | List of items for other templates |
permalink | str | Permanent link to page |
other_languages | list[tuple] | List of triples (other_lang, other_classification, title) |
Index-style classification pages have kind in addition to the usual index variables.
Name | Type | Description |
---|---|---|
items | list? | List of items |
permalink | str | Permanent link to page |
other_languages | list[tuple] | List of triples (other_lang, other_classification, title) |
The indenting information can be used to render the items as a tree. The values have the following meanings:
- indent levels is a list of pairs (current_i, count_i) giving the current position (0, ..., count_i-1) and maximum (count_i) in the hierarchy level i;
- indent to change before is the difference of hierarchy levels between the previous and the current item; positive values indicate that the current item is indented further in and can be used to open HTML tags before the item;
- indent to change after is the difference of hierarchy levels between the current and the next item; negative values indicate that the current item is indented further in and can be used to close HTML tags after the item.
Example:
+--- levels:[(0,3)], before:1, after:0 +-+- levels:[(1,3)], before:0, after:1 | +--- levels:[(1,3), (0,2)], before:1, after:0 | +-+- levels:[(1,3), (1,2)], before:0, after:1 | +--- levels:[(1,3), (1,2), (0, 1)], before:1, after:-2 +-+- levels:[(2,3)], before:-2, after:1 +- levels:[(2,3), (0,1)], before:1, after:-2
See tags.tmpl in the base themes for examples on how to render a tree as nested unordered lists in HTML.
The archive navigation variables are available only if create_archive_navigation is True.
Name | Type | Description |
---|---|---|
kind | str | Always "archive" |
archive_name | str? | Name of the archive (only if using indexes) |
create_archive_navigation | bool | CREATE_ARCHIVE_NAVIGATION setting |
has_archive_navigation | bool | Whether or not archive navigation is available |
up_archive | str? | Link to the archive one level up |
up_archive_name | str? | Name of the archive one level up |
previous_archive | str? | Link to the previous archive |
previous_archive_name | str? | Name of the previous archive |
next_archive | str? | Link to the next archive |
next_archive_name | str? | Name of the next archive |
archive_nodelevel | int? | Level of the archive |
other_languages | list | List of tuples (lang, path, name) of same archive in other languages |
Name | Type | Description |
---|---|---|
kind | str | Always "author" |
author | str | Author name |
rss_link | str | Link to RSS (HTML fragment) |
other_languages | list[tuple] | List of tuples (lang, author, name) of same author in other languages |
Name | Type | Description |
---|---|---|
kind | str | Always "category" |
category | str | Category name |
category_path | list[str] | Category hierarchy |
rss_link | str? | Link to RSS (HTML fragment, only if using indexes) |
subcategories | list | List of subcategories (contains name, link tuples) |
tag | str | Friendly category name |
other_languages | list[tuple] | List of tuples (lang, category, name) of same category in other languages |
Name | Type | Description |
---|---|---|
crumbs | list | Breadcrumbs for this page |
enable_comments | bool | Whether or not comments are enabled in galleries |
folders | list | List of folders (contains path, title tuples) |
permalink | str | Permanent link to this page |
photo_array | list | Photo array (contains dicts with image data: url, url_thumb, title, size{w, h}) |
photo_array_json | str | Photo array in JSON format |
post | Post? | The Post object for this gallery |
thumbnail_size | int | THUMBNAIL_SIZE setting |
Name | Type | Description |
---|---|---|
code | str | Highlighted source code (HTML fragment) |
crumbs | list | Breadcrumbs for this page |
folders | list[str] | List of subfolders |
files | list[str] | List of files in the folder |
source_link | str | Link to the source file |
Name | Type | Description |
---|---|---|
kind | str | Always "tag" |
tag | str | Tag name |
other_languages | list[tuple] | List of tuples (lang, tag, name) of same tag in other languages |
Name | Type | Description |
---|---|---|
items | list | Tags (name, link) |
cat_items | list | Categories (name, full name, path, link, indent levels, indent to change before, indent to change after) |
category_titles | dict | CATEGORY_TITLES setting (dict for the current language only) |
category_descriptions | dict | CATEGORY_DESCRIPTIONS setting (dict for the current language only) |
tag_titles | dict | TAG_TITLES setting (dict for the current language only) |
tag_descriptions | dict | TAG_DESCRIPTIONS setting (dict for the current language only) |
For more details about hierarchies, see Hierarchical lists
The global context is available in templated shortcodes.
Name | Type | Description |
---|---|---|
lang | str | Current language |
_args | list[str] | Arguments given to the shortcode |
data | str | Shortcode contents |
post | Post | Post object (if available) |
filename | str? | file name, if shortcode_function.nikola_shortcode_pass_filename = True |
The global context is NOT available in post lists.
Name | Type | Description |
---|---|---|
posts | list[Post] | Posts that are on the list |
lang | str | Current language |
date_format | str | The date format for current language |
post_list_id | str | GUID of post list |
messages | dict | The messages dictionary |
_link | function | Nikola.link function |
Usable anywhere post objects are accessible.
This list only includes variables that make sense for templates. Some function signatures have been shortened to save space, ? means the argument has default value.
More docs: nikola.post.Post on ReadTheDocs. Check out the source of the Post class as well.
Name | Type | Description |
---|---|---|
alltags | list[str] | All tags for the post |
author(lang=None) | str | Localized author or BLOG_AUTHOR |
base_path | str | cache path with local os.sep |
category_from_destpath | bool | If category was set by CATEGORY_DESTPATH_AS_DEFAULT |
data(key, lang=None) | ? | Access to post data |
date | datetime | Date of post (from meta) |
description(key, lang=None) | str | Description of post (from meta) |
destination_path(lang?, extension?, sep?) | str | Destination path of post |
formatted_date(date_format, date=None) | str | Format a date (default: post date) |
formatted_updated(date_format) | str | Format the last update date |
guid(lang=None) | str | GUID of post (used for feeds) |
has_math | bool | If the post has math |
has_pretty_url(lang) | bool | If the post has a pretty URL |
is_draft | bool | If the post is a draft |
is_post | bool | If the post is not a page |
is_private | bool | If the post is private |
is_translation_available(lang) | bool | If the post is available in (translated to) a given language |
is_two_file | bool | If the post uses two-file metadata |
meta(key, lang=None) | ? | Metadata of the post (assumes current language) |
next_post | Post | Next post in the order |
paragraph_count | int | Paragraph count for a post |
permalink(lang?, absolute?, extension?, query?) | str | Permanent link for a post |
post_name | str | Source path, without extension |
post_status | str | Post status meta field (published, featured, private, draft) |
prev_post | Post | Previous post in the order |
previewimage | str | Preview image of the post |
publish_later | bool | True if the post is not yet published (due to date) |
reading_time | int | Approximate reading time in minutes (220 wpm) |
remaining_paragraph_count | int | Paragraph count after the teaser |
remaining_reading_time | int | Reading time after the teaser |
source_link | str | Absolute link to the post's source |
tags | list[str] | Tags for the current language |
tags_for_language(lang) | list[str] | Tags for a given language |
text(lang?, teaser_only?, strip_html?, show_read_more_link?, …) | str | The text of a post |
title(lang=None) | str | Localized title of post |
translated_to | list[str] | List of languages of post |
updated | datetime | Date of last update (from meta) |
use_in_feeds | bool | If this post should be displayed in feeds |