当前位置 : 首页 » 文章分类 :  开发  »  Markdown 语法简介

Markdown 语法简介

Markdown 语法简介
Markdown 发明者 Daring Fireball 的 Markdown 介绍
https://daringfireball.net/projects/markdown/


Java Markdown 解析器

commonmark-java

commonmark / commonmark-java
https://github.com/commonmark/commonmark-java

<dependency>
    <groupId>org.commonmark</groupId>
    <artifactId>commonmark</artifactId>
    <version>0.20.0</version>
</dependency>

https://blog.csdn.net/qq_41609208/article/details/106824386


flexmark-java

https://github.com/vsch/flexmark-java

HTML 转 Markdown

@Test
public void testHtmlToMarkdown() {
    String html = """
                    <h1>MarkDown h1示例</h1>
                    <h3>Header 3</h3>
                    <h3 id="h3">带id的h标题转Markdown会有{#id}
                        
                    

This is a blockquote.

> This is the second paragraph in the blockquote.

This is an H2 in a blockquote

"""; MutableDataSet options = new MutableDataSet(); FlexmarkHtmlConverter converter = FlexmarkHtmlConverter.builder(options).build(); String markdown = converter.convert(html); log.info("markdown:\n {}", markdown); } ``` 结果: ```md MarkDown h1示例 ============= ### Header 3 ### 带id的h标题转Markdown会有{#id} {#h3} > This is a blockquote. > > \> This is the second paragraph in the blockquote. > > This is an H2 in a blockquote > ----------------------------- > ``` 有两个问题: 1、`

MarkDown h1示例

` 转 Markdown 结果是: ``` MarkDown h1示例 ============= ``` 和我以为的 Markdown 一级标题格式 `# MarkDown h1示例` 不一样,但查了下,文本下加 `====` 本身也是 Markdown 一级标题的一种格式,没有问题。 并且,后续如果使用 commonmark-java 解析 Markdown 文本,也是能成功解析此一级标题的。 2、`

