aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-05-25 12:50:43 +0200
committerJohn MacFarlane <jgm@berkeley.edu>2017-05-25 12:57:31 +0200
commit708973a33a0ce425bb21a5ffa06fbdab465d3fb8 (patch)
treeb0cf3d0dd00f098384d7a813e3754aa80b2bb512 /src/Text/Pandoc
parent650e1ac1fdbbb172c58c1898607a7f82806cf55e (diff)
downloadpandoc-708973a33a0ce425bb21a5ffa06fbdab465d3fb8.tar.gz
Added `spaced_reference_links` extension.
This is now the default for pandoc's Markdown. It allows whitespace between the two parts of a reference link: e.g. [a] [b] [b]: url This is now forbidden by default. Closes #2602.
Diffstat (limited to 'src/Text/Pandoc')
-rw-r--r--src/Text/Pandoc/Extensions.hs6
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs8
2 files changed, 10 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Extensions.hs b/src/Text/Pandoc/Extensions.hs
index 374fae2c1..58e8c414d 100644
--- a/src/Text/Pandoc/Extensions.hs
+++ b/src/Text/Pandoc/Extensions.hs
@@ -137,6 +137,7 @@ data Extension =
| Ext_shortcut_reference_links -- ^ Shortcut reference links
| Ext_smart -- ^ "Smart" quotes, apostrophes, ellipses, dashes
| Ext_old_dashes -- ^ -- = em, - before number = en
+ | Ext_spaced_reference_links -- ^ Allow space between two parts of ref link
deriving (Show, Read, Enum, Eq, Ord, Bounded, Data, Typeable, Generic)
-- | Extensions to be used with pandoc-flavored markdown.
@@ -187,7 +188,7 @@ pandocExtensions = extensionsFromList
, Ext_smart
]
--- | Extensions to be used with github-flavored markdown.
+-- | Extensions to be used with plain text output.
plainExtensions :: Extensions
plainExtensions = extensionsFromList
[ Ext_table_captions
@@ -220,6 +221,7 @@ phpMarkdownExtraExtensions = extensionsFromList
, Ext_link_attributes
, Ext_abbreviations
, Ext_shortcut_reference_links
+ , Ext_spaced_reference_links
]
-- | Extensions to be used with github-flavored markdown.
@@ -272,6 +274,7 @@ multimarkdownExtensions = extensionsFromList
, Ext_superscript
, Ext_subscript
, Ext_backtick_code_blocks
+ , Ext_spaced_reference_links
]
-- | Language extensions to be used with strict markdown.
@@ -279,6 +282,7 @@ strictExtensions :: Extensions
strictExtensions = extensionsFromList
[ Ext_raw_html
, Ext_shortcut_reference_links
+ , Ext_spaced_reference_links
]
-- | Default extensions from format-describing string.
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 11f35deb2..4fb75b344 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -1750,10 +1750,12 @@ referenceLink :: PandocMonad m
referenceLink constructor (lab, raw) = do
sp <- (True <$ lookAhead (char ' ')) <|> return False
(_,raw') <- option (mempty, "") $
- lookAhead (try (guardEnabled Ext_citations >>
- spnl >> normalCite >> return (mempty, "")))
+ lookAhead (try (do guardEnabled Ext_citations
+ guardDisabled Ext_spaced_reference_links <|> spnl
+ normalCite
+ return (mempty, "")))
<|>
- try (spnl >> reference)
+ try ((guardDisabled Ext_spaced_reference_links <|> spnl) >> reference)
when (raw' == "") $ guardEnabled Ext_shortcut_reference_links
let labIsRef = raw' == "" || raw' == "[]"
let key = toKey $ if labIsRef then raw else raw'