首页/新闻资讯/正文详情

MDX Deck 快速上手指南:基于 Markdown 与 React 构建演示文稿

发布时间:2026/9/23 15:46:01 来源:云帆数科 栏目:资讯中心
MDX Deck 快速上手指南:基于 Markdown 与 React 构建演示文稿
MDX Deck 快速上手指南基于 Markdown 与 React 构建演示文稿【免费下载链接】mdx-deck♠️ React MDX-based presentation decks项目地址: https://gitcode.com/gh_mirrors/md/mdx-deckMDX Deck 是一个基于 React 与 MDX 的演示文稿Presentation Deck构建工具核心思路是用 Markdown 写内容、用 React 组件做交互、用零配置 CLI 跑起来。本文以 packages/mdx-deck/README.md 为主线完整讲解从安装、分页编写、主题定制、内置组件、自定义布局到演讲者模式与 CLI 参数的实战流程并结合仓库源码说明其底层实现读完即可上手打造自己的幻灯片。快速开始Getting StartedMDX Deck 通过npm以开发依赖方式安装npm i -D mdx-deck安装后创建一个.mdx文件例如deck.mdx并使用---三个连字符组成的水平线将每一页幻灯片分隔开# Hello --- ## This is my deck --- ## The End接着在package.json中添加一条运行脚本使用 MDX Deck 的 CLI 指向该.mdx文件即可启动开发服务器scripts: { start: mdx-deck deck.mdx }启动开发服务器npm start启动后使用键盘的左右方向键即可在幻灯片之间前后导航。从package.json的bin字段见 packages/mdx-deck/package.json可以看到mdx-deck命令实际映射到./cli.js而cli.js内部通过execa调用 Gatsby 的develop命令并透传--host、--port与--open参数详见 packages/mdx-deck/cli.js也就是说开发服务器本质上是基于 Gatsby 的。使用 MDX在幻灯片中内联 React 组件MDX 同时支持 Markdown 语法并允许在文档中直接以 JSX 形式渲染 React 组件。导入组件Imports导入组件使用标准的 ES import 语法但必须在 import 语句与任何 markdown / JSX 内容之间留出空行否则会被当作普通文本解析import { Box } from theme-ui Box colortomatoHello/Box导出主题与更多除了组件导入MDX Deck 还允许在 MDX 文件中通过export导出theme见下文 Theming 一节。仓库自带的演示文件 packages/mdx-deck/hello.mdx 以及 examples/basic/deck.mdx 都是可以直接运行的分页示例适合作为最小可运行模板参考。主题定制ThemingMDX Deck 的样式体系建立在 Theme UI 与 Emotion 之上因此幻灯片中几乎任何一部分都可以通过主题定制。仓库还内置了多套主题用于快速改变演示文稿的外观。内置主题的完整列表与效果图见 docs/themes.md详细定制方法见 docs/theming.md。启用内置主题在 MDX 文件中通过export const theme ...即可启用主题import { themes } from mdx-deck export const theme themes.dark # Dark Theme仓库内置主题包括dark、future、condensed、yellow、swiss、poppins、book、script、comic、notes、code、lobster以及用于语法高亮的highlight与prism导出定义见 packages/themes/index.js。也可以按需单独引入import { big } from mdx-deck/themes自定义主题自定义主题同样是导出theme对象主题基于 Theme UI可定制字体、颜色、布局与各类元素样式import myTheme from ./theme export const theme myTheme # Hello// 示例 theme.js export default { fonts: { body: Roboto, sans-serif, monospace: Roboto Mono, monospace, }, colors: { text: white, background: black, primary: blue, }, }组合主题需要组合多套主题时将多个主题对象合并merge成一个对象再导出即可。Google Fonts主题对象中可以指定googleFont字段MDX Deck 会自动在文档head中添加对应的link标签也可以改用Head /组件手动添加自定义link标签。语法高亮默认情况下围栏代码块fenced code block不包含任何语法高亮。主题可以通过提供一组自定义的 MDX 组件包括替换默认code组件的实现来接入语法高亮例如配合react-syntax-highlighter。MDX Deck 为此内置了两套高亮主题highlight与prismimport { themes } from mdx-deck export const theme { ...themes.prism }由于 MDX 本身支持内联 React 组件也可以直接在幻灯片中引入高亮组件import Highlighter from react-syntax-highlighter Highlighter languagejavascript {export const hello hi} /Highlighter样式化 Markdown 元素通过theme.styles对象可以针对具体 Markdown 元素如标题、引用统一样式// 示例主题 export default { styles: { h1: { textTransform: uppercase, letterSpacing: 0.1em, }, blockquote: { fontStyle: italic, }, } }主题字段参考ReferencecolorsMDX 组件使用的颜色对象text根前景色background根背景色primary主色fonts.body基础字体族fonts.heading标题字体族fonts.monospacepre与code的字体族text.heading所有标题的统一样式styles作用于 MDX 元素的 Theme UI 样式styles.Slide包裹内容的 Slide 组件样式styles.HeaderHeader 组件样式styles.FooterFooter 组件样式componentsMDX 组件映射对象googleFont用于加载 Google 字体的样式表 URL各内置主题的具体实现可参考 packages/themes/ 目录下的base.js、dark.js、future.js等文件base.js为空对象仅作向后兼容保留。内置组件ComponentsMDX Deck 内置了一系列辅助演示文稿制作的组件这些组件通过 MDX 的shortcodes机制提供无需显式 import即可使用。完整说明见 docs/components.md。Head设置文档头部用Head组件写入head中的内容例如配置 Twitter Card 分享信息Head titleMy Presentation/title meta nametwitter:card contentsummary_large_image / meta nametwitter:site contentjxnblk / meta nametwitter:title contentMy Presentation / meta nametwitter:description contentA really great presentation / meta nametwitter:image contenthttps://example.com/card.png / /HeadNotes演讲者备注Notes组件添加的备注只在演讲者模式presenter mode下显示对观众不可见。内容支持 Markdown 语法但需要在内容前后保留空行# Slide Content Notes - Only visible in presenter mode - Markdown syntax can be used with empty lines around the content /NotesHeader / Footer全篇页眉页脚Header与Footer组件分别在整个演示文稿的顶部 / 底部渲染跨页持久显示的内容适合放 Logo、账号标识等Header Put a logo, handle, or something else here... /Header # My PresentationSteps单页内分步呈现Steps旧称Appear组件让单个幻灯片内的子元素逐一出现配合左右方向键逐步切换Steps - One - Two - Three - Four /Steps从源码结构看Steps内部使用useSteps这个 hook实现位于 packages/gatsby-plugin/src/use-steps.js因此你也可以基于useSteps构建行为类似的自定义组件。第三方组件以下可选库专为 MDX Deck 设计可按需配合使用CodeSurfer用于代码的滚动、缩放与高亮展示的 React 组件。mdx-code面向 MDX Deck 的可运行代码沙箱playground。mdx-deck-live-code在幻灯片中进行 React / JS 实时编码。注意使用这些第三方库时请先确认与当前 MDX Deck 版本的兼容性。布局Layouts每一页幻灯片都可以包裹一个自定义布局组件作为该页的模板用于在视觉上区分不同类型的幻灯片。示例见 examples/layouts/deck.mdx。自定义布局// 示例 Layout.js import React from react export default ({ children }) ( div style{{ width: 100vw, height: 100vh, backgroundColor: tomato, }} {children} /div )import Layout from ./Layout # No Layout --- Layout # Custom Layout /Layout布局组件会包裹该页幻灯片内的所有 MDX 元素因此你可以在布局内使用嵌套的 ThemeProvider或用 CSS-in-JS 定向样式化子元素。注意布局组件内子内容前后必须保留换行否则内容会被当作原始文本而非 Markdown 解析。内置布局Invert反转主题的前景色与背景色import { Invert } from mdx-deck # Normal --- Invert # Inverted /InvertSplit水平布局第一个子元素靠左其余子元素靠右import { Split } from mdx-deck Split ![](kitten.png) ## Meow /SplitSplitRight与Split相同但第一个子元素渲染在右侧。Horizontal类似 Split 系列但将所有子元素并排渲染。FullScreenCode将代码块全屏渲染import { FullScreenCode } from mdx-deck FullScreenCode jsx ButtonBeep/Button /FullScreenCode上述内置布局的底层实现可以在 packages/gatsby-theme/src/components/ 目录中对应找到如invert.js、split.js、split-right.js、horizontal.js、full-screen-code.js。演讲者模式Presenter Mode按下Option P即可切换演讲者模式该模式会显示下一页幻灯片的预览、计时器以及演讲者备注演讲者模式的关键特性是演示文稿可以在两个独立窗口中同时打开且两个窗口之间保持同步——演讲者在自己窗口内翻页观众窗口随之切换。具体操作流程参见 docs/presenting.md按Opt P进入演讲者模式点击页面底部的链接在另一个标签页打开演示文稿将该标签页移动到观众可见的屏幕或投影仪窗口在原始窗口控制翻页记得隐藏鼠标光标避免出现在观众屏幕上。键盘快捷键Keyboard Shortcuts按键说明左方向键、Page Up、Shift Space回到上一页或 Steps 中的上一步右方向键、Page Down、Space进入下一页或 Steps 中的下一步Option P切换演讲者模式Option O切换总览模式Overview ModeOption G切换网格模式Grid ModeCLI 选项CLI Optionsmdx-deck命令支持以下参数对应实现见 packages/mdx-deck/cli.js-p --port Dev server port -h --host Host the dev server listens to --no-open Prevent from opening in default browser各参数的默认值同样可以在cli.js中确认--port/-p开发服务器端口默认8000--host/-h开发服务器监听的主机名默认localhost--open/-o是否自动在默认浏览器打开默认开启可用--no-open关闭。除开发命令外CLI 还支持构建生产版本mdx-deck build deck.mdx。从cli.js的build分支可以看到构建会先执行gatsby clean清理缓存再运行gatsby build最后把 Gatsby 生成的public目录复制到当前工作目录下而开发模式则调用gatsby develop并透传上述 host / port / open 参数。该 CLI 在package.json中登记了start、build、help三个脚本分别对应./cli.js hello.mdx、./cli.js build hello.mdx与./cli.js可自行运行查看效果。仓库示例与延伸阅读仓库在 examples/ 目录下提供了多种可直接运行的示例是理解各功能的最佳入口基础示例最小的分页演示文稿语法高亮示例代码块高亮Steps 示例单页内分步呈现Head 示例文档头部定制页眉页脚示例跨页 Header / Footer主题示例 与 Provider 示例主题与全局 Provider 定制多文件示例通过deck.js聚合多个 MDX 文件Gatsby 集成示例将 MDX Deck 作为 Gatsby 站点的一部分使用。如需进一步深入可继续阅读仓库内文档组件文档、主题文档、主题定制文档、布局文档、导出文档 与 API 文档。MDX Deck 的核心功能分布在 packages/mdx-deck/CLI 与配置、packages/gatsby-plugin/Gatsby 插件实现与 packages/themes/内置主题三个包中配合本文即可从会用走向知其所以然。【免费下载链接】mdx-deck♠️ React MDX-based presentation decks项目地址: https://gitcode.com/gh_mirrors/md/mdx-deck创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

