CSDN-markdown扩展语法说明

目录

  • 概述
  • 换行
  • 删除线
  • 链接自动识别
  • 表格
  • 代码块高亮
  • 定义列表
  • 脚注
  • 自动生成目录
  • 参考资料

正文

概述

大部分情况下,Markdown的基本语法已够我们使用,比如随性记录点东西、非专业的分析文章等,一般只用到标题、区块引用、强调、列表这样的基本元素。但若要写专业性比较强的分析文章或技术性文章,这些基本语法就不够用了,因为我们经常会用到表格、脚注、想要自动生成文章目录等,若是涉及代码的技术文章,我们还希望代码支持高亮以提升阅读体验。这就需要用到Markdown的扩展语法了。

CSDN-markdown编辑器支持基于PageDown( Stack Overflow所使用的编辑器)的扩展,从而支持GFM(GitHub Flavored Markdown)的Markdown Extra语法。下面详细介绍这些可使用的扩展语法。


换行

在标准Markdown语法中,要想换行必须在一行的最后加两个空格才行,否则即使你在一行的末尾插入硬回车,这些文本仍然会被合并为一行,这个特性会导致大量非预期的格式化错误。

但是GFM则没有此要求。GFM会把段落内容中的换行视为真正的换行,而这很可能正是你所期望的。

下面这个段落被一个换行符分隔成了两行:

Roses are red
Violets are blue

将被渲染为:

Roses are red

Violets are blue


删除线

GFM也支持删除线的使用,只要用~~将需要删除的文本包围起来即可。

例子:

~~Mistaken text.~~

转为HTML后为:

<p><del>Mistaken text.</del></p>

效果:

Mistaken text.


链接自动识别

在前面文章「CSDN-markdown基本语法说明—自动链接」中讲到,对于网址和Email的自动链接需要用一对尖括号括起来才能识别。

而在GFM中,对于标准的URL需要加链接,只需简单地输入这个URL就可以,它将被自动转换为一个链接。

例子:

http://blog.csdn.net/lanxuezaipiao/

效果:

http://blog.csdn.net/lanxuezaipiao/

但对于Email地址,在CSDN-markdown编辑器里还不支持自动识别,仍需要加尖括号。


表格

一般的表格包括表头(可选)和单元格,Markdown Extra使用竖线和分割线标记表格。

语法说明:

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell

第一行包含可选的表头,第二行包含位于表头和单元格内容之间的强制性分隔线,接下来的每一行就是单元格的内容,列与列之间用竖线 | 分隔。

如果愿意的话,可以在表格每一行的开头和结尾处添加竖线 |,如下所示得到的结果和上面一致:

| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

注意事项:

表格的每一行至少有一个竖线|,否则无法正确处理表格。这也就意味着,创建只有一列的表格,必须在每一行的开头或者结尾处添加一个竖线|,或者都添加。

例子:

项目     | 价格
-------- | ---
Computer | $1600
Phone    | $12
Pipe     | $1

转为HTML后为:

<table>
  <tr>
    <th>项目</th>
    <th>价格</th>
  </tr>
  <tr>
    <td>Computer </td>
    <td>$1600</td>
  </tr>
  <tr>
    <td>Phone</td>
    <td>$12</td>
  </tr>
<tr>
    <td>Pipe</td>
    <td>$1</td>
  </tr>
  </table>

效果:

项目 价格
Computer $1600
Phone $12
Pipe $1

问题:如何设置表格对齐方式

看到这里可能有人会问:怎么都是左对齐?能不能设置为居中对齐呢?

在Markdown Extra中,需要在对应列的分隔线左右添加冒号:来指定列的对齐方式

  • 冒号 : 在分隔线的左边说明此列左对齐(默认方式)
  • 冒号 : 在分隔线的右边说明此列右对齐
  • 在分隔线的左右两边都有冒号 : 说明此列居中。

比如下面的 项目列是左对齐,价格列是右对齐,而数量列是居中对齐的:

| 项目      |    价格 | 数量  |
| :-------- | --------:| :--: |
| Computer  | 1600 元 |  5   |
| Phone     |   12 元 |  12  |
| Pipe      |    1 元 | 234  |

效果为:

项目 价格 数量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234

当然对于单元格里的内容,你也可以使用各种Markdown语法,比如加粗、删除线什么的。


代码块高亮

前面在文章「CSDN-markdown基本语法说明」里已经介绍了可以通过缩进四个空格或一个制表符来将文本转换为代码块,但这种方式有两个缺点:

  • 代码块的每一行都需要缩进,还好CSDN-markdown编辑器支持全选代码块然后按Tab键实现一起缩进效果,但是也有很多MD编辑器是不能这样一起缩进的,那么你就需要手动的一行一行缩进,代码长的话这将是一个费时费力且无聊的工作。
  • 不支持代码高亮功能,这对程序员来说是非常不好的体验。

