功能介紹
===
**[English version](/features)**
**[中文版](/features-tw)**
**[日本語版](/features-jp)**
### [:point_right:看此筆記的原始碼 :point_left:](/features-tw?both)
### :point_right: [閱讀完整教學](https://hackmd.io/c/tutorials-tw) :point_left:
簡介
===
<i class="fa fa-file-text"></i> **HackMD** 是個跨平台的 Markdown 即時協作知識庫
您可以在**電腦、平板甚4至是手機**與其他人協作筆記!
#### 別錯過 HackMD 的最新消息、新功能預告 快按讚FB粉絲專頁或加入DC群吧~
- 至 [GitHub](https://github.com/hackmdio/hackmd-io-issues/issues/new) 回報問題
- 客服信箱 :mailbox: support@hackmd.io
- <i class="fa fa-file-text"></i> 在 [Twitter](https://twitter.com/hackmdio) 上面提及 `@hackmdio`
- <i class="fa fa-file-text"></i> [Facebook fanpage](https://www.facebook.com/hackmdio)
- <i class="fa fa-file-text"></i> [Discord channel](https://discord.gg/rAkfPd5Z)
工作區
===
## 模式
**電腦 & 平板**
| 圖標 | |
| :--------: | -------- |
| <i class="fa fa-pencil fa-fw"></i> 編輯|只看到編輯器|
| <i class="fa fa-eye fa-fw"></i> 檢視|只看到結果|
| <i class="fa fa-columns fa-fw"></i> 雙欄|同時看到兩邊|
| <i class="fa fa-plus"></i> 建立|建立新筆記或團隊筆記|
| <i class="fa fa-search"></i> 尋找|搜尋你個人或參與團隊的筆記|
| <i class="fa fa-question"></i> 協助|常見編輯功能提示、教學文件|
| <i class="fa fa-share-alt"></i> 分享|設定筆記分享閱讀、編輯權限|
**手機**
| 圖標 | |
| :--------: | -------- |
| <i class="fa fa-pencil fa-fw"></i> 編輯|只看到編輯器|
| <i class="fa fa-eye fa-fw"></i> 檢視|只看到結果|
| <i class="fa fa-plus"></i> 建立|建立新筆記或團隊筆記|
| <i class="fa fa-share-alt"></i> 分享|設定筆記分享閱讀、編輯權限|
|<i class="fa fa-bars" aria-hidden="true"></i> |查看更多功能|
## 上傳圖片
只要按下這個按鈕 ![image](https://hackmd.io/_uploads/rkKN5m6AR.png =40x)
或是 **拖放** 圖片到編輯器,甚至 **貼上** 圖片也可以喔!
拖放或貼上圖片到編輯器,都會自動將上傳圖片至 HackMD,啥都不必煩惱了 :tada:
:::info
:bulb: 免費方案使用者可上傳單檔最大 1 MB,付費使用者最大可上傳 20 MB。
:::
## 分享筆記
按下選單右上角的分享按鈕 <i class="fa fa-share-alt"></i>,然後再按 **複製** 按鈕將筆記網址複製到您的剪貼簿
如果您想自訂筆記的固定網址,請閱讀 **[用固定網址發布筆記](https://hackmd.io/c/tutorials-tw/%2Fs%2Fhow-to-share-note-tw)**
## 儲存
目前可以儲存至 **Dropbox** <i class="fa fa-dropbox"></i>、**Google Drive**、**Gist <i class="fa fa-github"></i>** 或是存放 **.md** <i class="fa fa-file-text"></i> 到您的本機
## 匯入
就像上面的儲存功能,您可以從 **Dropbox** <i class="fa fa-dropbox"></i>、**Google Drive**、**Gist <i class="fa fa-github"></i>** 匯入 **.md** <i class="fa fa-file-text"></i>
或是從 **剪貼簿** <i class="fa fa-clipboard"></i> 匯入,而且這可以轉換 **HTML** 喔 :smiley:
## 權限
請按選單右上角的分享按鈕 <i class="fa fa-share-alt"></i>,按下之後您會看到分享選單
對於筆記的 **可閱讀**、**可編輯** 權限,您可以選擇:**擁有者**、**已登入者**、**所有人**
對於筆記的 **留言** 權限,請先在分享選單中按 **更多設定** 的按鈕,您可以選擇:**不開放留言**、**擁有者**、**已登入者**、**所有人**
您也可以透過留言選項右上角的 開關 <i class="fa fa-toggle-on"></i> ,直接關閉留言功能
**只有筆記的擁有者可以更改權限**
若要邀請特定使用者到某篇筆記,請閱讀 **[如何邀請其他人](https://hackmd.io/c/tutorials-tw/%2Fs%2Finvite-tw)**
## 嵌入
筆記可以使用 iframe 被嵌入,如下:
```xml
<iframe width="100%" height="500" src="https://hackmd.io/features" frameborder="0"></iframe>
```
或是您也可以使用嵌入語法來無縫引用筆記,請閱讀 **[在筆記中嵌入另一篇筆記](https://hackmd.io/c/tutorials-tw/%2Fs%2Fhow-to-embed-note-tw)**
## [簡報模式](/slide-example)
您可以使用一些語法將您的筆記分成投影片
然後用 **簡報模式** <i class="fa fa-tv"></i> 來展示,詳細請至上連結
## [書籍模式](/book-example)
您可以將您的筆記彙整成一本書
請將您的筆記連結列成清單
然後用 **書籍模式** <i class="fa fa-book"></i> 來展示,詳細請至上連結
檢視
===
## 目錄
請您看檢視區塊的右下角,有個 _目錄_ 的小按鈕 <i class="fa fa-bars"></i>
按下它會顯示目前的 _目錄_,而且會標明您所在的區塊
如果檢視區塊寬度足夠,目錄就會直接在檢視區塊的右方展開
目前支援顯示到 **第三階段的標題**
## 標題連結
每個標題都會在左側自動加上連結
您可以在滑到上面並且按 <i class="octicon octicon-link"></i> 移到那個錨點
編輯
===
## 快速鍵
跟又快又方便的 Sublime text 很像
> 更多訊息請至 [這裡](https://codemirror.net/demo/sublime.html)
## 自動完成
提供完整的 Markdown 自動完成與提示
- 表情符號:輸入 `:` 顯示提示
- 程式碼區塊:輸入 ` ``` ` 加上一個字元後顯示提示 <i style="display: none;">```</i>
- 標題:輸入 `#` 顯示提示
- 參考:輸入 `[]` 顯示提示
- 外部:輸入 `{}` 顯示提示
- 圖片:輸入 `!` 顯示提示
## 標題
會使用 **第一個第一級標題** 作為筆記標題
## 標籤
如同以下方式來使用標籤,它們會顯示在您的筆記列表
###### tags: `功能` `酷` `更新`
## YAML metadata
提供描述筆記的資訊,以進階設定瀏覽行為,僅支援以下功能
- slideOptions: 設定簡報模式的選項
## ToC:
請使用此語法 `[TOC]` 將目錄嵌入到您的筆記之中
[TOC]
## 表情符號
您可以像是這樣使用表情符號 :smile: :smiley: :cry: :wink:
> 完整的表情符號列表 [在這裡](https://github.com/ikatyang/emoji-cheat-sheet)
## 待辦清單
- [ ] 待辦
- [x] 買些沙拉
- [ ] 刷牙
- [x] 喝水
## 程式碼區塊
我們支援非常多程式語言,使用自動完成來看看有些什麼
```javascript=
var s = "JavaScript syntax highlighting";
alert(s);
function $initHighlight(block, cls) {
try {
if (cls.search(/\bno\-highlight\b/) != -1)
return process(block, true, 0x0F) +
' class=""';
} catch (e) {
/* handle exception */
}
for (var i = 0 / 2; i < classes.length; i++) {
if (checkCondition(classes[i]) === undefined)
return /\d+[\s/]/g;
}
}
```
> 如果想要 **行號**,在表明程式語言之後輸入 `=`
> 您也可以指定開始行號,如下所示,行號從101開始
```javascript=101
var s = "JavaScript syntax highlighting";
alert(s);
function $initHighlight(block, cls) {
try {
if (cls.search(/\bno\-highlight\b/) != -1)
return process(block, true, 0x0F) +
' class=""';
} catch (e) {
/* handle exception */
}
for (var i = 0 / 2; i < classes.length; i++) {
if (checkCondition(classes[i]) === undefined)
return /\d+[\s/]/g;
}
}
```
> 或是可以接續上一個程式碼區塊的行號,使用 `=+`
```javascript=+
var s = "JavaScript syntax highlighting";
alert(s);
```
> 有時候會有超長且沒有換行的文字,這時候使用 `!` 來將程式碼折行顯示
```!
When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back.
```
## 引用區塊標籤
> 您可以使用以下語法,表明自己的 **姓名、時間與顏色** 並與其他的引用區塊做區別
> [name=ChengHan Wu] [time=Sun, Jun 28, 2015 9:59 PM] [color=#907bf7]
> > 也支援巢狀引用區塊喔!
> > [name=ChengHan Wu] [time=Sun, Jun 28, 2015 10:00 PM] [color=red]
## 外部
### Youtube
{%youtube 1G4isv_Fylg %}
### Vimeo
{%vimeo 124148255 %}
### Gist
{%gist schacon/4277 %}
### SlideShare
{%slideshare briansolis/26-disruptive-technology-trends-2016-2018-56796196 %}
### Speakerdeck
{%speakerdeck sugarenia/xxlcss-how-to-scale-css-and-keep-your-sanity %}
### PDF
**注意:請使用 https 的網址,否則可能會被您的瀏覽器阻擋載入**
{%pdf https://hackmd.io/pdf-sample.pdf %}
## MathJax
您可以使用 **MathJax** 語法 來產生 *LaTeX* 數學表達式,如同 [math.stackexchange.com](http://math.stackexchange.com/),但是開始的 `$` 後面以及結尾的 `$` 前面不能有空白:
The *Gamma function* satisfying $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ is via the Euler integral
使用區塊層級的數學式時,請在您的數學式之前與之後給予 `$$` 以及換行:
$$
x = {-b \pm \sqrt{b^2-4ac} \over 2a}.
$$
$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$
> 更多關於 **LaTeX** 數學表達式 [請至這裡](http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference)
## UML 圖表
### 循序圖
您可以像是以下使用循序圖:
```sequence
艾莉絲->包柏: 哈摟,你好嗎?
Note right of 包柏: 包柏思考中
包柏-->艾莉絲: 我很好,謝謝!
Note left of 艾莉絲: 艾莉絲回應
艾莉絲->包柏: 最近過得怎樣?
```
### 流程圖
您可以像是以下使用流程圖:
```flow
st=>start: 開始
e=>end: 結束
op=>operation: 我的操作
op2=>operation: 啦啦啦
cond=>condition: 是或否?
st->op->op2->cond
cond(yes)->e
cond(no)->op2
```
### Graphviz
```graphviz
digraph hierarchy {
nodesep=1.0 // increases the separation between nodes
node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour
edge [color=Blue, style=dashed] //All the lines look like this
Headteacher->{Deputy1 Deputy2 BusinessManager}
Deputy1->{Teacher1 Teacher2}
BusinessManager->ITManager
{rank=same;ITManager Teacher1 Teacher2} // Put them on the same level
}
```
### Mermaid
```mermaid
gantt
title A Gantt Diagram
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
anther task : 24d
```
### Abc
```abc
X:1
T:Speed the Plough
M:4/4
C:Trad.
K:G
|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|
GABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|
|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|
g2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|
```
### Vega-Lite
```vega
{
"$schema": "https://vega.github.io/schema/vega-lite/v4.json",
"data": {"url": "https://vega.github.io/editor/data/barley.json"},
"mark": "bar",
"encoding": {
"x": {"aggregate": "sum", "field": "yield", "type": "quantitative"},
"y": {"field": "variety", "type": "nominal"},
"color": {"field": "site", "type": "nominal"}
}
}
```
> 更多關於 **循序圖** 語法 [在這裡](http://bramp.github.io/js-sequence-diagrams/).
> 更多關於 **流程圖** 語法 [在這裡](http://adrai.github.io/flowchart.js/).
> 更多關於 **graphviz** 語法 [在這裡](http://www.tonyballantyne.com/graphs.html)
> 更多關於 **mermaid** 語法 [在這裡](http://mermaid-js.github.io/mermaid)
> 更多關於 **abc** 語法 [在這裡](http://abcnotation.com/learn)
> 更多關於 **vega** 語法 [在這裡](https://vega.github.io/vega-lite/docs)
警告區塊
---
:::success
耶 :tada:
:::
:::info
這是訊息 :mega:
:::
:::warning
注意 :zap:
:::
:::danger
喔不 :fire:
:::
:::spoiler 點選顯示更多內容
找到我了! :stuck_out_tongue_winking_eye:
:::
:::spoiler {state="open"} 預設展開摺疊內容
找到我了! :stuck_out_tongue_winking_eye:
:::
## 排版
### 標題
```
# h1 標題
## h2 標題
### h3 標題
#### h4 標題
##### h5 標題
###### h6 標題
```
### 水平分隔線
___
---
***
### 字形替換
(c) (C) (r) (R) (tm) (TM) (p) (P) +-
測試.. 測試... 測試..... 測試?..... 測試!....
!!!!!! ???? ,,
Remarkable -- awesome
"Smartypants, 雙引號"
'Smartypants, 單引號'
### 強調
**這是粗體文字**
__這是粗體文字__
*這是斜體文字*
_這是斜體文字_
~~這是刪除文字~~
上標: 19^th^
下標: H~2~O
++這是底線文字++
==這是標記文字==
{旁註標記|測試}
### 引用區塊
> 引用區塊也可以是巢狀的喔...
>> ...可以多層次的使用...
> > > ...或是用空白隔開
### 清單
#### 項目
+ 在行開頭使用 `+` `-` 或是 `*` 來建立清單
+ 空兩個空白就可以產生子清單
- 當清單標記使用的字元不同,會強制建立新的清單
* Ac tristique libero volutpat at
+ Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
+ 非常簡單!
#### 編號
1. Lorem ipsum dolor sit amet
2. Consectetur adipiscing elit
3. Integer molestie lorem at massa
1. 您可以逐次增加項目數字...
---
1. ...或是全部都使用 `1.`
1. feafw
2. 332
3. 242
4. 2552
1. e2
從其他範圍開始編號清單
57. foo
1. bar
### 程式碼
行內 `程式碼`
縮排程式碼
// Some comments
line 1 of code
line 2 of code
line 3 of code
程式碼區塊
```
Sample text here...
```
語法標色
```javascript
var foo = function (bar) {
return bar++;
};
console.log(foo(5));
```
### 表格
| 選項 | 描述 |
| ------ | ----------- |
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
向右對齊
| 選項 | 描述 |
| ------:| -----------:|
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
向左對齊
| 選項 | 描述 |
|:------ |:----------- |
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
置中對齊
| 選項 | 描述 |
|:------:|:-----------:|
| data | path to data files to supply the data that will be passed into templates. |
| engine | engine to be used for processing templates. Handlebars is the default. |
| ext | extension to be used for dest files. |
### 連結
[連結文字](http://dev.nodeca.com)
[加上標題的連結文字](http://nodeca.github.io/pica/demo/ "標題文字!")
自動轉換連結 https://github.com/nodeca/pica
### 圖片
![Minion](https://octodex.github.com/images/minion.png)
![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat")
如同連結一般,圖片也可以用註腳語法
![Alt text][id]
使用參考,可以在稍後的文件中再定義圖片網址
[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat"
![Minion](https://octodex.github.com/images/minion.png =200x200)
使用指定的大小顯示圖片
### 註腳
註腳 1 連結[^first].
註腳 2 連結[^second].
行內註腳^[行內註腳的文字] 定義
重複的註腳參考[^second].
[^first]: 註腳 **也可以標記**
還可以有很多段落
[^second]: 註腳 文字
### 定義清單
名詞 1
: 定義 1 快速連續項目
名詞 2 加上 *行內標記*
: 定義 2
{ 這些程式碼屬於 定義 2 的一部分 }
定義 2 的第三段落
_緊密樣式:_
名詞 1
~ 定義 1
名詞 2
~ 定義 2a
~ 定義 2b
### 縮寫
這是 HTML 的縮寫範例
它會轉換 "HTML",但是縮寫旁邊其他的部分,例如:"xxxHTMLyyy",不受影響
*[HTML]: Hyper Text Markup Language