# 用 Markdown 寫作

用熟悉的 Markdown 撰寫草稿，並產生 PDF 或供協作者使用的可編輯文件。

Markdown 很適合用來寫研究筆記、報告與早期草稿。Oleafly 為它提供專用的格式工具列與 Pandoc 建置路徑，原始碼檔案在應用程式之外也能使用。

## 製作報告

1. 選擇 **「新增專案 → 使用範本 → Blank Markdown document」**。
2. 將專案命名為 **「Field notes」**，並開啟 `main.md`。
3. 貼上這個範例，然後選擇 **「重新編譯」**，或按 **⌘Enter / Ctrl+Enter**。
4. 如果 Oleafly 提議設定所需的引擎，請完成設定並再次編譯。

```markdown title="main.md"
---
title: "Field notes"
author: "Alex Chen"
date: ""
---

# Question

Does the revised procedure reduce measurement time?

## Method

1. Prepare the sample.
2. Repeat the measurement three times.
3. Record the elapsed time.

## Observations

| Run | Time (s) | Note |
| --- | --- | --- |
| 1 | 12 | First pass |
| 2 | 10 | Repeated pass |

The **mean time** will be compared with the baseline.
```

PDF 應該會包含標題、各級標題、編號清單與表格。第一對 `---` 之間的中繼資料，控制文件的標題與作者。

## 原始碼與視覺化編輯

工具列開頭的切換開關有三種模式。**「程式碼」** 直接編輯 Markdown。**「視覺化」** 為標題、段落、清單、連結、影像與表格提供格式化的編輯。**「兩者」** 同時顯示原始碼與格式化後的文字。開啟它的選單，可以選擇 **「上下」** 或 **「分割」**。新專案以程式碼模式開啟，而且每個專案都會記住你離開時的模式。

底線、醒目提示、上標與下標，是程式碼模式下的 Pandoc 格式控制項。它們的按鈕在視覺化模式下會隱藏。處理中繼資料、引用語法或其他原始碼結構時，請使用程式碼模式。

[下載範例原始碼](/examples/writing-example.md)

## 每一個工具列工具

點擊格式控制項之前，請先選取文字。在程式碼模式下，大多數工具會包住選取的內容，或插入佔位文字。開啟 **「更多格式選項」**（`…`），就能使用放不進列中的控制項。

### 程式碼 / 視覺化

在 **「程式碼」**、**「視覺化」** 與 **「兩者」** 之間切換。在每一種模式下，文件都仍是 Markdown 原始碼。

### 復原

復原上一次編輯。⌘Z / Ctrl+Z。

### 重做

還原已復原的編輯。**⌘Shift+Z / Ctrl+Shift+Z**。

### 標題 → 標題

從標題選單選擇 **「標題」**，插入 `# Title`。把標題文字換成你自己的標題。

### 標題 → 章節

從標題選單選擇 **「章節」**，插入 `## Section`。把標題文字換成你自己的標題。

### 標題 → 小節

從標題選單選擇 **「小節」**，插入 `### Subsection`。把標題文字換成你自己的標題。

### 標題 → 次小節

從標題選單選擇 **「次小節」**，插入 `#### Subsubsection`。把標題文字換成你自己的標題。

### 標題 → 次要標題

從標題選單選擇 **「次要標題」**，插入 `##### Minor heading`。把標題文字換成你自己的標題。

### 標題 → 段落標題

從標題選單選擇 **「段落標題」**，插入 `###### Paragraph heading`。把標題文字換成你自己的標題。

### 項目符號清單

開始一個無序清單。`- Item`。

### 編號清單

開始一個編號序列。`1. Item`。

### 待辦清單

在程式碼模式下，加入一項任務，完成時把 `[ ]` 改成 `[x]`。`- [ ] Task`。

### 引述區塊

把引文放在獨立的一行。`> quoted text`。

### 粗體

強調選取的文字。`**text**`；⌘B / Ctrl+B。

### 斜體

強調一個詞。`*text*`；⌘I / Ctrl+I。

### 刪除線

把文字標示為已被取代。`~~text~~`。

### 行內程式碼

格式化檔名、指令或識別字。以反引號包住的文字。

### 底線

在程式碼模式下選取一個片語。`[text]{.underline}`。

### 醒目提示

在程式碼模式下選取一個片語。`[text]{.mark}`。

### 上標

在程式碼模式下選取指數。`^text^`。

### 下標

在程式碼模式下選取下標。`~text~`。

底線與醒目提示使用 Pandoc 屬性，讓格式能帶進 PDF。請使用這些控制項，而不要在稿件中加入原始 HTML 標籤。

### 插入連結

