玩转markdown,你需要用到这几个工具

随着wordpress和静态网站的流行,markdown被用的越来越多。

markdown是一个面向写作的语法引擎,markdown的最终目的都是解析成html用于网页浏览,所以它兼容html语法,即你可以在 markdown文档中使用原生的html标签。

markdown解析器

开发静态网站生成器的时候都会采用一种叫front matter的格式进行网站内容写在类似下面的格式


  1. --- 
  2. title: 玩转markdown,你需要用到这几个工具 
  3. date: 2016-08-14 16:44:54 
  4. image: /img/pencils-762555_640.jpg 
  5. --- 
  6.  
  7. ## 前言 
  8.  
  9. 随着wordpress和静态网站的流行,markdown被用的越来越多。... 

当进行网站生成的时候需要进行markdown解析,然后渲染成html页面,那用什么工具进行解析呢?

marked

marked是最早用node.js开发的markdown解析器,同时提供CLI命令调用和node.js api调用。

CLI调用代码示例


  1. $ marked -o hello.html 
  2. hello world 
  3. ^D 
  4. $ cat hello.html 
  5. <p>hello world</p> 

API调用示例


  1. var marked = require('marked'); 
  2. console.log(marked('I am using __markdown__.')); 
  3. // Outputs: <p>I am using <strong>markdown</strong>.</p> 

这些都是一些通用的功能,但是marked还支持代码高亮,通过使用highlight.js。

使用highlight.js进行代码高亮相信大家都用到过,可能大家不知道是highlight.js还支持api方式调用,下面的代码会配置marked使用highlight.js进行代码高亮相信大家都用到过,可能大家不知道是highlight


  1. marked.setOptions({ 
  2.   highlight: function (code, lang) { 
  3.     var res; 
  4.     if (lang) { 
  5.       res = hljs.highlight(lang, code, true).value; 
  6.     } else { 
  7.       res = hljs.highlightAuto(code).value; 
  8.     } 
  9.     return res; 
  10.   } 
  11. }); 

生成的代码已经包含代码高亮标签,最后只需要引入highlight.js的主题就能显示了,highlight.js所有的颜色主题都在这里

markdown-js

markdown-js也是一款使用node.js开发的markdown解析器,基本用法和marked差不多,但是文档里面好像没有提到像marked一样进行代码高亮生成的接口,有兴趣的同学自己找找吧。

markdown生成器

to-markdown

什么是markdown生成器,就是根据html标签生成markdown文件。

github上面markdown生成器star数最高的是to-markdown。

简单的代码示例


  1. var toMarkdown = require('to-markdown'); 
  2. toMarkdown('<h1>Hello world!</h1>'); 

to-markdown最近进行了更新,增加了对gfm的兼容,gfm就是git flavored markdown的意思, 是github对markdown语法进行了扩展。

使用gfm的示例


  1. toMarkdown('<del>Hello world!</del>', { gfm: true }); 

那这个to-markdown有什么用呢?

举个简单的例子,假如我想开发一个简单的rss阅读器,但是我又不想跳转到目标网站去阅读,因为不同的网站风格不一,导致不一致的阅读体验。

怎么办呢?那就把网站内容抓取下来,然后用to-markdown生成markdown文件,然后使用自己的模板样式进行统一渲染。

当然去除广告只是一个side effect。

heckyesmarkdown

除了to-markdown之外还有一个比较好用的api,heckyesmarkdown,这个项目使用了php-readability,提高文章的可读性。

可惜heckyesmarkdown没有开源出来,这个项目有点古老,估计那个时候github还没流行起来。

heckyesmarkdow对中文的支持不是非常友好,如果想抓取中文站还是使用to-markdown比较靠谱一点。

front matter

markdown写文章确实很方便,简单容易上手,但是markdown不能保存元数据,例如作者,日期,类型这样的结构化的数据如果都生成html标签的话提取的时候又稍微麻烦了点, 还得借助cheerio才能完成。

所以,为了能方便的保存文章的元数据,几乎所有的静态网站生成器都使用front matter格式来保存文章。

front matter文件通常分为头部和正文部分,头部一般使用yaml、toml和json三种格式,front matter 解析工具需要识别这三种格式的文件头。正文部分就是普通的markdown内容。

front-matter

front-matter也是用node.js开发的,相比markdown解析器来说,fornt-matter解析器要简单很多。

示例文件 example.md


  1. --- 
  2. title: Just hack'n 
  3. description: Nothing to see here 
  4. --- 
  5.  
  6. This is some text about some stuff that happened sometime ago 

解析代码


  1. var fs = require('fs') 
  2.   , fm = require('front-matter') 
  3.  
  4. fs.readFile('./example.md', 'utf8', function(err, data){ 
  5.   if (err) throw err 
  6.  
  7.   var content = fm(data) 
  8.  
  9.   console.log(content) 
  10. }) 

  1.     attributes: { 
  2.         title: 'Just hack\'n', 
  3.         description: 'Nothing to see here' 
  4.     }, 
  5.     body: '\nThis is some text about some stuff that happened sometime ago', 
  6.     frontmatter: 'title: Just hack\'n\ndescription: Nothing to see here' 

front matter虽然格式看起来不太统一,却是对markdown强有力的补充。

作者:ideras.me

来源:51CTO

时间: 2024-09-09 04:13:14

玩转markdown,你需要用到这几个工具的相关文章

玩转大数据:需要知晓的12种工具

