对标记语言的一个非常全的总结

 

突然发现:

这本书应该也不错:

 

http://www.worldhello.net/gotgithub/index.html

 

7. 附录:轻量级标记语言

没有标记语言就没有Web和丰富多彩的互联网,但创造了Web的HTML语言并非尽善尽美,存在诸如难读、难写、难以向其他格式转换的问题。究其根源是因为HTML语言是一种“重”标记语言,对机器友好而并非对人友好。

下面这段HTML源码,非技术控阅读起来会遇到困难。

<html>
<head>
  <meta content='application/xhtml+xml;charset=utf-8' http-equiv='Content-type' />
  <title>轻量级标记语言</title>
</head>
<body>
  <h1 id='id1'>轻量级标记语言</h1>

  <p><strong>轻量级标记语言</strong> 是一种 <em>语法简单</em> 的标记语言。
  它使用易于理解的格式标记,没有古怪的 <code>&lt;标签&gt;</code> 。</p>

  <ul>
  <li>可以使用最简单的文本编辑器编辑。</li>
  <li>所见即所得,非技术控亦可直接阅读源码。</li>
  <li>可版本控制。</li>
  <li>实现单一源文件出版。</li>
  </ul>
<body>
</html>

同样的信息如果换用轻量级标记语言来表达,就非常直观了。如下所示:

轻量级标记语言
==============

**轻量级标记语言** 是一种 *语法简单* 的标记语言。
它使用易于理解的格式标记,没有古怪的 `<标签>` 。

- 可以使用最简单的文本编辑器编辑。
- 所见即所得,非技术控亦可直接阅读源码。
- 可版本控制。
- 实现单一源文件出版。

GitHub另人着迷的一个因素就在于GitHub为用户提供更为便捷地创建UGC(用户生成内容)的方法,其奥秘就在于使用了轻量级标记语言。无论是代码提交说明、提交评注、问题描述、项目的README文件、维基页面、用户主页和项目主页都可以使用Markdown[8]等轻量级标记语言来撰写。轻量级标记语言如Markdown是对人友好的标记语言,一些语法参照了我们写电子邮件时的习惯,即使第一次接触用轻量级标记语言撰写的文件,也可以毫无障碍地理解其中的内容。

虽然GitHub更倾向于使用Markdown标记语言[9],但很多地方也提供对其他轻量级标记语言的支持。包括为Python程序员所熟悉的reStructedText[10],为Ruby程序员所熟悉的Textile[11]、RDoc[12],为Perl程序员所熟悉的POD[13],为Emacs用户所熟悉的Org-mode[14],为维基用户所熟悉的MediaWiki[15]和Creole[16],以及可作为DocBook[17]前端的颇有前途的AsciiDoc[18]标记语言。

下面通过一张表格对几种常用的轻量级标记语言加以对照,供有不同标记语言偏好的用户参考,便于在GitHub某些不能随意更换标记语言而只能使用GFM(GitHub风格的Markdown)的场合可以自如地转换。

在“表7-1:常用轻量级标记语言对照”中,为使表格更加紧凑使用代号表示各种标记语言。例如:md为Markdown,gfm是GitHub风格的Markdown,rst为reStructedText,ttl为Textile,asc为AsciiDoc,org为Org-mode。

表7-1:常用轻量级标记语言对照
类别标记语言代码示例输出示例
MDRSTTTLASCORG
标题md    
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

输出略。

注解

Atx风格标题后面可接匹配的井号。

 rst   
一级标题
========

二级标题
--------

三级标题
^^^^^^^^

输出略。

注解

reST标题可用下列符号标记: # * = - ^ ~ ` : . _ + ” 等。

  ttl  
h1. 一级标题
h2. 二级标题
h3. 三级标题
h4. 四级标题
h5. 五级标题
h6. 六级标题
输出略。
   asc 
AsciiDoc 提供两种风格的标题。

文档标题
========

一级标题
--------

二级标题
~~~~~~~~

三级标题
^^^^^^^^

四级标题
++++++++

或者使用下面单行标题风格进行定义。

