servant-pandoc- Use Pandoc to render servant API documentation

Safe HaskellNone



There are two ways in which to use this module.

The first is to use the renderer directly with the pandoc API. A very simple program to render the API documentation as a mediawiki document might look as follows.

import Text.Pandoc
import Servant.Docs.Pandoc
import Servant.Docs
import Data.Default (def)

myApi :: Proxy MyAPI
myApi = Proxy

writeDocs :: API -> IO ()
writeDocs api = writeFile "" (writeMediaWiki def (pandoc api))

The second approach is to use makeFilter to make a filter which can be used directly with pandoc from the command line. This filter will just append the API documentation to the end of the document. Example usage

-- api.hs
main :: IO ()
main = makeFilter (docs myApi)
> pandoc -o api.pdf --filter=api.hs



pandoc :: API -> Pandoc Source

Generate a Pandoc representation of a given API.

makeFilter :: API -> IO () Source

Helper function which can be used to make a pandoc filter which appends the generate docs to the end of the document.

This function is exposed for convenience. More experienced authors can of course define a more complicated filter to inject the API documentation.