reveal-md

reveal-md

基于reveal.js的Markdown演示幻灯片生成工具

reveal-md是一款基于reveal.js的Markdown演示幻灯片生成工具。它可将Markdown文件转换为精美的网页幻灯片,支持自定义主题、代码高亮和演讲者注释等功能。reveal-md提供命令行接口和Docker镜像,方便导出PDF和静态网站。这个工具适合开发者快速制作技术演示文稿,无需复杂的设置即可创建专业效果的幻灯片。

reveal.jsMarkdown演示文稿幻灯片静态网站Github开源项目

reveal-md

基于 [reveal.js][1] 的增强版!从 Markdown 文件生成漂亮的 reveal.js 演示文稿。

安装

npm install -g reveal-md

使用

reveal-md slides.md

这会启动一个本地服务器,并在默认浏览器中将任何 Markdown 文件作为 reveal.js 演示文稿打开。

Docker

你可以使用 Docker 运行此工具,无需在机器上安装 Node.js。运行公开的 Docker 镜像,将你的 markdown 幻灯片作为卷提供。以下是一些示例:

docker run --rm -p 1948:1948 -v <path-to-your-slides>:/slides webpronl/reveal-md:latest docker run --rm -p 1948:1948 -v <path-to-your-slides>:/slides webpronl/reveal-md:latest --help