= 文档标题 =
== 一级标题 ==
=== 二级标题 ===
==== 三级标题 ====
===== 四级标题 =====

输出略。

注解

除了两种不同风格的标题外,还支持以点开始的块标题,块标题不生成目录。如:

.BlockTitle
    org
* 一级标题
** 二级标题
*** 三级标题

输出略。

注解

为支持更多标题级别需要设置 #+OPTIONS:H:6

段落空行分段mdrstttl*ascorg
一个回车不分段,
本行续上行。

空行开始新段落。

一个回车不分段,°本行续上行。

空行开始新段落。

无空白续行 rst   
行尾转义字符让\
续行之间无空格。
行尾转义字符让续行之间无空格。
插入换行md    
行尾两空格°°
保持换行。
行尾两空格
保持换行。
gfm ttl  
GFM、Textile等
保持段落内换行符。
GFM、Textile等
保持段落内换行符。
 rst   
| 保持换行符,
| 本行不续行。
保持换行符,
本行不续行。
 rst   
.. role:: raw-html(raw)
   :format: html

用新定义的role插入换行,
:raw-html:`<br />`
本行不再续行。
用新定义的role插入换行, 
本行不再续行。
   asc 
行尾的空格和加号 +
保持换行。
行尾的空格和加号
保持换行。
    org*
行尾两个反斜线\\
保持段落内换行符。
行尾两个反斜线
保持段落内换行符。
    org
#+BEGIN_VERSE
 保持换行符,
 本行不续行。
#+END_VERSE
保持换行符,
本行不续行。
段落缩进mdrst   
邮件体段落缩进:

> 第一级段落缩进。
>
> > 第二级段落缩进。
>
> 返回一级段落缩进。

邮件体段落缩进:

第一级段落缩进。

第二级段落缩进。

返回一级段落缩进。

 rst   
Python式段落缩进:

  第一级段落缩进。

    第二级段落缩进。

  返回一级段落缩进。

Python式段落缩进:

第一级段落缩进。

第二级段落缩进。

返回一级段落缩进。

  ttl  
Textile式段落缩进:

bq. 本段缩进。

正常段落。

bq.. 注意缩进关键字后有两个点。

后续段落持续缩进,
直至遇到 p. 定义的段落。

p. 正常段落不再缩进。

Textile式段落缩进:

本段缩进。

正常段落。

注意缩进关键字后有两个点。

后续段落持续缩进,
直至遇到 p. 定义的段落。

正常段落不再缩进。

   asc 
四个或以上的下划线括起的区域为引言缩进。

[quote, author, source]
______________________________
引言...
______________________________

四个或以上的下划线括起的区域为引言缩进。

引言...

source

—— author

    org
Org-mode式段落缩进:

#+BEGIN_QUOTE
 段落缩进。
#+END_QUOTE

Org-mode式段落缩进:

段落缩进。
代码块md    
四个空格缩进是代码块:

    $ printf "Hello, world.\n"

四个空格缩进是代码块:

$ printf "Hello, world.\n"
gfm    
三个连续的`或~等符号界定代码块。

```ruby
require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
```

三个连续的`或~等符号界定代码块。

require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
 rst   
双冒号后缩进为代码块。

::

  $ printf "Hello, world.\n"

还可声明语言类型实现语法加量。

.. code-block:: sh

   $ printf "Hello, world.\n"

双冒号后缩进为代码块。

$ printf "Hello, world.\n"

还可声明语言类型实现语法加量。

$ printf "Hello, world.\n"
  ttl  
以bc.或bc..指令开头的是代码块。

bc.. $ git init

$ git commit --allow-empty

p. 本段不再是代码块。

以bc.或bc..指令开头的是代码块。

$ git init

$ git commit --allow-empty

本段不再是代码块。

  ttl  
原样格式输出,相当于<PRE>标签。

pre..
           更上一层楼
欲穷千里目

p. 恢复正常段落。

原样格式输出,相当于<PRE>标签。

           更上一层楼
欲穷千里目

