MarkDown超级教程 Obsidian版_11.4

2023-11-15


date: 2021-11-3 18:01
aliases: [Markdown教程,MD教程]
tags: [“Markdown”]

什么是 Markdown?

  1. Markdown 是一款轻量级标记语言,不同于HTML (Hypertext Markup Language)Markdown 的语法非常简单,且容易上手
  2. Markdown纯文本格式 编写文档,依赖键盘而非鼠标,专注于写作本身,感受书写的魅力
  3. Markdown 的通过添加一些简单的 标识符,让文本具有恰到好处的格式
  4. Markdown 核心特征就是 删繁剪芜, **简扼 **+ 精炼
  5. Markdown笔记网页文章 的最佳载体
  6. Down 的核心:坐 来,就能把思维写
    • 牛津高阶英汉双解词典第九版 中,关于 down 的释义:

牛津9 down释义


为什么要使用 Markdown?

有朋友问我 ,Markdown 的效果 用Word 完全可以复现,甚至功能更多,那为何要用 Markdown 呢?

答:

  • 功能多,不一定是好事
    • 功能一多,选择就会变多,然后你会开始纠结……
      • 这个字号是不是该大一点呢?
      • 这个颜色好像有点不太搭呢?
      • 这个粗体,是不是该再加点颜色呢?
      • 这个图片的位置看起来有点不大对劲呢?
    • 结果,写了半天,就憋出一点点东西
      • 写出来的内容…好像…也不咋滴

MD的优势:

  1. Markdown 让我们免于 被繁杂臃肿的功能晃花了眼 的困扰
  2. Markdown 让我们回归内容本身,拥抱笔记的内核,而非浮于表象的样式,写出高效精练的笔记!

Markdown 写东西,记住一个原则

能用10个字搞定的,绝不用11个字

经常使用 Markdown 书写的朋友,也许会有一种奇妙的感触

  • 书写,会倒逼思维的跃进。像是有东西拽着你的思绪往前冲
    • 倒逼:逆向逼迫,反向推动

关于标识符的滥用

这个其实是写在最后的,之所以放在这里,是因为它很重要