在 **「程式碼」** 模式下：插入 `[link text](url)`。把兩個佔位文字都換掉。

在 **「視覺化」** 模式下：開啟 **「連結 URL」**。輸入位址並套用到你的選取範圍。使用 **「移除連結」** 可保留文字但去掉連結。

### 插入影像

在 **「程式碼」** 模式下：插入 `![caption](image-filename)`。把路徑與圖說換掉。

在 **「視覺化」** 模式下：開啟 **「影像檔案」**。輸入專案路徑，例如 `figures/plot.png`，然後套用。

### 插入表格

在 **「程式碼」** 模式下：插入三欄、一列標題與兩列資料。把欄名與儲存格換掉。

在 **「視覺化」** 模式下：插入一個可編輯的表格，起始大小相同。

### 繪製圖表

以 Mermaid 模式開啟[圖表編排器](/docs/figures-diagrams/)。在畫布上繪製流程圖或編輯 Mermaid 程式碼，然後選擇 **「以 Mermaid 插入」**，把它以圍欄式 `mermaid` 程式碼區塊加到游標處。請參閱 [Mermaid 圖表](#mermaid-diagrams)。

### 文件分析

依原始碼順序列出文件的標題、圖片、表格、公式、標籤、引用與待辦事項，每一項都連結到它所在的行。它也會從前置資料讀取標題、作者、關鍵字、日期與摘要，並可複製它們，用於投稿表單。請參閱[文件分析](/docs/document-insights/)。

### 文件設定

變更文件類別、頁面大小、欄數、邊界、內文字型、字型大小、語言、行距與章節編號。Oleafly 會把你的選擇寫進 Pandoc 讀取的 YAML 前置資料，如果檔案沒有前置資料區塊，則會加上一個。請參閱[文件設定](/docs/document-settings/#markdown)。

### 專案資訊

在 **「程式碼」** 模式下：顯示專案統計與選取範圍的資訊。

在 **「視覺化」** 模式下：顯示視覺化編輯介面的統計。

### 尋找

在 **「程式碼」** 模式下：用 ⌘F / Ctrl+F 開啟使用中檔案的搜尋。

在 **「視覺化」** 模式下：原始碼工具列的尋找按鈕會隱藏。

在引用影像之前，請先透過檔案樹匯入它。讓影像路徑保持相對於稿件，這樣原始碼壓縮檔在另一台電腦上也能運作。

## 公式與程式碼區塊

行內數學式寫成 `$x^2$`。把行間公式放在兩組美元符號之間：

```markdown
$$
\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_i
$$
```

程式碼範例請用三個反引號把程式碼包住，並把語言放在起始圍欄之後。這些是原始碼結構；Markdown 工具列沒有獨立的公式或圍欄式程式碼區塊按鈕。

## Mermaid 圖表

選擇工具列上的 **「繪製圖表」**，在圖表編排器中製作 Mermaid 流程圖。**「以 Mermaid 插入」** 會把它以圍欄式程式碼區塊加入：

````markdown
```mermaid
flowchart LR
  A[Sample] --> B[Measure]
```
````

在 **「兩者」** 模式下，格式化的一側會把該區塊繪製成圖表。PDF 需要影像，所以編排器也會把轉換好的 PNG 儲存到 `figures/mermaid-<hash>.png`，編譯時會用該影像取代這個區塊。因此圖表也會出現在編譯後的 PDF 中。如果之後你手動編輯該區塊，PDF 會顯示程式碼，直到你再次從編排器插入或儲存圖表為止。請參閱 [Markdown 文件中的 Mermaid](/docs/figures-diagrams/#mermaid-in-markdown-documents)。

## 引用與參考文獻

匯入或建立 `references.bib`，在 YAML 中繼資料加入 `bibliography: references.bib`，並用 `[@citation-key]` 引用既有的鍵。Pandoc 會使用參考文獻來產生格式化的引用與參考文獻清單。

[尋找與管理參考文獻 →](/docs/citations/)

## 匯入與匯出

若要讓既有的草稿繼續使用 Markdown，請建立 Blank Markdown document，把草稿貼進 `main.md`，並匯入它的影像與參考文獻。專案庫中另外的 **「Markdown 文件」** 匯入目前會把草稿轉換成 LaTeX。[匯入途徑](/docs/import-project/)說明了這兩條路徑。

編譯成 PDF，或使用 **「匯出」** 建立 Word、HTML、Typst、LaTeX 或純文字。用原始碼 ZIP 分享原始的 Markdown 與它的資源。[匯出你的作品](/docs/export/)涵蓋流程，以及在轉換後的檔案中該做的檢查。
