Allow alter html markup from twig with DomQuery library.

Install

Module required install with composer because it depend on package DomQuery

   composer require 'drupal/twig_domquery'

Usage

Use whole DomQuery object
- Requirement add custom settings to settings.php

$settings['twig_sandbox_whitelisted_classes'] = [
  'Drupal\\Core\\Template\\Attribute',
  'Rct567\\DomQuery\\DomQuery'
];

Example for remove div has class field-label:

        {% set dom = domQuery(form|render) %}
        {% set _ = dom.find('.field-label').remove() %}
        {{ dom.getOuterHtml|raw }}

Use support twig function without add custom settings

{{ domQuery_replace(form|render, "p:last", "<p>Last Item</p>")|raw }}
{{ domQuery_addClass(form|render, "p:last", "last-item")|raw }}
{{ domQuery_removeClass(form|render, "p.list", "list")|raw }}

Project information

Releases