Jan 11, 2019 - markdown grammar

  1. Markdown是什么?

Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。 Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内容的工具。

  1. 谁创造了它?

它由Aaron Swartz和John Gruber共同设计,Aaron Swartz就是那位于去年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:软件工程师、作家、政治组织者、互联网活动家、维基百科人。

他有着足以让你跪拜的人生经历:

14岁参与RSS 1.0规格标准的制订。

2004年入读斯坦福,之后退学。

2005年创建Infogami,之后与Reddit合并成为其合伙人。

2010年创立求进会(Demand Progress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。 2011年7月19日,因被控从MIT和JSTOR下载480万篇学术论文并以免费形式上传于网络被捕。 2013年1月自杀身亡。 Aaron Swartz

天才都有早逝的归途。

  1. 为什么要使用它? 它是易读(看起来舒服)、易写(语法简单)、易更改纯文本。处处体现着极简主义的影子。 兼容HTML,可以转换为HTML格式发布。 跨平台使用。 越来越多的网站支持Markdown。 更方便清晰地组织你的电子邮件。(Markdown-here, Airmail) 摆脱Word(我不是认真的)。
  2. 怎么使用? 如果不算扩展,Markdown的语法绝对简单到让你爱不释手。

Markdown语法主要分为如下几大部分: 标题,段落,区块引用,代码区块,强调,列表,分割线,链接,图片,反斜杠 \,符号’`‘。

4.1 标题 两种形式: 1)使用=和-标记一级和二级标题。

一级标题

二级标题 ———

效果:

一级标题 二级标题 2)使用#,可表示1-6级标题。

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

效果:

一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 4.2 段落 段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。

4.3 区块引用 在段落的每行或者只在第一行使用符号>,还可使用多个嵌套引用,如:

区块引用

嵌套引用

效果:

区块引用

嵌套引用

4.4 代码区块 代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。如 普通段落:

void main() { printf(“Hello, Markdown.”); }

代码区块:

void main() { printf(“Hello, Markdown.”); } 注意:需要和普通段落之间存在空行。

4.5 强调 在强调内容两侧分别加上*或者_,如:

斜体斜体 粗体粗体

效果:

斜体,斜体 粗体,粗体

4.6 列表 使用·、+、或-标记无序列表,如:

-(+) 第一项 -(+) 第二项 - (+*)第三项

注意:标记后面最少有一个_空格_或_制表符_。若不在引用区块中,必须和前方段落之间存在空行。

效果:

第一项 第二项 第三项 有序列表的标记方式是将上述的符号换成数字,并辅以.,如:

1 . 第一项 2 . 第二项 3 . 第三项

效果:

第一项 第二项 第三项 4.7 分割线 分割线最常使用就是三个或以上*,还可以使用-和_。

4.8 链接 链接可以由两种形式生成:行内式和参考式。 行内式:

younghz的Markdown库

效果:

younghz的Markdown库。

参考式:

[younghz的Markdown库1][1] [younghz的Markdown库2][2] [1]:https:://github.com/younghz/Markdown “Markdown” [2]:https:://github.com/younghz/Markdown “Markdown”

效果:

younghz的Markdown库1 younghz的Markdown库2

注意:上述的[1]:https:://github.com/younghz/Markdown “Markdown”不出现在区块中。

4.9 图片 添加图片的形式和链接相似,只需在链接的基础上前方加一个!。

4.10 反斜杠\ 相当于反转义作用。使符号成为普通符号。

4.11 符号’`’ 起到标记作用。如:

ctrl+a

效果:

ctrl+a

  1. 谁在用? Markdown的使用者:

GitHub 简书 Stack Overflow Apollo Moodle Reddit 等等

  1. 尝试一下 Chrome下的插件诸如stackedit与markdown-here等非常方便,也不用担心平台受限。 在线的dillinger.io评价也不错 Windowns下的MarkdownPad也用过,不过免费版的体验不是很好。 Mac下的Mou是国人贡献的,口碑很好。 Linux下的ReText不错。 当然,最终境界永远都是笔下是语法,心中格式化 :)。

