40 lines
1.6 KiB
Twig
40 lines
1.6 KiB
Twig
{#
|
|
Note factory constructor
|
|
|
|
There are various Note types:
|
|
- Vanilla (common type);
|
|
+ Full;
|
|
+ Compact;
|
|
- Page;
|
|
+ Full;
|
|
+ Compact;
|
|
|
|
This constructor accepts an array of args, this array may or not contain some elements, depending on the Note
|
|
type in question.
|
|
However, there's 1 GUARANTEE:
|
|
- First element identifies note type via a string;
|
|
This string will be compared, when there's a match the contructor delegates its respective macro.
|
|
|
|
The array of args passed should have the following structure for the default types:
|
|
- Vanilla (common type);
|
|
+ Full: { 'type': { 'vanilla_full' }, 'note': note, ?'replies': { note, ?replies }, ?'extra': { 'foo': bar };
|
|
+ Compact: { 'type': { 'vanilla_compact' }, 'note': note, ?'extra': { 'foo': bar } };
|
|
- Page;
|
|
+ Full { 'type': { 'page_full' }, 'note': note, ?'replies': { note, ?replies }, ?'extra': { 'foo': bar };
|
|
+ Compact { 'type': { 'page_compact' }, 'note': note, ?'extra': { 'foo': bar } };
|
|
#}
|
|
{% macro constructor(args) %}
|
|
{% import '/cards/macros/note/types.html.twig' as NoteTypes %}
|
|
|
|
{% if args.type is same as 'vanilla_full' %}
|
|
{{ NoteTypes.vanilla_full(args) }}
|
|
{% elseif args.type is same as 'vanilla_compact' %}
|
|
{{ NoteTypes.vanilla_compact(args) }}
|
|
{% elseif args.type is same as 'page_full' %}
|
|
{{ NoteTypes.page_full(args) }}
|
|
{% elseif args.type is same as 'page_compact' %}
|
|
{{ NoteTypes.page_compact(args) }}
|
|
{% else %}
|
|
{{ NoteTypes.vanilla_full(args) }}
|
|
{% endif %}
|
|
{% endmacro constructor %} |