lorniu
1
制作幻灯片,除了 PowerPoint 和 Keynote 外,最好的是基于 html5 的方案。基于 html5 的方案,目前最好的应该是 Spectacle.js。由于 Spectacle 使用了 ReactJS 及前端的工程化方案,使用难度略高。但是有了 Emacs 的 Org Mode,一切变得简单。
总之,Spectacle
+ Ox-Spectacle
,当下最优的幻灯片解决方案之一。欢迎尝试。
相关链接:
演示页面:
19 个赞
期待!Linux用户用PowerPoint实在太难受了。
nice!!!我现在一般用ox-reveal做slides,不知道这个和reveal.js比哪个更好用?
ginqi7
7
看起来这个slidev 很不错呀。使用起来比较简单。下次写ppt 用它试试。
PS: 顺便赞一下尤雨溪,我发现的好几个不错的js 项目,他都有赞助。达则兼济天下呀。
slidev 这玩意很高级, 它支持根据数组绘制曲线吗?
传统方式做PPT还是挺费劲的。
lorniu
9
你要问我,我的回答肯定是… 由于 reveal.js 不满足我的使用需求,所以才搞了这个。个人觉得比 reveal.js 简洁,毕竟用了 jsx 语法
lorniu
10
slidev 挺好的,不过 Markdown 怎么也不如 org mode 强大嘛
lorniu
11
Spectacle 可以。因为基于 React 的,所以 React 生态里的库可以随便用,组件可以随便自定义
准备开始写slide了,然后试用了一下大佬的这个工具。
目前看起来和org mode结合确实是相当的强大。
有一个小疑问:
org 的heading 会创建一个 Slide 组件或者 Box 组件。
但 heading 的内容,并不会展示为某一页当中。还需要填写具体的内容,指定为标题。
如果是只有 heading 的org 文件,生成的是一个空 slide, 有点不太符合直觉。
#+TITLE: 示例幻灯片
* 第一个页面
* 第二个页面
heading 的内容实没有实际意义。是否可以考虑,默认就把 heading 当作每一页的默认标题。如果不想用它作为标题可以用properties控制。
lorniu
13
这样只会让事情变复杂。如果设计成 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 将默认带标题了,样式之类的可以随意定义。
dvorak
15
好东西!
楼主,使用的时候遇到definition is void: string-split。有解决思路吗。
emacs version: 28.2
ox-spectacle: 20221226.53
org: 9.6.1
我试了下把string-split全局替换成split-string,目前看来是ok的
ginqi7
16
string-split 是 29.1 引入的方法,可以给大佬提个 PR ,替换成 split-string ,兼容性会好一些。