Safe Haskell | None |
---|
- markdown :: MarkdownSettings -> Text -> Html
- data MarkdownSettings
- msXssProtect :: MarkdownSettings -> Bool
- msStandaloneHtml :: MarkdownSettings -> Set Text
- msFencedHandlers :: MarkdownSettings -> Map Text (Text -> FencedHandler)
- newtype Markdown = Markdown Text
- data FencedHandler
- codeFencedHandler :: Text -> Map Text (Text -> FencedHandler)
- htmlFencedHandler :: Text -> (Text -> Text) -> (Text -> Text) -> Map Text (Text -> FencedHandler)
- def :: Default a => a
Functions
markdown :: MarkdownSettings -> Text -> HtmlSource
Convert the given textual markdown content to HTML.
>>>
:set -XOverloadedStrings
>>>
import Text.Blaze.Html.Renderer.Text
>>>
renderHtml $ markdown def "# Hello World!"
"<h1>Hello World!</h1>"
>>>
renderHtml $ markdown def { msXssProtect = False } "<script>alert('evil')</script>"
"<script>alert('evil')</script>"
Settings
data MarkdownSettings Source
A settings type providing various configuration options.
See http://www.yesodweb.com/book/settings-types for more information on
settings types. In general, you can use def
.
msXssProtect :: MarkdownSettings -> BoolSource
Whether to automatically apply XSS protection to embedded HTML. Default: True
.
msStandaloneHtml :: MarkdownSettings -> Set TextSource
HTML snippets which stand on their own. We do not require a blank line following these pieces of HTML.
Default: empty set.
Since: 0.1.2
msFencedHandlers :: MarkdownSettings -> Map Text (Text -> FencedHandler)Source
Handlers for the special "fenced" format. This is most commonly used for fenced code, e.g.:
```haskell main = putStrLn "Hello" ```
This is an extension of Markdown, but a fairly commonly used one.
This setting allows you to create new kinds of fencing. Fencing goes into two categories: parsed and raw. Code fencing would be in the raw category, where the contents are not treated as Markdown. Parsed will treat the contents as Markdown and allow you to perform some kind of modifcation to it.
For example, to create a new @@@
fencing which wraps up the
contents in an article
tag, you could use:
def { msFencedHandlers = htmlFencedHandler "@@@" (const "<article>") (const "</article") `Map.union` msFencedHandlers def }
Default: code fencing for ```
and ~~~
.
Since: 0.1.2
Newtype
A newtype wrapper providing a ToHtml
instance.
Fenced handlers
data FencedHandler Source
See 'msFencedHandlers.
Since 0.1.2
:: Text | Delimiter |
-> (Text -> Text) | start HTML |
-> (Text -> Text) | end HTML |
-> Map Text (Text -> FencedHandler) |
Helper for creating a FHParsed
.
Note that the start and end parameters take a Text
parameter; this is the
text following the delimiter. For example, with the markdown:
@@@ foo
foo
would be passed to start and end.
Since 0.1.2