on master help sign in
Fix .tex.lhs patch, add some test cases
commiteaa190f1e3029573a4bf4ecf238d3b8c236ad4fa authorJasper Van der Jeugt <m@jaspervdj.be> dateMon 28 Jan 2013, 11:36 (14 years ago) parentd2d5213
3 files changed+35−3
src/Hakyll/Web/Pandoc/FileType.hs+7−3 tests/Hakyll/Web/Pandoc/FileType/Tests.hs+26 tests/TestSuite.hs+2
src/Hakyll/Web/Pandoc/FileType.hs+7−3
@@ -8,7 +8,7 @@ module Hakyll.Web.Pandoc.FileType
88
99
1010--------------------------------------------------------------------------------
11−import System.FilePath (takeExtension)
11+import System.FilePath (splitExtension)
1212
1313
1414--------------------------------------------------------------------------------
@@ -36,12 +36,16 @@ data FileType
3636--------------------------------------------------------------------------------
3737-- | Get the file type for a certain file. The type is determined by extension.
3838fileType :: FilePath -> FileType
39−fileType = uncurry fileType' . splitExtension
39+fileType = uncurry fileType' . splitExtension
4040 where
4141 fileType' _ ".css" = Css
4242 fileType' _ ".htm" = Html
4343 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
4549 fileType' _ ".markdown" = Markdown
4650 fileType' _ ".md" = Markdown
4751 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
2020import qualified Hakyll.Core.Util.String.Tests
2121import qualified Hakyll.Web.Html.RelativizeUrls.Tests
2222import qualified Hakyll.Web.Html.Tests
23+import qualified Hakyll.Web.Pandoc.FileType.Tests
2324import qualified Hakyll.Web.Template.Context.Tests
2425import qualified Hakyll.Web.Template.Tests
2526
@@ -38,6 +39,7 @@ main = defaultMain
3839 , Hakyll.Core.Util.String.Tests.tests
3940 , Hakyll.Web.Html.RelativizeUrls.Tests.tests
4041 , Hakyll.Web.Html.Tests.tests
42+ , Hakyll.Web.Pandoc.FileType.Tests.tests
4143 , Hakyll.Web.Template.Context.Tests.tests
4244 , Hakyll.Web.Template.Tests.tests
4345 ]