Skip to content

imdatdalga/starknetbook

 
 

Repository files navigation

The Starknet Book

All Contributors

This repository contains the source for The Starknet Book.

Contribution

Every contribution, regardless of its size, plays a pivotal role in refining this work. Together, we advance the Starknet narrative.

  • General Guidelines:
    • Focus on enhancements directly related to the book's content.
    • For typos, errors, or improvements, you don't need a related issue to submit a PR.
    • Review specific areas of interest in the repository issues.

Setup

  1. Rust Packages:
    • Install the cargo toolchain via rustup.
    • Install mdBook and its translation extension:
cargo install mdbook --version 0.4.31 && cargo install mdbook-i18n-helpers --version 0.1.0
  1. Machine Packages:
  • For translations, install gettext: sudo apt install gettext.
  • On Mac, you can use brew install gettext to install.
  1. Repository Operations:
  • Clone the main repository: git clone https://github.com/starknet-edu/starknetbook && cd starknetbook.
  • Create and work on a branch in your fork. If you're unfamiliar, use this guide for assistance.
  • Once done, submit a PR to merge your edits. Ensure you tag a reviewer for feedback (@gianalarcon or @omarespejel).
  1. Formatting
  • Run npm i
  • Then after completing your documentation run npm run format
  • Finally run prettier --write .

Understanding the Book's Structure

The Starknet Book is optimized for mdBook:

  • src/SUMMARY.md: The book's structural outline. For adding chapters, modify this document.
  • src/: This directory holds individual chapters. Each is a markdown file, like ch35.md. Use subdirectories for added resources.
  • book.toml: The primary configuration file (regular contributors might not need to adjust this).

Editing Guidelines

Work Locally in English

Ensure all edits to Markdown files are in English.

  • Use mdbook serve to initiate a local server. Access the book at localhost:3000 or append --open to the command to launch a browser automatically: mdbook serve --open.
  • After editing, refresh the browser to see updates. When satisfied, push your changes through a PR.

Translations

Targeting a global readership, this book will undergo translations over time.

  • Initial Version Always in English: Always write files in the src directory in English. This consistency allows for smooth auto-translation.
  • Translation Process:
  • Launch a local server for the intended language, e.g., ./translations.sh es. Without specifying a language, only English translations get extracted.
  • Modify the translation file of interest, like po/es.po. Tools like poedit can be beneficial.
  • Commit changes only in the po/xx.po file. When opening a PR, start with the prefix i18n.

The translation work is inspired from Comprehensive Rust repository.

Initiating a New Translation

For starting translations in a new language:

  • Employ ./translations.sh new xx, replacing xx with your language code. This action generates a language file.
  • For updating the xx.po file, use ./translations.sh xx.
  • Avoid the above command if the xx.po file already exists (which means you are not initiating a new translation).

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Omar U. Espejel
Omar U. Espejel

💻 📖
JameStark
JameStark

💻 📖
GianMarco
GianMarco

💻 📖
drspacemn
drspacemn

💻 📖
Gyan
Gyan

📖
Steve Goodman
Steve Goodman

📖
David Barreto
David Barreto

📖
omahs
omahs

📖
Henri
Henri

📖
devnet0x
devnet0x

📖
cryptonerdcn
cryptonerdcn

📖
Raz Landau
Raz Landau

📖
Nadai
Nadai

📖
Cyndie Kamau
Cyndie Kamau

📖
Manmit Singh
Manmit Singh

📖
Shebin John
Shebin John

📖
Dalmas Nyaboga Ogembo
Dalmas Nyaboga Ogembo

📖
Adegbite Ademola Kelvin
Adegbite Ademola Kelvin

📖
Robert
Robert

📖
lorcan-codes
lorcan-codes

📖
Olivier Boulant
Olivier Boulant

📖
Lucas @ StarkWare
Lucas @ StarkWare

📖
Okoli Evans
Okoli Evans

📖
Esther Aladi Oche
Esther Aladi Oche

📖 💻
faytey
faytey

📖
ccolorado
ccolorado

📖
Akinbola Kehinde
Akinbola Kehinde

📖
Louis Wang
Louis Wang

📖
Daniel Bejarano
Daniel Bejarano

📖
Damián Piñones
Damián Piñones

📖
Davide Silva
Davide Silva

📖
Asten
Asten

📖
Darlington Nnam
Darlington Nnam

📖
Idogwu Emmanuel Chinonso
Idogwu Emmanuel Chinonso

📖
machuwey
machuwey

💻 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

About

Mastering Starknet. By the Starknet community

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 55.8%
  • JavaScript 23.6%
  • Handlebars 17.1%
  • Shell 3.5%