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"
|
let md = out <.> "md"
|
||||||
tmpl = "doc/manpage.nroff"
|
tmpl = "doc/manpage.nroff"
|
||||||
need $ md : tmpl : pandocFilters
|
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-web-blocks"
|
||||||
"--filter doc/pandoc-drop-html-blocks"
|
"--filter doc/pandoc-drop-html-blocks"
|
||||||
"--filter doc/pandoc-drop-html-inlines"
|
"--filter doc/pandoc-drop-html-inlines"
|
||||||
"--filter doc/pandoc-drop-links"
|
"--filter doc/pandoc-drop-links"
|
||||||
"--filter doc/pandoc-drop-notes"
|
"--filter doc/pandoc-drop-notes"
|
||||||
"--filter doc/pandoc-capitalize-headers"
|
"-o" out
|
||||||
|
|
||||||
-- man pages adjusted for web by pandoc (ready for hakyll)
|
-- man pages adjusted for web by pandoc (ready for hakyll)
|
||||||
let webManpageMds = ["site" </> p <.>".md" | p <- manpages]
|
let webManpageMds = ["site" </> p <.>".md" | p <- manpages]
|
||||||
@ -133,10 +133,11 @@ main = do
|
|||||||
let p = dropExtension $ takeFileName out
|
let p = dropExtension $ takeFileName out
|
||||||
md = manpageDir p </> p <.> "md"
|
md = manpageDir p </> p <.> "md"
|
||||||
need $ md : pandocFilters
|
need $ md : pandocFilters
|
||||||
cmd pandoc md "-o" out
|
cmd pandoc md
|
||||||
"--filter doc/pandoc-demote-headers"
|
"--filter doc/pandoc-demote-headers"
|
||||||
-- "--filter doc/pandoc-add-toc"
|
-- "--filter doc/pandoc-add-toc"
|
||||||
-- "--filter doc/pandoc-drop-man-blocks"
|
-- "--filter doc/pandoc-drop-man-blocks"
|
||||||
|
"-o" out
|
||||||
|
|
||||||
-- method 2:
|
-- method 2:
|
||||||
|
|
||||||
@ -151,12 +152,12 @@ main = do
|
|||||||
tmpl = "doc/manpage.nroff"
|
tmpl = "doc/manpage.nroff"
|
||||||
need $ m4src : m4lib : tmpl : pandocFilters ++ m4includes
|
need $ m4src : m4lib : tmpl : pandocFilters ++ m4includes
|
||||||
cmd Shell "m4 -P" "-DMAN" "-I" dir m4lib m4src
|
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-blocks"
|
||||||
"--filter doc/pandoc-drop-html-inlines"
|
"--filter doc/pandoc-drop-html-inlines"
|
||||||
"--filter doc/pandoc-drop-links"
|
"--filter doc/pandoc-drop-links"
|
||||||
"--filter doc/pandoc-drop-notes"
|
"--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)
|
-- 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"]]
|
let m4webManpageMds = ["site" </> "m4-"++p <.>".md" | p <- ["hledger.1"]]
|
||||||
@ -170,9 +171,10 @@ main = do
|
|||||||
m4lib = "doc/lib.m4"
|
m4lib = "doc/lib.m4"
|
||||||
need $ m4src : m4lib : m4includes
|
need $ m4src : m4lib : m4includes
|
||||||
cmd Shell "m4 -P" "-DMAN -DWEB" "-I" dir m4lib m4src
|
cmd Shell "m4 -P" "-DMAN -DWEB" "-I" dir m4lib m4src
|
||||||
"|" pandoc "-o" out
|
"|" pandoc
|
||||||
"--filter doc/pandoc-demote-headers"
|
"--filter doc/pandoc-demote-headers"
|
||||||
-- "--filter doc/pandoc-add-toc"
|
-- "--filter doc/pandoc-add-toc"
|
||||||
|
"-o" out
|
||||||
|
|
||||||
-- web manual combined from man pages
|
-- web manual combined from man pages
|
||||||
|
|
||||||
@ -180,12 +182,30 @@ main = do
|
|||||||
phony "webmanual" $ need [ webmanual ]
|
phony "webmanual" $ need [ webmanual ]
|
||||||
"site/manual2.md" %> \out -> do
|
"site/manual2.md" %> \out -> do
|
||||||
need webManpageMds
|
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
|
forM_ webManpageMds $ \f -> do
|
||||||
let manpage = dropExtension $ takeFileName f
|
let heading =
|
||||||
cmd Shell ("printf '\\n## "++ manpage ++"\\n\\n' >>") webmanual :: Action ExitCode
|
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"
|
cmd Shell "pandoc" f "-t markdown"
|
||||||
|
"--filter doc/pandoc-drop-man-blocks"
|
||||||
"--filter doc/pandoc-drop-toc"
|
"--filter doc/pandoc-drop-toc"
|
||||||
|
-- "--filter doc/pandoc-capitalize-headers"
|
||||||
"--filter doc/pandoc-demote-headers"
|
"--filter doc/pandoc-demote-headers"
|
||||||
">>" webmanual :: Action ExitCode
|
">>" webmanual :: Action ExitCode
|
||||||
|
|
||||||
|
|||||||
1
doc/.gitignore
vendored
1
doc/.gitignore
vendored
@ -1,5 +1,6 @@
|
|||||||
pandoc-add-toc
|
pandoc-add-toc
|
||||||
pandoc-capitalize-headers
|
pandoc-capitalize-headers
|
||||||
|
pandoc-demote-headers
|
||||||
pandoc-drop-html-blocks
|
pandoc-drop-html-blocks
|
||||||
pandoc-drop-html-inlines
|
pandoc-drop-html-inlines
|
||||||
pandoc-drop-links
|
pandoc-drop-links
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
#!/usr/bin/env stack
|
#!/usr/bin/env stack
|
||||||
{- stack runghc --verbosity info --package pandoc-types-1.16.1 -}
|
{- 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.JSON
|
||||||
import Text.Pandoc.Walk
|
import Text.Pandoc.Walk
|
||||||
import Data.Char (toUpper)
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = toJSONFilter capitalizeHeaders
|
main = toJSONFilter capitalizeHeaders
|
||||||
|
|
||||||
capitalizeHeaders :: Block -> Block
|
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
|
capitalizeHeaders x = x
|
||||||
|
|
||||||
capitalize :: Inline -> Inline
|
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
|
capitalize x = x
|
||||||
|
|
||||||
{-
|
{-
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user