summaryrefslogtreecommitdiff log msg author committer range
path: root/src/Doc.lhs
blob: a0d51212e15ef9f2d3c35c26f6ccde117eef6c28 (plain)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61  Building documentation ++++++++++++++++++++++ .. class:: nodoc > {-# LANGUAGE OverloadedStrings #-} > import Text.Pandoc > import Text.Pandoc.Error (handleError) > import Text.Pandoc.Extensions (extensionsFromList) > import Text.Pandoc.Highlighting (tango) > import qualified Data.Text.IO as TIO > import System.Directory (setCurrentDirectory) The documentation can be generated running cabal run pesto-doc. It is exclusively based on the restructuredText inside this packages’ literal Haskell source code. .. _restructuredText: http://docutils.sourceforge.net/rst.html > readDoc = readRST def { > readerExtensions = extensionsFromList [ > Ext_literate_haskell > , Ext_implicit_header_references > ] > , readerStandalone = True } .. _Pandoc: http://www.pandoc.org/ Pandoc_ outputs a single HTML5 page with syntax highlighting and MathJax for formulas. > writeDoc tpl = writeHtml5String def { > writerTemplate = Just tpl > , writerHighlightStyle = Just tango > , writerNumberSections = True > , writerSectionDivs = True > , writerTabStop = 4 > , writerHTMLMathMethod = MathJax "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" > , writerVariables = [("css", "pesto.css"), ("lang", "en")] > } A slightly customized template is used. > main = do > tpl <- readFile "template.html" The module Codec.Pesto serves as starting point and it includes every other module in a sensible order. For the relative includes to work, we need to change our current working directory. > setCurrentDirectory "src/Codec" > doc <- TIO.readFile "Pesto.lhs" > result <- runIO \$ readDoc doc >>= writeDoc tpl > setCurrentDirectory "../../" > html <- handleError result Output is written to the directory _build, which contains the corresponding stylesheet. > TIO.writeFile "_build/index.html" html