MarkDown中實現目錄頁面內跳轉

MarkDown中頁面內跳轉經常用于目錄跳轉,為了解決在MarkDown中實現頁面內跳轉,我特意研究了以下實現方式;

備注: 簡書中的MarkDown好像不支持頁面內跳轉;

目錄

一. 鏈接的定義
   1. 行內式鏈接
   2. 參考式鏈接
二. 標題的定義
   1. 類Setex形式的標題
   2. 類Atx形式的標題
三. 頁面內跳轉
   1. 錨點的定義
   2. 錨點目標的定義
四. 總結
五. 示例

內容


在MarkDown中是通過 鏈接標題 來實現頁面內跳轉的,所以先講下MarkDown中 鏈接標題 的語法,然后再講 MarkDown 中實現頁面內跳轉的方法;

一. 鏈接的定義

Markdown 支持兩種形式的鏈接語法: 行內式 和 參考式 兩種形式。

1. 行內式鏈接

語法:

行內式鏈接 = [內容](地址 "標題")

說明:

  • 標題 是可選的,可以用單引號 或 雙引號;

轉換成HTML后,會生成如下標簽:

<a href="地址" title="標題">內容</a>

示例:

[我的博客](http://www.lxweimin.com/u/7ecaba2d594c "郭斌勇的主頁")

渲染成HTML后,會生成如下標簽:

<a href="http://www.lxweimin.com/u/7ecaba2d594c" title="郭斌勇的主頁">我的博客</a>

效果如下:

我的博客

2. 參考式鏈接

語法:

參考式鏈接 = [內容][參考標識符]
參考標識符 = [標識符]: 地址 "標題"

說明:

  • 參考式鏈接參考標識符 的定義沒有先后順序;
  • [內容][參考標識符] 之間可以有一個空格,也可以沒有空格;
  • 如果 內容參考標識符 一樣,也可簡寫成 [參考標識符][] ;
  • 標題 是可選的,可以用單引號、雙引號或是圓括弧包著;

轉換成HTML后,會生成如下標簽:

<a href="地址" title="標題">內容</a>

示例:

[博客]: http://www.lxweimin.com/u/7ecaba2d594c "郭斌勇的主頁"
[我的博客][博客]
[博客][]

渲染成HTML后,會生成如下標簽:

<a href="http://www.lxweimin.com/u/7ecaba2d594c" title="郭斌勇的主頁">我的博客</a>
<a href="http://www.lxweimin.com/u/7ecaba2d594c" title="郭斌勇的主頁">博客</a>

效果如下:

我的博客
博客

二. 標題的定義

Markdown 支持兩種標題的語法:類Setext形式 和 類atx形式;

1. 類Setex形式的標題

類Setext形式標題的定義是用底線的形式,可以利用任何個數的符號 =(最高級標題)和 -(第2級標題)來做底線,格式為:

標題內容
====

標題內容
----

說明:

  • 底線的符號個數為大于或等于1

示例:

這是一級標題
====

這是二級標題
----

效果如下:

這是一級標題

這是二級標題


2. 類Atx形式的標題

類 Atx 形式標題的定義則是在行首插入 1 到 6 個 # ,對應到標題 1 到 6 階,格式為:

# 1級標題內容
## 2級標題內容
### 3級標題內容
#### 4級標題內容
##### 5級標題內容
###### 6級標題內容

示例:

# 這是1級標題
## 這是2級標題
### 這是3級標題
#### 這是4級標題
##### 這是5級標題
###### 這是6級標題

效果如下:

這是1級標題

這是2級標題

這是3級標題

這是4級標題

這是5級標題
這是6級標題


三. 頁面內跳轉

MarkDown中是通過定義鏈接的方式來定義跳轉的,在這里,跳轉也稱為錨點,跳轉的目標稱為錨點目標

所以,在 MarkDown 中實現頁面內跳轉的方法就是:定義一個 錨點目標 和 對應的 錨點 ,用戶點擊 錨點 便可跳轉到對應的 錨點目標 位置處;

錨點錨點目標 的定義格式如下:

1. 錨點的定義

錨點就是一個鏈接,另外,由于在MarkDown中可以直接寫HTML,所以在MarkDown中實現錨點有兩種方式:MarkDown方式 和 HTML方式;

1.1 MarkDown錨點

MarkDown錨點本質上就是一個MarkDown鏈接,只是鏈接地址的格式為:

鏈接地址 = #目標內容

所以 MarkDown錨點 的定義也有兩種方式

行內式

語法:

錨點 = [內容](#目標內容 "標題")

說明:

  • 標題 是可選的,可以用單引號 或 雙引號;

轉換成HTML后,會生成如下標簽:

<a href="#目標內容" title="標題">內容</a>

示例:

[MarkDown方式的錨點](#MarkDown錨點)

渲染成HTML后,會生成如下標簽:

<a href="#MarkDown錨點" >MarkDown方式的錨點</a>

效果如下:點擊下面的錨點

MarkDown方式的錨點

參考式

語法:

錨點 = [內容][參考標識符]
參考標識符 = [標識符]: #目標內容 "標題"

說明:

  • 錨點參考標識符 的定義沒有先后順序;
  • [內容][參考標識符] 之間可以有一個空格,也可以沒有空格;
  • 如果 內容參考標識符 一樣,也可簡寫成 [參考標識符][] ;
  • 標題 是可選的,可以用單引號、雙引號或是圓括弧包著;

轉換成HTML后,會生成如下標簽:

<a href="#目標內容" title="標題">內容</a>

示例:

[MarkDown方式的錨點]: #MarkDown錨點
[MD錨點][MarkDown方式的錨點]
[MarkDown方式的錨點][]

渲染成HTML后,會生成如下標簽:

<a href="#MarkDown錨點">MD錨點</a>
<a href="#MarkDown錨點">MarkDown方式的錨點</a>

效果如下:

MD錨點

MarkDown方式的錨點

1.2 HTML錨點

HTML錨點本質上就是一個a鏈接,格式為:

<a href="#目標內容">內容</a>

注意:

示例:

<a href="#html錨點">HTML方式的錨點</a>

效果如下:點擊下面的錨點

<a href="#html錨點">HTML方式的錨點</a>

2. 錨點目標的定義

錨點目標有2種定義方式:MarkDown形式 和 標簽形式;

MarkDown形式的錨點目標

MarkDown形式的錨點目標的定義其實就是標題的定義,即:任何級別的標題可以直接作為錨點目標;

標題內容 = 目標內容

所以,類Setext形式 和 類atx形式 的標題都可作為 錨點目標

錨點目標定義的示例:

這是一個錨點目標
====

這是一個錨點目標
---

# 這是一個錨點目標
## 這是一個錨點目標
### 這是一個錨點目標
#### 這是一個錨點目標
##### 這是一個錨點目標
###### 這是一個錨點目標

注意:

  • 錨點目標內容 中不能有大家字母和空格,所以如果錨點目標的 目標內容 中有大寫字母或空格,則需要在定義錨點中的 目標內容 時,把大寫字母改成小寫字母,把空格改成 -
  • 錨點目標內容 中不能含有以下字符:
    • 半角點(即英文中的句號).

標簽形式的錨點目標

因為MarkDown鏈接會被轉成a標簽,并且MarkDown中也可以寫標簽,所以可以利用HTML的錨點機制直接定義一個帶 id 特性的任意標簽 或 帶 name 特性的 a 標簽(注意:在HTML5中,a標簽已經不再支持 name 特性)作為錨點目標,然后把MarkDown中的錨點地址的目標內容設置為 idname 特性的值;這樣便可以實現頁面內跳轉;

這種形式的錨點目標的定義格式為:

<標簽名 id="目標內容">元素內容</標簽名>

<a name="目標內容">元素內容</a>

注意:

  • 標簽形式的錨點目標的id特性值中是不能含有中文字符;
  • name 特性只能應用在 a 標簽上;
  • HTML5不支持通過a標簽的 name 特性來定義錨點目標;

示例:

<div id="這是錨點目標">跳轉到這里</div>

<a name="這是錨點目標">跳轉到這里</a>

四. 總結

MarkDown中實現頁面跳轉的方法如下:

  1. 定義錨點目標;錨點目標的定義方式有4種:類Setext形式的標題、類atx形式的標題、帶id特性的HTML標簽(id特性的值為目標內容)、帶name特性的a標簽(name特性的值為目標內容);
  2. 定義錨點;錨點的定義方式有3種:行內式鏈接、參考式鏈接、HTML的a鏈接;

說明:

  • 錨點 和 錨點目標 的定義不分先后順序;

注意:

  • 錨點目標內容 中不能有大家字母和空格,所以如果錨點目標的 目標內容 中有大寫字母或空格,則需要在定義錨點中的 目標內容 時,把大寫字母改成小寫字母,把空格改成 -
  • 錨點目標內容 中不能含有以下字符:
    • 半角點(即英文中的句號).
  • 標簽形式的錨點目標的id特性值中是不能含有中文字符;
  • name 特性只能應用在 a 標簽上;
  • HTML5不支持通過a標簽的 name 特性來定義錨點目標;
  • HTML錨點 的目標錨點只能是 標簽形式的錨點目標

五. 示例

示例1

錨點:

[跳轉到個人簡介](#個人簡介)

錨點目標:

# 個人簡介

示例2

錨點:

[跳轉到個人簡介]: #個人簡介
[跳轉到個人簡介][]

錨點目標:

個人簡介
=====

示例3

錨點:

[跳轉到個人簡介](#個人簡介)

錨點目標:

<p id="個人簡介">這是個人簡介</p>

示例4

錨點:

[跳轉到個人簡介](#個人簡介)

錨點目標:

<a name="個人簡介">這是個人簡介</a>

示例5

錨點:

<a href="#個人簡介">跳轉到個人簡介</a>

錨點目標:

個人簡介
----

示例6

錨點:

<a href="#個人簡介">跳轉到個人簡介</a>

錨點目標:

<h1 id="個人簡介">這是個人簡介</h1>

示例7

錨點:

<a href="#個人簡介">跳轉到個人簡介</a>

錨點目標:

<a name="個人簡介">這是個人簡介</a>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容