HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulemarkdown-0.1.17.5Haskell2010

Text.Markdown

  • 3 types
  • 13 values
  • Packagemarkdown-0.1.17.5
  • Exports17
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceMarkdown.hs

Functions

1 declaration
valuemarkdown :: MarkdownSettings -> Text -> Html
#

Convert the given textual markdown content to HTML.

Example3 expressions
:set -XOverloadedStringsimport Text.Blaze.Html.Renderer.TextrenderHtml $ markdown def "# Hello World!""<h1>Hello World!</h1>"
Example1 expression
renderHtml $ markdown def { msXssProtect = False } "<script>alert('evil')</script>""<script>alert('evil')</script>"

Settings

11 declarations

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

A rendering function through which code blocks are passed.

The arguments are the block's language, if any, and the tuple (unrendered content, rendered content). For example, if you wanted to pass code blocks in your markdown text through a highlighter like highlighting-kate, you might do something like:

Example4 expressions
:set -XOverloadedStringslet renderer lang (src,_) = formatHtmlBlock defaultFormatOpts $ highlightAs (maybe "text" unpack lang) $ unpack srclet md = markdown def { msBlockCodeRenderer = renderer } "``` haskell\nmain = putStrLn \"Hello world!\"\n```"putStrLn $ renderHtml md<pre class="sourceCode"><code class="sourceCode">main <span class="fu">=</span> <span class="fu">putStrLn</span> <span class="st">&quot;Hello world!&quot;</span></code></pre>

Since: 0.1.2.1

If True, all generated links have the attribute target=_blank set, causing them to be opened in a new tab or window.

Default: False

Since 0.1.4

If True, a blank line is required before the start of a blockquote. Standard markdown syntax does not require a blank line before a blockquote, but it is all too easy for a > to end up at the beginning of a line by accident.

Default: True

Since 0.1.5

If True, an id attribute is added to the heading tag with the value equal to the text with only valid CSS identifier characters.

## Executive Summary
<h2 id="executive-summary">Executive Summary</h2>

Default: False

Since 0.1.13

Newtype

1 declaration
newtypenewtype Markdown
#

A newtype wrapper providing a ToHtml instance.

Constructors

Instances7Eq, Ord, Show, IsString, Semigroup, Monoid, …

Fenced handlers

3 declarations
valuehtmlFencedHandler
  1. :: Text

    Delimiter

  2. -> (Text -> Text)

    start HTML

  3. -> (Text -> Text)

    end HTML

  4. -> 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

Convenience re-exports

1 declaration
methoddef :: a
#

The default value for this type.