请问下 markdown 到底是怎么用在博客中的

2015-11-25 17:32:39 +08:00
 le0rn0

我想用 py 写个博客,发博文希望用 md 编辑器,不清楚该怎么做

希望做过的朋友指点下,谢谢啦!

6604 次点击
所在节点    Markdown
30 条回复
aszxqw
2015-11-25 17:41:16 +08:00
一般借助一些转换工具,比如 jekyll 。

比如这些代码就是 markdown 的:
https://github.com/yanyiwu/blog

然后生成的博客是:
http://yanyiwu.com/
bertonzh
2015-11-25 17:51:56 +08:00
题主说自己用 py 写博客,楼上怎么提到 jekyll 了。

博客里面用 markdown 没啥难度,最简单的你只需要一个 md to html 的库就行。这种库应该很多。
数据库存储就存 md 的源码,方便编辑。访问网页时取出来转换成 html 就可以。如果考虑性能可以缓存一下,或者干脆做两个字段。

至于编辑器,如果你前端比较差,先用 textarea 就可以。 V2EX 不就是 textarea 么。
愿意花时间折腾可以用 codemirror ,看看里面的文档,改改 codemirror 样式和配置,就是一个好用的 markdown 编辑器了。
wellsc
2015-11-25 17:51:57 +08:00
pip install markdown
ericls
2015-11-25 17:55:58 +08:00
之前做了一个 感觉自己用着蛮不错的

http://leeeric.com/post/a-new-editor/

真正的所见即所得 编辑器和实际前端一模一样的 CSS
zeroten
2015-11-25 18:35:44 +08:00
roychan
2015-11-25 19:11:15 +08:00
推荐一下 markdown2 这个库。
rebornix
2015-11-25 19:29:00 +08:00
@bertonzh 讲的挺全面的,赞一个。

如果要补充什么的话,就提一提一楼说的 Jekyll 。 Jekyll 是把 MD 转成 html ,然后你自行把 html 放到 nginx 这类的服务器即可。这种方式也被称为静态网页生成,对应的 Py 实现叫 Hyde 。优势在于不需要在用户访问页面时重复地把 MD 转成 html 。如果你确实希望做成动态渲染,利用楼上推荐的包就可以了。

想推广自己的网站可以理解,但好歹好好答题啊,楼上几个答非所问的,真看不下去。
le0rn0
2015-11-25 20:44:01 +08:00
@bertonzh 懂了,其实真正需要的就是个 md 的解析器就行了是吧?也就是把数据库里存的 md 源码解析成 html ,而像作业部落之类的这种编辑器只是起到一个方便写作的作用,在别的地方写好,直接复制进 textarea 中存进数据库是吧?

那请问下还有如果我想像 wordpress 一样,写作时用我自己集成的一个编辑器,该用什么比较好?知乎和简书的挺不错,可惜不开源。

谢谢啦!
le0rn0
2015-11-25 20:44:29 +08:00
@wellsc 是 md to html 的是吗?谢谢啦!
le0rn0
2015-11-25 20:45:35 +08:00
@roychan markdown 还是 markdown2 ?没太接触过这些库,麻烦说详细些可以吗?谢谢啦
le0rn0
2015-11-25 20:47:53 +08:00
@rebornix 看了 2L 兄弟的回答基本明白了,我是想做动态的,把 md 渲染成 html 转换很耗性能吗?谢谢 o(^▽^)o
Drifter
2015-11-25 20:57:01 +08:00
不怎么消耗性能。

做博客的话,直接使用 pelican 框架也行啊~生成的静态网页
le0rn0
2015-11-25 21:00:19 +08:00
@Drifter 不知道为什么,我打心底里不喜欢静态博客啊,不知道静态博客哪里好了,存在数据库里多好啊
Kilerd
2015-11-25 21:08:33 +08:00
你是想怎么处理?
python 处理的话,用 `markdown` , `markdown2`, `misaka` 这些解析库就可以了,直接在 python 里面使用,缺点在于只用这个的话不能做成 WYSIWYW (所见即所得)功能。
流程如下:

textarea 输入内容(markdown)-->存库-->取出-->解析库解析-->显示


另外一种就是就是用 javascript 来做,这个就要求写在 html 里面了,就是把原来的 textarea 框换成 markdown-editor, 至于这个 MK 编辑器怎么来, GitHub `markdown editor javascript` 就可以搜出很多来。
轻量级的倒是可以介绍一个 https://github.com/NextStepWebs/simplemde-markdown-editor

这个的流程:

markdown-editor 输入内容(可以显示出效果) -->存库-->取出-->解析库解析-->显示

------------

后者的用户体验是比前者好的,代价就是在 html 中加载了多一些 js 和 css

如果你还追求使用性能的话, 那就在后者存库的时候,存两份数据,一份为 markdown 语法,一份为 html 语法(即通过解析库解析后的内容),这样显示就用 html 语法的那份, 编辑就用 markdown 语法的内容。
Starduster
2015-11-25 21:10:44 +08:00
@le0rn0 静态网页没漏洞,安全;轻,省系统资源
le0rn0
2015-11-25 21:21:58 +08:00
@Starduster 是不是有多少文章就生成多少静态 html 页?备份的时候是把他们全部下载下来吗
wellsc
2015-11-25 21:26:35 +08:00
@le0rn0 是的
Starduster
2015-11-25 21:29:16 +08:00
@le0rn0 所以静态博客每次写一篇文章他就生成一堆 HTML ,改主题什么的也是把所有 HTML 重新生成一次。只是备份的话打包 HTML 当然可以,但是静态博客生成器应该自己有更优雅的导出方式,利用插件之类的连配置什么的一起导出
le0rn0
2015-11-25 21:41:11 +08:00
@Kilerd 现在已经完全明白了,多谢, simplemde-markdown-editor 似乎还有点问题,比如全(分)屏后工具栏样式会变成鼠标 cover 状,感觉知乎简书和作业部落的就很棒,要是能直接拿来用就好了。
caixiexin
2015-11-25 21:48:36 +08:00
几个月前用 python 练手写了个博客,主要用到这些东西,希望能帮到你:
python2.7
Flask ---》 python web 框架
jinja2 --》 python 页面模板库
mistune --》 Markdown python 渲染库 ,就是把 md 转换成 html 的东西
pygments --》 python 语法分析库,给转换出来的 html 博文做语法高亮的东东
jQuery2.x
vue.js
UIKit
Nginx
uWSGI ---》 python 的 wsgi 容器
七牛云存储 ---》放博客图片
DigitalOcean --》跑博客程序的 vps 服务器
Namesilo --》 域名服务


服务端基本模仿程序 廖雪峰老师 python2.7 教程写的
编辑博文的时候就像你说的现在 md 编辑器里编辑好,只接从后台把 markdown 贴进去发布。
博文发布后生成 html 文件,访问的时候直接访问 html ,算是假的静态吧- -。

说起来搭完之后一直没更新 ORZ 。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/238871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX