Article is a complex content type, with title, excerpt and body. Articles are available through blog object, which is a "container" of articles.

Availability of articles

Articles are available on pages which are in "News & Blog" type. On a page of that kind, you can iterate over multiple articles like this

See also

Availability of articles

On blog page template, articles in this blog are available as an array:

{% for article in articles %}
  <h1>{{ article.title }}</h1>
    {{ article.body }}
{% endfor %}

Single article is available on article page (which, in turn, derives "News & Blog" page). On single article page you can use article variable directly. You can also make these values editable on article page: 

<h1>{% editable article.title %}</h1>
  {% editable article.body %}

Latest articles

There is also a accessor method on site to get latest 10 articles on site simply by using

{% for article in site.latest_articles %}
  <b>{{ article.title }}</b><br>
{% endfor %}

To display only the latest article, limit keyword in for tag can be used

{% for latest_article in site.latest_articles limit: 1 %}
  <b>{{ latest_article.title }}<b/><br>;
{% endfor %}


Article may also have comments. See comments function for accessing them and how to use comments.

List of available attributes


Returns person object to access author properties


Returns body of this article


Returns all published comments in order of their creation time.

For example, looping through all the comments for current article:

{% for comment in article.comments %}
  <p>{{ comment.body }}</p>
{% endfor %}


Number of comments associated with this article

This article has <b>{{ article.comments_count }} comments</b>.


Returns URL where new comments for this article should be submitted to in a POST request. Used to build comment forms.

<form action="{{ article.comments_url }}" method="post">...</form>


Date object representing when this article has been created. Use date filter to format it.

{{ article.created_at | date:"%d.%m.%Y" }}


Returns custom data bound to article.


Returns the description of this article.


Returns excerpt of this article.


Returns related article object ID.


Returns image object that can be attached to article in article settings view.


Returns true or false depending whether image is attached to article.


Returns true if article is not saved to database.

Needed for binding additional content areas to article because additional bindings can occur only if article already exists.

{% unless article.new_record? %}
  {% content name="blogarticle_more_content" bind="Article" %}
{% endunless %}


Returns the next (newer) article in the same blog.

{% if article.newer %}
<a href="{{ article.newer.url }}">{{ article.newer.title }}</a>
{% endif %}


Returns the previous (older) article in the same blog.

{% if article.older %}
<a href="{{ article.older.url }}">{{ article.older.title }}</a>
{% endif %}


Returns page object of blog page containing the article. Useful if multiple blogs and site.latest_articles list should differentiate visually blog origin.


Returns true when article is published. Useful for distinguishing between published articles in the blog list view.


Returns list of tags associated with this article. See tag documentation for more details.

{% editable article.tags %}


Returns list of tag names associated with this article. Can be used for quick access to tag name list:

{% for tagname in article.tag_names %}
  {{ tagname }}
{% endfor %}

#=> tag1 tag2

If you want to join tag names with commas, you can also use join filter:

{{ article.tag_names | join: ", " }}

#=> tag1, tag2


Same as above, but shorter -- it returns list of tag names joined with commas immediately.

{{ article.tag_names_str }}

#=> tag1, tag2


Returns title of this article.


Returns article full title for <title> tag value. It's created by article title and site title using article title_separator and title_format with fallback to defaults (site or system default values).

<html><head><title>{{ article.full_title }}</title></head>...</html>

  => <html><head><title>Current article – My site</title></head>...</html>


Returns article <title> tag separator override value used by full_title. When empty then site (or system default) value is used instead.


Returns <title> tag separator value for article with fallback to defaults (site or system default ("–") values).


Returns article <title> tag format override value used by full_title. When empty then site (or system default) value is used instead.

Supported values and their corresponding patterns:

  • page_site<page_title> <separator> <site_title>
  • site_page<site_title> <separator> <page_title>
  • page<page_title>
  • site<site_title>


Returns <title> tag format patten for article with fallback to defaults (site or system default (<page_title> <separator> <site_title>) values)


Date object representing when this article has been updated. Use date filter to format it.

{{ article.updated_at | date: "%d.%m.%Y" }}


Full path for this article.

<a href="{{ article.url }}">{{ article.title }}</a>

=> <a href="/blog/article_path">Article title</a>


Serializes the article to a JSON string