mirror of
https://github.com/sunface/rust-by-practice.git
synced 2025-06-23 04:29:41 +00:00
Merge branch 'sunface:master' into master
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,3 +1,3 @@
|
||||
en/book
|
||||
zh-CN/book
|
||||
.DS_Store
|
||||
**/.DS_Store
|
||||
|
@ -1 +1 @@
|
||||
practice.rs
|
||||
practice.course.rs
|
@ -1,26 +0,0 @@
|
||||
(function () {
|
||||
var path = window.location.pathname;
|
||||
var link = "https://practice.rs" + path;
|
||||
var word = "English";
|
||||
var lang = "zh-CN";
|
||||
var changeLang = "切换到英语";
|
||||
|
||||
if (window.location.href.indexOf("zh.") == -1) {
|
||||
link = "https://zh.practice.rs" + path;
|
||||
word = "简体中文";
|
||||
lang = "en";
|
||||
changeLang = "Switch to Chinese"
|
||||
}
|
||||
|
||||
var lang_node = '';
|
||||
if (link != '') {
|
||||
lang_node = '<a href="' + link + '" title="' + changeLang + '" aria-label="' + changeLang + '"><i id="change-language-button" class="fa fa-language"> ' + word + '</i></a>';
|
||||
}
|
||||
|
||||
console.log(lang_node)
|
||||
var insertNode = document.getElementsByClassName('right-buttons');
|
||||
if (insertNode.length > 0) {
|
||||
var html = insertNode[0].innerHTML;
|
||||
insertNode[0].innerHTML = html + lang_node;
|
||||
}
|
||||
})()
|
35
en/assets/lang1.js
Normal file
35
en/assets/lang1.js
Normal file
@ -0,0 +1,35 @@
|
||||
(function () {
|
||||
var path = window.location.pathname;
|
||||
var link = "https://practice.course.rs" + path;
|
||||
var word = "English";
|
||||
var lang = "zh-CN";
|
||||
var changeLang = "切换到英语";
|
||||
|
||||
if (window.location.href.indexOf("zh.") == -1) {
|
||||
link = "https://practice-zh.course.rs" + path;
|
||||
word = "简体中文";
|
||||
lang = "en";
|
||||
changeLang = "Switch to Chinese";
|
||||
}
|
||||
|
||||
var lang_node = "";
|
||||
if (link != "") {
|
||||
lang_node =
|
||||
'<a href="' +
|
||||
link +
|
||||
'" title="' +
|
||||
changeLang +
|
||||
'" aria-label="' +
|
||||
changeLang +
|
||||
'"><i id="change-language-button" class="fa fa-language"> ' +
|
||||
word +
|
||||
"</i></a>";
|
||||
}
|
||||
|
||||
console.log(lang_node);
|
||||
var insertNode = document.getElementsByClassName("right-buttons");
|
||||
if (insertNode.length > 0) {
|
||||
var html = insertNode[0].innerHTML;
|
||||
insertNode[0].innerHTML = html + lang_node;
|
||||
}
|
||||
})();
|
@ -14,9 +14,9 @@ level = 1
|
||||
|
||||
[output.html]
|
||||
additional-css = ["theme/style1.css"]
|
||||
additional-js = ["assets/custom3.js","assets/lang.js"]
|
||||
additional-js = ["assets/custom3.js", "assets/lang1.js"]
|
||||
git-repository-url = "https://github.com/sunface/rust-by-practice"
|
||||
edit-url-template = "https://github.com/sunface/rust-by-practice/edit/master/en/{path}"
|
||||
|
||||
[rust]
|
||||
edition = "2021"
|
||||
edition = "2021"
|
||||
|
@ -24,7 +24,7 @@ Tutorial [`https://www.flenker.blog/hecto/`](https://www.flenker.blog/hecto/) wi
|
||||
[This project](https://github.com/kyclark/command-line-rust) is for the book `Command-Line Rust(O'Reily)`, it will show you how to write small CLIs (clones of `head`, `cat`, `ls`).
|
||||
|
||||
### 5. pngme book
|
||||
[This book](https://picklenerd.github.io/pngme_book/) will guide you to make a command line program that lets you hide secret messages in PNG files. The primary goal here is to get you writing code. The secondary goal is to get you reading documentation.
|
||||
[This book](https://jrdngr.github.io/pngme_book/) will guide you to make a command line program that lets you hide secret messages in PNG files. The primary goal here is to get you writing code. The secondary goal is to get you reading documentation.
|
||||
|
||||
### 6. Writing an OS in Rust
|
||||
|
||||
@ -40,7 +40,7 @@ On [CodeCrafters](https://codecrafters.io/for/rust), you can recreate your favor
|
||||
|
||||
### 9. Writing Interpreters in Rust
|
||||
|
||||
[This online book](https://github.com/rust-hosted-langs/book) will walk through the basics of interpreted language implementation in Rust with a focus on the challenges that are specific to using Rust.
|
||||
[This online book](https://rust-hosted-langs.github.io/book/) will walk through the basics of interpreted language implementation in Rust with a focus on the challenges that are specific to using Rust.
|
||||
|
||||
---
|
||||
|
||||
|
BIN
zh-CN/.DS_Store
vendored
BIN
zh-CN/.DS_Store
vendored
Binary file not shown.
@ -1 +1 @@
|
||||
zh.practice.rs
|
||||
practice-zh.course.rs
|
@ -1,26 +0,0 @@
|
||||
(function () {
|
||||
var path = window.location.pathname;
|
||||
var link = "https://practice.rs" + path;
|
||||
var word = "English";
|
||||
var lang = "zh-CN";
|
||||
var changeLang = "切换到英语";
|
||||
|
||||
if (window.location.href.indexOf("zh.") == -1) {
|
||||
link = "https://zh.practice.rs" + path;
|
||||
word = "简体中文";
|
||||
lang = "en";
|
||||
changeLang = "Switch to Chinese"
|
||||
}
|
||||
|
||||
var lang_node = '';
|
||||
if (link != '') {
|
||||
lang_node = '<a href="' + link + '" title="' + changeLang + '" aria-label="' + changeLang + '"><i id="change-language-button" class="fa fa-language"> ' + word + '</i></a>';
|
||||
}
|
||||
|
||||
console.log(lang_node)
|
||||
var insertNode = document.getElementsByClassName('right-buttons');
|
||||
if (insertNode.length > 0) {
|
||||
var html = insertNode[0].innerHTML;
|
||||
insertNode[0].innerHTML = html + lang_node;
|
||||
}
|
||||
})()
|
35
zh-CN/assets/lang1.js
Normal file
35
zh-CN/assets/lang1.js
Normal file
@ -0,0 +1,35 @@
|
||||
(function () {
|
||||
var path = window.location.pathname;
|
||||
var link = "https://practice.course.rs" + path;
|
||||
var word = "English";
|
||||
var lang = "zh-CN";
|
||||
var changeLang = "切换到英语";
|
||||
|
||||
if (window.location.href.indexOf("zh.") == -1) {
|
||||
link = "https://practice-zh.practice.rs" + path;
|
||||
word = "简体中文";
|
||||
lang = "en";
|
||||
changeLang = "Switch to Chinese";
|
||||
}
|
||||
|
||||
var lang_node = "";
|
||||
if (link != "") {
|
||||
lang_node =
|
||||
'<a href="' +
|
||||
link +
|
||||
'" title="' +
|
||||
changeLang +
|
||||
'" aria-label="' +
|
||||
changeLang +
|
||||
'"><i id="change-language-button" class="fa fa-language"> ' +
|
||||
word +
|
||||
"</i></a>";
|
||||
}
|
||||
|
||||
console.log(lang_node);
|
||||
var insertNode = document.getElementsByClassName("right-buttons");
|
||||
if (insertNode.length > 0) {
|
||||
var html = insertNode[0].innerHTML;
|
||||
insertNode[0].innerHTML = html + lang_node;
|
||||
}
|
||||
})();
|
@ -14,9 +14,9 @@ level = 1
|
||||
|
||||
[output.html]
|
||||
additional-css = ["theme/style1.css"]
|
||||
additional-js = ["assets/custom3.js","assets/lang.js"]
|
||||
additional-js = ["assets/custom3.js", "assets/lang1.js"]
|
||||
git-repository-url = "https://github.com/sunface/rust-by-practice"
|
||||
edit-url-template = "https://github.com/sunface/rust-by-practice/edit/master/zh-CN/{path}"
|
||||
|
||||
[rust]
|
||||
edition = "2021"
|
||||
edition = "2021"
|
||||
|
BIN
zh-CN/src/.DS_Store
vendored
BIN
zh-CN/src/.DS_Store
vendored
Binary file not shown.
@ -149,7 +149,7 @@ fn main() {
|
||||
|
||||
### 容量
|
||||
|
||||
关于容量,我们在之前的 [Vector](https://zh.practice.rs/collections/vector.html#容量) 中有详细的介绍,而 `HashMap` 也可以调整容量: 你可以通过 `HashMap::with_capacity(uint)` 使用指定的容量来初始化,或者使用 `HashMap::new()` ,后者会提供一个默认的初始化容量。
|
||||
关于容量,我们在之前的 [Vector](https://practice-zh.course.rs/collections/vector.html#容量) 中有详细的介绍,而 `HashMap` 也可以调整容量: 你可以通过 `HashMap::with_capacity(uint)` 使用指定的容量来初始化,或者使用 `HashMap::new()` ,后者会提供一个默认的初始化容量。
|
||||
|
||||
#### 示例
|
||||
|
||||
|
@ -44,9 +44,9 @@
|
||||
|
||||
### 9. 使用 Rust 写一个解析器
|
||||
|
||||
[这本开源书](https://github.com/rust-hosted-langs/book) 是一个使用 Rust 语言实现编译型语言的教程。
|
||||
[这本开源书](https://rust-hosted-langs.github.io/book/) 是一个使用 Rust 语言实现编译型语言的教程。
|
||||
|
||||
### 10. Rust编写推箱子游戏教程
|
||||
[sokoban](https://sokoban.iolivia.me/zh_cn/c01-00-intro) 是一个使用 Rust 语言实现 sokoban 游戏的教程。虽然社区已停止活跃( Initial Commits on Sep 3, 2019,GitHub 仓库最后一条 commit 是 last year ),但是项目是完善的 release v0.1.0,拿来练手是个不错的选择。
|
||||
|
||||
**To be continued...**
|
||||
**To be continued...**
|
||||
|
Reference in New Issue
Block a user