欢迎使用 ox-spectacle 制作幻灯片

制作幻灯片,除了 PowerPoint 和 Keynote 外,最好的是基于 html5 的方案。基于 html5 的方案,目前最好的应该是 Spectacle.js。由于 Spectacle 使用了 ReactJS 及前端的工程化方案,使用难度略高。但是有了 Emacs 的 Org Mode,一切变得简单。

总之,Spectacle + Ox-Spectacle,当下最优的幻灯片解决方案之一。欢迎尝试。

相关链接:

演示页面:

19 个赞

期待!Linux用户用PowerPoint实在太难受了。

nice!!!我现在一般用ox-reveal做slides,不知道这个和reveal.js比哪个更好用?

好东西,以前用reveal,感觉这个看着庄重点

感謝樓主貢獻,可惜現在比較常用 slidev。

看起来这个slidev 很不错呀。使用起来比较简单。下次写ppt 用它试试。

PS: 顺便赞一下尤雨溪,我发现的好几个不错的js 项目,他都有赞助。达则兼济天下呀。

slidev 这玩意很高级, 它支持根据数组绘制曲线吗?

传统方式做PPT还是挺费劲的。

你要问我,我的回答肯定是… 由于 reveal.js 不满足我的使用需求,所以才搞了这个。个人觉得比 reveal.js 简洁,毕竟用了 jsx 语法

slidev 挺好的,不过 Markdown 怎么也不如 org mode 强大嘛 :grinning:

Spectacle 可以。因为基于 React 的,所以 React 生态里的库可以随便用,组件可以随便自定义

准备开始写slide了,然后试用了一下大佬的这个工具。

目前看起来和org mode结合确实是相当的强大。

有一个小疑问: org 的heading 会创建一个 Slide 组件或者 Box 组件。 但 heading 的内容,并不会展示为某一页当中。还需要填写具体的内容,指定为标题。

如果是只有 heading 的org 文件,生成的是一个空 slide, 有点不太符合直觉。

#+TITLE: 示例幻灯片

* 第一个页面

* 第二个页面

heading 的内容实没有实际意义。是否可以考虑,默认就把 heading 当作每一页的默认标题。如果不想用它作为标题可以用properties控制。

这样只会让事情变复杂。如果设计成 headline 默认为标题,那么接下来要考虑怎么设置它的样式、大小、位置等,会越来越复杂。

如果你真的想让你的幻灯片中 headline 默认作为标题,也很简单。

首先,定义一个 Slide 组件 (在 * config 下添加如下的 src-block):

#+begin_src js
  const MySlide = (props) => {
      return html`
      <${Slide} ...${props}>
        <${Text} 你的其他样式设定> ${props.title} </{Text}>
        ${props.children}
      </${Slide}>`;
  }
#+end_src

然后,全局设置下,使用这个自定义 Slide 组件渲染 slide-page 即可:

#+extern_components: MySlide
#+slide_opts: MySlide

这样所有的 Slide 将默认带标题了,样式之类的可以随意定义。

扩展性这么好呀。我研究研究,大佬V5

好东西!

楼主,使用的时候遇到definition is void: string-split。有解决思路吗。

emacs version: 28.2

ox-spectacle: 20221226.53

org: 9.6.1

我试了下把string-split全局替换成split-string,目前看来是ok的

string-split 是 29.1 引入的方法,可以给大佬提个 PR ,替换成 split-string ,兼容性会好一些。

看到你已经提了,谢谢~

嗯嗯,提点简单的PR 参与进来。

想问一下ox-spectacle里如何写大段的latex公示啊? 我试了一下用双$$符号是可以的,但是直接用\begin{equation} … \end{equation}数学环境就不显示,请问如何解决?之前用ox-reveal的时候,是采用#+REVEAL_MATHJAX_URL: PATH-To-MathJax/MathJax-master/es5/tex-chtml-full.js这样子实现的。谢谢解答!:pray::pray::pray:

当前没支持。这个有点麻烦。

欢迎 pr。