diff options
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/Main.hs b/src/Main.hs index c09c4f9..4a6f2f2 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -5,7 +5,6 @@ import Data.Default (def) import Data.List (nub) import qualified Data.Text as T import Data.Text.Read (decimal) -import Main.Utf8 (withUtf8) import qualified Relude.Extra.Map as Map import Text.Pandoc.Class (runIOorExplode) import Text.Pandoc.Definition (Block (..), Inline (..)) @@ -121,18 +120,21 @@ addSelfLinks2 :: ((ZettelId, b), [Text]) -> ((ZettelId, b), [Text]) addSelfLinks2 ((t, b), l) = ((t, b), maybeToList (unZettelId <$> defPredId t) <> l) +decode :: ByteString -> Text +decode = decodeUtf8 + main :: IO () -main = withUtf8 $ do - let fl = ["/home/ymherklotz/Dropbox/zk/verification.org", - "/home/ymherklotz/Dropbox/zk/mathematics.org", - "/home/ymherklotz/Dropbox/zk/hls.org", - "/home/ymherklotz/Dropbox/zk/computing.org", - "/home/ymherklotz/Dropbox/zk/hardware.org"] - fs <- mapM readFileText fl - x <- mapM (runIOorExplode . readOrg def) fs +main = do + let fl = ["/Users/ymherklotz/Dropbox/zk/verification.org", + "/Users/ymherklotz/Dropbox/zk/mathematics.org", + "/Users/ymherklotz/Dropbox/zk/hls.org", + "/Users/ymherklotz/Dropbox/zk/computing.org", + "/Users/ymherklotz/Dropbox/zk/hardware.org"] + fs <- mapM readFileBS fl + x <- mapM (runIOorExplode . readOrg def . decode) fs let (_, s) = runState (forM x (walkM getHeaders)) (HeaderState mempty "toplevel") let allZettel = second nub . addSelfLinks2 <$> headerStateMap s - writeFileText "out.dot" $ "digraph G {\nnode [colorscheme=pastel28,style=filled];\n" + writeFileText "out.dot" $ "digraph G {\noverlap=false;\nnode [colorscheme=pastel28,style=filled];\n" <> foldMap (toDotNodes . fst . fst) allZettel <> foldMap (toDot (foldMap snd allZettel) . (\((ZettelId a, _), b) -> (a, b))) allZettel |