33 lines
		
	
	
		
			879 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			879 B
		
	
	
	
		
			Haskell
		
	
	
	
	
	
#!/usr/bin/env runhaskell
 | 
						|
 | 
						|
import Control.Monad (forM_)
 | 
						|
import Control.Monad.Trans (liftIO)
 | 
						|
import System.Process
 | 
						|
import Text.Hakyll (hakyll)
 | 
						|
import Text.Hakyll.Render
 | 
						|
import Text.Hakyll.CreateContext (createPage, createCustomPage, createListing)
 | 
						|
import Text.Printf
 | 
						|
 | 
						|
main = hakyll "http://hledger.org" $ do
 | 
						|
    mapM_ renderParentDirPage
 | 
						|
      ["README.rst"
 | 
						|
      ,"README2.rst"
 | 
						|
      ,"NEWS.rst"
 | 
						|
      ,"SCREENSHOTS.rst"
 | 
						|
      ,"MANUAL.markdown"
 | 
						|
      ,"CONTRIBUTORS.rst"
 | 
						|
      ]
 | 
						|
    mapM_ static
 | 
						|
      ["style.css"
 | 
						|
      ,"sshot.png"
 | 
						|
      ,"watchhours.png"
 | 
						|
      ,"hledger-screen-1.png"
 | 
						|
      ,"hledger-charts-2.png"
 | 
						|
      ]
 | 
						|
 | 
						|
-- Render a page from the parent directory as if it was in the hakyll
 | 
						|
-- root dir, setting up a symbolic link when needed.
 | 
						|
renderParentDirPage p = do
 | 
						|
  liftIO $ system $ printf "[ -f %s ] || ln -s ../%s" p p
 | 
						|
  renderChain ["site.tmpl"] $ createPage p
 |