diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-05-27 21:41:47 +0200 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-05-27 23:18:45 +0200 |
commit | 8614902234902c02f6493b651e585527d49e058b (patch) | |
tree | 68cad65fc680e5036e8c2bae781431de51365de1 /src/Text/Pandoc/Readers | |
parent | 4dabcc27f69f6d2ec0b5ed7829927cc58b39f8c9 (diff) | |
download | pandoc-8614902234902c02f6493b651e585527d49e058b.tar.gz |
Markdown writer: changes to `--reference-links`.
With `--reference-location` of `section` or `block`, pandoc
will now repeat references that have been used in earlier
sections.
The Markdown reader has also been modified, so that *exactly*
repeated references do not generate a warning, only
references with the same label but different targets.
The idea is that, with references after every block,
one might want to repeat references sometimes.
Closes #3701.
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index 4fb75b344..95310346c 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -414,8 +414,12 @@ referenceKey = try $ do let oldkeys = stateKeys st let key = toKey raw case M.lookup key oldkeys of - Just _ -> logMessage $ DuplicateLinkReference raw pos - Nothing -> return () + Just (t,a) | not (t == target && a == attr') -> + -- We don't warn on two duplicate keys if the targets are also + -- the same. This can happen naturally with --reference-location=block + -- or section. See #3701. + logMessage $ DuplicateLinkReference raw pos + _ -> return () updateState $ \s -> s { stateKeys = M.insert key (target, attr') oldkeys } return $ return mempty |