幸好,CSDN-markdown编辑器经过PageDown扩展后,支持GFM的代码块高亮功能。只要把代码块包裹在 ``` 之间,你就不需要通过无休止的缩进来标记代码块了。

语法说明:

使用``` (三个反引号)包围代码块即可,里面的代码块不需要任何缩进。这种方式也称“围栏式代码块”,如下:

```
代码块
```

例子:

```
printf("Hello World!");
```

转为HTML后为:

<pre>
    <code>printf("Hello World!");</code>
</pre>

效果:

printf("Hello World!")

注意上面是默认的代码块着色效果,GFM还有更进一步的措施,你可以指定一个可选的编程语言标识符(比如c++、Java、Python等),然后就可以启用指定语言的语法着色了。

例子:

下面以一段 Ruby 代码着色为例:

```ruby
require ‘redcarpet‘
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

转为HTML后为:

<pre class="prettyprint">
    <code class="language-ruby">
    require ‘redcarpet‘
    markdown = Redcarpet.new("Hello World!")
    puts markdown.to_html
   </code>
</pre>

效果:

require ‘redcarpet‘
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html

我们使用 Linguist 来进行语言识别和语法着色。你可以在 语言 YAML 文件 中查证哪些语言标识符是有效的。


定义列表

有时候我们在写文档时需要对某些列表项进行说明性定义,在html中我们可以使用<dt><dd>这样的标签来实现,Markdown Extra中更加简洁,只需使用冒号就可以解决。

语法说明:

列表中的项目
:  项目的定义部分

即使用“冒号:+ 一个以上的空格 + 项目的定义部分”来定义一个项目的定义内容。

例子:

项目1
项目2
:   定义 A
:   定义 B

项目3
:   这个定义有一个代码块

        代码块

项目4
:   这个定义有一个引用块

    > 定义D内容

转为HTML后为:

<dl>
  <dt>项目1</dt>
  <dt>项目2</dt>
  <dd>
    定义A
  </dd>
  <dd>
    定义B
  </dd>
  <dt>项目3</dt>
  <dd>
    这个定义有一个代码块
    <pre><code>代码块</code></pre>
  </dd>
  <dt>项目4</dt>
  <dd>
    这个定义有一个引用块
    <pre><code>定义D内容</code></pre>
  </dd>
</dl>

效果:

项目1
项目2
定义 A
定义 B
项目3

这个定义有一个代码块

代码块
项目4

这个定义有一个引用块

定义D内容

注意事项:

定义的内容可以包含行级(如行内代码)和块级(如区块引用、代码块)的Markdown语法。


脚注

脚注用于为正文中的某个条目添加补充注释,说明该条目的引文出处,跟参考文献一样,脚注一般位于文档的末尾,文章内以数字标注。在Markdown Extra也可以很容易的实现脚注。

语法说明:

在需要标记脚注文字的后面添加一个方括号,方括号中的内容必须以^开头,再接着是数字或字符串标记:

脚注[ ^1]有一个标签[^label]和该标签的定义[^!DEF].

接着,在文件的任意地方,你可以把这个脚注的内容定义出来:

[ ^1]: 这是一个脚注
[^label]: 这是脚注的标签
[^!DEF]: 这是脚注标签的定义

脚注内容定义的形式:

  • 前面引用脚注的标签符号
  • 接着一个冒号
  • 再接着一个以上的空格或制表符
  • 最后是脚注定义的内容。

脚注定义的内容可以包含多行、代码区块、区块引用和大多数其他markdown格式的内容。

例子:

这是一个脚注[ ^footnote].

[ ^footnote]: 脚注定义内容的第一行内容.
定义内容的第二行.
> 一个包含多行的
> 区块引用.

转为HTML后为:

<p>这是一个脚注<a href="#fn:footnote" id="fnref:footnote" title="See footnote" class="footnote">1</a>.</p>

<div class="footnotes">
<hr>
<ol>
<li id="fn:footnote">脚注定义内容的第一行内容. <br />
定义内容的第二行.
<blockquote> 一个包含多行的 <br />
    > 区块引用.
</blockquote>
<a href="#fnref:footnote" title="Return to article" class="reversefootnote">?</a></li>
</ol>
</div>

效果:

这是一个脚注1.

默认情况下,脚注内容位于生成的 HTML 文档末尾,上面的脚注内容在该文章的末尾可以看到。


自动生成目录

在需要目录出现的地方(一般在文章一开始)放置一个标记,这样会自动生成一个嵌套的包含所有标题的列表。默认的标记是[TOC]

例子:

[TOC]

# 概述

## 定义

## 用处

# 结论

最前面的那个目录就是用 [TOC]生成的。

参考资料


  1. 脚注定义内容的第一行内容.

    定义内容的第二行.

    一个包含多行的

    区块引用.

    ?

时间: 2024-10-11 09:12:13

CSDN-markdown扩展语法说明的相关文章

CSDN markDown编辑器语法规则

'-'短横线符号, 位于一行前表示项目符号, 显示效果中的项目符号标记为"黑色实心圆点", 并且会自动段落缩进; 如果有两个'- -',中间有空格, 表示更深层级的项目符号; '*'星星符号, 位于一行的前面和后面, 成对出现,用来控制字体, 一对星星符号表示斜体字, 两对表示粗体字; '#'号, 位于一行前, 如果该行有其他控制符号, 那么'#'号要位于最前面, 用来控制字体尺寸, 可以重复叠加, 叠加后字体尺寸变小; 使用快捷键时, 要先选中内容 '>'向右的箭头符号, 用于

markdown基本语法说明

概述 简单介绍Markdown Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面. -- 来自[维基百科] 简单的来说,Markdown就是用"标记符号"表示"格式".Markdown语法标签与HTML语法标签是一一对应的,比如Markdown的二级标题标签##就对应着HTML中的<h2>...</h2>标记,而且Markdown是兼容HTML语法的,如果你比较喜欢 HTML

CSDN markdown 编辑器 第四篇 LaTex语法

Latex是为了写数学公式的.嗯-但实际这种语言的作用是为了排版的.数学公式只是他的附加属性. 但是markdown引入这个完全是为了写公式.其他的Latex语法不支持. CSDN markdown语法支持的latex,分为两类 - 行内公式: $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ 这是行内公式: Γ(n)=(n?1)!?n∈N 块级公式: $$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$ 这个是块

CSDN Markdown语法之如何插入图片

目录 图片上传方式 插入在线图片 插入本地图片 图片链接方式 行内式图片链接 参考式图片链接 几个问题探讨 问题1:图片上传和图片链接两种方式的区别 问题2:Markdown中如何指定图片的高和宽? 问题3:Markdown中如何指定图片的对齐方式? 正文 在CSDN Markdown编辑器中插入图片有两种方式: 使用工具栏上的图片上传功能 自己动手写图片链接的方式 下面分别介绍它们的使用方法. 图片上传方式 这种方式最简单,属图形化方式.大家可以很容易的在CSDN Markdown编辑器的工具

Markdown基本语法

Markdown基本语法 ??Markdown是一个将文本转化为HTML的工具.简单来说,Markdown是一个兼顾可读性与易用性的轻量级标记体系.Markdown并不追求大而全,它只关心HTML里最常用的几个标记,对于一些不常用的标记它允许直接将HTML标记插入文本. 基本符号 *,-,+ 这3个符号效果都一样 换行 空白行表示另起一个段落 在文末加上连续两个空格,表示换行 连续3个符号,然后回车,表示 hr水平分隔线 标题 连续#的个数对应h1~h6 在文字左右各加两个符号,表示加粗 在文字

转 - markdown简明语法

Markdown是一种极简的『标记语言』,将文本转为HTML,通常为我大码农所用.其不追求大而全,简洁至上,正所谓不求最贵,只求最好! 本文介绍Markdown基本语法,内容很少,一行语法一行示例,学会后可轻松写出高大上的文档,再也不需要各种编辑器去调文章格式.另外,网上有各平台下的Markdown工具可用,也有在线的,我直接使用sublime搞定,Markdown本来就是为了追求简洁,弄个工具岂不多此一举. 强调 星号与下划线都可以,单是斜体,双是粗体,符号可跨行,符号可加空格 **一个人来到

Markdown 常见语法记录

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面. 简单的来说,Markdown就是用"标记符号"表示"格式".Markdown语法标签与HTML语法标签是一一对应的,比如Markdown的二级标题标签##就对应着HTML中的< h2>-< /h2>标记,而且Markdown是兼容HTML语法的,如果你比较喜欢 HTML 的< a >或 < img >

CSDN markdown 编辑器 第一篇

最近CSDN 新出了markdown编辑器.我这也算是尝鲜. 最初接触markdown编辑器是在2011年.那个时候,使用markdown编辑器写blog.然后将blog放到github上托管.markdown还不能像现在这样可以实时编辑显现.那个时候有一个markdown engine专门将markdown语法转换成html. 每次感觉自己写对了.实际上语法各种不对. 究竟什么是markdown? markdown是一种更加贴近自然表达的语法,它可以转换成互联网上通用展示的html格式. -

CSDN Markdown 超链接

CSDN Markdown 的超链接总是在当前页面打开新的链接,后来找到了一种可以在新窗口打开超链接的语法,如下: <a href="https://zh.wikipedia.org/wiki/Markdown" target="_blank"> [ 维基百科 ] PS: 仅供参考