V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Daring Fireball: Markdown
CommonMark
MacDown Open Source Markdown Editor
Marked
GitHub Flavored Markdown
le0rn0
V2EX  ›  Markdown

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

  •  
  •   le0rn0 · 2015-11-25 17:32:39 +08:00 · 6726 次点击
    这是一个创建于 3293 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  2015-11-25 21:42:45 +08:00
    对于本地 md 编辑器各位能否推荐下? win 的就行(勿笑),谢谢各位!
    30 条回复    2015-11-27 23:31:44 +08:00
    aszxqw
        1
    aszxqw  
       2015-11-25 17:41:16 +08:00
    一般借助一些转换工具,比如 jekyll 。

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

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

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

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

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

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

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

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

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

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

    做博客的话,直接使用 pelican 框架也行啊~生成的静态网页
    le0rn0
        13
    le0rn0  
    OP
       2015-11-25 21:00:19 +08:00
    @Drifter 不知道为什么,我打心底里不喜欢静态博客啊,不知道静态博客哪里好了,存在数据库里多好啊
    Kilerd
        14
    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
        15
    Starduster  
       2015-11-25 21:10:44 +08:00
    @le0rn0 静态网页没漏洞,安全;轻,省系统资源
    le0rn0
        16
    le0rn0  
    OP
       2015-11-25 21:21:58 +08:00
    @Starduster 是不是有多少文章就生成多少静态 html 页?备份的时候是把他们全部下载下来吗
    wellsc
        17
    wellsc  
       2015-11-25 21:26:35 +08:00
    @le0rn0 是的
    Starduster
        18
    Starduster  
       2015-11-25 21:29:16 +08:00
    @le0rn0 所以静态博客每次写一篇文章他就生成一堆 HTML ,改主题什么的也是把所有 HTML 重新生成一次。只是备份的话打包 HTML 当然可以,但是静态博客生成器应该自己有更优雅的导出方式,利用插件之类的连配置什么的一起导出
    le0rn0
        19
    le0rn0  
    OP
       2015-11-25 21:41:11 +08:00
    @Kilerd 现在已经完全明白了,多谢, simplemde-markdown-editor 似乎还有点问题,比如全(分)屏后工具栏样式会变成鼠标 cover 状,感觉知乎简书和作业部落的就很棒,要是能直接拿来用就好了。
    caixiexin
        20
    caixiexin  
       2015-11-25 21:48:36 +08:00   ❤️ 2
    几个月前用 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 。。
    caixiexin
        21
    caixiexin  
       2015-11-25 21:50:25 +08:00
    markdown 编辑器作业部落的就挺好,现在也有桌面版了- -
    https://www.zybuluo.com/mdeditor
    Kilerd
        22
    Kilerd  
       2015-11-25 21:58:34 +08:00
    @le0rn0 一般来说,很少可以找到一款完全满足于你全部要求的 markdown-editor ,毕竟大家的需求都不一样,都需要自己去修改一下。
    至于你所提到的两款,个人觉得还是太重了,不喜欢。

    如果自己的 javascript 过得关的话,可以用以下库来自己写一个满足于自己的
    CodeMirror
    CommonMark
    le0rn0
        23
    le0rn0  
    OP
       2015-11-25 21:59:43 +08:00
    @caixiexin 谢谢!很大的帮助!现有如下问题希望能解惑:

    1. jinja2 模板引擎已经很棒,为什么还要用 vue.js ?

    2. UIKit 和 bootstrap 相比有哪些优势吗?

    3. 对于 mistune 的渲染,我可以修改 css 吗?比如,想改改输出的字体、字号子类的。

    谢谢!!!
    caixiexin
        24
    caixiexin  
       2015-11-25 22:22:12 +08:00
    @le0rn0
    1. 其实我主要还是用 vue.js 的,就一些基础页面用 jinja2 。 jinja2 是后端模板, vue.js 是前端模板,效果上还是有区别的。网速慢的时候,我用 vue.js 写的页面会先加载出个页面框架,然后异步去服务端取数据然后再在浏览器上渲染出来。 jinja2 的页面就不一样了,渲染是在服务端完成的,页面要么没有,要么一下就出来了
    2. UIKit 感觉比 bootstrap 轻量,上手也很快,做小东西玩的话还是很不错的,样式风格小清新,我等前端苦手的福音 233333

    3. mistune 渲染出的 html 没什么样式。 pygments 高亮处理后也只是给 html 加了些 class 。 至于这些 class 对应的样式,可以用引用其他 css 文件来覆盖。网上很多现成的 pygments css 都可以直接拿来用,我自己的就用了个 github-code-highlight.css
    rebornix
        25
    rebornix  
       2015-11-25 22:27:53 +08:00 via Android
    @le0rn0 老实讲 对于博客而言 其实影响不算大。静态博客可以全站分发到 CDN ,但访问量不大的话,优势很小。

    最多就是自己觉得酷吧哈哈哈
    le0rn0
        26
    le0rn0  
    OP
       2015-11-25 22:38:43 +08:00
    @caixiexin 十分感谢!我也试试 UIKit !
    zhuangzhuang1988
        27
    zhuangzhuang1988  
       2015-11-25 23:18:50 +08:00
    其实可以客户端在线渲染的啊... http://facebook.github.io/react/docs/tutorial.html react 指南中就是这个..
    binnchx
        28
    binnchx  
       2015-11-26 13:09:25 +08:00
    推荐 leanote ,支持富文本, markdown ,私有笔记,笔记私密分享和公开博客功能。
    le0rn0
        29
    le0rn0  
    OP
       2015-11-27 23:00:48 +08:00
    @caixiexin 哥们能否给个 qq 联系方式
    caixiexin
        30
    caixiexin  
       2015-11-27 23:31:44 +08:00
    @le0rn0 六五三九零六二一五 我很水的= =
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2686 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 09:30 · PVG 17:30 · LAX 01:30 · JFK 04:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.