aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <[email protected]>2025-03-05 13:24:05 -0800
committerJohn MacFarlane <[email protected]>2025-03-05 13:24:05 -0800
commite73b9ee1d80b0732d2e422b3ab30260b646e47a2 (patch)
tree14412825be46f92bd34f133cd8952704e9aff199 /src
parentb58381a0d498a3c6a1e45f69807366e8674448d7 (diff)
Disable citations extension in writers if `--citeproc` is used.
Otherwise we get undesirable results, as the format's native citation mechanism is used instead of (or in addition to) the citeproc-generated citations. Closes #10662.
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/App/OutputSettings.hs7
-rw-r--r--src/Text/Pandoc/Filter.hs2
2 files changed, 7 insertions, 2 deletions
diff --git a/src/Text/Pandoc/App/OutputSettings.hs b/src/Text/Pandoc/App/OutputSettings.hs
index 38cd35455..3824ecbda 100644
--- a/src/Text/Pandoc/App/OutputSettings.hs
+++ b/src/Text/Pandoc/App/OutputSettings.hs
@@ -38,6 +38,7 @@ import System.FilePath
import System.IO (stdout)
import Text.Pandoc.Chunks (PathTemplate(..))
import Text.Pandoc
+import Text.Pandoc.Filter (Filter(CiteprocFilter))
import Text.Pandoc.App.Opt (Opt (..))
import Text.Pandoc.App.CommandLineOptions (engines)
import Text.Pandoc.Format (FlavoredFormat (..), applyExtensionsDiff,
@@ -121,7 +122,7 @@ optToOutputSettings scriptingEngine opts = do
then getAndCompile (tp <.> T.unpack format)
else throwError e)
- (writer, writerExts, mtemplate) <-
+ (writer, writerExts', mtemplate) <-
if "lua" `T.isSuffixOf` format
then do
let path = T.unpack format
@@ -150,6 +151,10 @@ optToOutputSettings scriptingEngine opts = do
tmpl <- processCustomTemplate (compileDefaultTemplate format)
return (w, wexts, tmpl)
+ -- see #10662:
+ let writerExts = if CiteprocFilter `elem` optFilters opts
+ then disableExtension Ext_citations writerExts'
+ else writerExts'
let addSyntaxMap existingmap f = do
res <- liftIO (parseSyntaxDefinition f)
diff --git a/src/Text/Pandoc/Filter.hs b/src/Text/Pandoc/Filter.hs
index 7b51f7239..36700d5f6 100644
--- a/src/Text/Pandoc/Filter.hs
+++ b/src/Text/Pandoc/Filter.hs
@@ -41,7 +41,7 @@ import Control.Monad (foldM, when)
data Filter = LuaFilter FilePath
| JSONFilter FilePath
| CiteprocFilter -- built-in citeproc
- deriving (Show, Generic)
+ deriving (Show, Generic, Eq)
instance FromJSON Filter where
parseJSON node =