本文讲的是玩转大数据:需要知晓的12种工具,无论是在构建大数据的应用程序,还是仅仅只想从开发的移动应用中得到一点点启发,程序员现在比以往任何时候都需要数据分析工具.这绝对是一个好东西,所以很多公司从程序员的需求和技能出发,构建了一些数据分析工具. 在过去的几年里,Derrick看到了很多初创公司,各类项目以及开发工具等等,它们都旨在为程序员带来先进的数据分析能力.有时候,程序员们会使用简单的脚本开发出强大的显示效果,或者在开发过程中使用一种更简易的方式来实现数据的交付功能,Derrick相信这是

程序员想玩转大数据:需要知晓的12种工具

无论是在构建大数据的应用程序,还是仅仅只想从开发的移动应用中得到一点点启发,程序员现在比以往任何时候都需要数据分析工具.这绝对是一个好东西,所以很多公司从程序员的需求和技能出发,构建了一些数据分析工具.GigaOm的记者Derrick Harris列举了十二个工具: 在过去的几年里,Derrick看到了很多初创公司,各类项目以及开发工具等等,它们都旨在为程序员带来先进的数据分析能力.有时候,程序员们会使用简单的脚本开发出强大的显示效果,或者在http://www.aliyun.com/zixun

除了Markdown编辑器,你还需要会用程序来处理它

前言 随着 wordpress 和静态网站的流行,markdown 被用的越来越多.我们已经介绍过很多 Markdown 编辑器,但是有时候你也需要用程序来处理 Markdown 文本. markdown 是一个面向写作的语法引擎,markdown 的最终目的都是解析成 html 用于网页浏览,所以它兼容 html 语法,即你可以在 markdown 文档中使用原生的 html 标签. markdown 解析器 开发静态网站生成器的时候都会采用一种叫 front matter 的格式进行网站内容

78 款 Markdown 工具

Markable 强大的在线 Markdown 编辑器,支持语法高亮.自动缩进.高亮所在行.显示行数.即时预览.它支持将 HTML 转换成 Markdown. 可以配合 Evernote.Dropbox 使用. Markdown Here 使用 Markdown 撰写邮件.可以插入表格.代码片段和数学公式.支持 Chrome.Firefox.Safari 和 Thunderbird. MultiMarkdown Composer Mac OS X 下的 Markdown 编辑器,支持 Multi

多玩有约走近《剑网3》“小湿妹”插画师专访

霸王兔,相信不少<剑网3>玩家都看过她的作品.专注于绘制<剑网3>同人的她,"产量"非常之高.不久前,一幅名为"小湿妹,入门是要洗澡的"更引起了不少关注.到底霸王兔是个怎么样的人? 影视动画专业毕业,曾任某游戏公司原画总监三年.职业插画师.参与制作<霸王别姬>.<吕布与貂婵>.<碰碰车>.<反三国志>.<天河传说>等多套游戏的原画设计.擅长人物设计.场景设计.海报及插画绘制等.曾任教

从魅族微博闪购看粉丝经济玩法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 魅族通过微博闪购了,首战引发许多媒体关注.自从小米成功以后,很多商家就都进入了粉丝时代,无论是卖火烧的还是卖豆腐的,没有几个粉丝还真是对不住老板娘那张脸. 说到这里我想到了豆腐西施,豆腐西施往门口一站,甚至不用叫卖,凭着卖相就能卖豆腐,很多人因为近距离看看西施而买豆腐,因此消费者的消费行为已经不再是单纯的购物,因为豆腐西施而买豆腐,豆腐与西施建立了联系,西施为这家店的豆腐增加了内涵,增加了故事,增加了人气,增加了粉丝,增加了固定消费者. 所谓的名人

自制 Python小工具 将markdown文件转换成Html文件

今天看到了一个Python库,名为markdown.瞬间就给了我一个灵感,那就是制作一个将markdown文件转换成html文件的小工具. 我的实验环境 操作系统: Windows 7 64位 旗舰版 Python版本: 2.7.11 IDE: PyCharm pro 2016.1 所需依赖: optparser markdown 转换核心 转换的过程很简单,只需要使用markdown库即可,具体使用方法如下: from markdown import markdown def parse(md

盘点2012中国SEO好网站:平台+门户+工具

2012年,对于SEO工作者来说,是非常有激情的一年,因为这一年SEO行业发生了很多的事情,而对于算法上的革新也是有着翻天覆地的变化,其中多少网站沉浮,多少行业经受了无情的打击,多少网站又在行业里面杀出一条血路,这里我(一个非常关注SEO行业)的SEOer为大家整理了今年脱颖而出的几个网站.中国好声音告诉我们要想得到导师们的亲睐,自身的唱歌功底还是非常需要的,而最终胜出的结果告诉我们要想成功,打铁自身硬固然重要,导师们的硬挺才是关键,金志文没有杨坤的偏爱自然进不了四强,而对于中国SEO好网站,自

Windows 7系统17个常用小技巧

下面是笔者为大家总结的Windows7系统中一些应用小技巧,有任务栏图标键盘快捷方式.任务栏上的项目任意移动.问题步骤记录器.系统的通知区域显示多个时间等等,具体如下: 1.任务栏图标键盘快捷方式 Windows 7对于任务栏进行了多个新功能设计,新增小窗口快速预览应用程序.任务栏半透明设计等.此外,还有一个任务栏图标键盘快捷方式设计,可通过快捷键快速打开这些应用程序窗口. 操作技巧:按住"Win"键,然后按键盘上与该程序图标对应的数目,即可快速打开该应用程序窗口.例如,一般Win 7