Markdown
Why
How
How to convert to pdf?
What
Introducing
- 据 GitHub Flavored Markdown(GFM)官方文档介绍,Markdown 是由约翰·格鲁伯(John Gruber)在亚伦·斯沃茨(Aaron Swartz)的帮助下开发,并在 2004 年发布的标记语言。
- 其设计灵感主要来源于纯文本电子邮件的格式,目标是让人们能够使用易读、易写的纯文本格式编写文档,而且这些文档可以转换为 HTML(Hyper Text Markup Language,超文本标记语言)文档。
- 起初 Markdown 主要用于网络写作,后来人们希望 Markdown 能够应用到更多的领域,如写书、记笔记、写文档、写幻灯片等。
- 由于 Markdown 本身功能有限,一些特定的需求和场景无法被满足,因此产生了许多扩展语法,这些语法在基础语法之上新增了如表格、任务列表、围栏代码块等功能。
- 超集
Timeline
- 2004
- Markdown 发布,作者是 John Gruber
- 2006
- Pandoc's Markdown 发布,作者是 John MacFarlane。 此版本对 Markdown 语法有额外的扩充和些许修正,这使 Markdown 可以转换为更多的文件格式,Pandoc 堪称文件转换领域的「瑞士军刀」
- 2011
- MultiMarkdown(简称 MMD)发布,作者是 Fletcher T.Penney。 此版本让 Markdown 可以转换为更多的文件格式,包括 HTML/XHTML、LATEX、OpenDocument、OPML(Outline Processor Markup Language,大纲处理标记语言)
- 2013
- Markdown Extra 发布,作者是 Michel Fortin。 此版本最初使用 PHP 语言实现,新增了围栏代码块、具有 id/class 属性的元素、表格、任务列表、脚注、缩写等功能。
- 2014
- CommonMark 规范发布,主要作者是 Jeff Atwood 和 John MacFarlane。 CommonMark 旨在为人们提供一个标准的 Markdown 语法规范和参考实现。 Markdown 标准化工作开始于 2012 年,2014 年 9 月,由于 John Gruber 反对在这一工作中继续使用「Markdown」这个名字,其被更名为 CommonMark。
- 2017
- GitHub 发布了 GitHub Flavored Markdown,即 GFM。 此版本遵循 CommonMark 规范,新增了围栏代码块、表格、删除线、自动链接、Emoji 表情和任务列表等功能,是目前使用最广泛的版本。
- 总之,版本之多 John Gruber 认为合理,未做约束,作出约束的是 CommonMark ——它为 Markdown 提出了一个标准的、明确的语法规范,以及一套全面的测试,根据此规范可以验证 Markdown 的实现结果,GitHub Flavored Markdown(GFM)遵循的就是 CommonMark 规范
Advanced Syntax
Flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
# via: https://www.thiscodeworks.com/6086881411312200146f509a
Anchor (锚点)
this is a para.[^something_ref]
[^something_ref]: https://xxx.com/xxx
Collapsed on web
<details><summary>点击展开</summary><a>xxxxx</a></details>
Beautify uri
_ / -
来替换;- 在网页的编码中, ’ ’ 代表
%20
, 出来的网址会冗杂
- 在网页的编码中, ’ ’ 代表
Code list
via: https://terryl.in/en/highlight-js-html-code-language-list-for-syntax-highlighting/#how-it-works
code | type |
---|---|
1c | 1C:Enterprise (v7, v8) |
abnf | Augmented Backus-Naur Form |
accesslog | Access log |
actionscript | ActionScript |
ada | Ada |
angelscript | AngelScript |
apache | Apache |
applescript | AppleScript |
arcade | ArcGIS Arcade |
arduino | Arduino |
armasm | ARM Assembly |
asciidoc | AsciiDoc |
aspectj | AspectJ |
assembly | Assembly |
autohotkey | AutoHotkey |
autoit | AutoIt |
avrasm | AVR Assembler |
awk | Awk |
axapta | Microsoft Axapta (now Dynamics 365) |
bash | Bash |
basic | Basic |
bnf | Backus–Naur Form |
brainfuck | Brainfuck |
cal | C/AL |
capnproto | Cap’n Proto |
ceylon | Ceylon |
clean | Clean |
clojure-repl | Clojure REPL |
clojure | Clojure |
cmake | CMake |
coffeescript | CoffeeScript |
coq | Coq |
cos | Cache Object Script |
cpp | C++ |
crmsh | crmsh |
crystal | Crystal |
cs | c# |
csp | CSP |
css | CSS |
d | D |
dart | Dart |
delphi | Delphi |
diff | Diff |
django | Django |
dns | DNS Zone file |
dockerfile | Dockerfile |
dos | DOS .bat |
dsconfig | dsconfig |
dts | Device Tree |
dust | Dust |
ebnf | Extended Backus-Naur Form |
elixir | Elixir |
elm | Elm |
erb | ERB (Embedded Ruby) |
erlang-repl | Erlang REPL |
erlang | Erlang |
excel | Excel |
fix | FIX |
flix | Flix |
fortran | Fortran |
fsharp | F# |
gams | GAMS |
gauss | GAUSS |
gcode | G-code (ISO 6983) |
gherkin | Gherkin |
glsl | GLSL |
gml | GML |
go | Golang |
golo | Golo |
gradle | Gradle |
groovy | Groovy |
haml | Haml |
handlebars | Handlebars |
haskell | Haskell |
haxe | Haxe |
hsp | HSP |
htmlbars | HTMLBars |
http | HTTP (Header Plaintext) |
hy | Hy |
inform7 | Inform 7 |
ini | TOML, also INI |
irpf90 | IRPF90 |
isbl | ISBL |
java | Java |
javascript | JavaScript |
jboss-cli | jboss-cli |
json | JSON / JSON with Comments |
julia-repl | Julia REPL |
julia | Julia |
kotlin | Kotlin |
lasso | Lasso |
ldif | LDIF |
leaf | Leaf |
less | Less |
lisp | Lisp |
livecodeserver | LiveCode |
livescript | LiveScript |
llvm | LLVM IR |
lsl | LSL (Linden Scripting Language) |
lua | Lua |
makefile | Makefile |
markdown | Markdown |
mathematica | Mathematica |
matlab | Matlab |
maxima | Maxima |
mel | MEL |
mercury | Mercury |
mipsasm | MIPS Assembly |
mizar | Mizar |
mojolicious | Mojolicious |
monkey | Monkey |
moonscript | MoonScript |
n1ql | N1QL |
nginx | Nginx |
nimrod | Nim (formerly Nimrod) |
nix | Nix |
nsis | NSIS |
objectivec | Objective-C |
ocaml | OCaml |
openscad | OpenSCAD |
oxygene | Oxygene |
parser3 | Parser3 |
perl | Perl |
pf | pf.conf |
pgsql | PostgreSQL SQL dialect and PL/pgSQL |
php | PHP |
plaintext | Plaintext |
pony | Pony |
powershell | PowerShell |
processing | Processing |
profile | Python profile |
prolog | Prolog |
properties | Properties |
protobuf | Protocol Buffers |
puppet | Puppet |
purebasic | PureBASIC |
python | Pythin |
q | Q |
qml | QML |
r | R |
reasonml | ReasonML |
rib | RenderMan RIB |
roboconf | Roboconf |
routeros | Microtik RouterOS script |
rsl | RenderMan RSL |
ruby | Ruby |
ruleslanguage | Oracle Rules Language |
rust | Rust |
sas | SAS |
scala | Scala |
scheme | Scheme |
scilab | Scilab |
scss | SCSS |
shell | Shell Session |
smali | Smali |
smalltalk | Smalltalk |
sml | SML (Standard ML) |
sqf | SQF |
sql | SQL (Structured Query Language) |
stan | Stan |
stata | Stata |
step21 | STEP Part 21 |
stylus | Stylus |
subunit | SubUnit |
swift | Swift |
taggerscript | Tagger Script |
tap | Test Anything Protocol |
tcl | Tcl |
tex | TeX |
thrift | Thrift |
tp | TP |
twig | Twig |
typescript | TypeScript |
vala | Vala |
vbnet | VB.NET |
vbscript-html | VBScript in HTML |
vbscript | VBScript in HTML |
verilog | Verilog |
vhdl | VHDL |
vim | Vim Script |
x86asm | Intel x86 Assembly |
xl | XL |
xml | HTML, XML |
xquery | XQuery |
yaml | YAML |
zephir | Zephir |
Reference
- soft break / soft return / soft enter
- a carriage return automatically inserted by the software program, usually because of a word wrap
- table generate oneline
- pick emoji
- Markdown 脚注 | Markdown 官方教程
- 流程图图形标准含义 - Rooker - 博客园
- CommonMark
- 交互性文档——Jupyter Notebook & R Markdown
- R Markdown 的内容请参考官方文档 https://rmarkdown.rstudio.com/
- R Markdown 权威指南 https://bookdown.org/yihui/rmarkdown/