如果你有一定的MD语法基础,可以直接[[#19 避免标识符的滥用|点击跳转]]


Markdown 相关软件推荐



Markdown 语法

  • 提示1: 本教程推荐使用 Obsidian 打开阅读
  • 提示2: 下文提到的所有标识符都是 英文状态

1. 标题&目录


1.1 标题

  • Markdown标题共有 六级,和 HTML 一样
  • 区分 一级标题 → 六级标题
    • 标题 的格式:
      • # × 标题级数 + 空格 + 文本内容
这是一段普通的文本

# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题 

1.2 目录

  • 目录的 格式:
    • 在文档的顶部 输入 [toc] ,会根据 标题 自动生成目录 ( Table of Content )
  • 不是所有 MD编辑器 都支持目录生成
输入下方内容会生成一个目录:

@[toc]



2. 斜体&粗体


2.1 斜体

  • 斜体 的格式:
    1. * + 文本内容 + *
    2. _ + 文本内容 + _ ( 下划线 )
  • 说明:
    • 斜体文本,首尾只有 单个 标识符
这是一段普通文本

*这里是一段斜体文本*
_这也是一段斜体文件_

示范

这是一段普通文本

这里是一段斜体文本
这也是一段斜体文件


2.2 粗体

  • 粗体 的格式:

    1. ** + 文本内容 + **
    2. __ + 文本内容 + __ (这里是两个 _ )
  • 说明:

    • 粗体文本,首尾各有 两个 标识符
这是一段普通文本

**这里是一段加粗文本**
__这也是一段加粗文本__

示范

这是一段普通文本

这里是一段加粗文本
这也是一段加粗文本


2.3 粗斜体 (斜粗体)

  • 粗斜体 的格式:

    1. *** + 文本内容 + ***
    2. ___ + 文本内容 + ___ ( 这里是3个 _ )
    3. **_ + 文本内容 + _**
    4. __* + 文本内容 + *__
    5. *__ + 文本内容 + __*
    6. _** + 文本内容 + **_
  • 说明:

    • 粗斜体文本,首尾各有 三个 标识符
这是一段普通文本

***粗斜体文本1***
___粗斜体文本2___
**_粗斜体文本3_**
__*粗斜体文本4*__
*__粗斜体文本5__*
_**粗斜体文本6**_

示范

这是一段普通文本

粗斜体文本1
粗斜体文本2
粗斜体文本3
粗斜体文本4
粗斜体文本5
粗斜体文本6


2.4 斜体包含粗体

  • 斜体中包含粗体 的格式:

    1. * + 斜体文本 + ** + 粗体文本 + ** + 斜体文本 + *
    2. _ + 斜体文本 + __ + 粗体文本 + __ + 斜体文本 + _ ( 这里是两个 _ )
    3. * + 斜体文本 + __ + 粗体文本 + __ + 斜体文本 + *
    4. _ + 斜体文本 + ** + 粗体文本 + ** + 斜体文本 + _
  • 说明:

    • 斜体 中包含 粗体,其实就是嵌套的关系,外层斜体内层粗体
    • 外层是斜体,标识符是单个;内层是粗体,标识符是两个
    • 因为 粗体 是被包裹在 斜体 中的,所以显示效果为 斜粗体
这是一段普通文本

*这里是一段斜体中**包含粗体**的文字*
_这也是一段斜体中**包含粗体**的文字_
*这又是一段斜体中__包含粗体__的文字*
_这还是一段斜体中**包含粗体**的文字_

示范

这是一段普通文本

这里是一段斜体中包含粗体的文字
这也是一段斜体中包含粗体的文字
这又是一段斜体中__包含粗体__的文字
这还是一段斜体中包含粗体的文字


2.5 粗体包含斜体

  • 粗体中包含斜体 的格式:
    1. ** + 粗体文本 + * + 斜体文本 + * + 粗体文本 + **
    2. __ + 粗体文本 + _ + 斜体文本 + _ + 粗体文本 + __ ( 这里是两个 _ )
    3. ** + 粗体文本 + _ + 斜体文本 + _ + 粗体文本 + **
    4. __ + 粗体文本 + * + 斜体文本 + * + 粗体文本 + __
  • 说明:
    • 粗体 中包含 斜体,也就是嵌套的关系,外层粗体内层斜体
    • 外层是粗体,标识符是两个;内层是斜体,标识符是单个
    • 因为 斜体 是被包裹在 粗体 中的,所以显示效果为 粗斜体
这是一段普通文本

**这里是一段粗体中*包含斜体*的文字**
__这也是一段粗体中_包含斜体_的文字__
**这又是一段粗体中_包含斜体_的文字**
__这还是一段粗体中*包含斜体*的文字__

示范

这是一段普通文本

这里是一段粗体中包含斜体的文字
这也是一段粗体中_包含斜体_的文字
这又是一段粗体中_包含斜体_的文字
这还是一段粗体中包含斜体的文字



3. 线


3.1 水平分割线

  • 水平分割线由至少 3*- 组成
下面是一条水平分割线:
---
***

示范




3.2 文本删除线

  • 删除线 的格式:
    • ~~ + 文本内容 +~~ 首尾各加两个 ~ 波浪号
~~这是一段加了删除线的文本~~

示范

这是一段加了删除线的文本


3.3 文本下划线

  • 下划线的格式,和 HTML 是一样的
    • <u> + 文本内容 + </u>
<u>这是一段加了下划线的文本</u>

示范

这是一段加了下划线的文本



4. 列表&引用


4.1 有序列表

  • 有序列表 的格式:

    • 1. + 空格 + 文本内容
  • 说明:

    • 输入文本内容后,敲击 Enter 自动补全格式,并进入 下个 有序列表
    • 若需要在同个列表内,增加 换行显示 的内容 (但不进入下个列表)
      敲击 Shift + Enter ,即可另起一行输入文本
    • 在有序列表的中间,插入一个新的列表,后面列表的 数字序号 会自动 递进 一层
    • 即便在源代码模式中修改了数字序号,渲染界面依然是 依照顺序 显示的
1. 这是第一个有序列表 <!-- (Enter) -->
2. 这是第二个有序列表 <!-- (Enter) -->
3. 这是第三个有序列表 


1. 这是第一个有序列表 <!-- (Shift + Enter) -->
   这是同个列表下,另起一行的文本内容 <!-- (Enter) -->
2. 这是第二个有序列表 <!-- (Shift + Enter) -->
   这是同个列表下,另起一行的文本内容 

示范

  1. 这是第一个有序列表

  2. 这是第二个有序列表

  3. 这是第三个有序列表

  4. 这是第一个有序列表
    这是同个列表下,另起一行的文本内容

  5. 这是第二个有序列表
    这是同个列表下,另起一行的文本内容

补充

  • 由于有序列表存在强制排序性,它的数字序号必然是逐一递进
    若你希望内容前的数字,不依照递进顺序排序,或者以 整百整十数 排序
  • 可以配合无序列表,在无序列表中输入:
    • 数字 + . + 内容
      #注意 点号 与 内容 之间,没有空格 (其实有空格也行,就是会感觉有点奇怪)
- 10.这是无序列表下,整十数排列的内容
- 20.这是无序列表下,整十数排列的内容
- 30.这是无序列表下,整十数排列的内容


- 100.这是无序列表下,整百数排列的内容
- 200.这是无序列表下,整百数排列的内容
- 300.这是无序列表下,整百数排列的内容

效果:

  • 10.这是无序列表下,整十数排列的内容
  • 20.这是无序列表下,整十数排列的内容
  • 30.这是无序列表下,整十数排列的内容

  • 100.这是无序列表下,整百数排列的内容
  • 200.这是无序列表下,整百数排列的内容
  • 300.这是无序列表下,整百数排列的内容

4.2 无序列表

  • 无序列表 的格式:
  • - + 空格 + 文本内容
  • 说明:
    • 输入文本内容后,敲击 Enter 自动补全格式,并进入 下个 无序列表
    • 若需要在同个列表内,增加换行显示的内容 (但不进入下个列表)
      敲击 Shift + Enter ,即可另起一行输入文本
  • 补充:
    • Obsidian中,按下 Ctrl + Enter
    • 即可快速生成一个无序列表
- 这是第1个无序列表 <!-- (Enter) -->
- 这是第2个无序列表 <!-- (Enter) -->
- 这是第3个无序列表

- 这是第一个无序列表 <!-- (Shift + Enter) -->
  这是同个列表下,另起一行的文本内容
- 这是第二个无序列表 <!-- (Shift + Enter) -->
  这是同个列表下,另起一行的文本内容 

示范

  • 这是第1个无序列表
  • 这是第2个无序列表
  • 这是第3个无序列表

  • 这是第一个无序列表
    这是同个列表下,另起一行的文本内容
  • 这是第二个无序列表
    这是同个列表下,另起一行的文本内容

4.3 引用

  • 引用 的格式:
    • > + 文本内容 (不需要空格)
  • 说明:
    • 同个引用段落内的换行直接敲击 Enter 即可
    • 若需添加 第二个独立引用段落 ,连续敲击 两下 Enter 即可
>这是第一段引用文本的第1行 <!-- (Enter) -->
>这是第一段引用文本的第2行 <!-- (Enter) -->
<!-- (Enter) -->
>这是第二段引用文本的第1行 <!-- (Enter) -->
>这是第二段引用文本内第2行

示范

这是第一段引用文本的第1行
这是第一段引用文本的第2行

这是第二段引用文本的第1行
这是第二段引用文本的第2行


4.4 缩进&退格

在列表和引用的书写过程中,我们需要利用 缩进退格 ,让文章肌理分明,更具层级

  • 缩进:

    1. Tab
    2. Ctrl + [   (左中括号)
  • 退格:

    1. Shift + Tab
    2. Ctrl + ] (右中括号)

4.4.1 有序列表的缩&退

1. 第一级有序列表1 <!-- (Enter) -->
	1. 第二级有序列表1    <!-- 写文本之前,先( Tab 或 Ctrl + ] ) ;写完文本后,再(Enter) -->
	2. 第二级有序列表2 <!-- (Enter) -->
2. 第一级有序列表2    <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) --> 
  • 补充说明:
    • 有序列表的数字序号,即便你在源代码模式里 强行改掉 数字,它仍然会 依照顺序 显示
