From f387f4c1d9d5a2b7b78d454e16a180f49bc63d1c Mon Sep 17 00:00:00 2001 From: mo8it Date: Sat, 17 May 2025 15:49:26 +0200 Subject: Add setup and usage pages --- website/content/usage/index.md | 62 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 website/content/usage/index.md (limited to 'website/content/usage') diff --git a/website/content/usage/index.md b/website/content/usage/index.md new file mode 100644 index 0000000..44e24a2 --- /dev/null +++ b/website/content/usage/index.md @@ -0,0 +1,62 @@ ++++ +title = "Usage" ++++ + + + +## Doing exercises + +The exercises are sorted by topic and can be found in the subdirectory `exercises/`. +For every topic, there is an additional `README.md` file with some resources to get you started on the topic. +We highly recommend that you have a look at them before you start πŸ“šοΈ + +Most exercises contain an error that keeps them from compiling, and it's up to you to fix it! +Some exercises contain tests that need to pass for the exercise to be done βœ… + +Search for `TODO` and `todo!()` to find out what you need to change. +Ask for hints by entering `h` in the _watch mode_ πŸ’‘ + +### Watch Mode + +After the [initialization](@/setup/index.md#initialization), Rustlings can be launched by simply running the command `rustlings`. + +This will start the _watch mode_ which walks you through the exercises in a predefined order (what we think is best for newcomers). +It will rerun the current exercise automatically every time you change the exercise's file in the `exercises/` directory. + +
+If detecting file changes in the exercises/ directory fails… (click to expand) + +> You can add the **`--manual-run`** flag (`rustlings --manual-run`) to manually rerun the current exercise by entering `r` in the watch mode. +> +> Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL). + +
+ +### Exercise List + +In the [watch mode](#watch-mode) (after launching `rustlings`), you can enter `l` to open the interactive exercise list. + +The list allows you to… + +- See the status of all exercises (done or pending) +- `c`: Continue at another exercise (temporarily skip some exercises or go back to a previous one) +- `r`: Reset status and file of the selected exercise (you need to _reload/reopen_ its file in your editor afterwards) + +See the footer of the list for all possible keys. + +## Questions? + +If you need any help while doing the exercises and the builtin-hints aren't helpful, feel free to ask in the [_Q&A_ category of the discussions](https://github.com/rust-lang/rustlings/discussions/categories/q-a?discussions_q=) if your question wasn't asked yet πŸ’‘ + +## Continuing On + +Once you've completed Rustlings, put your new knowledge to good use! +Continue practicing your Rust skills by building your own projects, contributing to Rustlings, or finding other open-source projects to contribute to. + +## Uninstalling Rustlings + +If you want to remove Rustlings from your system, run the following command: + +```bash +cargo uninstall rustlings +``` -- cgit v1.2.3 From 8339007633115125bf90b01b7839ce91fd97c4af Mon Sep 17 00:00:00 2001 From: mo8it Date: Sat, 17 May 2025 16:06:04 +0200 Subject: Update setup and usage --- website/content/setup/index.md | 4 ++++ website/content/usage/index.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'website/content/usage') diff --git a/website/content/setup/index.md b/website/content/setup/index.md index 7e628f8..14984a6 100644 --- a/website/content/setup/index.md +++ b/website/content/setup/index.md @@ -75,3 +75,7 @@ But any editor that supports [rust-analyzer](https://rust-analyzer.github.io/) s While working with Rustlings, please use a modern terminal for the best user experience. The default terminal on Linux and Mac should be sufficient. On Windows, we recommend the [Windows Terminal](https://aka.ms/terminal). + +## Usage + +After being done with the setup, visit the [**usage**](@/usage/index.md) page for some info about using Rustlings πŸš€ diff --git a/website/content/usage/index.md b/website/content/usage/index.md index 44e24a2..7c8b0dd 100644 --- a/website/content/usage/index.md +++ b/website/content/usage/index.md @@ -16,7 +16,7 @@ Some exercises contain tests that need to pass for the exercise to be done βœ… Search for `TODO` and `todo!()` to find out what you need to change. Ask for hints by entering `h` in the _watch mode_ πŸ’‘ -### Watch Mode +## Watch Mode After the [initialization](@/setup/index.md#initialization), Rustlings can be launched by simply running the command `rustlings`. @@ -32,7 +32,7 @@ It will rerun the current exercise automatically every time you change the exerc -### Exercise List +## Exercise List In the [watch mode](#watch-mode) (after launching `rustlings`), you can enter `l` to open the interactive exercise list. -- cgit v1.2.3 From 8fa598ae7eb8c014657cea787376109b7f4c5d18 Mon Sep 17 00:00:00 2001 From: mo8it Date: Sat, 17 May 2025 20:20:19 +0200 Subject: Add details shortcode --- website/content/setup/index.md | 43 ++++++++++++++----------------- website/content/usage/index.md | 11 ++++---- website/input.css | 2 +- website/templates/shortcodes/details.html | 9 +++++++ 4 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 website/templates/shortcodes/details.html (limited to 'website/content/usage') diff --git a/website/content/setup/index.md b/website/content/setup/index.md index 14984a6..db4ed40 100644 --- a/website/content/setup/index.md +++ b/website/content/setup/index.md @@ -6,17 +6,16 @@ title = "Setup" ## Installing Rust -Before installing Rustlings, you need to have the **latest version of Rust** installed. -Visit [www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) for further instructions on installing Rust. +Before installing Rustlings, you must have the **latest version of Rust** installed. +Visit [www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) for further instructions. This will also install _Cargo_, Rust's package/project manager. -> 🐧 If you are on Linux, make sure you have installed `gcc` (for a linker). +> 🐧 If you are on Linux, make sure you have `gcc` installed (_for a linker_). > -> Deb: `sudo apt install gcc` -> -> Dnf: `sudo dnf install gcc` +> Debian: `sudo apt install gcc`\ +> Fedora: `sudo dnf install gcc` -> 🍎 If you are on MacOS, make sure you have installed Xcode and its developer tools by running `xcode-select --install`. +> 🍎 If you are on MacOS, make sure you have _Xcode and its developer tools_ installed: `xcode-select --install` ## Installing Rustlings @@ -26,14 +25,13 @@ The following command will download and compile Rustlings: cargo install rustlings ``` -
-If the installation fails… (click to expand) +{% details(summary="If the installation fails…") %} -> - Make sure you have the latest Rust version by running `rustup update` -> - Try adding the `--locked` flag: `cargo install rustlings --locked` -> - Otherwise, please [report the issue](https://github.com/rust-lang/rustlings/issues/new) +- Make sure you have the latest Rust version by running `rustup update` +- Try adding the `--locked` flag: `cargo install rustlings --locked` +- Otherwise, please [report the issue](https://github.com/rust-lang/rustlings/issues/new) -
+{% end %} ## Initialization @@ -43,18 +41,17 @@ After installing Rustlings, run the following command to initialize the `rustlin rustlings init ``` -
-If the command rustlings can't be found… (click to expand) +{% details(summary="If the command rustlings can't be found…") %} -> You are probably using Linux and installed Rust using your package manager. -> -> Cargo installs binaries to the directory `~/.cargo/bin`. -> Sadly, package managers often don't add `~/.cargo/bin` to your `PATH` environment variable. -> -> - Either add `~/.cargo/bin` manually to `PATH` -> - Or uninstall Rust from the package manager and [install it using the official way with `rustup`](https://www.rust-lang.org/tools/install) +You are probably using Linux and installed Rust using your package manager. + +Cargo installs binaries to the directory `~/.cargo/bin`. +Sadly, package managers often don't add `~/.cargo/bin` to your `PATH` environment variable. + +- Either add `~/.cargo/bin` manually to `PATH` +- Or uninstall Rust from the package manager and [install it using the official way with `rustup`](https://www.rust-lang.org/tools/install) -
+{% end %} Now, go into the newly initialized directory and launch Rustlings for further instructions on getting started with the exercises: diff --git a/website/content/usage/index.md b/website/content/usage/index.md index 7c8b0dd..eecb7d2 100644 --- a/website/content/usage/index.md +++ b/website/content/usage/index.md @@ -23,14 +23,13 @@ After the [initialization](@/setup/index.md#initialization), Rustlings can be la This will start the _watch mode_ which walks you through the exercises in a predefined order (what we think is best for newcomers). It will rerun the current exercise automatically every time you change the exercise's file in the `exercises/` directory. -
-If detecting file changes in the exercises/ directory fails… (click to expand) +{% details(summary="If detecting file changes in the exercises/ directory fails…") %} -> You can add the **`--manual-run`** flag (`rustlings --manual-run`) to manually rerun the current exercise by entering `r` in the watch mode. -> -> Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL). +You can add the **`--manual-run`** flag (`rustlings --manual-run`) to manually rerun the current exercise by entering `r` in the watch mode. -
+Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL). + +{% end %} ## Exercise List diff --git a/website/input.css b/website/input.css index 3dd5501..b253675 100644 --- a/website/input.css +++ b/website/input.css @@ -41,7 +41,7 @@ @apply md:w-3/4 lg:w-3/5; } blockquote { - @apply px-3 pt-2 pb-0.5 my-4 border-s-4 border-white/80 bg-white/7 rounded-sm italic; + @apply px-3 pt-2 pb-0.5 my-4 border-s-4 border-white/80 bg-white/7 rounded-sm; } pre { diff --git a/website/templates/shortcodes/details.html b/website/templates/shortcodes/details.html new file mode 100644 index 0000000..c32d7c8 --- /dev/null +++ b/website/templates/shortcodes/details.html @@ -0,0 +1,9 @@ +
+ + {{ summary | safe }} (click to expand) + + +
+ {{ body | markdown | safe }} +
+
-- cgit v1.2.3 From f6a657a0c3628d75dae7cd1d3a822dc19d379f15 Mon Sep 17 00:00:00 2001 From: mo8it Date: Sat, 17 May 2025 21:02:45 +0200 Subject: Finish the usage page --- website/content/usage/index.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'website/content/usage') diff --git a/website/content/usage/index.md b/website/content/usage/index.md index eecb7d2..7bf02f5 100644 --- a/website/content/usage/index.md +++ b/website/content/usage/index.md @@ -27,7 +27,7 @@ It will rerun the current exercise automatically every time you change the exerc You can add the **`--manual-run`** flag (`rustlings --manual-run`) to manually rerun the current exercise by entering `r` in the watch mode. -Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or virtual machine (e.g. WSL). +Please [report the issue](https://github.com/rust-lang/rustlings/issues/new) with some information about your operating system and whether you run Rustlings in a container or a virtual machine (e.g. WSL). {% end %} @@ -45,17 +45,11 @@ See the footer of the list for all possible keys. ## Questions? -If you need any help while doing the exercises and the builtin-hints aren't helpful, feel free to ask in the [_Q&A_ category of the discussions](https://github.com/rust-lang/rustlings/discussions/categories/q-a?discussions_q=) if your question wasn't asked yet πŸ’‘ +If you need any help while doing the exercises and the builtin hints aren't helpful, feel free to ask in the [_Q&A_ discussions](https://github.com/rust-lang/rustlings/discussions/categories/q-a?discussions_q=) if your question isn't answered there πŸ’‘ ## Continuing On Once you've completed Rustlings, put your new knowledge to good use! Continue practicing your Rust skills by building your own projects, contributing to Rustlings, or finding other open-source projects to contribute to. -## Uninstalling Rustlings - -If you want to remove Rustlings from your system, run the following command: - -```bash -cargo uninstall rustlings -``` +> If you want to create your own custom Rustlings exercises, visit the [**custom exercises**](@/custom-exercises/index.md) page πŸ—οΈ -- cgit v1.2.3 From a51d6f1309b986c270d781b08f6949f29806b18a Mon Sep 17 00:00:00 2001 From: mo8it Date: Sat, 17 May 2025 21:25:19 +0200 Subject: third-party/custom -> community --- CHANGELOG.md | 10 ++--- src/app_state.rs | 4 +- src/dev.rs | 2 +- src/dev/new.rs | 8 ++-- src/info_file.rs | 4 +- src/main.rs | 2 +- website/config.toml | 4 +- website/content/community-exercises/index.md | 65 +++++++++++++++++++++++++++ website/content/custom-exercises/index.md | 66 ---------------------------- website/content/usage/index.md | 2 +- 10 files changed, 83 insertions(+), 84 deletions(-) create mode 100644 website/content/community-exercises/index.md delete mode 100644 website/content/custom-exercises/index.md (limited to 'website/content/usage') diff --git a/CHANGELOG.md b/CHANGELOG.md index 6781ba8..c1dbb42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ - New option `x` in the prompt to reset the file of the current exercise πŸ”„ - Allow `dead_code` for all exercises and solutions ⚰️ (thanks to [@huss4in](https://github.com/huss4in)) - Pause input while running an exercise to avoid unexpected prompt interactions ⏸️ -- Limit the maximum number of exercises to 999. Any third-party exercises willing to reach that limit? πŸ” +- Limit the maximum number of exercises to 999. Any community exercises willing to reach that limit? πŸ” ### Changed @@ -93,7 +93,7 @@ #### Added -- `dev check`: Check that all exercises (including third-party ones) include at least one `TODO` comment. +- `dev check`: Check that all exercises (including community ones) include at least one `TODO` comment. - `dev check`: Check that all exercises actually fail to run (not already solved). #### Changed @@ -168,13 +168,13 @@ This should avoid issues related to the language server or to running exercises, Clippy lints are now shown on all exercises, not only the Clippy exercises πŸ“Ž Make Clippy your friend from early on πŸ₯° -### Third-party exercises +### Community Exercises -Rustlings now supports third-party exercises! +Rustlings now supports community exercises! Do you want to create your own set of Rustlings exercises to focus on some specific topic? Or do you want to translate the original Rustlings exercises? -Then follow the link to the guide about [third-party exercises](THIRD_PARTY_EXERCISES.md)! +Then follow the link to the guide about [community exercises](https://rustlings.rust-lang.org/community-exercises)! ## 5.6.1 (2023-09-18) diff --git a/src/app_state.rs b/src/app_state.rs index d1c45d4..f3f3481 100644 --- a/src/app_state.rs +++ b/src/app_state.rs @@ -315,7 +315,7 @@ impl AppState { } // Official exercises: Dump the original file from the binary. - // Third-party exercises: Reset the exercise file with `git stash`. + // Community exercises: Reset the exercise file with `git stash`. fn reset(&self, exercise_ind: usize, path: &str) -> Result<()> { if self.official_exercises { return EMBEDDED_FILES @@ -385,7 +385,7 @@ impl AppState { } /// Official exercises: Dump the solution file from the binary and return its path. - /// Third-party exercises: Check if a solution file exists and return its path in that case. + /// Community exercises: Check if a solution file exists and return its path in that case. pub fn current_solution_path(&self) -> Result> { if cfg!(debug_assertions) { return Ok(None); diff --git a/src/dev.rs b/src/dev.rs index 354d77c..41fddbe 100644 --- a/src/dev.rs +++ b/src/dev.rs @@ -8,7 +8,7 @@ mod update; #[derive(Subcommand)] pub enum DevCommands { - /// Create a new project for third-party Rustlings exercises + /// Create a new project for community exercises New { /// The path to create the project in path: PathBuf, diff --git a/src/dev/new.rs b/src/dev/new.rs index ba3517f..883b6fa 100644 --- a/src/dev/new.rs +++ b/src/dev/new.rs @@ -86,10 +86,10 @@ target/ "; const INFO_FILE_BEFORE_FORMAT_VERSION: &str = - "# The format version is an indicator of the compatibility of third-party exercises with the + "# The format version is an indicator of the compatibility of community exercises with the # Rustlings program. # The format version is not the same as the version of the Rustlings program. -# In case Rustlings makes an unavoidable breaking change to the expected format of third-party +# In case Rustlings makes an unavoidable breaking change to the expected format of community # exercises, you would need to raise this version and adapt to the new format. # Otherwise, the newest version of the Rustlings program won't be able to run these exercises. format_version = "; @@ -97,7 +97,7 @@ format_version = "; const INFO_FILE_AFTER_FORMAT_VERSION: &str = r#" # Optional multi-line message to be shown to users when just starting with the exercises. -welcome_message = """Welcome to these third-party Rustlings exercises.""" +welcome_message = """Welcome to these community Rustlings exercises.""" # Optional multi-line message to be shown to users after finishing all exercises. final_message = """We hope that you found the exercises helpful :D""" @@ -141,7 +141,7 @@ publish = false const README: &str = "# Rustlings πŸ¦€ -Welcome to these third-party Rustlings exercises πŸ˜ƒ +Welcome to these community Rustlings exercises πŸ˜ƒ First, [install Rustlings using the official instructions](https://github.com/rust-lang/rustlings) βœ… diff --git a/src/info_file.rs b/src/info_file.rs index ec61f8a..634bece 100644 --- a/src/info_file.rs +++ b/src/info_file.rs @@ -79,7 +79,7 @@ impl RunnableExercise for ExerciseInfo { /// The deserialized `info.toml` file. #[derive(Deserialize)] pub struct InfoFile { - /// For possible breaking changes in the future for third-party exercises. + /// For possible breaking changes in the future for community exercises. pub format_version: u8, /// Shown to users when starting with the exercises. pub welcome_message: Option, @@ -91,7 +91,7 @@ pub struct InfoFile { impl InfoFile { /// Official exercises: Parse the embedded `info.toml` file. - /// Third-party exercises: Parse the `info.toml` file in the current directory. + /// Community exercises: Parse the `info.toml` file in the current directory. pub fn parse() -> Result { // Read a local `info.toml` if it exists. let slf = match fs::read_to_string("info.toml") { diff --git a/src/main.rs b/src/main.rs index 6688e3e..bce2593 100644 --- a/src/main.rs +++ b/src/main.rs @@ -58,7 +58,7 @@ enum Subcommands { /// The name of the exercise name: Option, }, - /// Commands for developing (third-party) Rustlings exercises + /// Commands for developing (community) Rustlings exercises #[command(subcommand)] Dev(DevCommands), } diff --git a/website/config.toml b/website/config.toml index 8ecb09b..796f13a 100644 --- a/website/config.toml +++ b/website/config.toml @@ -24,8 +24,8 @@ url = "/setup" name = "Usage" url = "/usage" [[extra.menu_items]] -name = "Custom Exercises" -url = "/custom-exercises" +name = "Community Exercises" +url = "/community-exercises" [[extra.menu_items]] name = "Q&A" url = "https://github.com/rust-lang/rustlings/discussions/categories/q-a?discussions_q=" diff --git a/website/content/community-exercises/index.md b/website/content/community-exercises/index.md new file mode 100644 index 0000000..1c8cd57 --- /dev/null +++ b/website/content/community-exercises/index.md @@ -0,0 +1,65 @@ ++++ +title = "Community Exercises" ++++ + +Do you want to create your own set of Rustlings exercises to focus on some specific topic? +Or do you want to translate the original Rustlings exercises? + +## List of Community Exercises + +- πŸ‡―πŸ‡΅ [Japanese Rustlings](https://github.com/sotanengel/rustlings-jp):A Japanese translation of the Rustlings exercises. +- πŸ‡¨πŸ‡³ [Simplified Chinese Rustlings](https://github.com/SandmeyerX/rustlings-zh-cn): A simplified Chinese translation of the Rustlings exercises. + +You can use the same `rustlings` program that you installed with `cargo install rustlings` to run them + +The support of Rustlings for community exercises allows you to create your own set of Rustlings exercises to focus on some specific topic. +You could also offer a translation of the original Rustlings exercises as community exercises. + +## Getting started + +To create community exercises, install Rustlings and run `rustlings dev new PROJECT_NAME`. +This command will, similar to `cargo new PROJECT_NAME`, create a template directory called `PROJECT_NAME` with all what you need to get started. + +Read the comments in the generated `info.toml` file to understand its format. +It allows you to set a custom welcome and final message and specify the metadata of every exercise. + +## Create an exercise + +Here is an example of the metadata of one file: + +```toml +[[exercises]] +name = "intro1" +hint = """ +To finish this exercise, you need to … +This link might help you …""" +``` + +After entering this in `info.toml`, create the file `intro1.rs` in the `exercises/` directory. +The exercise needs to contain a `main` function, but it can be empty. +Adding tests is recommended. +Look at the official Rustlings exercises for inspiration. + +You can optionally add a solution file `intro1.rs` to the `solutions/` directory. + +Now, run `rustlings dev check`. +It will tell you about any issues with your exercises. +For example, it will tell you to run `rustlings dev update` to update the `Cargo.toml` file to include the new exercise `intro1`. + +`rustlings dev check` will also run your solutions (if you have any) to make sure that they run successfully. + +That's it! +You finished your first exercise πŸŽ‰ + +## Publish + +Now, add more exercises and publish them as a Git repository. + +Users just have to clone that repository and run `rustlings` in it to start working on your set of exercises just like the official ones. + +One difference to the official exercises is that the solution files will not be hidden until the user finishes an exercise. +But you can trust the users to not look at the solution too early πŸ˜‰ + +## Share + +After publishing your set of exercises, open an issue or a pull request in the official Rustlings repository to link to your project in the README πŸ˜ƒ diff --git a/website/content/custom-exercises/index.md b/website/content/custom-exercises/index.md deleted file mode 100644 index e8bef76..0000000 --- a/website/content/custom-exercises/index.md +++ /dev/null @@ -1,66 +0,0 @@ -+++ -title = "Custom Exercises" -+++ - -Custom exercises are a set of exercises maintained by the community. -You can use the same `rustlings` program that you installed with `cargo install rustlings` to run them: - -- πŸ‡―πŸ‡΅ [Japanese Rustlings](https://github.com/sotanengel/rustlings-jp):A Japanese translation of the Rustlings exercises. -- πŸ‡¨πŸ‡³ [Simplified Chinese Rustlings](https://github.com/SandmeyerX/rustlings-zh-cn): A simplified Chinese translation of the Rustlings exercises. - -Do you want to create your own set of Rustlings exercises to focus on some specific topic? -Or do you want to translate the original Rustlings exercises? - - - -The support of Rustlings for custom exercises allows you to create your own set of Rustlings exercises to focus on some specific topic. -You could also offer a translation of the original Rustlings exercises as custom exercises. - -## Getting started - -To create custom exercises, install Rustlings and run `rustlings dev new PROJECT_NAME`. -This command will, similar to `cargo new PROJECT_NAME`, create a template directory called `PROJECT_NAME` with all what you need to get started. - -Read the comments in the generated `info.toml` file to understand its format. -It allows you to set a custom welcome and final message and specify the metadata of every exercise. - -## Create an exercise - -Here is an example of the metadata of one file: - -```toml -[[exercises]] -name = "intro1" -hint = """ -To finish this exercise, you need to … -This link might help you …""" -``` - -After entering this in `info.toml`, create the file `intro1.rs` in the `exercises/` directory. -The exercise needs to contain a `main` function, but it can be empty. -Adding tests is recommended. -Look at the official Rustlings exercises for inspiration. - -You can optionally add a solution file `intro1.rs` to the `solutions/` directory. - -Now, run `rustlings dev check`. -It will tell you about any issues with your exercises. -For example, it will tell you to run `rustlings dev update` to update the `Cargo.toml` file to include the new exercise `intro1`. - -`rustlings dev check` will also run your solutions (if you have any) to make sure that they run successfully. - -That's it! -You finished your first exercise πŸŽ‰ - -## Publish - -Now, add more exercises and publish them as a Git repository. - -Users just have to clone that repository and run `rustlings` in it to start working on your set of exercises just like the official ones. - -One difference to the official exercises is that the solution files will not be hidden until the user finishes an exercise. -But you can trust the users to not look at the solution too early πŸ˜‰ - -## Share - -After publishing your set of exercises, open an issue or a pull request in the official Rustlings repository to link to your project in the README πŸ˜ƒ diff --git a/website/content/usage/index.md b/website/content/usage/index.md index 7bf02f5..88dabf4 100644 --- a/website/content/usage/index.md +++ b/website/content/usage/index.md @@ -52,4 +52,4 @@ If you need any help while doing the exercises and the builtin hints aren't help Once you've completed Rustlings, put your new knowledge to good use! Continue practicing your Rust skills by building your own projects, contributing to Rustlings, or finding other open-source projects to contribute to. -> If you want to create your own custom Rustlings exercises, visit the [**custom exercises**](@/custom-exercises/index.md) page πŸ—οΈ +> If you want to create your own Rustlings exercises, visit the [**community exercises**](@/community-exercises/index.md) page πŸ—οΈ -- cgit v1.2.3