Page updated.

Blog variables

Insert a variable in a post or page to display live blog information. Choose Variables or use /variable in either editor. In Markdown, type {{ to search: arrows select, Enter or Tab inserts, and Escape dismisses.

Put post lists, page lists, tags, and the table of contents in their own paragraph. Other variables work within sentences. Code, escaped braces, link labels, and link destinations stay literal.

Examples

{{ posts limit: 5 tag: "Notes" }}

Lists accept limit (1–50, default 10), skip (0–5000), tag (exact name in quotes), year (four digits), and sort (newest, oldest, or alpha). Lists contain published entries from this blog only. They are bounded lists, not paginated archives.

© {{ year }} {{ author_name }}

Footer notes support plain-text variables such as year, blog_title, and author_name. Dates use UTC. Pro custom variables can reference other text variables. No HTML, scripts or loops are evaluated. Unknown variables or invalid options stay visible so you can correct them.

Custom variables · Pro

In your blog’s Settings → Variables, add a name and reusable text. Insert it from the Variables menu, the /variable command, or by typing {{ in Markdown.

email = hello@example.com
sub_msg = Please subscribe at {{ email }}

Use in a post: {{ sub_msg }}

Values can reference other custom variables or built-in text variables. Saving updates existing posts when they next load; republishing is not needed. Values are public, not secret storage. Built-ins cannot be overwritten.

Render as Markdown is on by default. It supports links (including email links), bold, italics and inline code after nested references resolve. Turn it off for literal text; that choice is respected inside other variables too. Raw HTML, JavaScript and images are not rendered. Footer notes remain plain text. Missing names and circular references produce author warnings. Nesting is limited to eight levels, with bounded expansion size.

Renaming or removing a variable does not rewrite references in articles. Saved definitions keep rendering after a Pro downgrade; creating or changing them requires Pro.

Built-in variables · Free

Use {{ reading_time }} in a post or page for an estimate such as ‘3 min read’. It updates with the article, rounds up to at least one minute, and stays empty outside a post or page. The estimate uses roughly 200 words or 400 Chinese, Japanese or Korean characters per minute, excluding image markup, link destinations and variable tokens.

{{ posts limit: 5 }}
Recent posts
{{ posts_by_year limit: 50 }}
Posts grouped by year
{{ pages }}
Published pages
{{ tags }}
Links to post tags
{{ table_of_contents }}
Linked article headings
{{ previous_post }}
Previous (older) post
{{ next_post }}
Next (newer) post
{{ blog_title }}
Blog title
{{ blog_description }}
Blog description
{{ blog_url }}
Blog address
{{ blog_language }}
Blog language
{{ blog_created_date }}
Blog creation date
{{ blog_updated_date }}
Blog update date
{{ author_name }}
Public author name
{{ author_handle }}
Public author handle
{{ post_title }}
Current post or page title
{{ reading_time }}
Estimated reading time
{{ post_description }}
Current post or page summary
{{ post_url }}
Current post or page address
{{ post_language }}
Current post or page language
{{ post_published_date }}
Publication date
{{ post_updated_date }}
Post or page update date
{{ post_count }}
Published post count
{{ page_count }}
Published page count
{{ year }}
Current year (UTC)
{{ rss_url }}
RSS feed address
{{ atom_url }}
Atom feed address