恢复正常段落。

   asc 
四个或更多减号括起代码块,
还可声明语言种类。

[source, c]
-----------------------------
#include <stdio.h>

int main() {
   printf("Hello World!\n");
   exit(0);
}
-----------------------------

四个或更多减号括起代码块, 还可声明语言种类。

#include <stdio.h>

int main() {
   printf("Hello World!\n");
   exit(0);
}
   asc 
正常段落。

  缩进段落相当于添加<pre>标签,
  等宽字体,原样输出。

缩进会和其他语法如列表相混淆,
可用 `[literal]` 显示声明。

[literal]
原样输出,
显示为等宽字体。

或用四个以上点组成的定界符标记。

..............................
原样输出,
显示为等宽字体。
..............................

正常段落。

缩进段落相当于添加<pre>标签,
等宽字体,原样输出。

缩进会和其他语法如列表相混淆, 可用[literal] 显示声明。

原样输出,
显示为等宽字体。

或用四个以上点组成的定界符标记。

原样输出,
显示为等宽字体。
    org
下面是代码块。

#+BEGIN_SRC ruby
  require 'redcarpet'
  md = Redcarpet.new("Hello, world.")
  puts md.to_html
#+END_SRC

下面是代码块。

require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
列表无序列表mdrst   
* 星号、减号、加号开始列表。

  - 列表层级和缩进有关。

    + 和具体符号无关。

* 返回一级列表。
  • 星号、减号、加号开始列表。
    • 列表层级和缩进有关。
      • 和具体符号无关。
  • 返回一级列表。
  ttl  
* 星号开始无序列表。
** 更多星号代表不同层级。
*** 三级列表。
* 返回一级列表。
  • 星号开始无序列表。
    • 更多星号代表不同层级。
      • 三级列表。
  • 返回一级列表。
   asc 
- 1个减号开始列表。
* 或1到5个星号开始列表。
** 三级列表。
- 返回一级列表。
  • 1个减号开始列表。
    • 或1到5个星号开始列表。
      • 三级列表。
  • 返回一级列表。
    org
列表语法和Markdown、reST类似。
星号和列表语法冲突需缩进,不建议使用。

  - 减号、加号开始列表。

    + 列表层级和缩进有关。

      - 和具体符号无关。

  - 返回一级列表。

列表语法和Markdown、reST类似。 星号和列表语法冲突需缩进,不建议使用。

  • 减号、加号开始列表。
    • 列表层级和缩进有关。
      • 和具体符号无关。
  • 返回一级列表。
有序列表md    
1. 数字和点开始有序列表。

   1. 注意子列表的缩进位置。

      1. 三级列表。
      1. 编号会自动更正。

   1. 二级列表,编号自动更正为2。

2. 返回一级列表。
  1. 数字和点开始有序列表。
    1. 注意子列表的缩进位置。
      1. 三级列表。
      2. 编号会自动更正。
    2. 二级列表,编号自动更正为2。
  2. 返回一级列表。
 rst   
1. 数字和点是一种编号方式。

   A. 大写字母编号。

      a. 小写字母编号。

2. 继续一级列表。

   (I) 大写罗马编号。

       i) 小写罗马编号。
  1. 数字和点是一种编号方式。
    1. 大写字母编号。
      1. 小写字母编号。
  2. 继续一级列表。
    1. 大写罗马编号。
      1. 小写罗马编号。
  ttl  
# 井号开始有序列表。
# 有序列表自动编号。
## 更多井号代表不同层级。
### 三级列表。
# 返回一级列表。
  1. 井号开始有序列表。
  2. 有序列表自动编号。
    1. 更多井号代表不同层级。
      1. 三级列表。
  3. 返回一级列表。
   asc 
1. 和reST一样支持多种编号方式。
a. 层级靠列表风格决定,而非缩进。
A. 三级列表。
b. 返回二级列表。
i) 罗马数字列表。
IX)  大写罗马。编号自动纠正。
2. 返回一级列表。

注解

还可以用1到5个点开始有序列表, 自动按数字、字母方式编号。如:

