jekyll-archives icon indicating copy to clipboard operation
jekyll-archives copied to clipboard

`site.archives` template variable not available in archive layout

Open swashcap opened this issue 9 years ago • 3 comments

I’m attempting to create an archives list in a sidebar. The sidebar should appear on multiple pages, including the archive page itself. Unfortunately, the site.archives template variable doesn’t seem to be available in the archive-specified layout.

Here’s a basic example to reproduce:

_config.yml:

jekyll-archives
  enabled:
    - month
  layout: archive
  permalinks:
    month: "/archives/:year/:month/"

_layouts/archive.html:


---
layout: default

---

<h1>Archives</h1>
<ul>
  {% assign months = site.archives | where:"type", "month" %}
  {% for month in months %}
    <li>
      <a href="{{ month.url }}">{{ month.posts[0].date | date:"%b %Y" }}</a>
    </li>
  {% endfor %}
</ul>
  • OS: OS X 10.11.4
  • Ruby: 2.3.0p0
  • jekyll: 3.0.5
  • jekyll-archives: 2.1.0

swashcap avatar May 09 '16 22:05 swashcap

Should have noted above: months is empty in the above example. Therefore, there are no archive list items are output. I can put together a more detailed example if needed.

swashcap avatar May 09 '16 23:05 swashcap

Thanks for the code!

stctheproducer avatar Nov 18 '16 03:11 stctheproducer

I have a similar issue where a site environment variable is specified (in a generator plugin) and available throughout the site, except in the archive templates. Are we able to specify the ordering of he generators invoked by Jekyll, since jekyll-archives is possibly automatically invoked before my other generator plugin has specified a site variable?

tom-spalding avatar Jan 05 '17 21:01 tom-spalding