layout: page description: Manage and Create Web sites with Jekyll title: Jekyll Variables tagline: Manage and Create Web sites with Jekyll group: pages toc: true


:website: jekyllrb.com/ :revnumber: 3.2.1

.boxShadow

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

width=“100%”, cols=“4,8”,options=“header”, role=“table-responsive mt-3”

|======================================================================= |Variable |Description |`site` |Sitewide information + configuration settings from `_config.yml`. See below for details.

|`page` |Page specific information + the ../frontmatter/[YAML front matter]. Custom variables set via the YAML Front Matter will be available here. See below for details.

|`layout` |Layout specific information + the ../frontmatter/[YAML front matter]. Custom variables set via the YAML Front Matter in layouts will be available here.

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

|`paginator` |When the `paginate` configuration option is set, this variable becomes available for use. See ./pagination/[Pagination] for details. |=======================================================================

Site Variables

width=“100%”, cols=“4,8”,options=“header”, role=“table-responsive mt-3”

|======================================================================= |Variable |Description |`site.time` |The current time (when you run the `jekyll` command).

|`site.pages` |A list of all Pages.

|`site.posts` |A reverse chronological list of all Posts.

|`site.related_posts` |If the page being processed is a Post, this contains a list of up to ten related Posts. By default, these are the ten most recent posts. For high quality but slow to compute results, run the `jekyll` command with the `–lsi` (en.wikipedia.org/wiki/Latent_semantic_analysis#Latent_semantic_indexing[latent semantic indexing]) option. Also note GitHub Pages does not support the `lsi` option when generating sites.

|`site.static_files` |A list of all (i.e. files not processed by Jekyll's converters or the Liquid renderer). Each file has three properties: `path`, `modified_time` and `extname`.

|`site.html_pages` |A subset of `site.pages` listing those which end in `.html`.

|`site.html_files` |A subset of `site.static_files` listing those which end in `.html`.

|`site.collections` |A list of all the collections.

|`site.data` |A list containing the data loaded from the YAML files located in the `_data` directory.

|`site.documents` |A list of all the documents in every collection.

|`site.categories.CATEGORY` |The list of all Posts in category `CATEGORY`.

|`site.tags.TAG` |The list of all Posts with tag `TAG`.

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

Page Variables

width=“100%”, cols=“4,8”,options=“header”, role=“table-responsive mt-3”

|======================================================================= |Variable |Description |`page.content` |The content of the Page, rendered or un-rendered depending upon what Liquid is being processed and what `page` is.

|`page.title` |The title of the Page.

|`page.excerpt` |The un-rendered excerpt of the Page.

|`page.url` |The URL of the Post without the domain, but with a leading slash, e.g. `/2008/12/14/my-post.html`

|`page.date` |The Date assigned to the Post. This can be overridden in a PostÔÇÖs front matter by specifying a new date/time in the format `YYYY-MM-DD HH:MM:SS` (assuming UTC), or `YYYY-MM-DD HH:MM:SS +/-TTTT` (to specify a time zone using an offset from UTC. e.g. `2008-12-14 10:30:00 +0900`).

|`page.id` |An identifier unique to the Post (useful in RSS feeds). e.g. `/2008/12/14/my-post`

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

|`page.tags` |The list of tags to which this post belongs. These can be specified in the ../frontmatter/[YAML Front Matter].

|`page.path` |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 ../frontmatter/[YAML Front Matter].

|`page.next` |The next post relative to the position of the current post in `site.posts`. Returns `nil` for the last entry.

|`page.previous` |The previous post relative to the position of the current post in `site.posts`. Returns `nil` for the first entry. |=======================================================================

TIP

Use Custom Front Matter

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

If you specify front matter in a layout, access that via `layout`. For example, if you specify `class: full_page` in a pages front matter, that value will be available as `layout.class` in the layout and its parents.

Paginator

width=“100%”, cols=“4,8”,options=“header”, role=“table-responsive mt-3”

|============================================================== |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. |==============================================================

NOTE: These are only available in index files, however they can be located in a subdirectory, such as `/blog/index.html`.