summaryrefslogtreecommitdiffstats
path: root/libraries/md4c/README
blob: 20c0f53f806848d287dc97f61e6c6f035e9f2863 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
MD4C stands for "Markdown for C" and that's exactly what this project
is about.

MD4C is Markdown parser implementation in C, with the following
features:

    *Compliance: Generally, MD4C aims to be compliant to the latest
version of CommonMark specification. Currently, we are fully compliant
to CommonMark 0.30.

    *Extensions: MD4C supports some commonly requested and accepted
extensions. See below.

    *Performance: MD4C is very fast.

    *Compactness: MD4C parser is implemented in one source file and
one header file. There are no dependencies other than standard C
library.

    *Embedding: MD4C parser is easy to reuse in other projects, its
API is very straightforward: There is actually just one function,
md_parse().

    *Push model: MD4C parses the complete document and calls few
callback functions provided by the application to inform it about a
start/end of every block, a start/end of every span, and with any
textual contents.

    *Portability: MD4C builds and works on Windows and
POSIX-compliant OSes. (It should be simple to make it run also on
most other platforms, at least as long as the platform provides C
standard library, including a heap memory management.)

    *Encoding: MD4C by default expects UTF-8 encoding of the input
document. But it can be compiled to recognize ASCII-only control
characters (i.e. to disable all Unicode-specific code), or (on
Windows) to expect UTF-16 (i.e. what is on Windows commonly called
just "Unicode"). See more details below.

    *Permissive license: MD4C is available under the MIT license.