The Starknet Book is an open-source Cairo/Starknet teaching curriculum written by starknet-edu
and the Starknet community. We welcome all contributions to this repository to help enrich the Starknet community.
Note
|
Please review this section, however, please reach out to the maintainers if you have any questions, concerns or want to add a new chapter/subchapter (default to @espejelomar on Twitter or Telegram). We are here to help you contribute to the Starknet Book and make it a valuable resource for the Starknet community. |
Follow these steps to contribute to the Starknet Book:
-
Run the book locally (see "Running the Book Locally" section below).
-
Familiarize yourself with the book structure (see "The Book Structure in Antora" section below).
-
Find or propose an issue to work on (if it is a small change, create a PR directly). Comment on the issue to ask if it’s available or create a new issue and tag a maintainer (by default, tag
l-henri
or@omarespejel
). -
Work on the issue in a branch of your personal fork of the main repository (refer to this guide for help).
-
Create a pull request (PR) to merge your changes into the main repository. Tag a maintainer in the PR for review (by default, tag
l-henri
or@omarespejel
). Allow maintainers to make commits to your branch if needed. -
Wait for the repository maintainers to review your changes.
-
If the issue is addressed, the repository maintainers will merge your PR.
Now, let’s dive into the details.
Before submitting a PR, make sure you can run the book locally by following these steps:
-
Clone the repository locally:
git clone https://github.com/starknet-edu/starknetbook.git
. -
Change directory to the repository:
cd starknetbook
. -
Install the lunr extension:
npm i @antora/lunr-extension
. -
Run the book locally:
npx antora --fetch antora-playbook.yml
. If a missing extension error appears, install the extension as shown in step 3.
The Starknet Book is structured to be compatible with Antora, a static site generator. Key components include:
-
antora-playbook.yml
: Configuration for the Antora site generator (contributors don’t need to edit this). -
chapters/antora.yml
: Main outline of the book where new chapters are added (e.g., addmodules/chapter_35/nav.adoc
for Chapter 35). -
chapters/modules/
: Contains the content of the book, with each chapter in a separate folder (e.g.,chapters/modules/chapter_35/
). Chapter folders include:-
pages/
: Contains asciidoc files with the chapter content. -
nav.adoc
: Contains the chapter outline and references to section files inpages/
. -
images/
: Contains images for the chapter. -
Other directories (e.g.,
contracts/
): Contain code or other resources for the chapter.
-
To ensure the Starknet Book is comprehensive, consistent, and easy to understand, please adhere to the following content guidelines when contributing:
-
Write in a clear and concise manner. Avoid jargon and overly technical language whenever possible. The primary goal is to make the content accessible to as many readers as possible.
-
Use proper grammar, punctuation, and spelling. This ensures a professional appearance and makes the content easier to understand.
-
Break down complex topics into smaller sections or subsections. This makes the content more digestible and helps readers grasp the concepts more easily.
-
Include relevant code examples and illustrations to clarify concepts. Make sure to test your code examples for accuracy and functionality.
-
Whenever possible, use practical examples that readers can apply in real-world situations.
-
Maintain a consistent tone and style throughout the content. The Starknet Book should have a unified voice that makes it feel like a cohesive work.
-
Keep the content up-to-date. If you come across outdated information, update it or notify the maintainers about the issue.
-
Be respectful and considerate in your interactions with other contributors. Collaboration is key to creating and maintaining a high-quality resource.
By following these guidelines, you can help create a valuable learning resource for the Starknet community. Remember, every contribution, no matter how small, makes a difference. Thank you for your efforts in helping to grow and strengthen the Starknet ecosystem.