summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Extensions.hs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Extensions.hs b/src/Text/Pandoc/Extensions.hs
index efe4ed879..eedb823ae 100644
--- a/src/Text/Pandoc/Extensions.hs
+++ b/src/Text/Pandoc/Extensions.hs
@@ -23,6 +23,7 @@ module Text.Pandoc.Extensions ( Extension(..)
, extensionEnabled
, enableExtension
, disableExtension
+ , disableExtensions
, getDefaultExtensions
, getAllExtensions
, pandocExtensions
@@ -193,6 +194,14 @@ enableExtension x (Extensions exts) = Extensions (Set.insert x exts)
disableExtension :: Extension -> Extensions -> Extensions
disableExtension x (Extensions exts) = Extensions (Set.delete x exts)
+-- | Removes the extensions in the second set from those in the first.
+disableExtensions :: Extensions -- ^ base set
+ -> Extensions -- ^ extensions to remove
+ -> Extensions
+disableExtensions (Extensions base) (Extensions remove) = Extensions $
+ -- keep only those extensions that are in `base` but not in `remove`.
+ base `Set.difference` remove
+
-- | Extensions to be used with pandoc-flavored markdown.
pandocExtensions :: Extensions
pandocExtensions = extensionsFromList