Smart punctuation

Open quotes are matched with closed quotes. The same method is used for matching openers and closers as is used in emphasis parsing:

"Hello," said the spider.
"'Shelob' is my name."
<p>“Hello,” said the spider.
“‘Shelob’ is my name.”</p>
'A', 'B', and 'C' are letters.
<p>‘A’, ‘B’, and ‘C’ are letters.</p>
'Oak,' 'elm,' and 'beech' are names of trees.
So is 'pine.'
<p>‘Oak,’ ‘elm,’ and ‘beech’ are names of trees.
So is ‘pine.’</p>
'He said, "I want to go."'
<p>‘He said, “I want to go.”’</p>

A single quote that isn't an open quote matched with a close quote will be treated as an apostrophe:

Were you alive in the 70's?
<p>Were you alive in the 70’s?</p>
Here is some quoted '`code`' and a "[quoted link](url)".
<p>Here is some quoted ‘<code>code</code>’ and a “<a href="url">quoted link</a>”.</p>

Here the first ' is treated as an apostrophe, not an open quote, because the final single quote is matched by the single quote before jolly:

'tis the season to be 'jolly'
<p>’tis the season to be ‘jolly’</p>

Multiple apostrophes should not be marked as open/closing quotes.

'We'll use Jane's boat and John's truck,' Jenna said.
<p>‘We’ll use Jane’s boat and John’s truck,’ Jenna said.</p>

An unmatched double quote will be interpreted as a left double quote, to facilitate this style:

"A paragraph with no closing quote.

"Second paragraph by same speaker, in fiction."
<p>“A paragraph with no closing quote.</p>
<p>“Second paragraph by same speaker, in fiction.”</p>

A quote following a ] or ) character cannot be an open quote:

[a]'s b'
<p>[a]’s b’</p>

Quotes that are escaped come out as literal straight quotes:

\"This is not smart.\"
This isn\'t either.
5\'8\"
<p>"This is not smart."
This isn't either.
5'8"</p>

Two hyphens form an en-dash, three an em-dash.

Some dashes:  em---em
en--en
em --- em
en -- en
2--3
<p>Some dashes:  em—em
en–en
em — em
en – en
2–3</p>

A sequence of more than three hyphens is parsed as a sequence of em and/or en dashes, with no hyphens. If possible, a homogeneous sequence of dashes is used (so, 10 hyphens = 5 en dashes, and 9 hyphens = 3 em dashes). When a heterogeneous sequence must be used, the em dashes come first, followed by the en dashes, and as few en dashes as possible are used (so, 7 hyphens = 2 em dashes an 1 en dash).

one-
two--
three---
four----
five-----
six------
seven-------
eight--------
nine---------
thirteen-------------.
<p>one-
two–
three—
four––
five—–
six——
seven—––
eight––––
nine———
thirteen———––.</p>

Hyphens can be escaped:

Escaped hyphens: \-- \-\-\-.
<p>Escaped hyphens: -- ---.</p>

Three periods form an ellipsis:

Ellipses...and...and....
<p>Ellipses…and…and….</p>

Periods can be escaped if ellipsis-formation is not wanted:

No ellipses\.\.\.
<p>No ellipses...</p>