summaryrefslogtreecommitdiffstats
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs55
1 files changed, 44 insertions, 11 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 1e1094a..dd77a2a 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+
module Main where
-- import Data.Char (isAlphaNum, isLetter, isNumber)
@@ -18,6 +20,8 @@ module Main where
-- import Text.Pandoc.Walk (walkM, walk)
-- import qualified Data.ByteString.Lazy as B
-- import System.Directory (createDirectoryIfMissing)
+
+import System.Console.CmdArgs.Implicit
import Zettel
-- data HeaderState = HeaderState
@@ -199,19 +203,48 @@ import Zettel
-- writeFileText ("test/content/" <> chunkPath c) text
--
+data Options = Options
+ { org :: [FilePath],
+ bibliography :: Maybe FilePath,
+ csl :: Maybe FilePath,
+ index :: Maybe FilePath,
+ output :: FilePath
+ }
+ deriving (Show, Data, Typeable)
+
+options :: Options
+options =
+ Options
+ { org = def &= args &= typ "FILES...",
+ output = def &= name "o" &= help "Output directory" &= typDir,
+ bibliography =
+ def
+ &= name "b"
+ &= help "Bibliography file path (default: references.bib)"
+ &= typFile
+ &= opt (Just ("references.bib" :: FilePath)),
+ csl =
+ def
+ &= name "c"
+ &= help "Csl file path (default: ieee.csl)"
+ &= typFile
+ &= opt (Just ("ieee.csl" :: FilePath)),
+ index =
+ def
+ &= name "i"
+ &= help "Index file path"
+ &= typFile
+ }
+ &= summary "org-zk v0.1.0, (C) 2023 Yann Herklotz"
+ &= program "org-zk"
+ &= verbosity
+
main :: IO ()
main = do
- let fl =
- [ (3, "/Users/ymherklotz/Dropbox/zk/verification.org"),
- (4, "/Users/ymherklotz/Dropbox/zk/mathematics.org"),
- (1, "/Users/ymherklotz/Dropbox/zk/hls.org"),
- (2, "/Users/ymherklotz/Dropbox/zk/computing.org"),
- (5, "/Users/ymherklotz/Dropbox/zk/hardware.org"),
- (6, "/Users/ymherklotz/Dropbox/zk/general.org")
- ]
- graph' <- parseZettelKasten fl
+ zkOpts <- cmdArgs options
+ let fl = org zkOpts
+ graph' <- parseZettelKasten $ zip [1 ..] fl
let graph = transcludeMdAll graph'
let linkedGraph = linkAll graph
let wrappedGraph = wrapZettelGraph linkedGraph
- renderZettelGraphFile "../zk-web/content/zettel" wrappedGraph
- return ()
+ renderZettelGraphFile (output zkOpts) wrappedGraph