From 471317f4fe0a6aa6f16a27cd8a77d5cc5c6ee1f0 Mon Sep 17 00:00:00 2001 From: Albert Krewinkel Date: Wed, 12 Oct 2022 15:38:11 +0200 Subject: Extensions: add new function `disableExtensions`. The function removes all elements in a second set from a base set. Extensions in the second set that are not in the base set are ignored. --- src/Text/Pandoc/Extensions.hs | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src') 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 -- cgit v1.2.3