aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2019-02-10 18:15:55 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2019-02-10 18:15:55 -0800
commit9abb458cbbcf93f6cd0f435c26ce67d77762e3ac (patch)
treee78772f45e2372cf071ce4f0f79accd29cdbbf07 /src/Text/Pandoc/Writers
parent3c6d52df342a02f4d772383ef91b1ea050eb9593 (diff)
downloadpandoc-9abb458cbbcf93f6cd0f435c26ce67d77762e3ac.tar.gz
Implement aria roles doc-bibliography, doc-biblioentry, doc-biblioref.
Note that doc-biblioref is only used when link-citations produces links, since it belongs on links. See #4213.
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index 2ae3d819c..6fb4bbfb1 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -731,7 +731,10 @@ blockToHtml opts (Div attr@(ident, classes, kvs') bs) = do
slideVariant <- gets stSlideVariant
let kvs = [(k,v) | (k,v) <- kvs', k /= "width"] ++
[("style", "width:" ++ w ++ ";")
- | ("width",w) <- kvs', "column" `elem` classes]
+ | ("width",w) <- kvs', "column" `elem` classes] ++
+ [("role", "doc-bibliography") | ident == "refs" && html5] ++
+ [("role", "doc-biblioentry")
+ | "ref-item" `isPrefixOf` ident && html5]
let speakerNotes = "notes" `elem` classes
-- we don't want incremental output inside speaker notes, see #1394
let opts' = if | speakerNotes -> opts{ writerIncremental = False }
@@ -1188,13 +1191,18 @@ inlineToHtml opts inline = do
_ | html5 -> link ! H5.customAttribute
"role" "doc-noteref"
_ -> link
- (Cite cits il)-> do contents <- inlineListToHtml opts il
+ (Cite cits il)-> do contents <- inlineListToHtml opts (walk addRoleToLink il)
let citationIds = unwords $ map citationId cits
let result = H.span ! A.class_ "citation" $ contents
return $ if html5
then result ! customAttribute "data-cites" (toValue citationIds)
else result
+addRoleToLink :: Inline -> Inline
+addRoleToLink (Link (id',classes,kvs) ils (src,tit)) =
+ Link (id',classes,("role","doc-biblioref"):kvs) ils (src,tit)
+addRoleToLink x = x
+
blockListToNote :: PandocMonad m
=> WriterOptions -> String -> [Block]
-> StateT WriterState m Html