热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Markdown】高级应用技巧与实践

注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基

注:写博客或者项目的 README 文档经常用到 markdown 语法,所以markdown的语法做了一个总结,本文是基于 【markdown】基本语法的进阶语法。


markdown高阶语法

    • 一、内容目录
      • vscode 使用 TOC
    • 二、加强代码块
    • 三、标签和分类
    • 四、待办事宜 Todo
    • 五、流程图和时序图
      • 1、流程图(flowchat)
        • 1.1 基本语句:
        • 1.2 操作块
        • 1.3 操作模块详细说明
        • 1.4 流程控制
        • 1.5 FLOWCHAT示例
      • 2、时序图(sequence)
        • 2.1 示例
        • 2.2 流程控制
        • 2.3 成员定义和别名
    • 六、公式
      • 行内公式 $
      • 整行公式 $$
      • LaTex的公式规则
        • 转义
        • 希腊字母表
        • 上下标和根号
        • 分数
        • 运算符


一、内容目录

使用[TOC]引用目录,各种编辑器对[toc]的支持不一样,需通过插件支持。

例如本文目录:

@[toc](markdown高阶语法)
## 内容目录
### vscode 使用 TOC
## 我是标题2

在文章你想生成目录的地方使用 [toc]@[TOC](目录标题) 来生成目录。目录效果见文章上部目录。


vscode 使用 TOC

使用 ctrl + shift + x 打开应用商店,搜索拓展插件 Markdown TOC,点击下载。点击鼠标右键,发现选项栏里多了四个markdown相关的选项,点击 Markdown TOC:Insert/Update生成目录。

二、加强代码块

在基础用法里提过代码块的使用是```来包裹内容实现,加强代码块是在其基础上加上语言名称进行标记。

  • Javascript 为例:

/** @params: n > 0* @ a Javascript factorial function;*/
function factorial(n) {if (n === 1) return 1;return n * factorial(n - 1);
}

/** @params: n > 0* @ a Javascript factorial function;*/
function factorial(n) {if (n === 1) return 1;return n * factorial(n - 1);
}

注:

由上面示例可见,利用```只是简单生成一个代码块, 用加强代码块+语言类型```js 或者 ```Javascript 标注后,就可以实现代码高亮显示。

三、标签和分类

一般在文首输入tags添加标签,categories添加分类:

tags: - Markdown- 语言categories:- 技术

四、待办事宜 Todo

使用带有 [ ] 或 [x] (未完成或已完成)项的列表语法撰写一个待办事宜列表例如:

  • 早起晨跑
  • 吃早餐
  • 上班

五、流程图和时序图


1、流程图(flowchat)


1.1 基本语句:

tag=>type: content:>url

  • tag 就是元素名称。
  • type是这个元素的类型,有下面类型,分别为:
    1. 开始(椭圆形):start
    2. 结束(椭圆形):end
    3. 操作(矩形):operation
    4. 条件判断(菱形):condition
    5. 输入输出(平行四边形):inputoutput
    6. 预处理/子程序(圣旨形):subroutine

1.2 操作块

st=>start: 开始1. st 是变量名,类似php中数组索引,可以用英文,别定义的太离谱就行,如op_this,cond_echo
2. start 操作模块名,像数据类型 Int String,如:开始,结束,判断。命名严格,区别大小写。
3. 后面是要显示的文字

注意:冒号后要加空格


1.3 操作模块详细说明

1. #开始 startst=>start: 开始2. #结束 starten=>end: 结束3. #普通操作快 operationop1=>operation: 操作1op2=>operation: 操作24. #判断块 condition
cond1=>condition: 第一个判断
cond2=>condition: 第二个判断5. #输入输出块 inputoutput
io1=>inputoutput: 输入输出块1
io2=>inputoutput: 输入输出块26. #子任务块
sub1=>subroutine: 子任务1
sub2=>subroutine: 子任务2

1.4 流程控制

1. 流程控制-> 作为控制流程的操作符,就是指向下一步要操作的# st->op->e// 也可以分开写st->opop->e
2. 判断控制cond(yes)->op // yes 的时候回到 opcond(no)-e // no的时候结束cond(yes)->op(right) // 控制 op 位置于右边,也可以写成cond(yes, right)->op

