File tree Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -365,17 +365,26 @@ You can even give the block default content. See
365
365
:ref: `Passing HTML to Components via Block <embedded-components >`
366
366
for more info.
367
367
368
- The only limitation when defining contents inside a component using the HTML syntax
369
- is that you cannot import macros using the ``_self `` keyword. You must always use
370
- the full template path:
368
+ Using macros in Components
369
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
370
+
371
+ Defining contents inside a component works great, but what if you want to
372
+ use a macro inside a component? Good news: you can! But there's a catch:
373
+ you cannot import macros using the ``_self `` keyword. Instead, you need to
374
+ use the full path of the template where the macro is defined:
371
375
372
376
.. code-block :: html+twig
373
377
378
+ {% macro message_formatter(message) %}
379
+ <strong>{{ message }}</strong>
380
+ {% endmacro %}
381
+
374
382
<twig:Alert>
375
383
{# ❌ this won't work #}
376
384
{% from _self import message_formatter %}
385
+
377
386
{# ✅ this works as expected #}
378
- {% from 'some/ path/template.html.twig' import message_formatter %}
387
+ {% from 'path/of/this /template.html.twig' import message_formatter %}
379
388
380
389
{{ message_formatter('...') }}
381
390
</twig:Alert>
You can’t perform that action at this time.
0 commit comments