servant-pandoc-0.1.0.1: Use Pandoc to render servant API documentation

Safe HaskellNone
LanguageHaskell2010

Servant.Docs.Pandoc

Description

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 Sevant.Docs.Pandoc
import Data.Default (def)

myApi :: Proxy MyAPI
myApi = Proxy

writeDocs :: API -> IO ()
writeDocs api = writeFile "api.mw" (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 manual.md

Synopsis

Documentation

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.