https://github.com/lucasepe/markdown
A CommonMark-compliant markdown parser and renderer in Go.
https://github.com/lucasepe/markdown
commonmark golang html-renderer markdown
Last synced: 6 months ago
JSON representation
A CommonMark-compliant markdown parser and renderer in Go.
- Host: GitHub
- URL: https://github.com/lucasepe/markdown
- Owner: lucasepe
- License: bsd-2-clause
- Created: 2023-09-08T19:25:16.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-04T20:17:34.000Z (over 2 years ago)
- Last Synced: 2025-03-17T07:27:38.948Z (10 months ago)
- Topics: commonmark, golang, html-renderer, markdown
- Language: Go
- Homepage:
- Size: 182 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# markdown
CommonMark-compliant markdown parser and renderer.
> Currently supported CommonMark spec: [v0.28](http://spec.commonmark.org/0.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
``` go
md := markdown.New(markdown.XHTMLOutput(true))
fmt.Println(md.RenderToString([]byte("Header\n===\nText")))
```
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 `
` | 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-4 158 7830071 ns/op 2893954 B/op 18361 allocs/op
BenchmarkRenderSpec-4 145 8189870 ns/op 2896310 B/op 18351 allocs/op
BenchmarkRenderSpecBlackFriday2-4 169 7211729 ns/op 2938768 B/op 19214 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.
https://github.com/yuin/goldmark - another CommonMark-compliant markdown parser in Go.
http://talk.commonmark.org — the CommonMark forum, a good place to join together the efforts of the developers.