Pandoc+revealjs 將Markdown轉(zhuǎn)成PPT

Markdown 語(yǔ)言在 2004 由約翰·格魯伯創(chuàng)建,是一種輕量級(jí)標(biāo)記語(yǔ)言,可以使用純文本格式編寫文檔,并能導(dǎo)出為 HTML 、Word、圖像、PDF、Epub 等多種格式的文檔,可以做到“一次編寫,多次使用”
Pandoc則可以將文檔在 Markdown、LaTeX、reStructuredText、HTML、Word docx 等多種標(biāo)記格式之間相互轉(zhuǎn)換,并支持輸出 PDF、EPUB、HTML 幻燈片等多種格式。該程序被稱為格式轉(zhuǎn)換界的 “瑞士軍刀”。
Reveal.js 是一個(gè)使用 HTML 語(yǔ)言制作演示文稿的 Web 框架, 它可以把 Markdown 文件轉(zhuǎn)為類似 PPT 的演示文稿,輕快省力,減少排版上的時(shí)間,更專于文字內(nèi)容;同時(shí),也獲得 PPT 所不具有的靈活性

環(huán)境安裝

  1. 首先根據(jù)系統(tǒng)選擇需要下載的安裝包安裝,windows版下載完成后雙擊安裝一路默認(rèn)即可,驗(yàn)證安裝是否成功可以
    使用命令行 輸入: > pandoc -v,出現(xiàn)下圖所示類似結(jié)果,表示安裝成功。
    check.PNG
  2. 到github 上下載 revealjs(或者命令行 git clone https://github.com/hakimel/reveal.js)
  3. 將要轉(zhuǎn)換的md文檔與reveal.js 文件夾放在同一目錄下,然后使用命令 pandoc slides.md -o index.html -t revealjs -s
    ,即可在同級(jí)目錄下得到-o 后面的文件名稱的html文件,即是最后的實(shí)現(xiàn)了類似 PPT 的演示文稿。
  4. 打開 生成的 index.html ,可以使用如下按鍵進(jìn)行控制:
按空格鍵來跳轉(zhuǎn)到下一頁(yè)
按 Esc 鍵,進(jìn)入幻燈片概覽
按 b ,暫?;脽羝?yè)面變黑息屏)
按 s ,進(jìn)入 演講者備注視圖

如果需要在別的地方使用該html文件,需要連同reveal.js 文件夾一起打包

::: notes
不知為啥pandoc在github 上 一直下載失敗,只能從別的渠道下載,防止再次出現(xiàn)這種問題,善良的我已經(jīng)把pandoc 軟件和revealjs 放到云盤上。

鏈接:https://pan.baidu.com/s/1TOVtqsWyRIM4YGJ4kqw_zA
提取碼:ncvr
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
:::

pandoc使用

pandoc 將Markdown轉(zhuǎn)成PPT 本質(zhì)上還是轉(zhuǎn)換成html,而這個(gè)html文件實(shí)現(xiàn)了ppt的效果。
pandoc的一般命令格式為:
pandoc <files> <options>

其中 ,<files> 為輸入的文件。而 <options> 為參數(shù)選項(xiàng)。主要的參數(shù)選項(xiàng)有:

-f <format>、-r <format>:指定輸入文件格式,默認(rèn)為 Markdown;

-t <format>、-w <format>:指定輸出文件格式,默認(rèn)為 HTML;

-o <file>:指定輸出文件,該項(xiàng)缺省時(shí),將輸出到標(biāo)準(zhǔn)輸出;

--highlight-style <style>:設(shè)置代碼高亮主題,默認(rèn)為 pygments;

-s:生成有頭尾的獨(dú)立文件(HTML,LaTeX,TEI 或 RTF);
-i : 漸進(jìn)顯示的列表
--list-highlight-styles:列出支持的代碼高亮主題;
-V 接需要用的變量
-v、--version:顯示程序的版本號(hào);
-h、--help:顯示程序的幫助信息。

目前Pandoc包含了對(duì)五種HTML幻燈片框架的支持:

  • DZSlides
  • Slidy
  • S5
  • Slideous
  • reveal.js
    當(dāng)然,你實(shí)際上可以使用任何喜歡的幻燈片框架,只要讓Pandoc 使用-t選項(xiàng)指定格式即可,前提是你提前下載了框架。這里我們使用 reveal.js 類型的幻燈片為例。

修改主題

格式如:
pandoc slides.md -o slides.html -t revealjs -s -V theme=beige
主要的主題背景有:
default:(默認(rèn))深灰色背景,白色文字
beige:米色背景,深色文字
sky:天藍(lán)色背景,白色細(xì)文字
night:黑色背景,白色粗文字
serif:淺色背景,灰色襯線文字
simple:白色背景,黑色文字
solarized:奶油色背景,深青色文字

使用變量控制顯示效果

格式如:
pandoc slides.md -o slides.html -t revealjs -s -V controls=true

支持的變量有:

