You get these results due to the way the fluid parses associative arrays, which is work_left . At each iteration, you get two elements: "key" and "value".
I warn you that in some cases this may give you problems. It is noteworthy that the order in which items will be displayed is not guaranteed - isitgo may appear after disko. (It depends on the version of ruby you are using, as far as I know).
If you want you to always get the contents of work_left in the same order, you should use a list of associative arrays instead of an associative array of an associative array, as you do. Here's what it would look like:
work_left: - name: isitgo image: /images/isitgo.png caption: isitgoonair.net homepage description: a website - name: disko image: /images/disko.png caption: Disko description: a website work_right: - name: qfi image: /images/qfi.png caption: qfi.im description: a website
Then the code to print them:
{% for item in page.work_left %} {{ item.name }} {{ item.image }} {% endfor %}
source share