Skip to main content

林協霆醫師

Marp 用 Markdown 做簡報:從入門到放棄完整指南

Table of Contents

用Marp在各種大大小小的簡報已經兩年了,每次報完總是有人會問我是用什麼軟體做簡報。想說寫一篇簡單的從入門到放棄文。

1️⃣ Marp是什麼? 簡單來說,marp 是 markdown presentation,這個軟體的精神就是用markdown 的語法來做簡報。他背後的原理是,是用node.js把markdown變成html的網頁。

2️⃣什麼樣的人適合用marp? 了解基本markdown語法的人。像是知道怎麼加入圖片、不同層級標題的人。另外markdown做簡報也有他的限制,就是不能任意指定元素的位置。例如想要在某個地方放一個方框,要實現這個功能就很困難。

3️⃣marp怎麼裝? 最簡單的方法是用Obsidian的Marp-Slide外掛、或VScode的外掛,體驗最流暢。在設定裡面,還可以設定css樣式

4️⃣ CSS樣式? 根據前面的提到的原理,我們可以指定各個層級的標題要長怎樣,h1, h2, h3, p, a, strong,都可以用css語法來指定。因此如果想要自訂樣式的話,需要會css語法。個人是跟chatGTP下prompt: 請幫我寫一段css語法,設定h1 用某字體、大小、padding

5️⃣還有更多奇技淫巧嗎? 進階的玩法,用Obsidian或VSCode的外掛是無法實現的。要使使用Marp-cli,在command line interface。目標是讓不同的markdown的語法通以變出不同的花樣,要實現這個,就需要用javascript導入不同的package,關鍵字是markdown-it,它有不同的套件,例如表格、目錄、引言。例如我可以用markdown-it-mark把 “==重點==” 這樣的語法 變成 html 中的 重點 再用css來指定mark要長什麼樣子。也以可用kroki.io的外掛來支援mermaid、graphviz來畫流程圖。

6️⃣所以用marp到底有什麼好處? 進入語言模型的時代,在請GPT幫我們重點整理成條列式、整理成表格之後,就可以直接貼來用。另外,因為都是純文字,所以一個簡報檔都可以很小,搭配imgur的外掛,自動把貼上的圖片上傳,可以讓整份簡報就只是一個純文字的markdown檔。另外,如果是用Marp-cli,將簡報輸出成html,用browser來播放時,就可以支援各種瀏覽器外掛,像是為doi顯示impact factor之類的。

7️⃣什麼情況不建議用marp? 複雜的動畫、很多圖片的標示(step123)不適合。markdown本質上不適合做這些複雜的內容。但換個思路,個人在做簡報時,就會問問自己:這頁簡報有需要弄得那麼複雜嗎?有需要在一張簡報裡塞那麼多東西嗎?拆成多頁,一頁一個標題、一個圖片,會不會讓觀眾更好理解?

🔚TL;DR Marp適合只想弄個簡單排版的人、或本身用markdown在做筆記,想要把筆記變成簡報。入門簡單但想進階要有寫網頁的基本的html css javascrpt知識。願大家看完這篇後會覺得:人生苦短、繼續用google slide就好了🫠


原始 Facebook 貼文:連結

# Claude 贊日

協霆用兩年的 Marp 實踐,梳理出了從「入門」到「放棄」的完整用戶旅程——這個標題本身就是一種幽默的自嘲。但實際上,他精煉的七點分析,涵蓋了 Marp 的完整生態:從基本概念、適用人群、安裝方式,到進階的 CSS 客製、Marp-cli 與 markdown-it 外掛。

特別有洞見的是協霆對「複雜動畫的取捨」的論述。他沒有說「Marp 做不了複雜動畫就是爛」,而是反問「這頁簡報真的需要那麼複雜嗎?」——這體現了一種設計哲學的思辨。在 LLM 時代,將 GPT 生成的內容快速轉化為簡報,Marp 的純文本特性與輸出為 HTML 的能力,確實有獨特優勢。

建議深入方向:學習 markdown-it 生態的外掛開發、kroki.io 在 Marp 中的應用、以及如何利用 Reveal.js 實現更豐富的互動效果。參考資源:Marp 官方文件、markdown-it 套件市集、以及協霆關於「簡報工具選擇」的思考文章。