示范
  1. 第一级有序列表1
    1. 第二级有序列表1
    2. 第二级有序列表2
  2. 第一级有序列表2

4.4.2 无序列表的缩&退

- 第一级无序列表1 <!-- (Enter) -->
	- 第二级无序列表1  <!-- 写文本前,先( Tab 或 Ctrl + ] ) ;写完后,再(Enter) -->
	- 第二级无序列表2 <!-- (Enter) -->
- 第一级无序列表2  <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) -->
示范
  • 第一级无序列表1
    • 第二级无序列表1
    • 第二级无序列表2
  • 第一级无序列表2

4.4.3 引用的缩&退

  • 引用的 缩进 和列表 不同
    • 引用需另起一行,并额外多打一个 > 来完成 缩进
  • 引用的 退格 与列表 相同
    1. Shift + Tab
    2. Ctrl + ] (右中括号)
>第一级引用1 <!-- (enter) -->
>>第二级引用1 <!-- 先打1个 > (这里的第一个 > 是会自动补充的,只需额外增补1个即可) ,再(enter) -->
>>第二级引用2 <!-- (enter) -->
>第一级引用2   <!-- 写文本前,先 ( Shift + Tab 或 Ctrl + [ ) -->
示范

第一级引用1

第二级引用1
第二级引用2

第一级引用2


  • 补充:
    Obsidian 中,引用的退格是不太一样的
  • **Obsidian **中,如果想让已经缩进的引用 退回一层
    • 得使用 Shift + Enter ,配合方向键,在多个 > 之间灵活断行
      并在下一行 根据需要 选择性补充 >
  • 这个用文字比较难以描述,这里选择用2个带键位的 Gif图 来描述

Gif演示1:


引用退格1


  • 效果1:

111

222

333

444

555


Gif演示2:

引用退格2


  • 效果2:

111

222

333

444

555

666

777


4.4.4 有序&无序&引用 连续套娃

  • 有序列表无序列表引用 三者之间,可以相互嵌套
  • 核心键Shift + Enter & Enter & Shift + Tab ( 或 Ctrl + [ )
    • Shift + Enter 在切换格式的嵌套中,是 自带一层 缩进 效果的
1. 第一级 有序列表1 <!-- (Shift + Enter) --> 
	- 第二级 无序列表1 <!-- (Shift + Enter) -->
		>第三级 引用1  <!-- (Enter) -->
			- 第四级 无序列表2 <!-- (Shift + Enter) -->
            	1. 第五级 有序列表2 <!-- (Enter) -->
            - 第四级 无序列表3   <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) ;写完后再 (Enter) -->
        >第三级 引用2  <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) ;写完后再 (Enter × 2) -->
    - 第二级 无序列表4  <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) -->
