
go 的 `present` 工具原生支持 go 代码执行,但通过添加 unix shebang 行(如 #!/usr/bin/ruby),可扩展支持 ruby、python 等解释型语言的实时运行。
Go 自带的 present 包是一个轻量级幻灯片演示工具,专为技术分享设计,其 .play 指令默认仅识别 .go 文件并调用 go run 执行。但实际机制更灵活:它会读取源文件首行的 shebang(#!)声明,据此决定使用哪个解释器运行该脚本——这意味着只要系统中已安装对应解释器且路径正确,Ruby、Python 甚至 Bash 脚本均可直接运行。
✅ 正确配置步骤
-
为脚本添加标准 shebang 行(必须是第一行,且以 #! 开头,后跟绝对路径):
#!/usr/bin/env ruby puts 'hello, world'
或更兼容的写法(推荐):
#!/usr/bin/env python3 print("hello, world") -
确保系统已安装对应解释器,并可通过 env 找到:
立即学习“Python免费学习笔记(深入)”;
which ruby # 应输出类似 /usr/bin/ruby 或 /opt/homebrew/bin/ruby which python3 # 应输出有效路径
-
在 .slide 文件中正常引用:
.play check.rb
或
.play hello.py
⚠️ 注意事项:shebang 必须严格位于文件第一行,前面不能有空行或 BOM;路径需真实存在(/usr/bin/ruby 在某些 macOS 系统可能不存在,优先用 /usr/bin/env ruby);present 不校验文件扩展名,.play check.rb 中的 .rb 后缀仅为语义提示,真正起作用的是 shebang;若点击 Run 后报错(如 exec: "ruby": executable file not found in $PATH),说明服务端环境未安装或未配置好对应解释器——present 是在服务器端执行代码,而非浏览器中。
? 示例:完整可运行的 Python 片段
greet.py:
#!/usr/bin/env python3
import sys
print(f"Hello from Python {sys.version.split()[0]}!").slide 中写入:
.play greet.py
启动 present 后点击 Run,即可看到 Python 输出结果。
总之,present 的多语言支持不依赖硬编码扩展,而是遵循 Unix 传统,由 shebang 驱动。只要环境就绪,你就能在技术分享中无缝嵌入 Ruby、Python、Node.js(#!/usr/bin/env node)等任意解释型语言的可执行示例。










