Skip to content

Markdown

Markdown是一种轻量级的标记语言,可用于将格式设置元素添加到纯文本文档中。

Markdown 中文网

Markdown 是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的 HTML(超文本标记语言)文档。下面是一些基本语法和部分扩展语法的介绍:

基本语法

  1. 标题:在行首加上 # 号,# 的数量表示标题的级别。

    # 一级标题
    ## 二级标题
    ### 三级标题
  2. 段落与换行:新行直接书写即可形成新的段落;若要在一行内强制换行,则在行尾添加两个空格后回车。

  3. 强调

    • 斜体:用一个星号或下划线包裹文字 *斜体*_斜体_
    • 粗体:用两个星号或下划线包裹文字 **粗体**__粗体__
    • 粗斜体:用三个星号或下划线包裹文字 ***粗斜体***___粗斜体___
  4. 列表

    • 无序列表:使用星号、加号或减号作为列表标记
      * 项目1
      + 项目2
      - 项目3
    • 有序列表:使用数字并加上一个英文句点
      1. 第一项
      2. 第二项
  5. 链接与图片

    • 链接:[链接文字](URL)
    • 图片:![替代文字](图片URL)
      • 中括号中的文本为<img> 属性。
      • 小括号引号中的文本为<img> 属性。
  6. 引用:以 > 符号开头的段落代表引用内容

    > 这是一个引用。
  7. 代码

    • 行内代码:用反引号 ` 包裹代码
    • 多行代码块:每一行至少缩进四个空格或者一个制表符,或者使用三个反引号 开始和结束代码块,并可指定语言类型如python
  8. 水平线:水平线

要创建水平线***,请单独在一行上使用三个或更多的星号(),破折号(---)或下划线(___)。

扩展语法

不同的 Markdown 解析器支持不同的扩展语法,以下是几种常见的扩展:

  1. 表格:通过管道符号 | 和破折号 - 创建表格。

    | 列1 | 列2 | 列3 |
    | --- | --- | --- |
    | 单元格1 | 单元格2 | 单元格3 |
  2. 任务列表:通过 - [ ]- [x] 创建待办事项列表,后者表示已完成的任务。

    - [ ] 任务1
    - [x] 任务2
  3. 脚注:通过 [^脚注标识符] 插入脚注,并在文末定义脚注内容。

    这里有一个脚注[^1]。
    
    [^1]: 这是脚注的内容。
  4. 定义列表:一些解析器支持定义列表,通常形式如下:

    定义术语
    : 定义描述

CSS 应用方式

1. 内联样式

直接在 Markdown 元素中使用 HTML 的 style 属性来应用 CSS 样式。

html
<span style="color: red;">红色文字</span>

2. 嵌入式样式

在 Markdown 文件的顶部或底部插入<style>标签,并在其中定义 CSS 规则。

html
<style>
  h1 {
    color: blue;
  }
</style>

3. 外部引用样式

链接到外部 CSS 文件,这在多个 Markdown 文件共享相同样式时尤其有用。

html
<link rel="stylesheet" href="path/to/style.css" />

生成目录

1. 手动生成目录

生成章节目录,我们只需要使用链接语法,将标题集中组合在一个列表中即可。

以下是一个简单的 Markdown 示例,展示了如何手动生成目录:

md
# 目录

- [第一章](#第一章)
  - [第一节](#第一节)
  - [第二节](#第二节)
- [第二章](#第二章)

# 第一章

## 第一节

这里是内容...

## 第二节

这里是更多内容...

# 第二章

这里是第二章的内容...

2. 自动生成目录

但通过上边的方式生成目录,我们很容易发现问题所在,目录少的时候没问题,当目录多的时候就有些繁琐了,我们需要整理维护所有的章节组成这颗导航树。

再比如我们要调整目录的位置,我们就需要动两个地方,一个是内容区域,一个是目录区域。

因此生成目录我们一般会借助一些工具,比如使用特定的 Markdown 处理器、第三方工具或插件来自动生成目录。

md
[TOC]语法生成

大多数 Markdown 处理器都支持通过特定语法自动生成目录。这个特定语法就是[TOC],在大多数 Markdown 处理器中,输入[TOC]就可以自动生成文档的目录。

要生成目录,请在段落中包含一个“[TOC]”占位符。在渲染过程中,它将被自动替换为整个文档的目录。

md
# Markdown 目录示例

## 目录

[TOC]

## 引言

这里是引言部分的内容。

## 第一部分

### 1.1 节

这里是第一部分,第一节的内容。

### 1.2 节

这里是第一部分,第二节的内容。

## 第二部分

这里是第二部分的内容。

请注意,不是所有的 Markdown 处理器都支持自动生成目录,因此需要具体查看 Markdown 处理器的文档以了解它们是否支持这个功能。

3. npm 语法生成

  • doctoc

shell
npm install -g doctoc
md
# Markdown 目录示例

## 目录

<!-- START doctoc -->

<!-- END doctoc -->

## 引言

这里是引言部分的内容。

## 第一部分

### 1.1 节

这里是第一部分,第一节的内容。

### 1.2 节

这里是第一部分,第二节的内容。

## 第二部分

这里是第二部分的内容。

doctoc 工具会将目录插入到文件中包含<!--- START doctoc --><!--- END doctoc -->标记之间的位置。我们可以将这些标记插入到 Markdown 文件中,然后运行 doctoc 命令以生成和更新目录。

shell
# 执行doctoc demo.md,即可为demo.md文件在文档中自动生成目录:
doctoc demo.md
  • markdown-toc

全局安装 doctoc:

sh
npm install -g markdown-toc

与 doctoc 不同的是,markdown-toc 工具会将目录插入到文件中包含<!-- toc --> 标记的位置。并且 markdown-toc 默认不自动将目录注入到文件中,需要加入参数-i。

sh
markdown-toc -i demo.md

Released under the MIT License.