Goboscript 是 Scratch 编译器

aspizu / goboscript Public

goboscript 是 Scratch 的编译器

aspizu.github.io/goboscript/

License

MIT license 210 stars 23 forks Branches Tags Activity

aspizu/goboscript

main BranchesTags

Folders and files

Name| Name| Last commit message| Last commit date ---|---|---|---

Latest commit

History

440 Commits .github/workflows| .github/workflows .vscode| .vscode docs| docs editors| editors examples| examples src| src tests| tests tools| tools .gitignore| .gitignore .goreleaser.yaml| .goreleaser.yaml Cargo.lock| Cargo.lock Cargo.toml| Cargo.toml LICENSE| LICENSE README.md| README.md build.rs| build.rs clippy.toml| clippy.toml default.nix| default.nix flake.lock| flake.lock flake.nix| flake.nix gdsl.py| gdsl.py gdsl.txt| gdsl.txt justfile| justfile mkdocs.yml| mkdocs.yml package-lock.json| package-lock.json rustfmt.toml| rustfmt.toml View all files

goboscript

image Installation and documentation

goboscript 是一种基于文本的编程语言,它可以编译成 Scratch。 它允许你用文本编写 Scratch 项目,并将其编译成 .sb3 文件 - 该文件可以在 Scratch 编辑器、TurboWarp 中打开,或者上传到 Scratch 网站。

goboscript 允许你轻松创建高级 Scratch 项目,你可以使用任何文本编辑器,使用诸如 git 之类的版本控制系统。 你可以使用搜索和替换来重构你的代码。 文本代码可以复制粘贴,这允许你轻松地重用代码或与他人共享。 goboscript 语法简洁易懂。

goboscript 允许你集成外部工具和工作流程,例如使用脚本为文本渲染引擎生成服装,或者将图像加载到列表中。

goboscript 具有强大的宏系统 - 类似于 Rust 的宏系统。 这允许你编写宏来生成代码。

goboscript 不仅仅是 Scratch 块到文本的 1:1 映射,它还具有其他功能,例如过程(自定义块)的局部变量。

goboscript 还执行优化,检测问题和未使用的代码。

Sister Projects

Package Manager

Decompiler

Contributing

goboscript 欢迎以 Pull Requests 的形式提交贡献。

goboscript 是用 Rust 编写的。 你需要安装 Rust toolchain 进行开发。

注意: 要安装 goboscript,请按照 aspizu.github.io/goboscript 上的说明进行操作。 这些说明适用于想要开发 goboscript 本身的人。

git clone https://github.com/aspizu/goboscript
cd goboscript

Development

克隆存储库后,使用以下命令从存储库根目录本地运行 goboscript:

cargo run -- build -i your_project/

但是,为了使开发更容易,并验证生成的 Scratch 项目 - 请使用 tools/run 脚本:

tools/run compile

这假设你已经在 playground/ 中设置了一个测试项目。 它将编译项目,使用来自 scratch-parser 的模式对其进行验证。 如果验证失败,Scratch 将拒绝加载该项目。 为了进一步调试项目,生成的 project.json 文件会从 playground/ 目录中的 .sb3 文件中提取出来。

假设你已经在 Scratch 编辑器或 Turbowarp 中修改了生成的项目,并且想要查看 project.json。 你可以使用以下命令提取它:

tools/run uncompile

假设 goboscript 生成了一个损坏的项目,并且你能够通过手动修改 project.json 来修复它。 你可以使用以下命令将 project.json 添加回 .sb3 文件:

tools/run patch

如果要验证某个 .sb3 文件,请使用:

tools/run check path/to/project.sb3

FOSS HACK 25

goboscript 是 FOSS HACK 25 的一等奖获得者之一,并获得了 50,000 卢比的奖金。 FOSS HACK 25 是由 FOSS United Foundation 于 2025 年 2 月 22 日至 23 日举行的开源黑客马拉松。在 48 小时的黑客马拉松期间,我致力于解决一些 goboscript 问题和功能实现。 感谢 FOSS United 提供的平台和机会。

本节将更新有关资金如何利用的信息。

About

goboscript 是 Scratch 的编译器

aspizu.github.io/goboscript/

Topics

programming-language rust compiler scratch

Resources

Readme

License

MIT license Activity

Stars

210 stars

Watchers

4 watching

Forks

23 forks Report repository

Releases 6

v3.1.1 Latest Mar 16, 2025 + 5 releases

Packages 0

No packages published

Contributors 12

Languages