dmarkdown 0.2.0

Markdown to HTML processor


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="Docutils 0.11: http://docutils.sourceforge.net/" /> <title>DMarkdown</title> <style type="text/css">

/* :Author: David Goodger ([email protected]) :Id: $Id: html4css1.css 7614 2013-02-21 15:55:51Z milde $ :Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.

See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to customize this style sheet. */

/ used to remove borders from tables and images / .borderless, table.borderless td, table.borderless th { border: 0 }

table.borderless td, table.borderless th { /* Override padding for "table.docutils td" with "! important".

 The right padding separates the table cells. */

padding: 0 0.5em 0 0 ! important }

.first { / Override more specific margin styles with "! important". / margin-top: 0 ! important }

.last, .with-subtitle { margin-bottom: 0 ! important }

.hidden { display: none }

a.toc-backref { text-decoration: none ; color: black }

blockquote.epigraph { margin: 2em 5em ; }

dl.docutils dd { margin-bottom: 0.5em }

object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { overflow: hidden; }

/ Uncomment (and remove this text!) to get bold-faced definition list terms dl.docutils dt { font-weight: bold } /

div.abstract { margin: 2em 5em }

div.abstract p.topic-title { font-weight: bold ; text-align: center }

div.admonition, div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning { margin: 2em ; border: medium outset ; padding: 1em }

div.admonition p.admonition-title, div.hint p.admonition-title, div.important p.admonition-title, div.note p.admonition-title, div.tip p.admonition-title { font-weight: bold ; font-family: sans-serif }

div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, div.warning p.admonition-title, .code .error { color: red ; font-weight: bold ; font-family: sans-serif }

/* Uncomment (and remove this text!) to get reduced vertical space in compound paragraphs. div.compound .compound-first, div.compound .compound-middle { margin-bottom: 0.5em }

div.compound .compound-last, div.compound .compound-middle { margin-top: 0.5em } */

div.dedication { margin: 2em 5em ; text-align: center ; font-style: italic }

div.dedication p.topic-title { font-weight: bold ; font-style: normal }

div.figure { margin-left: 2em ; margin-right: 2em }

div.footer, div.header { clear: both; font-size: smaller }

div.line-block { display: block ; margin-top: 1em ; margin-bottom: 1em }

div.line-block div.line-block { margin-top: 0 ; margin-bottom: 0 ; margin-left: 1.5em }

div.sidebar { margin: 0 0 0.5em 1em ; border: medium outset ; padding: 1em ; background-color: #ffffee ; width: 40% ; float: right ; clear: right }

div.sidebar p.rubric { font-family: sans-serif ; font-size: medium }

div.system-messages { margin: 5em }

div.system-messages h1 { color: red }

div.system-message { border: medium outset ; padding: 1em }

div.system-message p.system-message-title { color: red ; font-weight: bold }

div.topic { margin: 2em }

h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { margin-top: 0.4em }

h1.title { text-align: center }

h2.subtitle { text-align: center }

hr.docutils { width: 75% }

img.align-left, .figure.align-left, object.align-left { clear: left ; float: left ; margin-right: 1em }

img.align-right, .figure.align-right, object.align-right { clear: right ; float: right ; margin-left: 1em }

img.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; }

.align-left { text-align: left }

.align-center { clear: both ; text-align: center }

.align-right { text-align: right }

/ reset inner alignment in figures / div.align-right { text-align: inherit }

/ div.align-center { / / text-align: left } */

ol.simple, ul.simple { margin-bottom: 1em }

ol.arabic { list-style: decimal }

ol.loweralpha { list-style: lower-alpha }

ol.upperalpha { list-style: upper-alpha }

ol.lowerroman { list-style: lower-roman }

ol.upperroman { list-style: upper-roman }

p.attribution { text-align: right ; margin-left: 50% }

p.caption { font-style: italic }

p.credits { font-style: italic ; font-size: smaller }

p.label { white-space: nowrap }

p.rubric { font-weight: bold ; font-size: larger ; color: maroon ; text-align: center }

p.sidebar-title { font-family: sans-serif ; font-weight: bold ; font-size: larger }

p.sidebar-subtitle { font-family: sans-serif ; font-weight: bold }

p.topic-title { font-weight: bold }

pre.address { margin-bottom: 0 ; margin-top: 0 ; font: inherit }

pre.literal-block, pre.doctest-block, pre.math, pre.code { margin-left: 2em ; margin-right: 2em }