controls: true, // 是否在右下角展示控制條
progress: true,// 是否顯示演示的進(jìn)度條
slideNumber: false, // 是否顯示當(dāng)前幻燈片的頁(yè)數(shù)
history: false,// 是否將每個(gè)幻燈片改變加入到瀏覽器的歷史記錄中去
keyboard: true, // 是否啟用鍵盤快捷鍵來導(dǎo)航
overview: true, // 是否啟用幻燈片的概覽模式
center: true, // 是否將幻燈片垂直居中
touch: true,  // 是否在觸屏設(shè)備上啟用觸摸導(dǎo)航
loop: false,   // 是否循環(huán)演示
rtl: false,  // 是否將演示的方向變成 RTL
fragments: true,    // 全局開啟和關(guān)閉碎片
help: true,// 當(dāng)按下鍵盤上的?問號(hào)鍵時(shí),是否顯示幫助
autoSlide: 0,//  兩個(gè)幻燈片之間自動(dòng)切換的時(shí)間間隔(毫秒),當(dāng)設(shè)置成 0 的時(shí)候則禁止自動(dòng)切換,該值可以被幻燈片上的 ` data-autoslide` 屬性覆蓋
autoSlideStoppable: true,// 當(dāng)遇到用戶輸入的時(shí)候停止切換
mouseWheel: false, // 是否啟用通過鼠標(biāo)滾輪來導(dǎo)航幻燈片
hideAddressBar: true, //  是否在移動(dòng)設(shè)備上隱藏地址欄
previewLinks: false,  // 是否在一個(gè)彈出的 iframe 中打開幻燈片中的鏈接
ransition: 'default', // 切換過渡效果none/fade/slide/convex/concave/zoom
transitionSpeed: 'default',// 過渡速度 ,default/fast/slow
backgroundTransition: 'default', //全屏幻燈片背景的過渡效果  none/fade/slide/convex/concave/zoom
viewDistance: 3, // 除當(dāng)前可見的之外的幻燈片數(shù)量
parallaxBackgroundSize: '', // // 視差背景尺寸,如"2100px 900px"

幻燈片生成規(guī)則

  • --- 將總是開始新的幻燈片。即可以使用分割線來強(qiáng)行生成新的幻燈片。
  • 幻燈片級(jí)別(即用來分頁(yè)的標(biāo)題級(jí)別,可以使用---slide-level來改變 )以上的標(biāo)題會(huì)創(chuàng)建 "標(biāo)題幻燈片",其中僅包含章節(jié)標(biāo)題,并有助于將幻燈片分為幾部分。 這些標(biāo)題下的非幻燈片內(nèi)容將包含在標(biāo)題幻燈片中(用于HTML幻燈片顯示)或后續(xù)具有相同標(biāo)題的幻燈片中(用于投影機(jī))。
  • 幻燈片級(jí)別的標(biāo)題,始終會(huì)開始創(chuàng)建新幻燈片,并作為標(biāo)題顯示
  • 幻燈片級(jí)別以下的標(biāo)題,只會(huì)在幻燈片中顯示成標(biāo)題。

如下:

%標(biāo)題
%作者
%日期

## 上述% 元信息說明

文本開頭需要包含三行以%打頭的元信息:這將生成 幻燈片入口:這些百分號(hào) % 將單獨(dú)生成幻燈片入口(切記上下行之間不能有空格)


## 級(jí)別說明 
- 如果是一級(jí)標(biāo)題,緊接著的有內(nèi)容和無(wú)內(nèi)容時(shí)生成的ppt 樣式是不一樣的
- 如果所有的1級(jí)標(biāo)題下無(wú)內(nèi)容,則以二級(jí)標(biāo)題為 分頁(yè)依據(jù),
且一級(jí)標(biāo)題獨(dú)立成頁(yè)
- 有文字的時(shí)候,1級(jí)標(biāo)題作為分頁(yè)依據(jù),其后內(nèi)容作為內(nèi)容


## 一級(jí)標(biāo)題,緊接著的無(wú)內(nèi)容舉例:

    ```
  # level1 A
  ## leve2 A1
  - listA11
  - listA12
  ## leve2 A2
  - listA21
  - listA22
  # level1 B
  ## level2 B
  - list b1
  - list b2
    ```

上面會(huì)生成5頁(yè)ppt,每個(gè)標(biāo)題級(jí)分別占一頁(yè),其中前三個(gè)一組,豎向分頁(yè),后兩個(gè)一組豎向分頁(yè), # level1 A 和# level1 B 橫向劃分

## 一級(jí)標(biāo)題,緊接著的有內(nèi)容舉例:

    ```
  # level1 A
  - list l1a1
  - list l1a2
  ## leve2 A1
  - listA11
  - listA12
  ## leve2 A2
  - listA21
  - listA22
  # level1 B
  - list l1b1
  ## level2 B
  - list b1
  - list b2

    ```

上面會(huì)生成2頁(yè)ppt, # level1 A 和# level1 B 橫向劃分,分別作為一頁(yè)ppt,其后面的作為內(nèi)容


## 這是一個(gè)幻燈片級(jí)別的標(biāo)題 {data-background-color="#ff0000"}
- 幻燈片級(jí)別標(biāo)題后 {data-background-color="#ff0000"} 可修改當(dāng)前頁(yè)背景
- 類似 的還有:
     * data-background-image
    * data-background-video
    * data-background-iframe


## 暫停

 `...` 可以暫停顯示,這里是暫停之前

. . .

`...` 可以暫停顯示,這里是暫停之后

## 強(qiáng)制分頁(yè)
- `---` 可以強(qiáng)制分頁(yè)  
- 這里是`---`強(qiáng)制分頁(yè)前  

---

這里是`---`強(qiáng)制分頁(yè)后

## 備注
- 這里是備注,演講者模式(按S進(jìn)入演講者模式)時(shí)可以顯示

::: notes
這里是備注,演講者模式(按S進(jìn)入演講者模式)時(shí)可以顯示


:::

## 列表逐行顯示,按空格顯示

::: incremental

- 列表項(xiàng)1
- 列表項(xiàng)2

:::

## 水平展示列表

:::::::::::::: {.columns}
::: {.column width="40%"}
第一列
:::
::: {.column width="60%"}
第2列
:::
::::::::::::::

## END

結(jié)果如下:


result.gif

參考資料:

[1] http://www.itdecent.cn/p/0e0abc6feeb3
[2] https://www.pandoc.org/MANUAL.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容