• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

knieriem/markdown: A translation of peg-markdown (an implementation of Markdown ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

knieriem/markdown

开源软件地址(OpenSource Url):

https://github.com/knieriem/markdown

开源编程语言(OpenSource Language):

Go 86.0%

开源软件介绍(OpenSource Introduction):

This is an implementation of John Gruber's markdown in Go. It is a translation of peg-markdown, written by John MacFarlane in C, into Go. It is using a modified version of Andrew J Snodgrass' PEG parser peg -- now supporting LEG grammars --, which itself is based on the parser used by peg-markdown.

Support for HTML and groff mm output is implemented, but LaTeX output has not been ported. The output is identical to that of peg-markdown.

I try to keep the grammar in sync with the C version, by cherry-picking relevant changes. In the commit history the corresponding revisions have a suffix [jgm/peg-markdown].

The Markdown parser has a performance similar to that of the original C version, and consumes less memory.

Installation

Provided you have a copy of Go 1, and git is available,

go get github.com/knieriem/markdown

should download and install the package according to your GOPATH settings.

See doc.go for an example how to use the package.


To create the command line program markdown, run

go build github.com/knieriem/markdown/cmd/markdown

the binary should then be available in the current directory.

To run tests, type

go test github.com/knieriem/markdown

At the moment, tests are based on the .text files from the Markdown 1.0.3 test suite created by John Gruber, imported from peg-markdown. The output of the conversion of these .text files to html is compared to the output of peg-markdown.

Development

There is not yet a way to create a Go source file like parser.leg.go automatically from another file, parser.leg, when building packages and commands using the Go tool. To make markdown installable using go get, parser.leg.go has been added to the VCS.

Make parser will update parser.leg.go using leg – which is part of knieriem/peg at github –, if parser.leg has been changed, or if the Go file is missing. If a copy of peg is not yet present on your system, run

go get github.com/knieriem/peg

Then make parser should succeed.

Extensions

In addition to the extensions already present in peg-markdown, this package also supports definition lists (option -dlists) similar to the way they are described in the documentation of PHP Markdown Extra.

Definitions (<dd>...</dd>) are implemented using ListTight and ListLoose, on which bullet lists and ordered lists are based already. If there is an empty line between the definition title and the first definition, a loose list is expected, a tight list otherwise.

As definition item markers both : and ~ can be used.

Todo

Subdirectory Index

  • cmd/markdown – command line program markdown



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap