Hash :
5b5c8e7b
Author :
Date :
2016-11-21T00:17:25
Git HTTP | https://git.kmx.io/kc3-lang/md4c.git |
---|---|
Git SSH | git@git.kmx.io:kc3-lang/md4c.git |
Public access ? | public |
Description |
Fork of https://github.com/mity/md4c |
Users |
|
Tags |
|
Home: http://github.com/mity/md4c
MD4C stands for “MarkDown for C” and, unsurprisingly, it is a C Markdown parser implementation.
Warning: This project is very young (read “immature”) and work in progress. Most important features are not yet implemented. See the current status below. And there may be bugs.
In short, Markdown is the markup language this README.md
file is written in.
The following resources can explain more if you are unfamiliar with it:
Main features:
WCHAR*
instead of char*
).
The parser is implemented in a single C source file md4c.c
and its
accompanying header md4c.h
.
The main provided function is md_parse()
. It takes a text in Markdown syntax
as an input and a renderer structure which holds pointers to few callback
functions. As md_parse()
eats the input, it calls appropriate callbacks
allowing application to convert it into another format or render it onto
the screen.
Refer to the header file for more details, the API is mostly self-explaining and there are some explanatory comments.
Example implementation of simple renderer is available in the md2html
directory which implements a conversion utility from Markdown to HTML.
The goal is be compliant to the latest version of CommonMark specification.
The list below corresponds to chapters of the specification version 0.27 and more or less forms our to do list.
Preliminaries:
Blocks and Inlines:
Leaf Blocks:
Container Blocks:
Inlines:
Aside of CommonMark features, various Markdown implementations out there support various extensions and/or some deviations from the CommonMark specification which may be found desired or useful in some situations.
Therefore some extensions or deviations from the CommonMark specification may be considered and implemented. However, such extensions and deviations from the standard shall be enabled only if explicitly enabled by the application.
Default behavior shall stick to the CommonMark specification.
The list below is incomplete list of extensions I see as worth of consideration.
Block Extensions:
## Chapter {#anchor}
(allowing fragment links pointing to it, e.g. [link text](#anchor)
) Inline Extensions:
__foo bar__
~~foo bar~~
==foo bar==
"foo bar"
a^2^ + b^2^ = c^2^
matrix A~i,j~
Miscellaneous:
###Header
(without space) http://google.com
(without <
…>
) john.doe@example.com
(without `<`...`>` and `mailto:`)
MD4C is covered with MIT license, see the file LICENSE.md
.
If you encounter any bug, please be so kind and report it. Unheard bugs cannot get fixed. You can submit bug reports here: