Developers

Article

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>
  <div>
    {{ article.body }}
  </div>
{% 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>
<div>
  {% editable article.body %}
</div>

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 %}

Comments

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

Available properties

author

Returns person object to access author properties

body

Returns body of this article

comments

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 %}

comments_count

Number of comments associated with this article

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

comments_url

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>

created_at

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

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

data

Returns custom data bound to article.

description

Returns the description of this article

excerpt

Returns excerpt of this article

image

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

image?

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

new_record?

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 %}

newer

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

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

older

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

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

page

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

tags

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

{% editable article.tags %}

tag_names

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

tag_names_str

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

{{ article.tag_names_str }}

#=> tag1, tag2

title

Returns title of this article.

updated_at

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

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

url

Full path for this article.

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

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

to_json

Serializes the article to a JSON string