From 83e8cfc1ba425d88639d7f9ca658c362159db575 Mon Sep 17 00:00:00 2001 From: Alfex4936 <ikr@kakao.com> Date: Thu, 16 Mar 2023 22:06:21 +0900 Subject: [PATCH] Footer --- docs/01_ko.html | 4 ++ docs/02_ko.html | 4 ++ docs/03_ko.html | 4 ++ docs/04_ko.html | 6 ++- docs/06_ko.html | 4 ++ docs/07_ko.html | 4 ++ docs/08_ko.html | 4 ++ docs/09_ko.html | 4 ++ docs/10_ko.html | 4 ++ docs/11_ko.html | 4 ++ docs/12_ko.html | 4 ++ docs/13_ko.html | 4 ++ docs/14_ko.html | 4 ++ docs/15_ko.html | 12 +++-- docs/16_ko.html | 24 ++++----- docs/17_ko.html | 77 ++++++++++++++++++++++++++ docs/18_ko.html | 83 +++++++++++++++++++++++++++++ docs/20_ko.html | 75 ++++++++++++++++++++++++++ docs/22_ko.html | 75 ++++++++++++++++++++++++++ docs/24_ko.html | 75 ++++++++++++++++++++++++++ docs/26_ko.html | 75 ++++++++++++++++++++++++++ docs/28_ko.html | 75 ++++++++++++++++++++++++++ docs/TOC_ko.html | 16 +++++- docs/ajou.webp | Bin 0 -> 3176 bytes docs/chapter_1_ko.html | 6 ++- docs/chapter_2_ko.html | 75 ++++++++++++++++++++++++++ docs/chapter_3_ko.html | 75 ++++++++++++++++++++++++++ docs/chapter_4_ko.html | 75 ++++++++++++++++++++++++++ docs/chapter_5_ko.html | 76 ++++++++++++++++++++++++++ docs/chapter_6_ko.html | 76 ++++++++++++++++++++++++++ docs/index.html | 4 ++ fast.py | 2 +- frontend/generate.js | 10 +++- frontend/lessons/ko/chapter_0.yaml | 2 + frontend/lessons/ko/chapter_1.yaml | 19 ++++++- frontend/lessons/ko/chapter_2.yaml | 10 ++++ frontend/lessons/ko/chapter_3.yaml | 10 ++++ frontend/lessons/ko/chapter_4.yaml | 10 ++++ frontend/lessons/ko/chapter_5.yaml | 13 +++++ frontend/lessons/ko/chapter_6.yaml | 13 +++++ 40 files changed, 1092 insertions(+), 25 deletions(-) create mode 100644 docs/17_ko.html create mode 100644 docs/18_ko.html create mode 100644 docs/20_ko.html create mode 100644 docs/22_ko.html create mode 100644 docs/24_ko.html create mode 100644 docs/26_ko.html create mode 100644 docs/28_ko.html create mode 100644 docs/ajou.webp create mode 100644 docs/chapter_2_ko.html create mode 100644 docs/chapter_3_ko.html create mode 100644 docs/chapter_4_ko.html create mode 100644 docs/chapter_5_ko.html create mode 100644 docs/chapter_6_ko.html create mode 100644 frontend/lessons/ko/chapter_2.yaml create mode 100644 frontend/lessons/ko/chapter_3.yaml create mode 100644 frontend/lessons/ko/chapter_4.yaml create mode 100644 frontend/lessons/ko/chapter_5.yaml create mode 100644 frontend/lessons/ko/chapter_6.yaml diff --git a/docs/01_ko.html b/docs/01_ko.html index 705a95e..8566576 100644 --- a/docs/01_ko.html +++ b/docs/01_ko.html @@ -98,5 +98,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/02_ko.html b/docs/02_ko.html index 04253b6..a11b99c 100644 --- a/docs/02_ko.html +++ b/docs/02_ko.html @@ -105,5 +105,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/03_ko.html b/docs/03_ko.html index 310c475..9b5ea64 100644 --- a/docs/03_ko.html +++ b/docs/03_ko.html @@ -81,5 +81,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/04_ko.html b/docs/04_ko.html index 3f7e1ac..84445ab 100644 --- a/docs/04_ko.html +++ b/docs/04_ko.html @@ -53,7 +53,7 @@ $ Hello, world! (stdout) <span class="next"><a href="chapter_1_ko.html" rel="next">다음 ❯</a></span> </div> </div> - <div class="code"><center><img src="/ferris_lofi.png" alt="Mascot Ferris" width="300" height="236"></center></div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> </div> <!-- <script> document.addEventListener("DOMContentLoaded", function() { @@ -79,5 +79,9 @@ $ Hello, world! (stdout) }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/06_ko.html b/docs/06_ko.html index cbdc64e..a5ad0a0 100644 --- a/docs/06_ko.html +++ b/docs/06_ko.html @@ -86,5 +86,9 @@ fn main() { }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/07_ko.html b/docs/07_ko.html index 48187b1..fbb2313 100644 --- a/docs/07_ko.html +++ b/docs/07_ko.html @@ -77,5 +77,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/08_ko.html b/docs/08_ko.html index 50fbb9b..26a0cb2 100644 --- a/docs/08_ko.html +++ b/docs/08_ko.html @@ -74,5 +74,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/09_ko.html b/docs/09_ko.html index 2c4fee4..21a9dc9 100644 --- a/docs/09_ko.html +++ b/docs/09_ko.html @@ -84,5 +84,9 @@ Rust가 시스템 프로그래밍 언어이기 때문에, 기존에 익숙하지 }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/10_ko.html b/docs/10_ko.html index 00b646e..7a75bb3 100644 --- a/docs/10_ko.html +++ b/docs/10_ko.html @@ -70,5 +70,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/11_ko.html b/docs/11_ko.html index 9d040ca..85877a4 100644 --- a/docs/11_ko.html +++ b/docs/11_ko.html @@ -72,5 +72,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/12_ko.html b/docs/12_ko.html index 7f4be4a..b7d5f9d 100644 --- a/docs/12_ko.html +++ b/docs/12_ko.html @@ -74,5 +74,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/13_ko.html b/docs/13_ko.html index 6e0e585..ee34fe0 100644 --- a/docs/13_ko.html +++ b/docs/13_ko.html @@ -74,5 +74,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/14_ko.html b/docs/14_ko.html index e175bb4..1db8a15 100644 --- a/docs/14_ko.html +++ b/docs/14_ko.html @@ -72,5 +72,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/15_ko.html b/docs/15_ko.html index 478c949..49cbf15 100644 --- a/docs/15_ko.html +++ b/docs/15_ko.html @@ -34,17 +34,15 @@ <span class="toc"><a href="TOC_ko.html">목차</a></span> </div> <div class="page"> - <h1>Returning Nothing</h1> - <p>함수에 대해 반환 유형이 지정되어 있지 않으면, <em>unit</em>이라고도 하는 빈 튜플을 반환합니다.</p> -<p>빈 튜플은 <code>()</code>로 나타낼 수 있습니다.</p> -<p><code>()</code>을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다.</p> + <h1>Struct and Enum</h1> + <p>Struct, Enum</p> <div class="bottomnav"> <span class="back"><a href="14_ko.html" rel="prev">❮ 이전</a></span> <span class="next"><a href="16_ko.html" rel="next">다음 ❯</a></span> </div> </div> <div class="code"> - <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe> + <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe> </div> </div> <!-- <script> @@ -71,5 +69,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/16_ko.html b/docs/16_ko.html index f893fa6..c0f625c 100644 --- a/docs/16_ko.html +++ b/docs/16_ko.html @@ -34,22 +34,18 @@ <span class="toc"><a href="TOC_ko.html">목차</a></span> </div> <div class="page"> - <h1>Chapter 1 - 마무리</h1> - <p>Rust의 기초는 그렇게 나쁘지 않죠? -시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며, -수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다.</p> -<p>참고:</p> -<ul> -<li><a href="https://www.youtube.com/watch?v=n5TRBkbystY">Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해</a></li> -<li><a href="https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html">Website: Rust Book 2018 - 기본 데이터 유형에 대한 자세한 설명</a></li> -<li><a href="https://cheats.rs/#basic-types">Website: Rust Cheat Sheet - Data Types</a></li> -</ul> + <h1>Returning Nothing</h1> + <p>함수에 대해 반환 유형이 지정되어 있지 않으면, <em>unit</em>이라고도 하는 빈 튜플을 반환합니다.</p> +<p>빈 튜플은 <code>()</code>로 나타낼 수 있습니다.</p> +<p><code>()</code>을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다.</p> <div class="bottomnav"> <span class="back"><a href="15_ko.html" rel="prev">❮ 이전</a></span> - + <span class="next"><a href="17_ko.html" rel="next">다음 ❯</a></span> </div> </div> - <div class="code"><center><img src="/ferris_lofi.png" alt="Mascot Ferris" width="300" height="236"></center></div> + <div class="code"> + <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe> + </div> </div> <!-- <script> document.addEventListener("DOMContentLoaded", function() { @@ -75,5 +71,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/17_ko.html b/docs/17_ko.html new file mode 100644 index 0000000..2232b82 --- /dev/null +++ b/docs/17_ko.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Error handling</h1> + <p>Error handling</p> + <div class="bottomnav"> + <span class="back"><a href="16_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="18_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"> + <iframe id="rust-playground" width="100%" src="https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe> + </div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/18_ko.html b/docs/18_ko.html new file mode 100644 index 0000000..d715766 --- /dev/null +++ b/docs/18_ko.html @@ -0,0 +1,83 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 1 - 마무리</h1> + <p>Rust의 기초는 그렇게 나쁘지 않죠?</p> +<p>시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며,</p> +<p>수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다.</p> +<p>참고:</p> +<ul> +<li><a href="https://www.youtube.com/watch?v=n5TRBkbystY">Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해</a></li> +<li><a href="https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html">Website: Rust Book 2018 - 기본 데이터 유형에 대한 자세한 설명</a></li> +<li><a href="https://cheats.rs/#basic-types">Website: Rust Cheat Sheet - Data Types</a></li> +</ul> + <div class="bottomnav"> + <span class="back"><a href="17_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="chapter_2_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/20_ko.html b/docs/20_ko.html new file mode 100644 index 0000000..0bf078c --- /dev/null +++ b/docs/20_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Hey</h1> + <p>CSW</p> + <div class="bottomnav"> + <span class="back"><a href="chapter_2_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="chapter_3_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/22_ko.html b/docs/22_ko.html new file mode 100644 index 0000000..a0da480 --- /dev/null +++ b/docs/22_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Hey</h1> + <p>CSW</p> + <div class="bottomnav"> + <span class="back"><a href="chapter_3_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="chapter_4_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/24_ko.html b/docs/24_ko.html new file mode 100644 index 0000000..26d3703 --- /dev/null +++ b/docs/24_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Hey</h1> + <p>CSW</p> + <div class="bottomnav"> + <span class="back"><a href="chapter_4_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="chapter_5_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/26_ko.html b/docs/26_ko.html new file mode 100644 index 0000000..86f5aee --- /dev/null +++ b/docs/26_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Hey</h1> + <p>CSW</p> + <div class="bottomnav"> + <span class="back"><a href="chapter_5_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="chapter_6_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/28_ko.html b/docs/28_ko.html new file mode 100644 index 0000000..4fa59b1 --- /dev/null +++ b/docs/28_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Hey</h1> + <p>CSW</p> + <div class="bottomnav"> + <span class="back"><a href="chapter_6_ko.html" rel="prev">❮ 이전</a></span> + + </div> + </div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/TOC_ko.html b/docs/TOC_ko.html index f055613..abe6532 100644 --- a/docs/TOC_ko.html +++ b/docs/TOC_ko.html @@ -51,8 +51,20 @@ <li><a href="12_ko.html">Arrays</a></li> <li><a href="13_ko.html">Functions</a></li> <li><a href="14_ko.html">Multiple Return Values</a></li> -<li><a href="15_ko.html">Returning Nothing</a></li> -<li><a href="16_ko.html">Chapter 1 - 마무리</a></li> +<li><a href="15_ko.html">Struct and Enum</a></li> +<li><a href="16_ko.html">Returning Nothing</a></li> +<li><a href="17_ko.html">Error handling</a></li> +<li><a href="18_ko.html">Chapter 1 - 마무리</a></li> +</ul><h3><a href="chapter_2_ko.html">Chapter 2 - Ownership</a></h3><ul> +<li><a href="20_ko.html">Hey</a></li> +</ul><h3><a href="chapter_3_ko.html">Chapter 3 - Generic, Trait</a></h3><ul> +<li><a href="22_ko.html">Hey</a></li> +</ul><h3><a href="chapter_4_ko.html">Chapter 4 - Advanced</a></h3><ul> +<li><a href="24_ko.html">Hey</a></li> +</ul><h3><a href="chapter_5_ko.html">Chapter 5 - Module</a></h3><ul> +<li><a href="26_ko.html">Hey</a></li> +</ul><h3><a href="chapter_6_ko.html">Chapter 6 - Web Framework</a></h3><ul> +<li><a href="28_ko.html">Hey</a></li> </ul> </div> </div> diff --git a/docs/ajou.webp b/docs/ajou.webp new file mode 100644 index 0000000000000000000000000000000000000000..4e6712e4176781d111b8040376c164e9f4b5eb44 GIT binary patch literal 3176 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 bb``SO%zM!Fw#p_rF;v-D@oS2DYOV$V+><*g literal 0 HcmV?d00001 diff --git a/docs/chapter_1_ko.html b/docs/chapter_1_ko.html index 2278b8f..d13acf3 100644 --- a/docs/chapter_1_ko.html +++ b/docs/chapter_1_ko.html @@ -44,7 +44,7 @@ <span class="next"><a href="06_ko.html" rel="next">다음 ❯</a></span> </div> </div> - <div class="code"><center><img src="/ferris_lofi.png" alt="Mascot Ferris" width="300" height="236"></center></div> + <div class="code"><center><img src="/ferris_lofi.png" alt="Rust Tutorial" width="300" height="100%"></center></div> </div> <!-- <script> document.addEventListener("DOMContentLoaded", function() { @@ -70,5 +70,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/docs/chapter_2_ko.html b/docs/chapter_2_ko.html new file mode 100644 index 0000000..dee1070 --- /dev/null +++ b/docs/chapter_2_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 2 - Ownership</h1> + <p>소유권, 빌리기, borrow checker</p> + <div class="bottomnav"> + <span class="back"><a href="18_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="20_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/chapter_3_ko.html b/docs/chapter_3_ko.html new file mode 100644 index 0000000..97cc094 --- /dev/null +++ b/docs/chapter_3_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 3 - Generic, Trait</h1> + <p>OOP</p> + <div class="bottomnav"> + <span class="back"><a href="20_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="22_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/chapter_4_ko.html b/docs/chapter_4_ko.html new file mode 100644 index 0000000..d5c3a63 --- /dev/null +++ b/docs/chapter_4_ko.html @@ -0,0 +1,75 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 4 - Advanced</h1> + <p>Concurrency, Macro, Unsafe</p> + <div class="bottomnav"> + <span class="back"><a href="22_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="24_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/chapter_5_ko.html b/docs/chapter_5_ko.html new file mode 100644 index 0000000..6448f35 --- /dev/null +++ b/docs/chapter_5_ko.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 5 - Module</h1> + <p>모듈 사용</p> +<p>간단한 모듈 제작 및 업로드</p> + <div class="bottomnav"> + <span class="back"><a href="24_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="26_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/chapter_6_ko.html b/docs/chapter_6_ko.html new file mode 100644 index 0000000..95e6e19 --- /dev/null +++ b/docs/chapter_6_ko.html @@ -0,0 +1,76 @@ +<!DOCTYPE html> + <html lang="ko"> + <head> + <title>Rust 튜토리얼 - 자기주도프로젝트</title> + + <meta charset="UTF-8"> + <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> + <meta content="utf-8" http-equiv="encoding"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="keywords" content="Rust, Programming, Learning"> + <meta name="description" content="Rust tutorial website based on tour_of_rust"> + <meta name="theme-color" content="#ff6801"/> + <meta http-equiv="Cache-Control" content="max-age=3600"> + + <link rel="stylesheet" href="tour.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/night-owl.min.css"> + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css"> + + <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> + <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> + <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> + <link rel="/manifest" href="./site.webmanifest"> + + <script src="//unpkg.com/@highlightjs/cdn-assets@11.7.0/highlight.min.js"></script> + <script src="./tour.js" defer></script> + <!-- <script>hljs.highlightAll();</script> --> + <script src="./highlight.badge.min.js"></script> + </head> + <body> + <div class="tour"> + <div class="header"> + <span class="title"><a href="index.html">Rust 튜토리얼</a></span> + <span class="nav"> + <span class="toc"><a href="TOC_ko.html">목차</a></span> + </div> + <div class="page"> + <h1>Chapter 6 - Web Framework</h1> + <p>웹 프레임워크 actix-rs 소개</p> +<p>간단 카카오톡 챗봇 제작</p> + <div class="bottomnav"> + <span class="back"><a href="26_ko.html" rel="prev">❮ 이전</a></span> + <span class="next"><a href="28_ko.html" rel="next">다음 ❯</a></span> + </div> + </div> + <div class="code"><center><img src="/ajou.webp" alt="Rust Tutorial" width="300" height="100%"></center></div> + </div> + <!-- <script> + document.addEventListener("DOMContentLoaded", function() { + // Select the widget's text element using its XPath + const xpath = '/html/body/main/div/div/div[1]/div[1]/div/button[1]/div'; + const widgetText = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; + + // Change the text content of the element + widgetText.textContent = "New Text"; + }); + </script> --> + + <script> + var pres = document.querySelectorAll("pre>code"); + for (var i = 0; i < pres.length; i++) { + hljs.highlightElement(pres[i]); + } + var options = { + loadDelay: 0, + copyIconClass: "far fa-clipboard", + checkIconClass: "fa fa-check text-success", + blogURL: "http://rust-study.ajousw.kr/" + }; + window.highlightJsBadge(options); + </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> + </body> +</html> \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index a37c22d..e4b80cf 100644 --- a/docs/index.html +++ b/docs/index.html @@ -85,5 +85,9 @@ }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html> \ No newline at end of file diff --git a/fast.py b/fast.py index de68410..2c61a7b 100644 --- a/fast.py +++ b/fast.py @@ -13,7 +13,7 @@ app.add_middleware( ) -app.mount("/", StaticFiles(directory="docs", html=True), name="static") +app.mount("/", StaticFiles(directory="docs", html=True), name="docs") if __name__ == "__main__": # standalone diff --git a/frontend/generate.js b/frontend/generate.js index afc8454..a3e4bd7 100644 --- a/frontend/generate.js +++ b/frontend/generate.js @@ -158,6 +158,7 @@ function template( title, code, content, + source, index, isLast, words, @@ -223,7 +224,7 @@ function template( ? `<div class="code"> <iframe id="rust-playground" width="100%" src="${code}" scrolling="no" frameborder="no" allowtransparency="true" allowfullscreen="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-modals" title="Rust Playground" loading="lazy"></iframe> </div>` - : '<div class="code"><center><img src="/ferris_lofi.png" alt="Mascot Ferris" width="300" height="236"></center></div>' + : `<div class="code"><center><img src="${source}" alt="Rust Tutorial" width="300" height="100%"></center></div>` } </div> <!-- <script> @@ -250,6 +251,10 @@ function template( }; window.highlightJsBadge(options); </script> + + <footer> + <p>아주대학교 Software Tool Time - Rust 튜토리얼 (Basic)</p> + </footer> </body> </html>`; } @@ -260,7 +265,6 @@ languages.forEach(lang => { const langLessons = lessons.pages.filter(x => { return true; }); - const betaLessons = lessons.pages.filter(() => true); langLessons.forEach((lesson, i) => { let fileName = getFileName(lang, i, false, lesson?.chapter); @@ -272,6 +276,7 @@ languages.forEach(lang => { lesson.ko.title }`; let lessonContent = converter.makeHtml(lesson.ko.content_markdown); + let lessonImage = lesson.ko.source; let lessonCode = lesson.ko.code; if (lesson[lang]) { let targetLang = lang; @@ -302,6 +307,7 @@ languages.forEach(lang => { lessonTitle, lessonCode, lessonContent, + lessonImage, c, i === langLessons.length - 1, words, diff --git a/frontend/lessons/ko/chapter_0.yaml b/frontend/lessons/ko/chapter_0.yaml index c1b67ae..21f0fcd 100644 --- a/frontend/lessons/ko/chapter_0.yaml +++ b/frontend/lessons/ko/chapter_0.yaml @@ -144,6 +144,8 @@ </div> - title: >- Chapter 0 - 마무리 + source: >- + /ferris_lofi.png content_markdown: | Rust 소스코드는 `.rs` 확장자를 가집니다. diff --git a/frontend/lessons/ko/chapter_1.yaml b/frontend/lessons/ko/chapter_1.yaml index a25c819..50d8025 100644 --- a/frontend/lessons/ko/chapter_1.yaml +++ b/frontend/lessons/ko/chapter_1.yaml @@ -1,4 +1,6 @@ - title: Chapter 1 - The Basics + source: >- + /ferris_lofi.png content_markdown: > 무슨 언어를 배우든 똑같이 기본부터 살펴보겠습니다. (변수, 함수, 클래스 등) @@ -195,7 +197,14 @@ Rust는 여러 형식의 destructuring을 지원합니다. 우리는 더 많은 형태로 볼 것이며, 이를 통해 데이터 구조의 하위 요소를 직관적으로 추출할 수 있습니다. +- title: Struct and Enum + code: >- + https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A + content_markdown: > + Struct, Enum - title: Returning Nothing + code: >- + https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A content_markdown: > 함수에 대해 반환 유형이 지정되어 있지 않으면, *unit*이라고도 하는 빈 튜플을 반환합니다. @@ -204,17 +213,25 @@ `()`을 사용하는 것은 드문 경우이지만 충분히 자주 출현하기 때문에 무슨 일이 일어나는지 알아둘 가치가 있습니다. +- title: Error handling code: >- - https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20make_nothing()%20-%3E%20()%20%7B%0A%20%20%20%20return%20()%3B%0A%7D%0A%0A%2F%2F%20the%20return%20type%20is%20implied%20as%20()%0Afn%20make_nothing2()%20%7B%0A%20%20%20%20%2F%2F%20this%20function%20will%20return%20()%20if%20nothing%20is%20specified%20to%20return%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20let%20a%20%3D%20make_nothing()%3B%0A%20%20%20%20let%20b%20%3D%20make_nothing2()%3B%0A%0A%20%20%20%20%2F%2F%20Printing%20a%20debug%20string%20for%20a%20and%20b%0A%20%20%20%20%2F%2F%20Because%20it's%20hard%20to%20print%20nothingness%0A%20%20%20%20println!(%22The%20value%20of%20a%3A%20%7B%3A%3F%7D%22%2C%20a)%3B%0A%20%20%20%20println!(%22The%20value%20of%20b%3A%20%7B%3A%3F%7D%22%2C%20b)%3B%0A%7D%0A + https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20swap(x%3A%20i32%2C%20y%3A%20i32)%20-%3E%20(i32%2C%20i32)%20%7B%0A%20%20%20%20return%20(y%2C%20x)%3B%0A%7D%0A%0Afn%20main()%20%7B%0A%20%20%20%20%2F%2F%20return%20a%20tuple%20of%20return%20values%0A%20%20%20%20let%20result%20%3D%20swap(123%2C%20321)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20result.0%2C%20result.1)%3B%0A%0A%20%20%20%20%2F%2F%20destructure%20the%20tuple%20into%20two%20variables%20names%0A%20%20%20%20let%20(a%2C%20b)%20%3D%20swap(result.0%2C%20result.1)%3B%0A%20%20%20%20println!(%22%7B%7D%20%7B%7D%22%2C%20a%2C%20b)%3B%0A%7D%0A + content_markdown: > + Error handling - title: Chapter 1 - 마무리 + source: >- + /ferris_lofi.png content_markdown: > Rust의 기초는 그렇게 나쁘지 않죠? + 시스템 프로그래밍 언어로서, Rust는 메모리 내 값을 매우 신경쓰며, + 수정이 가능한지 불가능한지 여부, 그리고 수학 연산이 의도한 대로 수행되는지 확인합니다. + 참고: * [Youtube: Rust Cast - Rust의 기본 숫자 유형에 대한 더 깊은 이해](https://www.youtube.com/watch?v=n5TRBkbystY) diff --git a/frontend/lessons/ko/chapter_2.yaml b/frontend/lessons/ko/chapter_2.yaml new file mode 100644 index 0000000..4efdebc --- /dev/null +++ b/frontend/lessons/ko/chapter_2.yaml @@ -0,0 +1,10 @@ +- title: Chapter 2 - Ownership + source: >- + /ajou.webp + content_markdown: > + 소유권, 빌리기, borrow checker +- title: Hey + source: >- + /ferris_lofi.png + content_markdown: > + CSW diff --git a/frontend/lessons/ko/chapter_3.yaml b/frontend/lessons/ko/chapter_3.yaml new file mode 100644 index 0000000..dd4d555 --- /dev/null +++ b/frontend/lessons/ko/chapter_3.yaml @@ -0,0 +1,10 @@ +- title: Chapter 3 - Generic, Trait + source: >- + /ajou.webp + content_markdown: > + OOP +- title: Hey + source: >- + /ferris_lofi.png + content_markdown: > + CSW diff --git a/frontend/lessons/ko/chapter_4.yaml b/frontend/lessons/ko/chapter_4.yaml new file mode 100644 index 0000000..3eeb4fe --- /dev/null +++ b/frontend/lessons/ko/chapter_4.yaml @@ -0,0 +1,10 @@ +- title: Chapter 4 - Advanced + source: >- + /ajou.webp + content_markdown: > + Concurrency, Macro, Unsafe +- title: Hey + source: >- + /ferris_lofi.png + content_markdown: > + CSW diff --git a/frontend/lessons/ko/chapter_5.yaml b/frontend/lessons/ko/chapter_5.yaml new file mode 100644 index 0000000..3603577 --- /dev/null +++ b/frontend/lessons/ko/chapter_5.yaml @@ -0,0 +1,13 @@ +- title: Chapter 5 - Module + source: >- + /ajou.webp + content_markdown: > + 모듈 사용 + + + 간단한 모듈 제작 및 업로드 +- title: Hey + source: >- + /ferris_lofi.png + content_markdown: > + CSW diff --git a/frontend/lessons/ko/chapter_6.yaml b/frontend/lessons/ko/chapter_6.yaml new file mode 100644 index 0000000..f775a7d --- /dev/null +++ b/frontend/lessons/ko/chapter_6.yaml @@ -0,0 +1,13 @@ +- title: Chapter 6 - Web Framework + source: >- + /ajou.webp + content_markdown: > + 웹 프레임워크 actix-rs 소개 + + + 간단 카카오톡 챗봇 제작 +- title: Hey + source: >- + /ferris_lofi.png + content_markdown: > + CSW -- GitLab