You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
04567c765e
This uses our own gomatrix lib with the SendHTML function which adds HTML to formatted_body in matrix. golang-commonmark is used to convert markdown into valid HTML. |
6 years ago | |
---|---|---|
.. | ||
.gitlab-ci.yml | 6 years ago | |
AUTHORS | 6 years ago | |
LICENSE | 6 years ago | |
README.md | 6 years ago | |
align.go | 6 years ago | |
autolink.go | 6 years ago | |
backticks.go | 6 years ago | |
balance_pairs.go | 6 years ago | |
blockquote.go | 6 years ago | |
code.go | 6 years ago | |
emphasis.go | 6 years ago | |
entity.go | 6 years ago | |
escape.go | 6 years ago | |
fence.go | 6 years ago | |
fuzz.go | 6 years ago | |
heading.go | 6 years ago | |
helpers.go | 6 years ago | |
hr.go | 6 years ago | |
html_block.go | 6 years ago | |
html_inline.go | 6 years ago | |
image.go | 6 years ago | |
inline.go | 6 years ago | |
lheading.go | 6 years ago | |
link.go | 6 years ago | |
linkify.go | 6 years ago | |
list.go | 6 years ago | |
markdown.go | 6 years ago | |
newline.go | 6 years ago | |
options.go | 6 years ago | |
paragraph.go | 6 years ago | |
parser_block.go | 6 years ago | |
parser_inline.go | 6 years ago | |
plugins.go | 6 years ago | |
reference.go | 6 years ago | |
render.go | 6 years ago | |
replacements.go | 6 years ago | |
smartquotes.go | 6 years ago | |
state_block.go | 6 years ago | |
state_core.go | 6 years ago | |
state_inline.go | 6 years ago | |
strikethrough.go | 6 years ago | |
table.go | 6 years ago | |
table_fsm.go | 6 years ago | |
text.go | 6 years ago | |
text_collapse.go | 6 years ago | |
token.go | 6 years ago | |
urlschema.go | 6 years ago | |
util.go | 6 years ago | |
writer.go | 6 years ago |
README.md
markdown
Package golang-commonmark/markdown provides a CommonMark-compliant markdown parser and renderer, written in Go.
Installation
go get -u gitlab.com/golang-commonmark/markdown
You can also go get mdtool, an example command-line tool:
go get -u gitlab.com/golang-commonmark/mdtool
Standards support
Currently supported CommonMark spec: v0.28.
Extensions
Besides the features required by CommonMark, golang-commonmark/markdown supports:
- Tables (GFM)
- Strikethrough (GFM)
- Autoconverting plain-text URLs to links
- Typographic replacements (smart quotes and other)
Usage
md := markdown.New(markdown.XHTMLOutput(true))
fmt.Println(md.RenderToString([]byte("Header\n===\nText")))
Check out the source of mdtool for a more complete example.
The following options are currently supported:
Name | Type | Description | Default |
---|---|---|---|
HTML | bool | whether to enable raw HTML | false |
Tables | bool | whether to enable GFM tables | true |
Linkify | bool | whether to autoconvert plain-text URLs to links | true |
Typographer | bool | whether to enable typographic replacements | true |
Quotes | string / []string | double + single quote replacement pairs for the typographer | “”‘’ |
MaxNesting | int | maximum nesting level | 20 |
LangPrefix | string | CSS language prefix for fenced blocks | language- |
Breaks | bool | whether to convert newlines inside paragraphs into <br> |
false |
XHTMLOutput | bool | whether to output XHTML instead of HTML | false |
Benchmarks
Rendering spec/spec-0.28.txt on a Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
BenchmarkRenderSpecNoHTML 100 10254720 ns/op 2998037 B/op 18225 allocs/op
BenchmarkRenderSpec 100 10180241 ns/op 2997307 B/op 18214 allocs/op
BenchmarkRenderSpecBlackFriday 200 7241749 ns/op 2834340 B/op 17101 allocs/op
BenchmarkRenderSpecBlackFriday2 200 7448256 ns/op 2991202 B/op 16705 allocs/op
See also
https://github.com/jgm/CommonMark — the reference CommonMark implementations in C and JavaScript, also contains the latest spec and an online demo.
http://talk.commonmark.org — the CommonMark forum, a good place to join together the efforts of the developers.