Skip to content

Commit 1d03548

Browse files
committed
Add data-twig-remove
1 parent 020603b commit 1d03548

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/Compiler.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public function convertNode(DOMNode $node, int $level = 0): DOMNode
178178
} elseif ($node instanceof DOMDocument) {
179179
$this->logger->warning('Document node found.');
180180
} elseif ($node instanceof DOMElement) {
181+
$this->twigRemove($node);
181182
$this->replaceShowWithIf($node);
182183
$this->handleIf($node, $level);
183184
$this->handleFor($node);
@@ -880,4 +881,11 @@ private function handleCommentNode(DOMComment $node): void
880881
$node->parentNode->removeChild($node);
881882
}
882883
}
884+
885+
private function twigRemove(DOMElement $node): void
886+
{
887+
if ($node->hasAttribute('data-twig-remove')) {
888+
$node->parentNode->removeChild($node);
889+
}
890+
}
883891
}

tests/DataTwigRemoveTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace Paneon\VueToTwig\Tests;
4+
5+
use Exception;
6+
7+
class DataTwigRemoveTest extends AbstractTestCase
8+
{
9+
/**
10+
* @throws Exception
11+
*/
12+
public function testDataTwigRemove()
13+
{
14+
$vueTemplate = '<template><div><span data-twig-remove>dummy</span></div></template>';
15+
16+
$expected = '<div class="{{class|default(\'\')}}"></div>';
17+
18+
$compiler = $this->createCompiler($vueTemplate);
19+
20+
$actual = $compiler->convert();
21+
22+
$this->assertEqualHtml($expected, $actual);
23+
}
24+
}

0 commit comments

Comments
 (0)