带id的h标题转Markdown会有{#id}

` 转 Markdown 结果是: ``` ### 带id的h标题转Markdown会有{#id} {#h3} ``` 最后有个 {} 括起来的锚点,不想要这个 -------------------------------------------------------------------------------- # js markdown 解析器 比较了一下 marked, markdown-it, showdown,感觉还是 marked 用的最多也最好 markdown-it vs marked vs showdown - npm trends https://www.npmtrends.com/markdown-it-vs-marked-vs-showdown ## marked markedjs / marked https://github.com/markedjs/marked 官网 https://marked.js.org/ marked 官方的即时渲染工具 https://marked.js.org/demo/ marked.js 换行: - options break:false,默认,软换行,即 空格+空格+回车 才换行。这是符合原始 Markdown 对换行的要求的 https://daringfireball.net/projects/markdown/syntax#p - options break:true,单个回车即可换行 后端返回的json Markdown 字符串中的 \n 如何被识别为 Markdown 换行 1、处理 Markdown 文本,用 `
` 替换 \n 2、一个 \n 替换为 \n\n 3、一个 \n 替换为 空格空格\n ### marked 实时渲染 markdown 文档为 html 1、 `jquery.get()` 请求当前域下同级的 `markdown.md` markdown 文档 2、 使用 marked 实时渲染为 html ```html Marked in the browser
``` 本站点的评论内容使用了 marked 渲染,所以评论是支持 markdown 格式的. ### Uncaught TypeError: marked is not a function marked 某个版本后,渲染方法从 marked 改为 marked.parse,如果代码没来得及改,但 marked 是从 https://cdn.jsdelivr.net/npm/marked/marked.min.js 引的新版,可能就会报这个错,改了就好。 ## markdown-it markdown-it / markdown-it https://github.com/markdown-it/markdown-it demo 页 https://markdown-it.github.io/ ## showdown showdownjs / showdown https://github.com/showdownjs/showdown ------------------------------------------------------------------------------------------------------------ # 我是一级标题 我是一级标题的另一种格式 ============= ## 我是二级标题 我是二级标题的另一种格式 -------------------- ### 我是三级标题 #### 我是四级标题 ##### 我是五级标题 ###### 我是六级标题 ``` # 我是一级标题 我是一级标题的另一种格式 ============= ## 我是二级标题 我是二级标题的另一种格式 -------------------- ### 我是三级标题 #### 我是四级标题 ##### 我是五级标题 ###### 我是六级标题 ``` ------------------------------------------------------------------------------------------------------------ # 基本语法 ## Markdown简介 - 一种纯文本标记语言,轻量级 - 专注于写作,简单书写,丰富呈现 ## 引用 `>`开始一段引用 > 这是被引用的一个段落 你是干什么工作的? - 我专门杀僵尸 - 但是僵尸根本不存在啊 - 你见过哪怕一只吗? - 没见过 - 那你觉得他们是被谁干掉的? ## 代码区块 - 要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,码区块会一直持续到没有缩进的那一行(或是文件结尾) - 行内小段代码用反引号(和波浪线同一键下面的)引住`printf` - 三个半角反引号后加语言类型加回车,最后再以三个半角反引号加回车结束,可嵌入指定语言代码(经常不好用),例如: ```cpp #include ``` - 支持的语言类型 https://github.com/github/linguist/blob/master/lib/linguist/languages.yml ## 强制分页 使用 css 的 page-break-after 属性设置分页符,page-break-after 用于在指定元素后面插入分页符。 在想要分页的地方插入一个指定了强制分页的 div 即可。 ```
``` ## 列表 - 无序列表使用星号`*`、加号`+`或是减号`-`后跟一空格作为列表标记 - 无序列表1 - 无序列表2 - 无序列表3 - 有序列表则使用数字接着一个英文句点后跟一空格,列表标记上的数字与最终输出无关 1. 有序列表 2. 有序列表 3. 有序列表 ### 多级列表 - 一级列表 - 二级列表 - 三级列表 - 三级列表 - 四级列表 - 四级列表 - 二级列表 - 二级列表 注:为知笔记中多级列表只支持2层,在标记符前多加一个空格即可成为二级列表 ------------------------------------------------------------------------------------------------------------ ## html实现文本居中 ```
用于人体检测的方向梯度直方图
Navneet Dalal,Bill Triggs
```
用于人体检测的方向梯度直方图
Navneet Dalal,Bill Triggs
-------------------------------------------------------------------------------- ## 链接 ### 行内链接 链接语法为`[链接文字](地址 "提示语")`,例如: `这是个[链接](masikkk.com "提示语")`: 这是个[链接](http://masikkk.com "提示语") ### 参考链接 参考链接就是将链接地址集中定义在一起,语法为链接文字用方括号括住,后面跟方括号括住的链接id,而此id是在别处定义的,如: ``` [链接文字][id1] [id1]: http://masikkk.com "提示语" ``` [链接文字][id1] [id1]: http://masikkk.com "提示语" 链接id的定义方式为:`[链接id]: 地址 "提示语"`,网址定义只有在产生链接的时候用到,并不会直接出现在文件之中。 -------------------------------------------------------------------------------- ## 页内跳转 ### 锚点 #### 标题自动成为锚点 Markdown 会自动给每一个 h1~h6 标题生成一个锚,其 id 就是标题内容。 目录树中的每一项都是一个跳转链接,点击后就会跳转到其对应的锚点(即标题所在位置)。 #### 自定义锚点 如果需要在目录树之外还要增加跳转到某个标题的链接,需要增加自定义锚点。 首先在想要跳转到的地方加 html 元素标签,定义标签的id,从而成为一个锚点,可以是任意标签,如文本、图片、段落、span,div等等,我在本文档的“html实现文本居中”,“通过CSS设置背景色”,“通过 max-width 属性设定图片最大宽度示例”处都加上了id。 ### 跳转 #### markdown语法跳转 使用 markdown 行内链接语法即可跳转到此锚点,只不过链接地址改为 `#锚点id`,例如: `[跳转到通过CSS设置背景色](#jump-bg)`: [跳转到通过CSS设置背景色](#jump-bg) 可以向后跳转,也可以跳转到前面定义好的锚点: `[向前跳转到html实现文本居中](#jump-center)`: [向前跳转到html实现文本居中](#jump-center) #### html``标签跳转 或者直接使用 html 标签 `` 也可以: `跳转到通过max-width属性设定图片最大宽度示例` 跳转到通过max-width属性设定图片最大宽度示例 -------------------------------------------------------------------------------- ## 加粗/斜体/删除线 - 双星号(或下划线)引住`**加粗**`是粗体:**加粗** - 单星号(或下划线)引住`*斜体*`是斜体:*斜体* - 双波浪线引住`~~删除线~~`是删除线(中划线):~~删除线~~ 如果你的`*`和`_`两边都有空白的话,它们就只会被当成普通的符号,如果要在文字前后直接插入普通的星号或底线,你可以用反斜线转义`\*`,`\_`。 注:我的博客中为了和MathJax兼容,修改了MarkDown渲染引擎,将下划线`_`的加粗解释取消了,以后都要习惯用星号加粗。 ## 通过html设定字体颜色或背景色 - 通过html标签`红色字体`来设置字体颜色:红色字体 - 通过CSS样式表`红色字体`来设置字体颜色:红色字体 - 通过CSS样式表`粗体红色`来设置红色粗体:粗体红色 - 通过双星号引住CSS样式表`粗体红色`来设置红色粗体:粗体红色 - 通过CSS样式表`背景色`设置背景色:背景色 -------------------------------------------------------------------------------- ## 分割线 在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。 ### 通过html标签hr书写自定义分割线样式 **html上看不到,被我用css隐藏了** `
`
`
`
`
`
`
`
`
`
-------------------------------------------------------------------------------- ## MarkDown语法插入图片 `![文字描述](图片链接 "提示语")` ![Markdown Logo](https://www.zybuluo.com/static/img/logo.png "提示语") 注:我一般不用MarkDown语法直接插入图片,都是通过html标签``插入图片,方便设定图片宽度。 ## 通过html标签img插入图片并排版 ### 通过float属性横排展示图片 ```
提示语
Markdown Logo
提示语
Markdown Logo
```
提示语
Markdown Logo
提示语
Markdown Logo
注意:使用完float:left后必须`
`来清除float,否则后续的内容还会继续浮动到前一行。 ### 通过width属性设定图片宽度 主要是为了解决图片太宽超出正文宽度。 在``标签的`style`中增加`width`属性,设为`100%`,即其**父容器**宽度的100%,而其父容器`div`肯定在正文宽度之内。 因为如果提供了一个百分比形式的`width`值而忽略了`height`,那么不管是放大还是缩小,浏览器都将保持图像的宽高比例。这意味着图像的高度与宽度之比将不会发生变化,图像也就不会发生扭曲。 **示例如下,改变页面宽度来查看效果** `

MarkDown
`:

MarkDown
`

我的域名解析配置
`:

我的域名解析配置
- HTML img标签的height和width属性 http://www.w3school.com.cn/tags/att_img_height-width.asp ### 通过max-width属性设定图片最大宽度 通过将``设定图片宽度的缺点是:任何时候图片都会被等比缩放到宽度等于父容器宽度,当图片宽度小于父容器宽度时会被拉伸导致失真,很不爽。插入图片时还要考虑图片本身大小和正文宽度,小于正文宽度的不加此属性,大于正文宽度的加上此属性,很费事。并且考虑了这些还不够,因为正文宽度在不同大小屏幕上本身就是会变化的。 通过给``标签的`style`中增加`max-width`属性,设定为`100%`,可完美解决此问题,即``,当图片宽度小于正文宽度时不会被缩放,当图片宽度大于正文宽度时会被等比缩放到宽度等于父容器宽度,并且在任何通过html的img标签插入图片的地方都可以无所顾忌的加上此属性,完美。 **示例如下,改变页面宽度来查看效果** `

MarkDown
`:

MarkDown
`

我的域名解析配置
`:

我的域名解析配置
- CSS max-width 属性 http://www.w3school.com.cn/cssref/pr_dim_max-width.asp -------------------------------------------------------------------------------- ## 表格 语法说明: - 1、第一行为表头,第二行用一个或多个"-"分隔表头和主体部分,第三行开始每一行代表一个表格行; - 2、列与列之间用管道符号"|"隔开,原生方式的表格每一行的两边也要有管道符。 - 3、可在第二行指定不同列单元格内容的对齐方式,默认为左对齐,在"-"右边加上":"为右对齐,在"-"两侧同时加上":"为居中对齐。 ``` | 表头A | 表头B | | ----- | ----- | | 数据A | 数据B | | 数据C | 数据D | ``` | 表头A | 表头B | | ----- | ----- | | 数据A | 数据B | | 数据C | 数据D | ``` | 表头1 | 表头2 | 表头3 | |:-------- | --------:|:-----:| | Computer | 1600 USD | 5 | | Phone | 12 USD | 12 | | Pipe | 1 USD | 234 | ``` | 表头1 | 表头2 | 表头3 | |:-------- | --------:|:-----:| | Computer | 1600 USD | 5 | | Phone | 12 USD | 12 | | Pipe | 1 USD | 234 | ### MarkDown表格内换行 使用html换行标签`
`或`
`实现markdown表格内换行。 ``` 操作符 | 说明 | 举例 --- | --- | --- -b file | 检测文件是否是块设备文件,如果是,则返回 true。 | `[ -b $file ]` 返回 false。 -c file | 检测文件是否是字符设备文件,如果是,则返回 true。 | `[ -c $file ]` 返回 false。 -d file | 检测文件是否是目录,如果是,则返回 true。 | `[ -d $file ]` 返回 false。 -f file | 检测文件是否是普通文件(既不是目录,也不是设备文件),
如果是,则返回 true。 | `[ -f $file ]` 返回 true。 -p file | 检测文件是否是有名管道,如果是,则返回 true。 | `[ -p $file ]` 返回 false。 -r file | 检测文件是否可读,如果是,则返回 true。 | `[ -r $file ]` 返回 true。 -w file | 检测文件是否可写,如果是,则返回 true。 | `[ -w $file ]` 返回 true。 -x file | 检测文件是否可执行,如果是,则返回 true。 | `[ -x $file ]` 返回 true。 -s file | 检测文件是否为空(文件大小是否大于0),不为空返回 true。 | `[ -s $file ]` 返回 true。 -e file | 检测文件(包括目录)是否存在,如果是,则返回 true。 | `[ -e $file ]` 返回 true。 ``` 操作符 | 说明 | 举例 --- | --- | --- -b file | 检测文件是否是块设备文件,如果是,则返回 true。 | `[ -b $file ]` 返回 false。 -c file | 检测文件是否是字符设备文件,如果是,则返回 true。 | `[ -c $file ]` 返回 false。 -d file | 检测文件是否是目录,如果是,则返回 true。 | `[ -d $file ]` 返回 false。 -f file | 检测文件是否是普通文件(既不是目录,也不是设备文件),
如果是,则返回 true。 | `[ -f $file ]` 返回 true。 -p file | 检测文件是否是有名管道,如果是,则返回 true。 | `[ -p $file ]` 返回 false。 -r file | 检测文件是否可读,如果是,则返回 true。 | `[ -r $file ]` 返回 true。 -w file | 检测文件是否可写,如果是,则返回 true。 | `[ -w $file ]` 返回 true。 -x file | 检测文件是否可执行,如果是,则返回 true。 | `[ -x $file ]` 返回 true。 -s file | 检测文件是否为空(文件大小是否大于0),不为空返回 true。 | `[ -s $file ]` 返回 true。 -e file | 检测文件(包括目录)是否存在,如果是,则返回 true。 | `[ -e $file ]` 返回 true。 ### 通过html标签table插入表格 - 给``增加样式,变成`
` - table-bordered:带圆角边框和竖线 - table-striped:奇偶行颜色不同 - table-condensed:压缩行距 - 将table的宽度设置为屏幕的百分比,例如95%,`
` - 设置单元格排列属性align为left,right或center,例如`
` - 如果表格内文需要换行,可以在要换行的内容后加入`
`,后面的内容就会跑到下一行。 - `
日期时间 体重 运动与备注
2016.03.07(一)21:20 73.9
    • 平板哑铃卧推,左右各17.5公斤,10*4;(重量增加15kg->17.5kg)
    • 平板杠铃卧推,35公斤,10*4;
    • pec fly夹胸机,30公斤级,10*4;
    • chest press坐姿推胸,45公斤级,10*4;
    • 平板哑铃仰卧飞鸟,左右各7.5公斤,10*4;
    • 史密斯架杠铃深蹲,30公斤,15*4;
总结:
1 二头三头一直疼到今天,到下午才好点儿。
2 背部酸,看来前天练背练得还可以,好像第一次背部有这么强烈的延迟性酸痛。
3 终于可以推17.5kg的哑铃卧推了。
4 今天练腿了,强度还行,可预见接下来几天大腿会很疼。
5 小腿疼,很疼,肯定跟用前脚掌着地跑步有关,膝盖受压迫少了,小腿开始了。
2016.03.07(一)21:20 73.9
    • 俯身单臂哑铃划船,15公斤,左右各10*4;
    • 俯立杠铃划船,30公斤,10*6;
    • 正手宽距助力引体向上,30公斤助力,10*4;
    • 龙门架绳索划船,30公斤,10*5;
    • seated horizontal pully水平坐拉,25公斤级,10*4;
  • 日常
    • 宽距俯卧撑,20*2;
    • 史密斯架杠铃深蹲,30公斤,15*2;
  • 有氧
    • 40分钟慢跑,5.87公里,381千卡;速度:9公里每小时,中间累了可休息1-3次,每次1-2分钟;
2016.03.07(一)21:20 73.9
  • 项目
  • 项目
  • 项目
```
日期时间 体重 运动与备注
2016.03.07(一)21:20 73.9
    • 平板哑铃卧推,左右各17.5公斤,10*4;(重量增加15kg->17.5kg)
    • 平板杠铃卧推,35公斤,10*4;
    • pec fly夹胸机,30公斤级,10*4;
    • chest press坐姿推胸,45公斤级,10*4;
    • 平板哑铃仰卧飞鸟,左右各7.5公斤,10*4;
    • 史密斯架杠铃深蹲,30公斤,15*4;
总结:
1 二头三头一直疼到今天,到下午才好点儿。
2 背部酸,看来前天练背练得还可以,好像第一次背部有这么强烈的延迟性酸痛。
3 终于可以推17.5kg的哑铃卧推了。
4 今天练腿了,强度还行,可预见接下来几天大腿会很疼。
5 小腿疼,很疼,肯定跟用前脚掌着地跑步有关,膝盖受压迫少了,小腿开始了。
2016.03.07(一)21:20 73.9
    • 俯身单臂哑铃划船,15公斤,左右各10*4;
    • 俯立杠铃划船,30公斤,10*6;
    • 正手宽距助力引体向上,30公斤助力,10*4;
    • 龙门架绳索划船,30公斤,10*5;
    • seated horizontal pully水平坐拉,25公斤级,10*4;
  • 日常
    • 宽距俯卧撑,20*2;
    • 史密斯架杠铃深蹲,30公斤,15*2;
  • 有氧
    • 40分钟慢跑,5.87公里,381千卡;速度:9公里每小时,中间累了可休息1-3次,每次1-2分钟;
2016.03.07(一)21:20 73.9
  • 项目
  • 项目
  • 项目
- Markdown之表格的处理 http://www.ituring.com.cn/article/3452 - Excel表格转html http://pressbin.com/tools/excel_to_html_table/index.html ------------------------------------------------------------------------------------------------------------ # 增强语法 ## Markdown与HTML - 单标签可任意使用 - 成对标签使用时,必须在前后加上空行与其它内容区隔开 - 如果要引用html标签代码,用反引号括住,否则会被解析为html标签 - 转义字符`&`和`<` - 版权符号`©`:©,小于号<,小于号`<`:<,与&,与`&`:& - AT&T ## 目录TOC `[TOC]`,在任意位置插入根据标题自动生成的文档目录(Table of Contents) 注:有些markdown编辑器不支持此语法 ## 复选框/待办事项 复选框列表 在列表符号后面加上`[]`或者`[x]`代表选中或者未选中情况 注意只有在列表中才有效 ``` - [ ] C++ - [x] Java - [x] Qt - [x] Android - [x] C# - [ ] .NET ``` 效果为 - [ ] C++ - [x] Java - [x] Qt - [x] Android - [x] C# - [ ] .NET 想要在hexo中支持复选框,有两种方案可选: 1、更新hexo默认的渲染引擎 [hexo-renderer-marked](https://github.com/hexojs/hexo-renderer-marked) 到 0.3.0 及以上即可。 https://github.com/ahonn/hexo-theme-even/issues/135 https://github.com/hexojs/hexo-renderer-marked/issues/30 最新版hexo中默认的 hexo-renderer-marked 已包含此功能,不用单独升级 hexo-renderer-marked 版本。 2、更换markdown引擎为`markdown-it`,然后安装 markdown-it-checkbox 就可以了,命令是`npm install markdown-it-checkbox`,然后在配置文件启用这一扩展 ## 流程图 元数据标识: grammar_flow 提供流程图语法扩展功能,语法格式为: ``` \`\`\`flow st=>start: 开始 e=>end: 结束 op=>operation: 操作步骤 cond=>condition: 是 或者 否? st->op->cond cond(yes)->e cond(no)->op \`\`\` ``` ```flow st=>start: 开始 e=>end: 结束 op=>operation: 操作步骤 cond=>condition: 是 或者 否? st->op->cond cond(yes)->e cond(no)->op ``` ## 序列图 元数据标识: grammar_sequence ``` \`\`\`sequence 小明->小李: 你好 小李, 最近怎么样? Note right of 小李: 小李想了想 小李-->小明: 还是老样子 \`\`\` ``` 提供序列图语法扩展功能,语法格式为: ```sequence 小明->小李: 你好 小李, 最近怎么样? Note right of 小李: 小李想了想 小李-->小明: 还是老样子 ``` -------------------------------------------------------------------------------- ## MathJax公式 单`$`符引住的是行内公式,双`$`符引住的是行间公式。 含下划线`_`的公式`$x_mu$`:$x_mu$ 希腊字符`$\sigma$`:$\sigma$ 双`\\`公式内换行: ``` $$ f(n) = \begin{cases} n/2, & \text{if $n$ is even} \\\\ 3n+1, & \text{if $n$ is odd} \end{cases} $$ ``` $$ f(n) = \begin{cases} n/2, & \text{if $n$ is even} \\\\ 3n+1, & \text{if $n$ is odd} \end{cases} $$ 行内公式`$y=ax+b$`:$y=ax+b$ 行内公式`$\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta$`:$\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta$ 行间公式`$$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$`: $$ \sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6} $$ 行间公式`$$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$`: $$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$ MathJax 公式书写示例见 [MathJax数学公式](/article/MathJax/) Hexo博客中使用 MathJax js ,参考 [Hexo博客(13)添加MathJax数学公式渲染](/article/hexo-13-MathJax/) MathJax官网 https://www.mathjax.org/ MathJax公式书写参考 http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference -------------------------------------------------------------------------------- ## GFM(GitHub Flavored Markdown) GFM 代码高亮支持的语言列表 https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks - Writing on GitHub https://help.github.com/categories/writing-on-github/ - Basic writing and formatting syntax https://help.github.com/articles/basic-writing-and-formatting-syntax/ - Working with advanced formatting https://help.github.com/articles/working-with-advanced-formatting/ -------------------------------------------------------------------------------- # 其他 ## Markdown缺点 - 有些编辑器不支持一些特殊语法 - 解析样式由编辑器定,自己修改样式不方便 - 对比word,Excel,latex等富文本编辑器,无复杂排版 ## Markdown应用 - 写笔记,有道笔记、为知笔记支持markdown,印象笔记暂不支持(马克飞象) - 写博客,简书、WordPress、GitHub README.md、GitHub Issues https://github.com/lifesinger/blog/issues https://github.com/xufei/blog/issues/10 https://github.com/justjavac/free-programming-books-zh_CN/blob/master/README.md -------------------------------------------------------------------------------- ## MarkDown编辑器 ### Typora Mac 上很漂亮的一款 MarkDown 编辑器,他的 MarkDown 渲染做的不错,看着很舒服。 见 [Typora使用笔记](/article/Typora/) ### Atom GitHub 出的一款编辑器,支持各种插件,用来写 MarkDown 很方便。 见 [Atom使用笔记](/article/Atom/) ### Markdown在线编辑器 Cmd Markdown 编辑阅读器 https://www.zybuluo.com/mdeditor 小书匠 http://markdown.xiaoshujiang.com/ StackEdit https://stackedit.io/editor markdown语法说明简体中文版 http://wowubuntu.com/markdown/ 创始人 John Gruber 的 Markdown 语法说明 http://daringfireball.net/projects/markdown/syntax --------------------------------------------------------------------------------

上一篇 2017年第三季度运动记录

下一篇 Python-科学计算环境搭建

阅读
评论
5.4k
阅读预计22分钟
创建日期 2017-06-21
修改日期 2023-10-30
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论