Eleventy project logo

Eleventy Splitting Category Data Across Two Table Columns

Print Friendly and PDF

Posted: November 18, 2023 | | Categories: Eleventy

The Categories list on this site is getting pretty long, so one of the things I wanted to do this weekend was migrate the Unordered List (<ul></ul>) the site used today into a two column table. I asked Bard and it generated relatively useless code for me; after three tries I finally got something that looked like it would work, but didn't.

As I poked around in the Liquid docs, I noticed that Liquid has a https://shopify.github.io/liquid/tags/iteration/ tag I could use for this. Basically you give it a collection and number of columns and it automatically generates columns for you.

<table>
{% tablerow product in collection.products cols:2 %}
  {{ product.title }}
{% endtablerow %}
</table>

With that in mind, I replaced the site's Category page content with the following code:

{% if categories.length > 0 %}
  <table>
    {% tablerow catData in categories cols:2 %}
       <h4>
          <a href="{{ "/" | htmlBaseUrl }}categories/{{ catData.category | slugify }}/">{{ catData.category }}</a>
        </h4>
        Count: {{ catData.count }}
        {% if catData.description.length > 0 %}
          |
          {{ catData.description }}
        {% endif %}
    {% endtablerow %}
  </table>  
{% else %}
    <p>No category data to display</p>
{% endif %}

It generates the columns exactly as expected and saved me a lot of work hand crafting Liquid code to do it.


Next Post: Outlook Windows Delete Empty Inbox Folders

Previous Post: Using UDP Broadcast to Synchronize Actions Across Arduino Devices

If this content helps you in some way, please consider buying me a coffee.

Header image: Eleventy Project Home Page.