5 个版本

0.2.1 2024 年 3 月 17 日
0.2.0 2024 年 2 月 19 日
0.1.3 2024 年 2 月 18 日

#128 in 游戏开发

每月 41 次下载

MPL-2.0 许可协议

480KB
1K SLoC

双倍工具

Crates.io Version Crates.io License

Twine 故事到 HTML 或 HTML 到 Twee3 的编译器。安装的命令是 twee

工具

  • unpack: 将存档解压为 Twee 文件。
  • decompile: 将 Twine HTML 文件解压为 Twee 文件。
  • init: 如果当前目录中尚未存在,则在当前目录中写入默认的 config.toml 并设置示例 .twee, .js 和 .css 文件。
  • build: 使用 config.toml 在当前目录中构建故事。查看默认的 config.toml 了解配置选项。
  • watch: 构建 story 并在更改时重新构建。您可以使用具有自动刷新功能的 Web 服务器,如 Visual Studio Code 扩展 Live Server,在开发期间轻松查看故事。

要了解一个命令的确切用法,请使用 -h 或 --help 选项。
buildwatch 还接受 -d 或 --debug 选项,这将开启故事格式的调试模式。

安装

安装 Rust,然后在终端中运行 cargo install twee-tools

功能

  • 支持在段落中包含文件,例如,将 css 文件作为样式表和 js 文件作为故事 JavaScript 包含在内。这意味着您可以在编辑器中获得语法高亮和自动完成功能,这在 Twee 文件中不起作用。
  • 包含所有 Twine 的默认故事格式。
    • 目前不支持 Paperthin 校对格式。
  • 默认情况下,目录中的所有 twee 文件都将组合成最终的故事,因此您可以将段落分离到多个文件中以进行组织。

Twee 格式扩展

为了完全兼容Twee格式,所有扩展都位于故事或段落或段落的元数据中。元数据格式为JSON

段落元数据命令/操作

  • "include":丢弃Twee文件中段落的内 容,并用指定文件的內容替换,例如::: StoryInit {"include": "file.twee"}。也支持路径数组。路径支持通配符。
  • "include-before":与"include"相同,但不会丢弃内容,而是将文件的內容添加到段落的开始。
  • "include-after":与"include-before"相同,但添加到段落的末尾。
  • "prepend":类似于"include-before",但添加的是值,而不是将值解释为文件路径。
  • "append":类似于"prepend",但添加到段落的末尾。

注意:额外的命令按顺序处理,即如果您使用"include-before"然后使用"include",结果将是"include"

命令段落

带有标签twee-cmd的段落将被解释为一系列构建段落内容的命令。这将在“prepend”等元数据操作之前发生。因此,这个段落也格式化为JSON数组。

  • 字符串将按原样包含。
  • 命令是具有特定属性的对象
    • { "include": "file" }:与“include”元数据操作功能相同,但只插入内容而不是替换它。

TweeTools 段落

此段落可用于额外的包含。它格式化为与StoryData段落相同的JSON对象。

  • "include":在故事中包含Twee文件的列表。来自文件中的命令的路径将相对于文件目录进行解释。这些文件甚至可以有自己的TweeTools段落和包含。编译器确保每个twee文件只包含一次。
  • "include-archive":在故事中包含Twine存档。

通配符

使用通配符,您可以一次性指定多个文件,通过在路径中留下通配符,然后通过搜索匹配该模式的路径来解析。
例如,*.js 将匹配当前目录中所有以 .js 结尾的文件。

支持的通配符

  • *:匹配除路径分隔符以外的所有字符,即 Windows 上的 \ 和大多数其他操作系统上的 /。
  • **:匹配所有子目录和当前目录。只能在路径分隔符之间使用,即 /**/**/*.js
  • ?:匹配除路径分隔符以外的单个字符。
  • []:匹配方括号内的任何单个字符。也支持范围,例如 [0-9] 用于所有数字。可以包含 *?,并将匹配字面字符,不进行替换。起始或结束处的 - 将字面匹配 -
  • [!]:匹配括号内(不含 !)之外的任何字符。也支持范围。
  • []]:匹配字符 ]

注意

  • twee 的通配符是区分大小写的,即 "Ab" 不会匹配文件名 "aB"。
  • 如果您不包含 .,则不会匹配以 . 开头的文件和文件夹,例如 */.*.js。这是为了避免与 git 和其他编辑器使用隐藏目录存储具有常用格式的文件可能引起的问题。
  • 您可以使用 \ 或 / 作为路径分隔符,它将被转换为您的操作系统使用的分隔符。

限制

  • 目前,StoryData 和 StoryTitle 段落必须位于主 Twee 文件中。
  • 目前,不支持额外的用户定义故事格式。

许可证

本库根据 MPL2.0 许可。

依赖关系

~5–15MB
~182K SLoC