Compatibility with Octopress site.
Don't break urls. 1. New Route function which generates routes compatible with old blog. 2. Renamed posts folder to blog.
This commit is contained in:
1 parent
f1bf5b6c0d
commit
3a30fb8a07
49 files changed
+25
-4
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -7,5 +7,7 @@ executable site
|
||||
main-is: site.hs
|
||||
build-depends: base == 4.*
|
||||
, hakyll == 4.9.*
|
||||
, filepath >= 1.4
|
||||
, regex-compat
|
||||
ghc-options: -threaded
|
||||
default-language: Haskell2010
|
||||
@@ -2,6 +2,10 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
import Data.Monoid (mappend)
|
||||
import Hakyll
|
||||
import Hakyll.Core.Identifier (toFilePath)
|
||||
import System.FilePath
|
||||
import Text.Regex (splitRegex, mkRegex)
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -21,8 +25,8 @@ main = hakyll $ do
|
||||
>>= loadAndApplyTemplate "templates/default.html" defaultContext
|
||||
>>= relativizeUrls
|
||||
|
||||
match "posts/*" $ do
|
||||
route $ setExtension "html"
|
||||
match "blog/*" $ do
|
||||
route $ octopressRoute
|
||||
compile $ pandocCompiler
|
||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
||||
@@ -31,7 +35,7 @@ main = hakyll $ do
|
||||
create ["archive.html"] $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll "posts/*"
|
||||
posts <- recentFirst =<< loadAll "blog/*"
|
||||
let archiveCtx =
|
||||
listField "posts" postCtx (return posts) `mappend`
|
||||
constField "title" "Archives" `mappend`
|
||||
@@ -46,7 +50,7 @@ main = hakyll $ do
|
||||
match "index.html" $ do
|
||||
route idRoute
|
||||
compile $ do
|
||||
posts <- recentFirst =<< loadAll "posts/*"
|
||||
posts <- recentFirst =<< loadAll "blog/*"
|
||||
let indexCtx =
|
||||
listField "posts" postCtx (return posts) `mappend`
|
||||
constField "title" "Home" `mappend`
|
||||
@@ -65,3 +69,18 @@ postCtx :: Context String
|
||||
postCtx =
|
||||
dateField "date" "%B %e, %Y" `mappend`
|
||||
defaultContext
|
||||
|
||||
-- octopress compatible routes
|
||||
octopressRoute :: Routes
|
||||
octopressRoute = customRoute $ octoMangaling
|
||||
|
||||
octoMangaling :: Identifier -> FilePath
|
||||
octoMangaling pathId = base </> year </> month </> day </> post </> "index.html"
|
||||
where
|
||||
p = toFilePath pathId
|
||||
base = takeDirectory p
|
||||
seps = splitRegex (mkRegex "-") $ takeBaseName p
|
||||
year:month:day:xs = seps
|
||||
post = tail $ foldl (\a b -> a ++ "-" ++ b) "" xs
|
||||
|
||||
|
||||
Reference in new issue
Block a user