TRC20 USDT支付插件:服务端SDK快速集成指南
TRC20 USDT支付插件:服务端SDK快速集成指南

简介:这是一款专为彩虹易支付系统定制的USDT-TRC20链上收款插件,面向PHP开发者及中小型网站支付功能拓展需求者,解决传统易支付不支持稳定币直收、资金需经第三方中转的痛点。插件部署后可新增独立支付方式,调用标识为usdt&#x… · 2026/9/23 15:45:54

Kornia 下载缓存卫生机制解析:拒绝的新下载如何避免污染缓存(4367)
Kornia 下载缓存卫生机制解析:拒绝的新下载如何避免污染缓存(4367)

Kornia 下载缓存卫生机制解析:拒绝的新下载如何避免污染缓存(#4367) 【免费下载链接】kornia 🐍 空间人工智能的几何计算机视觉库 项目地址: https://gitcode.com/kornia/kornia 导读 Kornia 在模型权重与预训练检查点的下… · 2026/9/23 15:45:54

knowledge-work-plugins 插件体系:用 slash commands 实现知识工作自动化
knowledge-work-plugins 插件体系:用 slash commands 实现知识工作自动化

1. 从零认识 knowledge-work-plugins:它到底解决什么问题第一次看到knowledge-work-plugins这个仓库名,很多人会以为它只是某个工具的插件合集,点进去才发现它其实是一套围绕“知识工作”场景构建的插件体系。所谓知识工作,说白了… · 2026/9/23 15:45:48

5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘
5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘

5000 万向量、日均 300 次文档更新:RAG 增量一致性架构的实战复盘 关键词:RAG、增量索引、Transactional Outbox、Kafka、Milvus、版本发布、最终一致性 凌晨三点,客服机器人又报出了已经失效三个月的企业报价。报价 PDF 三天前已上传到对象存储,业务库也记录了新版本;但 … · 2026/9/24 3:04:25

Prisma 数据导出完整指南:CLI 命令与原生 Export API 实战
Prisma 数据导出完整指南:CLI 命令与原生 Export API 实战

后端数据库GraphQL 【免费下载链接】prisma1 💾 Database Tools incl. ORM, Migrations and Admin UI (Postgres, MySQL & MongoDB) [deprecated] 项目地址: https://gitcode.com/gh_mirrors/pr/prisma1 点击查看 免费下载 导读 本文围绕 Prisma 服… · 2026/9/24 3:04:19

DA14585固件烧录全链路指南:UART Bootloader与SPI Flash避坑实战
DA14585固件烧录全链路指南:UART Bootloader与SPI Flash避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:04:19

Codex Security 安全披露与威胁模型指南:漏洞报告范围、本地信任边界与扫描安全实践
Codex Security 安全披露与威胁模型指南:漏洞报告范围、本地信任边界与扫描安全实践

应用安全漏洞扫描AI 应用 【免费下载链接】codex-security OpenAIs Codex Security CLI and TypeScript SDK for finding, validating, and fixing security vulnerabilities. npm: https://www.npmjs.com/package/openai/codex-security 项目地址: https://gitcode… · 2026/9/24 3:04:19

理解MISRA C编码规范:从C语言安全到嵌入式功能安全实践
理解MISRA C编码规范:从C语言安全到嵌入式功能安全实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:03:55

ACK智算升级:从容器编排到GPU精细化调度与成本优化
ACK智算升级:从容器编排到GPU精细化调度与成本优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 3:03:31

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码