Skip to content

Commit a0878f2

Browse files
authored
Merge pull request #59 from tronsha/feature/data-twig-remove
Add data-twig-remove
2 parents 9026eb9 + 1d03548 commit a0878f2

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
@@ -183,6 +183,7 @@ public function convertNode(DOMNode $node, int $level = 0): DOMNode
183183
} elseif ($node instanceof DOMDocument) {
184184
$this->logger->warning('Document node found.');
185185
} elseif ($node instanceof DOMElement) {
186+
$this->twigRemove($node);
186187
$this->replaceShowWithIf($node);
187188
$this->handleIf($node, $level);
188189
$this->handleFor($node);
@@ -967,4 +968,11 @@ private function handleCommentNode(DOMComment $node): void
967968
$node->parentNode->removeChild($node);
968969
}
969970
}
971+
972+
private function twigRemove(DOMElement $node): void
973+
{
974+
if ($node->hasAttribute('data-twig-remove')) {
975+
$node->parentNode->removeChild($node);
976+
}
977+
}
970978
}

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)