我和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 语法还不够,知道这些 排版技巧 增色您的文章内容. 空格和空行 留白,从艺术角度上说,留白就是以"空白"为载体进而渲染出美的意境的艺术.从应用 ...
随机推荐
- C语言打印最长字符串
编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词. ]; printf("请输入字符串:"); fgets(p, , stdin); ; ; ; ...
- js性能优化
使用局部变量(尽量缩短作用域链)JavaScript引擎对变量的解析时间跟作用域链的深度有关.局部变量由于处于链尾,存取速度是最快的,因此,一个好的经验是:任何非局部变量使用超过一次时,请使用局部变量 ...
- Django提交POST表单“CSRF verification failed. Request aborted”问题的解决
1.环境 python 3.4 Django 1.7 Visual Studio 2015 PTVS 2.问题 提交表单,出现以下错误: CSRF verification failed. Reque ...
- Win7 64位qt-windows-x86-msvc2015-5.6.0 DLL依赖库打包
今天开始系统的学习QT,第一个测试的问题就是在纯净的系统中如何正常运行,也就是找出QT生成的exe的依赖库问题 网上搜了下可以简单粗暴的用 D:\Qt\Qt5.6.0\5.6\msvc2015\bin ...
- C++ 文章列表
C++ 文章列表 Cocos2dx(1) iconv 跨平台的使用方法(Android, IOS) --- 转码(中文乱码)http://www.cnblogs.com/TS-qrt/articles ...
- 转 :meta name的含义:<META http-equiv=Content-Type content="text/html; charset=gb2312">
meta是什么?meta其实是html语言head区的一个辅助性标签.在几乎所有的网页里,我们都可以看到类似下面这段html代码:<META http-equiv=Content-Type co ...
- jquery设置元素的readonly和disabled
jquery设置元素的readonly和disabled Jquery的api中提供了对元素应用disabled和readonly属性的方法,在这里记录下.如下: $( '#line2Tr' ).cs ...
- 深度解析Java8 – AbstractQueuedSynchronizer的实现分析(下)
本文首发在infoQ 作者:刘锟洋 前言 经过本系列的上半部分JDK1.8 AbstractQueuedSynchronizer的实现分析(上)的解读,相信很多读者已经对AbstractQueu ...
- 03、AngularJs的模块与控制器
大部分的应用程序都有一个主方法(main)来组织,实例化,启动应用程序.而AngularJs应用是没有主方法的,它是通过模块来声明应用应该如何启动的.同时,模块允许声明来描述应用中依赖关系,以及如何进 ...
- 7.4 MVC vs MVP
MVC(Model_view_contraller)"模型_视图_控制器". MVC应用程序总是由这三个部分组成.Event(事件)导致Controller改变Model或View ...