Markdown格式总结 - 内联元素与扩展语法

Markdown格式总结 - 内联元素与扩展语法

看完了块级元素,再来看看内联元素以及扩展语法吧

看完了块级元素,再来看看内联元素。写本文的时候,除了上一篇文章中提到的参考网站,还参考了markdownguide.org这个站的资料。


1 内联元素

内联元素以链接为典型代表,还有图片等格式。

1.1 链接

链接大概是进入互联网时代,每个页面上必不可少的东西,除了跳转之外,也是很多事件的锚定元素。Markdown的链接分为两种:内联链接和引用链接。

1.1.1 内联链接

所谓内联链接,就是被直接解释成一个a标签的链接。基本的格式如下:

This is [an example](http://example.com/ "Title") inline link.

即先用一对中括号括起来链接显示的内容,然后是一对圆括号,其中的第一个“参数”是链接地址,第二个参数是鼠标指向链接时候显示的提示信息,如这个链接: 柚子小站。鼠标放在其上停留一会就可以看到提示信息。

内联元素中的链接也可以是相对路径,比如文章分类

This is [文章分类](/categories/ "分类") inline link.

内联链接如果需要细节的控制,也可以使用a标签来代替,比如在新页面中打开链接,这个在上一篇文章里已经试验过了。

1.1.2 引用链接

如果文中反复有相同的链接指向同一个地方,那么可以考虑像复用代码一样,先给链接下一个定义,然后在需要使用链接的地方,插入一个引用指向那个链接即可,这就是引用链接。所以要使用引用链接,需要先定义一个链接,然后再使用。

定义链接最基础的方式如下:

[mainpage]: http://conyli.cc/  "柚子小站"

中括号内的是id,用来标识这个连接,之后紧接着是一个英文冒号,然后是至少一个空白或者制表符,之后是超链接地址,再之后又是空白,然后是提示信息。

URL可以使用一对尖括号包围,也可以不使用;提示信息可以使用双引号、单引号、圆括号包围,但不能不使用上述符号包围。

使用的时候,只需要先用一个中括号括住链接要展示的内容,再其后再用一个中括号,里边放入已经定义好的链接的id,即可显示为对应的链接:

[柚子小站首页][mainpage]

经过实验,引用链接在Typora这种本地编辑器中生效,但Halo编辑器不支持该方式,实际上引用链接可以有效的减少原始文字量,而且更方便维护。

1.2 粗体与斜体

粗体与斜体是常用功能。粗体用连续的两个星号或者下划线包围要加粗的内容,而斜体用单独的一个星号或者下划线包围要斜体的内容即可。如果符号两边都有空格,就会被视为字面量,如: **********

经过测试:Typora两个符号都支持,而Halo编辑器仅支持星号,不过也足够使用了。如果要显示星号字面量,需要使用反斜杠进行转义。

如果要同时使用粗体和斜体,可以***使用三个星号或者下划线***来包裹内容,就像你在这段里看到的一样,推荐使用三个星号。

1.3 代码片段

代码片段与之前提到的代码段不同。代码段渲染成pre->code标签,pre标签是块级元素,代码片段则渲染成code元素,用于行内标明一段代码。

Markdown用重音符号 ` 包裹在代码片段周围,在标准键盘上是1右边的键对应的符号,在我的Poker 61键盘上,是Fn+Esc打出来的符号,这里的Fn+Esc就使用了这个符号包裹。在我的博客现在的样式里,显示代码片段是用的等宽字体,但没有特殊的使用背景来强调,所以可能不太好辨认,但是放在一起还是很容易辨认的,如:public与public。

如果代码片段中需要出现重音符号的字面形式,与很多编程语言使用双引号和单引号都可以表示字符串类似,在外层使用双重音符号,内部就可以使用单个重音符号的字面形式了,如:This `code` contains `,这句话的Markdown代码是:

``This `code` contains ` ``

在代码片段中,左右尖括号和&符号都会自动转义,因此可以包含HTML代码:

`<div>This is a &</div>`

这段代码就会把其中的对应字符转义,显示出来完全相同:<div>This is a &</div>,你可以查看网页源代码看看是否转义。

1.4 图片链接

图片本质上也是一种链接,因此Markdown也提供了内联链接和引用链接。
内联链接很类似于超链接,前边多了一个叹号:

![NASA](https://www.nasa.gov/sites/all/themes/custom/nasatwo/images/nasa-logo.svg)

实际效果是:
NASA

引用图片的使用和引用链接非常相似,由于一般图片不太会复用,所以用到的场景比较少。

和链接的问题类似,Markdown的图片也不能精细的对标签属性进行控制,如果需要详细调节样式,可以直接使用img标签来代替Markdown的图片链接。

1.5 删除线

删除线就是用两个波浪线包围要删除的内容,如:我是要被删除的内容


2 其他内容

这里记录一些Markdown的其他内容,会慢慢补充。

2.1 尖括号直接括住链接

除了标准的链接方式,还可以直接使用尖括号括住链接,也能够生成链接,比如:https://conyli.cc

2.2 反斜杠转义

这个在之前已经提过,凡是作为Markdown的语法标记的字符,都可以在前边加上反斜杠来进行转义,可以转义的字符有:

\   backslash
`   backtick
*   asterisk
_   underscore
{}  curly braces
[]  square brackets
()  parentheses
#   hash mark
+   plus sign
-   minus sign (hyphen)
.   dot
!   exclamation mark

3 扩展语法

根据markdownguide.org网站上的介绍,Markdown还有一些扩展语法,未必所有的Markdown实现都支持,这里列一下留个痕迹。

3.1 表格

表格是非常具有表现力的要素,Markdown的语法也支持表格。
表格的基础语法是用竖杠来区分表格的表头,然后用同样的竖杠,中间以减号隔开表头与内容,之后是同样以相同数量竖杠区分的表体。代码如下:

| title | name |
| ---- | ---- |
|1|  2    |

区分表头和表体的那一行中,每个单元格里的减号的数量至少要为一个。有内容的单元格中的空白都会在转换的时候被去除。
这个表格渲染为如下:

titlename
12

还可以控制表格的对其方式,在第二行中使用冒号和减号的搭配来标识所在列的对其方式,单独冒号在左边就是左对齐,右对齐则相反,减号两侧各有一个冒号表示居中对齐:

| align-left| align-center |align-right|
| :---- | :--: | --:|
|     左对齐|居中    |右对齐|
align-leftalign-centeralign-right
左对齐居中右对齐

经过测试,Halo和typora博客全都支持表格,但Halo编辑器不支持对齐功能。

3.2 代码段与高亮代码段

在之前块级元素的代码段中提到过,一些Markdown编辑器支持代码高亮,这是被称为Fenced Code Blocks的Markdown扩展语法,即三个重音符号包围代码段。扩展语法同时也指出很多编辑器可以采用语法高亮的形式,Halo编辑器就可以做到,这里再放一个JSON的例子:

{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25
}

3.3 脚注

文章中有的时候经常需要脚注,比如写文章的时候要链接到所引用的文章。这种脚注使用[^id]的形式写在正文里,例如:

The first book[^1]

然后在文章末尾采用如下形式编写脚注的实际内容:

[^1]: This is content.

这样就可以渲染成指向脚注的链接,经过测试,Typora中可用,Halo不支持,毕竟是WEB页面,直接放置超链接就可以了。Typora更偏于本地排版的那种感觉。

3.4 标题ID

标题ID指的是可以在渲染之后的HTML的H系列标签中,插入id="xxx"这个属性,方便定位。在普通的#号标题之后,加上一个花括号,其中以#开始,加上标题,比如:

# 一号标题 {#header1}

这个会渲染成:

<h1 id="header1">一号标题</h1>

在生成指向这个标题的链接时,很类似引用链接:

[第一个标题](#header1)

这个功能经过实测,Halo不支持,Typora可以。

3.5 任务列表

这个语法会生成一个单选框列表,用于勾选。语法如下:

- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media

生成的单选列表如下:

  •  Write the press release
  •  Update the website
  •  Contact the media

这里Halo和Typora的行为有点区别,Halo是根据代码中有没有X直接渲染固定的选中状态,而Typora中可以进行勾选动作。所以Halo中更类似于一种展示,Typora则可以进行交互,用于自己记录。

3.6 EMOJI字符支持

Halo和Typora都支持EMOJI字符,这点很不错。可以从https://emojipedia.org/直接复制过来,用起来还是挺方便的。比如这个图标就是最近认识的一位大有前途的金融青年经常使用的:🤣。发现EMOJI表情里没有柚子,但是有猫头鹰🦉。

3.7 不自动解析HTTP链接

Halo和Typora中如果直接键入一个HTTP链接,都会被自动解析渲染成链接,如果仅仅想使用链接字面,则类似于代码片段,用重音符号包裹即可,如:https://conyli.cc


后记

Halo和Typora对比下来,Halo偏向生成网页,所以有一些脚注等功能不支持,因为在页面上可以直接使用链接。Typora更类似于本地要打算写点文章的那种老式编辑器的感觉。另外Halo页面里还支持Unicode字符,比如常用的这些音乐记号:𝅘𝅥 𝅘𝅥𝅮 𝄽。

Markdown要素都掌握了,以后可以更加痛快的写博客啦!

LICENSED UNDER CC BY-NC-SA 4.0
Comment