git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: fixed internal header links.

Closes #2397. This patch also adds `shortcut_reference_links` to the list of mmd extensions.

commite20f55618f82eb93f9ad5968e8e90b57def0d5d7 authorJohn MacFarlane <jgm@berkeley.edu> dateSun 5 Mar 2017, 16:34 (10 years ago) parentaeb11ce
3 files changed+17−2
src/Text/Pandoc/Extensions.hs+1 src/Text/Pandoc/Readers/Markdown.hs+7−2 test/command/2397.md+9
src/Text/Pandoc/Extensions.hs+1
@@ -247,6 +247,7 @@ multimarkdownExtensions = extensionsFromList
247247 , Ext_definition_lists
248248 , Ext_all_symbols_escapable
249249 , Ext_implicit_header_references
250+ , Ext_shortcut_reference_links
250251 , Ext_auto_identifiers
251252 , Ext_mmd_header_identifiers
252253 , Ext_implicit_figures
src/Text/Pandoc/Readers/Markdown.hs+7−2
@@ -567,9 +567,14 @@ setextHeaderEnd = try $ do
567567
568568mmdHeaderIdentifier :: PandocMonad m => MarkdownParser m Attr
569569mmdHeaderIdentifier = do
570− ident <- stripFirstAndLast . snd <$> reference
570+ (_, raw) <- reference
571+ let raw' = trim $ stripFirstAndLast raw
572+ let ident = concat $ words $ map toLower raw'
573+ let attr = (ident, [], [])
574+ guardDisabled Ext_implicit_header_references
575+ <|> registerImplicitHeader raw' attr
571576 skipSpaces
572− return (ident,[],[])
577+ return attr
573578
574579setextHeader :: PandocMonad m => MarkdownParser m (F Blocks)
575580setextHeader = try $ do
test/command/2397.mdnew file+9
@@ -0,0 +1,9 @@
1+```
2+% pandoc -f markdown_mmd
3+# Chapter 1: A long name of chapter [Chapter 1]
4+
5+See [Chapter 1].
6+^D
7+<h1 id="chapter1">Chapter 1: A long name of chapter</h1>
8+<p>See <a href="#chapter1">Chapter 1</a>.</p>
9+```