github.com 提供的gist是一个很好的功能,方便大家贴代码,贴文档,贴配置来交流
gist本身的功能也很完善,支持markdown,支持各种编程语言语法高亮,支持markdown的扩展语法(比如表格、链接自动识别等)
下面的文档,是一个手把手教你如何写一个类似于github的gist,完整代码请参考我的github
功能
- 支持markdown格式
- 自动识别超链接
- 支持表格扩展, github markdown flavored
- 自动判断代码类型并支持代码高亮
- 支持python, ruby, bash, js 等文件语法高亮
- 使用python语言
- 使用flask web框架
环境准备
安装python环境
1 2 |
sudo apt-get install python sudo apt-get install python-virtualenv |
使用virtualenv生成开发环境
1 2 3 4 5 6 7 8 9 |
mkdir -p ~/proj/the-gist/ cd ~/proj/the-gist/ virualenv ./env source ./env/bin/activate pip install misaka pip install pygments pip install Flask pip install sh |
说明
1 2 |
是一个c语言开发的,快速,兼容,稳定的markdown解析器。 github.com的markdown文档解析,底层就是用的sundown。 |
1 |
是sundown的Python binding |
1 2 3 4 5 6 |
pygments,这是一个很牛逼的项目,python开发的。 专门用来提供语法高亮的,目前支持有上百种语言的高亮 很简单,输入一段内容,自动高亮输出,输出格式可以是html,RTF,LaTeX 以及ascii序列 另外,pygments也提供一个shell命令行工具 pygmentize 比如: pygmentize ./app.py # 就会按照语法,高亮输出app.py的内容到屏幕 |
1 |
一个很流行的python web框架 |
- sh –
optional
1 2 3 4 5 |
一个很酷的python lib,可以让你很方便的在python里面, 操作各种shell命令,比如: import sh sh.git.clone("https://github.com/laiwei/xxx.git") |
代码 fork me on github
安装体验
1 2 3 4 5 6 7 8 9 10 |
git clone https://github.com/laiwei/the-gist ~/ cd ~/the-gist/ && virualenv env . env/bin/activate pip install -r ./pip_requirements.txt python app.py 浏览器中访问 http://127.0.0.1:5009/show/test.md http://127.0.0.1:5009/show/test.py |
2 Comments
不容易啊,第一篇……
我也很喜欢sundown