diff options
author | simon.hengel <simon.hengel@wiktory.org> | 2010-04-02 14:08:40 +0000 |
---|---|---|
committer | simon.hengel <simon.hengel@wiktory.org> | 2010-04-02 14:08:40 +0000 |
commit | 28bd97759174c9169b7633ee45d39c82fd069dd9 (patch) | |
tree | 676af721ca72c1058d3e7e4c2c27c90d37b4d095 /src/Haddock/Backends/Html.hs | |
parent | 0ff11e2b1d741e05d0fdb457ab104c8fc438d40b (diff) |
Add markup support for interactive examples
Diffstat (limited to 'src/Haddock/Backends/Html.hs')
-rw-r--r-- | src/Haddock/Backends/Html.hs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Haddock/Backends/Html.hs b/src/Haddock/Backends/Html.hs index 47930ed4..68d1da42 100644 --- a/src/Haddock/Backends/Html.hs +++ b/src/Haddock/Backends/Html.hs @@ -1725,7 +1725,8 @@ parHtmlMarkup ppId isTyCon = Markup { markupDefList = dlist . concatHtml . map markupDef, markupCodeBlock = pre, markupURL = \url -> anchor ! [href url] << toHtml url, - markupAName = \aname -> namedAnchor aname << toHtml "" + markupAName = \aname -> namedAnchor aname << toHtml "", + markupExample = examplesToHtml } where -- If an id can refer to multiple things, we give precedence to type @@ -1739,6 +1740,14 @@ parHtmlMarkup ppId isTyCon = Markup { | isTyCon x = x | otherwise = y + examplesToHtml l = (pre $ concatHtml $ map exampleToHtml l) ! [theclass "screen"] + + exampleToHtml (Example expression result) = htmlExample + where + htmlExample = htmlPrompt +++ htmlExpression +++ (toHtml $ unlines result) + htmlPrompt = (thecode . toHtml $ "ghci> ") ! [theclass "prompt"] + htmlExpression = (strong . thecode . toHtml $ expression ++ "\n") ! [theclass "userinput"] + markupDef :: (HTML a, HTML b) => (a, b) -> Html markupDef (a,b) = dterm << a +++ ddef << b |