Content Blocks
A Content Block gets its content element as a record object ({data}), and its collections (for example cards) are
records of tables of their own. Give each record to headliner::
<headliner:headline record="{data}" />
<f:for each="{data.cards}" as="card">
<article class="card">
<headliner:headline record="{card}" />
{card -> f:render.text(field: 'text')}
</article>
</f:for>
Copied!
The block Cards with record at /cards- is in the demo (ddev demo --), and the page Teaser as rows at
/teaser- shows rows as arrays with headliner: and headliner: (ddev demo).
The headings of a block and of its cards: the cards have the title of their table as badge, the heading in a text has the badge RTE.
- A heading names its content element (
data-, taken fromheadliner- element {data}, or from the record), so a Content Block, which has no frameid="c12"around its element, still gets the group and the badges. For a heading in a rich text the page module finds the element from the record: the inline field of the content element that links it. - The title of a card has the mark of its tag field, the title of the table as its badge (for example Cards) and a select with the values of the field. A heading in a rich text names its record, and the page module finds the rich text it is written in (a heading of that text with the same level and text): it has the badge RTE and, with the site setting headliner.editRteHeadings, a select of the headings the editor offers.
- The tag field must be a select whose values are tags and nothing else (
h1toh6,div), and a text is only changed in a rich text field. The page module ignores anything else: the marks are part of the rendered page, which an editor can write to. - If a table has two tag fields, name the field:
record=".{card}" tag Field="tag"