From 919e953d2035836cf537beb31610e7b2edce8833 Mon Sep 17 00:00:00 2001 From: Mirek Kratochvil Date: Thu, 25 May 2023 00:42:26 +0200 Subject: link modification works --- Utils.hs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'Utils.hs') diff --git a/Utils.hs b/Utils.hs index c609262..f95351e 100644 --- a/Utils.hs +++ b/Utils.hs @@ -3,6 +3,11 @@ module Utils where import Control.Monad.IO.Class import Data.List.Extra (stripSuffix) import Data.Maybe (isJust) +import Text.Pandoc.Definition +import qualified Text.Pandoc.Walk +import qualified Data.Text as T + +import Types -- | A shortcut for `liftIO`. io :: MonadIO m => IO a -> m a @@ -20,3 +25,15 @@ hasSuffix s = isJust . stripSuffix s -- | The same second as from arrows et al. second :: (a -> b) -> (c, a) -> (c, b) second f (a, b) = (a, f b) + +-- | A pandoc walker for printing the URLs. +walkURLs :: (FilePath -> Site FilePath) -> Text.Pandoc.Definition.Pandoc -> Site Text.Pandoc.Definition.Pandoc +walkURLs f = Text.Pandoc.Walk.walkM go + where + go (Link a i (u,t)) = do + u' <- T.pack <$> f (T.unpack u) + pure $ Link a i (u',t) + go (Image a i (u,t)) = do + u' <- T.pack <$> f (T.unpack u) + pure $ Image a i (u',t) + go x = pure x -- cgit v1.2.3