幻灯片
在终端中展示幻灯片。
安装
安装说明
MacOS
brew install slides
Arch
yay -S slides
Nixpkgs (不稳定版)
nix-env -iA nixpkgs.slides
任何运行 snapd
的 Linux 发行版
sudo snap install slides
Go
go install github.com/maaslalani/slides@latest
从源码安装:
git clone https://github.com/maaslalani/slides.git
cd slides
go install
你也可以从发布页面下载二进制文件。
使用方法
创建一个包含幻灯片内容的简单 markdown 文件:
# 欢迎使用幻灯片
一个基于终端的演示工具
---
## 一切皆为 markdown
事实上,整个演示文稿都是一个 markdown 文件。
---
## 一切都在你的终端中进行
无需离开终端即可创建幻灯片并进行演示。
---
## 代码执行
```go
package main
import "fmt"
func main() {
fmt.Println("直接在幻灯片中执行代码")
}
```
你可以通过按下 `<C-e>` 在幻灯片中执行代码,
命令的输出将显示在当前幻灯片的末尾。
---
## 预处理幻灯片
你可以添加一个由三个波浪线(`~`)包围的代码块,并编写一个在显示幻灯片之前运行的命令,
代码块内的文本将作为 `stdin` 传递给命令,
代码块将被替换为命令的 `stdout`。
```
~~~graph-easy --as=boxart
[ A ] - to -> [ B ]
~~~
```
上面的内容将被预处理成这样:
┌───┐ to ┌───┐
│ A │ ────> │ B │
└───┘ └───┘
出于安全考虑,你必须传递一个具有执行权限的文件,
才能对幻灯片进行预处理。你可以使用 `chmod` 添加这些权限。
```bash
chmod +x file.md
```
查看示例幻灯片。
然后,要进行演示,运行:
slides presentation.md
如果提供了文件名,slides
将自动检测文件的变化并实时更新演示。
slides
也接受通过 stdin
输入:
curl http://example.com/slides.md | slides
使用以下按键序列跳转到第一张幻灯片:
- g g
使用以下任一按键序列跳转到下一张幻灯片:
- 空格
- 右箭头
- 下箭头
- 回车
- n
- j
- l
- Page Down
- 数字 + 以上任一按键(前进 n 张幻灯片) 使用以下任一键序列转到上一张幻灯片:
- 左箭头
- 上箭头
- p
- h
- k
- N
- Page Up
- 数字 + 上述任一键(回退n张幻灯片)
使用以下键序列转到特定幻灯片:
- 数字 + G
使用以下键转到最后一张幻灯片:
- G
搜索
要快速跳转到正确的幻灯片,你可以使用搜索功能。
按/,输入搜索词并按Enter
(搜索词被解释为正则表达式。/i
标志使搜索不区分大小写。)
搜索后按ctrl+n转到下一个搜索结果。
代码执行
如果幻灯片在当前页面上找到代码块,它可以执行该代码块并在屏幕上显示结果作为虚拟文本。
在含有代码块的幻灯片上按ctrl+e来执行并显示结果。
预处理
你可以添加一个由三个波浪线(~
)包围的代码块,并写入在显示幻灯片之前运行的命令。代码块内的文本将作为stdin
传递给命令,代码块将被命令的stdout
替换。用三个反引号包裹预处理后的块以保持正确的格式和换行。
```
~~~graph-easy --as=boxart
[ A ] - to -> [ B ]
~~~
```
上述内容将被预处理成如下形式:
┌───┐ to ┌───┐
│ A │ ────> │ B │
└───┘ └───┘
出于安全考虑,你必须传递一个具有执行权限的文件才能预处理幻灯片。你可以使用chmod
添加这些权限。
chmod +x file.md
配置
slides
允许你通过在slides.md
顶部添加元数据来自定义演示文稿的外观和感觉。
此部分完全可选,如果省略此部分或部分中的任何字段,
slides
将使用合理的默认值。
---
theme: ./path/to/theme.json
author: Gopher
date: MMMM dd, YYYY
paging: Slide %d / %d
---
theme
:包含glamour主题的json
文件路径,也可以是slides在演示前将获取的远程json
文件链接。author
:在演示视图左下角显示的字符串
。默认为操作系统当前用户的全名。可以为空以隐藏作者。date
:用于格式化今天日期的字符串
,格式为YYYY-MM-DD
。如果日期格式无效,将直接显示该字符串。默认为YYYY-MM-DD
。paging
:包含0个或多个%d
指令的字符串
。第一个%d
将被替换为当前幻灯片编号,第二个%d
将被替换为幻灯片总数。默认为Slide %d / %d
。 如果分页值以%
开头,需要用引号将其括起来。
日期格式
以日期_2006年1月2日_为例:
值 | 转换为 |
---|---|
YYYY | 2006 |
YY | 06 |
MMMM | January |
MMM | Jan |
MM | 01 |
mm | 1 |
DD | 02 |
dd | 2 |
SSH
如果slides通过slides serve [file]
命令在机器上托管,则可以通过ssh
访问。
在一台机器上运行:
slides serve [file]
然后,在另一台机器(或同一台机器)上,通过ssh
连接到slides serve [file]
命令指定的端口:
ssh 127.0.0.1 -p 53531
您将能够通过SSH访问演示文稿!您可以在没有安装slides
但安装了ssh
的计算机上使用slides
进行演示。或者,让您的观众无需下载slides
和演示文件就能在自己的计算机上访问幻灯片。
替代方案
致谢:本项目受到lookatme
的极大启发。
开发
请参阅开发文档