文档工具
Markdown 介绍
Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。
Markdown 编写的文档后缀为 .md, .markdown。
Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。
开源软件的很多文档都是用Markdown语法编写的。
关于Markdown的语法知识,可以查看文章后面的Markdown9大语法。
Markdow编辑器
工欲善其事,必先利其器。一款好用的 Markdown 编辑器能极大地提高写作体验
根据 Markdown 编辑器的使用环境,可以简单分为四类:
1、在线编辑器:例如各大在线博客、社区平台自带的工具,以及一些小众的开源编辑器,例如:简书、知乎、博客园,掘金,CSDN…
2、独立软件:下载到电子设备上后使用的软件,无需联网即可使用,例如 Typora,MarkdownPad。
3、笔记类软件:不少笔记软件都支持 Markdown,例如思源笔记,Notion,wolai,印象笔记,Joplin,MWeb,Vnote… 严格来说,这些软件已经脱离了编辑器的范畴,不单单用来编辑某个特定的文件,而是所有 Markdown 笔记。
4、插件类:本身不能独立使用,而是作为某款编辑器的插件,例如 VSCode,Sublime。
几乎任何场景都可以使用 Markdown,结合自身情况选一个即可。自己所有的笔记都是使用 Markdown编写的,因此直接使用笔记软件作为平时码字的主力软件。
下面推荐一下直在使用的Markdown软件。
首推的就是 Typora 了。“Typora 是一款简洁而强大的 Markdown 编辑器。它提供实时预览功能,让用户可以即时查看文档的渲染效果。Typora 采用所见即所得的编辑模式,没有繁杂的标记符号,用户可以专注于写作而不必分心处理格式。此外,Typora 还支持数学公式、表格、图像等丰富的 Markdown 语法和扩展功能。总之,Typora 是一款易用且功能丰富的 Markdown 编辑器,适用于撰写各种类型的文档。”
几句话介绍: “Typora 是一款简洁而强大的 Markdown 编辑器。它提供实时预览功能,让用户可以即时查看文档的渲染效果。Typora 采用所见即所得的编辑模式,没有繁杂的标记符号,用户可以专注于写作而不必分心处理格式。此外,Typora 还支持数学公式、表格、图像等丰富的 Markdown 语法和扩展功能。总之,Typora 是一款易用且功能丰富的 Markdown 编辑器,适用于撰写各种类型的文档。”
官网:typora.io
中文网:typoraio.cn
支持平台:Windows / Mac / Linux
特点:
- 界面极简,不花哨,专注输入内容。
- 主题丰富,官网提供很多主题风格,可以去 theme.typora.io 上查看,目前有 107 种主题样式,还可以自定义主题。
- 有丰富的配置项和快捷键
- 运行后,占用内存小。
缺点:
-
收费,收费方式,买断制,价格为 14.99 美元 / 89 元人民币,最多可在 3 台设备上使用,提供 15 天的免费试用。
PS:自 2021 年 11 月 23 日起发布 1.0 版本,开始成为收费软件。如果想使用免费版,可以去官网发布页面找旧版本(低于 1.0 版本)使用。不过这些旧版本就不支持新功能,有条件的话还是推荐用收费版。
- Typora 使用场景比较单一,就是单机使用,对于团队写作、跨设备使用就不太支持。
Typora安装
版本1.0以上开始收费,我使用的是0.9.86的版本。
网盘下载地址:
Typora设置
加入我们的主题
样式切换
样式内容
wanho.css
/* 全局属性 */
#write {
max-width: 860px;
font-size: 18px;
color: black;
padding: 0 10px;
line-height: 1.6;
word-spacing: 0px;
letter-spacing: 0px;
word-break: break-word;
word-wrap: break-word;
text-align: left;
font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, 'PingFang SC', Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
}
/*段落*/
#write p {
font-size: 18px;
padding-top: 8px;
padding-bottom: 8px;
margin: 0;
line-height: 26px;
color: black;
}
/*标题*/
#write h1,
#write h2,
#write h3,
#write h4,
#write h5,
#write h6 {
margin-top: 30px;
margin-bottom: 15px;
padding: 0px;
font-weight: bold;
color: black;
}
#write h1 {
font-size: 1.5rem;
}
#write h2 {
font-size: 1.3rem;
border-bottom: 2px solid rgb(239, 112, 96);
}
#write h2 span {
display: inline-block;
font-weight: bold;
background: rgb(239, 112, 96);
color: #ffffff;
padding: 3px 10px 1px;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
margin-right: 3px;
}
#write h2:after {
display: inline-block;
content: "";
vertical-align: bottom;
border-bottom: 36px solid #efebe9;
border-right: 20px solid transparent;
}
#write h3 {
font-size: 1.2rem;
}
#write h4 {
font-size: 1.1rem;
}
#write h5 {
font-size: 1rem;
}
#write h6 {
font-size: 1rem;
}
/*列表*/
#write ul,
#write ol {
margin-top: 8px;
margin-bottom: 8px;
padding-left: 25px;
color: black;
}
#write ul {
list-style-type: disc;
margin-left: 27px;
}
#write ul ul {
list-style-type: square;
margin-left: -3px;
}
#write ol {
list-style-type: decimal;
margin-left: 6px;
}
#write li section {
margin-top: 5px;
margin-bottom: 5px;
line-height: 26px;
text-align: left;
color: rgb(1,1,1); /* 只要是纯黑色微信编辑器就会把color这个属性吞掉。。。*/
font-weight: 500;
}
/*引用*/
#write blockquote {
display: block;
font-size: 0.9em;
overflow: auto;
overflow-scrolling: touch;
border-left: 3px solid rgb(239, 112, 96);
color: #6a737d;
padding: 10px 10px 10px 20px;
margin-bottom: 20px;
margin-top: 20px;
background: #fff9f9;
}
#write blockquote p {
margin: 0px;
color: black;
line-height: 26px;
}
/*链接*/
#write a {
text-decoration: none;
word-wrap: break-word;
font-weight: bold;
border-bottom: 1px solid #1e6bb8;
color: rgb(239, 112, 96);
border-bottom: 1px solid rgb(239, 112, 96);
}
/*行内代码*/
#write p code,
#write li code {
font-size: 14px;
word-wrap: break-word;
padding: 2px 4px;
border-radius: 4px;
margin: 0 2px;
color: rgb(239, 112, 96);;
background-color: rgba(27,31,35,.05);
font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;
word-break: break-all;
}
/*图片*/
#write img {
display: block;
margin: 0 auto;
max-width: 100%;
}
/*表格*/
#write table {
display: table;
text-align: left;
}
#write tbody {
border: 0;
}
#write table tr {
border: 0;
border-top: 1px solid #ccc;
background-color: white;
}
#write table tr:nth-child(2n) {
background-color: #F8F8F8;
}
#write table tr th,
#write table tr td {
font-size: 18px;
border: 1px solid #ccc;
padding: 5px 10px;
text-align: left;
}
#write table tr th {
font-weight: bold;
background-color: #f0f0f0;
}
/* 行内代码 */
#write span code, #write li code {
color: rgb(239, 112, 96);
}
/* 脚注上标 */
#write .md-footnote {
font-weight: bold;
color: rgb(239, 112, 96);
}
#write .md-footnote > .md-text:before {
content: '['
}
#write .md-footnote > .md-text:after {
content: ']'
}
/* 脚注 */
#write .md-def-name {
padding-right: 1.8ch;
}
#write .md-def-name:before {
content: '[';
color: #000;
}
#write .md-def-name:after {
color: #000;
}
/* 代码块主题 */
.md-fences:before {
content: ' ';
display: block;
width: 100%;
background-size: 40px;
background-repeat: no-repeat;
background-color: #282c34;
margin-bottom: -7px;
border-radius: 5px;
background-position: 10px 10px;
}
.cm-s-inner.CodeMirror {
padding-top: .5rem;
padding-bottom: .5rem;
background-color: #292d3e;
color: #a6accd;
font-family: Consolas;
border-radius: 4px;
}
.CodeMirror-lines {
padding-left: 4px;
}
.cm-s-inner .cm-keyword {
color: #c792ea;
}
.cm-s-inner .cm-operator {
color: #89ddff;
}
.cm-s-inner .cm-variable-2 {
color: #eeffff;
}
.cm-s-inner .cm-variable-3,
.cm-s-inner .cm-type {
color: #f07178;
}
.cm-s-inner .cm-builtin {
color: #ffcb6b;
}
.cm-s-inner .cm-atom {
color: #f78c6c;
}
.cm-s-inner .cm-number {
color: #ff5370;
}
.cm-s-inner .cm-def {
color: #82aaff;
}
.cm-s-inner .cm-string {
color: #c3e88d;
}
.cm-s-inner .cm-string-2 {
color: #f07178;
}
.cm-s-inner .cm-comment {
color: #676e95;
}
.cm-s-inner .cm-variable {
color: #f07178;
}
.cm-s-inner .cm-tag {
color: #ff5370;
}
.cm-s-inner .cm-meta {
color: #ffcb6b;
}
.cm-s-inner .cm-attribute {
color: #c792ea;
}
.cm-s-inner .cm-property {
color: #c792ea;
}
.cm-s-inner .cm-qualifier {
color: #decb6b;
}
.cm-s-inner .cm-variable-3,
.cm-s-inner .cm-type {
color: #decb6b;
}
.cm-s-inner .cm-error {
color: rgba(255, 255, 255, 1);
background-color: #ff5370;
}
.cm-s-inner .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}
.CodeMirror div.CodeMirror-cursor {
border-left: 1px solid rgb(239, 112, 96);
z-index: 3;
}
wanho.user.css
/*标题*/
#write h1,
#write h2,
#write h3,
#write h4,
#write h5,
#write h6 {
margin-top: 15px;
margin-bottom: 15px;
padding: 0px;
font-weight: bold;
color: black;
}
/* 首页字母空两格*/
p { text-indent: 2em;}
ul p,ol p { text-indent: 0;}
ul,ol{margin-left: -1.3em;}
/* ul,ol{margin-left: 2em;}*/
/* 正文标题区: #write */
/* [TOC]目录树区: .md-toc-content */
/* 侧边栏的目录大纲区: .sidebar-content */
/** initialize css counter */
#write, .sidebar-content,.md-toc-content{
counter-reset: h1
}
#write h1, .outline-h1, .md-toc-item.md-toc-h1 {
counter-reset: h2
}
#write h2, .outline-h2, .md-toc-item.md-toc-h2 {
counter-reset: h3
}
#write h3, .outline-h3, .md-toc-item.md-toc-h3 {
counter-reset: h4;
margin-left:10px;
}
#write h4, .outline-h4, .md-toc-item.md-toc-h4 {
counter-reset: h5;
margin-left:10px;
}
#write h5, .outline-h5, .md-toc-item.md-toc-h5 {
counter-reset: h6;
margin-left:10px;
}
#write h6, .outline-h6, .md-toc-item.md-toc-h6 {
counter-reset: h7;
margin-left:10px;
}
/** put counter result into headings */
/* 一级标题 */
#write h1:before,
.outline-h1>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h1>.md-toc-inner:before {
counter-increment: h1;
content: counter(h1) " "
}
/* 二级标题 */
#write h2 span:before,
.outline-h2>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h2>.md-toc-inner:before {
counter-increment: h2;
content: counter(h1) "." counter(h2) " ";
/* content: counter(h2) ". " */
}
/* 三级标题 */
#write h3:before,
h3.md-focus.md-heading:before, /** override the default style for focused headings */
.outline-h3>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h3>.md-toc-inner:before {
text-decoration: none;
counter-increment: h3;
/* content: counter(h1) "." counter(h2) "." counter(h3) ". " */
/* content: counter(h2) "." counter(h3) ". " */
content: counter(h1) "." counter(h2) "." counter(h3) " "
}
/* 四级标题 */
#write h4:before,
h4.md-focus.md-heading:before,
.outline-h4>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h4>.md-toc-inner:before {
text-decoration: none;
counter-increment: h4;
/* content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) ". " */
/* content: counter(h2) "." counter(h3) "." counter(h4) ". " */
content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) " "
}
/* 五级标题 */
#write h5:before,
h5.md-focus.md-heading:before,
.outline-h5>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h5>.md-toc-inner:before {
text-decoration: none;
counter-increment: h5;
/* content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". " */
/* content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". " */
content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) " "
}
/* 六级标题 */
#write h6:before,
h6.md-focus.md-heading:before,
.outline-h6>.outline-item>.outline-label:before,
.md-toc-item.md-toc-h6>.md-toc-inner:before {
text-decoration: none;
counter-increment: h6;
/* content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". " */
/* content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". " */
content: counter(h1) "." counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) " "
}
/** override the default style for focused headings */
#write>h3.md-focus:before,
#write>h4.md-focus:before,
#write>h5.md-focus:before,
#write>h6.md-focus:before,
h3.md-focus:before,
h4.md-focus:before,
h5.md-focus:before,
h6.md-focus:before {
color: inherit;
border: inherit;
border-radius: inherit;
position: inherit;
left:initial;
float: none;
top:initial;
font-size: inherit;
padding-left: inherit;
padding-right: inherit;
vertical-align: inherit;
font-weight: inherit;
line-height: inherit;
}
strong {
text-shadow:
-3px 0px 3px yellow,
3px 0px 3px yellow,
6px 0px 6px yellow,
-6px 0px 6px yellow;
}
h1 {
text-align: center;
padding-bottom: 0.3em;
font-size: 2em;
line-height: 1.2;
margin: 2.4em auto 1.2em;
}
h1:after {
content: '';
display: block;
margin: 0.2em auto 0;
width: 200px;
height: 2px;
border-bottom: 2px dashed rgb(239, 112, 96);
}
#write h2 {
font-size: 1.3rem;
border-bottom: 2px solid rgb(239, 112, 96);
}
#write h2 span {
display: inline-block;
font-weight: bold;
background: rgb(239, 112, 96);
color: #ffffff;
padding: 3px 10px 1px;
border-top-right-radius: 3px;
border-top-left-radius: 3px;
margin-right: 3px;
}
#write h2:after {
display: inline-block;
content: "";
vertical-align: bottom;
border-bottom: 36px solid #efebe9;
border-right: 20px solid transparent;
}
/* 代码段样式*/
.cm-s-inner {
font-size: 18px;
background-color: #282c34;
}
.cm-s-inner .CodeMirror-gutters {
background-color: #282c34;
border: none;
}
.cm-s-inner .CodeMirror-guttermarker,
.cm-s-inner .CodeMirror-guttermarker-subtle,
.cm-s-inner .CodeMirror-linenumber {
color: #737984;
}
.cm-s-inner .CodeMirror-cursor {
border-left: 1px solid #528bff !important;
}
.cm-s-inner div.CodeMirror-selected {
background: rgba(255, 255, 255, 0.15);
}
.cm-s-inner.CodeMirror-focused div.CodeMirror-selected {
background: rgba(255, 255, 255, 0.1);
}
.cm-s-inner .CodeMirror-line::-moz-selection,
.cm-s-inner .CodeMirror-line > span::-moz-selection,
.cm-s-inner .CodeMirror-line > span > span::-moz-selection {
background-color: #bac6e9;
}
.cm-s-inner .CodeMirror-line::selection,
.cm-s-inner .CodeMirror-line > span::selection,
.cm-s-inner .CodeMirror-line > span > span::selection {
background-color: #bac6e9;
}
.cm-s-inner .CodeMirror-activeline-background {
background: rgba(0, 0, 0, 0);
}
.cm-s-inner .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}
.cm-s-inner .CodeMirror-selected,
.cm-s-inner .CodeMirror-selectedtext {
background-color: #404859 !important;
}
/* code fences color */
.cm-s-inner .cm-keyword {
color: #c678dd !important;
}
.cm-s-inner .cm-operator {
color: #56b6c2 !important;
}
.cm-s-inner .cm-variable {
color: #d19a66 !important;
}
.cm-s-inner .cm-variable-2 {
color: #e06c75 !important;
}
.cm-s-inner .cm-variable-3 {
color: #e06c75 !important;
}
.cm-s-inner .cm-builtin {
color: #e8bf6a !important;
}
.cm-s-inner .cm-atom {
color: #d19a66 !important;
}
.cm-s-inner .cm-number {
color: #d19a66 !important;
}
.cm-s-inner .cm-def {
color: #e06c75 !important;
}
.cm-s-inner .cm-string {
color: #98c379 !important;
}
.cm-s-inner .cm-string-2 {
color: #80cbc4 !important;
}
.cm-s-inner .cm-comment {
color: #629755 !important;
}
.cm-s-inner .cm-tag {
color: #e06c75 !important;
}
.cm-s-inner .cm-meta {
color: #e06c75 !important;
}
.cm-s-inner .cm-attribute {
color: #d19a66 !important;
}
.cm-s-inner .cm-property {
color: #61afef !important;
}
.cm-s-inner .cm-qualifier {
color: #decb6b !important;
}
.cm-s-inner .cm-error {
color: #fff !important;
background-color: #ec5f67 !important;
}
.cm-s-inner .cm-tag.cm-bracket {
color: #abb2bf !important;
}
附件
Markdown9大语法
标题
语法:n个# 第n级标题文字
一个 # 为一级标题,两个 # 是二级标题,
以此类推,最多支持六级标题。
#与标题文字之间需要加一个空格。
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
字体
加粗
语法: **要加粗的文字**
**我是粗体**
斜体
语法: *要倾斜的文字*
*我是斜体*
斜体加粗
语法:***要斜体加粗的文字***
***我是加粗的斜体***
删除线
语法: 要加删除线的文字
~~我是加了删除线的文字~~
引用
语法:n个>要引用的文字
可以嵌套引用,一个>为一级引用,两个>>为二级引用,以此类推。
>一级引用的内容
>>二级引用的内容
>>>三级引用的内容
分割线
语法:--- 或 ***
连续三个及以上的- 或 连续三个及以上的*(必需单独一行)
---
***
超链接与图片
超链接语法:[超链接名](超链接地址)
[淘宝](www.taobao.com)
图片语法:![图片名](图片链接地址)
注意:插入图片和插入超链接的语法很像,只是前面多加一个英文叹号。
列表
无序列表
语法:-/+/* 列表内容
注意:-/+/*与列表内容间需要有一个空格
- 这是一个列表
+ 这也是一个列表
* 这还是一个列表
有序列表
语法:数字. 列表内容
注意:序号与列表内容间需要有一个空格
1. 第一条列表
2. 第二条列表
3. 第三条列表
列表嵌套
语法:写完上一级列表后回车,下一级列表句首敲三个空格
- 一级列表
- 二级列表1
- 二级列表2
* 三级列表1
* 三级列表2
表格
语法:
| 表头 | 表头 | 表头 |
| ---- | ---- | ---- |
| 内容 | 内容 | 内容 |
| 内容 | 内容 | 内容 |
代码和代码块
代码
单行代码语法:代码内容
注意:这里是用反引号把代码包起来,并非是单引号。
import pandas as pd
代码块
语法
``` java
第一行代码
第二行代码
第三行代码
```
```java
public class HelloWorld{
}
```
待办事项
语法:
- [ ] 待办事项
- [x] 已办事项
注意:-与[]之间、[]内必须有空格
示例
- [ ] 待办事项1
- [ ] 待办事项1
- [ ] 待办事项2
- [x] 已办事项
还没有人赞赏,快来当第一个赞赏的人吧!
- 2¥
- 5¥
- 10¥
- 20¥
- 50¥
声明:本文为原创文章,版权归信息岛所有,付费内容,禁止转载!
你可能也喜欢
- ♥ 【开发环境】安装MySQL10/18
- ♥ 【开发运维】批处理脚本中的注释10/06
- ♥ 【SpringBoot】SpringBoot多环境切换11/06
- ♥ 【SpringBoot】SpringBoot数据校验的正确方式11/05
- ♥ 【SpringBoot】Maven打包插件10/10
- ♥ 【Java基础】线程池中异常处理10/08