packages feed

leaf 1.0.0.0 → 1.0.1.1

raw patch · 2 files changed

+39/−27 lines, 2 files

Files

leaf.cabal view
@@ -2,15 +2,15 @@ -- see http://haskell.org/cabal/users-guide/  name:                  leaf-version:               1.0.0.0+version:               1.0.1.1 synopsis:              A simple portfolio generator-description:           leaf is a simple genererator with easy getting started and full support of Markdown.+description:           leaf is a simple generator with easy getting started and full support of Markdown. homepage:              https://github.com/skypers/leaf license:               GPL-3 license-file:          LICENSE author:                Dimitri 'skp' Sabadie maintainer:            dimitri.sabadie@gmail.com--- copyright:             +-- copyright: category:              Web build-type:            Simple cabal-version:         >=1.8@@ -25,7 +25,7 @@ source-repository this   type:                git   location:            git://github.com/skypers/leaf.git-  tag:                 v1.0+  tag:                 1.0.1.1   executable leaf
src/Leaf.hs view
@@ -37,7 +37,7 @@ treatArgs flag =   case flag of     Init name -> initFromScratch name-    Bootstrap -> bootstrap+    Bootstrap -> bootstrap >> return ()     Generate  -> generateHTML  initFromScratch :: String -> IO ()@@ -47,34 +47,46 @@   writeFile (name </> "www/default.css") minimalCSSString   putStrLn $ "initialised in ./" ++ name --- get the items of the current porfolio--- TODO: make it safer-getItems :: IO [String]+getItems :: IO (Maybe [String]) getItems = do-  content <- readFile "leaf/wrapper.leaf"-  return . map (dropWhile (==' ')) . splitWhen (==',') . join . drop 1 . splitWhen (==':') . join . filter (isPrefixOf "Items:") . lines $ content+  let path = "leaf" </> "wrapper.leaf"+  doesExist <- doesFileExist path+  if not doesExist then return Nothing else do+    content <- readFile "leaf/wrapper.leaf"+    return . Just $ map (dropWhile (==' ')) . splitWhen (==',') . join . drop 1 . splitWhen (==':') . join . filter (isPrefixOf "Items:") . lines $ content -bootstrap :: IO ()+bootstrap :: IO Bool bootstrap = do-  items <- getItems-  sequence_ $ flip appendFile "" . (\n -> "leaf" </> n ++ ".leafc") <$> items-  putStrLn "generated files, feel free to fulfil them!"+  maybeItems <- getItems+  case maybeItems of+    Nothing -> putStrLn "unable to bootstrap" >> return False+    Just items -> do+      sequence_ $ flip appendFile "" . (\n -> "leaf" </> n ++ ".leafc") <$> items+      putStrLn "generated files, feel free to fulfil them!"+      return True  generateHTML :: IO () generateHTML = do-  wrapperContent <- readFile "leaf/wrapper.leaf"-  let helper = fromString wrapperContent-      name = prettyName (_wrapperFN helper,_wrapperLN helper,_wrapperNick helper)-      ownHeader = Wrapper.header name-      ownFooter = Wrapper.footer name (_wrapperYear helper) Nothing-      ownNavbar = navbar $ _wrapperItems helper-      ownWrapper = wrapper ownHeader ownFooter ownNavbar-  forM_ (_wrapperItems helper) $ \item -> do-    --let page = "www" </> item ++ ".html"-    content <- readFile $ "leaf" </> item ++ ".leafc"-    let doc    = readMarkdown def content-        output = writeHtml def doc-    writeFile ("www" </> item ++ ".html") $ renderHtml (ownWrapper item output)+  let leafPath = "leaf" </> "wrapper.leaf"+      wwwPath  = "www"+  doesLeafExist <- doesFileExist leafPath+  doesWWWExist <- doesDirectoryExist wwwPath+  if doesLeafExist && doesWWWExist+    then do+      wrapperContent <- readFile "leaf/wrapper.leaf"+      let helper = fromString wrapperContent+          name = prettyName (_wrapperFN helper,_wrapperLN helper,_wrapperNick helper)+          ownHeader = Wrapper.header name+          ownFooter = Wrapper.footer name (_wrapperYear helper) Nothing+          ownNavbar = navbar $ _wrapperItems helper+          ownWrapper = wrapper ownHeader ownFooter ownNavbar+      forM_ (_wrapperItems helper) $ \item -> do+        --let page = "www" </> item ++ ".html"+        content <- readFile $ "leaf" </> item ++ ".leafc"+        let doc    = readMarkdown def content+            output = writeHtml def doc+        writeFile ("www" </> item ++ ".html") $ renderHtml (ownWrapper item output)+    else putStrLn "unable to generate html"    main = do   -- maybe get the options