Adds support for smarty pants:
Converts the following character to smarty pants:
This is a "text"
.
<p>This is a “text”</p>
This is a 'text'
.
<p>This is a ‘text’</p>
This is a <<text>>
.
<p>This is a «text»</p>
Unbalanced quotes are not changed:
This is a "text
.
<p>This is a "text</p>
This is a 'text
.
<p>This is a 'text</p>
This is a <<text
.
<p>This is a <<text</p>
Unbalanced quotes inside other quotes are not changed:
This is a "text 'with" a another text'
.
<p>This is a “text 'with” a another text'</p>
This is a 'text <<with' a another text>>
.
<p>This is a ‘text <<with’ a another text>></p>
This is a <<text 'with>> a another text'
.
<p>This is a «text 'with» a another text'</p>
Quotes requires to have the same rules than emphasis _
regarding left/right frankling rules:
It's not quotes'
.
<p>It's not quotes'</p>
They are ' not matching quotes '
.
<p>They are ' not matching quotes '</p>
They are' not matching 'quotes
.
<p>They are' not matching 'quotes</p>
An emphasis starting inside left/right quotes will span over the right quote:
This is "a *text" with an emphasis*
.
<p>This is “a <em>text” with an emphasis</em></p>
This is a -- text
.
<p>This is a – text</p>
This is a --- text
.
<p>This is a — text</p>
This is a en ellipsis...
.
<p>This is a en ellipsis…</p>
Check that a smartypants are not breaking pipetable parsing:
a | b
-- | --
0 | 1
.
<table>
<thead>
<tr>
<th>a</th>
<th>b</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>1</td>
</tr>
</tbody>
</table>
Check quotes and dash:
A "quote" with a ---
.
<p>A “quote” with a —</p>