1.5 FLOWCHAT示例

```mermaid
flowchat
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op



Created with Raphaël 2.3.0开始框处理框

判断框(是或否?)

输入输出框结束框子流程

yes

no



2、时序图(sequence)


2.1 示例

```mermaid
sequenceDiagram
对象A->>对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->>对象A: 我很好(响应)
对象A->>对象B: 你真的好吗?

对象A对象B

对象B你好吗?(请求)对象B的描述对象A的描述(提示)我很好(响应)你真的好吗?对象A对象B


2.2 流程控制

"-" 表示实线
"--" 表示虚线
">" 表示黑体箭头
">>" 表示空心箭头

2.3 成员定义和别名

使用 participant 可定义成员,使用as 可以为成员定义别名。

title:成员定义
participant Client // 定义一个名叫client的成员
participant clinet as cl // 定义一个名叫client的成员别名(简称)cl

六、公式

当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 LaTeX 格式的数学公式来实现。

行内公式 $

质能守恒方程:$E = mc^2$ 表达

质能守恒方程:E=mc2E = mc^2E=mc2 表达


整行公式 $$

$$ c = \sqrt{a^{2}+b_{xy}^{2} +e^{x}} $$

c=a2+bxy2+exc = \sqrt{a^{2}+b_{xy}^{2} +e^{x}} c=a2+bxy2+ex

LaTex的公式规则


转义

以下几个字符:# $ % & ~ _ ^ \ { }有特殊意义,需要表示这些字符时,需要转义,即在每个字符前加上\
\boxed 命令给公式加一个方框。

E=mc2\boxed{E=mc^2}E=mc2

希腊字母表

希腊字母表

上下标和根号


^ 来表示上标
_ 来表示下标
\sqrt 表示根号
注意:上下标如果多余一个字符或符号,需要用{}括起来。 \sqrt[开方次数,默认为2

$$\sqrt{x} \quad \sqrt[3]{y}$$

xy3\sqrt{x} \quad \sqrt[3]{y}x

3y


其中\quad表示添加空格

分数

分数用\frac表示
字号工具环境设置:
\dfrac命令把字号设置为独立公式中的大小;
\tfrac则把字号设置为行间公式中的大小。

$ \frac{1}{2} \dfrac{1}{2} $

1212\frac{1}{2} \dfrac{1}{2}2121

$$ \frac{1}{2} \tfrac{1}{2} $$

1212\frac{1}{2} \tfrac{1}{2} 2121

运算符


  • + - * / =直接输入;
  • 特殊运算则用以下特殊命令\pm; \times; \div; \cdot; \cap; \cup; \geq; \leq; \neq; \approx; \equiv
  • 和、积、极限、积分等运算符用\sum, \prod, \lim, \int,这些公式在行内公式被压缩,以适应行高,可以通过\limits和\nolimits命令显示制动是否压缩


推荐阅读
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文介绍如何在 Visual Studio Code 中使用 Jupyter Notebook 插件,包括创建、编辑和运行笔记本的基本操作。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 编写了几个500行左右代码的程序,但基本上解决问题还是面向过程的思维,如何从问题中抽象出类,形成类的划分和设计,从而用面向对象的思维解决问题?有这方面的入门好书吗?最好是结合几个具体的案例分析的 ... [详细]
  • 微信小程序:授权登录与手机号绑定
    本文详细介绍了微信小程序中用户授权登录及绑定手机号的流程,结合官方指引和实际开发经验,提供了一套完整的实现方案,帮助开发者更好地理解和应用。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 应用场景在开发中,我们经常需要把一些随时可能变化的属性配置到配置文件中,这样耦合性低,方便维护。SpringBoot在这方面为我们提供了很大的便捷,我们可以很轻易的将propert ... [详细]
  • Java WebSocket 实时通信服务端实现
    本文介绍了一个基于Java的WebSocket实时通信服务端代码示例,包括客户端连接管理、消息接收与分发等功能。 ... [详细]
author-avatar
纪志鹏大利集客_776
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有