summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/example/index.html2
-rw-r--r--src/Hakyll/Core/UnixFilter.hs19
-rw-r--r--src/Hakyll/Web/Html.hs1
-rw-r--r--tests/Hakyll/Web/Html/Tests.hs2
-rw-r--r--web/examples.markdown2
5 files changed, 17 insertions, 9 deletions
diff --git a/data/example/index.html b/data/example/index.html
index 16a42f9..6dd191d 100644
--- a/data/example/index.html
+++ b/data/example/index.html
@@ -13,4 +13,4 @@ title: Home
<h2>Posts</h2>
$partial("templates/post-list.html")$
-<p>…or you can find more in the <a href="/archive.html">archives</a>.
+<p>…or you can find more in the <a href="/archive.html">archives</a>.</p>
diff --git a/src/Hakyll/Core/UnixFilter.hs b/src/Hakyll/Core/UnixFilter.hs
index fd3c335..edc8eac 100644
--- a/src/Hakyll/Core/UnixFilter.hs
+++ b/src/Hakyll/Core/UnixFilter.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
--------------------------------------------------------------------------------
-- | A Compiler that supports unix filters.
module Hakyll.Core.UnixFilter
@@ -19,7 +21,6 @@ import System.Exit (ExitCode (..))
import System.IO (Handle, hClose, hFlush, hGetContents,
hPutStr, hSetEncoding, localeEncoding)
import System.Process
-import qualified System.Info as System
--------------------------------------------------------------------------------
import Hakyll.Core.Compiler
@@ -105,17 +106,19 @@ unixFilterIO :: Monoid o
-> i
-> IO (o, String, ExitCode)
unixFilterIO writer reader programName args input = do
- -- The problem on Windows is that `proc` is that it is unable to execute
+ -- The problem on Windows is that `proc` is unable to execute
-- batch stubs (eg. anything created using 'gem install ...') even if its in
-- `$PATH`. A solution to this issue is to execute the batch file explicitly
-- using `cmd /c batchfile` but there is no rational way to know where said
-- batchfile is on the system. Hence, we detect windows using the
- -- `System.Info` module and then instead of using `proc` to create the
- -- process, use `shell` instead which will be able to execute everything
- -- `proc` can, and this can deal with batch files as well.
- let pr = if System.os == "mingw32"
- then shell $ unwords (programName : args)
- else proc programName args
+ -- CPP and instead of using `proc` to create the process, use `shell`
+ -- which will be able to execute everything `proc` can
+ -- as well as batch files.
+#ifdef mingw32_HOST_OS
+ let pr = shell $ unwords (programName : args)
+#else
+ let pr = proc programName args
+#endif
(Just inh, Just outh, Just errh, pid) <-
createProcess pr
diff --git a/src/Hakyll/Web/Html.hs b/src/Hakyll/Web/Html.hs
index f5a7ccc..f29a478 100644
--- a/src/Hakyll/Web/Html.hs
+++ b/src/Hakyll/Web/Html.hs
@@ -124,6 +124,7 @@ toSiteRoot = emptyException . joinPath . map parent
emptyException x = x
relevant "." = False
relevant "/" = False
+ relevant "./" = False
relevant _ = True
diff --git a/tests/Hakyll/Web/Html/Tests.hs b/tests/Hakyll/Web/Html/Tests.hs
index e150ea2..bad5ebc 100644
--- a/tests/Hakyll/Web/Html/Tests.hs
+++ b/tests/Hakyll/Web/Html/Tests.hs
@@ -59,6 +59,8 @@ tests = testGroup "Hakyll.Web.Html.Tests" $ concat
, "." @=? toSiteRoot "index.html"
, "." @=? toSiteRoot "/index.html"
, "../.." @=? toSiteRoot "foo/bar/qux"
+ , ".." @=? toSiteRoot "./foo/bar.html"
+ , ".." @=? toSiteRoot "/foo/./bar.html"
]
, fromAssertions "isExternal"
diff --git a/web/examples.markdown b/web/examples.markdown
index 9174c1d..e0aac2e 100644
--- a/web/examples.markdown
+++ b/web/examples.markdown
@@ -85,6 +85,8 @@ this list. This list has no particular ordering.
[source](https://github.com/TikhonJelvis/website)
- <https://secure.plaimi.net/>,
[source](https://github.com/plaimi/www)
+- <http://duplode.github.io/>,
+ [source](https://github.com/duplode/duplode.github.io/tree/sources)
## Hakyll 3.X