jekyll/site/_posts/2012-07-01-variables.md

7.2 KiB
Raw Blame History

layout title prev_section next_section
docs Variables pages migrations

Jekyll traverses your site looking for files to process. Any files with YAML Front Matter are subject to processing. For each of these files, Jekyll makes a variety of data available via the Liquid templating system. The following is a reference of the available data.

Global Variables

Variable Description

site

      Sitewide information + configuration settings from
      <code>_config.yml</code>. See below for details.

  </p></td>
</tr>
<tr>
  <td><p><code>page</code></p></td>
  <td><p>

    Page specific information + the <a href="../frontmatter">YAML Front
    Matter</a>. Custom variables set via the YAML front matter will be
    available here. See below for details.

  </p></td>
</tr>
<tr>
  <td><p><code>content</code></p></td>
  <td><p>

    In layout files, the rendered content of the Post or Page being wrapped.
    Not defined in Post or Page files.

  </p></td>
</tr>
<tr>
  <td><p><code>paginator</code></p></td>
  <td><p>

    When the <code>paginate</code> configuration option is set, this
    variable becomes available for use. See <a
    href="../pagination">Pagination</a> for details.

  </p></td>
</tr>

Site Variables

Variable Description

site.time

    The current time (when you run the <code>jekyll</code> command).

  </p></td>
</tr>
<tr>
  <td><p><code>site.posts</code></p></td>
  <td><p>

    A reverse chronological list of all Posts.

  </p></td>
</tr>
<tr>
  <td><p><code>site.related_posts</code></p></td>
  <td><p>

    If the page being processed is a Post, this contains a list of up to ten
    related Posts. By default, these are low quality but fast to compute.
    For high quality but slow to compute results, run the
    <code>jekyll</code> command with the <code>--lsi</code> (latent semantic
    indexing) option.

  </p></td>
</tr>
<tr>
  <td><p><code>site.categories.CATEGORY</code></p></td>
  <td><p>

    The list of all Posts in category <code>CATEGORY</code>.

  </p></td>
</tr>
<tr>
  <td><p><code>site.tags.TAG</code></p></td>
  <td><p>

    The list of all Posts with tag <code>TAG</code>.

  </p></td>
</tr>
<tr>
  <td><p><code>site.[CONFIGURATION_DATA]</code></p></td>
  <td><p>

    All the variables set via the command line and your
    <code>_config.yml</code> are available through the <code>site</code>
    variable. For example, if you have <code>url: http://mysite.com</code>
    in your configuration file, then in your Posts and Pages it will be
    stored in <code>site.url</code>. Jekyll does not parse changes to
    <code>_config.yml</code> in <code>watch</code> mode, you must restart
    Jekyll to see changes to variables.

  </p></td>
</tr>

Page Variables

Variable Description

page.content

    The un-rendered content of the Page.

  </p></td>
</tr>
<tr>
  <td><p><code>page.title</code></p></td>
  <td><p>

    The title of the Post.

  </p></td>
</tr>
<tr>
  <td><p><code>page.url</code></p></td>
  <td><p>

    The URL of the Post without the domain. e.g.
    <code>/2008/12/14/my-post.html</code>

  </p></td>
</tr>
<tr>
  <td><p><code>page.date</code></p></td>
  <td><p>

    The Date assigned to the Post. This can be overridden in a Posts front
    matter by specifying a new date/time in the format
    <code>YYYY-MM-DD HH:MM:SS</code>

  </p></td>
</tr>
<tr>
  <td><p><code>page.id</code></p></td>
  <td><p>

    An identifier unique to the Post (useful in RSS feeds). e.g.
    <code>/2008/12/14/my-post</code>

  </p></td>
</tr>
<tr>
  <td><p><code>page.categories</code></p></td>
  <td><p>

    The list of categories to which this post belongs. Categories are
    derived from the directory structure above the <code>_posts</code>
    directory. For example, a post at
    <code>/work/code/_posts/2008-12-24-closures.md</code> would have this
    field set to <code>['work', 'code']</code>. These can also be specified
    in the <a href="../frontmatter">YAML Front Matter</a>.

  </p></td>
</tr>
<tr>
  <td><p><code>page.tags</code></p></td>
  <td><p>

    The list of tags to which this post belongs. These can be specified in
    the <a href="../frontmatter">YAML Front Matter</a>.

  </p></td>
</tr>
<tr>
  <td><p><code>page.path</code></p></td>
  <td><p>

    The path to the raw post or page. Example usage: Linking back to the
    page or post's source on GitHub. This can be overridden in the
    <a href="../frontmatter">YAML Front Matter</a>.

  </p></td>
</tr>
ProTip™: Use custom front-matter

Any custom front matter that you specify will be available under
<code>page</code>. For example, if you specify <code>custom_css: true</code>
in a pages front matter, that value will be available as
<code>page.custom_css</code>.

Paginator

Variable Description

paginator.per_page

Number of Posts per page.

paginator.posts

Posts available for that page.

paginator.total_posts

Total number of Posts.

paginator.total_pages

Total number of Pages.

paginator.page

The number of the current page.

paginator.previous_page

The number of the previous page.

paginator.previous_page_path

The path to the previous page.

paginator.next_page

The number of the next page.

paginator.next_page_path

The path to the next page.

Paginator variable availability

These are only available in index files, however they can be located in a
subdirectory, such as <code>/blog/index.html</code>.