Lorex L. Yang
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
18
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
--- tags: tutorials, FHIR, 中文, 教學 --- # FHIR 教育訓練相關資源 [![HL7 FHIR v4.0.1](https://img.shields.io/badge/HL7%20FHIR-v4.0.1-blue)](http://hl7.org/fhir/) [![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](http://www.wtfpl.net/about/) [![GitHub issues](https://img.shields.io/github/issues/Lorex/fhir-guide)](https://github.com/Lorex/fhir-guide/issues) [![hackmd-github-sync-badge](https://hackmd.io/r08gAIefT-yvwJj38llfbA/badge)](https://hackmd.io/r08gAIefT-yvwJj38llfbA) ![](https://i.imgur.com/1JPWsWE.png) ## 目錄 [TOC] ## 說明 ### 註冊商標聲明 因應國際健康資訊交換第七層協定協會(HL7® International)之規定,本文件提及的「FHIR®」、「FHIR 標準」、「帶有火焰標示的 HL7 FHIR Logo」是 HL7 的註冊商標,並經由 HL7 許可授權使用。 ### 文件授權條款 本文件為 FHIR 教育訓練的相關資源收錄,並以 **[你他媽的想幹嘛就幹嘛公共授權條款 (WTFPL)](http://www.wtfpl.net/about/)** 發布。惟本文件所連結或參考之各項文獻/圖片/影音素材,其著作權、智慧財產權與授權方式仍依該引用資料本身之規定為準。 本文件使用 HackMD 製作,並依開放原始碼精神將完整內容上傳至 GitHub,歡迎讀者自由提交 Commit 豐富本文內容。 [點我檢視 GitHub Repository](https://github.com/Lorex/fhir-guide) ### 如何閱讀本文件 FHIR 的官方網站涵蓋了大量且完整的資料,考量到許多不熟悉 FHIR 的新手若直接看官方網站的話可能會望之卻步。為了讓還在新手村的學員們能快速對這個標準上手,因此製作了這份文件。您可以在這份文件中,用(筆者認為)比較有系統性的方式對 FHIR 進行學習。這份文件收錄了筆者從以前到現在發布的各項教材/演講資料以及相關資源/參考連結,由幾個部分組成: + **參考資料** + **簡報** 收錄筆者從 2017 年至今所有的演講簡報,目前最新的簡報是「FHIR 從入門到放棄」系列,對應到最新的 R4 版本,新手可以直接讀這份簡報搭配下面文件/範例程式/情境演練題目進行練習。 + **介紹/教學文章** 收錄網路上對 FHIR 的介紹及教學文章,及筆者發布的各式教學文件。 + **標準文件** 收錄與 FHIR 有關的各種標準文件、實作指引(Implementation Guide)及 Profile,由於此部分是描述標準規範文件,因此讀起來可能會比較無聊,請您忍一下XD + **操作與應用** + **測試伺服器列表** 這裡收錄常見的 FHIR 測試伺服器列表,您可以使用這些伺服器作為練習用途。但由於這些 FHIR 伺服器的資料是公開且會不定時清除,您==不應==把它應用在開發/正式環境中。 + **Toolchain/工具鏈** 這裡列出在學習 FHIR 過程中可能會使用到的工具,您可以視需求進行安裝,或是使用您慣用的工具。 + **範例程式** 這裡列出與 FHIR 開發相關的教育訓練相關的範例程式,您可以參考這些程式進行開發。 + **情境演練(題目與參考解答)** 收錄筆者設計的幾個情境演練題目,並在部分題目收錄解答,您可以利用這些題目來進行練習。 + **開源專案** 這裡列出目前正進行中的 FHIR 開放原始碼專案,您可以利用這些專案進行 FHIR 練習,如果您已經對 FHIR 有一定程度的了解,也歡迎提交 Commit,為 FHIR 的生態做出一份貢獻💖 + **封存資料** 存放已經失效、版本過舊或是需要被封存的資料,以避免造成讀者在學習 FHIR 的過程中被不同時期的新舊資料造成混淆。 :::warning **注意** FHIR 是一個仍在不斷發展中的標準,不同時期的的資料可能會因為 FHIR 的標準發展、文件更新而可能有不適用的狀況,筆者會盡量更新這份文件,以維持其準確性。然而仍有可能有疏漏的地方,所有對於 FHIR 標準的規範與解釋,請以 FHIR 官方網站為準。 若您發現本文件有任何有誤的地方,請 Email 至 **Lorex\<ceo@sita.tech>**,或是直接在 [GitHub](https://github.com/Lorex/fhir-guide) 中提交 Issue,我會立即修正有誤的資料。 ::: # 參考資料 ## 簡報 ### 「FHIR 從入門到放棄」系列(R4 版本/真.新手村) + 【FHIR 從入門到放棄】簡報 Session 1: FHIR 簡介 https://www.slideshare.net/secret/9gTLCKnZWV7oqH + 【FHIR 從入門到放棄】簡報 Session 2: 文件導讀 https://www.slideshare.net/secret/r6onSiAvjqHkNo ### R4 版本參考資料 + 【給有開發經驗看的】北護大/FHIR 開發簡介與應用 https://www.slideshare.net/lorexyang/fhir-201782104 ## 介紹/教學文章 + iThome 專欄:FHIR三大優勢可快速複製應用,完勝前一代醫療資料交換標準 https://www.ithome.com.tw/news/141637 + [FHIR 從入門到放棄] Day 01-簡介 https://ithelp.ithome.com.tw/articles/10260117 + [FHIR 從入門到放棄] Day 02-FHIR 基本概念 https://ithelp.ithome.com.tw/articles/10266854 + [FHIR 從入門到放棄] Day 03-FHIR 伺服器安裝 https://ithelp.ithome.com.tw/articles/10281172 + JSON 是什麼? https://ithelp.ithome.com.tw/articles/10159700 + JSON 是什麼? https://developer.mozilla.org/zh-TW/docs/Learn/JavaScript/Objects/JSON ## 標準文件 + FHIR 官方網站 https://www.hl7.org/fhir/ + FHIR Administration Module https://www.hl7.org/fhir/administration-module.html + FHIR Bundle https://www.hl7.org/fhir/bundle.html + FHIR Guide to Resource(常用的 Resource 對照表) https://www.hl7.org/fhir/resourceguide.html + JSON 規範(RFC7159文件) https://tools.ietf.org/html/rfc7159 + XML 規範(RFC4825文件) https://tools.ietf.org/html/rfc4825 + REST API 文件 https://www.restapitutorial.com + 衛福部數位新冠病毒健康證明實作指引(TWDCC IG) https://dccfhirig.mohw.gov.tw/ig/ch/index.html # 操作與應用 ## 測試伺服器列表 + 臺灣公開測試伺服器 https://hapi.fhir.tw :::info **小小工商** 本伺服器是筆者架設的臺灣公開測試伺服器,機房地點就在 ~~我大發財市~~ 高雄市,理論上連線速度應該會比較快。然而維護伺服器有成本,如果這份文件對您有幫助的話,歡迎用以下連結贊助支持 ❤https://p.ecpay.com.tw/8E309AC❤ 筆者會在下次更新伺服器時,在贊助清單上放上您的芳名 m(\_ \_)m ::: + FHIR 官方公開伺服器 http://hapi.fhir.org + Firely Server(Simplifier.net 提供) https://server.fire.ly/ + 其他伺服器列表 http://wiki.hl7.org/index.php?title=Publicly_Available_FHIR_Servers_for_testing ## Toolchain/工具鏈 + 程式碼編輯器 **Visual Studio Code** https://code.visualstudio.com/ + API 測試工具 **Postman** https://www.postman.com/downloads/ + 線上免費繪圖工具 **Draw.io** https://app.diagrams.net/ + Profile 編輯工具 **Forge** https://simplifier.net/downloads/forge ## 範例程式 + 以 node.js 操作 FHIR Server https://hackmd.io/rte-MW7_SuOX1Yg5sMGXtA#%E5%AF%A6%E4%BD%9C%E5%88%9D%E8%A8%BA%E5%9F%BA%E6%9C%AC%E8%B3%87%E6%96%99%E8%A1%A8%E5%96%AE%E7%99%BB%E9%8C%84 + 初診資料登錄表單 https://hackmd.io/rte-MW7_SuOX1Yg5sMGXtA#%E4%BB%A5-nodejs-%E6%93%8D%E4%BD%9C-FHIR-Server + 病患及檢驗資料登錄表單 https://gitlab.sita.tech/medic/fhir-training-example # 情境演練 :::danger **!!!注意!!!** 本情境演練中提到的各項案例,其未標注或明示「真實案例」者,為筆者基於出題需求自行產生之資料,其中的所有欄位皆屬虛構,如您發現有部分資料雷同,請立即透過 Email:**Lorex\<ceo@sita.tech>** 告知,或是直接在 [GitHub](https://github.com/Lorex/fhir-guide) 中提交 Issue,我將會立即修正雷同的資料。 所有標注「真實案例」的資料,其資料來源為筆者自身的病歷資料,基於教學用途,於抹除個人資料後自願提供作為出題使用。 上述提到的所有資料,無論是否為真實案例,均僅限作為學術研究與教學用途,嚴禁為任何商業或營利之應用。資料之著作權及智慧財產權仍屬筆者本身,如有違反本規定之使用情事,筆者有權視情況取消讀者對該筆資料的授權利用。 ::: ## 演練 1:建立單筆 Patient Resource 本題目是為了評估您是否掌握將基本資料轉換為 Resource 的知識。 以下是某位病患的資料: :::info * 病人英文姓名為「Connor Graham」,中譯姓名為「葛康納」 * 這是他的照片:https://i.imgur.com/VeTQheO.png * 護照號碼:65848725 * 聯絡電話:(宅) 07-2159685 (公) 07-7938888 (手機) 0912-354879 * 聯絡地址:高雄市橋頭區經武路 58 號 24 樓之 11 * 戶籍地址同聯絡地址 * 緊急聯絡人姓名:James Yates * 緊急聯絡人電話:(手機) 0988-878545 * 緊急聯絡人關係:父 * 病人慣用溝通之語言為英文(en-US) ::: 請運用您學到的 FHIR 知識,使用以上資料設計 FHIR Resource。並將結果儲存為 XML 或 JSON 格式擇一。 ### 參考解答 :::spoiler 點我顯示參考解答 ```json= { "resourceType": "Patient", "identifier": [ { "use": "official", "type": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "PPN", "display": "Passport Number" } ] }, "value": "65848725" } ], "name": [ { "use": "official", "text": "Connor Graham", "family": "Graham", "given": [ "Connor" ] }, { "use": "official", "text": "葛康納" } ], "telecom": [ { "system": "phone", "value": "07-2159685", "use": "home" }, { "system": "phone", "value": "07-7938888", "use": "work" }, { "system": "phone", "value": "0912-354879", "use": "mobile" } ], "gender": "male", "address": [ { "use": "home", "type": "both", "text": "高雄市橋頭區經武路58號24樓之11", "line": [ "經武路58號24樓之11" ], "city": "高雄市", "district": "橋頭區", "postalCode": "825006", "country": "TW" } ], "contact": [ { "relationship": [ { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/v2-0131", "code": "C", "display": "Emergency Contact" } ], "text": "父" } ], "name": { "use": "official", "text": "James Yates" }, "telecom": [ { "system": "phone", "value": "0988-878545", "use": "mobile" } ] } ], "photo": [ { "url": "https://i.imgur.com/VeTQheO.png" } ], "communication": [ { "language": { "coding": [ { "system": "urn:ietf:bcp:47", "code": "en-US" } ], "text": "English (US)" } } ] } ``` ::: ## 演練 2:上傳單筆 Patient Resource 本題目是為了評估您是否掌握以 REST API 與 FHIR Server 互動的知識。 請運用您學到的 REST API 相關知識,將您在演練 1 中完成的 FHIR 資料上傳至 FHIR Server 中。 ## 演練 3:真實案例分析/判別 Resource 本題目是為了評估您是否能就實際案例進行分析,並根據原始資料判別所屬的 Resource。 以下是某位病人的出院病歷摘要單: :::spoiler 點我展開出院病歷摘要單 ![](https://i.imgur.com/rXnxysR.png) ![](https://i.imgur.com/ELnAReJ.png) ![](https://i.imgur.com/cjp7SzR.png) ::: 請運用您學到的 FHIR 知識,判斷以上資料各部描述屬於哪個 FHIR Resource,並予以標註。 ## 演練 4:真實案例分析/分析各 Resource 之間的關聯 本題目是為了評估您是否能在分析實際案例並判別各部所屬的 Resource 後,進一步釐清各 Resource 之間的關聯,並繪製關聯圖以便與團隊協作。 以下是某個病人的就診資料: :::info 患者楊XX,男,84年01月01日生,手機 0975123456。主訴為長期無法集中注意力與情緒障礙問題,於 110/01/05 至XX診所(醫事機構代碼 3507000000)就診,診斷醫師姓名為孫OO。 診斷結果如下,下列診斷代碼均使用 ICD-10 作為代碼參考: * 主診斷:F3164/雙極疾患,目前為伴有神病特徵之混合發作,重度 * 次診斷 1:K30/功能性消化不良 * 次診斷 2:M791/肌痛 * 次診斷 3:F909/注意力缺失過動疾患,未明示型 本次診斷開立以下藥物,藥品代碼均為健保代碼 * AB47553100/"瑞安"癲必停持續性藥效膜衣錠500毫克/每日 1 次、每次 1 粒、共 7 日 * AB54977100/必博寧持續性藥效錠 150 毫克/每日 1 次、每次 1 粒、共 7 日 * AC260801G0/"強生"牟靜錠3毫克(布馬平)(鋁箔/膠箔)/每日 1 次、每次 1 粒、共 7 日 ::: 請運用您在課程學到的 FHIR 知識,判斷以上資料各部屬於哪個 FHIR Resource,並以 draw.io 等工具畫出關聯圖。 ### 參考解答 :::spoiler 點我顯示參考解答 ![](https://i.imgur.com/sMNhkR8.png) ::: ## 演練 5:真實案例分析/Bundle 批次資料上傳 本題目是為了評估您是否掌握 Bundle Resource 的使用方法,並將完整的病歷資料標準化為 FHIR Resource 後進行資料上傳的能力。 在演練 4 中,我們將原始的病歷資料進行分類,找出各部資料所屬的 FHIR Resource,並以 draw.io 等工具繪製成關聯圖。 請運用您在課程學到的 REST API 相關知識,並參考您在演練 4 中完成的關聯圖,將原始資料以 FHIR 標準化後,產生 FHIR Bundle Resource,並以 Bundle (type: transaction) 的形式上傳至 FHIR Server 中。 #### Hint :::info :mega: **可以將多個Resource寫在同一個檔案** 請參考[這篇FHIR Bundle](https://www.hl7.org/fhir/bundle-transaction.json.html) > **幾個點要注意:** [name=Lorex L. Yang] [time=Sun, Jan 28, 2022 5:25 PM] [color=#aa69aa] 1. 直接 POST 到 FHIR Base URL,而不是 /bundle 2. 記得帶 "type": "transaction" 3. 之後每一個 resource 塞到 entry 內 (他會是個 JSON Object Array),resource 本體放在 entry.resource 裡面, 格式照著範例打 4. 每個 entry 裡面記得帶上 ```json= "request": { "method": "PUT", "url": "<resourceType>/<id>" } ``` 並指定 Resource ID,可自訂,不要跟別的 record 衝到就好 ::: #### Alternatives 若您還不會使用 Bundle 進行資料上傳,也可以個別上傳每個 Resource,惟須注意每個 Resource 的關聯性並調整上傳的順序。 ## 演練 6:撰寫 Profile 本題目是為了評估您是否掌握 Profile 的相關知識,並是否具備撰寫 Profile 的能力。 FHIR 實作指引(Implementation Guide)與 Profile 是 FHIR 維持一致性這項特性的實踐方式,而 Forge 是一個由 Simplifier.net 發布的 Profile 編輯器。現在請您試著使用該項工具,以任意 Resource 製作出一個自己的 Profile,並滿足以下條件: + **必須(SHALL)** 至少包含 3 個欄位的修改。 + **必須(SHALL)** 在製作的 Profile (StructureDefinition) 中,指定有效的 url 欄位,並在 description 欄位中撰寫您對於本 Profile 的描述。 + 情境不拘,但 **建議(SHOULD)** 挑選一個現實世界的應用情境,並盡可能將 Profile 的內容規範完整一點。 您可以使用 Forge 工具(必須先註冊 Simplifier.net 帳號)或自行撰寫 StructureDefinition 來製作 Profile,並將完成的 Profile (StructureDefinition) 上傳至 FHIR Server。 完成 Profile 的上傳後,請撰寫出符合您的 Profile 要求的 FHIR Resource 資料,該筆資料的 meta.profile 欄位必須填入您的 Profile URL,完成後請上傳至 FHIR Server 中。 ## 演練 7:程式設計/病患初診資料登錄表單 本題目是為了評估您是否具備開發基礎的 FHIR 應用程式的能力。 資料來源:[衛生福利部胸腔醫院-初診病患基本資料卡](https://www.ccd.mohw.gov.tw/public/forms/e831aad3547e45eae064a58922202bd5.pdf) 請根據以下表單實作病人資料登錄網頁,必須要能提供以下資料登記(塗掉的欄位不用寫),並能將使用者填寫的資料上傳到 FHIR Server 後,取得 Patient ID 並顯示於頁面中。 ![](https://i.imgur.com/Yvith4A.png) # 開源專案 ## FHIR 通用轉換工具:Project F.U.C.K. FHIR Universal Conversion Kit (Project F.U.C.K) 是一個通用的 FHIR 資料標準化工具,支援以設定檔及 Low Code 的方式,將任意資料標準化為 FHIR 格式,並具備自動上傳至 FHIR 伺服器的功能。 | Author | License | Source Code | -------- | -------- | ------- | | Lorex | CC BY-NC-SA 3.0 | [GitHub Repository](https://github.com/Lorex/FHIR-Universal-Conversion-Kit) ## Burni FHIR Server Burni 使用 Node.JS 、Express 框架以及 MongoDB 實作 FHIR R4 Server,經由簡單的設定即可產生指定 FHIR Resource的 Mongoose Schema、API程式碼並可自行更改,滿足需求。目前Burni支援Windows以及Linux,讓開發人員可以快速架設 FHIR Server。 Burni FHIR Server有別於關聯式資料庫,採用NoSQL架構,目前已100%通過 AEGIS Touchstone Basic-R4-Server驗證測試,包含 2,216測試情境。 | Author | License | Source Code | -------- | -------- | ------- | | CYLAB | Apache 2.0 | [GitHub Repository](https://github.com/Chinlinlee/Burni) ## Raccoon Raccoon 是使用 no-SQL 資料庫實作的醫學影像儲存系統(DICOMweb PACS),目前主要由北護影像資訊學實驗室維護。 Raccoon 使用 MongoDB 管理 DICOM 影像並提供 DICOMweb 以及 FHIR ImagingStudy RESTful API 功能進行儲存、查詢、調閱。 另外 Raccoon 使用了 Burni FHIR Server為底延伸出 FHIR 與 DICOM 結合的功能。 | Author | License | Source Code | -------- | -------- | ------- | | CYLAB | MIT | [GitHub Repository](https://github.com/cylab-tw/raccoon) # 封存資料 #### ~~~都更前的~~舊新手村 + 【~~都更前的~~舊新手村】陽明大學/FHIR 快速跳坑指南 https://www.slideshare.net/lorexyang/fhir-201786643 + 【新版伺服器架設】FHIR 伺服器建置指南 https://hackmd.io/e7sWPVUzQjSTJ6IYDcwAFQ #### DSTU3 版本適用 + 【舊版新手村】慈濟大學/FHIR 快速掃描 https://www.slideshare.net/lorexyang/fhir-153713142 + 【不懂 REST 看這篇】台中榮總/FHIR REST API 導論與使用 https://www.slideshare.net/lorexyang/fhir-rest-api-123996154 + 【想架 Server 看這邊】台中榮總/FHIR Server 安裝與使用 https://www.slideshare.net/lorexyang/fhir-server # 版本紀錄 #### 2022/04/28 - 重新整理這份文件(我覺得太亂了QQ) - 加入新的參考資料 - 重新編輯情境演練內容,使其符合學習順序 - 加入新的情境演練內容 - 加入開源專案章節 #### 2020-2021 - 陸續加入了一些參考文件 - 陸續加入了範例程式及情境演練 #### 2019/11/21 - 整理文件格式 #### 2019/07/06 - 加入一些標準參考文件 - 加入 FHIR Server 安裝與使用 #### 2018/11/22 - 創建了這份文件,並收錄了基本的參考資料

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully