看完了块级元素,再来看看内联元素。写本文的时候,除了上一篇文章中提到的参考网站,还参考了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)
实际效果是:
引用图片的使用和引用链接非常相似,由于一般图片不太会复用,所以用到的场景比较少。
和链接的问题类似,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 |
区分表头和表体的那一行中,每个单元格里的减号的数量至少要为一个。有内容的单元格中的空白都会在转换的时候被去除。
这个表格渲染为如下:
title | name |
---|---|
1 | 2 |
还可以控制表格的对其方式,在第二行中使用冒号和减号的搭配来标识所在列的对其方式,单独冒号在左边就是左对齐,右对齐则相反,减号两侧各有一个冒号表示居中对齐:
| align-left| align-center |align-right|
| :---- | :--: | --:|
| 左对齐|居中 |右对齐|
align-left | align-center | align-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要素都掌握了,以后可以更加痛快的写博客啦!