注意:不同的Markdown解释器或工具对相应语法(扩展语法)的解释效果不尽相同,具体可参见工具的使用说明。 虽然有人想出面搞一个所谓的标准化的Markdown,[没想到还惹怒了健在的创始人John Gruber] (http://blog.codinghorror.com/standard-markdown-is-now-common-markdown/)。

以上基本是所有traditonal markdown的语法。

其它: 列表的使用(非traditonal markdown):

表示表格纵向边界,表头和表内容用-隔开,并可用:进行对齐设置,两边都有:则表示居中,若不加:则默认左对齐。

代码库 链接 MarkDown https://github.com/younghz/Markdown MarkDownCopy https://github.com/younghz/Markdown 关于其它扩展语法可参见具体工具的使用说明。

Jan 11, 2019 - jekyll

  1. jekyll is a static site generator.

常用的动态站点生成器:Wordpress,

可以自动把markdown文件生成站点所需的html,css, js 文件。

特点: 不用数据库 (简单) 静态 (动态网站容易需要一个动态语言去支持: PHP,Java。 且动态网站容易被攻击。简单言之,静态网站就是一堆html语言。) GitHub page 兼容 博客支持

Jan 11, 2019 - site generator

近年来,作为传统动态网站基础架构的替代方案,现代静态网站生成器日渐盛行。在 StaticGen 上有一个关于静态站点生成器的开源目录,2017 年该网站追踪了超过一百个生成器,并见证了这些生成器在这一年的流行趋势。本文整理了 StaticGen 目录中排名前 20 的静态网站生成器,排名顺序依据 Github 上的 Star 数。

静态站点生成器 Jekyll

Jekyll 是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如discuz。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。

Go 编写的静态网站生成器 Hugo

Hugo

Hugo 是 Go 编写的静态网站生成器,速度快,易用,可配置。Hugo 有一个内容和模板目录,把他们渲染到完全的 HTML 网站。Hugo 依赖于 Markdown 文件,元数据字体 。用户可以从任意的目录中运行 Hugo,支持共享主机和其他系统

静态博客网站生成器 Hexo

Hexo 是一个基于nodejs 的静态博客网站生成器,作者是来自台湾的 Tommy Chen。

特点:

不可思议的快速 ─ 只要一眨眼静态文件即生成完成

支持 Markdown

仅需一道指令即可部署到 GitHub Pages 和 Heroku

已移植 Octopress 插件

高扩展性、自订性

兼容于 Windows, Mac & Linux

基于 Git 制作电子书 GitBook

GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程。

使用GitBook生成的电子书

GitBook支持输出多种文档格式:

静态站点:GitBook默认输出该种格式,生成的静态站点可直接托管搭载Github Pages服务上;

PDF:需要安装gitbook-pdf依赖;

eBook:需要安装ebook-convert;

单HTML网页:支持将内容输出为单页的HTML,不过一般用在将电子书格式转换为PDF或eBook的中间过程;

JSON:一般用于电子书的调试或元数据提取。

ReactJS 静态网站生成器 Gatsby

live-reloading example

Gatsby 可以使用 React.js 把纯文本转换到动态博客或者网站上。

特点:

无需重载页面转换

热重载编辑

为构建静态网站创建 React.js 组件模型和生态系统

直观的基于目录的 URLs

支持 “Starters”

Vue.js 后端渲染开源库 Nuxt.js

Nuxt.js 是一个通过 Vue 用于服务端渲染的简单框架,灵感来自 Next.js。 Nuxt 基于 ES2015,这使得代码有着更愉快,更整洁的阅读体验。它不使用任何转换器,并取决于 Core V8 实现的功能。

静态页面生成程序 Pelican

Pelican 是一个法国人用 python 写的用于生成静态页面的程序,支持:

博客文章和页面

使用外部服务 Disqus 实现的评论功能

支持主题

可对文章生成 PDF 文档

支持多语言发布文章

Atom/RSS feeds

代码着色

使用 LESS CSS (optional)

可导入 WordPress, Dotclear 或者 RSS feeds

集成外部功能 Twitter, Google Analytics, etc. (optional)

静态网站生成器 Metalsmith

一个非常简单,可插拔的静态网站生成器。在 Metalsmith 中,所有的逻辑都是由插件来处理的。 你只需将它们链接在一起。

前端 Web 应用程序构建工具 Brunch

Brunch 是一个轻量级的、优雅和简单的方法构建 HTML5 应用程序的框架,快速的前端 Web 应用程序构建工具,具有简单的声明性配置,用于快速开发的无缝增量编译。

Ruby 编写的静态网站生成器 Middleman

Middleman 是一个 Ruby 编写的静态网站生成器,他可以让你使用几乎所有在Ruby Web开发中所使用的技术和工具来构建各种类型的静态网站。比如:在 Ruby on Rails 经常用到的 Sass、CoffeeScript、Sprockets、Erb & Haml 等,都可以在 Middleman 里使用。

11、静态网站生成器 MkDocs Screenshot

MkDocs 可以同时编译多个markdown文件,形成书籍一样的文件。有多种主题供你选择,很适合项目使用。

MkDocs 是快速,简单和华丽的静态网站生成器,可以构建项目文档。文档源文件在 Markdown 编写,使用单个 YAML 配置文件配置。

静态网站生成器 Expose

Expose 是一个帮助图配文生成的静态网站生成器。

静态网页生成系统 Assemble

Assemble 是一个使用 Node.js,Grunt.js,Gulp,Yeoman 等来实现的静态网页生成系统。已被 Zurb Foundation, Zurb Ink, H5BP/Effeckt, Less.js / lesscss.org, Topcoat, Web Experience Toolkit 等数百个项目用来生成项目网站、主题、组件、文档、博客和 github 页面。

静态站点生成器 Wintersmith

Wintersmith 是一款静态站点生成器。它包括了内容(markdown,less,script 等),使用插件和输出静态网页(html,css,image 等等)来转换。它附带有 markdown 插件和 jade 模版。

静态网页生成器 Cactus

Cactus 是一个简单而强大的静态网页生成器程序,它使用 Python 和 Django 的模板系统。它的本地开发和在S3 上的部署都非常的简单。

因为目前的动态网站大部分都可以使用 JavaScript 来完成,这样实际上网页完全可以是静态的,而且静态网页速度非常快并且容易管理。所以才有了这个项目。

作者开发 Cactus 的目的是为了给设计师们提供一个标准而简单的系统,让他们能够快速的构建和部署一个速度很快的网站。

React 的渐进式静态网站生成器 React Static

React Static 是一个 React 的渐进式静态网站生成器。它也是一个服务端渲染 React 应用的简约框架,旨在构建一个满足 SEO,网站性能和用户/开发人员使用体验的标准,帮助每个人无痛地构建下一代、高性能的网站。

功能特性

100% React。

快速运行,高性能构建。

数据平台不可知论者(Data Agnostic),可从任何地方提供你的网站数据。

为 ** SEO ** 而生。

React 优先的开发体验。

无痛的项目设置和迁移。

100% 支持 React 生态系统。 包括 CSS-in-JS 库,自定义 Query 层(如 GraphQL),甚至 Redux。

静态网站生成器 DocPad

DocPad 可以帮助生成具有布局,元数据,预处理器(markdown,jade,coffeescript 等等),部分,骨架,文件查看器,查询和完美的插件系统的网站前端。这大大减少了有经验开发者和初学者开发网站之间的不同,帮助用户更快速的建立自己的网站。

JavaScript 编写的静态网站生成器 HubPress

HubPress 是一个由 JavaScript 编写的静态网站生成器,使博客维护更加简单。

主要特性:

提供 WYSIWYG 编辑器撰写博客 支持 AsciiDoc 标记功能,将内容按照用户需求呈现

管理控制台可以自定义博客内容的许多方面

Disqus 整合博客评论

利用Google Analytics 集成来跟踪访问者活动

附带多种主题,随时可以使用

模块化网站编译器 Phenomic

Phenomic 是一个模块化网站编译器,让网站构建更快、更简单。

静态网站生成器 Lektor

Lektor 是静态网站生成器,也是平面文件内容管理系统。Lektor 从静态文件的大量独立 HTML 页面构建出一个完整的项目,同时内置管理 UI 和极小的桌面应用。