WORK-648
ID:WORK-648Status:ready

each iterates the items of a list field

Today each iterates a list only when the field has an itemModel with an emitTag. A list whose items need no extraction, where each item's content is placed as it is, has no way in. That blocks steps, which takes its steps from headings or from an ordered list (SPEC-169 D4).

Priority:mediumComplexity:simpleMilestone:v0.42.0Source:SPEC-169
claude/v0-42-0-planning-ata7nd View source

Criteria completion

Criteria completion: 0 of 4 (0%) checked; tracking started on Oct 22, no incremental history yet0%25%50%75%100%Oct 22Oct 28

Tracking started Oct 22 — check back for trends.

Branches 3
History 1
  1. abc833f
    Created (ready)by bjornolofandersson

Acceptance Criteria

  • each on a non-greedy field matching one list iterates its items, with the bare slot as each item's content and no $each bindings
  • A composed steps fixture renders the same steps from headings and from an ordered list, with one model and no conditional
  • An each over a greedy list field, or a field that can match several lists, is a construction error naming the field
  • The composed-runes guide documents list each beside itemModel, including that itemModel patterns consume the text they match in order (from BUG-038)

Approach

  • SPEC-169's steps example places the items in {% group layout="ladder" %}. The ladder is SPEC-156's and still draft, so the fixture uses a plain container. It proves the model, not the look.
  • BUG-038 fixes itemModel patterns in the same part of the resolver. Land it first if both are in flight, so the list each tests run beside working itemModel tests.
  • D4's open question, whether rendering both a list and headings should warn, stays open. The fixture covers each input separately.

References

  • SPEC-169: D4.
  • BUG-038.