前端学Markdown
前面的话
我个人理解,Markdown就是一个富文本编辑器语言,类似于sass对于css的功能,Markdown也可以叫做HTML预处理器,只不过它是一门轻量级的标记语言,可以更简单的实现HTML文档。本文将详细介绍Markdown的内容
概述
Markdown的目标是实现易读易写,一份使用Markdown格式撰写的文件应该可以直接以纯文本发布
Markdown的语法全由一些符号所组成,它的语法种类很少,只对应HTML标记的一小部分。由于Markdown实际上就是简化版的HTML,所以直接写HTML也是可以的
段落
不加任何符号的一段字符,就是一个段落。多个段落之间用空行分隔
[注意]在markdown中,多个空行会合并为一个空行显示
p1
p2
p3
输出HTML为
<p>p1</p>
<p>p2</p>
<p>p3</p>
换行
如果段落之间没有空行,则解析为HTML标签<br>
p1
p2
p3
输出HTML为
<p>p1<br>
p2<br>
p3</p>
标题
#、##、###、####、#####、######分别对应<h1>、<h2>、<h3>、<h4>、<h5>、<h6>。其实我个人感觉,不如直接使用<h>标签方便,特别是到标题3以后
#h1
##h2
###h3
####h4
#####h5
######h6
输出HTML为
<h1>h1</h1>
<h2>h2</h2>
<h3>h3</h3>
<h4>h4</h4>
<h5>h5</h5>
<h6>h6</h6>
区块
说起区块,可能听说的人比较少。它用'>'这个符号来表示,对应于HTML中的<blockquote>标签,用于引用块元素。《Head first HTML And CSS》一书中,还专门针对<blockquote>和<q>进行了详细的区分,但实际用的比较少
但是,markdown对应区块引用的实现上,并不能完整表达<blockquote>标签的语义,应该可以引用多个段落,但实际上markdown的'>'符号只能引用一个段落
>p1
p2
输出HTML为
<blockquote>
<p>p1</p>
</blockquote>
<p>p2</p>
列表
【无序列表】
无序列表使用星号、加号和减号来做为列表的项目标记
* red
* blue
* green
+ red
+ blue
+ green
- red
- blue
- green
输出HTML为
<ul>
<li>red</li>
<li>blue</li>
<li>green</li>
</ul>
【有序列表】
有序的列表则是使用一般的数字接着一个英文句点作为项目标记
1. Red
2. Green
3. Blue
输出HTML为
<ol>
<li>red</li>
<li>blue</li>
<li>green</li>
</ol>
[注意]如果在项目之间插入空行,那项目的内容会用<p>包起来
分隔线
可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线
* * *
***
*****
- - -
---------------------------------------
输出HTML为
<hr>
<hr>
<hr>
<hr>
<hr>
链接
Markdown支持三种形式的链接语法:行内、参考和自动。行内和参考链接都使用角括号把文字转成链接
[注意]由于Markdown默认产生的链接是当前页打开,且无法实现_blank,所以,就个人而言还是直接使用<a>更方便
【行内链接】
行内形式是直接在后面用括号直接接上链接
This is an [example link](http://cnblogs.com/)
输出HTML为
<p>This is an<a href="http://cnblogs.com/">example link</a></p>
【参考链接】
参考形式的链接可以为链接定一个名称,之后可以在文件的其他地方定义该链接的内容。title属性是选择性的,链接名称可以用字母、数字和空格,但是不分大小写
I get 10 times more traffic from [Google][1] than from [Yahoo][2] or [MSN][3].
[1]: http://google.com/ "Google"
[2]: http://search.yahoo.com/ "Yahoo Search"
[3]: http://search.msn.com/ "MSN Search"
输出HTML为
<p>I get 10 times more traffic from <a href="http://google.com/"
title="Google">Google</a> than from <a href="http://search.yahoo.com/"
title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
title="MSN Search">MSN</a>.</p>
【直接链接】
Markdown支持比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用方括号包起来,Markdown就会自动把它转成链接,链接的文字就和链接位置一样
[注意]在网址前一定要加http://,否则将不会被识别为URL
<http://cnblogs.com/>
输出HTML为
<a href="http://cnblogs.com/">http://cnblogs.com/</a>
图片
图片的语法和链接很像。先是一个惊叹号!,接着一个方括号,里面放上图片的替代文字,接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上选择性的'title'文字
【行内形式】

【参考形式】
![alt text][id]
[id]: /path/to/img.jpg "Title"
上面两种方法都会输出HTML为:
<img src="/path/to/img.jpg" alt="alt text" title="Title" />
代码
【code】
使用反引号`来标记代码区段<code>,区段内的&、<和>都会被自动的转换成HTML实体
`<p>`段落`</p>`
输出HTML为
<code><p></code>段落<code></p></code>
【pre】
如果要建立一个已经格式化好的代码区块,只要每行都缩进 4 个空格或是一个 tab 就可以了,而 &、< 和 > 也一样会自动转成 HTML 实体
<blockquote>
<p>For example.</p>
</blockquote>
现在更简单的方法是在代码的起始行和结束行都使用三个反引号作为标记
输出HTML为
<pre><code><blockquote><p>For example.</p></blockquote></code></pre>
强调
Markdown 使用星号*和底线_作为标记强调字词的符号,被*或_ 包围的字词会被转成用 <em>标签包围,用两个* 或_包起来的话,则会被转成<strong>
如果* 和 _ 两边都有空白的话,它们就只会被当成普通的符号。如果要在文字前后直接插入普通的星号或底线,可以用反斜线:
*em* **strong**
输出HTML为
<em>em</em><strong>strong</strong>
转义
在markdown中,有一些符号具有特殊的用途,如\、*等,如果要使用它们的本意,则需要在前面加一个反斜杠\来实现
Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号
表格
绘制表格,需要使用竖线和横线的方式,竖线之间的内容为表格的单元格的内容,第一行为表头,第二行控制对齐方式,第三行及以后为表格主体
|左对齐(默认) | 右对齐 | 居中对齐 |
| :--- | ----: | :----: |
| 计算机 | $1600 | 5 |
| 手机 | $12 | 12 |
| 管线 | $1 | 234 |
输出HTML为
<table>
<thead>
<tr>
<th style="text-align:left">左对齐(默认)</th>
<th style="text-align:right">右对齐</th>
<th style="text-align:center">居中对齐</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">计算机</td>
<td style="text-align:right">$1600</td>
<td style="text-align:center">5</td>
</tr>
<tr>
<td style="text-align:left">手机</td>
<td style="text-align:right">$12</td>
<td style="text-align:center">12</td>
</tr>
<tr>
<td style="text-align:left">管线</td>
<td style="text-align:right">$1</td>
<td style="text-align:center">234</td>
</tr>
</tbody>
</table>
空两格
使用markdown排版时,很常用的需求是实现首行缩进,一般使用两个全角空格&emsp$emsp来实现
注意
在博客园中使用markdown写博客时,由于没有即时显示的功能,经常因为多敲了几个空格,而被解析为<br>的情况
前端学Markdown的更多相关文章
- 前端解析Markdown
目录 前端解析Markdown 1.使用strapdown 1.1.下载 1.2.使用 2.使用marked(配合highlightjs) 2.1.下载 2.2.使用 3.使用mdjs(配合highl ...
- 前端学做 PPT
前端学做 PPT 公司做技术分享.年终总结都需要用到ppt. 要快速.省事的做出高质量的 ppt,一方面需要熟练使用制作 ppt 的工具,另一方面得知道用工具做成什么样子才是好作品.前者比较简单,后者 ...
- 前端学HTTP之网络基础
× 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...
- 前端学HTTP之数据传输
× 目录 [1]客户机处理 [2]集线器处理 [3]路由器1处理[4]路由器2处理[5]交换机处理[6]服务器处理[7]反向传输 前面的话 上一篇中,介绍了网络基础.本文将详细介绍客户机在浏览网页ab ...
- 前端学PHP之自定义模板引擎
前面的话 在大多数的项目组中,开发一个Web程序都会出现这样的流程:计划文档提交之后,前端工程师制作了网站的外观模型,然后把它交给后端工程师,它们使用后端代码实现程序逻辑,同时使用外观模型做成基本架构 ...
- 前端学PHP之Smarty模板引擎
前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进. ...
- 前端实用软件: Markdown工具之---Typora实用技巧(总结)
Typora是一款超简洁的markdown编辑器,具有如下特点: 完全免费,目前已支持中文 跨平台,支持windows,mac,linux 支持数学公式输入,图片插入 极其简洁,无多余功能 界面所见即 ...
- 前端学HTTP之web攻击技术
前面的话 简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象.应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标.本文将详细介绍攻击web站点 ...
- 前端学HTTP之报文首部
前面的话 首部和方法配合工作,共同决定了客户端和服务器能做什么事情.在请求和响应报文中都可以用首部来提供信息,有些首部是某种报文专用的,有些首部则更通用一些.本文将详细介绍HTTP报文中的首部 结构 ...
随机推荐
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- UITextView 输入字数限制
本文介绍了UITextView对中英文还有iOS自带表情输入的字数限制,由于中文输入会有联想导致字数限制不准确所以苦恼好久,所以参考一些大神的博客终于搞定,欢迎大家参考和指正. 对于限制UITextV ...
- UWP开发必备:常用数据列表控件汇总比较
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...
- 使用EF CodeFirst 创建数据库
EntityFramework 在VS2015添加新建项时,选择数据->ADO.NET 实体数据模型,有一下选项 来自数据库的EF设计器,这个就是我们最常用的EntityFramework设计模 ...
- bzoj3207--Hash+主席树
题目大意: 给定一个n个数的序列和m个询问(n,m<=100000)和k,每个询问包含k+2个数字:l,r,b[1],b[2]...b[k],要求输出b[1]~b[k]在[l,r]中是否出现. ...
- Maven常用命令
开发中常用的命令: 1. mvn compile 编译源代码2. mvn test-compile 编译测试代码3. mvn test 运行测试4. mvn package 打包,根据pom.xml打 ...
- Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
前言: 如果你已经厌倦了使用PPT设置路径.设置时间.设置动画方式来制作动画特效.那么Impress.js将是你一个非常好的选择. 用它制作的PPT将更加直观.效果也是嗷嗷美观的. 当然,如果用它来装 ...
- [AlwaysOn Availability Groups] 健康模型 Part 2 ——扩展
健康模型扩展 第一部分已经介绍了AlwayOn健康模型的概述.现在是创建一个自己的PBM策略,然后设置为制定的归类.创建这些策略,创建之后修改一下配置,dashboard就会自动评估这些策略. 场景, ...
- 【教程】SQLite数据库修复
SQLite 大家都知道,就不多说了. 有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题. 这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来. ...
- CentOS:设置系统级代理(转)
原文地址:http://www.cnblogs.com/cocowool/archive/2012/07/05/2578487.html YUM代理设置 编辑/etc/yum.conf,在最后加入 # ...