├── .gitignore ├── README.md ├── 7.md ├── img ├── 2-1.png ├── 3-1.png ├── 3-2.png ├── 3-3.png ├── 3-4.png ├── 3-5.png ├── 3-6.png ├── 5-1.png ├── md.jpg ├── 4319_1.jpg ├── 4319_2.jpg ├── 4319_3.jpg ├── 4319_4.jpg ├── 4319_5.jpg ├── 4319_6.jpg ├── 4319_7.jpg ├── 4319_8.jpg ├── 4319_9.png ├── Thumbs.db ├── 4319_11.jpg ├── 4319_13.jpg ├── 4319_16.jpg ├── 4319_18.jpg ├── rmarkdown.jpg ├── 53675ce57a699.jpg ├── 53675ec8c78fb.jpg ├── 5674c13d7279d.jpg ├── p220903450-4.jpg ├── p220903450-5.jpg ├── p220903450-7.jpg ├── p220903450-9.jpg ├── 53675d4fdb9ed_middle.jpg ├── 536845a2317ec_middle.jpg ├── 49100-225d27ba754c8e0b.png └── b7efdf7578296403387c3df7abc03df82f424_mw_800_wm_1_wmp_3.jpg ├── 0.md ├── SUMMARY.md ├── hexo-tutor-5.md ├── hexo-tutor-6.md ├── hexo-tutor-4.md ├── 6.md ├── 3.md ├── hexo-tutor-1.md ├── hexo-tutor-3.md ├── hexo-tutor-7.md ├── 1.md ├── hexo-tutor-2.md ├── 5.md ├── 4.md ├── 2.md └── styles └── ebook.css /.gitignore: -------------------------------------------------------------------------------- 1 | _book 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Markdown - 简单的世界 -------------------------------------------------------------------------------- /7.md: -------------------------------------------------------------------------------- 1 | # 用markdown写博客:hexo + gitcafe -------------------------------------------------------------------------------- /img/2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/2-1.png -------------------------------------------------------------------------------- /img/3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-1.png -------------------------------------------------------------------------------- /img/3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-2.png -------------------------------------------------------------------------------- /img/3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-3.png -------------------------------------------------------------------------------- /img/3-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-4.png -------------------------------------------------------------------------------- /img/3-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-5.png -------------------------------------------------------------------------------- /img/3-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/3-6.png -------------------------------------------------------------------------------- /img/5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/5-1.png -------------------------------------------------------------------------------- /img/md.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/md.jpg -------------------------------------------------------------------------------- /img/4319_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_1.jpg -------------------------------------------------------------------------------- /img/4319_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_2.jpg -------------------------------------------------------------------------------- /img/4319_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_3.jpg -------------------------------------------------------------------------------- /img/4319_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_4.jpg -------------------------------------------------------------------------------- /img/4319_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_5.jpg -------------------------------------------------------------------------------- /img/4319_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_6.jpg -------------------------------------------------------------------------------- /img/4319_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_7.jpg -------------------------------------------------------------------------------- /img/4319_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_8.jpg -------------------------------------------------------------------------------- /img/4319_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_9.png -------------------------------------------------------------------------------- /img/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/Thumbs.db -------------------------------------------------------------------------------- /img/4319_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_11.jpg -------------------------------------------------------------------------------- /img/4319_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_13.jpg -------------------------------------------------------------------------------- /img/4319_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_16.jpg -------------------------------------------------------------------------------- /img/4319_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/4319_18.jpg -------------------------------------------------------------------------------- /img/rmarkdown.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/rmarkdown.jpg -------------------------------------------------------------------------------- /img/53675ce57a699.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/53675ce57a699.jpg -------------------------------------------------------------------------------- /img/53675ec8c78fb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/53675ec8c78fb.jpg -------------------------------------------------------------------------------- /img/5674c13d7279d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/5674c13d7279d.jpg -------------------------------------------------------------------------------- /img/p220903450-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/p220903450-4.jpg -------------------------------------------------------------------------------- /img/p220903450-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/p220903450-5.jpg -------------------------------------------------------------------------------- /img/p220903450-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/p220903450-7.jpg -------------------------------------------------------------------------------- /img/p220903450-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/p220903450-9.jpg -------------------------------------------------------------------------------- /img/53675d4fdb9ed_middle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/53675d4fdb9ed_middle.jpg -------------------------------------------------------------------------------- /img/536845a2317ec_middle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/536845a2317ec_middle.jpg -------------------------------------------------------------------------------- /img/49100-225d27ba754c8e0b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/49100-225d27ba754c8e0b.png -------------------------------------------------------------------------------- /img/b7efdf7578296403387c3df7abc03df82f424_mw_800_wm_1_wmp_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wizardforcel/markdown-simple-world/HEAD/img/b7efdf7578296403387c3df7abc03df82f424_mw_800_wm_1_wmp_3.jpg -------------------------------------------------------------------------------- /0.md: -------------------------------------------------------------------------------- 1 | # Markdown 简介 2 | 3 | Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 4 | 5 | Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌HTML等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Docbook。Markdown增强版中比较有名的有Markdown Extra、MultiMarkdown、 Maruku等。这些衍生版本要么基于工具,如Pandoc;要么基于网站,如GitHub和Wikipedia,在语法上基本兼容,但在一些语法和渲染效果上有改动。 -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | + [Markdown 简介](0.md) 2 | + [Markdown 编辑器推荐](1.md) 3 | + [Markdown 基本语法](2.md) 4 | + [Markdown 高级语法](3.md) 5 | + [Markdown + Gitbook](4.md) 6 | + [Markdown + R](5.md) 7 | + [Markdown + Pandoc](6.md) 8 | + [用Markdown写博客:Hexo + Gitcafe](7.md) 9 | + [Hexo 入门指南(一) - 简介 & 准备](hexo-tutor-1.md) 10 | + [Hexo 入门指南(二) - 安装、初始化和配置](hexo-tutor-2.md) 11 | + [Hexo 入门指南(三) - 文章 & 草稿](hexo-tutor-3.md) 12 | + [Hexo 入门指南(四) - 页面、导航、边栏、底栏](hexo-tutor-4.md) 13 | + [Hexo 入门指南(五) - 搬家 & 备份](hexo-tutor-5.md) 14 | + [Hexo 入门指南(六) - sitemap、rss 和部署](hexo-tutor-6.md) 15 | + [Hexo 入门指南(七) - 评论 & 分享](hexo-tutor-7.md) -------------------------------------------------------------------------------- /hexo-tutor-5.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(五) - 搬家 & 备份 2 | 3 | ## 搬入hexo ## 4 | 5 | 首先,需要拿到原博客数据的xml文件。 6 | 7 | wordpress的话,后台“工具->导出”就可以生成。点点和lofter也支持类似操作。如果遇到不支持导出xml的博客,先用[http://www.diandian.com/transfer/](http://www.diandian.com/transfer/)转到点点,再用[http://www.diandian.com/backup](http://www.diandian.com/backup)导出XML文件。 8 | 9 | 之后,安装hexo-migrator-wordpress这个插件 10 | 11 | ``` 12 | npm install hexo-migrator-wordpress --save 13 | ``` 14 | 15 | 运行 16 | 17 | ``` 18 | hexo migrate wordpress wordpress.xml 19 | ``` 20 | 21 | xml中的数据就导入到source中了。最后的工作是修复链接什么的。 22 | 23 | ## 搬出hexo ## 24 | 25 | 没有什么好的办法。可以写个脚本遍历public文件夹,之后post到指定目录或者制作成xml文件。 26 | 27 | ## 备份 ## 28 | 29 | 有句话说得好,数据恢复的最佳方案永远是“备份备份再备份”。 30 | 31 | 个人建议,分别备份站点配置和文章。站点配置包括blog根目录除了source和public文件夹的所有内容,文章就是source文件夹的全部内容。站点配置不经常变的话可以不用经常备份。 -------------------------------------------------------------------------------- /hexo-tutor-6.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(六) - sitemap、rss 和部署 2 | 3 | ## sitemap & rss ## 4 | 5 | 切换到blog根目录下,输入: 6 | 7 | ``` 8 | $ npm install hexo-generator-feed 9 | $ npm install hexo-generator-sitemap 10 | ``` 11 | 12 | 之后重启博客,访问/atom.xml和/sitemap.xml,会发现已经生成了。可以把sitemap提交到搜索引擎的站长平台来增加收录。 13 | 14 | ## 部署 ## 15 | 16 | 首先按照前面教程(一)的gitcafe部分建立好代码仓库,这里假设你的用户名是your_name。由于ssh配置比较麻烦,这里采用https方式提交。 17 | 18 | 找到配置文件中# Deployment一节,修改: 19 | 20 | ``` 21 | type: github 22 | repository: https://gitcafe.com/your_name/your_name.git 23 | branch: gitcafe-pages 24 | ``` 25 | 26 | 之后输入: 27 | 28 | ``` 29 | hexo deploy --generate 30 | ``` 31 | 32 | 或者 33 | 34 | ``` 35 | $ hexo generate --deploy 36 | ``` 37 | 38 | hexo会自动生成并部署。 39 | 40 | 如果之前已经生成过了,直接输入: 41 | 42 | ``` 43 | $ hexo deploy 44 | ``` 45 | 46 | 部署即可。 47 | 48 | 当然,这个命令还有一些bug,比如windows下不能用cmd而是用gitshell。我自己一般会手动敲git代码覆盖提交。 -------------------------------------------------------------------------------- /hexo-tutor-4.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(四) - 页面、导航、边栏、底栏 2 | 3 | ## 页面 ## 4 | 5 | 命令行键入: 6 | 7 | ``` 8 | $ hexo new page about 9 | ``` 10 | 11 | 会在source/about中生成index.html。这个就叫做页面,不在文章列表显示,可以通过[http://localhost/about](http://localhost/about)浏览。 12 | 13 | 页面支持文章的大部分属性,除了分类和标签。 14 | 15 | ## 导航 ## 16 | 17 | 打开主题中的设置文件,即themes\\_config.yml(其中是当前主题的名字,默认为landscape,下同),找到menu:,在列表的末端添加About: 关于。刷新页面,导航栏上就出现了关于链接。 18 | 19 | ## 边栏 ## 20 | 21 | 进入themes\\layout\_widget目录中,创建about.ejs文件,模仿其他文件中的模版,输入以下内容: 22 | 23 | ``` 24 | <% if (site.tags.length){ %> 25 |
26 |