. 数字一级列表。
.. 字母二级列表。
... 罗马数字三级列表。
.... 大写字母四级列表。
..... 大写罗马五级列表。
  1. 和reST一样支持多种编号方式。
    1. 层级靠列表风格决定,而非缩进。
      1. 三级列表。
    2. 返回二级列表。
      1. 罗马数字列表。
        1. 大写罗马。编号自动纠正。
  2. 返回一级列表。
    org
1. 数字和点或右括号开始有序列表。

   1) 缩进即为子列表。

      1. 三级列表。
      1. 编号会自动更正。

   2) 二级列表。

2. 返回一级列表。
  1. 数字和点或右括号开始有序列表。
    1. 缩进即为子列表。
      1. 三级列表。
      2. 编号会自动更正。
    2. 二级列表。
  2. 返回一级列表。
列表续行、段落和代码块md    
1. 列表项可以折行,
   对齐则自动续行。

2. 列表项可包含多个段落。

    空行开始的新段落必须缩进四个空格,
    段落才属于列表项。

3. 列表中的代码块要缩进8个空格。

        $ printf "Hello, world.\n"
  1. 列表项可以折行, 对齐则自动续行。

  2. 列表项可包含多个段落。

    空行开始的新段落必须缩进四个空格, 段落才属于列表项。

  3. 列表中的代码块要缩进8个空格。

    $ printf "Hello, world.\n"
    
 rst   
1. 列表项可以折行,
   对齐则自动续行。

2. 列表项可包含多个段落。

   空行开始的新段落,
   新段落要和列表项内容对齐。

3. 列表下的代码段注意对齐即可。

   ::

     $ printf "Hello, world.\n"
  1. 列表项可以折行, 对齐则自动续行。

  2. 列表项可包含多个段落。

    空行开始的新段落, 新段落要和列表项内容对齐。

  3. 列表下的代码段注意对齐即可。

    $ printf "Hello, world.\n"
    
   asc 
1. 列表项可以折行,
   对齐则自动续行。

2. 列表项可包含多个段落。
+
加号代表本段落属于列表。
+
--
两个减号包裹的块作为一整体
属于列表。

其中分段无需再使用加号。
--

3. 注意列表项内代码段前空行用加号替换。
+
--------
$ printf "Hello, world.\n"
--------
  1. 列表项可以折行, 对齐则自动续行。

  2. 列表项可包含多个段落。

    加号代表本段落属于列表。

    两个减号包裹的块作为一整体 属于列表。

    其中分段无需再使用加号。

  3. 注意列表项内代码段前空行用加号替换。

    $ printf "Hello, world.\n"
    
    org
1. 列表项可以折行,
   对齐则自动续行。

2. 列表项可包含多个段落。

   空行开始的新段落,
   新段落要和列表项内容对齐。

3. 列表下的代码段注意对齐即可。

   #+BEGIN_SRC bash
     $ printf "Hello, world.\n"
   #+END_SRC
  1. 列表项可以折行, 对齐则自动续行。

  2. 列表项可包含多个段落。

    空行开始的新段落, 新段落要和列表项内容对齐。

  3. 列表下的代码段注意对齐即可。

    $ printf "Hello, world.\n"
    
定义 rst   
git
  Simple and beautiful.

hg
  Another DVCS.

subversion
  VCS with many constrains.

  Why not Git?
git
Simple and beautiful.
hg
Another DVCS.
subversion

VCS with many constrains.

Why not Git?

  ttl  
- git := Simple and beautiful.
- hg := Another DVCS.
- subversion :=
VCS with many constrains.

Why not Git? =:
git
Simple and beautiful.
hg
Another DVCS.
subversion

VCS with many constrains.

Why not Git?

   asc 
git ::
    Simple and beautiful.
hg :: Another DVCS.
subversion :: VCS with many constrains.
              +
              Why not Git?
git
Simple and beautiful.
hg
Another DVCS.
subversion

VCS with many constrains.

Why not Git?

    org
