Dynamic Variables for Pages

Pages in Pagecord support dynamic variables that let you automatically display lists of posts, tags, and other content. These variables are processed when the page is rendered, so your content stays up-to-date without manual editing.

Basic Syntax

Dynamic variables use double curly braces:

{{ variable_name }}

You can add parameters using a colon:

{{ variable_name | param: value }}

Multiple parameters are separated by pipes:

{{ variable_name | param1: value1 | param2: value2 }}

Available Variables

Posts

Display a list of your posts with dates and links.

Basic usage

{{ posts }}

With a limit

{{ posts | limit: 10 }}

Filter by tag

{{ posts | tag: photography }}

Filter by multiple tags

Shows posts matching any of the tags

{{ posts | tag: photography, travel }}

Filter by year

{{ posts | year: 2025 }}

Sort order

By default, posts are shown newest first. Use sort: asc to show oldest first — useful for chronological archives.

{{ posts | sort: asc }}

Exclude posts with a tag

{{ posts | without_tag: personal }}

Exclude posts with multiple tags

{{ posts | without_tag: personal, draft }}

Only posts with a title

{{ posts | title: true }}

Only posts without a title

{{ posts | title: false }}

Only posts sent in a newsletter

{{ posts | emailed: true }}

Only posts not sent in a newsletter

{{ posts | emailed: false }}

Combine parameters

{{ posts | limit: 5 | tag: photography }}

Posts by Year

Display posts grouped by year with headers — perfect for archive pages.

Basic usage

{{ posts_by_year }}

Filter by tag

{{ posts_by_year | tag: photography }}

Exclude posts with a tag

{{ posts_by_year | without_tag: personal }}

Only posts with a title

{{ posts_by_year | title: true }}

Only posts sent as newsletter

{{ posts_by_year | emailed: true }}

Sort order

Show years in chronological order (oldest first) instead of the default newest first.

{{ posts_by_year | sort: asc }}

Tags

Display a list of all tags used in your posts.

As a bullet list

{{ tags }}

Inline (comma-separated)

{{ tags | style: inline }}

Last Updated Date

Display the date the page was last updated. This is handy for pages that evolve over time, such as a Now page or a reading log.

{{ updated_at }}

By default, the date is shown in your blog's locale format. Use the format parameter for a specific style:

Format Example
(default) 12 Sep 2026 (locale-specific)
datetime 12 Sep 2026 14:30 (locale-specific + time)
long 12 September 2026 (English only)
long_datetime 12 September 2026 14:30 (English only)
dd_mm_yyyy 12/09/2026
mm_dd_yyyy 09/12/2026
yyyy_mm_dd 2026-09-12
{{ updated_at format: datetime }}

Note: long and long_datetime always display month names in English. For non-English blogs, use the default or a numeric format.

You can style the output with the CSS class updated-at.

Email Subscription

Embed an email subscription form for readers to subscribe to your blog (premium customers only).

{{ email_subscription }}

Note: This only appears if you have email subscriptions enabled in your blog settings.

Contact Form

Embed a contact form so readers can send you a message directly from your blog.

{{ contact_form }}

Note: This is a premium feature and only appears for subscribers and users on a free trial.

Examples

Simple Archive Page

Create a page called "Archive" with this content:

Here's everything I've written:

{{ posts_by_year }}

Recent Posts on your Home Page

My latest Posts

{{ posts | limit: 5 }}

Topic Index

My Photography Posts

{{ posts | tag: photography }}

My Travel Posts

{{ posts | tag: travel }}

Browse posts by topic:

{{ tags }}

Tips

  • Dynamic variables only work in pages, not blog posts
  • If a variable isn't recognized, it will appear as-is in your content
  • The posts list automatically excludes unpublished and scheduled posts
  • Tags are sorted alphabetically