# Problem iterating over posts

**URL:** <https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135>\
**Category:** Uncategorized\
**Created:** [April 29, 2024, 8:14pm UTC](https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135 "2024-04-29T20:14:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![caolin](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/caolin/32/1261_2.png) [@caolin](https://talk.jekyllrb.com/u/caolin)\
**Post date:** [April 29, 2024, 8:14pm UTC](https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135/1 "2024-04-29T20:14:36Z")

</div>

## I am attempting to loop over the posts for a site and I am getting a Liquid syntax error in code that used to work. Here is the code in question:

## layout: page title: “Programming Renaissance - Blogs” author: “Programming Renaissance generated” date: 2024-03-25

{% comment %}  
This page produces a block of HTML for every post recorded in Jekyll, including drafts if enabled. This provides an index to the currently available posts on this site.  
{% endcomment %}

# Latest Posts

 {% for post in site.posts %} - 
## {{ post.title }} if {% post.author %} - Author: {{ post.author }} {% endif%}
 {{ post.excerpt }} 
 {% endfor %}

and here is the output from Jekyll:  
(PRV) jonathan@jfgdev:/PR/website$ bundle exec jekyll serve --drafts  
Configuration file: /mnt/ProgrammingRenaissance/website/\_config.yml  
Source: /mnt/ProgrammingRenaissance/website  
Destination: /mnt/ProgrammingRenaissance/website/\_site  
Incremental build: disabled. Enable with --incremental  
Generating…  
Jekyll Feed: Generating feed for posts  
Liquid Exception: Liquid syntax error (line 12): Unknown tag ‘post’ in blogs.html  
------------------------------------------------  
Jekyll 4.3.3 Please append `--trace` to the `serve` command  
for any additional information or backtrace.  
------------------------------------------------  
/home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/block.rb:38:in `unknown_tag': Liquid syntax error (line 12): Unknown tag 'post' (Liquid::SyntaxError) from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/tags/for.rb:69:in `unknown\_tag’  
from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/block.rb:68:in `block in parse_body' from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/block_body.rb:32:in `parse’  
from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/block.rb:58:in `parse_body' from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/tags/for.rb:60:in `parse’  
from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/tag.rb:10:in `parse' from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/block_body.rb:34:in `parse’  
from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/document.rb:10:in `parse' from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/document.rb:5:in `parse’  
from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/template.rb:130:in `parse' from /home/jonathan/gems/gems/liquid-4.0.4/lib/liquid/template.rb:114:in `parse’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/liquid\_renderer/file.rb:13:in `block in parse' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/liquid_renderer/file.rb:70:in `measure\_time’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/liquid\_renderer/file.rb:12:in `parse' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/renderer.rb:124:in `render\_liquid’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/renderer.rb:80:in `render_document' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/renderer.rb:63:in `run’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:572:in `render_regenerated' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:564:in `block in render\_pages’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:563:in `each' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:563:in `render\_pages’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:211:in `render' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/site.rb:80:in `process’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/command.rb:28:in `process_site' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/commands/build.rb:65:in `build’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/commands/build.rb:36:in `process' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/command.rb:91:in `block in process\_with\_graceful\_fail’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/command.rb:91:in `each' from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/command.rb:91:in `process\_with\_graceful\_fail’  
from /home/jonathan/gems/gems/jekyll-4.3.3/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program' from /home/jonathan/gems/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute’  
from /home/jonathan/gems/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each' from /home/jonathan/gems/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute’  
from /home/jonathan/gems/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go' from /home/jonathan/gems/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program’  
from /home/jonathan/gems/gems/jekyll-4.3.3/exe/jekyll:15:in `<top (required)>' from /home/jonathan/gems/bin/jekyll:25:in `load’  
from /home/jonathan/gems/bin/jekyll:25:in `<top (required)>' from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `load’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `kernel_load' from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:23:in `run’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli.rb:451:in `exec' from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli.rb:34:in `dispatch' from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/cli.rb:28:in `start' from /home/jonathan/gems/gems/bundler-2.5.6/exe/bundle:28:in `block in \<top (required)\>’  
from /home/jonathan/gems/gems/bundler-2.5.6/lib/bundler/friendly\_errors.rb:117:in `with_friendly_errors' from /home/jonathan/gems/gems/bundler-2.5.6/exe/bundle:20:in `\<top (required)\>’  
from /home/jonathan/gems/bin/bundle:25:in `load' from /home/jonathan/gems/bin/bundle:25:in `’

Here is my \_config,yml

# Welcome to Jekyll!

# 

# This config file is meant for settings that affect your whole blog, values

# which you are expected to set up once and rarely edit after that. If you find

# yourself editing this file very often, consider using Jekyll’s data files

# feature for the data you need to update frequently.

# 

# For technical reasons, this file is _NOT_ reloaded automatically when you use

# ‘bundle exec jekyll serve’. If you change this file, please restart the server process.

# 

# If you need help with YAML syntax, here are some quick references for you:

# [Markdown & YAML cheat sheet · Web Dev Topics · Learn the Web](https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml)

# [https://learnxinyminutes.com/docs/yaml/](https://learnxinyminutes.com/docs/yaml/)

# 

# Site settings

# These are used to personalize your new site. If you look in the HTML files,

# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.

# You can create any custom variable you would like, and they will be accessible

# in the templates via {{ site.myvariable }}.

title: Programming Renaissance  
email: [jgossage@gmail.com](mailto:jgossage@gmail.com)  
description: \>- # this means to ignore newlines until “baseurl:”  
Working towards the future of software development  
baseurl: “” # the subpath of your site, e.g. /blog  
url: “” # the base hostname & protocol for your site, e.g. [http://example.com](http://example.com)  
twitter\_username: jonathangossage

# General site settings

PRS: Programming Renaissance  
SAS: System Amanuensis

# Build settings

plugins:

- jekyll-feed

# Exclude from processing.

# The following items will not be processed, by default.

# Any item listed under the `exclude:` key here will be automatically added to

# the internal “default list”.

# 

# Excluded items can be processed by explicitly listing the directories or

# their entries’ file path in the `include:` list.

# 

# exclude:

# - .sass-cache/

# - .jekyll-cache/

# - gemfiles/

# - Gemfile

# - Gemfile.lock

# - node\_modules/

# - vendor/bundle/

# - vendor/cache/

# - vendor/gems/

# - vendor/ruby/

I am completely lost and need suggestions on what to do next.

---

<div class="post-metadata">

**Author:** ![jengalas](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/jengalas/32/5901_2.png) [@jengalas](https://talk.jekyllrb.com/u/jengalas)\
**Post date:** [April 29, 2024, 10:28pm UTC](https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135/2 "2024-04-29T22:28:25Z")

</div>

There is a typo in this line:

`{{ post.title }} if {% post.author %} - Author: {{ post.author }} {% endif%}`

It should instead be:

`{{ post.title }} {% if post.author %} - Author: {{ post.author }} {% endif %}`

(That is, move the `if` inside the `{%` .)

See if that helps!

---

<div class="post-metadata">

**Author:** ![caolin](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/caolin/32/1261_2.png) [@caolin](https://talk.jekyllrb.com/u/caolin)\
**Post date:** [April 29, 2024, 10:51pm UTC](https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135/3 "2024-04-29T22:51:07Z")

</div>

That did it thanks. I looked at this for hours unsucessfully. I figured that the problem had to be somewhere else. I was lucky it was so close.

---

<div class="post-metadata">

**Author:** ![jengalas](https://yyz2.discourse-cdn.com/flex030/user_avatar/talk.jekyllrb.com/jengalas/32/5901_2.png) [@jengalas](https://talk.jekyllrb.com/u/jengalas)\
**Post date:** [April 29, 2024, 10:53pm UTC](https://talk.jekyllrb.com/t/problem-iterating-over-posts/9135/4 "2024-04-29T22:53:50Z")

</div>

I’m so glad it worked! Sometimes you just need to step away for a bit 🙂
