git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: Set citationNoteNum accurately in citations.

This also changes stateLastNoteNumber -> stateNoteNumber.

commita59ae96062a520bc660b7a97dc0f002abb243201 authorJohn MacFarlane <jgm@berkeley.edu> dateTue 8 Sep 2020, 21:56 (6 years ago) parentb2f3074
7 files changed+49−28
src/Text/Pandoc/Parsing.hs+2−2 src/Text/Pandoc/Readers/Markdown.hs+26−5 test/Tests/Readers/Markdown.hs+4−4 test/command/5099.md+1−1 test/command/cite-in-inline-note.md+1−1 test/markdown-citations.native+14−14 test/markdown-reader-more.native+1−1
src/Text/Pandoc/Parsing.hs+2−2
@@ -1137,7 +1137,7 @@ data ParserState = ParserState
11371137 stateNotes' :: NoteTable', -- ^ List of notes (parsed bodies)
11381138 stateNoteRefs :: Set.Set Text, -- ^ List of note references used
11391139 stateInNote :: Bool, -- ^ True if parsing note contents
1140− stateLastNoteNumber :: Int, -- ^ Last note number for citations
1140+ stateNoteNumber :: Int, -- ^ Last note number for citations
11411141 stateMeta :: Meta, -- ^ Document metadata
11421142 stateMeta' :: F Meta, -- ^ Document metadata
11431143 stateCitations :: M.Map Text Text, -- ^ RST-style citations
@@ -1250,7 +1250,7 @@ defaultParserState =
12501250 stateNotes' = M.empty,
12511251 stateNoteRefs = Set.empty,
12521252 stateInNote = False,
1253− stateLastNoteNumber = 0,
1253+ stateNoteNumber = 0,
12541254 stateMeta = nullMeta,
12551255 stateMeta' = return nullMeta,
12561256 stateCitations = M.empty,
src/Text/Pandoc/Readers/Markdown.hs+26−5
@@ -36,6 +36,7 @@ import Text.Pandoc.Emoji (emojiToInline)
3636import Text.Pandoc.Error
3737import Text.Pandoc.Logging
3838import Text.Pandoc.Options
39+import Text.Pandoc.Walk (walk)
3940import Text.Pandoc.Parsing hiding (tableWith)
4041import Text.Pandoc.Readers.HTML (htmlInBalanced, htmlTag, isBlockTag,
4142 isCommentTag, isInlineTag, isTextTag)
@@ -380,6 +381,7 @@ noteBlock = do
380381 char ':'
381382 optional blankline
382383 optional indentSpaces
384+ updateState $ \st -> st{ stateInNote = True }
383385 first <- rawLines
384386 rest <- many $ try $ blanklines >> indentSpaces >> rawLines
385387 let raw = T.unlines (first:rest) <> "\n"
@@ -390,7 +392,8 @@ noteBlock = do
390392 Just _ -> logMessage $ DuplicateNoteReference ref pos
391393 Nothing -> return ()
392394 updateState $ \s -> s { stateNotes' =
393− M.insert ref (pos, parsed) oldnotes }
395+ M.insert ref (pos, parsed) oldnotes,
396+ stateInNote = False }
394397 return mempty
395398
396399--
@@ -1866,7 +1869,9 @@ note :: PandocMonad m => MarkdownParser m (F Inlines)
18661869note = try $ do
18671870 guardEnabled Ext_footnotes
18681871 ref <- noteMarker
1869− updateState $ \st -> st{ stateNoteRefs = Set.insert ref (stateNoteRefs st) }
1872+ updateState $ \st -> st{ stateNoteRefs = Set.insert ref (stateNoteRefs st)
1873+ , stateNoteNumber = stateNoteNumber st + 1 }
1874+ noteNum <- stateNoteNumber <$> getState
18701875 return $ do
18711876 notes <- asksF stateNotes'
18721877 case M.lookup ref notes of
@@ -1877,13 +1882,21 @@ note = try $ do
18771882 -- notes, to avoid infinite looping with notes inside
18781883 -- notes:
18791884 let contents' = runF contents st{ stateNotes' = M.empty }
1880− return $ B.note contents'
1885+ let addCitationNoteNum (c@Citation{}) =
1886+ c{ citationNoteNum = noteNum }
1887+ let adjustCite (Cite cs ils) =
1888+ Cite (map addCitationNoteNum cs) ils
1889+ adjustCite x = x
1890+ return $ B.note $ walk adjustCite contents'
18811891
18821892inlineNote :: PandocMonad m => MarkdownParser m (F Inlines)
18831893inlineNote = try $ do
18841894 guardEnabled Ext_inline_notes
18851895 char '^'
1896+ updateState $ \st -> st{ stateInNote = True
1897+ , stateNoteNumber = stateNoteNumber st + 1 }
18861898 contents <- inlinesInBalancedBrackets
1899+ updateState $ \st -> st{ stateInNote = False }
18871900 return $ B.note . B.para <$> contents
18881901
18891902rawLaTeXInline' :: PandocMonad m => MarkdownParser m (F Inlines)
@@ -2004,6 +2017,12 @@ emoji = try $ do
20042017cite :: PandocMonad m => MarkdownParser m (F Inlines)
20052018cite = do
20062019 guardEnabled Ext_citations
2020+ -- We only use stateNoteNumber for assigning citationNoteNum,
2021+ -- so we just assume that all citations produce notes.
2022+ -- citationNoteNum doesn't affect non-note styles.
2023+ inNote <- stateInNote <$> getState
2024+ unless inNote $
2025+ updateState $ \st -> st{ stateNoteNumber = stateNoteNumber st + 1 }
20072026 textualCite
20082027 <|> do (cs, raw) <- withRaw normalCite
20092028 return $ flip B.cite (B.text raw) <$> cs
@@ -2011,13 +2030,14 @@ cite = do
20112030textualCite :: PandocMonad m => MarkdownParser m (F Inlines)
20122031textualCite = try $ do
20132032 (suppressAuthor, key) <- citeKey
2033+ noteNum <- stateNoteNumber <$> getState
20142034 let first = Citation{ citationId = key
20152035 , citationPrefix = []
20162036 , citationSuffix = []
20172037 , citationMode = if suppressAuthor
20182038 then SuppressAuthor
20192039 else AuthorInText
2020− , citationNoteNum = 0
2040+ , citationNoteNum = noteNum
20212041 , citationHash = 0
20222042 }
20232043 mbrest <- option Nothing $ try $ spnl >> Just <$> withRaw normalCite
@@ -2090,6 +2110,7 @@ citation = try $ do
20902110 pref <- prefix
20912111 (suppress_author, key) <- citeKey
20922112 suff <- suffix
2113+ noteNum <- stateNoteNumber <$> getState
20932114 return $ do
20942115 x <- pref
20952116 y <- suff
@@ -2099,7 +2120,7 @@ citation = try $ do
20992120 , citationMode = if suppress_author
21002121 then SuppressAuthor
21012122 else NormalCitation
2102− , citationNoteNum = 0
2123+ , citationNoteNum = noteNum
21032124 , citationHash = 0
21042125 }
21052126
test/Tests/Readers/Markdown.hs+4−4
@@ -471,7 +471,7 @@ tests = [ testGroup "inline code"
471471 , citationPrefix = []
472472 , citationSuffix = []
473473 , citationMode = AuthorInText
474− , citationNoteNum = 0
474+ , citationNoteNum = 1
475475 , citationHash = 0
476476 }
477477 ] "@item1")
@@ -481,12 +481,12 @@ tests = [ testGroup "inline code"
481481 , citationPrefix = []
482482 , citationSuffix = []
483483 , citationMode = AuthorInText
484− , citationNoteNum = 0
484+ , citationNoteNum = 1
485485 , citationHash = 0
486486 }
487487 ] "@1657:huyghens")
488488 ]
489− , let citation = cite [Citation "cita" [] [] AuthorInText 0 0] (str "@cita")
489+ , let citation = cite [Citation "cita" [] [] AuthorInText 1 0] (str "@cita")
490490 in testGroup "footnote/link following citation" -- issue #2083
491491 [ "footnote" =:
492492 T.unlines [ "@cita[^note]"
@@ -523,7 +523,7 @@ tests = [ testGroup "inline code"
523523 , "regular citation" =:
524524 "@cita [foo]" =?>
525525 para (
526− cite [Citation "cita" [] [Str "foo"] AuthorInText 0 0]
526+ cite [Citation "cita" [] [Str "foo"] AuthorInText 1 0]
527527 (str "@cita" <> space <> str "[foo]")
528528 )
529529 ]
test/command/5099.md+1−1
@@ -2,7 +2,7 @@
22% pandoc -t native
33(@citation
44^D
5−[Para [Str "(",Cite [Citation {citationId = "citation", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@citation"]]]
5+[Para [Str "(",Cite [Citation {citationId = "citation", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 1, citationHash = 0}] [Str "@citation"]]]
66```
77
88```
test/command/cite-in-inline-note.md+1−1
@@ -2,5 +2,5 @@
22% pandoc -t native
33foo^[bar [@doe]]
44^D
5−[Para [Str "foo",Note [Para [Str "bar",Space,Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@doe]"]]]]]
5+[Para [Str "foo",Note [Para [Str "bar",Space,Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 1, citationHash = 0}] [Str "[@doe]"]]]]]
66```
test/markdown-citations.native+14−14
@@ -1,17 +1,17 @@
11[Header 1 ("pandoc-with-citeproc-hs",[],[]) [Str "Pandoc",Space,Str "with",Space,Str "citeproc-hs"]
22,BulletList
3− [[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@nonexistent]"]]]
4− ,[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@nonexistent"]]]
5− ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@item1"],Space,Str "says",Space,Str "blah."]]
6− ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.\160\&30"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@item1",Space,Str "[p.",Space,Str "30]"],Space,Str "says",Space,Str "blah."]]
7− ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.\160\&30,",Space,Str "with",Space,Str "suffix"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@item1",Space,Str "[p.",Space,Str "30,",Space,Str "with",Space,Str "suffix]"],Space,Str "says",Space,Str "blah."]]
8− ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.\160\&30"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "see",Space,Str "also"], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "@item1",Space,Str "[-@item2",Space,Str "p.",Space,Str "30;",Space,Str "see",Space,Str "also",Space,Str "@\1087\1091\1085\1082\1090\&3]"],Space,Str "says",Space,Str "blah."]]
9− ,[Para [Str "In",Space,Str "a",Space,Str "note.",Note [Para [Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [Str "p.\160\&12"], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@\1087\1091\1085\1082\1090\&3",Space,Str "[p.",Space,Str "12]"],Space,Str "and",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "locators",Space,Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@\1087\1091\1085\1082\1090\&3]"],Str "."]]]]
10− ,[Para [Str "A",Space,Str "citation",Space,Str "group",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.\160\&3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "also"], citationSuffix = [Space,Str "p.\160\&34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "chap.",Space,Str "3;",Space,Str "also",Space,Str "@\1087\1091\1085\1082\1090\&3",Space,Str "p.",Space,Str "34-35]"],Str "."]]
11− ,[Para [Str "Another",Space,Str "one",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.\160\&34-35"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "p.",Space,Str "34-35]"],Str "."]]
12− ,[Para [Str "And",Space,Str "another",Space,Str "one",Space,Str "in",Space,Str "a",Space,Str "note.",Note [Para [Str "Some",Space,Str "citations",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.\160\&3"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "chap.",Space,Str "3;",Space,Str "@\1087\1091\1085\1082\1090\&3;",Space,Str "@item2]"],Str "."]]]]
13− ,[Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "pp.\160\&33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@item1",Space,Str "pp.",Space,Str "33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else]"],Str "."]]
14− ,[Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@item1",Space,Str "and",Space,Str "nowhere",Space,Str "else]"],Str "."]]
15− ,[Para [Str "Now",Space,Str "some",Space,Str "modifiers.",Note [Para [Str "Like",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "author:",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0}] [Str "[-@item1]"],Str ",",Space,Str "and",Space,Str "now",Space,Str "Doe",Space,Str "with",Space,Str "a",Space,Str "locator",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.\160\&44"], citationMode = SuppressAuthor, citationNoteNum = 0, citationHash = 0}] [Str "[-@item2",Space,Str "p.",Space,Str "44]"],Str "."]]]]
16− ,[Para [Str "With",Space,Str "some",Space,Str "markup",Space,Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.\160",Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[*see*",Space,Str "@item1",Space,Str "p.",Space,Str "**32**]"],Str "."]]]
3+ [[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 1, citationHash = 0}] [Str "[@nonexistent]"]]]
4+ ,[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 2, citationHash = 0}] [Str "@nonexistent"]]]
5+ ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 3, citationHash = 0}] [Str "@item1"],Space,Str "says",Space,Str "blah."]]
6+ ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.\160\&30"], citationMode = AuthorInText, citationNoteNum = 4, citationHash = 0}] [Str "@item1",Space,Str "[p.",Space,Str "30]"],Space,Str "says",Space,Str "blah."]]
7+ ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Str "p.\160\&30,",Space,Str "with",Space,Str "suffix"], citationMode = AuthorInText, citationNoteNum = 5, citationHash = 0}] [Str "@item1",Space,Str "[p.",Space,Str "30,",Space,Str "with",Space,Str "suffix]"],Space,Str "says",Space,Str "blah."]]
8+ ,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 6, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.\160\&30"], citationMode = SuppressAuthor, citationNoteNum = 6, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "see",Space,Str "also"], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 6, citationHash = 0}] [Str "@item1",Space,Str "[-@item2",Space,Str "p.",Space,Str "30;",Space,Str "see",Space,Str "also",Space,Str "@\1087\1091\1085\1082\1090\&3]"],Space,Str "says",Space,Str "blah."]]
9+ ,[Para [Str "In",Space,Str "a",Space,Str "note.",Note [Para [Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [Str "p.\160\&12"], citationMode = AuthorInText, citationNoteNum = 7, citationHash = 0}] [Str "@\1087\1091\1085\1082\1090\&3",Space,Str "[p.",Space,Str "12]"],Space,Str "and",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "locators",Space,Cite [Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 7, citationHash = 0}] [Str "[@\1087\1091\1085\1082\1090\&3]"],Str "."]]]]
10+ ,[Para [Str "A",Space,Str "citation",Space,Str "group",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.\160\&3"], citationMode = NormalCitation, citationNoteNum = 8, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [Str "also"], citationSuffix = [Space,Str "p.\160\&34-35"], citationMode = NormalCitation, citationNoteNum = 8, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "chap.",Space,Str "3;",Space,Str "also",Space,Str "@\1087\1091\1085\1082\1090\&3",Space,Str "p.",Space,Str "34-35]"],Str "."]]
11+ ,[Para [Str "Another",Space,Str "one",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "p.\160\&34-35"], citationMode = NormalCitation, citationNoteNum = 9, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "p.",Space,Str "34-35]"],Str "."]]
12+ ,[Para [Str "And",Space,Str "another",Space,Str "one",Space,Str "in",Space,Str "a",Space,Str "note.",Note [Para [Str "Some",Space,Str "citations",Space,Cite [Citation {citationId = "item1", citationPrefix = [Str "see"], citationSuffix = [Space,Str "chap.\160\&3"], citationMode = NormalCitation, citationNoteNum = 10, citationHash = 0},Citation {citationId = "\1087\1091\1085\1082\1090\&3", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 10, citationHash = 0},Citation {citationId = "item2", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 10, citationHash = 0}] [Str "[see",Space,Str "@item1",Space,Str "chap.",Space,Str "3;",Space,Str "@\1087\1091\1085\1082\1090\&3;",Space,Str "@item2]"],Str "."]]]]
13+ ,[Para [Str "Citation",Space,Str "with",Space,Str "a",Space,Str "suffix",Space,Str "and",Space,Str "locator",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "pp.\160\&33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 11, citationHash = 0}] [Str "[@item1",Space,Str "pp.",Space,Str "33,",Space,Str "35-37,",Space,Str "and",Space,Str "nowhere",Space,Str "else]"],Str "."]]
14+ ,[Para [Str "Citation",Space,Str "with",Space,Str "suffix",Space,Str "only",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [Space,Str "and",Space,Str "nowhere",Space,Str "else"], citationMode = NormalCitation, citationNoteNum = 12, citationHash = 0}] [Str "[@item1",Space,Str "and",Space,Str "nowhere",Space,Str "else]"],Str "."]]
15+ ,[Para [Str "Now",Space,Str "some",Space,Str "modifiers.",Note [Para [Str "Like",Space,Str "a",Space,Str "citation",Space,Str "without",Space,Str "author:",Space,Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = SuppressAuthor, citationNoteNum = 13, citationHash = 0}] [Str "[-@item1]"],Str ",",Space,Str "and",Space,Str "now",Space,Str "Doe",Space,Str "with",Space,Str "a",Space,Str "locator",Space,Cite [Citation {citationId = "item2", citationPrefix = [], citationSuffix = [Space,Str "p.\160\&44"], citationMode = SuppressAuthor, citationNoteNum = 13, citationHash = 0}] [Str "[-@item2",Space,Str "p.",Space,Str "44]"],Str "."]]]]
16+ ,[Para [Str "With",Space,Str "some",Space,Str "markup",Space,Cite [Citation {citationId = "item1", citationPrefix = [Emph [Str "see"]], citationSuffix = [Space,Str "p.\160",Strong [Str "32"]], citationMode = NormalCitation, citationNoteNum = 14, citationHash = 0}] [Str "[*see*",Space,Str "@item1",Space,Str "p.",Space,Str "**32**]"],Str "."]]]
1717,Header 1 ("references",[],[]) [Str "References"]]
test/markdown-reader-more.native+1−1
@@ -328,7 +328,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "Author",S
328328,Header 2 ("reference-link-fallbacks",[],[]) [Str "Reference",Space,Str "link",Space,Str "fallbacks"]
329329,Para [Str "[",Emph [Str "not",Space,Str "a",Space,Str "link"],Str "]",Space,Str "[",Emph [Str "nope"],Str "]\8230"]
330330,Header 2 ("reference-link-followed-by-a-citation",[],[]) [Str "Reference",Space,Str "link",Space,Str "followed",Space,Str "by",Space,Str "a",Space,Str "citation"]
331−,Para [Str "MapReduce",Space,Str "is",Space,Str "a",Space,Str "paradigm",Space,Str "popularized",Space,Str "by",Space,Link ("",[],[]) [Str "Google"] ("http://google.com",""),Space,Cite [Citation {citationId = "mapreduce", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@mapreduce]"],Space,Str "as",Space,Str "its",SoftBreak,Str "most",Space,Str "vocal",Space,Str "proponent."]
331+,Para [Str "MapReduce",Space,Str "is",Space,Str "a",Space,Str "paradigm",Space,Str "popularized",Space,Str "by",Space,Link ("",[],[]) [Str "Google"] ("http://google.com",""),Space,Cite [Citation {citationId = "mapreduce", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 3, citationHash = 0}] [Str "[@mapreduce]"],Space,Str "as",Space,Str "its",SoftBreak,Str "most",Space,Str "vocal",Space,Str "proponent."]
332332,Header 2 ("empty-reference-links",[],[]) [Str "Empty",Space,Str "reference",Space,Str "links"]
333333,Para [Str "bar"]
334334,Para [Link ("",[],[]) [Str "foo2"] ("","")]