器→工具, 工具软件

Obsidian使用之Markdown

钱魏Way · · 30 次浏览

Markdown简介

Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML,或者其他格式的文件。Markdown也可以理解为将以MARKDOWN语言编写的语言转换成HTML内容的工具,最初是一个perl脚本Markdown.pl。这种语言由John Gruber和Aaron Swartz于2004年创建。诞生初期是为了简化 HTML 语法,用于编写阅读次数多、更新频率高,但内容格式相对稳定的 README 类的文档。所以 Markdown 语法支持嵌入原始的 HTML 标记语言,支持 CSS 样式。

Markdown 的真正流行是在 2008 年 Github 出现以后。Github 使用 Markdown 作为默认的 Readme 文件编写规范,并提供了一套渲染规范。随着 Github 的流行,越来越多的具有高文字输出能力的程序员开始使用 Markdown 作为其创作的首选工具。现在,Markdown 不仅适用于工程师,其简洁的语法、规范的布局和高效的渲染能力,使其得到了越来越多文字创作者的喜爱。

Markdown使用场景:

  • 各类代码托管平台,如 GitHub、GitLab、BitBucket、Coding、Gitee 等等,都支持 Markdown 语法,很多开源项目的 README、开发文档、帮助文档、Wiki 等都用 Markdown 写作。
  • 技术社区和写作平台,StackOverflow、CSDN、掘金、简书、GitBook、有道云笔记

Markdown的优点:

  • 专注你的文字内容而不是排版样式,安心写作
  • 轻松的导出 HTML、PDF 和本身的 .md 文件
  • 纯文本内容,兼容所有的文本编辑器与字处理软件
  • 随时修改你的文章版本,可以方便地纳入版本控制
  • 可读、直观、学习成本低,能轻松在码字的同时做出美观大方的排版。

Markdown 的不足:

  • 缺乏公认的、与时俱进的官方标准,其最后标准更新于 2004 年度;
  • Markdown 源代码无法嵌入图片、文件等资源,需要使用 URL 来定位;
  • Markdown 的布局形式相对单一,无法用简单方法实现图文混排。

Markdown 旨在简洁、高效,也由于 Markdown 的易读易写,人们用不同的编程语言实现了多个版本的解析器和生成器,而且可能有不同程度的定制与扩展,这就导致了目前不同的 Markdown 工具集成了不同的功能(基础功能大致相同),例如流程图与时序图,复杂表格与复杂公式的呈现,比如 GFM Markdown 就支持使用 Mermaid 生成图表和流程图。

Markdown语法

Markdown自从被创建以来,已经发展出许多不同的版本和变种,以下是一些知名的版本:

  • Standard Markdown / CommonMark:这是Markdown的标准版本,也被称为CommonMark。这个版本着重于确保Markdown语法的一致性和语义的精确性。
  • GitHub Flavored Markdown (GFM):这是GitHub创建的一个特殊版本,它在Standard Markdown的基础上增加了一些额外的特性,比如任务列表,表格,和自动URL链接等。
  • MultiMarkdown:这个版本在原有的Markdown基础上增加了对表格,脚注,参考文献,等等的支持。
  • GitLab Flavored Markdown(GLFM)是GitLab的特殊Markdown版本。它在标准的GitHub Flavored Markdown(GFM)基础上增加了一些特性,以满足GitLab用户的需求。

虽然有很多不同的版本,但它们的核心语法都相同,主要的区别在于一些额外的功能和扩展。

GitHub Flavored Markdown (GFM)

GitHub Flavored Markdown,简称GFM,是GitHub基于标准Markdown语言的一个扩展版本。GFM在标准Markdown的基础上增加了一些特性,以满足GitHub用户对编写文档,评论,Pull Request等的需求。

以下是GFM的一些主要扩展特性:

除了上述Cheat Sheet中的语法外,GFM还支持的语法有:

脚注

Here is a simple footnote[^1].

A footnote can also have multiple lines[^2].

[^1]: My reference.
[^2]: To add line breaks within a footnote, prefix new lines with 2 spaces.
  This is a second line.

渲染效果:

警告

> [!NOTE]
> Useful information that users should know, even when skimming content.

> [!TIP]
> Helpful advice for doing things better or more easily.

> [!IMPORTANT]
> Key information users need to know to achieve their goal.

> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.

渲染效果:

流程图

GitHub支持在Markdown文件中渲染Mermaid图表了。用户可以使用文本定义和创建复杂的图表,而无需依赖其他工具。

在GitHub上使用Mermaid的语法如下:

```mermaid
graph TD;
A[Hard edge] -->|Link text| B(Round edge);
B --> C{Decision};
C -->|One| D[Result one];
C -->|Two| E[Result two];
```

这将在GitHub上渲染一个带有决策节点的流程图:

除此之外,还有:

  • 根据GeoJSON或TopoJSON创建地图
  • 绘制 STL 3D 模型等

Obsidian中的Markdown语法

Obsidian使用的是GitHub Flavored Markdown (GFM)这个版本。这意味着你可以使用GFM的所有标准特性,例如任务列表,表格和代码块等。但是请注意,Obsidian也可能具有自己的一些特殊形式和扩展,例如链接其他笔记,嵌入笔记等。

Obsidian增加的语法特性:

  • 链接和嵌入笔记:你可以通过 [[笔记名称]] 的语法在笔记之间创建链接,或者通过 ![[笔记名称]] 的语法来嵌入其他笔记。
  • 转义链接:如果你不希望 Obsidian 解析链接,你可以在链接前加上 \ 进行转义。
  • 块引用和块嵌入:Obsidian 支持块级引用和嵌入,你可以通过光标在特定行进行 ^ 键入,Obsidian 将生成一个唯一的块 ID,然后你就可以在其他地方以 [[^块ID]] 的形式引用或嵌入这个块。
  • YAML 前置课题:Obsidian 支持在笔记顶部添加 YAML 代码块(被 — 包围的部分),以包含元数据,如标签、别名等。
  • 标签和别名:你可以用 # 符号添加标签,用 ^ 符号添加别名。

Obsidian不支持的语法特性:

  • 自动链接:在GFM中,任何形式的URL都会被自动转换为可点击的链接。然而,在Obsidian中,这个特性可能并不总是有效。
  • Mention(提及):GFM允许你使用@符号来提及其他用户。但这是GitHub特有的特性,Obsidian并不支持。
  • Issue链接:在GFM中,你可以直接引用和链接到GitHub的issue。但这也是GitHub特有的特性,Obsidian并不支持。
  • Emoji:在GFM中,你可以通过特定的符号代码来插入emoji。然而Obsidian并未完全支持这个特性。
  • 颜色模式:GitHub支持颜色代码的可视化,Obsidian并不支持。

其他Markdown Chart Sheet

参考链接:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注