forked from mirrors/nixpkgs
66 lines
2.6 KiB
Diff
66 lines
2.6 KiB
Diff
|
commit a03d3b043458f45d29ba32068a77c0d3b8a4223f
|
||
|
Author: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
|
||
|
Date: Fri Apr 2 15:14:02 2021 +0200
|
||
|
|
||
|
Allow compilation with pandoc 2.12 and 2.13
|
||
|
|
||
|
pandoc 2.13 introduced the following breakages for gitit:
|
||
|
|
||
|
* UTF8.readFile now returns a Text which is actually ideal for gitit.
|
||
|
If pandoc is new enough we just make readFileUTF8 an alias for
|
||
|
UTF8.readFile.
|
||
|
|
||
|
* Text.Pandoc.Shared no longer exports substitute. In order to be
|
||
|
conservative I've chosen to just copy the substitute function from
|
||
|
pandoc 2.11.4. I need this patch kind of urgently so I didn't want to
|
||
|
make any changes or refactors independently from upstream if
|
||
|
avoidable. However, I'd be happy to rebase this PR branch to adopt a
|
||
|
different solution to just copying the function.
|
||
|
|
||
|
diff --git a/src/Network/Gitit/Authentication.hs b/src/Network/Gitit/Authentication.hs
|
||
|
index 4c240e7..c0f92fd 100644
|
||
|
--- a/src/Network/Gitit/Authentication.hs
|
||
|
+++ b/src/Network/Gitit/Authentication.hs
|
||
|
@@ -44,7 +44,7 @@ import System.Exit
|
||
|
import System.Log.Logger (logM, Priority(..))
|
||
|
import Data.Char (isAlphaNum, isAlpha)
|
||
|
import qualified Data.Map as M
|
||
|
-import Text.Pandoc.Shared (substitute)
|
||
|
+import Data.List (stripPrefix)
|
||
|
import Data.Maybe (isJust, fromJust, isNothing, fromMaybe)
|
||
|
import Network.URL (exportURL, add_param, importURL)
|
||
|
import Network.BSD (getHostName)
|
||
|
@@ -54,6 +54,16 @@ import Codec.Binary.UTF8.String (encodeString)
|
||
|
import Data.ByteString.UTF8 (toString)
|
||
|
import Network.Gitit.Rpxnow as R
|
||
|
|
||
|
+-- | Replace each occurrence of one sublist in a list with another.
|
||
|
+-- Vendored in from pandoc 2.11.4 as 2.12 removed this function.
|
||
|
+substitute :: (Eq a) => [a] -> [a] -> [a] -> [a]
|
||
|
+substitute _ _ [] = []
|
||
|
+substitute [] _ xs = xs
|
||
|
+substitute target replacement lst@(x:xs) =
|
||
|
+ case stripPrefix target lst of
|
||
|
+ Just lst' -> replacement ++ substitute target replacement lst'
|
||
|
+ Nothing -> x : substitute target replacement xs
|
||
|
+
|
||
|
data ValidationType = Register
|
||
|
| ResetPassword
|
||
|
deriving (Show,Read)
|
||
|
diff --git a/src/Network/Gitit/Util.hs b/src/Network/Gitit/Util.hs
|
||
|
index c5e9fe5..067130a 100644
|
||
|
--- a/src/Network/Gitit/Util.hs
|
||
|
+++ b/src/Network/Gitit/Util.hs
|
||
|
@@ -45,7 +45,11 @@ import Network.URL (encString)
|
||
|
|
||
|
-- | Read file as UTF-8 string. Encode filename as UTF-8.
|
||
|
readFileUTF8 :: FilePath -> IO Text
|
||
|
+#if MIN_VERSION_pandoc(2,12,0)
|
||
|
+readFileUTF8 = UTF8.readFile
|
||
|
+#else
|
||
|
readFileUTF8 = fmap T.pack . UTF8.readFile
|
||
|
+#endif
|
||
|
|
||
|
-- | Perform a function a directory and return to working directory.
|
||
|
inDir :: FilePath -> IO a -> IO a
|