From ed3903bc7ada756271e34553020ee0242c2a5202 Mon Sep 17 00:00:00 2001 From: sunface Date: Mon, 29 Nov 2021 14:13:07 +0800 Subject: [PATCH] updat --- .DS_Store | Bin 6148 -> 8196 bytes assets/.DS_Store | Bin 0 -> 6148 bytes assets/ferris.css | 33 +++ assets/ferris.js | 47 ++++ assets/lunr.multi.js | 79 +++++++ assets/lunr.stemmer.support.js | 304 ++++++++++++++++++++++++++ assets/lunr.zh.js | 145 ++++++++++++ assets/theme/2018-edition.css | 9 + book.toml | 5 + src/SUMMARY.md | 14 +- src/about.md | 1 + src/ch01-first_try/cargo.md | 1 + src/ch01-first_try/editor.md | 1 + src/ch01-first_try/getting-started.md | 1 + src/ch01-first_try/hello-world.md | 1 + src/ch01-first_try/installation.md | 1 + src/chapter_1.md | 3 - src/introduction.md | 1 + writing_material/.DS_Store | Bin 6148 -> 6148 bytes writing_material/posts/.DS_Store | Bin 8196 -> 8196 bytes 20 files changed, 641 insertions(+), 5 deletions(-) create mode 100644 assets/.DS_Store create mode 100644 assets/ferris.css create mode 100644 assets/ferris.js create mode 100644 assets/lunr.multi.js create mode 100644 assets/lunr.stemmer.support.js create mode 100644 assets/lunr.zh.js create mode 100644 assets/theme/2018-edition.css create mode 100644 src/about.md create mode 100644 src/ch01-first_try/cargo.md create mode 100644 src/ch01-first_try/editor.md create mode 100644 src/ch01-first_try/getting-started.md create mode 100644 src/ch01-first_try/hello-world.md create mode 100644 src/ch01-first_try/installation.md delete mode 100644 src/chapter_1.md create mode 100644 src/introduction.md diff --git a/.DS_Store b/.DS_Store index f2d4802e9e3ab1dd2b58d286fe6770258859fea4..d946b493d6811093bbd6b65012d91f1b24050c05 100644 GIT binary patch literal 8196 zcmeHMJ#Q387=Gt$@Lr6=`inS%NUL0fgatOALMgJG&mbpCY{Fd{)cKnlrB#4AC>gI#RXU@TxPU@TxPU@TxP z@F7?L-`OHruX*pQUQ-$i7z=!s77*uygIS=fv87NR9azW^0I?UFWx_hf0aD{=bTzgV zN-2)1q6ea-M28qe$+6!NbVOHUOQDhjQF0)9W}+h$B4X425H{vSaj3X^nV;%}1c>D{-#&+4=Kt*hP*-tpcQ((ToEUdbpE|p>mA6Iai?#Pc033g7 zUEf#4{Sk8?@47!7-Y0TzI{OJL8`{^%leVw@W7}L2NU$gnF?ofG2K8PTukZh)C+&buAz)zo>s5D zY+AU}K+ed^207@Zm{PV}i^J;d>S{vM#jg62n5`1?D4OF*n1-A!t;pF^TAyL79A^|O zm~Duz8>=T9)blS#z9-ON19!!$BWf{WwVp_);MqoG^T2QeOz5oU2*(hU2* z47&$8F;sT4a^i9B9@B;-EZ#M+v-1&V_;7^WjqJXWYS(1 z=uw0*5&uuW{`>!4!D`N<831vHQB?t~|D$N>bAd9Oep%PW4oZ-jp zx?i&Y!U?`-yHb~K(oP65Kg<5?=l9w17sZZ=Nc4-*E>Vk!JY>dN6U7zA{hZfq!+PpK zp~r|RqYj;*%+{iv!ztht_}3KRZ?{RGD55FS%J=&^Q72)dLiA&E5I=#P-`eyN8WqkL z$|{V96~+TfsGte=jC=m6C{OJj`rGU^s+Kqb7i#eG`^B^R^e=6?6ICV zsyyqj>m$QiHnBRKhm$1E@^1G+Y;4xH?$o`yx9uGVV>Ju%VP0hY;q(Ky-YS)Z%la^U z7e})}>)tDs=EFFRrkW6sB7_{hkJFKw^;MCMGR+N4hu82LgVxS`-rIZHmc3{Di?*CU z?{(X9@5%mR(eUm+di>(e;A?W4svmfIn7|&a?XJZo@Vi@C`?p}4CMx|5?~<{Mba4kzIobfr_kDR5bVP19`g`G0u*{r@t_ zwVVP@f&WSYQ9B3@`dE@ZTh|uHXRSp3h|I=ur9n+WVUJ^7;iGs5SsVH!SAf37(jYuA P_amTXaD`LguPX2d7?F|X literal 0 HcmV?d00001 diff --git a/assets/ferris.css b/assets/ferris.css new file mode 100644 index 00000000..37120792 --- /dev/null +++ b/assets/ferris.css @@ -0,0 +1,33 @@ +body.light .does_not_compile, +body.light .panics, +body.light .not_desired_behavior, +body.rust .does_not_compile, +body.rust .panics, +body.rust .not_desired_behavior { + background: #fff1f1; +} + +body.coal .does_not_compile, +body.coal .panics, +body.coal .not_desired_behavior, +body.navy .does_not_compile, +body.navy .panics, +body.navy .not_desired_behavior, +body.ayu .does_not_compile, +body.ayu .panics, +body.ayu .not_desired_behavior { + background: #501f21; +} + +.ferris { + position: absolute; + z-index: 99; + right: 5px; + top: 30px; + width: 10%; + height: auto; +} + +.ferris-explain { + width: 100px; +} diff --git a/assets/ferris.js b/assets/ferris.js new file mode 100644 index 00000000..f3f631e2 --- /dev/null +++ b/assets/ferris.js @@ -0,0 +1,47 @@ +var ferrisTypes = [ + { + attr: 'does_not_compile', + title: '此程式碼無法編譯!' + }, + { + attr: 'panics', + title: '此程式碼會恐慌!' + }, + { + attr: 'not_desired_behavior', + title: '此程式碼沒有產生預期的行為。' + } +] + +document.addEventListener('DOMContentLoaded', () => { + for (var ferrisType of ferrisTypes) { + attachFerrises(ferrisType) + } +}) + +function attachFerrises (type) { + var elements = document.getElementsByClassName(type.attr) + + for (var codeBlock of elements) { + var lines = codeBlock.textContent.split(/\r|\r\n|\n/).length - 1; + + if (lines >= 4) { + attachFerris(codeBlock, type) + } + } +} + +function attachFerris (element, type) { + var a = document.createElement('a') + a.setAttribute('href', 'ch00-00-introduction.html#ferris') + a.setAttribute('target', '_blank') + + var img = document.createElement('img') + img.setAttribute('src', 'img/ferris/' + type.attr + '.svg') + img.setAttribute('title', type.title) + img.className = 'ferris' + + a.appendChild(img) + + element.parentElement.insertBefore(a, element) +} diff --git a/assets/lunr.multi.js b/assets/lunr.multi.js new file mode 100644 index 00000000..4e921e02 --- /dev/null +++ b/assets/lunr.multi.js @@ -0,0 +1,79 @@ +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* Set up the pipeline for indexing content in multiple languages. The + corresponding lunr.{lang} files must be loaded before calling this + function; English ('en') is built in. + + Returns: a lunr plugin for use in your indexer. + + Known drawback: every word will be stemmed with stemmers for every + language. This could mean that sometimes words that have the same + stemming root will not be stemmed as such. + */ + lunr.multiLanguage = function(/* lang1, lang2, ... */) { + var languages = Array.prototype.slice.call(arguments); + var nameSuffix = languages.join('-'); + var wordCharacters = ""; + var pipeline = []; + var searchPipeline = []; + for (var i = 0; i < languages.length; ++i) { + if (languages[i] == 'en') { + wordCharacters += '\\w'; + pipeline.unshift(lunr.stopWordFilter); + pipeline.push(lunr.stemmer); + searchPipeline.push(lunr.stemmer); + } else { + wordCharacters += lunr[languages[i]].wordCharacters; + if (lunr[languages[i]].stopWordFilter) { + pipeline.unshift(lunr[languages[i]].stopWordFilter); + } + if (lunr[languages[i]].stemmer) { + pipeline.push(lunr[languages[i]].stemmer); + searchPipeline.push(lunr[languages[i]].stemmer); + } + } + }; + var multiTrimmer = lunr.trimmerSupport.generateTrimmer(wordCharacters); + lunr.Pipeline.registerFunction(multiTrimmer, 'lunr-multi-trimmer-' + nameSuffix); + pipeline.unshift(multiTrimmer); + + return function() { + this.pipeline.reset(); + + this.pipeline.add.apply(this.pipeline, pipeline); + + // for lunr version 2 + // this is necessary so that every searched word is also stemmed before + // in lunr <= 1 this is not needed, as it is done using the normal pipeline + if (this.searchPipeline) { + this.searchPipeline.reset(); + this.searchPipeline.add.apply(this.searchPipeline, searchPipeline); + } + }; + } + } +})); diff --git a/assets/lunr.stemmer.support.js b/assets/lunr.stemmer.support.js new file mode 100644 index 00000000..896476a1 --- /dev/null +++ b/assets/lunr.stemmer.support.js @@ -0,0 +1,304 @@ +/*! + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr) { + /* provides utilities for the included stemmers */ + lunr.stemmerSupport = { + Among: function(s, substring_i, result, method) { + this.toCharArray = function(s) { + var sLength = s.length, charArr = new Array(sLength); + for (var i = 0; i < sLength; i++) + charArr[i] = s.charCodeAt(i); + return charArr; + }; + + if ((!s && s != "") || (!substring_i && (substring_i != 0)) || !result) + throw ("Bad Among initialisation: s:" + s + ", substring_i: " + + substring_i + ", result: " + result); + this.s_size = s.length; + this.s = this.toCharArray(s); + this.substring_i = substring_i; + this.result = result; + this.method = method; + }, + SnowballProgram: function() { + var current; + return { + bra : 0, + ket : 0, + limit : 0, + cursor : 0, + limit_backward : 0, + setCurrent : function(word) { + current = word; + this.cursor = 0; + this.limit = word.length; + this.limit_backward = 0; + this.bra = this.cursor; + this.ket = this.limit; + }, + getCurrent : function() { + var result = current; + current = null; + return result; + }, + in_grouping : function(s, min, max) { + if (this.cursor < this.limit) { + var ch = current.charCodeAt(this.cursor); + if (ch <= max && ch >= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor++; + return true; + } + } + } + return false; + }, + in_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch <= max && ch >= min) { + ch -= min; + if (s[ch >> 3] & (0X1 << (ch & 0X7))) { + this.cursor--; + return true; + } + } + } + return false; + }, + out_grouping : function(s, min, max) { + if (this.cursor < this.limit) { + var ch = current.charCodeAt(this.cursor); + if (ch > max || ch < min) { + this.cursor++; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor++; + return true; + } + } + return false; + }, + out_grouping_b : function(s, min, max) { + if (this.cursor > this.limit_backward) { + var ch = current.charCodeAt(this.cursor - 1); + if (ch > max || ch < min) { + this.cursor--; + return true; + } + ch -= min; + if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { + this.cursor--; + return true; + } + } + return false; + }, + eq_s : function(s_size, s) { + if (this.limit - this.cursor < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor + i) != s.charCodeAt(i)) + return false; + this.cursor += s_size; + return true; + }, + eq_s_b : function(s_size, s) { + if (this.cursor - this.limit_backward < s_size) + return false; + for (var i = 0; i < s_size; i++) + if (current.charCodeAt(this.cursor - s_size + i) != s + .charCodeAt(i)) + return false; + this.cursor -= s_size; + return true; + }, + find_among : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, l = this.limit, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = common; i2 < w.s_size; i2++) { + if (c + common == l) { + diff = -1; + break; + } + diff = current.charCodeAt(c + common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c + w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c + w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + find_among_b : function(v, v_size) { + var i = 0, j = v_size, c = this.cursor, lb = this.limit_backward, common_i = 0, common_j = 0, first_key_inspected = false; + while (true) { + var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j + ? common_i + : common_j, w = v[k]; + for (var i2 = w.s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { + diff = -1; + break; + } + diff = current.charCodeAt(c - 1 - common) - w.s[i2]; + if (diff) + break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0 || j == i || first_key_inspected) + break; + first_key_inspected = true; + } + } + while (true) { + var w = v[i]; + if (common_i >= w.s_size) { + this.cursor = c - w.s_size; + if (!w.method) + return w.result; + var res = w.method(); + this.cursor = c - w.s_size; + if (res) + return w.result; + } + i = w.substring_i; + if (i < 0) + return 0; + } + }, + replace_s : function(c_bra, c_ket, s) { + var adjustment = s.length - (c_ket - c_bra), left = current + .substring(0, c_bra), right = current.substring(c_ket); + current = left + s + right; + this.limit += adjustment; + if (this.cursor >= c_ket) + this.cursor += adjustment; + else if (this.cursor > c_bra) + this.cursor = c_bra; + return adjustment; + }, + slice_check : function() { + if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit + || this.limit > current.length) + throw ("faulty slice operation"); + }, + slice_from : function(s) { + this.slice_check(); + this.replace_s(this.bra, this.ket, s); + }, + slice_del : function() { + this.slice_from(""); + }, + insert : function(c_bra, c_ket, s) { + var adjustment = this.replace_s(c_bra, c_ket, s); + if (c_bra <= this.bra) + this.bra += adjustment; + if (c_bra <= this.ket) + this.ket += adjustment; + }, + slice_to : function() { + this.slice_check(); + return current.substring(this.bra, this.ket); + }, + eq_v_b : function(s) { + return this.eq_s_b(s.length, s); + } + }; + } + }; + + lunr.trimmerSupport = { + generateTrimmer: function(wordCharacters) { + var startRegex = new RegExp("^[^" + wordCharacters + "]+") + var endRegex = new RegExp("[^" + wordCharacters + "]+$") + + return function(token) { + // for lunr version 2 + if (typeof token.update === "function") { + return token.update(function (s) { + return s + .replace(startRegex, '') + .replace(endRegex, ''); + }) + } else { // for lunr version 1 + return token + .replace(startRegex, '') + .replace(endRegex, ''); + } + }; + } + } + } +})); diff --git a/assets/lunr.zh.js b/assets/lunr.zh.js new file mode 100644 index 00000000..14a177c0 --- /dev/null +++ b/assets/lunr.zh.js @@ -0,0 +1,145 @@ +/*! + * Lunr languages, `Chinese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2019, Felix Lian (repairearth) + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball zhvaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +; +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory(require('nodejieba')) + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function(nodejieba) { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return function(lunr, nodejiebaDictJson) { + /* throw error if lunr is not yet included */ + if ('undefined' === typeof lunr) { + throw new Error('Lunr is not present. Please include / require Lunr before this script.'); + } + + /* throw error if lunr stemmer support is not yet included */ + if ('undefined' === typeof lunr.stemmerSupport) { + throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); + } + + /* + Chinese tokenization is trickier, since it does not + take into account spaces. + Since the tokenization function is represented different + internally for each of the Lunr versions, this had to be done + in order to try to try to pick the best way of doing this based + on the Lunr version + */ + var isLunr2 = lunr.version[0] == "2"; + + /* register specific locale function */ + lunr.zh = function() { + this.pipeline.reset(); + this.pipeline.add( + lunr.zh.trimmer, + lunr.zh.stopWordFilter, + lunr.zh.stemmer + ); + + // change the tokenizer for Chinese one + if (isLunr2) { // for lunr version 2.0.0 + this.tokenizer = lunr.zh.tokenizer; + } else { + if (lunr.tokenizer) { // for lunr version 0.6.0 + lunr.tokenizer = lunr.zh.tokenizer; + } + if (this.tokenizerFn) { // for lunr version 0.7.0 -> 1.0.0 + this.tokenizerFn = lunr.zh.tokenizer; + } + } + }; + + lunr.zh.tokenizer = function(obj) { + if (!arguments.length || obj == null || obj == undefined) return [] + if (Array.isArray(obj)) return obj.map(function(t) { + return isLunr2 ? new lunr.Token(t.toLowerCase()) : t.toLowerCase() + }) + + nodejiebaDictJson && nodejieba.load(nodejiebaDictJson) + + var str = obj.toString().trim().toLowerCase(); + var tokens = []; + + nodejieba.cut(str, true).forEach(function(seg) { + tokens = tokens.concat(seg.split(' ')) + }) + + tokens = tokens.filter(function(token) { + return !!token; + }); + + var fromIndex = 0 + + return tokens.map(function(token, index) { + if (isLunr2) { + var start = str.indexOf(token, fromIndex) + + var tokenMetadata = {} + tokenMetadata["position"] = [start, token.length] + tokenMetadata["index"] = index + + fromIndex = start + + return new lunr.Token(token, tokenMetadata); + } else { + return token + } + }); + } + + /* lunr trimmer function */ + lunr.zh.wordCharacters = "\\w\u4e00-\u9fa5"; + lunr.zh.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.zh.wordCharacters); + lunr.Pipeline.registerFunction(lunr.zh.trimmer, 'trimmer-zh'); + + /* lunr stemmer function */ + lunr.zh.stemmer = (function() { + + /* TODO Chinese stemmer */ + return function(word) { + return word; + } + })(); + lunr.Pipeline.registerFunction(lunr.zh.stemmer, 'stemmer-zh'); + + /* lunr stop word filter. see https://www.ranks.nl/stopwords/chinese-stopwords */ + lunr.zh.stopWordFilter = lunr.generateStopWordFilter( + '的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自'.split(' ')); + lunr.Pipeline.registerFunction(lunr.zh.stopWordFilter, 'stopWordFilter-zh'); + }; +})) \ No newline at end of file diff --git a/assets/theme/2018-edition.css b/assets/theme/2018-edition.css new file mode 100644 index 00000000..b1dcf936 --- /dev/null +++ b/assets/theme/2018-edition.css @@ -0,0 +1,9 @@ +span.caption { + font-size: .8em; + font-weight: 600; +} + +span.caption code { + font-size: 0.875em; + font-weight: 400; +} diff --git a/book.toml b/book.toml index a7c33010..0c8a80fe 100644 --- a/book.toml +++ b/book.toml @@ -4,3 +4,8 @@ language = "en" multilingual = false src = "src" title = "The way to rust" + +[output.html] +additional-css = ["assets/ferris.css", "assets/theme/2018-edition.css"] +additional-js = ["assets/ferris.js"] +git-repository-url = "https://github.com/rustcm/the-way-to-rust" \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 7390c828..3312017b 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -1,3 +1,13 @@ -# Summary +# The Rust Programming Language + +[为何创作本书](about.md) +[关于Rust语言](introduction.md) + +## Getting started + +- [牛刀小试](ch01-first_try/getting-started.md) + - [安装Rust环境](ch01-first_try/installation.md) + - [墙推VSCode!](ch01-first_try/editor.md) + - [认识Cargo](ch01-first_try/cargo.md) + - [你好,世界!](ch01-first_try/hello-world.md) -- [Chapter 1](./chapter_1.md) diff --git a/src/about.md b/src/about.md new file mode 100644 index 00000000..70f55321 --- /dev/null +++ b/src/about.md @@ -0,0 +1 @@ +# about \ No newline at end of file diff --git a/src/ch01-first_try/cargo.md b/src/ch01-first_try/cargo.md new file mode 100644 index 00000000..233e0f9b --- /dev/null +++ b/src/ch01-first_try/cargo.md @@ -0,0 +1 @@ +## 认识Cargo \ No newline at end of file diff --git a/src/ch01-first_try/editor.md b/src/ch01-first_try/editor.md new file mode 100644 index 00000000..7f692f2c --- /dev/null +++ b/src/ch01-first_try/editor.md @@ -0,0 +1 @@ +## 编辑器 \ No newline at end of file diff --git a/src/ch01-first_try/getting-started.md b/src/ch01-first_try/getting-started.md new file mode 100644 index 00000000..a6a564a0 --- /dev/null +++ b/src/ch01-first_try/getting-started.md @@ -0,0 +1 @@ +# getting started \ No newline at end of file diff --git a/src/ch01-first_try/hello-world.md b/src/ch01-first_try/hello-world.md new file mode 100644 index 00000000..063897ea --- /dev/null +++ b/src/ch01-first_try/hello-world.md @@ -0,0 +1 @@ +# 从hello world开始 \ No newline at end of file diff --git a/src/ch01-first_try/installation.md b/src/ch01-first_try/installation.md new file mode 100644 index 00000000..4edc90c8 --- /dev/null +++ b/src/ch01-first_try/installation.md @@ -0,0 +1 @@ +# 安装运行Rust \ No newline at end of file diff --git a/src/chapter_1.md b/src/chapter_1.md deleted file mode 100644 index 8daa0ce1..00000000 --- a/src/chapter_1.md +++ /dev/null @@ -1,3 +0,0 @@ -# Chapter 1 - -test,test \ No newline at end of file diff --git a/src/introduction.md b/src/introduction.md new file mode 100644 index 00000000..a5bdf0ad --- /dev/null +++ b/src/introduction.md @@ -0,0 +1 @@ +# introduction.md \ No newline at end of file diff --git a/writing_material/.DS_Store b/writing_material/.DS_Store index 87f5498e87e412bb770b355b29e9dd42bfee0bb8..e96935b5e3dd5ad07abb97a82b7c01dacd9f1689 100644 GIT binary patch delta 225 zcmZoMXfc=|#>B`mu~2NHo}wrV0|Nsi1A_nqLoq`K25z95JfML|K)v}4*$l-%ReTKV zkyTCX(KX}-8eGCq2{tmGA)TQVXe7`|&z$_^q@4UDpmLzY7-bRKHhz?4+sw|v&jIwo Z#*g2bC-aLKasb`W&;Z1nJw)~}0|34QJY)a> delta 139 zcmZoMXfc=|#>CJ*u~2NHo}w@l0|Nsi1A_nqL$PO0esWSye$vE3&B+ELER*{gwaob# zN*MAP;u(q|iAS;DIk0F;K1*QRL1W-RyF_5179}G5sWE5lD#Kg$BnVo~5 b185si;5+kVei1`PhRHTO(wk#MRxkqqw&Nx8 diff --git a/writing_material/posts/.DS_Store b/writing_material/posts/.DS_Store index f2a72f86d1c41d632bab6fcd8273043776025bd6..2dea0769fc3e52b59191f5b100849e53113308e9 100644 GIT binary patch delta 60 zcmZp1XmOa}&nU7nU^hRb$Yve^XBKfjh7yK+hIob|hE#@PAS;KV49H5Ed_h2U^Awo^ O=7|kFo7pA)vI79+9uS`Z delta 29 lcmZp1XmOa}&nUbxU^hRb@MazXXO_+WJUf^-vrGJC2LOu;2@n7P