2. 第一级 有序列表3  <!-- 写文本前,先( Shift + Tab 或 Ctrl + [ ) -->
示范
  1. 第一级 有序列表1

    • 第二级 无序列表1

      第三级 引用1

      • 第四级 无序列表2
        1. 第五级 有序列表2
      • 第四级 无序列表3

      第三级 引用2

    • 第二级 无序列表4

  2. 第一级 有序列表3

4.4.5 Obsidian 的一些缩退问题

  • Obsidian 在列表首行使用缩进的时候,后续的列表会出现一些问题
    • TabShift + tab 会无法 缩进 退格
      • 可以使用 Ctrl + ]Ctrl + [ 来解决问题
- - 这是第一段就被缩进的列表
	- 这是第二段被再次缩进的列表  <!-- 这里需按两次 Ctrl + ] ,Tab键是无效的 -->
  - 这是第三段列表  <!-- Ctrl + [ -->
    • 这是第一段就被缩进的列表
      - 这是第二段被再次缩进的列表
      • 这是第三段列表



5. 网页链接与图像


5.1 网页链接

  • 网页链接的 格式:
    • [ + 显示文本内容 + ] + ( + 链接地址 + 空格 + " + 提示信息文本 + " + )
  • 说明:
    • 显示文本内容,是在渲染界面实际 可见 的文本,用以 说明 链接
    • 提示信息文本,需鼠标悬停于 显示文本内容 方可触发,用于增加额外提示信息
      • "提示信息文本"可选项,可以不填
      • 一般来讲,需按住 Ctrl + 鼠标左键点击 才可跳转链接,不过也有 直接鼠标点击 就能跳转的
[显示文本内容](链接地址 "提示信息文本")

[百度一下,你就知道](http://www.baidu.com "按住Ctrl点击跳转百度")

示范:

百度一下,你就知道


5.1.1链接的加粗

  • 格式有两种:
    1. 把一对 ** 加在 显示文本内容的首尾
    2. 把一对 ** 加在 链接格式整体 的首尾



5.2 图像

  • 图像格式:
    • 图像格式,就是在网页链接前面加个 ! (英文格式的),! 代表 可见
    • 图片的提示信息,和网页链接一样,写在 " "
    • [ ] 方括号里的文字信息在 Markdown 没啥实质的作用,只是方便在源代码模式下,知道这个图片是什么,在渲染界面是不会显示的。有点类似于HTML img标签 里的 alt属性
![文字信息](图片链接 "提示文本信息")	

![湘湖1](https://z3.ax1x.com/2021/08/06/fuNkXq.jpg "湘湖一角")
  • 补充:

    • 图像链接可以是本地的,也可以是在线
      • 本地图像直接 Ctrl + C 黏贴,Ctrl + V 复制 就可以
      • 在线图像推荐使用 图床
    • 调整图像的大小需要使用 HTML 和 CSS,在 Typora编辑器 中右键可以直接缩放图片
      本质是转成了HTML的格式,最后会有一个 style="zoom: %;" ,这里数值可以自己修改
    • 如果有使用 Obsidian 的朋友,在线图片链接是通用的。不过,因为 Obsidian 是双向链笔记
      它的本地图片格式不太一样
      • ![[图片名]]
        • 本质是为图片建了一个新的MD文件,以链接的格式引用在目标笔记中,用 ! 使它可见
        • Obsidian的图片设置大小是用 | 分隔,后面写宽度数值,单位是px。
          设定好宽度,高度会自动等比例调整
          • ![[图片名|宽度数值]]
      • 如果是在线图床,需要调整图片大小:
        • ![图床|宽度数值](链接地址)

示范

湘湖1|400



6. 表格

  • Markdown的表格,比HTML简单很多
    • | 是构成表格的主要 框架
    • - 区分 表头表格主体
    • : 控制 表格内 文本内容对齐方式
    • **Typora编辑器中 ** 输入 Ctrl + T 即可快速插入表格,自由定义样式
|这里是表头1|这里是表头2|这里是表头3|
|:-|:-:|-:|    <!--区分表头和表格主体,:代表文本对齐方式,分别是左对齐,居中对齐,右对齐-->
|单元格数据1|单元格数据2|单元格数据3|
|单元格数据4|单元格数据5|单元格数据6|

示范

这里是表头1 这里是表头2 这里是表头3
单元格数据1 单元格数据2 单元格数据3
单元格数据4 单元格数据5 单元格数据6

6.1 表格内文本内容的换行

  • Mardown中表格,它的宽高是由 单元格数据内的文本内容 撑开
  • 当我们输入一段很长很长的文本,它所在的单元格会变得过宽

如下图所示:

表头1 表头2
这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长的文本 普通文本
  • 若想对一段长文本进行换行,可以在 中间 插入一个 <br> ( 换行标签 )
| 表头1 |  表头2 |
|:-:|:-:|
|这是第一行文本<br>这是另起一行的文本|普通文本|

示范

表头1 表头2
这是第一行文本
这是另起一行的文本
普通文本



7. 代码域


7.1 行内代码

  • 行内代码 的格式:
    • 输入两个 ` 反撇号 ,在中间写代码内容
  • 补充:
    • 行内代码不一定非得写代码,也可以作为**着重标记**,突出显示内容
    • 行内代码中,源代码界面和渲染界面是完全一致的,标识符会失效
    • 所谓行内代码: 只要你的屏幕足够宽,它就不会换行
`这是一段行内代码`

`<table border="1" cellspacing="0" width="500" height="500">`

`print("Hello, World!")`

`这是一行突出显示的文本内容`

示范

<table border="1" cellspacing="0" width="500" height="500">


print("Hello, World!")


这是一行突出显示的文本内容


7.2 代码块

  • 代码块 的格式:
    1. 在首行和末行各加 三个 ` 反撇号
    • `````** + 语言种类 代码内容 ** `````
    1. 在首行和末行各加 三个 ~ 波浪号
      • ~~~ + 语言种类
        代码内容
        ~~~
  • 补充:
    • 在代码块也不一定要写代码,可以写一段突出的文本内容,语言类型可以填写 txt 或者 干脆不写
    • 代码块中,源代码界面和渲染界面是完全一致的,标识符会失效
    • Typora编辑器 ,用键盘按键脱离代码块区域,需输入: Ctrl + Enter
```语言种类
代码内容
代码内容
代码内容
```

下面是HTML代码块

```html
<table border="1">
    <tr>
        <td>row 1, cell 1</td>
        <td>row 1, cell 2</td>
    </tr>
    <tr>
        <td>row 2, cell 1</td>
        <td>row 2, cell 2</td>
    </tr>
</table>
```

下面是CSS代码块

```css
.box {
	width: 600px;
	height: 400px;
	margin: 100px auto;
	background-image: linear-gradient(black 33.3%,red 33.3%, red 66.6%, yellow 66.6%, yellow);
}	
```

下面是JavaScript代码块

```js
    // 定义一个30个整数的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
    var arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
    var newarr = [];
    for (var i = 0, count = 0, sum = 0, len = arr.length; i < len; i++) {
        sum += arr.shift();
        count++;
        if (count % 5 === 0) {
            newarr.push(sum / 5);
            sum =  0;
        }
    }
    console.log(newarr);

    var arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
    var newarr = [];
    for (var i = 0, len = arr.length; i < len / 5; i++) {
        var subarr = arr.splice(0, 5)
        for (var j = 0, sum = 0; j < subarr.length; j++) {
            sum += subarr[j];
        }
        newarr.push(sum / 5);
    }
    console.log(newarr);
```


下面是Python代码块

```python
#!/usr/bin/python
# -*- coding: UTF-8 -*-

i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print i, " 是素数"
   i = i + 1
 
print "Good bye!"
```

下面是一块突出显示的文本

```txt
这是一段
突出显示的
文本内容
```

示范

<table border="1">
    <tr>
        <td>row 1, cell 1</td>
        <td>row 1, cell 2</td>
    </tr>
    <tr>
        <td>row 2, cell 1</td>
        <td>row 2, cell 2</td>
    </tr>
</table>
.box {
	width: 600px;
	height: 400px;
	margin: 100px auto;
	background-image: linear-gradient(black 33.3%, red 33.3%, red 66.6%, yellow 66.6%, yellow);
}	
    // 定义一个30个整数的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程
    var arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
    var newarr = [];
    for (var i = 0, count = 0, sum = 0, len = arr.length; i < len; i++) {
        sum += arr.shift();
        count++;
        if (count % 5 === 0) {
            newarr.push(sum / 5);
            sum =  0;
        }
    }
    console.log(newarr);

    var arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60]
    var newarr = [];
    for (var i = 0, len = arr.length; i < len / 5; i++) {
        var subarr = arr.splice(0, 5)
        for (var j = 0, sum = 0; j < subarr.length; j++) {
            sum += subarr[j];
        }
        newarr.push(sum / 5);
    }
    console.log(newarr);
#!/usr/bin/python
# -*- coding: UTF-8 -*-

i = 2
while(i < 100):
   j = 2
   while(j <= (i/j)):
      if not(i%j): break
      j = j + 1
   if (j > i/j) : print i, " 是素数"
   i = i + 1
 
print "Good bye!"
这是一段
突出显示的
文本内容

7.2.1 代码块的嵌套


格式:

  • 使用4` 包裹 3`
示范
````txt
```js
// 3. 输出 100以内(不包括100) 所有偶数的和
// 这类求和问题的核心 : 利用循环  (总和 = 旧数的和 + 新数)

var sum = 0;

for (var i = 1, sum = 0; i < 100; i++) {
 if (i % 2 == 0) {
 // 筛选偶数
 sum += i; // sum = sum + i // 累加偶数并赋值给sum
 // sum为(旧的,已经进入循环的数)的和,i 为新进入循环的数。当加到(最后一个新数i)时,sum就是最后的 总和
 }
}

console.log(sum); // 打印总和
```
````

如果要再套一层,就在最外层 加 5` ,以此类推……



8. 任务列表(待办)

  • 任务列表 的格式:

    • - + 空格 +[ ] +空格 + 任务列表内容 ( 中括号[ ] 里面必须有个空格)
    • 给待办任务列表打 ,变成 已办
      1. 在渲染界面,直接鼠标左键点击框框
      2. 在源代码界面,在中括号内输入 英文字母x
        • 部分编辑器,在 中括号内 输入任意字符都可以打 ( 例如 Obsidian )
  • 补充:

    • 大部分 MD编辑器 支持输入第一个任务列表后,按下 Enter 进入下一行会 自动补全待办格式
    • Obsidian中,连续输入两次 Ctrl + Enter ,即可生成一个待办列表
      • 再输入一次 Ctrl + Enter ,会在待办列表 打
  • 格式:

- [ ] 待办任务列表1
- [ ] 待办任务列表2
- [x] 已办任务列表1    <!-- 英文字母X -->
- [x] 已办任务列表2

示范

  • 待办任务列表1
  • 待办任务列表2
  • 已办任务列表1
  • 已办任务列表2

  • Obsidian 中,可以利用 Ctrl + Enter ,快速生成任务列表
    1. - + 空格 + Ctrl + Enter +待办文本内容
    2. 待办文本内容 + Ctrl + Enter ×2   ( 输入文本后,连续2次 Ctrl + enter )

  • 任务列表也是可以缩进+退格的,操作跟 无序、有序列表一样

示范

  • 第一级待办列表1
    • 第二级待办列表1
      另起一行的第二级待办列表1
      • 第三级已办列表1
      • 第三级已办列表2
    • 第二级待办列表2
      另起一行的第二级待办列表2
  • 第一级待办列表2



9. 注释

Markdown注释HMTL 一样,注释的内容在 渲染界面 不可见 (部分编辑器可见)

  • 注释 的格式:
    • <!-- 这里是注释的内容 -->
      • 注释可以是单行,也可以是多行
    • 如果有在使用 Obsidian 的,它的注释格式是不一样的
      • %%这是Obsidian的注释内容%%
<!-- 这里是一行注释 -->

<!--
这里是
一段
假装有
很多行的
注释
-->

%%这是一行Obsidian里的注释%%

%%
这里是
一段
假装有
很多行的
Obsidian里的
注释
%%

示范 (只有切换至 编辑模式 才能看到喔)

%%这是一行Obsidian里的注释%%

%%
这里是
一段
假装有
很多行的
Obsidian里的
注释
%%



10. 变量


10.1 网页链接变量

  • 网页链接变量 的格式:
    1. 首先输入
      • [显示文本内容] + [变量名]
        • 变量名可以自己取,没啥限制,任意字符都可以
    2. 在文档任意一个区域,输入:
      • [变量名] + : + 空格 + 链接地址 (这个**空格** 不打也没事)
[百度一下,你就知道][度娘]
[知乎-有问题,就会有答案][知乎]

<!-- 这里是变量区域 -->
[度娘]: http://www.baidu.com 
[知乎]: https://www.zhihu.com    

示范

百度一下,你就知道

知乎-有问题,就会有答案


10.2 脚注

  • 脚注 的格式:
    • 在需要脚注的地方,输入:
      • [^脚注代号] ( 脚注代号会直接显示在渲染界面 )
        • 脚注代号可以随便命名,不过推荐使用 数字序号
    • 在其他区域,输入:
      • [^脚注代号] + : + 空格 + 脚注内容 (这个 空格 不打也没事)
鲁迅原名是什么[^1] ,浙江哪里人[^2]

<!-- 这里是变量区域 -->
[^1]: 周树人
[^2]: 绍兴人

示范

鲁迅原名是什么1,浙江哪里人2



11. 拓展文本格式标记

  • Markdown 想实现更多的文本显示效果,只能依赖HTML标记实现
  • 个人不是很推荐在 MD 中使用 HTML,不过一些简单的标记还是可以 轻度使用

11.1 键盘文本

  • 键盘文本的 格式:

    • <kbd>键盘文本</kbd>
    • <kbd>Ctrl</kbd> + <kbd>X</kbd>
  • 效果:

    • 键盘文本
    • Ctrl + X ( 剪切 )
  • 说明:

    • 键盘文本也不一定非得是键盘按键,也可以作为着重文本突出显示
      • 效果: 这也算一种着重文本的方式

11.1.1 加粗键盘文本

  • 加粗键盘文本的格式有两种

    • <kbd>**键盘文本**</kbd>
    • **<kbd>ctrl + x</kbd>**
  • 效果:

    1. 键盘文本
    2. ctrl + x

11.2 放大文本

  • 放大文本 的格式:

    • 这是一段普通文本
      <big>这是一段放大文本</big>
  • 效果:

    • 这是一段普通文本
      这是一段放大文本

11.2.1 放大粗体文本

  • 放大加粗文本的格式有两种
    1. **<big>这是一段放大粗体文本</big>**
    2. <big>**这是一段放大粗体文本**</big>
  • 效果:
    1. 这是一段放大粗体文本
    2. 这是一段放大粗体文本

11.3 缩小文本

  • 缩小文本 的格式:
    • 这是一段普通文本
      <small>这是一段缩小文本</small>
  • 效果:
    • 这是一段普通文本
      这是一段缩小文本

11.3.1 缩小斜体文本

  • 斜体缩小文本 的格式有两种
    1. <small>*这是一段缩小斜体文本*</small>
    2. *<small>这是一段缩小斜体文本</small>*
  • 效果:
    1. 这是一段缩小斜体文本
    2. 这是一段缩小斜体文本

11.4 多彩文本

  • 多彩文本 的格式:
    • <font color=orange>这是一段橘色文本</font>
  • 效果:
    • 这是一段橘色文本

11.4.1 多彩粗体文本

  • 只需要在上面示例的基础上,加上 加粗标识符,有两种格式:
    1. 格式1: **<font color=teal>这是一段加粗的水鸭色文本</font>**
      • 效果: 这是一段加粗的水鸭色文本
    2. 格式2: <font color=teal>**这是一段加粗的水鸭色文本**</font>
      • 效果: 这是一段加粗的水鸭色文本
  • 若上述混搭方法的样式失效 ,可以使用 纯HTML标记
    • 格式: <strong style="color:teal;">这是一段加粗的水鸭色文本</strong> (标记略复杂,不是很推荐)
    • 效果: 这是一段加粗的水鸭色文本

11.4.2 多彩斜体文本

  • 跟多彩加粗文本完全一样,只需把首尾的 ** 换成 * 即可
  1. 格式1: *<font color=teal>This is an italic teal text</font>*
    • 效果: This is an italic teal text
  2. 格式2: <font color=teal>*This is an italic teal text*</font>
    • 效果: This is an italic teal text

11.4.2 多彩粗斜体文本

  • 首尾换成 ***
  1. 格式1: ***<font color=teal>This is a bold italic teal text</font>***
    • 效果: This is a bold italic teal text
  2. 格式2: <font color=teal>***This is a bold italic teal text***</font>
    • 效果: This is a bold italic teal text

#注意 多彩文本尽量慎用,Markdown 的核心就是 简洁精炼,注重 实质内容,而非花哨的 颜色样式



12. 拓展文本显示效果

  • 拓展显示效果既不是原生 Markdown语法 支持的,也非 HTML标记,而是部分编辑器 提供的 额外标识符,属于拓展语法,旨在为 Markdown使用者 提供更多样式选择
  • 不同编辑器,支持不一样,这里以 Typora编辑器 为例

12.1 文本高亮

  • 文本高亮 的格式:
    • ==这里是一段高亮文本==
  • 效果:
    • 这里是一段高亮文本

12.2 上标

  • 用一对 ^ 包裹 (Shift+ 6)
    • 格式: x^2^
    • 效果: x2
  • Obsidian 没效果的,可以用后面会讲的 Latex
  • 或者,也可以使用 HTML标记
    • <sup>这里是上标内容</sup>
    • X<sup>2</sup>
  • 效果:
    • X2

12.3 下标

  • 用一对 ~ 包裹 (Shift + `)
    • 格式: H~2~O
    • 效果: H2O
  • Obsidian 没效果的,可以用后面会讲的 Latex
  • 或者,也可以使用 HTML标记
    • <sub>这里是下标内容</sub>
    • H<sub>2</sub>O
  • 效果:
    • H2O

12.4 Emoji 符号

用一对 : 包裹,里面是 Emoji 符号的 语义化文本 ( Typora编辑器 中,输入 : 就会带提示器 )

  • 示例:
    • :smile:
      :sweat:
      :cat:
      :woman_cartwheeling:
  • 效果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MarkDown超级教程 Obsidian版_11.4 的相关文章

  • 手机未来发展的趋势与挑战

    随着科技的飞速发展 手机已经成为我们生活中不可或缺的一部分 然而 随着5G 人工智能等新技术的不断涌现 手机的未来发展面临着前所未有的机遇和挑战 本文将探讨手机未来发展的趋势与挑战 一 手机未来发展的趋势 5G技术的普及 随着5G技术的不断
  • Camtasia2024中文绿色版本下载安装详细步骤教程

    Camtasia2024是一款功能强大的屏幕录制和视频编辑软件 它可以帮助用户轻松地记录电脑屏幕上的任何操作 并可以将录制的视频进行编辑和制作成高质量的视频教程 演示文稿 培训课程等 Camtasia具有直观的界面和易于使用的工具 包括添加
  • 研发实验室建设

    研发实验室是科技创新的核心场所 对于企业的技术研发和产品创新具有重要意义 为了提高研发实验室的效率和质量 建设一个符合要求的实验室是至关重要的 SICOLAB喜格 将介绍研发实验室建设的关键要素和注意事项 一 实验室规划与布局 1 空间规划
  • 阿里巴巴大神发布的Java零基础笔记,实战教程多到手软,跪了

    前言 现值金九银十之际 是面试高峰季 很多学校开始校招 也是跳槽转行的最佳时机 根据数据显示 程序员是金九银十里最热门的行业 也是需求量最大的行业 但是程序员是个门槛低 但金字塔顶峰比较高的行业 意味着你的付出要比别人多才能拔尖 我们都知道
  • 半导体洁净车间洁净区装修要点

    随着科技的飞速发展 半导体行业作为电子产业的核心领域 其生产环境的洁净度要求越来越高 半导体洁净车间的装修设计不仅关乎产品的质量和性能 还直接影响到生产效率和成本控制 因此 S ICOLAB喜格 在洁净区装修过程中 必须遵循一系列严格的要点
  • 【OpenCV学习笔记02】- 图像入门

    内容 这里介绍了图像处理的入门操作 你将学习如何读取图像 如何显示图像以及如何将其保存回去 你将学习以下功能 cv imread cv imshow cv imwrite 简单使用OpenCV 读取图像 使用 cv imread 函数读取图
  • 2020年认证杯SPSSPRO杯数学建模C题(第二阶段)抗击疫情,我们能做什么全过程文档及程序

    2020年认证杯SPSSPRO杯数学建模 C题 抗击疫情 我们能做什么 原题再现 2020 年 3 月 12 日 世界卫生组织 WHO 宣布 席卷全球的冠状病毒引发的病毒性肺炎 COVID 19 是一种大流行病 世卫组织上一次宣布大流行是在
  • 2020年认证杯SPSSPRO杯数学建模D题(第二阶段)让电脑桌面飞起来全过程文档及程序

    2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现 对于一些必须每天使用电脑工作的白领来说 电脑桌面有着非常特殊的意义 通常一些频繁使用或者比较重要的图标会一直保留在桌面上 但是随着时间的推移 桌面上的图标会越来越多
  • 魏副业而战:小红书AI漫画副业项目

    我是魏哥 与其躺平 不如魏副业而战 今天魏哥给大家分享一个小红书AI漫画副业项目 大家都知道小红书上用户80 以上都是女性 而我们今天的项目主要利用AI生成的漫画宝宝图片来吸引宝妈用户 这个项目操作简单 适合宝妈 或有空闲时间的小伙伴 我们
  • 这些专利知识你知道吗?

    专利作为一种重要的知识产权保护形式 专利不仅成为了企业核心竞争力的重要组成部分 也成为了国家创新发展的重要支撑 专利是指国家专利主管机关授予发明创造申请人的一种专有权 这种专有权具有独占性 排他性和法律强制性 能够为持有者带来经济利益和竞争
  • 基于电源完整性的PCB设计原则

    基于电源完整性的一些PCB设计建议 1 尽量减少电源和地通路之间的环路电感 在相邻的层上分配电源和接地面时 使用尽可能薄的电介质 2 通过在平面之间使用尽可能高的介电常数来获得平面之间的最低阻抗 与尽可能薄的介电常数设计保持一致 3 使用尽
  • 怎么把视频压缩变小?节约空间的工具推荐

    nbsp 我平时逛街的时候 看见有趣的事情就忍不住会用视频的方式记录下来 有时候还会拍给朋友看 但是 这些视频占据大量的存储空间 给我的手机带来不小的压力 所以有时候 为了方便分享或传输 我就会将视频文件压缩 以便更轻松地将其发送给朋友或发
  • 电脑操作系统的发展史:从初级到高级的演变

    自电脑诞生以来 操作系统作为其重要组成部分 不断推动着电脑技术的进步与发展 本文将带您回顾电脑操作系统的发展历程 探究其在不同阶段的特点与影响 一 早期操作系统 真空管与批处理 在电脑诞生初期 真空管技术占主导地位 此时的操作系统尚未形成完
  • 图片编辑软件有哪些好用的?这几款快收藏吧

    你有没有过这样的经历 精心拍摄了一组照片 却发现有些角度不对 光线不够好 或者想要给图片加上一些特别的滤镜效果来达到心目中的样子 这时 你就需要一款合适的图片编辑软件了 但是 市面上的图片编辑软件琳琅满目 哪一款才是适合自己的呢 别担心 今
  • 语音翻译软件app哪家好?帮你和外国人无碍交流的软件分享

    在和外国人交流的时候发现听不懂怎么办 还能怎么办 谁让我们的英语没学好呢 这种时候还是得寻求其他人的帮助 不过万一要是在只有你一个人的情况下又怎么办呢 俗话说 求人不如求己 那还是得在自己手机里时刻准备好能够翻译英语的工具呀 今天就给大家分
  • 哪里有视频压缩软件免费版在线使用?轻松压缩视频大小

    作为一个文件管理员 我常常需要处理大量的视频文件 有时候 视频文件过大给传输 存储带来了诸多不便 遇到这种情况 很多人就会选择使用视频压缩软件来减小文件大小 不过一些小伙伴不清楚视频压缩软件app 电脑软件 网页有哪些 接下来我们将从功能
  • 有效降低信号串扰的PCB设计原则

    降低信号串扰的一些PCB设计建议 1 对于传输线 保持相邻信号线之间的间距至少为两倍信号线宽 2 尽量避免信号跨越返回路径中的不连续点或者空隙 3 如果必须在返回路径中跨越空隙 则尽量使用差分线 4 电容器不是一种低阻抗互连结构 其高频阻抗
  • 你知道修图软件手机端的哪些比较好用吗?分享我的爱用工具

    你是否经常在朋友圈看到朋友晒出的照片 美得如同画中景 让人惊叹不已 你是否也曾羡慕过那些轻松将普通照片变成艺术大片的摄影高手 其实 他们背后的 魔法 大多都来自于使用p图软件给图片进行美化 今天 就让我们一起来探讨一下 p图软件哪个好用免费
  • 如何正确下载激活NTFS for Mac2024最新版本?

    对于产品来说 更新换代是常有的事 很多软件在用户使用过后 会根据用户的使用需求以及一些客观需求 将软件进行改进 这样一个新的版本的软件就会出现 用户需要将软件进行更新才能享受最新的功能 使用更加完善的软件 所以我们一定要学会如何将软件进行更
  • ESM10A 消除对单独 PLC 的需求

    ESM10A 消除对单独 PLC 的需求 ESM10A 可以消除对单独 PLC 的需求 该程序是在 PC 上开发的 然后使用免费提供的简单易用的 EzSQ 软件下载到逆变器 似乎这些改进还不够 日立还在 SJ700 中添加了其他新功能 例如

随机推荐

  • Java Web-servlet技术-通过表单向servlet提交数据

    通过表单向servlet提交数据 1 创建名为ComputeBill的servlet文件 2 重写init 和service package myservlet import java io IOException import java
  • 游戏服务器维护请更换服务器,更换游戏服务器

    更换游戏服务器 内容精选 换一换 支持 您可以先将弹性公网IP从原弹性云服务器解绑 如何解绑请参考解绑定和释放弹性公网IP 再将弹性公网IP绑定到目标弹性云服务器 如何绑定请参考绑定云资源 相关操作 为弹性云服务器更换绑定的弹性公网IP 请
  • Tomcat官网地址

    Tomcat官网地址 https tomcat apache org https tomcat apache org
  • 《再也不怕elasticsearch》es聚合使用与原理剖析

    大家好我是迷途 一个在互联网行业 摸爬滚打的学子 热爱学习 热爱代码 热爱技术 热爱互联网的一切 再也不怕elasticsearch系列 帅途会慢慢由浅入深 为大家剖析一遍 各位大佬请放心 虽然这个系列帅途有时候更新的有点慢 但是绝对不会烂
  • 去除 Zotero + Obsidian 复制粘贴参考文献表时的多余空行(ctrl+shift+C)

    前言 最近在用 Zotero 做文献管理 用 Obsidian 记笔记 但是使用的时候 有一个问题不大 但是有时候很烦人的情况 粘贴参考文献格式 在粘贴的时候总会莫名多出来几个空行 需要手动删除 举个例子 下面是某个文献库 我希望将第一篇文
  • 广告营销用户点击预测分析

    广告营销用户点击预测分析 零 数据集以及数据集简介以及任务分析 一 数据预处理 1 加载检查数据 1 特殊特征 2 特殊特征的处理 3 特殊特征处理后生成的新特征 2 数据类型与缺失值处理 1 查看数据信息 2 数据补全以及类型转换 3 补
  • 为什么 Thread 类的 sleep() 和 yield () 方法是静态方法?(详解)

    首先明确一点 在一个线程拿到锁的时候 其他线程向拿到锁就必须要等待 author FanQie date 2022 7 30 10 43 public class SleepYield private static Object resou
  • docker 运行pytorch 程序报错---ERROR: Unexpected bus error encountered in worker.

    1 错误 ERROR Unexpected bus error encountered in worker This might be caused by insufficient shared memory shm 2 原因 Pytorc
  • springboot项目部署云服务器,SpringBoot项目的云服务器部署

    1 场景还原 springboot配置相当简单 人人皆知 怎么把springboot工程部署到云服务器上呢 可能有人会说 博主你前篇不是讲了java工程的云部署把 但是我想澄清一点的是 我前篇的工程都是ssm框架搭建的 而springboo
  • 20个免费视频素材平台推荐

    视频剪辑大神的视频素材是从哪里找的 视频素材不知道去哪里找 那可以看看本文 本文总结了素材的方方面面 包括图片 图标以及视频音频的素材网站整理 再也无需为视频素材烦恼 1 新CG儿 一个特别良心的素材网站 模板和视频都非常丰富 重要的是基本
  • 蓝桥杯精选赛题算法系列——迷宫——DFS

    已收录此专栏 今天我们会全面学习 DFS 的相关知识 包括理论 模板 真题等 深度优先搜索 DFS Depth First Search 和宽度优先搜索 BFS Breadth First Search 或称为广度优先搜索 是基本的暴力技术
  • Apache Flink不止于计算,数仓架构或兴起新一轮变革

    2021 年初 在 InfoQ 编辑部策划的全年技术趋势展望中 我们提到大数据领域将加速拥抱 融合 或 一体化 演进的新方向 本质是为了降低大数据分析的技术复杂度和成本 同时满足对性能和易用性的更高要求 如今 我们看到流行的流处理引擎 Ap
  • electron globalShortcut 快捷键与系统全局快捷键冲突

    用 electron 开发自己的接口测试工具 Post Tools 在设置了 globalShortcut 快捷键后 发现应用中的快捷键与系统全局快捷键冲突了 导致系统快捷键不可正常使用 快捷键配置 export function init
  • GTest学习笔记(七)

    参考博客 Advanced googletest Topics GoogleTest 前言 参数化测试允许对代码进行多种输入的测试 而不需要复制很多相同的代码 本文主要介绍GTest的参数化测试的适用环境 编写方式以及参数化的抽象测试 1
  • 架构设计之道【精】

    一 本质 在了解架构本质之前先了解下架构的定义 百度百科对架构的定义 架构又名软件架构 是有关软件整体结构与组件的抽象描述 用于指导大型软件系统各个方面的设计 从定义中我们提炼出几个关键字 组件 结构 关系 组件 也可以称为软件元素或者是架
  • vscode 扩展开发从入门到颈椎病康复

    笔者从业以来 各路插件开发无算 而 vscode 把插件开发体验做到了极致 其开发体验 如沐春风 如丝般顺滑 经常写完了还想删掉再写一遍 vscode 扩展的内置脚手架细心且精致 一键生成后即可运行 vscode 库类型完美 因此开发者可以
  • Sentinel + Gateway网关动态限流

    Sentinel 控制台 0 概述 Sentinel 控制台是流量控制 熔断降级规则统一配置和管理的入口 它为用户提供了机器自发现 簇点链路自发现 监控 规则配置等功能 在 Sentinel 控制台上 我们可以配置规则并实时查看流量控制效果
  • python爬虫要用到的库_Python写爬虫都用到什么库

    Python爬虫 全称Python网络爬虫 是一种按照一定的规则 自动地抓取万维网信息的程序或脚本 主要用于抓取证券交易数据 天气数据 网站用户数据和图片数据等 Python为支持网络爬虫正常功能实现 内置了大量的库 主要有几种类型 下面本
  • 音频处理-2 WAV格式

    后续要将流量中的音频数据转为WAV格式文件 所以本节重点说下WAV格式 WAV文件是在PC机平台上很常见的 最经典的多媒体音频文件 最早于1991年8月出现在Windows 3 1操作系统上 文件扩展名为WAV 是WaveFom的简写 也称
  • MarkDown超级教程 Obsidian版_11.4

    date 2021 11 3 18 01 aliases Markdown教程 MD教程 tags Markdown 什么是 Markdown Markdown 是一款轻量级标记语言 不同于HTML Hypertext Markup Lan