Markdown实用语法参考

本文给出了Markdown实用的稍复杂语法,包括多级有序列表、代码插入方法、链接插入方法、图片大小、图片居中、文字颜色等,至于标题、加粗等基本语法本文不作介绍。


对Markdown设计思想的理解

写过HTML的童鞋都知道HTML标签丰富,能制作具有复杂格式的页面,但是纯手打HTML是很困难的,且HTML源文件可读性非常差。不信就在浏览器中打开一个网页然后右键->查看网页源代码,要找到正文内容基本得靠搜索功能(Ctrl + F)。

而Markdown的设计思想是在保证源文件易读性的基础上照顾易写性,即从Markdown源文件(代码)可以很方便地读正文内容,且可以容易地手工写Markdown源文件(代码)。这种目标决定了不能在Markdown中引入复杂的格式化标签,所以表现力上差一点,例如有序多级列表和文字颜色就不能通过Markdown直接控制。这也算是一种折中吧,毕竟有得必有失!

多级有序列表

Markdown支持多级无序列表,但不支持多级有序列表,所以只能通过曲线方式实现多级有序列表。

  • 1. Title
    • 1.1 Subtitle
    • 1.2 Subtitle
      • 1.2.1 Subsubtitle
      • 1.2.2 Subsubtitle
    • 1.3 Sbutitle
  • 2. Title
    • 1.1 Subtitle
    • 1.2 Subtitle
      • 1.2.1 Subsubtitle
      • 1.2.2 Subsubtitle
    • 1.3 Sbutitle

上述多级标题的Markdown源文件为:

* 1\. Title 
    + 1.1 Subtitle
    + 1.2 Subtitle 
        - 1.2.1 Subsubtitle
        - 1.2.2 Subsubtitle
    + 1.3 Sbutitle
* 2\. Title
    + 1.1 Subtitle
    + 1.2 Subtitle 
        - 1.2.1 Subsubtitle
        - 1.2.2 Subsubtitle
    + 1.3 Sbutitle

注意无序列表嵌套中下一级列表比上一级缩进4个空格或一个Tab。

阻止自动有序列表

如果文中需要手动输入“1. text; [回车换行] 2. text; [回车换行] 3. text”这样的内容,需要在”.”前面加反斜杠”\”,例如1\. text

链接

(1) “点击我的博客”的第一种形式:

点击[我的博客](http://blog.csdn.net/write_down)

(2) “点击我的博客”的第二种形式:

点击[我的博客][1]
[1]: http://blog.csdn.net/write_down

插入图片及控制图片大小、居中

(1) 插入图片

图片插入与链接类似,但有两点区别:

  • 第一个方括号前加叹号”!”
  • 圆括号中的链接改为图片链接地址

(2) 控制图片大小和居中

放弃(1)插入方法,回到HTML语言吧。下图宽设置为400 pixels,高度设置为200 pixels,居中。



其实现是直接在Markdown源文件中插入如下HTML代码:

<center>
<img src="https://img-blog.csdn.net/20161015191651385" width=400 height=200 />
</center>

为了实现这个目的违背了Markdown的设计思想,真是有舍有得啊!

(3)相对路径插入图片
在本地用Markdown写文档时可能需要插入本地图片,所以需要相对路径插入图片。例如当前md文件的第一章图片graph1.jpg在同级pic目录下,则插入此图片的方法是:![](pic/graph1.jpg)。注意目录名和文件名不要有空格。

文字颜色及居中

只能回到HTML的标记,例如


这是一段居中的红色文字

直接在Markdown源文件中插入如下HTML代码

<center>
<font color = "red" align = "center">这是一段居中的红色文字</font>
</center>

为了实现这个目的也违背了Markdown的设计思想,有舍有得啊!

代码

(1) 使用“`区块

class SchoolMember:
    """Represents any school member"""
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print('(Initialized SchoolMember: %s)' %self.name)

    def tell(self):
        """Tell my details."""
        print('Nme: "%s" Age: "%s"' %(self.name, self.age))

上述Python代码的markdown源文件:

```python
class SchoolMember:
    """Represents any school member"""
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print('(Initialized SchoolMember: %s)' %self.name)

    def tell(self):
        """Tell my details."""
        print('Nme: "%s" Age: "%s"' %(self.name, self.age))
```

注意在第一个“`后面加上语言名称,markdown支持的语言有:actionscript, apache, bash, clojure, cmake, coffeescript, cpp, cs, css, d, delphi, django, erlang, go, haskell, html, http, ini, java, javascript, json, lisp, lua, markdown, matlab, nginx, objectivec, perl, php, python, r, ruby, scala, smalltalk, sql, tex, vbscript, xml。

(2) 空格/Tab

若每行行文字前有4个空格或Tab,Markdown将其解析为代码,但可能造成语言类型无法识别。

(3) 行内代码

这是一个行内代码def __init__(self, name, age):, 其Markdown源文件为:

这是一个行内代码`def __init__(self, name, age):`

分隔符

(1) ##插入横线##
实现华丽丽的分割线的方法就是在新的一行输入---

(2) ##插空格或TAB##
空格:&emsp;
TAB:&nbsp;


参考文献:

猜你喜欢

转载自blog.csdn.net/write_down/article/details/52987430