Installation

Two commands, one table, one tag. There is no build step and nothing to configure before it works.

Requirements

  • Craft CMS 5.3 or later
  • PHP 8.2 or later

Optional, and only if you want what they add:

Install

composer require justinholtweb/craft-legs
php craft plugin/install legs

Or install it from the Plugin Store, which is also where the Pro licence lives.

Build a table

Go to Legs → Tables → New table. Give it a name; the handle is generated from that and is what the embed code uses.

Then type into the grid. Tab and Enter move between cells, and tabbing off the last cell adds a row — the same as a spreadsheet. If you already have the data somewhere, copy a block of cells out of Excel, Numbers or Google Sheets and paste it into any cell: the grid fills out from there and grows to fit.

Put it on a page

Copy the embed code from the table's sidebar and paste it into any rich-text field:

{legs:price-list:render}

Or render it from a template:

{{ craft.legs.render('price-list') }}

Turn on the toolbar buttons

CKEditor: open the field's settings and drag the Table button — the one with the grid icon — into the toolbar. Legs registers it with CKEditor's own package mechanism, so it only loads for editors whose toolbar includes it.

Redactor: nothing to do. The button is added to every Redactor config that does not already declare a plugins list of its own.

Check it worked

View the page. You should see a table with sort arrows in its header. If you see the literal text {legs:price-list:render} instead, the handle does not match a table — Legs deliberately leaves an unresolvable tag visible rather than swallowing it.