on master help sign in
Fix .tex.lhs patch, add some test cases
eaa190fJasper Van der Jeugt
src/Hakyll/Web/Pandoc/FileType.hs+7−3
@@ -8,7 +8,7 @@ module Hakyll.Web.Pandoc.FileType
8
8
9
9
10--------------------------------------------------------------------------------
10--------------------------------------------------------------------------------
11−import System.FilePath (takeExtension)
11+import System.FilePath (splitExtension)
12
12
13
13
14--------------------------------------------------------------------------------
14--------------------------------------------------------------------------------
@@ -36,12 +36,16 @@ data FileType
36--------------------------------------------------------------------------------
36--------------------------------------------------------------------------------
37-- | Get the file type for a certain file. The type is determined by extension.
37-- | Get the file type for a certain file. The type is determined by extension.
38fileType :: FilePath -> FileType
38fileType :: FilePath -> FileType
39−fileType = uncurry fileType' . splitExtension
39+fileType = uncurry fileType' . splitExtension
40 where
40 where
41 fileType' _ ".css" = Css
41 fileType' _ ".css" = Css
42 fileType' _ ".htm" = Html
42 fileType' _ ".htm" = Html
43 fileType' _ ".html" = Html
43 fileType' _ ".html" = Html
44− fileType' f ".lhs" = LiterateHaskell (fileType' (takeExtension f))
44+ fileType' f ".lhs" = LiterateHaskell $ case fileType f of
45+ -- If no extension is given, default to Markdown + LiterateHaskell
46+ Binary -> Markdown
47+ -- Otherwise, LaTeX + LiterateHaskell or whatever the user specified
48+ x -> x
45 fileType' _ ".markdown" = Markdown
49 fileType' _ ".markdown" = Markdown
46 fileType' _ ".md" = Markdown
50 fileType' _ ".md" = Markdown
47 fileType' _ ".mdn" = Markdown
51 fileType' _ ".mdn" = Markdown
tests/Hakyll/Web/Pandoc/FileType/Tests.hsnew file+26
@@ -0,0 +1,26 @@
1+--------------------------------------------------------------------------------
2+{-# LANGUAGE OverloadedStrings #-}
3+module Hakyll.Web.Pandoc.FileType.Tests
4+ ( tests
5+ ) where
6+
7+
8+--------------------------------------------------------------------------------
9+import Test.Framework (Test, testGroup)
10+import Test.HUnit ((@=?))
11+
12+
13+--------------------------------------------------------------------------------
14+import Hakyll.Web.Pandoc.FileType
15+import TestSuite.Util
16+
17+
18+--------------------------------------------------------------------------------
19+tests :: Test
20+tests = testGroup "Hakyll.Web.Pandoc.FileType.Tests" $
21+ fromAssertions "fileType"
22+ [ Markdown @=? fileType "index.md"
23+ , Rst @=? fileType "about/foo.rst"
24+ , LiterateHaskell Markdown @=? fileType "posts/bananas.lhs"
25+ , LiterateHaskell LaTeX @=? fileType "posts/bananas.tex.lhs"
26+ ]
tests/TestSuite.hs+2
@@ -20,6 +20,7 @@ import qualified Hakyll.Core.UnixFilter.Tests
20import qualified Hakyll.Core.Util.String.Tests
20import qualified Hakyll.Core.Util.String.Tests
21import qualified Hakyll.Web.Html.RelativizeUrls.Tests
21import qualified Hakyll.Web.Html.RelativizeUrls.Tests
22import qualified Hakyll.Web.Html.Tests
22import qualified Hakyll.Web.Html.Tests
23+import qualified Hakyll.Web.Pandoc.FileType.Tests
23import qualified Hakyll.Web.Template.Context.Tests
24import qualified Hakyll.Web.Template.Context.Tests
24import qualified Hakyll.Web.Template.Tests
25import qualified Hakyll.Web.Template.Tests
25
26
@@ -38,6 +39,7 @@ main = defaultMain
38 , Hakyll.Core.Util.String.Tests.tests
39 , Hakyll.Core.Util.String.Tests.tests
39 , Hakyll.Web.Html.RelativizeUrls.Tests.tests
40 , Hakyll.Web.Html.RelativizeUrls.Tests.tests
40 , Hakyll.Web.Html.Tests.tests
41 , Hakyll.Web.Html.Tests.tests
42+ , Hakyll.Web.Pandoc.FileType.Tests.tests
41 , Hakyll.Web.Template.Context.Tests.tests
43 , Hakyll.Web.Template.Context.Tests.tests
42 , Hakyll.Web.Template.Tests.tests
44 , Hakyll.Web.Template.Tests.tests
43 ]
45 ]