From 3d129f6d313b80056a2d7da075d94a12581df709 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Mon, 18 Apr 2016 17:54:55 -0700 Subject: [PATCH] shake: also generate info manuals --- .gitignore | 2 ++ Shake.hs | 31 +++++++++++++++++++++++++++--- hledger-api/.gitignore | 1 - hledger-lib/.gitignore | 2 -- hledger-ui/.gitignore | 1 - hledger-web/.gitignore | 1 - hledger/.gitignore | 2 -- hledger/doc/commands-balance.m4.md | 2 +- hledger/doc/hledger.1 | 2 +- hledger/doc/hledger.1.txt | 2 +- 10 files changed, 33 insertions(+), 13 deletions(-) delete mode 100644 hledger-api/.gitignore delete mode 100644 hledger-lib/.gitignore delete mode 100644 hledger-ui/.gitignore delete mode 100644 hledger-web/.gitignore delete mode 100644 hledger/.gitignore diff --git a/.gitignore b/.gitignore index 72a697e86..752973d8d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ ttttt.* profs/* shake test.hs +*/doc/*.[0-9].md +*/doc/*.info diff --git a/Shake.hs b/Shake.hs index bb496ba1a..4d9359b29 100755 --- a/Shake.hs +++ b/Shake.hs @@ -47,14 +47,15 @@ usage = [i|Usage: ./Shake site # generate the web site ./Shake manpages # generate nroff files for man ./Shake txtmanpages # generate text man pages for embedding + ./Shake infomanpages # generate info files for info ./Shake webmanpages # generate web man pages for hakyll ./Shake webmanual # generate combined web man page for hakyll |] -pandoc = - -- "stack exec -- pandoc" -- use the pandoc required above - "pandoc" -- use pandoc in PATH (faster) +pandoc = "pandoc" -- pandoc from PATH (faster) + -- "stack exec -- pandoc" -- pandoc from project's stackage snapshot hakyllstd = "site/hakyll-std/hakyll-std" +makeinfo = "makeinfo" nroff = "nroff" main = do @@ -101,6 +102,8 @@ main = do nroffmanpages = [manpageDir m m | m <- manpageNames] -- manuals rendered to text, ready for embedding (hledger/doc/hledger.1.txt) txtmanpages = [manpageDir m m <.> "txt" | m <- manpageNames] + -- manuals rendered to info, ready for info (hledger/doc/hledger.info) + infomanpages = [manpageDir m m <.> "info" | m <- manpageNames] -- manuals rendered to markdown, ready for web output by hakyll (site/hledger.md) webmanpages = ["site" manpageNameToUri m <.>"md" | m <- manpageNames] -- manuals rendered to markdown and combined, ready for web output by hakyll @@ -122,6 +125,7 @@ main = do phony "docs" $ do need $ nroffmanpages + ++ infomanpages ++ txtmanpages -- compile pandoc helpers @@ -162,6 +166,27 @@ main = do need [src] cmd Shell nroff "-man" src ">" out + -- use m4 and pandoc to process macros, filter content, and convert to info, suitable for info viewing + phony "infomanpages" $ need infomanpages + + infomanpages |%> \out -> do -- hledger/doc/hledger.info + let src = out -<.> "m4.md" + lib = "doc/lib.m4" + dir = takeDirectory out + -- assume all other m4 files in dir are included by this one XXX not true in hledger-lib + deps <- liftIO $ filter (/= src) . filter (".m4.md" `isSuffixOf`) . map (dir ) <$> S.getDirectoryContents dir + need $ src : lib : deps ++ pandocFilters + cmd Shell + "m4 -P -I" dir lib src "|" + pandoc "-f markdown" + -- "--filter doc/pandoc-drop-web-blocks" + "--filter doc/pandoc-drop-html-blocks" + "--filter doc/pandoc-drop-html-inlines" + "--filter doc/pandoc-drop-links" + "--filter doc/pandoc-drop-notes" + "-t texinfo |" + makeinfo "--force --no-split -o" out + -- web site phony "site" $ do diff --git a/hledger-api/.gitignore b/hledger-api/.gitignore deleted file mode 100644 index aa2c18f3b..000000000 --- a/hledger-api/.gitignore +++ /dev/null @@ -1 +0,0 @@ -doc/*.[0-9].md diff --git a/hledger-lib/.gitignore b/hledger-lib/.gitignore deleted file mode 100644 index d9754e194..000000000 --- a/hledger-lib/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/.dist-buildwrapper/ -doc/*.[0-9].md diff --git a/hledger-ui/.gitignore b/hledger-ui/.gitignore deleted file mode 100644 index aa2c18f3b..000000000 --- a/hledger-ui/.gitignore +++ /dev/null @@ -1 +0,0 @@ -doc/*.[0-9].md diff --git a/hledger-web/.gitignore b/hledger-web/.gitignore deleted file mode 100644 index aa2c18f3b..000000000 --- a/hledger-web/.gitignore +++ /dev/null @@ -1 +0,0 @@ -doc/*.[0-9].md diff --git a/hledger/.gitignore b/hledger/.gitignore deleted file mode 100644 index d9754e194..000000000 --- a/hledger/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/.dist-buildwrapper/ -doc/*.[0-9].md diff --git a/hledger/doc/commands-balance.m4.md b/hledger/doc/commands-balance.m4.md index 0a4803e2f..c6e6785eb 100644 --- a/hledger/doc/commands-balance.m4.md +++ b/hledger/doc/commands-balance.m4.md @@ -97,7 +97,7 @@ $ hledger balance -p 2008/6 expenses -N --flat --drop 1 $1 supplies ``` -### Depth limiting +### Depth limited balance reports With `--depth N`, balance shows accounts only to the specified depth. This is very useful to show a complex charts of accounts in less detail. diff --git a/hledger/doc/hledger.1 b/hledger/doc/hledger.1 index a84c5e810..5874ac733 100644 --- a/hledger/doc/hledger.1 +++ b/hledger/doc/hledger.1 @@ -1022,7 +1022,7 @@ $\ hledger\ balance\ \-p\ 2008/6\ expenses\ \-N\ \-\-flat\ \-\-drop\ 1 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ supplies \f[] .fi -.SS Depth limiting +.SS Depth limited balance reports .PP With \f[C]\-\-depth\ N\f[], balance shows accounts only to the specified depth. diff --git a/hledger/doc/hledger.1.txt b/hledger/doc/hledger.1.txt index 537ee5c75..d64a7b21c 100644 --- a/hledger/doc/hledger.1.txt +++ b/hledger/doc/hledger.1.txt @@ -680,7 +680,7 @@ CCOOMMMMAANNDDSS $1 food $1 supplies - DDeepptthh lliimmiittiinngg + DDeepptthh lliimmiitteedd bbaallaannccee rreeppoorrttss With --depth N, balance shows accounts only to the specified depth. This is very useful to show a complex charts of accounts in less detail. In flat mode, balances from accounts below the depth limit