About

27 |
28 | 邮箱:xxx@xxx.com
29 | 微博:@xxxxx 30 |
31 |
32 | <% } %> 33 | ``` 34 | 35 | 打开themes\\_config.yml,找到#Sidebar,在最后面添加- about。刷新页面。 36 | 37 | ## 底栏 ## 38 | 39 | 打开themes\\layout\_partial\footer.ejs修改。 40 | 41 | ## -banner- ## 42 | 43 | 打开themes\\source\css\images,把banner.jpg换掉。 -------------------------------------------------------------------------------- /6.md: -------------------------------------------------------------------------------- 1 | # Markdown + Pandoc 2 | 3 | 来源:[Markdown+Pandoc,打通写作界的任督二脉!](http://blog.csdn.net/duqi_yc/article/details/8974041) 4 | 5 | Markdown+Pandoc,可以把自己的写作内容,变成世界上已有的任何格式的文件,包括很炫的slide,html5。没有人(或者我没看到)总结过这些内容,导致我走了很多弯路才最终打通任督二脉,特此纪念。 6 | 7 | 了解Markdwon以后,我的写作世界,只有它;看到Pandoc格式转换以后,对生成的slide和pdf羡慕的不行。那时,自己期望以后的写作是这样的:首先用Markdown把自己的想法写下来;其次,通过Pandoc,把写好的Markdown文件,转换成Slide或者PDF。如此而已。 8 | 9 | Pandoc,这个不知道怎么发音,google也没找到。好吧,我就读做panda吧,谁让它是国宝。 10 | 11 | Pandoc的运行,是在命令行里面。可是,没那么简单,不是任何一个cmd都可以。你必须要下载Pandoc,请参考[这里](http://pandoc.org/installing.html)。根据自己的os,选择Windows 或者其他。 12 | 13 | 安装以后,记得Pandoc的目录是啥,然后再到cmd里面去操作一些失传已久的doc命令,转换到pandoc的路径下。 14 | 15 | 我个人习惯,是把要转换的文件,比如test.md,放到pandoc的路径下,这样在使用pandoc转换的时候,不用输入太多的路径(尤其是我们很多路径是中文,怕可能有一些问题)。当然,也可以调用其他路径的文件,只要自己觉得舒服。 16 | 17 | pandoc,就像linux下的iconv,可以把其他格式的文件,转化成自己想要的格式。具体的格式参考请看[这里](http://johnmacfarlane.net/pandoc/demos.html)。 18 | 19 | 个人常用的有两个格式转换: 20 | 21 | + a:md文件转换成html5 22 | 23 | ``` 24 | pandoc -s --mathml -i -t dzslides test.md -o test.html 25 | ``` 26 | + b:md文件转换成pdf 27 | 28 | ``` 29 | pandoc -t beamer test.md -o test.pdf 30 | ``` 31 | 32 | 这里强调一点,如果想转成PDF文件,要安装LATEX。推荐安装MiKTex。但是,中文转PDF,因latex支持中文差,转换有问题。对于Latex熟悉的人,可以参考这个,看是否能解决中文转slide pdf的问题。 33 | 34 | 文件转换完成以后,如果有一些地方不合适,可以调整原始的md文件,再转换一次。等熟练以后,从写,到转换就非常迅速了。 当然,Pandoc还有很多的转换格式,大家可以自己去研究发觉。 35 | 36 | 关于Pandoc的使用,我没有过多的去研究。只是把自己常用的几个功能熟悉了一下。时间,真的真的很宝贵,不知不觉就从指缝中溜走了。所以,我只能在满足自己需求情况下,去使用pandoc。 37 | 38 | 期待大家更多的分享! -------------------------------------------------------------------------------- /3.md: -------------------------------------------------------------------------------- 1 | # Markdown 高级语法 2 | 3 | 只有少数编辑器支持,使用前请先确认。 4 | 5 | ## 定义列表 6 | 7 | ``` 8 | Term 1 9 | Term 2 10 | : Definition A 11 | : Definition B 12 | ``` 13 | 14 | 会被编译成 15 | 16 | ``` 17 |
18 |
Term 1
19 |
Term 2
20 |
Definition A
21 |
Definition A
22 |
23 | ``` 24 | 25 | ## 目录 26 | 27 | 通过`[TOC]`标记来插入目录。 28 | 29 | 在编辑器不支持`[TOC]`标记的情况下可以使用添加id的方法构建目录。 30 | 31 | ``` 32 | ### Directory 33 | * [1.Content one](#chapter1) 34 | * [2.Content two](#chapter2) 35 | 36 | ### 1.Content one 37 | 38 | ### 2.Content two 39 | ``` 40 | 41 | 42 | ## TeX公式 43 | 44 | 内联的TeX公式使用一个美元符号标记。 45 | 46 | ``` 47 | $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ 48 | ``` 49 | 50 | 会被编译成 51 | 52 | ![](img/3-1.png) 53 | 54 | TeX公式块用独占一行的两个美元符号来标记。 55 | 56 | ``` 57 | $$ 58 | \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. 59 | $$ 60 | ``` 61 | 62 | 会被编译成 63 | 64 | ![](img/3-2.png) 65 | 66 | 如果你的编辑器不支持这个功能,可以手动解决。首先引入mathjax脚本: 67 | 68 | ``` 69 | 70 | ``` 71 | 72 | 之后,在需要插入公式的地方使用` 76 | 77 | 80 | ``` 81 | 82 | TeX的语法参考请见[这里](http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)。 83 | 84 | ## UML图 85 | 86 | 可以像这样来画uml时序图: 87 | 88 | ![](img/3-3.png) 89 | 90 | ![](img/3-4.png) 91 | 92 | 这是uml流程图: 93 | 94 | ![](img/3-5.png) 95 | 96 | ![](img/3-6.png) 97 | 98 | 时序图的语法请见[这里](http://bramp.github.io/js-sequence-diagrams/)。流程图的语法请见[这里](http://adrai.github.io/flowchart.js/)。 99 | -------------------------------------------------------------------------------- /hexo-tutor-1.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(一) - 简介 & 准备 2 | 3 | Hexo是一个开源的静态博客生成器,用node.js开发,作者是台湾大学生tommy351。 4 | 5 | ## 为什么是博客 ## 6 | 7 | 对于个人网站来说,没有比博客更合适的形式了。在博客中,文章才是最主要的,一切都显得主次分明,干净利落。相比之下,论坛中主题和回复鱼龙混杂,阅读体验非常差。同时,博客比论坛的数据库小很多,便于维护。 8 | 9 | ## 为什么是静态博客 ## 10 | 11 | 很多人选择在虚拟主机或vps上面搭建动态博客。但是这些主机商通常“免费的不稳定,稳定的不免费”。前一段时间,我观察了我的个人博客友链上面的几个站点,一部分在十几天之后就销声匿迹了。独立博客如此麻烦的维护工作,能不能减轻一些呢?正如阮一峰前辈所说,blogger分为三个阶段。最开始,是门户博客。之后,是独立博客。最后,觉得独立博客自己管理起来费劲,便找个别人来管的空间,自己负责写就好。如果我们能够找到这样的空间,在自己保留最大控制权前提下,由别人托管,会省去不少事情。 12 | 13 | 静态博客编译之后是纯html页面,优点就是支持它的环境十分好找,例如github、gitcafe、七牛云存储等站点都支持静态页面托管,自然是我们的首选了。由于github page在国内访问较慢,这篇文章用gitcafe做示范。gitcafe是天朝本地化的github,同样提供展示页和域名绑定功能,不需要备案,就是爽。 14 | 15 | 但是静态博客并非没有缺点。动态博客更新文章时,脚本是不变的,只需要更新数据库。静态博客要频繁改动文件,不支持增量式上传的东西,比如ftp,就难于管理。此外,还要十分熟悉git各种命令,才能部署页面。 16 | 17 | ## 准备工作 ## 18 | 19 | + git 20 | + node.js 21 | + markdown编辑器 22 | + gitcafe 23 | + 域名 24 | 25 | markdown编辑器是非必须的,只要你熟悉语法,随便一个编辑器来写都不是问题。 26 | 27 | 域名也是非必须的,gitcafe pages服务提供免费的二级域名。注册域名的教程这里就不写了。 28 | 29 | ## 安装 git ## 30 | 31 | git的客户端,本人推荐git-scm。 32 | 33 | linux下面,在bash中键入: 34 | 35 | (Ubuntu, Debian) 36 | 37 | ``` 38 | $ sudo apt-get install git 39 | ``` 40 | 41 | (Fedora, Red Hat, CentOS) 42 | 43 | ``` 44 | $ sudo yum install git 45 | ``` 46 | 47 | windows或mac下,直接到[git-scm官网](http://git-scm.com/)下载安装。 48 | 49 | ## 安装 node.js ## 50 | 51 | linux下: 52 | 53 | ``` 54 | $ sudo apt-get install nodejs 55 | $ sudo apt-get install npm 56 | ``` 57 | 58 | yum同理。 59 | 60 | windows或者mac下,直接到[node.js官网](http://nodejs.org/download/)下载安装。 61 | windows还要设置环境变量,把node.js安装路径写进path里面,用半角分号分隔。 62 | 63 | ## markdown 编辑器 ## 64 | 65 | windows下推荐[markdown pad](http://markdownpad.com/)。 66 | 67 | mac下推荐[mou](http://25.io/mou/)。 68 | 69 | ## gitcafe ## 70 | 71 | 首先注册一个账号,之后点击查看[如何使用pages服务](https://gitcafe.com/GitCafe/Help/wiki/Pages-%E7%9B%B8%E5%85%B3%E5%B8%AE%E5%8A%A9)。 72 | 73 | ## 相关网页 ## 74 | 75 | + [Hexo主页](http://blog.csdn.net/wizardforcel/article/details/hexo.io) 76 | + [Hexo github 地址](https://github.com/hexojs/hexo) 77 | + [git book](http://git-scm.com/book/zh/v1) -------------------------------------------------------------------------------- /hexo-tutor-3.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(三) - 文章 & 草稿 2 | 3 | ## 文章 ## 4 | 5 | 命令行中输入: 6 | 7 | ``` 8 | $ hexo new "new article" 9 | ``` 10 | 11 | 之后在source/_posts目录下面,多了一个new-article.md的文件。 12 | 13 | 打开之后我们会看到: 14 | 15 | ``` 16 | title: new article 17 | date: 2014-11-01 20:10:33 18 | tags: 19 | --- 20 | ``` 21 | 22 | 文件的开头是属性,采用统一的yaml格式,用三条短横线分隔。下面是文章正文。 23 | 24 | 文章的正文支持markdown格式,建议你先学习一下它的语法。markdown不像html似的一大堆标签,很简单,只有几个符号。 25 | 26 | 新建、删除或修改文章后,不需要重启hexo server,刷新一下即可预览。 27 | 28 | ### 属性 ### 29 | 30 | 文章可以拥有如下属性: 31 | 32 | | | | | 33 | |-|-|-| 34 | | Setting | Description | Default | 35 | | layout | Layout | post或page | 36 | | title | 文章的标题 | 37 | | date | 创建日期 | 文件的创建日期 | 38 | | updated | 修改日期 | 文件的修改日期 | 39 | | comments | 是否开启评论 | true | 40 | | tags | 标签 | 41 | | categories | 分类 | 42 | | permalink | url中的名字 | 文件名 | 43 | 44 | 动态博客中通过发布文章页面设置的各种属性,在hexo里要这样设置。 45 | 46 | ## 分类和标签 ## 47 | 48 | 例如: 49 | 50 | ``` 51 | categories: 52 | - 日记 53 | tags: 54 | - Hexo 55 | - node.js 56 | ``` 57 | 58 | ## 摘要 ## 59 | 60 | 同wordpress一样,之上的内容为摘要。 61 | 62 | ## layout ## 63 | 64 | 如果你修改了layout,在scaffolds文件夹里一定要有名字对应的模版文件,否则会采用默认模版。 65 | 66 | ## 文件名 ## 67 | 68 | 在配置文件中的new_post_name项可以设置文件名,默认为:title,也就是你在命令行输入的名字。 69 | 70 | 文件名可以为下面几个变量和字符串常量的任意组合: 71 | 72 | | | | 73 | |-|-| 74 | | Variable | Description | 75 | | :title | Escaped title (lower case and replace spaces with dash) | 76 | | :year | Created year (4-digit) | 77 | | :month | Created month (2-digit) | 78 | | :i_month | Created month (Without leading zeros) | 79 | | :day | Created day (2-digit) | 80 | | :i_day | Created day (Without leading zeros) | 81 | 82 | ## 草稿 ## 83 | 84 | 草稿相当于很多博客都有的“私密文章”功能。 85 | 86 | ``` 87 | $ hexo new draft "new draft" 88 | ``` 89 | 90 | 会在source/_drafts目录下生成一个new-draft.md文件。但是这个文件不被显示在页面上,链接也访问不到。也就是说如果你想把某一篇文章移除显示,又不舍得删除,可以把它移动到_drafts目录之中。 91 | 92 | 如果你希望强行预览草稿,更改配置文件: 93 | 94 | ``` 95 | render_drafts: true 96 | ``` 97 | 98 | 或者,如下方式启动server: 99 | 100 | ``` 101 | $ hexo server --drafts 102 | ``` 103 | 104 | 下面这条命令可以把草稿变成文章,或者页面: 105 | 106 | ``` 107 | $ hexo publish [layout] 108 | ``` -------------------------------------------------------------------------------- /hexo-tutor-7.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(七) - 评论 & 分享 2 | 3 | ## 评论 ## 4 | 5 | hexo默认集成了disqus,但是在天朝明显多说更受欢迎一点。 6 | 7 | 首先到多说官网去注册一个账号。然后点击进入添加站点页面,填写所有信息。注意,多说域名的前缀就是站点的短网址,下面要用到,这里假设为short_name。 8 | 9 | 在_config.yml中添加多说的配置: 10 | 11 | ``` 12 | duoshuo_shortname: short_name 13 | ``` 14 | 15 | 修改themes\\layout\_partial\article.ejs,把第38行到41行的如下代码: 16 | 17 | ``` 18 | <% if (!index && post.comments && config.disqus_shortname){ %> 19 |
20 |
21 | 22 |
23 |
24 | <% } %> 25 | ``` 26 | 27 | 替换成: 28 | 29 | ``` 30 | <% if (!index && post.comments && config.duoshuo_shortname){ %> 31 |
32 | 33 |
34 | 35 | 36 | 47 | 48 |
49 | <% } %> 50 | ``` 51 | 52 | 之后,找到第27到29行: 53 | 54 | ``` 55 | <% if (post.comments && config.disqus_shortname){ %> 56 | Comments 57 | <% } %> 58 | ``` 59 | 60 | 替换成: 61 | 62 | ``` 63 | <% if (post.comments && config.duoshuo_shortname){ %> 64 | 留言 65 | <% } %> 66 | ``` 67 | 68 | ## 分享 ## 69 | 70 | hexo默认提供的那四个在国内也被墙了。这里替换成百度一键分享。 71 | 72 | 找到themes\landscape\layout\_partialarticle.ejs26行: 73 | 74 | ``` 75 | 分享 76 | ``` 77 | 78 | 替换成: 79 | 80 | ``` 81 | 分享 82 | 83 | ``` 84 | 85 | 之后打开themes\landscape\source\js\script.js,35~86行全部注释掉。 86 | 87 | ## 后记 ## 88 | 89 | 仅以此教程,悼念Aaron Swartz,RSS和Markdown的联合创始人。没有他,开源博客界就不会有今天。 -------------------------------------------------------------------------------- /1.md: -------------------------------------------------------------------------------- 1 | # Markdown 编辑器推荐 2 | 3 | ## 在线版 4 | 5 | ### 1. [dillinger](http://dillinger.io/) 6 | 7 | 漂亮强大,支持md, html, pdf 文件导出。支持dropbox, onedrive,google drive, github. 来自国外,可能不够稳定。 8 | 9 | ![](img/4319_1.jpg) 10 | 11 | ### 2. [StackEdit](https://stackedit.io/) 12 | 13 | 输出美观大方,可本地保存,还有拼写检查,但是对中文支持不好,可以从截图中看到,中文全部被标记为拼写错误,而且源代码中汉字的字间距太大。 14 | 15 | ![](img/49100-225d27ba754c8e0b.png) 16 | 17 | ### 3. [MaHua](http://mahua.jser.me/) 18 | 19 | 小众软件推荐,界面有些简陋。 20 | 21 | ![](img/4319_2.jpg) 22 | 23 | ### 4. [简书](http://www.jianshu.com/) 24 | 25 | 一个很不错的博客平台,每几秒钟便会自动存入一个备份。可以直接从本地拖入照片生成链接,一直在不断优化。作为一个博客平台,需要注册账号后方能进行写作。 26 | 27 | ![](img/4319_3.jpg) 28 | 29 | ### 5. [马克飞象](https://maxiang.io/) 30 | 31 | 因为印象笔记不支持Markdown,而这款可以直接把文本存到印象笔记的编辑器对于重度印象笔记用户是个不错的选择。付费软件,可以免费试用。 32 | 33 | ![](img/4319_4.jpg) 34 | 35 | ## windows 36 | 37 | ### 1. [MarkdownPad](http://markdownpad.com/) 38 | 39 | 用户可以通过键盘快捷键和工具栏按钮来使用或者移除 Markdown 格式。MarkdownPad左右栏的分割方式令用户可以实时看到 HTML 格式的 Markdown 文档。 40 | 41 | ![](img/53675ce57a699.jpg) 42 | 43 | ### 2. [MarkPad](http://code52.org/DownmarkerWPF/) 44 | 45 | MarkPad 是款开源的 Markdown 编辑器,与 Window 8 风格和谐友好的界面,可以直接在你的博客或者 GitHub 中打开、保存文档,直接将图片粘贴到 Markdown 文档中。 46 | 47 | ![](img/536845a2317ec_middle.jpg) 48 | 49 | ### 3. [Smark](http://git.oschina.net/elerao/Smark) 50 | 51 | 开源软件。 52 | 53 | ![](img/4319_11.jpg) 54 | 55 | ### 4. [Miu](http://www.appinn.com/miu-markdown-editor/) 56 | 57 | 一款模仿mou 的windows平台markdown编辑器,小众推荐,必属精品,官网无法打开,好在小众提供了百度云下载。界面美观,功能不够成熟 58 | 59 | ![](img/4319_13.jpg) 60 | 61 | 62 | ## OSX 63 | 64 | ### 1. [Mou](http://25.io/mou/) 65 | 66 | Mou 是 Mac下杰出的 Markdown 编辑器,提供语法高亮、在线预览、同步滚动、全屏模式,支持自定保存、自动匹配,允许自定义主题,支持 CSS,HTML 和 PDF 导出等。 67 | 68 | ![](img/53675ec8c78fb.jpg) 69 | 70 | ### 2. [MacDown](http://macdown.uranusjr.com/) 71 | 72 | 开源且免费。 73 | 74 | ![](img/4319_16.jpg) 75 | 76 | ### 3. [Ulysses](http://www.ulyssesapp.com/) 77 | 78 | 支持OS X , iPad,售价 283元。堪称markdown编辑器中的佼佼者。 79 | 80 | ![](img/b7efdf7578296403387c3df7abc03df82f424_mw_800_wm_1_wmp_3.jpg) 81 | 82 | ### 4. [iA Writer](https://ia.net/writer/ios) 83 | 84 | 支持OS X , iOS 及Android,未优化中文显示,售价68,pro版本128元。 85 | 86 | ![](img/4319_18.jpg) 87 | 88 | ### 5. [MWeb](http://zh.mweb.im/) 89 | 90 | 专业的 Markdown 编辑器。UI漂亮,主题可选。支持markdown扩展语法,支持打字机滚动模式,支持发布到wp、blogger、tumblr等多个博客。 91 | 92 | ![](img/5674c13d7279d.jpg) 93 | 94 | ## 跨平台 95 | 96 | ### 1. [Cmd Markdown](https://www.zybuluo.com/mdeditor) 97 | 98 | 作业部落出品,也是一款不错的工具和博客平台兼顾的产品。全平台且提供web版。 99 | 100 | ![](img/4319_6.jpg) 101 | 102 | ### 2. [小书匠编辑器](http://soft.xiaoshujiang.com/) 103 | 104 | 全平台覆盖并且有web版。 105 | 106 | ![](img/4319_7.jpg) 107 | 108 | ### 3. [FarBox](https://www.farbox.com/) 109 | 110 | 一个支持Markdown写作语法的博客平台,让用户通过Dropbox(现在默认是自己的同步服务器)直接建立个人网站。FarBox编辑器免费,支持多平台(无web版,Linux版停止维护),个人认为是Windows平台最优雅的编辑器。多说一句,Farbox服务可以免费试用,在本地编辑器内写作自动同步发布在个人博客,对像笔者这样希望有个人博客但却不愿折腾的小白来说,是个不错的选择。 111 | 112 | ![](img/4319_5.jpg) 113 | 114 | ### 4. [Sublime Text 2](http://www.sublimetext.com/) 115 | 116 | 界面简约大方,定位专业。价格70美元,但是如果你能忍受时不时弹出的注册提醒,完全可以免费使用。唯一美中不足的是markdown并非其原生功能,需要安装插件。 117 | 118 | ![](img/4319_8.jpg) 119 | 120 | ### 5. [Atom](https://atom.io/) 121 | 122 | github出的编辑器,功能十分强大,除了编写代码之外还可以做为markdown编辑器,并且原生支持markdown预览,按`ctrl+shift+m`弹出。 123 | 124 | ![](img/4319_9.png) 125 | 126 | ### 6. [ReText](http://sourceforge.net/p/retext/home/ReText/) 127 | 128 | 用python开发的,所以跨平台。ReText 是一个使用 Markdown 语法和 reStructuredText (reST) 结构的文本编辑器,编辑的内容支持导出到 PDF、ODT 和 HTML 以及纯文本,支持即时预览、网页生成以及 HTML 语法高亮、全屏模式,可导出文件到 Google Docs 等。 129 | 130 | ![](img/53675d4fdb9ed_middle.jpg) 131 | 132 | ## 注 133 | 134 | 部分内容来自[月光博客 - 好用的Markdown编辑器一览](http://www.williamlong.info/archives/4319.html)。 135 | -------------------------------------------------------------------------------- /hexo-tutor-2.md: -------------------------------------------------------------------------------- 1 | # Hexo 入门指南(二) - 安装、初始化和配置 2 | 3 | ## 安装和初始化 ## 4 | 5 | linux下打开bash,win下面打开cmd,输入: 6 | 7 | ``` 8 | $ npm install hexo -g 9 | $ hexo init blog 10 | $ cd blog 11 | $ npm install 12 | $ hexo server 13 | ``` 14 | 15 | 访问[http://localhost:4000](http://localhost:4000),会看到生成好的博客。 16 | 17 | 同时,在blog文件夹中,文件如下: 18 | 19 | ``` 20 | 2014/11/01 19:45 . 21 | 2014/11/01 19:45 .. 22 | 2014/11/01 11:16 68 .gitignore 23 | 2014/11/01 17:33 13,767 db.json 24 | 2014/11/01 11:16 node_modules 25 | 2014/11/01 11:17 186 package.json 26 | 2014/11/01 11:23 public 27 | 2014/11/01 11:16 scaffolds 28 | 2014/11/01 17:31 source 29 | 2014/11/01 11:16 themes 30 | 2014/11/01 11:38 1,844 _config.yml 31 | ``` 32 | 33 | ## 配置 ## 34 | 35 | 站点的配置文件是_config.yml,如果你不小心改花了,这里提供了一份默认的: 36 | 37 | ``` 38 | # Hexo Configuration 39 | ## Docs: http://hexo.io/docs/configuration.html 40 | ## Source: https://github.com/hexojs/hexo/ 41 | 42 | # Site 43 | title: Hexo 44 | subtitle: 45 | description: 46 | author: John Doe 47 | email: 48 | language: 49 | 50 | # URL 51 | ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/' 52 | url: http://yoursite.com 53 | root: / 54 | permalink: :year/:month/:day/:title/ 55 | tag_dir: tags 56 | archive_dir: archives 57 | category_dir: categories 58 | code_dir: downloads/code 59 | permalink_defaults: 60 | 61 | # Directory 62 | source_dir: source 63 | public_dir: public 64 | 65 | # Writing 66 | new_post_name: :title.md # File name of new posts 67 | default_layout: post 68 | titlecase: false # Transform title into titlecase 69 | external_link: true # Open external links in new tab 70 | filename_case: 0 71 | render_drafts: false 72 | post_asset_folder: false 73 | relative_link: false 74 | highlight: 75 | enable: true 76 | line_number: true 77 | tab_replace: 78 | 79 | # Category & Tag 80 | default_category: uncategorized 81 | category_map: 82 | tag_map: 83 | 84 | # Archives 85 | ## 2: Enable pagination 86 | ## 1: Disable pagination 87 | ## 0: Fully Disable 88 | archive: 2 89 | category: 2 90 | tag: 2 91 | 92 | # Server 93 | ## Hexo uses Connect as a server 94 | ## You can customize the logger format as defined in 95 | ## http://www.senchalabs.org/connect/logger.html 96 | port: 4000 97 | server_ip: localhost 98 | logger: false 99 | logger_format: dev 100 | 101 | # Date / Time format 102 | ## Hexo uses Moment.js to parse and display date 103 | ## You can customize the date format as defined in 104 | ## http://momentjs.com/docs/#/displaying/format/ 105 | date_format: MMM D YYYY 106 | time_format: H:mm:ss 107 | 108 | # Pagination 109 | ## Set per_page to 0 to disable pagination 110 | per_page: 10 111 | pagination_dir: page 112 | 113 | # Disqus 114 | disqus_shortname: 115 | 116 | # Extensions 117 | ## Plugins: https://github.com/hexojs/hexo/wiki/Plugins 118 | ## Themes: https://github.com/hexojs/hexo/wiki/Themes 119 | theme: landscape 120 | exclude_generator: 121 | 122 | # Deployment 123 | ## Docs: http://hexo.io/docs/deployment.html 124 | deploy: 125 | type: 126 | ``` 127 | 128 | [官方的页面](http://hexo.io/docs/configuration.html)上也提供了每一项详细的解释。 129 | 130 | 我们需要修改的只有Site部分,以及URL部分的url。Site部分每一项依次是标题、副标题、描述、作者、邮箱和语言(天朝大陆填zh-CN)。url改成网站的网址,如果你的网站放在某个子目录下,比如http://yoursite.com/child,root改成/child。 131 | 132 | Server部分,如果之前你的服务器没有运行起来,则可能是端口被占了。把port改成别的数字,或者强行关掉占着端口的进程。 133 | 134 | 其它设置项先不用管,将会在接下来的文章中解释。 135 | 136 | ## 注意 ## 137 | 138 | **如果页面中出现中文,应以UTF-8无BOM编码格式,所以不要用win自带的记事本,而是用notepad++这种支持编码转换的编辑器。** 139 | 140 | 由于google在天朝大陆被墙,进入themes\landscape\layout\_partial,打开head.ejs,删掉第31行fonts.googleapis.com的链接。 141 | 142 | 下载下来jquery-2.0.3.min.js,放到themes\landscape\source\js文件夹中。之后进入themes\landscape\layout\_partial,打开after-footer.ejs,将第17行的路径替换为/js/jquery-2.0.3.min.js。 143 | 144 | 至此大功告成。 -------------------------------------------------------------------------------- /5.md: -------------------------------------------------------------------------------- 1 | # Markdown + R 2 | 3 | 来源:[Markdown写作浅谈](http://www.yangzhiping.com/tech/r-markdown-knitr.html) 4 | 5 | ## 科技写作与Markdown+R 6 | 7 | ### 科技写作会碰到什么难题? 8 | 9 | 如果你是纯文科生,写的都是豆瓣小酸文或者诗歌之类的,那么,看完上面这一部分就可以打住了。如果你还有写科技论文的需要,则继续往下看。 10 | 11 | 科技写作与文艺写作的不同主要有: 12 | 13 | * 公式与图表:相信各位写过科学论文的,都会为数学公式与各类图表的输出头疼不已; 14 | * 格式转换:pdf是通用的,但是有时偏偏需要LaTeX原始格式或者Word原始格式; 15 | * 参考文献:投稿给不同刊物,往往参考文献要根据对方的格式来调整。 16 | 17 | 解决这些难题,[LaTeX](http://en.wikipedia.org/wiki/LaTeX)是国际科学界,尤其是偏数理类的学科的主流方案之一。当然,因为中国盗版office的流行,导致国内科技论文Word更盛行,则是另一码事。Word因为近些年在参考文献协作软件、数学公式方面的发力,也逐步成为科技界认同的论文投递标准之一。 18 | 19 | 提到LaTeX的人们,常常有两种口气。一种是当做大神来敬仰的,当语言、软件变为传奇,路人皆知它的诞生历史时,于是,众多如你我这类文科生,只有抬头仰望的份了。另一类,则是不屑的口气,LaTeX那么好学,你怎么都学不会!国际期刊都是用这个写的,你别混了。。。 20 | 21 | 于是,我等文科生只好在被鄙视的眼光之下,快快走过LaTeX。。。但是,LaTeX真的符合人们写作习惯吗?请记住当时的历史。那时的计算机,所见即所得,并不像今天这么流行。那时的计算机,处理能力也不像今天这么强大。更别提什么脚本语言了。翻出上一份LaTeX文档所用的APA模版,大家就知道它有多么坑爹了。。。 22 | 23 | ![](img/p220903450-4.jpg) 24 | 25 | 使用Lyx,好看多了。问题是,它有坑吗?你跳过吗? 26 | 27 | ## Markdown+R如何解决的? 28 | 29 | 每位试图解决LaTeX的不便,又试图保留它的优点的人们,都走上了一条不归路。 30 | 31 | 直到有一天,极其熟悉LaTeX,也熟悉Markdown的yihui同学,意识到了,LaTeX它可以作为最终格式生成。但是,我们中间的写作过程,完全可以用Markdown这么简单明了的语法来写,我们真正需要的,就是一堆数学公式、图表与参考文献而已。前2者,恰恰是R的强项。后者,则留给开源社区,下一步解决。(可参考[线索1](http://johnmacfarlane.net/pandoc/README.html#reference-links)、[线索2](https://github.com/inukshuk/citeproc-ruby)、[线索 3](https://github.com/inukshuk/jekyll-scholar) ) 32 | 33 | 于是,在他的新作R包[knitr](http://yihui.name/knitr/)中,果断提供了Markdown支持。并说服R社区主流编辑器厂家,开源软件[RStudio](http://www.rstudio.com/) 提供 Markdown支持,从而使得Rmd这种新格式开始流行。我们有幸看到这个重要格式的诞生,国人的贡献如此重要。 34 | 35 | ## Rmd 简介 36 | 37 | Rmd 格式更详细的描述,读 yihui 的文档:[自动化报告](https://github.com/yihui/r-ninja/blob/master/11-auto-report.md) 38 | 39 | 在这里,让我简单说明,如何最快上手Rmd格式。 40 | 41 | ### 安装并配置RStudio 42 | 43 | 下载 [RStudio](http://rstudio.org/) 之后,打开配置选项,如下图所示: 44 | 45 | ![](img/p220903450-5.jpg) 46 | 47 | 然后,进行如下配置: 48 | 49 | ![](img/p220903450-7.jpg) 50 | 51 | ### 新建Rmd文档 52 | 53 | 新建一个Rmd文档,如下图所示: 54 | 55 | ![](img/rmarkdown.jpg) 56 | 57 | 然后,默认会出来一些内容。如果你对Markdown语法有不熟悉的地方,点击MD按钮。写完之后,直接点击: **Knit HTML** 按钮即可发布。MD按钮与Knit Html按钮的位置如下图所示: 58 | 59 | ![](img/md.jpg) 60 | 61 | 就会预览成功。你也可以点击保存,生成相应的图片、Markdown文档。 62 | 63 | 是的,你要的一切图片都有了!这就是 yihui 所推崇的 文学性编程、[可重复研究](http://biostat.mc.vanderbilt.edu/wiki/pub/Main/UseR-2012/InvitedXieAllaire.pdf)概念的神奇。 64 | 65 | 更重要的是,还保留了对LaTeX的无缝兼容。比如,大家可以敲下这段文字: 66 | 67 | ![](img/5-1.png) 68 | 69 | 其中,这一段, 70 | 71 | ``` 72 | $$latex 73 | f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 } 74 | $$ 75 | ``` 76 | 77 | 就是直接生成LaTeX格式的数学公式! 78 | 79 | 没有安装RStudio,或者不熟悉R的朋友,可以在我搭建的一个在线演示APP里面,将上述代码,粘贴上去,然后看看神奇的效果! 80 | 81 | 网址是:[R Markdown App](http://r.psyapp.com/apps/markdown/) 效果如下图所示: 82 | 83 | ![](img/p220903450-9.jpg) 84 | 85 | ## 这么做,有什么好处呢? 86 | 87 | 让我细数一下: 88 | 89 | ### 真正意义上的可重复性研究 90 | 91 | 发表论文或者审核同事的报告,有个最麻烦的事情,你不知道他的步骤或者计算是否有误。现在,代码嵌在报告正文中,或者附录在报告末尾。而你,要做的,仅仅是一键生成。。。 这就是真正意义上的可重复性研究! 92 | 93 | ### 更强大的数学与制图能力 94 | 95 | 既兼容了LaTeX的既有能力,同时,又广泛借助于R自身强大的作图与统计学习能力。 96 | 97 | 更重要的是,未来,并不是非要用R语言作图。yihui 同学在前文中的描述已经极其清楚了。 98 | 99 | ### 当然,还有云计算 100 | 101 | 真正意义上的云计算,尤其是类似于我们这样,中小企业、小型实验室实战使用的小型云计算,不同于各类忽悠的云计算。Markdown+R这种方式是最佳方式之一。上述例子中提到的那个APP,就是搭建在云中。同时提供各类REST接口,可以被Ruby程序调用。 102 | 103 | ## Markdown格式与LaTeX、Word等格式的互转 104 | 105 | 点这里:[Pandoc](http://johnmacfarlane.net/pandoc/) 106 | 107 | 还有不少有趣的玩法,如[Building a beamer presentation with knitr](https://gist.github.com/2955183). 108 | 109 | ## 如何学习Markdown+R? 110 | 111 | 好了,回到大家最关心的部分。分成两部分,先是如何学习Markdown,其次是如何学习R。 112 | 113 | ### Markdown格式说明 114 | 115 | * 参考:[Markdown](http://markdown.tw/) 116 | * 更好的学习办法是直接读各类范本文件 117 | * 更多资源参考[V2ex节点](http://v2ex.com/go/markdown) 118 | 119 | ### Markdown编辑器 120 | 121 | * Mac等平台下推荐[Mou](http://mouapp.com/) 122 | * Windows平台推荐[MarkdownPad](http://markdownpad.com/) 123 | RStudio可作为写作科技论文与R语言编辑器选择,它是跨平台的 124 | * [markdown-here](https://github.com/adam-p/markdown-here)借助Chrome插件,将gmai写作窗口变为Markdown在线写作窗口 125 | * 可以直接在线通过github撰写与提交Markdown文件,github有自动的版本跟踪功能,不用担心写废与找不到以前写的 126 | 127 | ## Windows下的GitHub特别说明 128 | 129 | * 如果碰到git、github等与windows不兼容的现象,不建议折腾,而是直接在线提交即可。 130 | * GitHub最近发行了Windows版本,下载地址[在这里](https://github.com/blog/1127-github-for-windows) 131 | * 我的老文:[如何高效利用github](http://www.yangzhiping.com/tech/github.html) 132 | 133 | ## 如何学习R 134 | 135 | ### Rstudio 136 | 137 | * Getting_Started_with_RStudio.pdf 138 | 139 | ### R语言入门读物 140 | 141 | * R for SAS and SPSS Users.pdf : 适合有SPSS基础的朋友 142 | * Analysis of Questionnaire Data with R : 适合处理问卷数据的文科生或社会科学类 143 | * 更多参考我的豆列:[技术派心理学](http://book.douban.com/doulist/1222833/) 144 | 145 | ## 示范 146 | 147 | ### 文艺青年 148 | 149 | 文艺青年看这里, 150 | 151 | * [為什麼文科生也該用markdown寫作?](http://www.douban.com/note/221187015/) 152 | * [为什么作家应该用 Markdown 保存自己的文稿](http://jianshu.io/p/qqGjLN) 153 | 154 | ### 科学青年 155 | 156 | 可以看这里:[如何学习科学:开放科学工具箱](https://github.com/ouyangzhiping/openscience/blob/master/README.md) 157 | 158 | 点击 RAW 即可看到原始格式。这是一个长文档的示范。另一个示范是作者写的一个在线DEMO: 159 | 160 | [云中的社会网络分析+Markdown](http://r.psyapp.com/apps/markdown/) 161 | 162 | 以及:[Markdown+R科技文写作](http://panda0411.com/2012/06/22/markdownr%E7%A7%91%E6%8A%80%E6%96%87%E5%86%99%E4%BD%9C/) 163 | 164 | ### 技术青年 165 | 166 | * [knitr](http://yihui.name/knitr/)以及各类Google、维基百科。 167 | * 特别是:[pandoc-markdown](http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown) 168 | * [Primarily Pandoc: Writing in Markdown instead of LaTeX](http://www.charlietanksley.net/philtex/primarily-pandoc/) 169 | -------------------------------------------------------------------------------- /4.md: -------------------------------------------------------------------------------- 1 | # Markdown + Gitbook 2 | 3 | ## 使用Gitbook制作电子书 4 | 5 | Gitbook是一个命令行工具,可以把你的Markdown文件汇集成电子书,并提供PDF等多种格式输出。你可以把Gitbook生成的HTML发布出来,就形成了一个简单的静态网站。Gitbook还有一个同名的平台(gitbook.io),可以发布和销售电子书,并提供了一个Markdown客户端工具(支持Mac、Windows和Linux)帮助写作。以下是我在使用Gitbook中的笔记。 6 | 7 | 首先Gitbook和Git/Github都没有什么关系。它只是一个build book的工具而已。但它的Git前缀的确引起了许多人的迷惑,起初我认为至少它也是个和Github类似的Git平台吧,但其实没什么关系,你只要懂几条markdown语法,不必理解任何与Git相关的东西就能用Gitbook了,不要为其名字迷惑。 8 | 9 | **第0步** 安装npm(Node Package Manager)。从node.js的[官网](http://nodejs.org/#download)上下载安装程序,即可完成Node.js和npm的安装。 10 | 11 | **第1步** 通过npm安装Gitbook。 12 | 13 | > $ npm install gitbook -g 14 | 15 | 完成后花10分钟阅读下Gitbook的[帮助文档](http://help.gitbook.io/)。如果你没耐心看手册,那就继续往下读吧 :D 16 | 17 | **第2步** 了解Gitbook的基本规则。 18 | 19 | Gitbook需要2个基本文件: 20 | 21 | * README.md 22 | * SUMMARY.md 23 | 24 | README.md是关于你的书的介绍,而SUMMARY.md中则包含了书目,即章节结构,它的格式大致是: 25 | 26 | ``` 27 | * [第1章](c1.md) 28 | * [第1节](c1s1.md) 29 | * [第2节](c1s2.md) 30 | * [第2章](c2.md) 31 | ``` 32 | 33 | 剩下的东西就很好理解了,你只需要编写相应章节即可。在编辑完README.md和SUMMARY.md后,你可以运行以下命令: 34 | 35 | > $ gitbook serve -p 8080 . 36 | 37 | Gitbook首先把你的Markdown文件编译为HTML文件,并根据SUMMARY.md生成书的目录。所有生存的文件都保存在当前目录下的一个名为_book的子目录中。完成这些工作后,Gitbook会作为一个HTTP Server运行,并在8080端口监听HTTP请求。 38 | 39 | 运行以上命令后,打开浏览器,在地址栏输入:`http://localhost:8080`即可看到你的书页了。 40 | 41 | 其中位于左侧书目顶部的`Introduction`一节就编译自README.md,而书目本身自编译自SUMMARY.md。你要在自己的网站上发布新书,只需把_book目录复制到服务器相应目录即可。至此Gitbook的基本用法就介绍完毕。下面简单讨论下Gitbook的其他应用,包括Gitbook的插件、与Github的融合、Gitbook客户端、Gitbook平台,以及Gitbook的问题。 42 | 43 | **Gitbook的插件支持** 44 | 45 | Gitbook可以生成HTML,因此它支持一些外部的JavaScript文件嵌入到HTML中,例如Google统计、Disqus评论系统等。以下以页面中嵌入Disqus评论为例。 46 | 47 | 首先是安装Gitbook的Disqus插件。 48 | 49 | > $ npm install gitbook-plugin-disqus 50 | 51 | 然后建立一个book.json文件,其格式如下: 52 | 53 | ``` 54 | { "plugins": ["disqus"], "pluginsConfig": { "disqus": { "shortName": "NAME-FROM-DISQUS" } } } 55 | ``` 56 | 57 | 把上面的`NAME-FROM-DISQUS`修改为你在Disqus上的项目名即可。 58 | 59 | 再次运行命令: 60 | 61 | > $ gitbook serve -p 8080 . 62 | 63 | 并刷新浏览器,即可看到附加了Disqus评论的页面。 64 | 65 | **与Github的融合** 66 | 67 | Gitbook的博客上说Github提供了对Gitbook的特殊支持,但我没有测试。只是依然把源文件保存在Github上,然后用Gitbook去编译。期待Gitbook做的更好。 68 | 69 | **Gitbook客户端** 70 | 71 | Gitbook客户端支持Mac、Windows、Linux。我在Mac和Windows简单尝试了这个客户端,总体而言可以用。但也仅仅是可以用而已。你可以在客户端里编辑Markdown文件,并提供一个实时的预览窗口;可以关联到你的Gitbook账户,并把内容同步到gitbook.io,并为你生成PDF等。说句题外话,如果你要Markdown的客户端的话,飞象马克更好用,至少Vim编辑模式你得支持啊。 72 | 73 | **Gitbook的问题** 74 | 75 | Gitbook网站的访问速度很慢。可以在生成_book目录后,把其中的HTML文件和gitbook子目录(包含字体和js文件等)复制到自己的网站上。 76 | 77 | Gitbook提供的push功能不能用。push.gitbook.io这个地址无法访问,不知是否是临时性服务故障。 78 | 79 | Gitbook生成PDF的中文字体极其难看。万分期待改进。话说Gitbook生存的HTML上的中文非常漂亮。 80 | 81 | 在我的手机上看Gitbook的页面时,会让浏览器挂掉。 82 | 83 | ## 使用Gitbook发布电子书 84 | 85 | 上次说到[用GitBook制作电子书](http://www.ituring.com.cn/article/127645),侧重在使用gitbook这个命令行工具,今天要说的重点是GitBook这个平台。当你把书放到GitBook上后,可以设置书的价格(每笔交易GitBook抽走20%作为佣金),也可以设置为免费,以及接受捐赠。如果你要收费或接受捐赠,则需要一个PayPal账户。在开始前,我要友情提示一句,在国内访问GitBook的速度很慢,通过VPN访问才好。 86 | 87 | **第-1步** 用git这个源代码管理工具来管理你的Markdown文件。最好有个GitHub账户,这样每次push到GitHub时,GitBook都会自动为你的更新build新的版本(同时生成HTML、PDF、ePUB、MOBI这4个版本)。 88 | 89 | **第0步** 注册一个GitBook帐号。 90 | 91 | **第1步** 在GitBook添加一本书,填写书名等基本信息即可。完成后,GitBook会为你生成一个git仓库,其格式为: 92 | 93 | > https://push.gitbook.io/{author}/{book}.git 94 | 95 | `author`即你的GitBook用户名,`book`即你的书名,如我创建的书的git仓库: 96 | 97 | > https://push.gitbook.io/berlinix/guaidanuniversity.git 98 | 99 | 这样你可以在编写完Markdown后,通过`git push`同步到GitBook。 100 | 101 | **第2步** 把你本地的Markdown文件push到GitBook。我发现`git push`时常失败(服务器返回5xx错误),因此还有一种方法就是把你的GitHub项目与GitBook关联。每次push到GitHub时,会通过GitBook的webhook自动同步到GitBook上。 102 | 103 | 在Book Setting中简单配置一下即可,如我的配置为:`berlinix/gdu` (GitHub用户名为berlinix,GitHub仓库名为gdu) 104 | 105 | 在第一次push后,就可以看到你在GitBook上的电子书了,其访问地址为: 106 | 107 | > http://{author}.gitbooks.io/{book}/ 108 | 109 | 这是你电子书的主页,从这个页面可以直接打开HTML版本,或下载PDF等电子书版本,一般用户也可以为你的书添加评论。如: 110 | 111 | > http://berlinix.gitbooks.io/guaidanuniversity/ 112 | 113 | 要直接访问HTML版本,可以通过链接: 114 | 115 | > https://www.gitbook.io/read/book/{author}/{book} 116 | 117 | 直接访问,如: 118 | 119 | > https://www.gitbook.io/read/book/berlinix/guaidanuniversity 120 | 121 | 至此,GitBook平台的基本用法就介绍完毕。下面是我的一些使用经验。 122 | 123 | **个性化域名** 124 | 125 | HTML版本的URL很复杂,可以使用个性化域名简化之。在域名注册商那里添加一条CNAME记录即可,如: 126 | 127 | > CNAME gdu.berlinix.com www.gitbook.io 300 128 | 129 | 并把`gdu.berlinix.com`配置到Book Setting中去,这样可以通过简单的`gdu.berlinix.com`来取代`https://www.gitbook.io/read/book/berlinix/guaidanuniversity`。同理,电子书的主页也可设置个性化域名,就不再赘述。 130 | 131 | **删除电子书** 132 | 133 | 同样是在Book Setting中,可以删除电子书。在电子书列表中没有删除接口。 134 | 135 | **GitBook电子书封面** 136 | 137 | 可以为电子书添加封面。只需添加2个名为`cover.jpg`和`cover_small.jpg`的两个图片即可。官方建议cover.jpg尺寸1800*2360,cover_small.jpg尺寸200*262。花2元即可在淘宝上找个做封面的人为你制造一个简单的封面,做得好就要花更多一些了 :) 138 | 139 | **GitBook帐号头像** 140 | 141 | 似乎只接受Gravatar.com的头像。把Gravatar帐号关联过去即可。Gravatar提供的服务是把你的邮箱和头像关联起来,当你在其他网站注册时就不用每次都上传同一个头像,只需简单与Gravatar帐号关联即可。这样替换头像也方便了,一次替换、处处生效。 142 | 143 | **访问优化** 144 | 145 | 按GitBook的访问速度,如果真让人访问GitBook上的HTML页面真是自寻死路啊,因此最好是把GitBook编译后的HTML放在自己的网站上。同时,为自己网站的HTML生成Disqus支持。例如你可以访问我放到自己服务器后的页面(用手机访问效果也非常好): 146 | 147 | > http://www.berlinix.com/gdu/index.html 148 | 149 | **电子书Bug** 150 | 151 | 上次说到GitBook生成PDF的中文字体非常丑陋,另外还有一个问题,那就是生成的PDF可能是残全不全的。我编译后发现内容只剩一半。我已邮件过去报告这个Bug,还在等回信 :) 152 | 153 | 总体而言,GitBook还是很好玩,比起其他写作平台而言,要自由、简单,并舒服得多,可以用Vim编辑,支持Markdown语法,用git管理,关联GitHub后每次push后还能自动编译,生成多种电子书格式。如果你的书极为畅销的话,还能获取到捐赠或购买,没有理由不尝试的呀。 154 | 155 | ## 注 156 | 157 | 来源: 158 | 159 | + [使用Gitbook制作电子书](http://www.ituring.com.cn/article/127645) 160 | + [使用GitBook平台发布电子书](http://www.ituring.com.cn/article/127744) -------------------------------------------------------------------------------- /2.md: -------------------------------------------------------------------------------- 1 | # Markdown 基本语法 2 | 3 | ## 段落 4 | 5 | 非常自然,一行文字就是一个段落。 6 | 7 | 比如 8 | 9 | ``` 10 | 这是一个段落。 11 | ``` 12 | 13 | 会被解释成 14 | 15 | ``` 16 |

