Skip to content

Latest commit

 

History

History
203 lines (142 loc) · 12.4 KB

README-cn.md

File metadata and controls

203 lines (142 loc) · 12.4 KB

English | 简体中文

All Contributors

Cairo编程语言教程

Alexandria

描述

该存储库包含了《Cairo 编程语言》书籍的源代码,这是对 Cairo 1 编程语言的全面文档。这份文档是您掌握 Cairo 的首选资源,由 Starknet 社区创建和维护。您可以在线阅读这本书,链接在这里

来源于社区,贡献于社区 📜

贡献方法

设置

  1. 安装 Rust 相关包:

    • 使用 rustup 安装cargo工具链
    • 安装 mdBook and the required extensions:
    cargo install mdbook mdbook-i18n-helpers mdbook-last-changed
    
  2. 安装系统相关依赖包:

    • Install gettext for translations, usually available with regular package manager: sudo apt install gettext.
  3. Clone 仓库.

  4. 安装 mdbook-cairo for Cairo code blocks

    cargo install --path mdbook-cairo
    

在本地运行(主要语言, 英语)

所有的 Markdown 文件必须以英文进行编辑。要在本地以英文工作:

  • 使用命令 mdbook serve 开启本地服务,然后访问localhost:3000 to view the book. 您可以使用 --open 标志来自动打开浏览器: mdbook serve --open.

  • 对书籍进行修改,并刷新浏览器以查看更改。

  • 为你的改变提交 PR。

本地工作(翻译)

本书面向国际读者群体,旨在逐步翻译成多种语言。

src 目录下的所有文件必须使用英文编写。。 这样可以确保所有翻译文件可以被翻译人员自动生成和更新。

如果要进行翻译,以下是进行翻译的步骤:

  • 启动要编辑的语言的本地服务器: 执行 ./translations.sh es 。如果没有提供语言参数,脚本将仅从英语中提取翻译内容。

  • 打开您感兴趣的翻译文件,例如 po/es.po。您也可以使用类似 poedit 的编辑器来帮助您完成这个任务。

  • 完成后,您应该只对 po/xx.po 文件进行更改。提交更改并提交一个 PR。 PR 标题必须以 i18n 开头,以便让维护者知道该 PR 仅涉及翻译的更改。

翻译工作的灵感来自于 Comprehensive Rust repository.

开始一个新的语言翻译

如果您希望在不运行本地服务器的情况下为您的语言启动一个新的翻译,请考虑以下步骤:

  • 执行命令 ./translations.sh new xx (替换 xx 为你的语言代码)。 该命令可以生成对应语言的 po 文件 xx.po
  • 更新你的 xx.po 文件, 执行命令 ./translations.sh xx (替换 xx 为你的语言代码), 如前一章节所述。
  • 如果 xx.po 已经存在, 则不需要执行该命令。

本地工作(验证 Cairo 程序)

cairo-listings 工具旨在封装所有 cairo and starknet 插件以便快速验证 Cairo 程序。

设置

首先,您需要将 scarb 添加到您的环境变量中,确保它可以在命令行中被调用:

详细的安装说明请参阅这里 for more details.

要运行 cairo-listings 辅助工具, 请确保您位于存储库的根目录 (与 README.md 同级), 然后运行以下命令:

cargo run --bin cairo-listings

或者,您也可以使用以下命令安装该工具:

cargo install --path cairo-listings

使用

该工具会在指定目录中扫描所有的 *.cairo 文件,并执行以下操作:

对于一个 Starknet 合约:

  • scarb build
  • 如果文件包含测试: scarb test

Cairo 程序:

  • 如果包含 main 方法: scarb cairo-run --available-gas=200000000
  • 否则执行, scarb build
  • 如果文件包含测试: scarb test
  • scarb fmt -c

要指定要运行的测试,您可以在文件顶部添加以下格式的注释:

// TAG: <tag1>
// TAGS: <tag1>, <tag2>

以下是可用 tags 的列表:

  • does_not_compile: 不运行 scarb build
  • does_not_run: 不运行 scarb cairo-run --available-gas=200000000
  • ignore_fmt: 不运行 scarb fmt
  • tests_fail: 不运行 scarb test

您可以通过添加相应的 tags 来跳过和忽略特定的测试:

$ cairo-listings --help

Usage: cairo-listings [OPTIONS]

Options:
  -p, --path <PATH>    The path to explore for *.cairo files [default: ./listings]
  -v, --verbose        Print more information
  -q, --quiet          Only print final results
  -f, --formats-skip   Skip cairo-format checks
  -s, --starknet-skip  Skip starknet-compile checks
  -c, --compile-skip   Skip cairo-compile checks
  -r, --run-skip       Skip cairo-run checks
  -t, --test-skip      Skip cairo-test checks
      --file <FILE>    Specify file to check
  -h, --help           Print help
  -V, --version        Print version

在 CI 环境中,为了减少输出信息,建议在运行 cairo-listings 时使用 --quiet 标志。

mdbook-cairo 是一个 mdbook 预处理器,仅会移除代码块中的 // TAG 行。

贡献者

Fricoben
Fricoben

🤔 🔍 📆
Mathieu
Mathieu

🤔 💻 🧑‍🏫 👀 📆
Nadai
Nadai

🌍
glihm
glihm

💻 🔧
Clément Walter
Clément Walter

👀
V.O.T
V.O.T

💻
Pia
Pia

💻 📝
cryptonerdcn
cryptonerdcn

🌍
Argetlames
Argetlames

🌍
julio4
julio4

💻 🔧
Haresh Gedia
Haresh Gedia

📖
Darlington Nnam
Darlington Nnam

💻
Tiago Neto
Tiago Neto

👀
omahs
omahs

💻
Shramee Srivastav
Shramee Srivastav

💻
Daniel Bejarano
Daniel Bejarano

💻
Tristan
Tristan

💻