源起
希望把工作相關(guān)的東西都用git管理起來旱物,對程序員來說遥缕,主要是三個東西:代碼,文檔异袄,演示通砍。用git管的話,這些東西需要都是基于純文本的烤蜕,代碼已然是封孙,文檔用Markdown來寫,拋棄word讽营,剩下演示怎么弄虎忌,如何能拋棄PowerPoint?這篇文稿描述用Markdown來編寫內(nèi)容橱鹏,然后用pandoc來生成基于reveal.js的網(wǎng)頁ppt膜蠢。好處很明顯,讓作者專注內(nèi)容莉兰,寫好的文檔基于純文本挑围,可用git管理起來松申。
說明:reveal.js本身就可以支持Markdown注益,直接能制作網(wǎng)頁P(yáng)PT,而我們用pandoc的原因是班缰,完全不用了解html的細(xì)節(jié)捶朵,對純外行很適用蜘矢。
基礎(chǔ)工作
Markdown編輯器
推薦Typora狂男,免費(fèi)又好用,誰用誰知道品腹。
安裝pandoc
pandoc官網(wǎng):http://pandoc.org/岖食。官網(wǎng)有鏈接到github的下載地址,有各個系統(tǒng)的安裝包舞吭,文檔以Windows為例泡垃,下載...x86_64.msi文件,直接安裝镣典。
pandoc沒有圖形界面兔毙,安裝好之后,用powershell兄春,輸入命令:pandoc -v
澎剥,驗(yàn)證一下,能出來版本號等提示就表示安裝成功了赶舆。
下載reveal.js
從github上下載:https://github.com/hakimel/reveal.js哑姚,不需要安裝,下載下來是一個目錄芜茵,目錄名:“reveal.js”叙量。
示例
1.首先用Markdown編寫需要演示的PPT的內(nèi)容。這里引用pandoc官方文檔的示例九串,我們假設(shè)文件名取名為demo.md绞佩。
% Habits
% John Doe
% March 22, 2005
# In the morning
## Getting up
- Turn off alarm
- Get out of bed
## Breakfast
- Eat eggs
- Drink coffee
# In the evening
## Dinner
- Eat spaghetti
- Drink wine
------------------
![picture of spaghetti](images/spaghetti.jpg)
## Going to sleep
- Get in bed
- Count sheep
2.用demo.md文件來生成用于演示的html。
pandoc -t revealjs -s demo.md -o demo.html
3.享受成果猪钮,查看生成的ppt品山。
這里需要注意,把生成的demo.html和下載下來的reveal.js放到同一個目錄下烤低,比如放到temp目錄下:
temp
│ demo.html
│
└─reveal.js
用瀏覽器肘交,推薦chrome來打開demo.html就看到生成好的網(wǎng)頁P(yáng)PT了。
方法詳解
%符號作用
前三行的%的作用是告訴pandoc扑馁,這個Markdown文本要處理成幻燈片涯呻。前三行分別是:文檔標(biāo)題,作者腻要,日期复罐,會單獨(dú)生成一頁ppt作為全部ppt的起始頁。
理解slide level
slide level(我姑且翻譯成“滑動級別”)是理解幻燈片生成的重要概念雄家,英文好的直接讀pandoc幫助文檔市栗。根據(jù)幫助文檔,我這樣理解,Markdown文檔里面填帽,后面緊跟著正文內(nèi)容的標(biāo)題的級別(標(biāo)題的級別就是1級標(biāo)題、2級標(biāo)題的級咙好,也是HTML里面的h1篡腌、h2、……)勾效,就是這篇文檔的“滑動級別”嘹悼,產(chǎn)生的結(jié)果是:
- 與“滑動級別”同級的標(biāo)題,會單獨(dú)產(chǎn)生一頁P(yáng)PT层宫,如果緊跟上一級標(biāo)題杨伙,生成的PPT縱向滑動。
- 高于“滑動級別”的標(biāo)題萌腿,會單獨(dú)成一頁只有標(biāo)題的PPT限匣,橫向滑動。
- 低于“滑動級別”的標(biāo)題毁菱,只會作為ppt的內(nèi)容米死。
用我們的例子理解一下,緊跟正文內(nèi)容的標(biāo)題級別是2贮庞,那么這篇文檔的slide level就是2峦筒。所有1級標(biāo)題會單獨(dú)產(chǎn)生一頁只有標(biāo)題的ppt,緊跟這個1級標(biāo)題的每個2級標(biāo)題及其正文內(nèi)容窗慎,會單獨(dú)產(chǎn)生單獨(dú)的一頁ppt物喷,會在一級標(biāo)題頁之下,通過縱向滑動展示遮斥,而一級標(biāo)題之間通過橫向滑動來切換頁峦失。
幫助文檔也提到可以在生成的時候,通過--slide-level
選項(xiàng)來指定“滑動級別”伏伐。實(shí)踐中宠进,你也可以用3級標(biāo)題來寫正文內(nèi)容,2級標(biāo)題來作為單獨(dú)標(biāo)題頁藐翎,理解好“滑動級別”就可以靈活運(yùn)用材蹬。
網(wǎng)頁P(yáng)PT常用操作
縮略圖模式
演示ppt的時候,按鍵盤“esc”鍵吝镣,就可以出現(xiàn)所有ppt的縮略圖堤器,可以任意選擇ppt頁。
演講模式
按下鍵盤“S”鍵末贾,就進(jìn)入演講模式闸溃。(演講模式我自己取的名,就是用PowerPoint的時候,演示人自己看到一個界面辉川,內(nèi)容豐富表蝙,有注釋,還有下一頁預(yù)覽等乓旗,而給聽眾只看到普通的頁面府蛇。)如果是雙屏情況下,把普通頁拓到投影那邊即可屿愚。
更進(jìn)一步
逐條顯示條目
要讓條目逐條顯示汇跨,用下面的方式把條目包起來就可以了。
::: incremental
- Eat spaghetti
- Drink wine
:::
不逐條的:
::: nonincremental
- Eat spaghetti
- Drink wine
:::
同一頁顯示多列
:::::::::::::: {.columns}
::: {.column width="40%"}
contents...
:::
::: {.column width="60%"}
contents...
:::
::::::::::::::
演講注釋
演講模式里面妆距,演講者的界面里穷遂,可以有注釋信息,和PowerPoint的注釋功能一樣娱据。實(shí)現(xiàn)方法:
::: notes
This is my note.
- It can contain Markdown
- like this list
:::
修改默認(rèn)主題
前面我們使用命令pandoc demo.md -o demo.html -t revealjs -s
來生成網(wǎng)頁P(yáng)PT蚪黑,生成的網(wǎng)頁P(yáng)PT使用reveal.js的默認(rèn)主題——黑色主題。如果我們對此不爽吸耿,reveal.js本身提供了很多主題供我們選擇祠锣,可以查看reveal.js/css/theme
目錄下,是直接可以用的主題咽安。
目錄中每個.css文件就是一個主題伴网。如果我們想生成一個simple主題,那么使用pandoc的 -V參數(shù)來指定主題即可妆棒。
pandoc demo.md -o demo.html -t revealjs -s -V theme=simple
現(xiàn)在ppt變成這樣了:
不同的主題澡腾,看官自己去試吧。
其他未涉及
還有一些換背景糕珊,換轉(zhuǎn)場效果等技能动分,我暫時沒用到,也覺得不是核心特別要用的红选,請參考pandoc的文檔吧澜公。