aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2010-06-30 18:53:35 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2010-06-30 18:53:35 -0700
commitee51124412b38be7905f3d5a4c37ebf0526115cf (patch)
treed59bfd95587eaf1e0332c0545b7b736b0863b0ca
parent163b0c0f8a434397c5b9106233d6c9f505f09426 (diff)
downloadpandoc-ee51124412b38be7905f3d5a4c37ebf0526115cf.tar.gz
Use unicode for smart punctuation in plain, markdown, rst formats.
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs12
-rw-r--r--src/Text/Pandoc/Writers/RST.hs12
-rw-r--r--tests/writer.markdown54
-rw-r--r--tests/writer.plain52
-rw-r--r--tests/writer.rst54
5 files changed, 92 insertions, 92 deletions
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index d6876d239..41ead8d68 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -372,14 +372,14 @@ inlineToMarkdown opts (Subscript lst) = do
inlineToMarkdown opts (SmallCaps lst) = inlineListToMarkdown opts lst
inlineToMarkdown opts (Quoted SingleQuote lst) = do
contents <- inlineListToMarkdown opts lst
- return $ char '\'' <> contents <> char '\''
+ return $ char '‘' <> contents <> char '’'
inlineToMarkdown opts (Quoted DoubleQuote lst) = do
contents <- inlineListToMarkdown opts lst
- return $ char '"' <> contents <> char '"'
-inlineToMarkdown _ EmDash = return $ text "--"
-inlineToMarkdown _ EnDash = return $ char '-'
-inlineToMarkdown _ Apostrophe = return $ char '\''
-inlineToMarkdown _ Ellipses = return $ text "..."
+ return $ char '“' <> contents <> char '”'
+inlineToMarkdown _ EmDash = return $ char '\8212'
+inlineToMarkdown _ EnDash = return $ char '\8211'
+inlineToMarkdown _ Apostrophe = return $ char '\8217'
+inlineToMarkdown _ Ellipses = return $ char '\8230'
inlineToMarkdown _ (Code str) =
let tickGroups = filter (\s -> '`' `elem` s) $ group str
longest = if null tickGroups
diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs
index 680ec7749..14566252c 100644
--- a/src/Text/Pandoc/Writers/RST.hs
+++ b/src/Text/Pandoc/Writers/RST.hs
@@ -282,16 +282,16 @@ inlineToRST (Subscript lst) = do
inlineToRST (SmallCaps lst) = inlineListToRST lst
inlineToRST (Quoted SingleQuote lst) = do
contents <- inlineListToRST lst
- return $ char '\'' <> contents <> char '\''
+ return $ char '‘' <> contents <> char '’'
inlineToRST (Quoted DoubleQuote lst) = do
contents <- inlineListToRST lst
- return $ char '"' <> contents <> char '"'
+ return $ char '“' <> contents <> char '”'
inlineToRST (Cite _ lst) =
inlineListToRST lst
-inlineToRST EmDash = return $ text "--"
-inlineToRST EnDash = return $ char '-'
-inlineToRST Apostrophe = return $ char '\''
-inlineToRST Ellipses = return $ text "..."
+inlineToRST EmDash = return $ char '\8212'
+inlineToRST EnDash = return $ char '\8211'
+inlineToRST Apostrophe = return $ char '\8217'
+inlineToRST Ellipses = return $ char '\8230'
inlineToRST (Code str) = return $ text $ "``" ++ str ++ "``"
inlineToRST (Str str) = return $ text $ escapeString str
inlineToRST (Math t str) = do
diff --git a/tests/writer.markdown b/tests/writer.markdown
index 1bc9b76f0..c3f3fcc26 100644
--- a/tests/writer.markdown
+++ b/tests/writer.markdown
@@ -3,7 +3,7 @@
% July 17, 2006
This is a set of tests for pandoc. Most of them are adapted from
-John Gruber's markdown test suite.
+John Gruber’s markdown test suite.
* * * * *
@@ -35,13 +35,13 @@ with no blank line
# Paragraphs
-Here's a regular paragraph.
+Here’s a regular paragraph.
In Markdown 1.0.0 and earlier. Version 8. This line turns into a
list item. Because a hard-wrapped line in the middle of a paragraph
looked like a list item.
-Here's one with a bullet. \* criminey.
+Here’s one with a bullet. \* criminey.
There should be a hard line break
here.
@@ -185,7 +185,7 @@ Multiple paragraphs:
1. Item 1, graf one.
- Item 1. graf two. The quick brown fox jumped over the lazy dog's
+ Item 1. graf two. The quick brown fox jumped over the lazy dog’s
back.
2. Item 2.
@@ -201,7 +201,7 @@ Multiple paragraphs:
-Here's another:
+Here’s another:
1. First
2. Second:
@@ -395,7 +395,7 @@ And this is **strong**
<script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script>
-Here's a simple block:
+Here’s a simple block:
<div>
@@ -450,7 +450,7 @@ Code:
<hr />
-Hr's:
+Hr’s:
<hr>
@@ -505,22 +505,22 @@ unescaped spaces: a\^b c\^d, a\~b c\~d.
# Smart quotes, ellipses, dashes
-"Hello," said the spider. "'Shelob' is my name."
+“Hello,” said the spider. “‘Shelob’ is my name.”
-'A', 'B', and 'C' are letters.
+‘A’, ‘B’, and ‘C’ are letters.
-'Oak,' 'elm,' and 'beech' are names of trees. So is 'pine.'
+‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’
-'He said, "I want to go."' Were you alive in the 70's?
+‘He said, “I want to go.”’ Were you alive in the 70’s?
-Here is some quoted '`code`' and a
-"[quoted link](http://example.com/?foo=1&bar=2)".
+Here is some quoted ‘`code`’ and a
+“[quoted link](http://example.com/?foo=1&bar=2)”.
-Some dashes: one--two -- three--four -- five.
+Some dashes: one—two — three—four — five.
-Dashes between numbers: 5-7, 255-66, 1987-1999.
+Dashes between numbers: 5–7, 255–66, 1987–1999.
-Ellipses...and...and....
+Ellipses…and…and….
* * * * *
@@ -533,20 +533,20 @@ Ellipses...and...and....
- $\alpha \wedge \omega$
- $223$
- $p$-Tree
-- Here's some display math:
+- Here’s some display math:
$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$
-- Here's one that has a line break in it:
+- Here’s one that has a line break in it:
$\alpha + \omega \times x^2$.
-These shouldn't be math:
+These shouldn’t be math:
- To get the famous equation, write `$e = mc^2$`.
-- $22,000 is a *lot* of money. So is $34,000. (It worked if "lot"
+- $22,000 is a *lot* of money. So is $34,000. (It worked if “lot”
is emphasized.)
- Shoes ($20) and socks ($5).
- Escaped `$`: $73 *this should be emphasized* 23$.
-Here's a LaTeX table:
+Here’s a LaTeX table:
\begin{tabular}{|l|l|}\hline
Animal & Number \\ \hline
@@ -662,15 +662,15 @@ Foo [biz](/url/ "Title with "quote" inside").
## With ampersands
-Here's a
+Here’s a
[link with an ampersand in the URL](http://example.com/?foo=1&bar=2).
-Here's a link with an amersand in the link text:
+Here’s a link with an amersand in the link text:
[AT&T](http://att.com/ "AT&T").
-Here's an [inline link](/script?foo=1&bar=2).
+Here’s an [inline link](/script?foo=1&bar=2).
-Here's an [inline link in pointy braces](/script?foo=1&bar=2).
+Here’s an [inline link in pointy braces](/script?foo=1&bar=2).
## Autolinks
@@ -693,7 +693,7 @@ Auto-links should not occur here: `<http://example.com/>`
# Images
-From "Voyage dans la Lune" by Georges Melies (1902):
+From “Voyage dans la Lune” by Georges Melies (1902):
![lalune](lalune.jpg "Voyage dans la Lune")
@@ -721,7 +721,7 @@ indented.
reference. It need not be placed at the end of the document.
[^2]:
- Here's the long note. This one contains multiple blocks.
+ Here’s the long note. This one contains multiple blocks.
Subsequent blocks are indented to show that they belong to the
footnote (as with list items).
diff --git a/tests/writer.plain b/tests/writer.plain
index 27ed0add9..bd7d3a3dc 100644
--- a/tests/writer.plain
+++ b/tests/writer.plain
@@ -3,7 +3,7 @@ John MacFarlane; Anonymous
July 17, 2006
This is a set of tests for pandoc. Most of them are adapted from
-John Gruber's markdown test suite.
+John Gruber’s markdown test suite.
* * * * *
@@ -41,13 +41,13 @@ with no blank line
Paragraphs
==========
-Here's a regular paragraph.
+Here’s a regular paragraph.
In Markdown 1.0.0 and earlier. Version 8. This line turns into a
list item. Because a hard-wrapped line in the middle of a paragraph
looked like a list item.
-Here's one with a bullet. * criminey.
+Here’s one with a bullet. * criminey.
There should be a hard line break
here.
@@ -196,7 +196,7 @@ Multiple paragraphs:
1. Item 1, graf one.
- Item 1. graf two. The quick brown fox jumped over the lazy dog's
+ Item 1. graf two. The quick brown fox jumped over the lazy dog’s
back.
2. Item 2.
@@ -213,7 +213,7 @@ Nested
-Here's another:
+Here’s another:
1. First
2. Second:
@@ -388,7 +388,7 @@ Interpreted markdown in a table:
This is emphasized
And this is strong
-Here's a simple block:
+Here’s a simple block:
foo
This should be a code block, though:
@@ -418,7 +418,7 @@ Code:
<hr />
-Hr's:
+Hr’s:
* * * * *
@@ -457,21 +457,21 @@ unescaped spaces: a^b c^d, a~b c~d.
Smart quotes, ellipses, dashes
==============================
-"Hello," said the spider. "'Shelob' is my name."
+“Hello,” said the spider. “‘Shelob’ is my name.”
-'A', 'B', and 'C' are letters.
+‘A’, ‘B’, and ‘C’ are letters.
-'Oak,' 'elm,' and 'beech' are names of trees. So is 'pine.'
+‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’
-'He said, "I want to go."' Were you alive in the 70's?
+‘He said, “I want to go.”’ Were you alive in the 70’s?
-Here is some quoted 'code' and a "quoted link".
+Here is some quoted ‘code’ and a “quoted link”.
-Some dashes: one--two -- three--four -- five.
+Some dashes: one—two — three—four — five.
-Dashes between numbers: 5-7, 255-66, 1987-1999.
+Dashes between numbers: 5–7, 255–66, 1987–1999.
-Ellipses...and...and....
+Ellipses…and…and….
* * * * *
@@ -485,20 +485,20 @@ LaTeX
- \alpha \wedge \omega
- 223
- p-Tree
-- Here's some display math:
+- Here’s some display math:
\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
-- Here's one that has a line break in it:
+- Here’s one that has a line break in it:
\alpha + \omega \times x^2.
-These shouldn't be math:
+These shouldn’t be math:
- To get the famous equation, write $e = mc^2$.
-- $22,000 is a lot of money. So is $34,000. (It worked if "lot"
+- $22,000 is a lot of money. So is $34,000. (It worked if “lot”
is emphasized.)
- Shoes ($20) and socks ($5).
- Escaped $: $73 this should be emphasized 23$.
-Here's a LaTeX table:
+Here’s a LaTeX table:
@@ -615,13 +615,13 @@ Foo biz.
With ampersands
---------------
-Here's a link with an ampersand in the URL.
+Here’s a link with an ampersand in the URL.
-Here's a link with an amersand in the link text: AT&T.
+Here’s a link with an amersand in the link text: AT&T.
-Here's an inline link.
+Here’s an inline link.
-Here's an inline link in pointy braces.
+Here’s an inline link in pointy braces.
Autolinks
---------
@@ -646,7 +646,7 @@ Auto-links should not occur here: <http://example.com/>
Images
======
-From "Voyage dans la Lune" by Georges Melies (1902):
+From “Voyage dans la Lune” by Georges Melies (1902):
@@ -675,7 +675,7 @@ indented.
reference. It need not be placed at the end of the document.
[^2]:
- Here's the long note. This one contains multiple blocks.
+ Here’s the long note. This one contains multiple blocks.
Subsequent blocks are indented to show that they belong to the
footnote (as with list items).
diff --git a/tests/writer.rst b/tests/writer.rst
index e68343b01..35df8002a 100644
--- a/tests/writer.rst
+++ b/tests/writer.rst
@@ -10,7 +10,7 @@ Pandoc Test Suite
:format: html latex
This is a set of tests for pandoc. Most of them are adapted from
-John Gruber's markdown test suite.
+John Gruber’s markdown test suite.
--------------
@@ -50,13 +50,13 @@ with no blank line
Paragraphs
==========
-Here's a regular paragraph.
+Here’s a regular paragraph.
In Markdown 1.0.0 and earlier. Version 8. This line turns into a
list item. Because a hard-wrapped line in the middle of a paragraph
looked like a list item.
-Here's one with a bullet. \* criminey.
+Here’s one with a bullet. \* criminey.
There should be a hard line break
here.
@@ -224,7 +224,7 @@ Multiple paragraphs:
1. Item 1, graf one.
- Item 1. graf two. The quick brown fox jumped over the lazy dog's
+ Item 1. graf two. The quick brown fox jumped over the lazy dog’s
back.
2. Item 2.
@@ -244,7 +244,7 @@ Nested
-Here's another:
+Here’s another:
1. First
@@ -489,7 +489,7 @@ And this is **strong**
<script type="text/javascript">document.write('This *should not* be interpreted as markdown');</script>
-Here's a simple block:
+Here’s a simple block:
.. raw:: html
@@ -575,7 +575,7 @@ Code:
<hr />
-Hr's:
+Hr’s:
.. raw:: html
@@ -635,22 +635,22 @@ unescaped spaces: a^b c^d, a~b c~d.
Smart quotes, ellipses, dashes
==============================
-"Hello," said the spider. "'Shelob' is my name."
+“Hello,” said the spider. “‘Shelob’ is my name.”
-'A', 'B', and 'C' are letters.
+‘A’, ‘B’, and ‘C’ are letters.
-'Oak,' 'elm,' and 'beech' are names of trees. So is 'pine.'
+‘Oak,’ ‘elm,’ and ‘beech’ are names of trees. So is ‘pine.’
-'He said, "I want to go."' Were you alive in the 70's?
+‘He said, “I want to go.”’ Were you alive in the 70’s?
-Here is some quoted '``code``' and a
-"`quoted link <http://example.com/?foo=1&bar=2>`_".
+Here is some quoted ‘``code``’ and a
+“`quoted link <http://example.com/?foo=1&bar=2>`_”.
-Some dashes: one--two -- three--four -- five.
+Some dashes: one—two — three—four — five.
-Dashes between numbers: 5-7, 255-66, 1987-1999.
+Dashes between numbers: 5–7, 255–66, 1987–1999.
-Ellipses...and...and....
+Ellipses…and…and….
--------------
@@ -664,21 +664,21 @@ LaTeX
- :math:`$\alpha \wedge \omega$`
- :math:`$223$`
- :math:`$p$`-Tree
-- Here's some display math:
+- Here’s some display math:
:math:`$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$`
-- Here's one that has a line break in it:
+- Here’s one that has a line break in it:
:math:`$\alpha + \omega \times x^2$`.
-These shouldn't be math:
+These shouldn’t be math:
- To get the famous equation, write ``$e = mc^2$``.
-- $22,000 is a *lot* of money. So is $34,000. (It worked if "lot"
+- $22,000 is a *lot* of money. So is $34,000. (It worked if “lot”
is emphasized.)
- Shoes ($20) and socks ($5).
- Escaped ``$``: $73 *this should be emphasized* 23$.
-Here's a LaTeX table:
+Here’s a LaTeX table:
@@ -796,15 +796,15 @@ Foo `biz </url/>`_.
With ampersands
---------------
-Here's a
+Here’s a
`link with an ampersand in the URL <http://example.com/?foo=1&bar=2>`_.
-Here's a link with an amersand in the link text:
+Here’s a link with an amersand in the link text:
`AT&T <http://att.com/>`_.
-Here's an `inline link </script?foo=1&bar=2>`_.
+Here’s an `inline link </script?foo=1&bar=2>`_.
-Here's an `inline link in pointy braces </script?foo=1&bar=2>`_.
+Here’s an `inline link in pointy braces </script?foo=1&bar=2>`_.
Autolinks
---------
@@ -832,7 +832,7 @@ Auto-links should not occur here: ``<http://example.com/>``
Images
======
-From "Voyage dans la Lune" by Georges Melies (1902):
+From “Voyage dans la Lune” by Georges Melies (1902):
.. figure:: lalune.jpg
:align: center
@@ -865,7 +865,7 @@ indented.
reference. It need not be placed at the end of the document.
.. [2]
- Here's the long note. This one contains multiple blocks.
+ Here’s the long note. This one contains multiple blocks.
Subsequent blocks are indented to show that they belong to the
footnote (as with list items).