aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Citeproc.hs43
-rw-r--r--src/Text/Pandoc/Citeproc/CslJson.hs1
-rw-r--r--src/Text/Pandoc/Writers/Powerpoint/Output.hs12
-rw-r--r--test/command/pandoc-citeproc-31.md5
-rw-r--r--test/command/pandoc-citeproc-327.md4
-rw-r--r--test/command/pandoc-citeproc-338.md3
-rw-r--r--test/command/pandoc-citeproc-386.md4
7 files changed, 21 insertions, 51 deletions
diff --git a/src/Text/Pandoc/Citeproc.hs b/src/Text/Pandoc/Citeproc.hs
index 39760776d..9a649402e 100644
--- a/src/Text/Pandoc/Citeproc.hs
+++ b/src/Text/Pandoc/Citeproc.hs
@@ -73,7 +73,9 @@ processCitations (Pandoc meta bs) = do
let linkCites = maybe False truish $ lookupMeta "link-citations" meta
- let opts = defaultCiteprocOptions{ linkCitations = linkCites }
+ let linkBib = maybe True truish $ lookupMeta "link-bibliography" meta
+ let opts = defaultCiteprocOptions{ linkCitations = linkCites
+ , linkBibliography = linkBib }
let result = Citeproc.citeproc opts style mblang refs citations
mapM_ (report . CiteprocWarning) (resultWarnings result)
let sopts = styleOptions style
@@ -105,8 +107,7 @@ processCitations (Pandoc meta bs) = do
$ cits
return $ walk removeQuoteSpan
$ Pandoc meta''
- $ insertRefs refkvs classes meta''
- (walk fixLinks $ B.toList bibs) bs'
+ $ insertRefs refkvs classes meta'' (B.toList bibs) bs'
removeQuoteSpan :: Inline -> Inline
removeQuoteSpan (Span ("",["csl-quoted"],[]) xs) = Span nullAttr xs
@@ -210,7 +211,7 @@ getReferences mblocale (Pandoc meta bs) = do
Nothing -> return []
let addQuoteSpan (Quoted _ xs) = Span ("",["csl-quoted"],[]) xs
addQuoteSpan x = x
- return $ map (linkifyVariables . legacyDateRanges . walk addQuoteSpan)
+ return $ map (legacyDateRanges . walk addQuoteSpan)
(externalRefs ++ inlineRefs)
-- note that inlineRefs can override externalRefs
@@ -278,7 +279,7 @@ insertResolvedCitations (Cite cs ils) = do
[] -> return (Cite cs ils)
(x:xs) -> do
put xs
- return $ Cite cs (walk fixLinks $ B.toList x)
+ return $ Cite cs (B.toList x)
insertResolvedCitations x = return x
getCitations :: Locale
@@ -419,15 +420,6 @@ mvPunct moveNotes locale (Cite cs ils : Str "." : ys)
mvPunct moveNotes locale (x:xs) = x : mvPunct moveNotes locale xs
mvPunct _ _ [] = []
--- move https://doi.org etc. prefix inside link text (#6723):
-fixLinks :: [Inline] -> [Inline]
-fixLinks (Str t : Link attr [Str u1] (u2,tit) : xs)
- | u2 == t <> u1
- = Link attr [Str (t <> u1)] (u2,tit) : fixLinks xs
-fixLinks (x:xs) = x : fixLinks xs
-fixLinks [] = []
-
-
endWithPunct :: Bool -> [Inline] -> Bool
endWithPunct _ [] = False
endWithPunct onlyFinal xs@(_:_) =
@@ -523,29 +515,6 @@ legacyDateRanges ref =
_ -> DateVal d
go x = x
-linkifyVariables :: Reference Inlines -> Reference Inlines
-linkifyVariables ref =
- ref{ referenceVariables = M.mapWithKey go $ referenceVariables ref }
- where
- go "URL" x = tolink "https://" x
- go "DOI" x = tolink "https://doi.org/" (fixShortDOI x)
- go "ISBN" x = tolink "https://worldcat.org/isbn/" x
- go "PMID" x = tolink "https://www.ncbi.nlm.nih.gov/pubmed/" x
- go "PMCID" x = tolink "https://www.ncbi.nlm.nih.gov/pmc/articles/" x
- go _ x = x
- fixShortDOI x = let x' = extractText x
- in if "10/" `T.isPrefixOf` x'
- then TextVal $ T.drop 3 x'
- -- see https://shortdoi.org
- else TextVal x'
- tolink pref x = let x' = extractText x
- x'' = if "://" `T.isInfixOf` x'
- then x'
- else pref <> x'
- in if T.null x'
- then x
- else FancyVal (B.link x'' "" (B.str x'))
-
extractText :: Val Inlines -> Text
extractText (TextVal x) = x
extractText (FancyVal x) = toText x
diff --git a/src/Text/Pandoc/Citeproc/CslJson.hs b/src/Text/Pandoc/Citeproc/CslJson.hs
index 862af5188..43c1a87ec 100644
--- a/src/Text/Pandoc/Citeproc/CslJson.hs
+++ b/src/Text/Pandoc/Citeproc/CslJson.hs
@@ -28,6 +28,7 @@ fromCslJson (CslSub x) = B.subscript (fromCslJson x)
fromCslJson (CslSup x) = B.superscript (fromCslJson x)
fromCslJson (CslNoCase x) = B.spanWith ("",["nocase"],[]) (fromCslJson x)
fromCslJson (CslDiv t x) = B.spanWith ("",["csl-" <> t],[]) (fromCslJson x)
+fromCslJson (CslLink u x) = B.link u "" (fromCslJson x)
cslJsonToReferences :: ByteString -> Either String [Reference Inlines]
cslJsonToReferences raw =
diff --git a/src/Text/Pandoc/Writers/Powerpoint/Output.hs b/src/Text/Pandoc/Writers/Powerpoint/Output.hs
index feb1c08f5..e0eb72161 100644
--- a/src/Text/Pandoc/Writers/Powerpoint/Output.hs
+++ b/src/Text/Pandoc/Writers/Powerpoint/Output.hs
@@ -54,7 +54,7 @@ import System.FilePath.Glob
import Text.DocTemplates (FromContext(lookupContext), Context)
import Text.DocLayout (literal)
import Text.TeXMath
-import Text.Pandoc.Logging (LogMessage(TemplateWarning))
+import Text.Pandoc.Logging (LogMessage(PowerpointTemplateWarning))
import Text.Pandoc.Writers.Math (convertMath)
import Text.Pandoc.Writers.Powerpoint.Presentation
import Text.Pandoc.Shared (tshow, stringify)
@@ -457,11 +457,11 @@ presentationToArchive opts meta pres = do
<> "reference doc or in the default "
<> "reference doc included with pandoc."))
(Nothing, Just ((element, path, entry) :| _)) -> do
- P.logOutput (PowerpointTemplateWarning
- ("Couldn't find layout named \""
- <> layoutTitle <> "\" in provided "
- <> "reference doc. Falling back to "
- <> "the default included with pandoc."))
+ P.report (PowerpointTemplateWarning
+ ("Couldn't find layout named \""
+ <> layoutTitle <> "\" in provided "
+ <> "reference doc. Falling back to "
+ <> "the default included with pandoc."))
pure SlideLayout { slElement = element
, slPath = path
, slEntry = entry
diff --git a/test/command/pandoc-citeproc-31.md b/test/command/pandoc-citeproc-31.md
index a06b2ae41..91aaa8f0b 100644
--- a/test/command/pandoc-citeproc-31.md
+++ b/test/command/pandoc-citeproc-31.md
@@ -29,8 +29,9 @@ Foo.[^1] Bar.[^2] Baz.[^3]
::: {#refs .references .csl-bib-body}
::: {#ref-item1 .csl-entry}
-Olson HA, 'Codes, Costs, and Critiques: The Organization of Information
-in *Library Quarterly*, 1931--2004' (2006) 76 *Library Quarterly* 19
+Olson HA, '[Codes, Costs, and Critiques: The Organization of Information
+in *Library Quarterly*, 1931--2004](https://doi.org/10.1086/504343)'
+(2006) 76 *Library Quarterly* 19
:::
::: {#ref-item2 .csl-entry}
diff --git a/test/command/pandoc-citeproc-327.md b/test/command/pandoc-citeproc-327.md
index 92b29bdf8..5cfd59576 100644
--- a/test/command/pandoc-citeproc-327.md
+++ b/test/command/pandoc-citeproc-327.md
@@ -44,8 +44,8 @@ I referenced something here^\[1\]^
::: {#refs .references .csl-bib-body}
::: {#ref-LiLiaoDongWanHaiYuDiQiDongWuCiJiShengChanLiYanJiuJiShengJingGuaYiXingPingJie2017 .csl-entry}
[\[1\] ]{.csl-left-margin}[李轶平, 于旭光, 孙明, 等.
-辽东湾海域底栖动物次级生产力研究及生境适宜性评价\[J\]. 水产科学,
-2017(06): 728--734.]{.csl-right-inline}
+[辽东湾海域底栖动物次级生产力研究及生境适宜性评价](http://kns.cnki.net/kns/detail/detail.aspx?QueryID=4&CurRec=4&recid=&FileName=CHAN201706006&DbName=CJFDLAST2018&DbCode=CJFQ&yx=Y&pr=&URLID=21.1110.S.20171129.1725.006)\[J\].
+水产科学, 2017(06): 728--734.]{.csl-right-inline}
:::
:::
```
diff --git a/test/command/pandoc-citeproc-338.md b/test/command/pandoc-citeproc-338.md
index 3250b680e..c9cf0d254 100644
--- a/test/command/pandoc-citeproc-338.md
+++ b/test/command/pandoc-citeproc-338.md
@@ -28,8 +28,7 @@ references:
::: {#ref-item-1 .csl-entry}
[Wolfinger, Christine]{.smallcaps}: *Keine Angst vor Linux, Unix: ein
Lehrbuch für Linux- und Unix-Anwender*. 11., vollst. überarb. Aufl.
-Aufl. Berlin \[u.a.\] : Springer Vieweg, 2013
---- ISBN [978-3-642-32078-1](https://worldcat.org/isbn/978-3-642-32078-1)
+Aufl. Berlin \[u.a.\] : Springer Vieweg, 2013 --- ISBN 978-3-642-32078-1
:::
:::
```
diff --git a/test/command/pandoc-citeproc-386.md b/test/command/pandoc-citeproc-386.md
index 6f346e7db..ae709fc34 100644
--- a/test/command/pandoc-citeproc-386.md
+++ b/test/command/pandoc-citeproc-386.md
@@ -28,8 +28,8 @@ references:
::: {#refs .references .csl-bib-body line-spacing="2"}
::: {#ref-ding_metallic_2012 .csl-entry}
-[\[1\] ]{.csl-left-margin}[K. Ding, C. Z. Ning, *Light Sci. Appl.*
-**2012**, *1*, e20.]{.csl-right-inline}
+[[\[1\]K. Ding, C. Z. Ning, *Light Sci. Appl.* **2012**, *1*,
+e20](https://doi.org/10.1038/lsa.2012.20)]{.csl-left-margin}.
:::
:::
```