这是一个段落。

17 | ``` 18 | 19 | 如果你需要另起一段,请在两个段落之间隔一个空行。 20 | 21 | ``` 22 | 这是一个段落。 23 | 24 | 这是另一个段落。 25 | ``` 26 | 27 | 会解释成 28 | 29 | ``` 30 |

这是一个段落

31 |

这是另一个段落

32 | ``` 33 | 34 | 不隔一个空行的换行行为,在一些编辑器中被解释为换行,即插入一个`
`标签。对与另外一些编辑器,会被解释为插入一个空格。对于后者,若要插入换行标签,请在当前一行的结尾打两个空格。 35 | 36 | ## 粗体、斜体 37 | 38 | 可以使用星号`*`或下划线`_`指定粗体或者斜体。 39 | 40 | ``` 41 | *这是斜体* 42 | _这也是斜体_ 43 | **这是粗体** 44 | ***这是粗体+斜体*** 45 | ``` 46 | 47 | 会被解释成 48 | 49 | ``` 50 | 这是斜体 51 | 这也是斜体 52 | 这是粗体 53 | 这是粗体+斜体 54 | ``` 55 | 56 | ## 删除线 57 | 58 | 一部分编辑器支持删除线,它不是经典markdown中的要素。用波浪线`~`定义删除线。 59 | 60 | ``` 61 | ~~就像这样~~ 62 | ``` 63 | 64 | 会被解释成 65 | 66 | ``` 67 | 就像这样 68 | ``` 69 | 70 | ## 标题 71 | 72 | markdown总支持1~6六级标题,通过在一行之前加上不同数量的井号来表示。 73 | 74 | ``` 75 | # 这是 H1 # 76 | 77 | ## 这是 H2 ## 78 | 79 | ### 这是 H3 ### 80 | 81 | ... 82 | 83 | ###### 这是 H6 ###### 84 | ``` 85 | 86 | 行尾可以加上任意数量的井号字符,这些字符不会算作标题内容。通常会加上相等数量的字符以保持对称。 87 | 88 | 此外,H1和H2也可以采用在文本下方添加底线来实现,比如: 89 | 90 | ``` 91 | 这是 H1 92 | ======= 93 | 94 | 这是 H2 95 | ------- 96 | ``` 97 | 98 | ## 引用 99 | 100 | 通过在行首加上大于号`>`来添加引用格式。 101 | 102 | ``` 103 | > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, 104 | consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. 105 | Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. 106 | 107 | > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse 108 | id sem consectetuer libero luctus adipiscing. 109 | ``` 110 | 111 | 引用可以嵌套: 112 | 113 | ``` 114 | > This is the first level of quoting. 115 | > 116 | > > This is nested blockquote. 117 | > 118 | > Back to the first level. 119 | ``` 120 | 121 | 也可以嵌套其他格式: 122 | 123 | ``` 124 | > ## 这是一个标题。 125 | > 126 | > 1. 这是第一行列表项。 127 | > 2. 这是第二行列表项。 128 | > 129 | > 给出一些例子代码: 130 | > 131 | > return shell_exec("echo $input | $markdown_script"); 132 | ``` 133 | 134 | ## 列表 135 | 136 | 无序列表使用星号、加号或是减号作为列表标记: 137 | 138 | ``` 139 | * Red 140 | * Green 141 | * Blue 142 | ``` 143 | 144 | 等同于 145 | 146 | ``` 147 | + Red 148 | + Green 149 | + Blue 150 | ``` 151 | 152 | 和 153 | 154 | ``` 155 | - Red 156 | - Green 157 | - Blue 158 | ``` 159 | 160 | 有序列表则使用数字接着一个英文句点: 161 | 162 | ``` 163 | 1. Bird 164 | 2. McHale 165 | 3. Parish 166 | ``` 167 | 168 | 数字并不会影响输出的 HTML 结果,也就是说上面的例子等同于: 169 | 170 | ``` 171 | 1. Bird 172 | 1. McHale 173 | 1. Parish 174 | ``` 175 | 176 | ## 内联代码 177 | 178 | 用反引号`` ` ``来标记内联代码,它们会解释成``标签。如果代码的内容中有反引号,请用两个反引号包裹。代码中的`&`、`<`、`>`符号都会自动转义,请放心使用。 179 | 180 | ## 代码区域 181 | 182 | 有两种方式标记代码区域,原生风格是行首缩进四个空格。 183 | 184 | ``` 185 | 这是一个普通段落: 186 | 187 | 这是一个代码区块。 188 | ``` 189 | 190 | 会被解释成 191 | 192 | ``` 193 |

