mirror of
https://github.com/xmonad/xmonad.git
synced 2025-07-25 17:21:52 -07:00
Port GenerateManpage.hs to pandoc 2
Closes: #123 There is a regression here in terms of aesthetics.
This commit is contained in:
committed by
Peter Simons
parent
71cb355948
commit
013da018a1
@@ -27,6 +27,9 @@ import Control.Applicative
|
||||
import Text.Regex.Posix
|
||||
import Data.Char
|
||||
import Data.List
|
||||
import Control.Monad.IO.Class (liftIO)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.IO as TIO
|
||||
|
||||
import Distribution.PackageDescription.Parse
|
||||
import Distribution.Verbosity
|
||||
@@ -35,7 +38,7 @@ import Distribution.PackageDescription
|
||||
import Text.PrettyPrint.HughesPJ
|
||||
import Distribution.Text
|
||||
|
||||
import Text.Pandoc -- works with 1.15.x
|
||||
import Text.Pandoc -- works with 2.1
|
||||
|
||||
releaseDate = "31 December 2012"
|
||||
|
||||
@@ -68,31 +71,34 @@ main = do
|
||||
keybindings <- (intercalate "\n\n" . map markdownDefn . allBindings)
|
||||
`liftM` readFile "./src/XMonad/Config.hs"
|
||||
|
||||
let manHeader = unwords [".TH xmonad 1","\""++releaseDate++"\"",releaseName,"\"xmonad manual\""]
|
||||
let manHeader = T.pack .
|
||||
unwords
|
||||
$ [".TH xmonad 1","\""++releaseDate++"\"",releaseName,"\"xmonad manual\""]
|
||||
|
||||
Right parsed <- readMarkdown def
|
||||
. unlines
|
||||
. replace "___KEYBINDINGS___" keybindings
|
||||
. lines
|
||||
<$> readFile "./man/xmonad.1.markdown"
|
||||
markdownSource <- readFile "./man/xmonad.1.markdown"
|
||||
|
||||
Right template <- getDefaultTemplate Nothing "man"
|
||||
writeFile "./man/xmonad.1"
|
||||
. (manHeader ++)
|
||||
. writeMan def{ writerTemplate = Just template }
|
||||
$ parsed
|
||||
putStrLn "Documentation created: man/xmonad.1"
|
||||
runIOorExplode $ do
|
||||
parsed <- readMarkdown def
|
||||
. T.pack
|
||||
. unlines
|
||||
. replace "___KEYBINDINGS___" keybindings
|
||||
. lines
|
||||
$ markdownSource
|
||||
|
||||
Right template <- getDefaultTemplate Nothing "html"
|
||||
writeFile "./man/xmonad.1.html"
|
||||
. writeHtmlString def
|
||||
{ writerVariables =
|
||||
[("include-before"
|
||||
,"<h1>"++releaseName++"</h1>"++
|
||||
"<p>Section: xmonad manual (1)<br/>"++
|
||||
"Updated: "++releaseDate++"</p>"++
|
||||
"<hr/>")]
|
||||
, writerTemplate = Just template
|
||||
, writerTableOfContents = True }
|
||||
$ parsed
|
||||
putStrLn "Documentation created: man/xmonad.1.html"
|
||||
manTemplate <- getDefaultTemplate "man"
|
||||
manBody <- writeMan def { writerTemplate = Just manTemplate } parsed
|
||||
liftIO $ TIO.writeFile "./man/xmonad.1" $ T.append manHeader manBody
|
||||
liftIO $ putStrLn "Documentation created: man/xmonad.1"
|
||||
|
||||
htmltemplate <- getDefaultTemplate "html"
|
||||
htmlBody <- writeHtml5String def
|
||||
{ writerVariables =
|
||||
[("include-before"
|
||||
,"<h1>"++releaseName++"</h1>"++
|
||||
"<p>Section: xmonad manual (1)<br/>"++
|
||||
"Updated: "++releaseDate++"</p>"++
|
||||
"<hr/>")]
|
||||
, writerTemplate = Just htmltemplate
|
||||
, writerTableOfContents = True } parsed
|
||||
liftIO $ TIO.writeFile "./man/xmonad.1.html" htmlBody
|
||||
liftIO $ putStrLn "Documentation created: man/xmonad.1.html"
|
||||
|
@@ -106,9 +106,10 @@ executable generatemanpage
|
||||
if flag(generatemanpage)
|
||||
build-depends: base,
|
||||
Cabal,
|
||||
pandoc,
|
||||
pandoc >= 2,
|
||||
pretty,
|
||||
regex-posix
|
||||
regex-posix,
|
||||
text
|
||||
else
|
||||
buildable: False
|
||||
|
||||
|
Reference in New Issue
Block a user