Skip to content

Markdown

Markdown简介

Markdown 是一种易写易读的标记语言,以纯文本的形式,进行内容的标记。它由 John Gruber 在 2004 年创建,应该是除HTML之外最流行的标记语言。

与XML、HTML等标记语言相比,Markdown 的优势在于学习成本低,可读性更强。以下是HTML与Markdown的简单对比:

HTML:由起始标签、结束标签进行标记

html
<h1>一级标题</h1>
<p>段落</p>

Markdown:更加接近于自然形式

markdown
# 一级标题
段落

John Gruber认为,Markdown 语法的首要设计目标是尽可能易读。基于这个目标,Markdown 格式的文档能够以纯文本形式原样发布,而不会看起来像被填满了标签或格式化指令。

为什么使用 Markdown

对有文字写作需求的创作者,有着不同的创作习惯,Markdown是值得学习的一个工具,原因如下:

  1. Markdown是纯文本。不同与.docx.pdf等格式,Markdown是纯文本文件。纯文本的优势在于与平台无关、与软件无关,可以在不同平台、不同软件中打开。这样带来的优势就是可用范围大大增强。
  2. Markdown的生态繁荣。围绕Markdown产生除了代码高亮、幻灯片制作演示、文档转换等等工具,进而提高效率。
  3. 兼容HTML,可以在Markdown文本中,直接使用HTML代码。这弥补了Markdown标记功能较弱的缺点。
  4. 在AI时代,使用Markdown撰写提示词,可以让AI更好的理解你的意图。

Markdown基本语法

实际上,不同工具对Markdown语法的支持不太一样,但绝大多数工具都支持下列标记语法:

Markdown基础语法

Markdown扩展语法

Markdown扩展语法

Markdown编辑软件

对于大多数用户,建议使用跨平台、可在浏览器中直接使用的开源编辑器VS Code。原因有三:高颜值、生态繁荣、开源免费。

使用VS Code编辑Markdown文件时,建议安装如下插件:

  1. Markdown All in One:增强预览等功能
  2. Markdownlint:提供语法提示、自动美化等功能
  3. Markdown Preview Github Styling:提供Github风格的样式
  4. Word Count CJK:中文字数统计

Markdown生态

Pandoc : 利用Pandoc可将文档转化为.docx .ppt .pdf .html 等等常用格式。

Mermaid : 安装合适的工具后,可在Markdown中使用Mermaid制作流程图、流程图、甘特图等等图形。

Quarto : Quarto是一款面向科研用户的数字出版工具,可以将Markdown转化为电子书、PDF、PPT、网站等等。

Picgo : Picgo是一款国产开源图床工具(将图片使用网络统一存储),配合Markdown使用,让Markdown中的图片使用及管理不再繁琐。

Markdown 语法使用进阶

代码块标记符`的嵌套

在 Markdown 中,使用反引号 ` 来表示代码块,例如:

  1. 在 Markdown 中嵌套代码块,可以使用不同数量的反引号。外层使用 4 个反引号 ````,中层使用 3 个反引号 ```,如果还需要更深层嵌套,可以继续增加反引号数量,每层使用不同数量的反引号,保证代码块正确解析。
  2. 如果要在 Markdown 中插入反引号,还是用不同数量的反引号进行包裹,需要增加空格,确保正确解析,例如 `

Frontmatter

Front matter 本来是一本书的第一部分,通常也是最短的部分;它有时也被称为 prelims 或 preliminary matter。它可以简单到只有一个标题页,也可以包括多个标题页、前言、序言等等

Front matter 在 Markdown 文件中是一种用于标识元数据的方法。元数据可以是任何您想要的内容,但通常用于页面需要但不想直接显示的数据元素。一些常见的元数据示例包括:文章标题、用于搜索引擎优化的描述、属于文档的标签或撰写日期。

案例:

markdown
---
title: 'Markdown'
author: yangjh
lang: zh
date: 2023-07-16 12:52
draft: false
aliases: []
categories: [Markdown, 笔记体系]
---

参考文献

  1. https://daringfireball.net/projects/markdown/syntax
  2. https://markdown.com.cn/