關於markdown需要澄清的一些誤解


關於markdown需要澄清的誤解:

首先, 最大的一個誤解就是 轉義! markdown不支持對小於號 < 的轉義, 如 <"pre">, 這時候仍然會認為是一個pre標簽的! 所以, 不能用\來消除html標簽,只有 * 才會被\所轉義.

Markdown中,以下字符支持使用反斜線轉義:
\   反斜線
`   反引號
*   星號
_   下划線
{}  大括號
[]  中括號
()  小括號
#   井號
+   加號
-   減號(連字符)
.   句點
!   感嘆號

markdown 本身也支持 html標簽.

對Markdown語法無法支持的格式,你可以直接用HTML。你不需要事先聲明或者使用什么定界符來告訴
Markdown要寫HTML了,你直接寫就是了,如鏈接a, 圖片img等.

markdown也要區分塊級元素和行內元素

唯一的限制是那些塊級HTML元素 -- 如 div,table, pre, p等等 -- 必須使用(至少1行)空行
與相鄰內開, 並且塊元素的開始和結束標簽之前不要留有空格或TAB。

注意一點,不要在塊級HTML元素內使用Markdown格式化命令,Markdown不會處理它們。比如你不要在一個
HTML塊中使用 * emphasis * 這樣的Markdown格式化命令. 但是, 不同於這些塊級HTML元素,在HTML行內元素內的
Markdown語法標記會被正確處理


關於這一點的理解是: (下面的列表,即使第一個列表的數字寫成10, 仍然會從1開始排列)
10. 是說markdown中, 本身是不需要(不是不能)你顯式的去寫 div p pre hr hx等等這些標簽的, 只要你的寫法正確, md會自動的為你生成這些標簽的
20. 是說如果你用markdown寫的東西, 對應翻譯成html后, 是html中的塊級元素 的時候, 你就要在這個內容的前后都要用空行進行分隔.
30. 比如說, 用三個/以上的 *** 可以生成水平線hr, 由於hr是html中的塊級元素, 所以在markdown中, 這三個 *** 要用前后空行來分隔.就是這個意思,如果不這樣前后分隔, md就不認為是 水平線, 還是照原樣輸出 三個星號.

引用塊 (markdown中的名字 都叫"什么塊")

方法1: 如果每一行你都使用硬換行並在行首(注意, 是行首!)放一個>符號,看上去會很美觀
方法2: (如果覺得每行寫一個>太累)Markdown允許你偷懶,你只需在 硬換行段落 的第一行之前放一個>號,
只需要多加一個>,就得到嵌套的引用塊(即引用塊中的引用塊)
使用兩個>, (注意中間有一個空格) > This is nested blockquote.可以得到嵌套的引用塊.
引用塊中可包含其它Markdown元素,如標題、列表和代碼塊

代碼塊 (不同於引用塊)

我們經常在寫有關編程或標記語言源代碼時用到預格式化的代碼塊。不像格式化普通段落,代碼塊中的行會
按字面進行解釋。Markdown對代碼塊同時使用pre 和 code標簽包裹, 生成pre code...
在Markdown中要生成一個代碼塊,只需要在代碼塊內容的每一行縮進至少四個空格或者一個TAB。
Markdown不會解析代碼塊中的Markdown標記。如代碼塊中的星號就是星號,失去了它原來的Markdown含義

要注意代碼塊用tab或四個空格縮進時, 一定要前后用空行分隔
因為這是代碼塊, 是塊元素, 所以,必須前后用空行分隔
這里注意, 如果下面的代碼 前后沒有空行, 則不會是代碼塊, 其中的超鏈接a和p/span/style都會被解釋執行!!

這里注意, 如果下面的代碼 前后沒有空行, 則不會是代碼塊, 其中的超鏈接a和p/span/style都會被解釋執行!!;
<a href="/index.php">跳轉首頁</a>
<p><span style="color: red">代碼塊, 前后沒有空行分隔</span></p>
<font color="red">但是要注意, 雖然有縮進, 但是輸出的內容不會有 縮進(因為是代碼塊)</font>

代碼塊前后用空行分隔, 則生成帶灰色背景並且有邊框的代碼塊
帶灰色背景並且有邊框的, 才是代碼塊.否則就不是代碼塊.

另外一種代碼塊的方法是: 用反引號, 一個或2個 或3個反引號

在實際應用中, 感覺用反引號, 來實現代碼塊, 更方便, 更直接, 更不會出錯!

實際上, 不管是, 不管使用tab還是使用反引號 ```, 都要在代碼塊的前后 都要空出一個 空行.才能保證真的是生成代碼塊了.

反引號本身``` 跟里面的內容之間是否留有空行無關!

列表?

無序列表用星號, 加號, 減號 加一個空格
有序列表用數字加英文句點.
有一點需要注意,你在列表中輸入的標記數字並不會反映到Markdown輸出的HTML之中。默認的會輸出ul>li
要點在於,如果你願意,就在你的Markdown有序列表里順序使用數字(這樣源代碼里的順序和生成的順序會一致),
如果你希望省點兒事,你就不用費心(去手工編號)
如果你打算偷懶,記住列表的第一行使用數字 1

要在列表項中使用引用,引用定界符 > 需要用tab縮進1次.
要在列表項中使用代碼塊,代碼塊需要縮進兩次 -- 8個空格或者兩個TAB

水平線

如果在一行里只放三個或更多個連字符,或星號或下划線,(注意沒有等號!)你就會得到一個水平線標記hr

鏈接

這是一個鏈接

強調

一個* 是em強調, 兩個* 才是strong. 三個* 是em和strong的綜合效果, 即:加粗同時傾斜.


舉例:

水平線:
(*** 和---沒有前后空行分隔, 不能生成hr水平線?)




====

等號不能生成hr, 雖然前后都有空行分隔.

以下是引用塊的例子

這是引用塊
這是引用塊, 每行都寫 > 符號
這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊, 只在"硬回車" 段落的行首用 > 符號.
這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊這是引用塊

這是嵌套引用塊

這是嵌套引用塊

以下是代碼塊的例子

    <?php
        echo 'abc';
        printf('your name is %s', $_POST['username']);
    ?>

以下是列表 中使用引用塊和 代碼塊

  • 列表中使用引用塊:

    列表中的引用塊, 必須要用1個 tab縮進
    列表中的引用塊, 必須要用1個 tab縮進

  • 列表中使用代碼塊

  • 列表中使用代碼塊

      <?php
          // 列表中使用代碼塊, 至少要兩個tab縮進
          class IndexAction extends Action {
              function index() {
                  echo "thinkphp...";
              }
           }
      ?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM