# ConciseMark [(documentation)](https://docs.rs/concisemark/0.4.2/concisemark/index.html)
ConciseMark is a simplified markdown parsing library written in Rust with customization, math supporting
in mind. The `simplified` here means it only supports some common markdown syntax but not full.
For Chinese introduction, please click [ConciseMark 中文介绍](https://zhqli.com/post/1670199332).
## Features
- Basic
- Emphasis
Use `*Itaclics*` to write itaclic text.
Use `**Itaclics**` to write bold text.
- Paragraph
A paragraph consists of a sequence lines without empty line between
them.
- Heading
Use `#`, `##`, ... `######` to indicate one to six level heading.
`#` must be the first character in your heading line.
As a thumb of rule, you should avoid heading level greating than three.
- Blockquote
A blockquote is paragraph starts with `>` symbol, and `>` must be the
first character of the paragraph, for example
> a simple blockquote
with very *long* body
**really long** body ...
If you want to show empty line in blockquote, you can do like the
following
> a simple line
>
> line
test
- List
Use `-` to indicate a list item, nested list is also supported.
Indentation between two adjacent lists must be 4.
Numbered list is not supported yet.
- Link && Image
Use `[google](https://google.com)` to dispaly a link.
Use `` to dispaly an image.
- Code
Use backtick (`) pair to show inline mode code.
Indent your code in a new paragraph with indention more than
four spaces than your current indention, then it will be dispaly mode.
- Extension
- Math
Math in HTML is supported by [katex](https://katex.org/) or
[mathjax](https://www.mathjax.org/), use one syntax such as
`$a^2 + b^2$` to write math equation.
If `$a^2 + b^2$` is in paragraph, then it will be inline mode
(generated text will be `$a^2 + b^2$`).
If `$a^2 + b^2$` holds the full paragraph, then it will be display mode
(rendered text will be `$$a^2 + b^2$$`).
Note that this library does not bundle katex or mathjax,
you must import katex or mathjax in your generated html file.
- Latex PDF Generation
ConciseMark supports you to convert your markdown into xelatex source file, then you can compile it
with xelatex command to generate a pretty PDF document.
Note that to make the generated xelatex source compilable, you have to install the following
fonts onto your system
- [Lora](https://fonts.google.com/specimen/Lora)
- [Source Code Pro](https://fonts.google.com/specimen/Source+Code+Pro?category=Monospace)
- [Source Han Serif SC](https://github.com/adobe-fonts/source-han-serif/releases)
- Markdown Meta
You can put an optional html comment (whose body is in toml format) in the front of your markdown file
<!---
title = "Your title"
subtitle = "Your subtitle"
date = "2021-10-13 00:00:00"
authors = ["name <example@gmail.com>"]
tags = ["demo", "example"]
-->
This content will be parsed as your page meta, you can use it when rendering latex or html page.