mod_markdown is Markdown filter module for Apache HTTPD Server.
-
discount
http://www.pell.portland.or.us/~orc/Code/discount/
The code above has already been transformed as libmarkdown2-dev. It's not necessary to get discount.
For Debian/Ubuntu:
# apt install build-essential libtool automake autoconf
# apt install libmarkdown2-dev apache2 apache2-dev
% autoreconf -f -i
% ./configure --with-apxs=<APXS_PATH> --with-discount=<DISCOUNT_DIR>
% make
% make install
Note: Ignore --with-apxs and --with-discount and let ./configure to guess at first. It can find them successfully. In my case, the ./configure guessed, as found in Makefile:
apxs = /usr/bin/apxs
discount_dir = /usr
Note: <DISCOUNT_DIR> is the directory that contains the include directory that contains mkdio.h
Probably you need to specify --with-discount=/usr or --with-discount=/usr/local
in httpd.conf:
LoadModule markdown_module modules/mod_markdown.so
You need to specify full path on debian or ubuntu.
LoadModule markdown_module /usr/lib/apache2/modules/mod_markdown.so
<Location />
AddHandler markdown .md
# If you want to use stylesheet.
# The Css file is relative to the Location as in url. and the MarkownCss directive can be specified for multiple times
# to provide multiple style sheet files.
# MarkdownCss style.css
MarkdownHeader "<p>Header</p>"
MarkdownFooter "<p>Footer</p>"
# If we specify the headerfile, footerfile, the wrapper, css, and header, footer directives are all off.
# and we need to take care of all of them inside the headerfile and footer file.
# Or specify a file for them, they are file paths relative or absolute in filesystem, and they are handled
# differently than the inline ones above.
#MarkdownHeaderfile /var/www/markdown_header.html
#MarkdownFooterfile /var/www/markdown_footer.html
</Location>
Or:
<Directory /var/www>
AddHandler markdown .md
DirectoryIndex index.md
</Directory>
You can also disable HTML wrapper generation (basically <html><head></head><body> and </body></html> surrounding your actual markdown fragment) with this code :
<Directory /var/www>
AddHandler markdown .md
MarkdownWrapper Off
</Directory>
default: MKD_TOC | MKD_AUTOLINK | MKD_FENCEDCODE
| Flag | Value | Description |
|---|---|---|
| MKD_FENCEDCODE | 0x02000000 | enabled fenced code blocks |
| MKD_AUTOLINK | 0x00004000 | make http://foo.com link even without <>s |
| MKD_TOC | 0x00001000 | do table-of-contents processing |
| MKD_1_COMPAT | 0x00002000 | compatibility with MarkdownTest_1.0 |
| MKD_CDATA | 0x00000080 | generate code for xml ![CDATA[...]] |
| MKD_EMBED MKD_NOLINKS | MKD_NOIMAGE | MKD_TAGTEXT |
| MKD_EXPLICITLIST | 0x80000000 | don't combine numbered/bulletted lists |
| MKD_EXTRA_FOOTNOTE | 0x00200000 | enable markdown extra-style footnotes |
| MKD_GITHUBTAGS | 0x08000000 | allow dash and underscore in element names |
| MKD_IDANCHOR | 0x04000000 | use id= anchors for TOC links |
| MKD_LATEX | 0x40000000 | handle embedded LaTeX escapes |
| MKD_NOALPHALIST | 0x00080000 | forbid alphabetic lists |
| MKD_NODIVQUOTE | 0x00040000 | forbid >%class% blocks |
| MKD_NODLDISCOUNT | 0x00800000 | disable discount-style definition lists |
| MKD_NODLIST | 0x00100000 | forbid definition lists |
| MKD_NO_EXT | 0x00000040 | don't allow pseudo-protocols |
| MKD_NOHEADER | 0x00010000 | don't process header blocks |
| MKD_NOHTML | 0x00000008 | don't allow raw html through AT ALL |
| MKD_NOIMAGE | 0x00000002 | don't do image processing, block <img> |
| MKD_NOLINKS | 0x00000001 | don't do link processing, block <a> tags |
| MKD_NOPANTS | 0x00000004 | don't run smartypants() |
| MKD_NORELAXED | 0x00000200 | emphasis happens /everywhere/ |
| MKD_NOSTRIKETHROUGH | 0x00000800 | forbid |
| MKD_NOSTYLE | 0x00400000 | don't extract <style> blocks |
| MKD_NOSUPERSCRIPT | 0x00000100 | no A^B |
| MKD_NOTABLES | 0x00000400 | disallow tables |
| MKD_SAFELINK | 0x00008000 | paranoid check for link protocol |
| MKD_STRICT | 0x00000010 | disable SUPERSCRIPT, RELAXED_EMPHASIS |
| MKD_TABSTOP | 0x00020000 | expand tabs to 4 spaces |
| MKD_TAGTEXT | 0x00000020 | process text inside an html tag; no |
| MKD_URLENCODEDANCHOR | 0x10000000 | urlencode non-identifier chars instead of replacing with dots |