这是一个普通段落:

194 | 195 |
这是一个代码区块。
196 | 
197 | ``` 198 | 199 | 除了行首的4个空格会被移出,其它不变。像内联代码一样,上述三种符号也会被转义。但在代码段中,星号之类的markdown标记符号则不会解析。 200 | 201 | 还有一种是github的风格,代码段的前后用三个反引号独占一行来标记。 202 | 203 | ![](img/2-1.png) 204 | 205 | 目前主流编辑器都支持这种风格。 206 | 207 | ## 分隔线 208 | 209 | 你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线: 210 | 211 | ``` 212 | * * * 213 | *** 214 | ***** 215 | - - - 216 | --------------------------------------- 217 | ``` 218 | 219 | ## 链接 220 | 221 | ``` 222 | [an example](http://example.com/) 223 | [an example](http://example.com/ "Optional Title") 224 | ``` 225 | 226 | 会被解释为 227 | 228 | ``` 229 | an example 230 | an example 231 | ``` 232 | 233 | 除了上面的行内式,也可以使用参考式: 234 | 235 | ``` 236 | [an example][id] 237 | ``` 238 | 239 | 然后在任意空白位置定义: 240 | 241 | ``` 242 | [id]: http://example.com/ "Optional Title" 243 | ``` 244 | 245 | ## 图像 246 | 247 | ``` 248 | ![Alt text](/path/to/img.jpg) 249 | ![Alt text](/path/to/img.jpg "Optional Title") 250 | ``` 251 | 252 | 会被解释为 253 | 254 | ``` 255 | Alt text 256 | Alt text 257 | ``` 258 | 259 | 同样,图像也有类似的参考式语法。 260 | 261 | ## 自动链接 262 | 263 | 如果链接的地址和名字重复,可以用尖括号语法将其简化。 264 | 265 | ``` 266 | 267 | ``` 268 | 269 | 就相当于 270 | 271 | ``` 272 | [http://example.com/](http://example.com/) 273 | ``` 274 | 275 | 切记,大多数编辑器都会自动将符合url规则的东西视为链接,并且解释成链接。很多时候作者由于疏忽等缘故,链接和后面的中文之间缺少空格,导致链接不正常。所以我建议,链接要么加上尖括号,要么两端加上空格。 276 | 277 | ## 转义 278 | 279 | markdown支持在以下字符前面插入反斜杠 280 | 281 | ``` 282 | \ 反斜线 283 | ` 反引号 284 | * 星号 285 | _ 底线 286 | {} 花括号 287 | [] 方括号 288 | () 括弧 289 | # 井字号 290 | + 加号 291 | - 减号 292 | . 英文句点 293 | ! 惊叹号 294 | ``` 295 | 296 | 插入之后,将不再解析这些字符,而是原样输出。 297 | 298 | ## 表格 299 | 300 | 表格是github风格独有的语法,但近年来渐渐被大多数编辑器支持。 301 | 302 | ``` 303 | | Item | Value | Qty | 304 | | :------- | ----: | :---: | 305 | | Computer | $1600 | 5 | 306 | | Phone | $12 | 12 | 307 | | Pipe | $1 | 234 | 308 | ``` 309 | 310 | 会被解释成 311 | 312 | ``` 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 |
ItemValueQty
Computer$16005
Phone$1212
Pipe$1234
337 | ``` 338 | 339 | 要注意第二行的冒号决定了居左居右还是居中,如果你不加冒号,默认是居左的。 340 | 341 | 另外可以把第一行去掉,做成没有表头的表格,但第二行始终是要有的。 342 | 343 | ## 内联 HTML 344 | 345 | markdown 的语法简洁,但有其局限性,所以特意保留了内联html这种方式。任何html标签及其内容,都会原样输出到结果中。也就是说,标签中的星号等作为markdown结构的符号,以及构成html标签和实体的符号,都不会做任何转义。 346 | -------------------------------------------------------------------------------- /styles/ebook.css: -------------------------------------------------------------------------------- 1 | /* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */ 2 | /* Author: Nicolas Hery - http://nicolashery.com */ 3 | /* Version: b13fe65ca28d2e568c6ed5d7f06581183df8f2ff */ 4 | /* Source: https://github.com/nicolahery/markdownpad-github */ 5 | 6 | /* RESET 7 | =============================================================================*/ 8 | 9 | html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { 10 | margin: 0; 11 | padding: 0; 12 | border: 0; 13 | } 14 | 15 | /* BODY 16 | =============================================================================*/ 17 | 18 | body { 19 | font-family: Helvetica, arial, freesans, clean, sans-serif; 20 | font-size: 14px; 21 | line-height: 1.6; 22 | color: #333; 23 | background-color: #fff; 24 | padding: 20px; 25 | max-width: 960px; 26 | margin: 0 auto; 27 | } 28 | 29 | body>*:first-child { 30 | margin-top: 0 !important; 31 | } 32 | 33 | body>*:last-child { 34 | margin-bottom: 0 !important; 35 | } 36 | 37 | /* BLOCKS 38 | =============================================================================*/ 39 | 40 | p, blockquote, ul, ol, dl, table, pre { 41 | margin: 15px 0; 42 | } 43 | 44 | /* HEADERS 45 | =============================================================================*/ 46 | 47 | h1, h2, h3, h4, h5, h6 { 48 | margin: 20px 0 10px; 49 | padding: 0; 50 | font-weight: bold; 51 | -webkit-font-smoothing: antialiased; 52 | } 53 | 54 | h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code { 55 | font-size: inherit; 56 | } 57 | 58 | h1 { 59 | font-size: 24px; 60 | border-bottom: 1px solid #ccc; 61 | color: #000; 62 | } 63 | 64 | h2 { 65 | font-size: 18px; 66 | color: #000; 67 | } 68 | 69 | h3 { 70 | font-size: 14px; 71 | } 72 | 73 | h4 { 74 | font-size: 14px; 75 | } 76 | 77 | h5 { 78 | font-size: 14px; 79 | } 80 | 81 | h6 { 82 | color: #777; 83 | font-size: 14px; 84 | } 85 | 86 | body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child { 87 | margin-top: 0; 88 | padding-top: 0; 89 | } 90 | 91 | a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 { 92 | margin-top: 0; 93 | padding-top: 0; 94 | } 95 | 96 | h1+p, h2+p, h3+p, h4+p, h5+p, h6+p { 97 | margin-top: 10px; 98 | } 99 | 100 | /* LINKS 101 | =============================================================================*/ 102 | 103 | a { 104 | color: #4183C4; 105 | text-decoration: none; 106 | } 107 | 108 | a:hover { 109 | text-decoration: underline; 110 | } 111 | 112 | /* LISTS 113 | =============================================================================*/ 114 | 115 | ul, ol { 116 | padding-left: 30px; 117 | } 118 | 119 | ul li > :first-child, 120 | ol li > :first-child, 121 | ul li ul:first-of-type, 122 | ol li ol:first-of-type, 123 | ul li ol:first-of-type, 124 | ol li ul:first-of-type { 125 | margin-top: 0px; 126 | } 127 | 128 | ul ul, ul ol, ol ol, ol ul { 129 | margin-bottom: 0; 130 | } 131 | 132 | dl { 133 | padding: 0; 134 | } 135 | 136 | dl dt { 137 | font-size: 14px; 138 | font-weight: bold; 139 | font-style: italic; 140 | padding: 0; 141 | margin: 15px 0 5px; 142 | } 143 | 144 | dl dt:first-child { 145 | padding: 0; 146 | } 147 | 148 | dl dt>:first-child { 149 | margin-top: 0px; 150 | } 151 | 152 | dl dt>:last-child { 153 | margin-bottom: 0px; 154 | } 155 | 156 | dl dd { 157 | margin: 0 0 15px; 158 | padding: 0 15px; 159 | } 160 | 161 | dl dd>:first-child { 162 | margin-top: 0px; 163 | } 164 | 165 | dl dd>:last-child { 166 | margin-bottom: 0px; 167 | } 168 | 169 | /* CODE 170 | =============================================================================*/ 171 | 172 | pre, code, tt { 173 | font-size: 12px; 174 | font-family: Consolas, "Liberation Mono", Courier, monospace; 175 | } 176 | 177 | code, tt { 178 | margin: 0 0px; 179 | padding: 0px 0px; 180 | white-space: nowrap; 181 | border: 1px solid #eaeaea; 182 | background-color: #f8f8f8; 183 | border-radius: 3px; 184 | } 185 | 186 | pre>code { 187 | margin: 0; 188 | padding: 0; 189 | white-space: pre; 190 | border: none; 191 | background: transparent; 192 | } 193 | 194 | pre { 195 | background-color: #f8f8f8; 196 | border: 1px solid #ccc; 197 | font-size: 13px; 198 | line-height: 19px; 199 | overflow: auto; 200 | padding: 6px 10px; 201 | border-radius: 3px; 202 | } 203 | 204 | pre code, pre tt { 205 | background-color: transparent; 206 | border: none; 207 | } 208 | 209 | kbd { 210 | -moz-border-bottom-colors: none; 211 | -moz-border-left-colors: none; 212 | -moz-border-right-colors: none; 213 | -moz-border-top-colors: none; 214 | background-color: #DDDDDD; 215 | background-image: linear-gradient(#F1F1F1, #DDDDDD); 216 | background-repeat: repeat-x; 217 | border-color: #DDDDDD #CCCCCC #CCCCCC #DDDDDD; 218 | border-image: none; 219 | border-radius: 2px 2px 2px 2px; 220 | border-style: solid; 221 | border-width: 1px; 222 | font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; 223 | line-height: 10px; 224 | padding: 1px 4px; 225 | } 226 | 227 | /* QUOTES 228 | =============================================================================*/ 229 | 230 | blockquote { 231 | border-left: 4px solid #DDD; 232 | padding: 0 15px; 233 | color: #777; 234 | } 235 | 236 | blockquote>:first-child { 237 | margin-top: 0px; 238 | } 239 | 240 | blockquote>:last-child { 241 | margin-bottom: 0px; 242 | } 243 | 244 | /* HORIZONTAL RULES 245 | =============================================================================*/ 246 | 247 | hr { 248 | clear: both; 249 | margin: 15px 0; 250 | height: 0px; 251 | overflow: hidden; 252 | border: none; 253 | background: transparent; 254 | border-bottom: 4px solid #ddd; 255 | padding: 0; 256 | } 257 | 258 | /* TABLES 259 | =============================================================================*/ 260 | 261 | table th { 262 | font-weight: bold; 263 | } 264 | 265 | table th, table td { 266 | border: 1px solid #ccc; 267 | padding: 6px 13px; 268 | } 269 | 270 | table tr { 271 | border-top: 1px solid #ccc; 272 | background-color: #fff; 273 | } 274 | 275 | table tr:nth-child(2n) { 276 | background-color: #f8f8f8; 277 | } 278 | 279 | /* IMAGES 280 | =============================================================================*/ 281 | 282 | img { 283 | max-width: 100% 284 | } --------------------------------------------------------------------------------