Skip to content

Commit 8fccaf0

Browse files
committed
bug #181 Add support for tilde characters (javiereguiluz, wouterj)
This PR was merged into the main branch. Discussion ---------- Add support for tilde characters Related to * symfony/symfony-docs#20215 This PR adds a failing test that shows the issue. This is the output change that would make test pass: ```diff -<p>Excepteur &nbsp;1,000 sint! ... +<p>Excepteur ~1,000 sint! ... ``` Commits ------- 9223ccc Temporary replace tildes to avoid it being parsed as NBSP 3a300ac Add support for tilde characters
2 parents 4443a68 + 9223ccc commit 8fccaf0

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed

src/Renderers/SpanNodeRenderer.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,19 @@ public function __construct(
4242
$this->symfonyVersion = $symfonyVersion;
4343
}
4444

45+
public function render(): string
46+
{
47+
// Work around "~" being parsed as non-breaking space by rst-parser,
48+
// while this is not part of the specification.
49+
$spanValue = $this->span->getValue();
50+
$spanValue = str_replace('~', '__TILDE__', $spanValue);
51+
$this->span->setValue($spanValue);
52+
53+
$rendered = parent::render();
54+
55+
return str_replace('__TILDE__', '~', $rendered);
56+
}
57+
4558
/** @inheritDoc */
4659
public function link(?string $url, string $title, array $attributes = []): string
4760
{

tests/IntegrationTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ public function parserUnitBlockProvider()
142142
'blockName' => 'nodes/span-link',
143143
];
144144

145+
yield 'text' => [
146+
'blockName' => 'nodes/text',
147+
];
148+
145149
yield 'title' => [
146150
'blockName' => 'nodes/title',
147151
];
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<p><strong>Lorem ipsum</strong> dolor sit amet, consectetur adipisicing elit. Ut enim ad minim
2+
veniam, quis nostrud <em>exercitation ullamco laboris</em> nisi ut aliquip ex ea
3+
commodo consequat. <code translate="no" class="notranslate">Duis aute irure dolor</code> in reprehenderit in voluptate
4+
velit esse cillum dolore eu fugiat nulla pariatur.</p>
5+
6+
<p>Excepteur ~1,000 sint! Occaecat cupidatat non proident, sunt in culpa qui officia
7+
deserunt mollit anim id est laborum. áàâäãåéèêëíìîïóòôöõúùûüñçÿ</p>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
**Lorem ipsum** dolor sit amet, consectetur adipisicing elit. Ut enim ad minim
2+
veniam, quis nostrud *exercitation ullamco laboris* nisi ut aliquip ex ea
3+
commodo consequat. ``Duis aute irure dolor`` in reprehenderit in voluptate
4+
velit esse cillum dolore eu fugiat nulla pariatur.
5+
6+
Excepteur ~1,000 sint! Occaecat cupidatat non proident, sunt in culpa qui officia
7+
deserunt mollit anim id est laborum. áàâäãåéèêëíìîïóòôöõúùûüñçÿ

0 commit comments

Comments
 (0)