In many situations, a page consists of standalone submodules that are assembled as a combination of tabs and rows. This can be made easier by extending the API of satin.
- text: Item 1
menu:
- text: Sub Item 1
module:
tabs:
- text: Tab 1
module:
tab1:
id: tab1
- text: Tab 2
module: tab2
In this case module_tabs is a satin module that accepts a list of modules and turns them into tabs on a page. module_rows would turn a list of modules into rows. The advantage of this approach is consistency and the ability for users to define custom higher-level modules to aggregate submodules.
It does introduce an extra layer of nesting which might be annoying, but I think consistency scores higher than the annoyance introduced by a little nesting.
In many situations, a page consists of standalone submodules that are assembled as a combination of tabs and rows. This can be made easier by extending the API of
satin.In this case
module_tabsis asatinmodule that accepts a list of modules and turns them into tabs on a page.module_rowswould turn a list of modules into rows. The advantage of this approach is consistency and the ability for users to define custom higher-level modules to aggregate submodules.It does introduce an extra layer of nesting which might be annoying, but I think consistency scores higher than the annoyance introduced by a little nesting.