Markdown reader: Set citationNoteNum accurately in citations.
This also changes stateLastNoteNumber -> stateNoteNumber.
This commit is contained in:
parent
b2f3074988
commit
a59ae96062
7 changed files with 49 additions and 28 deletions
|
@ -1137,7 +1137,7 @@ data ParserState = ParserState
|
||||||
stateNotes' :: NoteTable', -- ^ List of notes (parsed bodies)
|
stateNotes' :: NoteTable', -- ^ List of notes (parsed bodies)
|
||||||
stateNoteRefs :: Set.Set Text, -- ^ List of note references used
|
stateNoteRefs :: Set.Set Text, -- ^ List of note references used
|
||||||
stateInNote :: Bool, -- ^ True if parsing note contents
|
stateInNote :: Bool, -- ^ True if parsing note contents
|
||||||
stateLastNoteNumber :: Int, -- ^ Last note number for citations
|
stateNoteNumber :: Int, -- ^ Last note number for citations
|
||||||
stateMeta :: Meta, -- ^ Document metadata
|
stateMeta :: Meta, -- ^ Document metadata
|
||||||
stateMeta' :: F Meta, -- ^ Document metadata
|
stateMeta' :: F Meta, -- ^ Document metadata
|
||||||
stateCitations :: M.Map Text Text, -- ^ RST-style citations
|
stateCitations :: M.Map Text Text, -- ^ RST-style citations
|
||||||
|
@ -1250,7 +1250,7 @@ defaultParserState =
|
||||||
stateNotes' = M.empty,
|
stateNotes' = M.empty,
|
||||||
stateNoteRefs = Set.empty,
|
stateNoteRefs = Set.empty,
|
||||||
stateInNote = False,
|
stateInNote = False,
|
||||||
stateLastNoteNumber = 0,
|
stateNoteNumber = 0,
|
||||||
stateMeta = nullMeta,
|
stateMeta = nullMeta,
|
||||||
stateMeta' = return nullMeta,
|
stateMeta' = return nullMeta,
|
||||||
stateCitations = M.empty,
|
stateCitations = M.empty,
|
||||||
|
|
|
@ -36,6 +36,7 @@ import Text.Pandoc.Emoji (emojiToInline)
|
||||||
import Text.Pandoc.Error
|
import Text.Pandoc.Error
|
||||||
import Text.Pandoc.Logging
|
import Text.Pandoc.Logging
|
||||||
import Text.Pandoc.Options
|
import Text.Pandoc.Options
|
||||||
|
import Text.Pandoc.Walk (walk)
|
||||||
import Text.Pandoc.Parsing hiding (tableWith)
|
import Text.Pandoc.Parsing hiding (tableWith)
|
||||||
import Text.Pandoc.Readers.HTML (htmlInBalanced, htmlTag, isBlockTag,
|
import Text.Pandoc.Readers.HTML (htmlInBalanced, htmlTag, isBlockTag,
|
||||||
isCommentTag, isInlineTag, isTextTag)
|
isCommentTag, isInlineTag, isTextTag)
|
||||||
|
@ -380,6 +381,7 @@ noteBlock = do
|
||||||
char ':'
|
char ':'
|
||||||
optional blankline
|
optional blankline
|
||||||
optional indentSpaces
|
optional indentSpaces
|
||||||
|
updateState $ \st -> st{ stateInNote = True }
|
||||||
first <- rawLines
|
first <- rawLines
|
||||||
rest <- many $ try $ blanklines >> indentSpaces >> rawLines
|
rest <- many $ try $ blanklines >> indentSpaces >> rawLines
|
||||||
let raw = T.unlines (first:rest) <> "\n"
|
let raw = T.unlines (first:rest) <> "\n"
|
||||||
|
@ -390,7 +392,8 @@ noteBlock = do
|
||||||
Just _ -> logMessage $ DuplicateNoteReference ref pos
|
Just _ -> logMessage $ DuplicateNoteReference ref pos
|
||||||
Nothing -> return ()
|
Nothing -> return ()
|
||||||
updateState $ \s -> s { stateNotes' =
|
updateState $ \s -> s { stateNotes' =
|
||||||
M.insert ref (pos, parsed) oldnotes }
|
M.insert ref (pos, parsed) oldnotes,
|
||||||
|
stateInNote = False }
|
||||||
return mempty
|
return mempty
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -1866,7 +1869,9 @@ note :: PandocMonad m => MarkdownParser m (F Inlines)
|
||||||
note = try $ do
|
note = try $ do
|
||||||
guardEnabled Ext_footnotes
|
guardEnabled Ext_footnotes
|
||||||
ref <- noteMarker
|
ref <- noteMarker
|
||||||
updateState $ \st -> st{ stateNoteRefs = Set.insert ref (stateNoteRefs st) }
|
updateState $ \st -> st{ stateNoteRefs = Set.insert ref (stateNoteRefs st)
|
||||||
|
, stateNoteNumber = stateNoteNumber st + 1 }
|
||||||
|
noteNum <- stateNoteNumber <$> getState
|
||||||
return $ do
|
return $ do
|
||||||
notes <- asksF stateNotes'
|
notes <- asksF stateNotes'
|
||||||
case M.lookup ref notes of
|
case M.lookup ref notes of
|
||||||
|
@ -1877,13 +1882,21 @@ note = try $ do
|
||||||
-- notes, to avoid infinite looping with notes inside
|
-- notes, to avoid infinite looping with notes inside
|
||||||
-- notes:
|
-- notes:
|
||||||
let contents' = runF contents st{ stateNotes' = M.empty }
|
let contents' = runF contents st{ stateNotes' = M.empty }
|
||||||
return $ B.note contents'
|
let addCitationNoteNum (c@Citation{}) =
|
||||||
|
c{ citationNoteNum = noteNum }
|
||||||
|
let adjustCite (Cite cs ils) =
|
||||||
|
Cite (map addCitationNoteNum cs) ils
|
||||||
|
adjustCite x = x
|
||||||
|
return $ B.note $ walk adjustCite contents'
|
||||||
|
|
||||||
inlineNote :: PandocMonad m => MarkdownParser m (F Inlines)
|
inlineNote :: PandocMonad m => MarkdownParser m (F Inlines)
|
||||||
inlineNote = try $ do
|
inlineNote = try $ do
|
||||||
guardEnabled Ext_inline_notes
|
guardEnabled Ext_inline_notes
|
||||||
char '^'
|
char '^'
|
||||||
|
updateState $ \st -> st{ stateInNote = True
|
||||||
|
, stateNoteNumber = stateNoteNumber st + 1 }
|
||||||
contents <- inlinesInBalancedBrackets
|
contents <- inlinesInBalancedBrackets
|
||||||
|
updateState $ \st -> st{ stateInNote = False }
|
||||||
return $ B.note . B.para <$> contents
|
return $ B.note . B.para <$> contents
|
||||||
|
|
||||||
rawLaTeXInline' :: PandocMonad m => MarkdownParser m (F Inlines)
|
rawLaTeXInline' :: PandocMonad m => MarkdownParser m (F Inlines)
|
||||||
|
@ -2004,6 +2017,12 @@ emoji = try $ do
|
||||||
cite :: PandocMonad m => MarkdownParser m (F Inlines)
|
cite :: PandocMonad m => MarkdownParser m (F Inlines)
|
||||||
cite = do
|
cite = do
|
||||||
guardEnabled Ext_citations
|
guardEnabled Ext_citations
|
||||||
|
-- We only use stateNoteNumber for assigning citationNoteNum,
|
||||||
|
-- so we just assume that all citations produce notes.
|
||||||
|
-- citationNoteNum doesn't affect non-note styles.
|
||||||
|
inNote <- stateInNote <$> getState
|
||||||
|
unless inNote $
|
||||||
|
updateState $ \st -> st{ stateNoteNumber = stateNoteNumber st + 1 }
|
||||||
textualCite
|
textualCite
|
||||||
<|> do (cs, raw) <- withRaw normalCite
|
<|> do (cs, raw) <- withRaw normalCite
|
||||||
return $ flip B.cite (B.text raw) <$> cs
|
return $ flip B.cite (B.text raw) <$> cs
|
||||||
|
@ -2011,13 +2030,14 @@ cite = do
|
||||||
textualCite :: PandocMonad m => MarkdownParser m (F Inlines)
|
textualCite :: PandocMonad m => MarkdownParser m (F Inlines)
|
||||||
textualCite = try $ do
|
textualCite = try $ do
|
||||||
(suppressAuthor, key) <- citeKey
|
(suppressAuthor, key) <- citeKey
|
||||||
|
noteNum <- stateNoteNumber <$> getState
|
||||||
let first = Citation{ citationId = key
|
let first = Citation{ citationId = key
|
||||||
, citationPrefix = []
|
, citationPrefix = []
|
||||||
, citationSuffix = []
|
, citationSuffix = []
|
||||||
, citationMode = if suppressAuthor
|
, citationMode = if suppressAuthor
|
||||||
then SuppressAuthor
|
then SuppressAuthor
|
||||||
else AuthorInText
|
else AuthorInText
|
||||||
, citationNoteNum = 0
|
, citationNoteNum = noteNum
|
||||||
, citationHash = 0
|
, citationHash = 0
|
||||||
}
|
}
|
||||||
mbrest <- option Nothing $ try $ spnl >> Just <$> withRaw normalCite
|
mbrest <- option Nothing $ try $ spnl >> Just <$> withRaw normalCite
|
||||||
|
@ -2090,6 +2110,7 @@ citation = try $ do
|
||||||
pref <- prefix
|
pref <- prefix
|
||||||
(suppress_author, key) <- citeKey
|
(suppress_author, key) <- citeKey
|
||||||
suff <- suffix
|
suff <- suffix
|
||||||
|
noteNum <- stateNoteNumber <$> getState
|
||||||
return $ do
|
return $ do
|
||||||
x <- pref
|
x <- pref
|
||||||
y <- suff
|
y <- suff
|
||||||
|
@ -2099,7 +2120,7 @@ citation = try $ do
|
||||||
, citationMode = if suppress_author
|
, citationMode = if suppress_author
|
||||||
then SuppressAuthor
|
then SuppressAuthor
|
||||||
else NormalCitation
|
else NormalCitation
|
||||||
, citationNoteNum = 0
|
, citationNoteNum = noteNum
|
||||||
, citationHash = 0
|
, citationHash = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -471,7 +471,7 @@ tests = [ testGroup "inline code"
|
||||||
, citationPrefix = []
|
, citationPrefix = []
|
||||||
, citationSuffix = []
|
, citationSuffix = []
|
||||||
, citationMode = AuthorInText
|
, citationMode = AuthorInText
|
||||||
, citationNoteNum = 0
|
, citationNoteNum = 1
|
||||||
, citationHash = 0
|
, citationHash = 0
|
||||||
}
|
}
|
||||||
] "@item1")
|
] "@item1")
|
||||||
|
@ -481,12 +481,12 @@ tests = [ testGroup "inline code"
|
||||||
, citationPrefix = []
|
, citationPrefix = []
|
||||||
, citationSuffix = []
|
, citationSuffix = []
|
||||||
, citationMode = AuthorInText
|
, citationMode = AuthorInText
|
||||||
, citationNoteNum = 0
|
, citationNoteNum = 1
|
||||||
, citationHash = 0
|
, citationHash = 0
|
||||||
}
|
}
|
||||||
] "@1657:huyghens")
|
] "@1657:huyghens")
|
||||||
]
|
]
|
||||||
, let citation = cite [Citation "cita" [] [] AuthorInText 0 0] (str "@cita")
|
, let citation = cite [Citation "cita" [] [] AuthorInText 1 0] (str "@cita")
|
||||||
in testGroup "footnote/link following citation" -- issue #2083
|
in testGroup "footnote/link following citation" -- issue #2083
|
||||||
[ "footnote" =:
|
[ "footnote" =:
|
||||||
T.unlines [ "@cita[^note]"
|
T.unlines [ "@cita[^note]"
|
||||||
|
@ -523,7 +523,7 @@ tests = [ testGroup "inline code"
|
||||||
, "regular citation" =:
|
, "regular citation" =:
|
||||||
"@cita [foo]" =?>
|
"@cita [foo]" =?>
|
||||||
para (
|
para (
|
||||||
cite [Citation "cita" [] [Str "foo"] AuthorInText 0 0]
|
cite [Citation "cita" [] [Str "foo"] AuthorInText 1 0]
|
||||||
(str "@cita" <> space <> str "[foo]")
|
(str "@cita" <> space <> str "[foo]")
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
% pandoc -t native
|
% pandoc -t native
|
||||||
(@citation
|
(@citation
|
||||||
^D
|
^D
|
||||||
[Para [Str "(",Cite [Citation {citationId = "citation", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@citation"]]]
|
[Para [Str "(",Cite [Citation {citationId = "citation", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 1, citationHash = 0}] [Str "@citation"]]]
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
% pandoc -t native
|
% pandoc -t native
|
||||||
foo^[bar [@doe]]
|
foo^[bar [@doe]]
|
||||||
^D
|
^D
|
||||||
[Para [Str "foo",Note [Para [Str "bar",Space,Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@doe]"]]]]]
|
[Para [Str "foo",Note [Para [Str "bar",Space,Cite [Citation {citationId = "doe", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 1, citationHash = 0}] [Str "[@doe]"]]]]]
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
[Header 1 ("pandoc-with-citeproc-hs",[],[]) [Str "Pandoc",Space,Str "with",Space,Str "citeproc-hs"]
|
[Header 1 ("pandoc-with-citeproc-hs",[],[]) [Str "Pandoc",Space,Str "with",Space,Str "citeproc-hs"]
|
||||||
,BulletList
|
,BulletList
|
||||||
[[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [Str "[@nonexistent]"]]]
|
[[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = NormalCitation, citationNoteNum = 1, citationHash = 0}] [Str "[@nonexistent]"]]]
|
||||||
,[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@nonexistent"]]]
|
,[Para [Cite [Citation {citationId = "nonexistent", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 2, citationHash = 0}] [Str "@nonexistent"]]]
|
||||||
,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 0, citationHash = 0}] [Str "@item1"],Space,Str "says",Space,Str "blah."]]
|
,[Para [Cite [Citation {citationId = "item1", citationPrefix = [], citationSuffix = [], citationMode = AuthorInText, citationNoteNum = 3, citationHash = 0}] [Str "@item1"],Space,Str "says",Space,Str "blah."]]
|
||||||
,[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."]]
|
,[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."]]
|
||||||
,[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."]]
|
,[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."]]
|
||||||
,[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."]]
|
,[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."]]
|
||||||
,[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 "."]]]]
|
,[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 "."]]]]
|
||||||
,[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 "."]]
|
,[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 "."]]
|
||||||
,[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 "."]]
|
,[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 "."]]
|
||||||
,[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 "."]]]]
|
,[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 "."]]]]
|
||||||
,[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 "."]]
|
,[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 "."]]
|
||||||
,[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 "."]]
|
,[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 "."]]
|
||||||
,[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 "."]]]]
|
,[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 "."]]]]
|
||||||
,[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 "."]]]
|
,[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 "."]]]
|
||||||
,Header 1 ("references",[],[]) [Str "References"]]
|
,Header 1 ("references",[],[]) [Str "References"]]
|
||||||
|
|
|
@ -328,7 +328,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "Author",S
|
||||||
,Header 2 ("reference-link-fallbacks",[],[]) [Str "Reference",Space,Str "link",Space,Str "fallbacks"]
|
,Header 2 ("reference-link-fallbacks",[],[]) [Str "Reference",Space,Str "link",Space,Str "fallbacks"]
|
||||||
,Para [Str "[",Emph [Str "not",Space,Str "a",Space,Str "link"],Str "]",Space,Str "[",Emph [Str "nope"],Str "]\8230"]
|
,Para [Str "[",Emph [Str "not",Space,Str "a",Space,Str "link"],Str "]",Space,Str "[",Emph [Str "nope"],Str "]\8230"]
|
||||||
,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"]
|
,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"]
|
||||||
,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."]
|
,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."]
|
||||||
,Header 2 ("empty-reference-links",[],[]) [Str "Empty",Space,Str "reference",Space,Str "links"]
|
,Header 2 ("empty-reference-links",[],[]) [Str "Empty",Space,Str "reference",Space,Str "links"]
|
||||||
,Para [Str "bar"]
|
,Para [Str "bar"]
|
||||||
,Para [Link ("",[],[]) [Str "foo2"] ("","")]
|
,Para [Link ("",[],[]) [Str "foo2"] ("","")]
|
||||||
|
|
Loading…
Add table
Reference in a new issue