创建hexo风格的markdown页面
最近在用 nodejs 搭建一个个人博客,博客当然要有编辑文章的功能啦。个人比较偏爱 hexo 风格的 markdown 格式,所以想自己的博客也是这样的风格。尝试了几个库,发现 marked 的转换很好,但是样式需要自己编写,这个库还算满意。
marked

正如在 github 上的介绍,它能够识别标题(#等)、段落和换行、区块引用、列表、强调(**)、斜体(*)、链接、图片、代码块等。
准备
首先,在项目中安装 marked

通过 require 引用文件

准备工作好了,就可以开始愉快的使用 marked 啦~~~
使用方法:
marked(markdownString [,options] [,callback])
markdownString:(string)被编辑的字符串;
options:(object)通过 marked.setOption 方法配置;
callback:(function)需要异步高亮时,在markdownString解析完全后的回调函数;当 options 缺省时,回调函数可以作为第二个参数。
最简单的

marked 会将字符串 ‘hello’ 转换为<p>hello</p>。
options
默认选项值:

gfm:使用 GFM 风格。
tables:使用 GFM tables。tables 为true时, gfm 选项也为 true 才起效。
breaks:使用 GFM line breaks。gfm 选项也需为 true 才起效。
pedantic:尽可能的符合 markdown.pl。不修复 markdown 的错误或者不良行为。
sanitize:审查输出。忽略输入的 HTML。
smartLists:使用 smarter list 替代原始的 markdow。最终可能会使用默认的 pedantic。
smartypants:使用像引号和破折号这样的“智能”符号。
highlight
highlight:是代码块高亮的函数。有两种方法。
(一)
使用 node-pygmentize-bundled 进行异步高亮。

(二)
使用 highlight.js 进行同步高亮。

highlight参数:
code:需要高亮的代码。
lang: 代码块中指定的编程语言。
callback:使用异步高亮时的回调函数。
marked 会将高亮的代码块转换成<pre><code>content</code></p>。记住,高亮的样式需要自己设置哦。
可以设置全局的 pre 和 code 样式来调整它的外观。
至于段落、标题这些,样式也可以自行设置成自己喜欢的样子。
关于 marked 更多的资料,请参考 github。
创建hexo风格的markdown页面的更多相关文章
- hexo创建的tags和categories页面为空的解决办法
title: hexo创建的tags和categories页面为空的解决办法 toc: false date: 2018-04-16 02:26:10 主题:landscape 添加type以及men ...
- 如何创建Hexo站点的Tags和Categories默认页面
安装Hexo的categories生成插件 1 $ npm install hexo-generator-category --save 安装Hexo的Tags生成插件 1 $ npm install ...
- GitHub 风格的 Markdown 语法
GitHub 风格的 Markdown 语法 [译] GitHub 风格的 Markdown 语法 Original: GitHub Flavored Markdown - GitHub Help T ...
- 使用 iosOverlay.js 创建 iOS 风格的提示和通知
iosOverlay.js 用于在 Web 项目中实现 iOS 风格的通知和提示效果.为了防止图标加载的时候闪烁,你需要预加载的图像资源.不兼容 CSS 动画的浏览器需要 jQuery 支持.浏览器兼 ...
- 【ASP.NET Web API教程】2.4 创建Web API的帮助页面
原文:[ASP.NET Web API教程]2.4 创建Web API的帮助页面 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 2.4 ...
- ABP示例程序-使用AngularJs,ASP.NET MVC,Web API和EntityFramework创建N层的单页面Web应用
本片文章翻译自ABP在CodeProject上的一个简单示例程序,网站上的程序是用ABP之前的版本创建的,模板创建界面及工程文档有所改变,本文基于最新的模板创建.通过这个简单的示例可以对ABP有个更深 ...
- django之创建第11个项目-页面整合
目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...
- Android实现Material Design风格的设置页面(滑动开关控件)
前言 本文链接 http://blog.csdn.net/never_cxb/article/details/50763271 转载请注明出处 參考了这篇文章 Material Design 风格的设 ...
- [Swift通天遁地]九、拔剑吧-(7)创建旋转和弹性的页面切换效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
随机推荐
- 【codeforces 758C】Unfair Poll
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Operating system coordinated thermal management
A processor's performance state may be adjusted based on processor temperature. On transitions to a ...
- HDU 1244 Max Sum Plus Plus Plus - dp
传送门 题目大意: 给一个序列,要求将序列分成m段,从左至右每一段分别长l1,l2,...lm,求最大的和是多少. 题目分析: 和最大m段子段和相似,先枚举\(i \in [1,m]\),然后$j \ ...
- kindeditor 4 上传下载文件
jsp代码 1 <script type="text/javascript" src="${pageContext.request.contextPath}/kin ...
- Android Studio如何删除module
当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete.但是 在Android Studio中你选中module,右键会发现没 ...
- 神经网络的 Delta 学习规则(learning rule)
1. δ 学习规则 1986 年,由认知心理学家 McClelland 和 Rumellhart 在神经网络训练中引入了 Δ 学习规则,该规则亦可称为连续感知器学习规则(与离散感知器学习规则相并行). ...
- HDU 1143 Tri Tiling (递推)
Tri Tiling Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- pushbutton成为可点击的图标(实现全透明,不论点击与否都只显示Icon)(也就是一个万能控件)
需求 需要2个按钮,一个是音乐开关,一个是关闭窗口,此文章关闭pushButton的透明问题(hovered+pressed都不会有背景色和边框的变化) 原理 使窗口完全透明 代码 _pPushBut ...
- jsonkit 分解nsarray 时刻 一个错误
jsonkit 分解nsarray 时刻 一个错误 Assertion failure in -[TXJKArray count], /Users/mqq/hudson/1740/src/Tencen ...
- atitit.提高开发效率---mda 革命性的软件开发方法
atitit.提高开发效率---mda 革命性的软件开发方法 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和事实上现相分离 2 3. 眼下的问题模型和代码不同步 2 4. ...