Skip to content

Commit 1d3592e

Browse files
authored
Merge pull request #40 from tronsha/feature/attributes-cleanup
Cleanup Attributes
2 parents a7ce18f + c4074a5 commit 1d3592e

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

src/Compiler.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ public function convertNode(DOMNode $node, int $level = 0): DOMNode
153153
$this->stripEventHandlers($node);
154154
//$this->handleRawHtml($node, $data);
155155
$this->handleDefaultSlot($node);
156+
$this->cleanupAttributes($node);
156157
}
157158

158159
/*
@@ -409,6 +410,15 @@ protected function handleTextNode(DOMText $node)
409410
return $node;
410411
}
411412

413+
private function cleanupAttributes(DOMElement $node) {
414+
if ($node->hasAttribute('ref')) {
415+
$node->removeAttribute('ref');
416+
}
417+
if ($node->hasAttribute(':ref')) {
418+
$node->removeAttribute(':ref');
419+
}
420+
}
421+
412422
private function handleIf(DOMElement $node): void
413423
{
414424
if (!$node->hasAttribute('v-if') &&

tests/CleanupAttributesTest.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Paneon\VueToTwig\Tests;
4+
5+
class CleanupAttributesTest extends AbstractTestCase
6+
{
7+
public function testCleanupAttributes()
8+
{
9+
$vueTemplate = '<template><div ref="reference">dummy</div></template>';
10+
11+
$expected = '<div class="{{class|default(\'\')}}">dummy</div>';
12+
13+
$compiler = $this->createCompiler($vueTemplate);
14+
15+
$actual = $compiler->convert();
16+
17+
$this->assertEqualHtml($expected, $actual);
18+
}
19+
}

0 commit comments

Comments
 (0)