- git :: Simple and beautiful.
- hg :: Another DVCS.
- subversion :: VCS with many constrains.

                Why not Git?
git
Simple and beautiful.
hg
Another DVCS.
subversion

VCS with many constrains.

Why not Git?

分隔线md ttl  
三条短线或以上显示为分隔线。

---
输出略。
 rst   
四条短线或以上显示为分隔线。

----
输出略。
   asc 
三个或更多的单引号作为分割线。

'''
输出略。
    org
五条短线或以上显示为分隔线。

-----
输出略。
字体粗体和斜体md    
这些都是 **粗体** 或 __粗体__ ,
这写都是 *斜体* 或 _斜体_ 。
这些都是 粗体 或 粗体 , 这些都是 斜体 或斜体 。
 rst   
这是 **粗体** ,这是 *斜体* 。

不留白的\ **粗体**\ 和\ *斜体*\ 效果。

这是 粗体 ,这是 斜体 。

不留白的粗体斜体效果。

  ttl  
这些都是 *粗体* 或 **粗体** ,
这些都是 _斜体_ 或 __斜体__ 。
这些都是 粗体 或 粗体 , 这些都是 斜体 或斜体 。
   asc 
这是 *粗体* ,
这是 _斜体_ 或 '斜体' 。

不留白的**粗体**和__斜体__效果。

这是 粗体 , 这是 斜体 或 斜体 。

不留白的粗体斜体效果。

    org
这是 *粗体* ,这是 /斜体/ 。
这是 粗体 ,这是 斜体 。
删除线gfm    
~~删除线~~ 效果
删除线 效果
 rst   
.. role:: strike
   :class: strike

:strike:`删除线` 效果

不留白的\ :strike:`删除线`\ 效果

删除线 效果

不留白的删除线效果

  ttl  
-删除线- 效果
删除线 效果
   asc 
[line-through]#删除线# 效果

不留白的[line-through]##删除线##效果

删除线 效果

不留白的删除线效果

    org
+删除线+ 效果
删除线 效果
下划线md    
<u>下划线</u> 效果
下划线 效果
 rst   
.. role:: ul
   :class: underline

:ul:`下划线` 效果

不留白的\ :ul:`下划线`\ 效果

下划线 效果

不留白的下划线效果

  ttl  
+下划线+ 效果
下划线 效果
   asc 
[underline]#下划线# 效果

不留白的[underline]##下划线##效果

下划线 效果

不留白的下划线效果

    org
_下划线_ 效果
下划线 效果
上标、下标md    
* Water: H<sub>2</sub>O
* E = mc<sup>2</sup>
  • Water: H2O
  • E = mc2

注解

通过直接嵌入HTML代码实现。

 rst   
* Water: H\ :sub:`2`\ O
* E = mc\ :sup:`2`
  • Water: H2O
  • E = mc2
  ttl  
* Water: H ~2~ O
* E = mc ^2^
  • Water: H 2 O
  • E = mc 2
   asc 
* Water: H~2~O
* E = mc^2^
  • Water: H2O
  • E = mc2
    org
* Water: H_2 O
* E = mc^2
  • Water: H2 O
  • E = mc2
等宽字体md  asc 
行内反引号嵌入代码,如: `git status` 。
行内反引号嵌入代码,如: git status 。
 rst   
两个连续反引号嵌入代码,如: ``git status`` 。

两个连续反引号嵌入代码,如: git status

注解

相当于 :literal:`git status` 。 只用一个反引号则相当于 :title-reference:`引言` 。

  ttl  
行内用字符@嵌入代码,如: @git status@ 。
行内用字符@嵌入代码,如: git status 。
   asc 
行内用字符+标识等宽字体,如: +git status+ 。
行内用字符+标识等宽字,如: git status
    org
行内用字符=或~嵌入代码,如:
=git status= 和 ~git st~ 。
行内用字符=或~嵌入代码,如: git status和 git st 。
引言 rst   
`Got GitHub` by Jiang Xin.
Got GitHub by Jiang Xin.
  ttl  
??Got GitHub?? by Jiang Xin.
Got GitHub by Jiang Xin.
清除标记空白 rst   
标记符号前后空白\
用\ **反斜线**\ 消除
标记符号前后空白用反斜线消除
链接URL自动链接gfmrst ascorg
* 网址 http://github.com/
* 邮件 me@foo.bar
文字链接md    
* 访问 [Google](http://google.com "Search")
* 访问 [GitHub][1]
* 访问 [WorldHello][]

 [1]: http://github.com "Git host"
 [worldhello]: http://www.worldhello.net
 rst   
* 访问 `Google <http://google.com/>`_ 。
* 上面已定义,直接引用 google_ 链接。
* 链接地址在后面定义,如: GitHub_ 。
* 反引号括起多个单词的链接。如 `my blog`_ 。

.. _GitHub: http://github.com
.. _my blog: http://www.worldhello.net
  • 访问 Google
  • 上面已定义,直接引用 google 链接。
  • 链接地址在后面定义,如: GitHub
  • 反引号括起多个单词的链接。如 my blog
  ttl  
* 访问 "Google (Search)":https://google.com
* 访问 "GitHub (Git host)":github
* 访问 "WorldHello":wh

[github]http://github.com
[wh]http://www.worldhello.net
   asc 
* 访问 http://google.com[Google]
* 访问 link:/index.html[首页]
    org
* 访问 [[http://google.com][Google]]
内部跳转md    
<a name="md-anchor" id="md-anchor"></a>

跳转至 [文内链接](#md-anchor) 。

跳转至 文内链接 。

 rst   
.. _fig1:

.. figure:: /images/github.png

   内部跳转图例

上面定义的位置,可以:

* 通过 fig1_ 跳转。
* 或者 `点击这里 <#fig1>`__ 跳转。
* 或者参见 :ref:`fig1`\ 。
../images/github.png

内部跳转图例

上面定义的位置,可以:

  ttl  
<a name="ttl-anchor" id="ttl-anchor"></a>

跳转至 "文内链接":#ttl-anchor 。

跳转至 文内链接 。

   asc 
两种方式在这儿定义内部链接。

[[alink1,链接标题1]]
anchor:alink2[链接标题2]

指向位置:

- 跳转至 <<alink1,内部链接1>>
- 跳转至 xref:alink2[]

两种方式在这儿定义内部链接。

指向位置:

    org
# <<org-anchor>>

跳转至 [[#org-anchor][文内链接]]

跳转至 文内链接 。

GitHub提交和问题链接gfm    
* SHA: cea00609ca8441c82bc9760ae5eea...
* User@SHA ref: mojombo@cea00609ca84...
* User/Project@SHA:
  mojombo/god@cea00609ca8441c82bc976...
* \#Num: #1
* User/#Num: mojombo#1
* User/Project#Num: mojombo/god#1
  • SHA: cea00609ca8441c82bc...
  • User@SHA ref: mojombo@cea00609ca8...
  • User/Project@SHA: mojombo/god@cea0060... [19]
  • #Num: #1
  • User/#Num: mojombo#1
  • User/Project#Num: mojombo/god#1 [20]
脚注 rst   
reST脚注的多种表示法:

* 脚注即可以手动分配数字 [1]_ ,
  也可以使用井号自动分配 [#]_ 。

* 自动分配脚注 [#label]_ 也可以用
  添加标签形式 [#label]_ 多次引用。

* 还支持用星号嵌入符号式脚注,
  如这个 [*]_ 和 这个 [*]_ 。

* 使用单词做标识亦可 [CIT2012]_ 。


.. [1] 数字编号脚注。
.. [#] 井号自动编号。
.. [#label] 井号添加标签以便多次引用。
.. [*] 星号自动用符号做脚注标记。
.. [*] 星号自动用符号做脚注标记。
.. [CIT2012] 单词或其他规定格式。

reST脚注的多种表示法:

  • 脚注即可以手动分配数字[1], 也可以使用井号自动分配[2]
  • 自动分配脚注[3]也可以用添加标签形式[3]多次引用。
  • 还支持用星号嵌入符号式脚注, 如这个[*]和 这个[†]
  • 使用单词做标识亦可[CIT2012]
[1]数字编号脚注。
[2]井号自动编号。
[3] (12) 井号添加标签以便多次引用。
[*]星号自动用符号做脚注标记。
[†]星号自动用符号做脚注标记。
[CIT2012]单词或其他规定格式。
  ttl  
Textile是Redmine [4] 内置的标记语言。

fn4. http://goo.gl/rGyvs

Textile是Redmine [4] 内置的标记语言。

[4]http://goo.gl/rGyvs
   asc 
- 内联方式 footnote:[此处定义] 定义的脚注。
- 定义脚注时可用一个ID标记
  footnoteref:[note6, 可多次引用] 。
- 引用已定义的脚注 footnoteref:[note6] 。
  • 内联方式 [5] 定义的脚注。
  • 定义脚注时可用一个ID标记 [6] 。
  • 引用已定义的脚注 [6] 。
[5]此处定义
[6] (12) 可多次引用
    org
Twitter widget in Org homepage[fn:org]
cannot be accessed in Mainland China, which
caused the homepage load very slowly. >:[

[fn:org] The link is: http://orgmode.org

Twitter widget in Org homepage [7]cannot be accessed in Mainland China, which caused the homepage load very slowly. >:[

[7]The link is: http://orgmode.org
图片md    
![GitHub](/images/github.png "Logo")

GitHub Logo: ![GitHub][logo]

[logo]: /images/github.png "Logo"
../images/github.png

GitHub Logo: logo

 rst   
.. figure:: /images/github.png
   :width: 32

   图:GitHub Octocat

* GitHub Logo: |octocat|
* 带链接的图片:
  |imglink|_
* 下图向右浮动。
   .. image:: /images/github.png
      :align: right

.. |octocat| image:: /images/github.png
.. |imglink| image:: /images/github.png
.. _imglink: https://github.com/
../images/github.png

图:GitHub Octocat

  • GitHub Logo: octocat

  • 带链接的图片: imglink

  • 下图向右浮动。
    ../images/github.png
  ttl  
* GitHub Logo: !/images/github.png(Logo)!
* 带链接的图片:
  !/images/github.png!:https://github.com/
* 下图向右浮动。
  !>/images/github.png!
  • GitHub Logo: icon

  • 带链接的图片: imglink2

  • 下图向右浮动。
    ../images/github.png
   asc 
.GitHub Octocat
image::/images/github.png["Logo",width=32]

- GitHub Logo:
  image:/images/github.png["Logo"]
../images/github.png

图:GitHub Octocat

  • GitHub Logo: ascimg
    org
* GitHub Logo: [[file:/images/github.png]]
* 带链接的图片:
  [[https://github.com/][file:/images/...]]
  • GitHub Logo: orgimg
  • 带链接的图片: orgimglink
表格gfm    
head1 | head2  | head2
------|:------:|------:
left  | center | right
left  | center | right
head1head2head3
leftcenterright
leftcenterright
 rst   
.. table:: 示例表格
   :class: classic

   +---------+--------+--------+
   | head1   | head2  | head3  |
   +=========+========+========+
   |         | cell   | cell   |
   | rowspan +--------+--------+
   |         | * colspan       |
   |         | * another line  |
   +---------+-----------------+
示例表格
head1head2head3
rowspancellcell
  • colspan
  • another line
  ttl  
|_. head1 |_. head2 |_. head3 |
|/3. rowspan | cell  | cell |
|\2. colspan |
| cell | cell |
示例表格
head1head2head3
rowspancellcell
colspan
cell | cell
   asc 
[width="50%"]
|============================
|1 |2 |3 |4
|5 2.2+|6 .3+|7
|8
|9 2+|10
|============================
1234
567
8
910
    org
#+CAPTION: 示例表格
#+LABEL: tblref
   | head1 | head2 | head3 |
   |-------+-------+-------|
   | cell  | cell  | cell  |
   | cell  | cell  | cell  |
示例表格
head1head2head3
cellcellcell
cellcellcell
其他混用HTMLmd    
<div style="background:#bbb;">
  HTML块中不能混用 **标记语法**
</div>
输出略。
   ttl  
<div style="background:#bbb;">
  HTML块中可以混用 **标记语法**
</div>
输出略。
禁止语法解析 rst   
反斜线作为转义字符,\
禁止对后面 \*字符\* 做语法解析。
反斜线作为转义字符,禁止对后面 *字符* 做语法解析。
  ttl  
用 notextile 标记的段落不进行语法解析。

notextile. 不进行 *语法解析* 。

用 notextile 标记的段落不进行语法解析。

不进行 *语法解析* 。

注释 rst   
.. 注释

..
   缩进内容也是注释
无输出。
   asc 
/
四个或更多的斜线包围起来的
文字块是注释,被忽略。
/
无输出。
    org
# 行首井号是注释。

  #+ 缩进行首用 ``#+`` 标记为注释。


  #+BEGIN_COMMENT
   块注释
   ...
  #+END_COMMENT
无输出。

注解

部分标记语言代号后添加了星标,代表该标记语言相应的语法实现稍有区别,或者GitHub的具体实现和标准有出入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以给你一些代码,可以让你使用Markdown语言记录你的刷题记录:``` # 刷题记录## 今日刷题- 题目 1: - 解答:- 题目 2: - 解答:## 昨日刷题- 题目 1: - 解答:- 题目 2: - 解答: ``` ### 回答2: 生成一个markdown语言的代码刷题记录可以通过以下步骤完成: 1. 创建一个markdown文件,命名为"刷题记录.md",并打开编辑器。 2. 在文件中添加一个标题,例如"刷题记录"。 3. 在下方添加一个表格,表格包含以下列:日期、题目名称、题目难度、代码链接、思路。 4. 为每一道题目添加一行记录,按照日期倒序排列。每行填写相应的信息,包括日期、题目名称、题目难度、代码链接和思路。 示例: | 日期 | 题目名称 | 题目难度 | 代码链接 | 思路 | | -------- | ------------ | ---------- | ----------- | -------- | | 2021/1/1 | 两数之和 | 简单 | [代码链接]() | 思路描述 | | 2021/1/2 | 反转链表 | 中等 | [代码链接]() | 思路描述 | | 2021/1/3 | 接雨水 | 困难 | [代码链接]() | 思路描述 | | ... | ... | ... | ... | ... | 5. 在代码链接处添加相应题目的代码链接,可以使用GitHub或Gist等代码托管平台。 6. 在思路处添加题目解法的思路描述,可以简要概括解法的关键步骤或思想。 完成以上步骤后,保存并关闭markdown文件。这样就生成了一个简单的代码刷题记录,方便查看和整理自己的刷题历程,以及回顾解题思路。 ### 回答3: 生成一个markdown语言的代码刷题记录可以按照以下步骤进行: 1. 首先创建一个markdown文件,可以以`.md`为扩展名,比如`leetcode.md`。 2. 在markdown文件中使用标题,表示题目的名称和难度。比如: ``` # [题目名称](题目链接) - 难度 ``` 3. 接下来,按照以下格式记录每道题目的代码和解题思路: ``` ## 题目描述 题目的具体描述和要求。 ## 解题思路 解题的思路和步骤。 ## 代码实现 使用适当的代码块标记,插入代码。 ```python # Python代码示例 解法代码 ``` ```cpp // C++代码示例 解法代码 ``` ## 复杂度分析 对解法进行时间复杂度和空间复杂度的分析。 ## 总结 对题目和解法进行总结。 ``` 4. 按照上述格式记录完每道题目的代码和解题思路后,保存markdown文件。 5. 在记录新的刷题内容时,可以按照上述格式在文件后面追加新的题目记录。 总结起来,生成一个markdown语言的代码刷题记录,需要创建一个markdown文件,并按照一定的格式记录每道题目的代码和解题思路。这样可以方便地查看每道题目的代码和解法,并进行总结和复习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值