我和Markdown故事
我遇见了Markdown
在很久很久以前,听说过几次叫做markdown的东西,但是一直没有去尝试。第一个接触到markdown实在Stack Overflow的留言版上,当时还不知道这个叫Markdown,当时只是觉着这个语法肿么这么奇葩。最近有机会试了一下发现爱不释手,越看越喜欢。
什么?还不知道Markdown是什么?Markdown是一种轻量级的标记语言1。不要一说语言就被吓到,这玩样真的很简单,只要十分钟就能够看完所有语法,而且并不难记住。可以看一下上一篇文章,就是markdown,而且没有翻译成HTML的。
看看官方对于Markdown的定义:
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
定位很明确,就是一种既易读又易写而且能够转化成有效的HTML的一种语言。也就是说它既不是最容易写的,使用Word等图形化编辑器会更加容易写。它也不一定是易读的,因为如果不转化成HTML的话会有一些特殊语法在里面。
我喜欢的地方
下面我就说说我为啥喜欢这个玩样,我主要是基于下面的几个原因:
首先,这东西把文字和样式分离开来了。这样就能够保证你提供的样式是一致的,因为你是通过一个统一的样式表进行控制的。其实这没有什么新鲜的,在网页开发大多都是把页面和样式分离开来的。但是其实你看看很多网页中还是将格式和文字夹杂在一起,你一看网页的HTML源码有种想打人的冲动。
举个例子
例1:
PDB全称Program Database,不知道中文翻译叫什么。相信使用过VS的人对于这个拓展名的文件不会陌生,这个文件主要会存储对应模块(dll或者exe)内部的所有符号,以及符号对应的地址、文件名和行号。
例2:
PDB全称Program Database,不知道中文翻译叫什么。相信使用过VS的人对于这个拓展名的文件不会陌生,这个文件主要会存储对应模块(dll或者exe)内部的所有符号,以及符号对应的地址、文件名和行号。
例1和例2看上去区别不大,但是你一看源码就会发现第一个中span标签夹杂着很多样式。其实如果你是从Word上直接粘贴到博客园的编辑器中的话很多时候就会出现这种东西。这样会导致的结果就是格式可能会有一些细小的地方不一致。
- 第二点,干净的HTML。其实这点和第一点基本一样,我还是喜欢干净整洁的HTML,无法控制别人至少我可以让我写的文章都是干净的。
- 第三点,可以手不离开键盘的一直打字,而不用去用鼠标调整一些样式。
- 喜欢纯文本可以版本控制。
我要吐槽的地方
下面是我使用过程中不爽的地方:
- 很难找到一个完美的编辑器,有很多在线的markdown编辑器,各有各的特色。要找到一个最适合自己的往往要多试几次,而且大多国外的网站默认中文样式惨不忍睹。
- 语法简单带来的坏处就是很多时候有一些效果无法实现,这个时候就需要直接内嵌html标签来实现,这个对于不熟悉html的人及其友好。所以如果需要特殊排版基本困难,除非自己写css。
- 坑爹的预览功能。由于刚开始用,所以难免要看看自己写出来的东西是如何的效果,那100%的markdown编辑器提供左右两个区域,左边markdown,右边预览区,我要看效果就要眼珠左右来回移动,好累。。
- 这一点是我最无奈的,由于各个编辑器都是各自程序员开发的,那么难免会在一些细节上出现一些不一致的地方。所以你完全无法保证你写的markdown在别人的编辑器中也能出现完全一样的效果,当然是在你用了一些很复杂的嵌套的情况下。
- 虽然吐槽了很多,但是用来写博客还是很不错的
适用人群和使用场景
我觉得这个东西使用的人群范围是:程序员,有洁癖的程序员。其他人?还是算了吧。
我会在下面这些场景中考虑使用这个来撰写文章:
- 博客
- 个人笔记(evernote)
- 技术文档
- 需要用HTML发布的文章
Markdown使用简介
如何入门?
Markdown编辑器们
Wikipedia上提供了一些在线编辑器,可以自己试试找个喜欢的。
个人使用MarkdownPad2,然后自己定制CSS,不过免费版阉割了很多功能,但是对我来说够用了。
如何在博客园中使用Markdown
大家可以去看看这篇文章:博客园也可以使用markdown写博客了。但是我更倾向于将生成的HTML直接拷贝进源代码。
引用:
[1] Markdown - 维基百科
我和Markdown故事的更多相关文章
- Markdown学习
1. Markdown介绍 Markdown是一种轻量级的标记语言,它语法简单并且易读易用.Mardown文件通常以.md后缀结尾. 2. Markdown优点 纯文本格式,兼容性极强,可以用任意文本 ...
- 简洁美观的Java博客系统Tale开源了,让每一个有故事的人更好的表达想法
Tale Tale的英文含义为故事,我相信每个坚持写Blog的人都是有故事的:中文你叫它 塌了 也无所谓 . Tale 使用了轻量级mvc框架 Blade 开发,默认主题使用了漂亮的 pinghsu, ...
- Markdown速查手册
之前一直使用简书做笔记,沉浸式的写作环境很棒.然而不知什么时候起,氛围愈发浮躁,软文鸡汤泛滥,离"简"字越来越远. 相比更加喜欢沉稳低调.内涵取胜的博客园.于是乎搬家! 搬家就要丢 ...
- Byword for Mac(Markdown编辑器)中文版
还在找Markdown编辑器吗?那不妨试试Byword for Mac吧!这是一款轻量级的富文本编辑器,byword mac版提供了完整的Markdown支持,包含脚注.表格.交叉引用等功能,Bywo ...
- C++小结:迟到的小结和重新起航的故事
迟到的小结和重新起航的故事 有关这个学期的故事,随着这个学期的结束也划上了一个句号. 正如之前博客里面(还是空间里面)提到的,在这个过程中的收获比最后考试的结果更重要. 就像这次的计算器,也许会对最后 ...
- Markdown 标记语言指北 - 源码
这是上一篇博客的源代码. 这是班刊约稿的一篇文章. 全文约6000字, 预计需要 60 分钟读完. # Markdown 标记语言指北 #### TOC 1. [什么是 Markdown?](#%E4 ...
- Markdown 标记语言指北
这是班刊约稿的一篇文章. 全文约6000字, 预计需要 60 分钟读完. Markdown 标记语言指北 TOC 什么是 Markdown? Markdown 可以用来干什么? 第一步? 一些专业一点 ...
- markdown设置编辑基本语法
看到其他人写的东西,版面设计,文字样式,区域划分都是那么好看,我一直不知道是怎么设计的,今天发现了,做以记录. #一.设置Markdown编辑模式 二.Markdown编辑语法 一.标题 在想要设置为 ...
- Markdown tricks
编辑排版 仅仅了解 Markdown 语法还不够,知道这些 排版技巧 增色您的文章内容. 空格和空行 留白,从艺术角度上说,留白就是以"空白"为载体进而渲染出美的意境的艺术.从应用 ...
随机推荐
- .Net Framework运行机制
首先谈谈.net framework的组成 主要是有两大部分组成:CLR(公共语言运行库)和FCL(Framework类库) CLR的主要功能:和Java虚拟机一样也是一个运行时环境,是一个可由多种编 ...
- oracle flashback功能
2). 检查Flashback 功能, 缺省时功能是关闭的. SQL> select name, current_scn, flashback_on from v$database; NAME ...
- 【分块打表】bzoj3758 数数
验证一个数是不是优美的:设数位之和为sum,若sum mod 2 != 0,则不优美.否则考虑枚举这个数的每一位,将之前所有位任意相加产生的所有 数字和 和 当前位 的和塞到集合里,最终判断集合中是否 ...
- VS2010 网页错误
VS2010向导添加消息处理时,弹出以上错误,原因之一为: 类内没有定义IDD的宏
- Extjs4.2或以上 使用自定义事件时报错问题
最近使用了extjs 自定义事件模型,代码如下: function Person(name) { this.name = name; this.addEvents('walk'); } Ext.ext ...
- Inno setup中定制安装路径
我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法. 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function ...
- C#is运算符的作用
is运算符的含义:检查对象是不是给定类型,或者是否可以转换为给定类型,如果是,这个运算符就返回True. is运算符的语法:<operand> is <type> 这个表达式的 ...
- 关于PDV的那些事
数据集中的数据来源分为两种: 一.来自于另一个数据集: 二.来自于外部数据源(本文细说此来源): 无论是哪种来源,在它们成为目标数据集中的观测行(官方叫它observation)之前都要进入PDV,先 ...
- BZOJ2888 资源运输(LCT启发式合并)
这道题目太神啦! 我们考虑他的每一次合并操作,为了维护两棵树合并后树的重心,我们只好一个一个的把节点加进去.那么这样一来看上去似乎就是一次操作O(nlogn),但是我们拥有数据结构的合并利器--启发式 ...
- angular文件引入带来的绑定问题
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script ...