doc: improve new combined manual, cleanups
This commit is contained in:
parent
0982aca223
commit
33e2ca927f
38
Shake.hs
38
Shake.hs
@ -118,13 +118,13 @@ main = do
|
||||
let md = out <.> "md"
|
||||
tmpl = "doc/manpage.nroff"
|
||||
need $ md : tmpl : pandocFilters
|
||||
cmd pandoc md "-s --template" tmpl "-o" out
|
||||
cmd pandoc md "-s --template" tmpl
|
||||
"--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"
|
||||
"--filter doc/pandoc-capitalize-headers"
|
||||
"-o" out
|
||||
|
||||
-- man pages adjusted for web by pandoc (ready for hakyll)
|
||||
let webManpageMds = ["site" </> p <.>".md" | p <- manpages]
|
||||
@ -133,10 +133,11 @@ main = do
|
||||
let p = dropExtension $ takeFileName out
|
||||
md = manpageDir p </> p <.> "md"
|
||||
need $ md : pandocFilters
|
||||
cmd pandoc md "-o" out
|
||||
cmd pandoc md
|
||||
"--filter doc/pandoc-demote-headers"
|
||||
-- "--filter doc/pandoc-add-toc"
|
||||
-- "--filter doc/pandoc-drop-man-blocks"
|
||||
"-o" out
|
||||
|
||||
-- method 2:
|
||||
|
||||
@ -151,12 +152,12 @@ main = do
|
||||
tmpl = "doc/manpage.nroff"
|
||||
need $ m4src : m4lib : tmpl : pandocFilters ++ m4includes
|
||||
cmd Shell "m4 -P" "-DMAN" "-I" dir m4lib m4src
|
||||
"|" pandoc "-s --template" tmpl "-o" out
|
||||
"|" pandoc "-s --template" tmpl
|
||||
"--filter doc/pandoc-drop-html-blocks"
|
||||
"--filter doc/pandoc-drop-html-inlines"
|
||||
"--filter doc/pandoc-drop-links"
|
||||
"--filter doc/pandoc-drop-notes"
|
||||
"--filter doc/pandoc-capitalize-headers"
|
||||
"-o" out
|
||||
|
||||
-- man pages assembled from parts and adjusted for web with m4, adjusted slightly more with pandoc (ready for hakyll)
|
||||
let m4webManpageMds = ["site" </> "m4-"++p <.>".md" | p <- ["hledger.1"]]
|
||||
@ -170,9 +171,10 @@ main = do
|
||||
m4lib = "doc/lib.m4"
|
||||
need $ m4src : m4lib : m4includes
|
||||
cmd Shell "m4 -P" "-DMAN -DWEB" "-I" dir m4lib m4src
|
||||
"|" pandoc "-o" out
|
||||
"|" pandoc
|
||||
"--filter doc/pandoc-demote-headers"
|
||||
-- "--filter doc/pandoc-add-toc"
|
||||
"-o" out
|
||||
|
||||
-- web manual combined from man pages
|
||||
|
||||
@ -180,12 +182,30 @@ main = do
|
||||
phony "webmanual" $ need [ webmanual ]
|
||||
"site/manual2.md" %> \out -> do
|
||||
need webManpageMds
|
||||
cmd Shell "printf '* toc\\n\\n' >" webmanual :: Action ExitCode
|
||||
liftIO $ writeFile webmanual [i|
|
||||
<style>
|
||||
#toc > ol > li {
|
||||
padding-top:1em;
|
||||
font-weight:bold;
|
||||
}
|
||||
#toc > ol > li > ol {
|
||||
font-weight:normal;
|
||||
}
|
||||
</style>
|
||||
* toc
|
||||
|
||||
|]
|
||||
forM_ webManpageMds $ \f -> do
|
||||
let manpage = dropExtension $ takeFileName f
|
||||
cmd Shell ("printf '\\n## "++ manpage ++"\\n\\n' >>") webmanual :: Action ExitCode
|
||||
let heading =
|
||||
let s = dropExtension $ dropExtension $ takeFileName f
|
||||
in if "hledger_" `isPrefixOf` s
|
||||
then drop 8 s ++ " format"
|
||||
else s
|
||||
cmd Shell ("printf '\\n## "++ heading ++"\\n\\n' >>") webmanual :: Action ExitCode
|
||||
cmd Shell "pandoc" f "-t markdown"
|
||||
"--filter doc/pandoc-drop-man-blocks"
|
||||
"--filter doc/pandoc-drop-toc"
|
||||
-- "--filter doc/pandoc-capitalize-headers"
|
||||
"--filter doc/pandoc-demote-headers"
|
||||
">>" webmanual :: Action ExitCode
|
||||
|
||||
|
||||
1
doc/.gitignore
vendored
1
doc/.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
pandoc-add-toc
|
||||
pandoc-capitalize-headers
|
||||
pandoc-demote-headers
|
||||
pandoc-drop-html-blocks
|
||||
pandoc-drop-html-inlines
|
||||
pandoc-drop-links
|
||||
|
||||
@ -1,19 +1,20 @@
|
||||
#!/usr/bin/env stack
|
||||
{- stack runghc --verbosity info --package pandoc-types-1.16.1 -}
|
||||
-- Ensure level 1 and 2 headings are first-letter-capitalised.
|
||||
|
||||
import Data.Char
|
||||
import Text.Pandoc.JSON
|
||||
import Text.Pandoc.Walk
|
||||
import Data.Char (toUpper)
|
||||
|
||||
main :: IO ()
|
||||
main = toJSONFilter capitalizeHeaders
|
||||
|
||||
capitalizeHeaders :: Block -> Block
|
||||
capitalizeHeaders (Header 1 attr xs) = Header 1 attr $ walk capitalize xs
|
||||
capitalizeHeaders (Header lvl attr xs) | lvl < 3 = Header lvl attr $ map capitalize (take 1 xs) ++ drop 1 xs
|
||||
capitalizeHeaders x = x
|
||||
|
||||
capitalize :: Inline -> Inline
|
||||
capitalize (Str xs) = Str $ map toUpper xs
|
||||
capitalize (Str s) = Str $ map toUpper (take 1 s) ++ map toLower (drop 1 s)
|
||||
capitalize x = x
|
||||
|
||||
{-
|
||||
|
||||
Loading…
Reference in New Issue
Block a user