服务现在运行在 [http://localhost:1948][2]。

要在容器中启用实时重载,还应该映射端口 35729:

docker run --rm -p 1948:1948 -p 35729:35729 -v <path-to-your-slides>:/slides webpronl/reveal-md:latest /slides --watch

功能

  • [安装][3]
  • [使用][4]
  • [Docker][6]
  • [功能][7]
    • [Markdown][8]
      • [代码部分][59]
    • [主题][9]
    • [高亮主题][10]
    • [自定义幻灯片分隔符][11]
    • [自定义幻灯片属性][12]
    • [reveal-md 选项][13]
    • [Reveal.js 选项][14]
    • [演讲者注释][15]
    • [YAML Front matter][16]
    • [实时重载][17]
    • [自定义脚本][18]
    • [自定义 CSS][19]
    • [自定义 Favicon][20]
    • [预处理 Markdown][21]
    • [打印为 PDF][22]
      • [1. 使用 Puppeteer][23]
      • [2. 使用 Docker 和 DeckTape][24]
    • [静态网站][25]
    • [禁用自动打开浏览器][26]
    • [目录列表][27]
    • [自定义端口][28]
    • [自定义模板][29]
  • [脚本、预处理器和插件][30]
  • [相关项目与替代方案][31]
  • [致谢][32]
  • [许可证][33]

Markdown

reveal.js 的 Markdown 功能非常棒,有一种简单(且可配置)的语法来分隔幻灯片。使用三个破折号,前后各有两个空行(\n---\n)。示例:

# 标题 - 要点 1 - 要点 2 --- ## 第二张幻灯片 > 最佳引用。 Note: 演讲者注释很棒!

代码部分

语法高亮
```js console.log('Hello world!'); ```
高亮某些行

你可以高亮一行、多行或两者。

```python [1|3-6] n = 0 while n < 10: if n % 2 == 0: print(f"{n} is even") else: print(f"{n} is odd") n += 1 ```

主题

覆盖主题(默认:black):

reveal-md slides.md --theme solarized

查看[可用主题][34]。

使用自定义主题覆盖 reveal 主题。在此示例中,文件位于 ./theme/my-custom.css:

reveal-md slides.md --theme theme/my-custom.css

使用远程主题覆盖 reveal 主题(使用 rawgit.com,因为 URL 必须允许跨站访问):

reveal-md slides.md --theme https://rawgit.com/puzzle/pitc-revealjs-theme/master/theme/puzzle.css

高亮主题

覆盖高亮主题(默认:zenburn):

reveal-md slides.md --highlight-theme github

查看[可用主题][35]。

自定义幻灯片分隔符

覆盖幻灯片分隔符(默认:\n---\n):

reveal-md slides.md --separator "^\n\n\n"

覆盖垂直/嵌套幻灯片分隔符(默认:\n----\n):

reveal-md slides.md --vertical-separator "^\n\n"

自定义幻灯片属性

使用 [reveal.js 幻灯片属性][36]功能添加 HTML 属性,例如自定义背景。或者,为特定幻灯片添加 HTML id 属性,并使用 CSS 设置其样式。

示例:设置第二张幻灯片使用 PNG 图像作为背景:

# 幻灯片1 这张幻灯片没有背景图像。 --- <!-- .slide: data-background="./image1.png" --> # 幻灯片2 这张有!

reveal-md 选项

在 Markdown 文件根目录的 reveal-md.json 文件中定义类似于命令行选项的选项。它们会被自动拾取。示例:

{ "separator": "^\n\n\n", "verticalSeparator": "^\n\n" }

Reveal.js 选项

在项目根目录的 reveal.json 文件中定义 Reveal.js [选项][37]。它们会被自动拾取。示例:

{ "controls": true, "progress": true }

演讲者注释

使用以 Note: 开头的行来使用[演讲者注释][38]功能。

YAML Front matter

使用 YAML front matter 设置特定演示文稿的 Markdown(和 reveal.js)选项:

--- title: Foobar separator: <!--s--> verticalSeparator: <!--v--> theme: solarized revealOptions: transition: 'fade' --- Foo Note: 测试注释 <!--s--> # Bar <!--v-->

实时重载

使用 -w 选项,对 markdown 文件的更改将触发浏览器重新加载,从而显示更改后的演示文稿,而无需用户手动重新加载浏览器。

reveal-md slides.md -w

自定义脚本

向页面注入自定义脚本:

reveal-md slides.md --scripts script.js,another-script.js
  • 不要使用绝对文件路径,文件应该在相邻或下级文件夹中。
  • 允许使用绝对 URL。

自定义 CSS

向页面注入自定义 CSS:

reveal-md slides.md --css style.css,another-style.css
  • 不要使用绝对文件路径,文件应该在相邻或下级文件夹中。
  • 允许使用绝对 URL。

自定义 Favicon

如果包含 markdown 文件的目录中有 favicon.ico 文件,它将自动用作网站图标,而不是[默认网站图标][39]。

预处理 Markdown

可以通过 --preprocessor (或 -P) 选项为 reveal-md 提供 markdown 预处理器脚本。这对于在不深入研究 Markdown 解析器的情况下实现文档格式的自定义调整很有用。

例如,要让标题自动创建新幻灯片,可以有脚本 preproc.js:

// 标题触发新幻灯片 // 带有插入符号的标题(例如,'##^ foo`)触发新的垂直幻灯片 module.exports = (markdown, options) => { return new Promise((resolve, reject) => { return resolve( markdown .split('\n') .map((line, index) => { if (!/^#/.test(line) || index === 0) return line; const is_vertical = /#\^/.test(line); return (is_vertical ? '\n----\n\n' : '\n---\n\n') + line.replace('#^', '#'); }) .join('\n') ); }); };

并像这样使用它

reveal-md --preprocessor ./preproc.js slides.md

打印为 PDF

至少有两种选项可以将演示文稿导出为 PDF 文件。

1. 使用 Puppeteer

从提供的 Markdown 文件创建(可打印的)PDF:

reveal-md slides.md --print slides.pdf

PDF 是使用 Puppeteer 生成的。或者,在命令行或浏览器中的 URL 后附加 ?view=print(确保删除 #/#/1 哈希)。然后使用浏览器的(而不是本机的)打印对话框打印幻灯片。这似乎在 Chrome 中可以工作。

默认情况下,纸张大小设置为匹配您的 [reveal.json][14] 文件中的选项,如果没有则回退到默认值 960x700 像素。要覆盖此行为,您可以在命令行选项 --print-size 中传递自定义尺寸或格式:

reveal-md slides.md --print slides.pdf --print-size 1024x768 # 当没有给出单位时以像素为单位 reveal-md slides.md --print slides.pdf --print-size 210x297mm # 有效单位为: px, in, cm, mm reveal-md slides.md --print slides.pdf --print-size A4 # 有效格式为: A0-6, Letter, Legal, Tabloid, Ledger

如果出现错误,请尝试以下操作:

  • 分析调试输出,例如 DEBUG=reveal-md reveal-md slides.md --print
  • 查看 reveal-md help 了解 Puppeteer 参数(puppeteer-launch-argspuppeteer-chromium-executable)
  • 使用 Docker 和 DeckTape:

2. 使用 Docker 和 DeckTape

当在 Docker 容器中运行 reveal-md 时,第一种打印方法目前不起作用,因此建议您改用 [DeckTape][40] 进行打印。使用 DeckTape 还可能解决内置打印方法输出的问题。

要使用 DeckTape Docker 镜像为在本地主机上运行的 reveal-md 演示文稿创建 PDF,请使用以下命令:

docker run --rm -t --net=host -v $OUTPUT_DIR:/slides astefanutti/decktape $URL $OUTPUT_FILENAME

替换以下变量:

  • $OUTPUT_DIR 是你想要保存PDF的文件夹。
  • $OUTPUT_FILENAME 是PDF的文件名。
  • $URL 是你可以在浏览器中访问演示文稿的地址(不包括?view=print后缀)。如果你没有在Docker中运行reveal-md,你需要将localhost替换为你计算机的IP地址。

要查看完整的导出选项列表,请参阅[DeckTape github][40],或使用-h标志运行Docker容器。

静态网站

这将把提供的Markdown文件导出为一个独立的HTML网站,包括脚本和样式表。文件保存到传递给--static参数的目录(默认为./_static):

reveal-md slides.md --static _site

这应该会连同幻灯片一起复制图片。使用--static-dirs来复制包含其他静态资源的目录到目标目录。使用逗号分隔的列表来复制多个目录。

reveal-md slides.md --static --static-dirs=assets

提供一个目录将生成一个独立的概览页面,其中包含演示文稿的链接(类似于[目录列表][27]):

reveal-md dir/ --static

默认情况下,所有子目录中的所有*.md文件都包含在生成的网站中。使用--glob提供一个自定义的[glob模式][41],仅从匹配的文件生成幻灯片:

reveal-md dir/ --static --glob '**/slides.md'

额外的--absolute-url--featured-slide参数可以用来生成[OpenGraph][42]元数据,使幻灯片链接在某些社交网站上分享时能够更吸引人地呈现。

reveal-md slides.md --static _site --absolute-url https://example.com --featured-slide 5

禁用自动打开浏览器

要禁用自动打开浏览器:

reveal-md slides.md --disable-auto-open

目录列表

显示Markdown文件的(递归)目录列表:

reveal-md dir/

显示当前目录中Markdown文件的目录列表:

reveal-md

自定义端口

覆盖端口(默认:1948):

reveal-md slides.md --port 8888

自定义模板

覆盖reveal.js HTML模板([默认模板][43]):

reveal-md slides.md --template my-reveal-template.html

覆盖列表HTML模板([默认模板][44]):

reveal-md slides.md --listing-template my-listing-template.html

编辑推荐精选

讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

TRELLIS

TRELLIS

用于可扩展和多功能 3D 生成的结构化 3D 潜在表示

TRELLIS 是一个专注于 3D 生成的项目,它利用结构化 3D 潜在表示技术,实现了可扩展且多功能的 3D 生成。项目提供了多种 3D 生成的方法和工具,包括文本到 3D、图像到 3D 等,并且支持多种输出格式,如 3D 高斯、辐射场和网格等。通过 TRELLIS,用户可以根据文本描述或图像输入快速生成高质量的 3D 资产,适用于游戏开发、动画制作、虚拟现实等多个领域。

下拉加载更多