Should parse nested quotes: . "foo 'bar' baz" .
“foo ‘bar’ baz”
. . 'foo 'bar' baz' .‘foo ‘bar’ baz’
. Should not overlap quotes: . 'foo "bar' baz" .‘foo "bar’ baz"
. Should match quotes on the same level: . "foo *bar* baz" .“foo bar baz”
. Should not match quotes on different levels: . *"foo* bar" "foo *bar"* ."foo bar"
"foo bar"
. . *"foo* bar *baz"* ."foo bar baz"
. Should try and find matching quote in this case: . "foo "bar 'baz" ."foo “bar 'baz”
. Should not touch 'inches' in quotes: . "Monitor 21"" .“Monitor 21"”
. Should render an apostrophe as a rsquo: . This isn't and can't be the best approach to implement this... .This isn’t and can’t be the best approach to implement this…
. Apostrophe could end the word, that's why original smartypants replaces all of them as rsquo: . users' stuff .users’ stuff
.