pre.code .ln { color: grey; } / line numbers / pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } pre.code .literal.string, code .literal.string { color: #0C5404 } pre.code .name.builtin, code .name.builtin { color: #352B84 } pre.code .deleted, code .deleted { background-color: #DEB0A1} pre.code .inserted, code .inserted { background-color: #A3D289}

span.classifier { font-family: sans-serif ; font-style: oblique }

span.classifier-delimiter { font-family: sans-serif ; font-weight: bold }

span.interpreted { font-family: sans-serif }

span.option { white-space: nowrap }

span.pre { white-space: pre }

span.problematic { color: red }

span.section-subtitle { / font-size relative to parent (h1..h6 element) / font-size: 80% }

table.citation { border-left: solid 1px gray; margin-left: 1px }

table.docinfo { margin: 2em 4em }

table.docutils { margin-top: 0.5em ; margin-bottom: 0.5em }

table.footnote { border-left: solid 1px black; margin-left: 1px }

table.docutils td, table.docutils th, table.docinfo td, table.docinfo th { padding-left: 0.5em ; padding-right: 0.5em ; vertical-align: top }

table.docutils th.field-name, table.docinfo th.docinfo-name { font-weight: bold ; text-align: left ; white-space: nowrap ; padding-left: 0 }

/ "booktabs" style (no vertical lines) / table.docutils.booktabs { border: 0px; border-top: 2px solid; border-bottom: 2px solid; border-collapse: collapse; } table.docutils.booktabs * { border: 0px; } table.docutils.booktabs th { border-bottom: thin solid; text-align: left; }

h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { font-size: 100% }

ul.auto-toc { list-style-type: none }

</style> </head> <body> <div class="document" id="dmarkdown"> <h1 class="title">DMarkdown</h1>

<div class="section" id="introduction"> <h1>Introduction</h1> <p>DMarkdown is an open source <a class="reference external" href="http://en.wikipedia.org/wiki/Markdown">Markdown</a> to HTML processor for the <a class="reference external" href="http://dlang.org">D programming language</a>. It provides a simple, minimal API to generate HTML from markdown strings or ranges.</p> <p>DMarkdown code was originally written as a part of the <a class="reference external" href="http://vibed.org/">vibe.d</a> project and its API (and most of its implementation) is identical to the <tt class="docutils literal">vibe.textfilter.markdown</tt> module from vibe.d .</p> </div> <div class="section" id="getting-started"> <h1>Getting Started</h1> <p>Assuming you use <a class="reference external" href="http://code.dlang.org/about">dub</a>, add this line:</p> <pre class="literal-block"> "dmarkdown": { "version" : "~>0.1.0" } </pre> <p>to the <tt class="docutils literal">"dependencies"</tt> in your project's <tt class="docutils literal">dub.json</tt>/<tt class="docutils literal">package.json</tt>.</p> <ul> <li><p class="first">Basic example:</p> <pre class="code d literal-block"> <span class="keyword">import</span> <span class="name">dmarkdown</span><span class="punctuation">;</span>

<span class="name builtin">string</span> <span class="name">text</span> <span class="punctuation">=</span>

<span class="literal string">&quot;=======\n&quot;</span>
<span class="literal string">&quot;Heading\n&quot;</span>
<span class="literal string">&quot;=======\n&quot;</span>
<span class="literal string">&quot;\n&quot;</span>
<span class="literal string">&quot;**bold** *italic*\n&quot;</span>
<span class="literal string">&quot;\n&quot;</span>
<span class="literal string">&quot;List:\n&quot;</span>
<span class="literal string">&quot;\n&quot;</span>
<span class="literal string">&quot;  * a\n&quot;</span>
<span class="literal string">&quot;  * b\n&quot;</span>
<span class="literal string">&quot;  * c\n&quot;</span><span class="punctuation">;</span>

<span class="name builtin">string</span> <span class="name">html</span> <span class="punctuation">=</span> <span class="name">filterMarkdown</span><span class="punctuation">(</span><span class="name">text</span><span class="punctuation">);</span> <span class="keyword">import</span> <span class="name">std</span><span class="punctuation">.</span><span class="name">stdio</span><span class="punctuation">;</span> <span class="name">writeln</span><span class="punctuation">(</span><span class="name">html</span><span class="punctuation">);</span> </pre> </li> </ul> <p>To see API details, see the <a class="reference external" href="https://github.com/kiith-sa/dmarkdown/blob/master/source/dmarkdown/markdown.d">dmarkdown.markdown</a> module.</p> <!-- Add this sections when there's something to talk about --> <!-- - - - - - - - - --> <!-- Features --> <!-- - - - - - - - - --> <!-- Can write into both strings and character ranges. -->