# 行內語法

本頁列出 NanoMD 支援的行內格式、跳脫字元與換行規則。

## 字型格式

| 語法 | 輸出 | 標準模式 |
|---|---|---|
| `**text**`、`__text__` | `<strong>` | 支援 |
| `*text*`、`_text_` | `<em>` | 支援 |
| `~~text~~` | `<s>` | 支援 |
| `==text==` | `<mark>` | 不支援 |
| `^text^` | `<sup>` | 不支援 |
| `~text~` | `<sub>` | 不支援 |
| `` `text` `` | `<code>`（內容先跳脫 HTML） | 支援 |

## 比對規則

| 規則 | 說明 |
|---|---|
| 不跨行 | 記號與內容必須在同一行 |
| 內容不可含同一記號 | `**a*b**` 不會被當成粗體 |
| 前後不可為空白 | `** text **` 保留原文 |
| 不成對 | 落單的記號保留原文，例如 `b**` |
| 粗斜體 | `***text***` 輸出 `<em><strong>text</strong></em>` |

行內 code 只處理單一反引號；`` `` `x` `` `` 這種雙反引號寫法會留下外層的 ` `` `。

## 跳脫

在下列字元前加 `\` 可避免被解讀為語法，輸出時轉成 HTML entity：

| 寫法 | 輸出 |
|---|---|
| `\!` `\#` `\*` `\_` `\~` `\^` `\=` | `&excl;` `&num;` `&ast;` `&lowbar;` `&tilde;` `&Hat;` `&equal;` |
| `\<` `\>` `\[` `\]` `\(` `\)` | `&lt;` `&gt;` `&lsqb;` `&rsqb;` `&lpar;` `&rpar;` |
| `` \` `` | `&grave`（v1.11.6 缺少結尾分號） |

v1.11.6 中 `$` 會輸出成 `@dollar@`，跳脫也無法避免，原因見 [轉換管線](/parsing-pipeline)。

## 換行與段落

| 原文 | 輸出 |
|---|---|
| 單一換行 | 保留 `\n`；`.pd-md-viewer` 未設 `white-space: pre-wrap`，瀏覽器視為空白，不會斷行 |
| 一個或多個連續空行 | 一個 `<br>` |

NanoMD 不產生 `<p>` 段落元素。

## 原始 HTML

內文中的 HTML 標籤原樣輸出，可用來補 Markdown 沒有的格式，例如 `<u>底線</u>`、`<details>`。這也代表內容不受信任時需要自行過濾，見 [安全性](/security)。
