Skip to content

Commit dd57f15

Browse files
committed
Merge remote-tracking branch 'origin/master' into feature/named-slots
2 parents 471c065 + f0344c1 commit dd57f15

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
@@ -190,6 +190,7 @@ public function convertNode(DOMNode $node, int $level = 0): DOMNode
190190
} elseif ($node instanceof DOMDocument) {
191191
$this->logger->warning('Document node found.');
192192
} elseif ($node instanceof DOMElement) {
193+
$this->twigRemove($node);
193194
$this->replaceShowWithIf($node);
194195
$this->handleIf($node, $level);
195196
$this->handleFor($node);
@@ -974,4 +975,11 @@ private function handleCommentNode(DOMComment $node): void
974975
$this->nodeHelper->removeNode($node);
975976
}
976977
}
978+
979+
private function twigRemove(DOMElement $node): void
980+
{
981+
if ($node->hasAttribute('data-twig-remove')) {
982+
$node->parentNode->removeChild($node);
983+
}
984+
}
977985
}

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)