Skip to content

[TwigComponent] The Component HTML syntax is not preserved when printed as (raw) string  #1021

Open
@bernard-ng

Description

@bernard-ng

The verbatim tag marks sections as being raw text that should not be parsed, but this is not the case when using the html syntax for components.

In my use case, I've created a bundle that generates dashboard code using twig components that I've defined in my bundle,

I want the generated code to have html syntax, but it doesn't, for exemple :

{% verbatim %}
<twig:DashliteResponsiveTable :data="data">
  <twig:block name="header">
      <twig:DashliteResponsiveTableColumn value="Nom" col />
      <twig:DashliteResponsiveTableColumn tools />
  </twig:block>

    <twig:DashliteResponsiveTableColumn :value="item.name" />
    <twig:DashliteResponsiveTableColumn tools>
        <twig:DashliteResponsiveTableAction path="" icon="edit" />
        <twig:DashliteDeleteButton path="" :item="item" />
    </twig:DashliteResponsiveTableColumn>
</twig:DashliteResponsiveTable>
{% endverbatim %}

renders

{% component 'DashliteResponsiveTable' with { data: data } %}
    {% block header %}
        {{ component('DashliteResponsiveTableColumn', { value: 'Nom', col: true }) }}
        {{ component('DashliteResponsiveTableColumn', { tools: true }) }}
    {% endblock %}

    {% block content %}
        {{ component('DashliteResponsiveTableColumn', { value: item.name }) }}
        {% component 'DashliteResponsiveTableColumn' with { tools: true } %}
            {% block content %}
                {{ component('DashliteResponsiveTableAction', { path: , icon: 'edit' }) }}
                {{ component('DashliteDeleteButton', { path: , item: item }) }}
            {% endblock %}
        {% endcomponent %}
    {% endblock %}
{% endcomponent %}

excepted result :

<twig:DashliteResponsiveTable :data="data">
  <twig:block name="header">
      <twig:DashliteResponsiveTableColumn value="Nom" col />
      <twig:DashliteResponsiveTableColumn tools />
  </twig:block>

    <twig:DashliteResponsiveTableColumn :value="item.name" />
    <twig:DashliteResponsiveTableColumn tools>
        <twig:DashliteResponsiveTableAction path="" icon="edit" />
        <twig:DashliteDeleteButton path="" :item="item" />
    </twig:DashliteResponsiveTableColumn>
</twig:DashliteResponsiveTable>

how can I keep this syntax when generating code using twig itself?

if this requires a PR I'd be happy to contribute just give me instructions and what I can do

Thanks.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions