mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-28 12:54:07 +03:00
shake: also generate static html from wiki pages
A copy of the github wiki is assumed to be checked out in ./wiki/ [ci skip]
This commit is contained in:
parent
ba1abae7c9
commit
ce2ef2497a
32
Shake.hs
32
Shake.hs
@ -68,6 +68,8 @@ usage = unlines
|
||||
,"./Shake website build the website and web manuals"
|
||||
,"./Shake all build all the above"
|
||||
,""
|
||||
,"./Shake mainpages build the web pages from the main repo"
|
||||
,"./Shake wikipages build the web pages from the wiki repo"
|
||||
,"./Shake FILE build any individual file"
|
||||
,"./Shake setversion update all packages from PKG/.version"
|
||||
,"./Shake changelogs update the changelogs with any new commits"
|
||||
@ -107,6 +109,8 @@ main = do
|
||||
let commandsdir = "hledger/Hledger/Cli/Commands"
|
||||
commandmds <- filter (".md" `isSuffixOf`) . map (commandsdir </>) <$> S.getDirectoryContents commandsdir
|
||||
let commandtxts = map (-<.> "txt") commandmds
|
||||
let wikidir = "wiki"
|
||||
wikipagenames <- map dropExtension . filter (".md" `isSuffixOf`) <$> S.getDirectoryContents wikidir
|
||||
|
||||
shakeArgs
|
||||
shakeOptions{
|
||||
@ -185,9 +189,10 @@ main = do
|
||||
-- individual manuals rendered to markdown, ready for conversion to html (site/hledger.md)
|
||||
webmanuals = ["site" </> manpageNameToUri m <.> "md" | m <- manpageNames]
|
||||
|
||||
-- website html pages - all manual versions plus misc pages in site/ or copied from elsewhere.
|
||||
-- website pages kept in the main repo: all manual versions,
|
||||
-- misc pages in site/, some pages copied from elsewhere.
|
||||
-- TODO: make all have lower-case URIs on the final website.
|
||||
webhtmlpages
|
||||
mainpageshtml
|
||||
= map (normalise . ("site/_site" </>))
|
||||
$ ( [ prefix </> manpageNameToUri mPage <.> "html"
|
||||
| prefix <- "" : [ "doc" </> v | v <- docversions ]
|
||||
@ -210,6 +215,9 @@ main = do
|
||||
]
|
||||
)
|
||||
|
||||
-- website pages kept in the wiki: cookbook content
|
||||
wikipageshtml = map (normalise . ("site/_site" </>) . (<.> ".html")) wikipagenames
|
||||
|
||||
-- manuals rendered to markdown and combined, ready for web rendering
|
||||
webmancombined = "site/manual.md"
|
||||
|
||||
@ -343,7 +351,7 @@ main = do
|
||||
|
||||
-- WEBSITE HTML & ASSETS
|
||||
|
||||
phony "website" $ need [ "webassets" , "webhtml" ]
|
||||
phony "website" $ need [ "webassets" , "mainpages", "wikipages" ]
|
||||
|
||||
-- copy all static asset files (files with certain extensions
|
||||
-- found under sites, plus one or two more) to sites/_site/
|
||||
@ -360,23 +368,31 @@ main = do
|
||||
"site/_site/files/README" : [ "site/_site//*" <.> ext | ext <- webassetexts ] |%> \out -> do
|
||||
copyFile' ("site" </> dropDirectory2 out) out
|
||||
|
||||
-- render all website pages as html, saved in sites/_site/
|
||||
phony "webhtml" $ need webhtmlpages
|
||||
-- render all web pages from the main repo (manuals, home, download, relnotes etc) as html, saved in site/_site/
|
||||
phony "mainpages" $ need mainpageshtml
|
||||
|
||||
-- render all pages from the wiki as html, saved in site/_site/.
|
||||
-- We assume there are no path collisions with mainrepopages.
|
||||
phony "wikipages" $ need wikipageshtml
|
||||
|
||||
-- render one website page as html, saved in sites/_site/
|
||||
"site/_site//*.html" %> \out -> do
|
||||
let source = "site" </> dropDirectory2 out -<.> "md"
|
||||
pageTitle = takeBaseName out
|
||||
let name = takeBaseName out
|
||||
source
|
||||
| name `elem` wikipagenames = "wiki" </> name <.> "md"
|
||||
| otherwise = "site" </> name <.> "md"
|
||||
template = "site/site.tmpl"
|
||||
siteRoot = if "site/_site/doc//*" ?== out then "../.." else "."
|
||||
need [source, template]
|
||||
cmd Shell pandoc fromsrcmd "-t html" source
|
||||
"--template" template
|
||||
("--metadata=siteRoot:" ++ siteRoot)
|
||||
("--metadata=title:" ++ pageTitle)
|
||||
("--metadata=title:" ++ name)
|
||||
"--lua-filter" "tools/pandoc-site.lua"
|
||||
"--output" out
|
||||
|
||||
-- render one wiki page as html, saved in site/_site/.
|
||||
|
||||
-- HLEDGER PACKAGES/EXECUTABLES
|
||||
|
||||
phony "build" $ need packages
|
||||
|
Loading…
Reference in New Issue
Block a user