chuckchen 2 éve
commit
d9c3ad2cf3
56 módosított fájl, 4325 hozzáadás és 0 törlés
  1. 39 0
      config/config.json
  2. 50 0
      docs/doc1/README.md
  3. 4 0
      docs/doc1/config.json
  4. 3 0
      docs/doc1/sidebar.yaml
  5. 50 0
      docs/doc2/README.md
  6. 4 0
      docs/doc2/config.json
  7. 3 0
      docs/doc2/sidebar.yaml
  8. 177 0
      out/404.html
  9. 5 0
      out/config.json
  10. 237 0
      out/doc1 copy/index.html
  11. 4 0
      out/doc1/config.json
  12. 237 0
      out/doc1/index.html
  13. 3 0
      out/doc1/sidebar.yaml
  14. BIN
      out/favicon.ico
  15. 121 0
      out/index.html
  16. 2 0
      out/robots.txt
  17. 15 0
      out/static/css/custom.css
  18. 330 0
      out/static/css/search/style.css
  19. 169 0
      out/static/css/theme_default/dark.css
  20. 1339 0
      out/static/css/theme_default/light.css
  21. 261 0
      out/static/css/theme_default/prism.min.css
  22. 2 0
      out/static/css/theme_default/prism.min.js
  23. 8 0
      out/static/css/theme_default/viewer.min.css
  24. 1 0
      out/static/image/search/cancel.svg
  25. 1 0
      out/static/image/search/close.svg
  26. 1 0
      out/static/image/search/search.svg
  27. 1 0
      out/static/image/search/up.svg
  28. 1 0
      out/static/image/theme_default/anchor.svg
  29. 1 0
      out/static/image/theme_default/array.svg
  30. 1 0
      out/static/image/theme_default/back.svg
  31. 0 0
      out/static/image/theme_default/dark_mode.svg
  32. 1 0
      out/static/image/theme_default/indicator.svg
  33. 1 0
      out/static/image/theme_default/light_mode.svg
  34. 1 0
      out/static/image/theme_default/menu.svg
  35. 1 0
      out/static/image/theme_default/print.svg
  36. 1 0
      out/static/image/theme_default/to-top.svg
  37. 0 0
      out/static/js/custom.js
  38. 247 0
      out/static/js/live.js
  39. 351 0
      out/static/js/search/search_main.js
  40. 1 0
      out/static/js/theme_default/jquery.min.js
  41. 474 0
      out/static/js/theme_default/main.js
  42. 54 0
      out/static/js/theme_default/pre_main.js
  43. 1 0
      out/static/js/theme_default/split.js
  44. 0 0
      out/static/js/theme_default/tocbot.min.js
  45. 9 0
      out/static/js/theme_default/viewer.min.js
  46. 1 0
      out/static/search_index/index.json
  47. 1 0
      out/static/search_index/index_0.json
  48. 1 0
      out/static/search_index/index_1.json
  49. 1 0
      out/teedoc-plugin-markdown-parser/mermaid.min.js
  50. 4 0
      pages/index/404.md
  51. 19 0
      pages/index/README.md
  52. 5 0
      pages/index/config.json
  53. BIN
      pages/index/favicon.ico
  54. 66 0
      site_config.json
  55. 15 0
      static/css/custom.css
  56. 0 0
      static/js/custom.js

+ 39 - 0
config/config.json

@@ -0,0 +1,39 @@
+{
+    "locale": "en",
+    "navbar": {
+        "title": "my_site",
+        "logo": {
+            "alt": "my_site logo",
+            "url": ""
+        },
+        "home_url": "/",
+        "items": [
+            {
+                "url": "/doc1/",
+                "label": "Doc1",
+                "position": "left"
+            }
+        ]
+    },
+    "footer":{
+        "top":[
+            {
+                "label": "",
+                "items": [
+                    {
+                        "label": "",
+                        "url": "#",
+                        "target": "_blank"
+                    }
+                ]
+            }
+        ],
+        "bottom": [
+            {
+                "label": "Generated by teedoc",
+                "url": "https://github.com/teedoc/teedoc",
+                "target": "_blank"
+            }
+        ]
+    }
+}

+ 50 - 0
docs/doc1/README.md

@@ -0,0 +1,50 @@
+---
+title: Article title
+keywords: keyword1, keyword2
+desc: description for this article
+date: 2022-09-01
+---
+
+
+## Add article
+
+* Create markdown file with file name end with `.md` in the directory of this file, e.g. `first.md`
+* Add link in `sidebar.yaml`
+
+```markdown
+items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+```
+
+## More example
+
+More visit: [teedoc.neucrack.com](https://teedoc.neucrack.com/) or [teedoc.github.io](https://teedoc.github.io/)
+
+And more example see: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) and [https://github.com/teedoc/template](https://github.com/teedoc/template) , and [sipeed wiki](https://github.com/sipeed/sipeed_wiki)
+
+-------
+
+
+## 添加文章
+
+* 在本文件所在目录创建 markdown 以  `.md` 结尾的文件,比如 `first.md`
+* 在 `sidebar.yaml` 中添加侧边栏链接
+
+```markdown
+items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+```
+
+## 更多例子
+
+更多请访问: [teedoc.neucrack.com](https://teedoc.neucrack.com/) 或者 [teedoc.github.io](https://teedoc.github.io/)
+
+更多例子访问: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) 或者 [https://github.com/teedoc/template](https://github.com/teedoc/template) , 或 [sipeed wiki](https://github.com/sipeed/sipeed_wiki)
+
+

+ 4 - 0
docs/doc1/config.json

@@ -0,0 +1,4 @@
+{
+    "import": "config",
+    "name": "Doc1"
+}

+ 3 - 0
docs/doc1/sidebar.yaml

@@ -0,0 +1,3 @@
+items:
+-   label: Brief
+    file: README.md

+ 50 - 0
docs/doc2/README.md

@@ -0,0 +1,50 @@
+---
+title: Article title
+keywords: keyword1, keyword2
+desc: description for this article
+date: 2022-09-01
+---
+
+
+## Add article
+
+* Create markdown file with file name end with `.md` in the directory of this file, e.g. `first.md`
+* Add link in `sidebar.yaml`
+
+```markdown
+items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+```
+
+## More example
+
+More visit: [teedoc.neucrack.com](https://teedoc.neucrack.com/) or [teedoc.github.io](https://teedoc.github.io/)
+
+And more example see: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) and [https://github.com/teedoc/template](https://github.com/teedoc/template) , and [sipeed wiki](https://github.com/sipeed/sipeed_wiki)
+
+-------
+
+
+## 添加文章
+
+* 在本文件所在目录创建 markdown 以  `.md` 结尾的文件,比如 `first.md`
+* 在 `sidebar.yaml` 中添加侧边栏链接
+
+```markdown
+items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+```
+
+## 更多例子
+
+更多请访问: [teedoc.neucrack.com](https://teedoc.neucrack.com/) 或者 [teedoc.github.io](https://teedoc.github.io/)
+
+更多例子访问: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) 或者 [https://github.com/teedoc/template](https://github.com/teedoc/template) , 或 [sipeed wiki](https://github.com/sipeed/sipeed_wiki)
+
+

+ 4 - 0
docs/doc2/config.json

@@ -0,0 +1,4 @@
+{
+    "import": "config",
+    "name": "Doc1"
+}

+ 3 - 0
docs/doc2/sidebar.yaml

@@ -0,0 +1,3 @@
+items:
+-   label: Brief
+    file: README.md

+ 177 - 0
out/404.html

@@ -0,0 +1,177 @@
+
+<!DOCTYPE html>
+
+<html lang="en"  class=" md_page ">
+
+<head>
+     
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta name="keywords" content="">
+        <meta name="description" content="">
+        <meta name="generator" content="teedoc">
+        <meta name="theme" content="teedoc-plugin-theme-default">
+    
+     
+        <meta name="markdown-generator" content="teedoc-plugin-markdown-parser"><script>
+MathJax = {"loader": {"load": ["output/svg"]}, "tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]]}, "svg": {"fontCache": "global"}};
+</script><script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script><script src="/static/js/theme_default/pre_main.js"></script><link rel="stylesheet" href="/static/css/theme_default/prism.min.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/viewer.min.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/dark.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/light.css" type="text/css"/><script src="/static/js/theme_default/jquery.min.js"></script><script src="/static/js/theme_default/split.js"></script><link rel="stylesheet" href="/static/css/search/style.css" type="text/css"/><link rel="stylesheet" href="/static/css/custom.css" type="text/css"/>
+    
+    
+        <title>mysite</title>
+    
+    
+<script>
+  function getQueryVariable(variable)
+  {
+      var query = window.location.search.substring(1);
+      var vars = query.split("&");
+      for (var i=0;i<vars.length;i++) {
+              var pair = vars[i].split("=");
+              if(pair[0] == variable){return pair[1];}
+      }
+      return(false);
+  }
+  var jump = getQueryVariable("jump");
+  var from = getQueryVariable("from");
+  var pageLang = a=document.getElementsByTagName("html")[0].lang.toLowerCase(); // en -> zh-cn
+  var browerLang =(navigator.language || navigator.browserLanguage).toLowerCase();    // zh-cn
+  if(!from){
+    from = document.referrer;
+  }
+  if(pageLang && browerLang!=pageLang){
+    var idx = browerLang.indexOf("-");
+    if(!jump){
+      if(idx > 0){ // zh-cn, jump to /zh_CN/404.html?jump=1
+        var url = "/" + browerLang.substr(0, idx) + "_" + browerLang.substr(idx + 1).toUpperCase() + "/404.html?jump=1&from="+from;
+        window.location.href=url;
+      }else{       // /zh/404.html?jump=5
+        var url = "/" + browerLang + "/404.html?jump=5&from="+from;
+        window.location.href=url;
+      }
+    }else if(jump == "1"){ // /zh-CN/404.html?jump=2
+      var url = "/" + browerLang.substr(0, idx) + "-" + browerLang.substr(idx + 1).toUpperCase() + "/404.html?jump=2&from="+from;
+      window.location.href=url;
+    }else if(jump == "2"){ // /zh-cn/404.html?jump=3
+      var url = "/" + browerLang.substr(0, idx) + "-" + browerLang.substr(idx + 1).toLowerCase() + "/404.html?jump=3&from="+from;
+      window.location.href=url;
+    }else if(jump == "3"){ // /zh_cn/404.html?jump=4
+      var url = "/" + browerLang.substr(0, idx) + "_" + browerLang.substr(idx + 1).toLowerCase() + "/404.html?jump=4&from="+from;
+      window.location.href=url;
+    }else if(jump == "4"){ // /zh/404.html?jump=5
+      var url = "/" + browerLang.substr(0, idx) + "/404.html?jump=5&from="+from;
+      window.location.href=url;
+    }
+  }
+</script>
+
+    <script type="text/javascript">js_vars = {}</script>
+</head>
+<body class="type_page">
+    
+    <div id="navbar">
+        <div id="navbar_menu">
+            <a class="site_title" href="/">
+                
+                
+                    <h2>my_site</h2>
+                
+        </a>
+            <a id="navbar_menu_btn"></a>
+        </div>
+        <div id="navbar_items">
+            <div>
+                <ul id="nav_left">
+<li class=""><a  href="/doc1/">Doc1</a></li>
+</ul>
+
+            </div>
+            <div>
+                <ul id="nav_right">
+</ul>
+
+                <ul class="nav_plugins"><li><a id="themes" class="light"></a></li></ul><ul class="nav_plugins"><li><a id="search"><span class="icon"></span><span class="placeholder">Search</span>
+                            <div id="search_hints">
+                                <span id="search_input_hint">Keywords separated by space</span>
+                                <span id="search_loading_hint">Loading, wait please ...</span>
+                                <span id="search_download_err_hint">Download error, please check network and refresh again</span>
+                                <span id="search_other_docs_result_hint">Result from other docs</span>
+                                <span id="search_curr_doc_result_hint">Result from current doc</span>
+                            </div></a></li></ul>
+            </div>
+        </div>
+    </div>
+    
+    <div id="page_wrapper">
+        <div id="page_content">
+            <div>
+                
+  
+    <h1 style="width: 100%; text-align: center;">404 Page not found</h1>
+  
+  
+    
+  
+  
+  <div style="text-align:center;padding:1em;">
+      <a class="btn" id="previous_btn">Return to previous page</a> <a class="btn" href="/">Home</a>
+  </div>
+  <script>
+    var btn = document.getElementById("previous_btn");
+    btn.onclick = function(){
+      if(from.indexOf("/404.html") >= 0){
+        from = "/";
+      }
+      window.location.href=from;
+    };
+  </script>
+  
+
+            </div>
+        </div>
+        <a id="to_top" href="#"></a>
+        <div id="page_footer">
+            <div id="footer">
+                
+                <div id="footer_top">
+                    <ul>
+<li><a></a><ul><li><a target="_blank" href="/#"></a></li>
+</ul>
+</li>
+</ul>
+
+                </div>
+                <div id="footer_bottom">
+                    <ul>
+<li><a target="_blank" href="https://github.com/teedoc/teedoc">Generated by teedoc</a></li>
+</ul>
+
+                </div>
+                
+            </div>
+        </div>
+    </div>
+
+    
+    
+        <script src="/teedoc-plugin-markdown-parser/mermaid.min.js"></script>
+    
+        <script>mermaid.initialize({startOnLoad:true});</script>
+    
+        <script src="/static/js/theme_default/tocbot.min.js"></script>
+    
+        <script src="/static/js/theme_default/main.js"></script>
+    
+        <script src="/static/js/theme_default/viewer.min.js"></script>
+    
+        <script src="/static/css/theme_default/prism.min.js"></script>
+    
+        <script src="/static/js/search/search_main.js"></script>
+    
+        <script src="/static/js/custom.js"></script>
+    
+        <script type="text/javascript" src="/static/js/live.js"></script>
+    
+    
+</body>
+</html>

+ 5 - 0
out/config.json

@@ -0,0 +1,5 @@
+{
+    "import": "config",
+    "class": "md_page",
+    "name": "Pages"
+}

+ 237 - 0
out/doc1 copy/index.html

@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+
+<html lang="en"  class="">
+
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    
+    <meta name="keywords" content="keyword1,  keyword2">
+    
+    
+    <meta name="description" content="description for this article">
+    
+    <meta name="generator" content="teedoc">
+    <meta name="theme" content="teedoc-plugin-theme-default">
+    
+        
+        <meta name="markdown-generator" content="teedoc-plugin-markdown-parser">
+        
+        <script>
+MathJax = {"loader": {"load": ["output/svg"]}, "tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]]}, "svg": {"fontCache": "global"}};
+</script>
+        
+        <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+        
+        <script src="/static/js/theme_default/pre_main.js"></script>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/prism.min.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/viewer.min.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/dark.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/light.css" type="text/css"/>
+        
+        <script src="/static/js/theme_default/jquery.min.js"></script>
+        
+        <script src="/static/js/theme_default/split.js"></script>
+        
+        <link rel="stylesheet" href="/static/css/search/style.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/custom.css" type="text/css"/>
+        
+    
+    
+    <title>Article title - mysite</title>
+    
+    <script type="text/javascript">js_vars = {}</script>
+</head>
+
+
+<body class="type_doc">
+    
+    <div id="navbar">
+        <div id="navbar_menu">
+            <a class="site_title" href="/">
+                
+                
+                    <h2>my_site</h2>
+                
+        </a>
+            <a id="navbar_menu_btn"></a>
+        </div>
+        <div id="navbar_items">
+            <div>
+                <ul id="nav_left">
+<li class="active"><a  href="/doc1/">Doc1</a></li>
+</ul>
+
+            </div>
+            <div>
+                <ul id="nav_right">
+</ul>
+
+                <ul class="nav_plugins"><li><a id="themes" class="light"></a></li></ul><ul class="nav_plugins"><li><a id="search"><span class="icon"></span><span class="placeholder">Search</span>
+                            <div id="search_hints">
+                                <span id="search_input_hint">Keywords separated by space</span>
+                                <span id="search_loading_hint">Loading, wait please ...</span>
+                                <span id="search_download_err_hint">Download error, please check network and refresh again</span>
+                                <span id="search_other_docs_result_hint">Result from other docs</span>
+                                <span id="search_curr_doc_result_hint">Result from current doc</span>
+                            </div></a></li></ul>
+            </div>
+        </div>
+    </div>
+    
+    <div id="wrapper">
+        <div id="sidebar_wrapper">
+            <div id="sidebar">
+                <div id="sidebar_title">
+                    
+                </div>
+                <ul class="">
+<li class="not_active with_link"><a href="/doc1/index.html"><span class="label">Brief</span><span class=""></span></a></li>
+</ul>
+
+            </div>
+        </div>
+        <div id="article">
+            <div id="menu_wrapper">
+                <div id="menu">
+                </div>
+            </div>
+            <div id="content_wrapper">
+                <div id="content_body">
+                    <div id="article_head">
+                        <div id="article_title">
+                            
+                            <h1>Article title</h1>
+                            
+                        </div>
+                        <div id="article_tags">
+                            <ul>
+                            
+                            </ul>
+                        </div>
+                        <div id="article_info">
+                        <div id="article_info_left">
+                            <span class="article_author">
+                                
+                            </span>
+                            
+                                <span class="article_date" title="Last modify date: 2022-09-01">
+                                    2022-09-01
+                                </span>
+                            
+                        </div>
+                        <div id="article_info_right">
+                            
+                        </div>
+                        </div>
+                    </div>
+                    <div id="article_tools">
+                        <span></span>
+                        <span id="toc_btn"></span>
+                    </div>
+                    <div id="update_history">
+                        
+                    </div>
+                    <div id="article_content">
+                        
+                            <h2 id="Add-article">Add article</h2>
+<ul>
+<li>Create markdown file with file name end with <code>.md</code> in the directory of this file, e.g. <code>first.md</code></li>
+<li>Add link in <code>sidebar.yaml</code></li>
+</ul>
+
+<pre class="language-markdown"><code class="language-markdown">items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+</code></pre>
+<h2 id="More-example">More example</h2>
+<p>More visit: <a href="https://teedoc.neucrack.com/"  target="_blank">teedoc.neucrack.com</a> or <a href="https://teedoc.github.io/"  target="_blank">teedoc.github.io</a></p>
+<p>And more example see: <a href="https://github.com/teedoc/teedoc.github.io"  target="_blank">github.com/teedoc/teedoc.github.io</a> and <a href="https://github.com/teedoc/template"  target="_blank">https://github.com/teedoc/template</a> , and <a href="https://github.com/sipeed/sipeed_wiki"  target="_blank">sipeed wiki</a></p>
+<hr />
+<h2 id="%E6%B7%BB%E5%8A%A0%E6%96%87%E7%AB%A0">添加文章</h2>
+<ul>
+<li>在本文件所在目录创建 markdown 以  <code>.md</code> 结尾的文件,比如 <code>first.md</code></li>
+<li>在 <code>sidebar.yaml</code> 中添加侧边栏链接</li>
+</ul>
+
+<pre class="language-markdown"><code class="language-markdown">items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+</code></pre>
+<h2 id="%E6%9B%B4%E5%A4%9A%E4%BE%8B%E5%AD%90">更多例子</h2>
+<p>更多请访问: <a href="https://teedoc.neucrack.com/"  target="_blank">teedoc.neucrack.com</a> 或者 <a href="https://teedoc.github.io/"  target="_blank">teedoc.github.io</a></p>
+<p>更多例子访问: <a href="https://github.com/teedoc/teedoc.github.io"  target="_blank">github.com/teedoc/teedoc.github.io</a> 或者 <a href="https://github.com/teedoc/template"  target="_blank">https://github.com/teedoc/template</a> , 或 <a href="https://github.com/sipeed/sipeed_wiki"  target="_blank">sipeed wiki</a></p>
+
+                        
+                    </div>
+                </div>
+                <div id="previous_next">
+                    <div id="previous">
+                        
+                    </div>
+                    <div id="next">
+                        
+                    </div>
+                </div>
+                <div id="comments-container"></div>
+            </div>
+            <div id="toc_wrapper">
+                <div id="toc">
+                    <div id="toc_content">
+                            
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <a id="to_top" href="#"></a>
+    <div id="doc_footer">
+        <div id="footer">
+            <div id="footer_top">
+                <ul>
+<li><a></a><ul><li><a target="_blank" href="/#"></a></li>
+</ul>
+</li>
+</ul>
+
+            </div>
+            <div id="footer_bottom">
+                <ul>
+<li><a target="_blank" href="https://github.com/teedoc/teedoc">Generated by teedoc</a></li>
+</ul>
+
+            </div>
+        </div>
+    </div>
+    
+        <script src="/teedoc-plugin-markdown-parser/mermaid.min.js"></script>
+    
+        <script>mermaid.initialize({startOnLoad:true});</script>
+    
+        <script src="/static/js/theme_default/tocbot.min.js"></script>
+    
+        <script src="/static/js/theme_default/main.js"></script>
+    
+        <script src="/static/js/theme_default/viewer.min.js"></script>
+    
+        <script src="/static/css/theme_default/prism.min.js"></script>
+    
+        <script src="/static/js/search/search_main.js"></script>
+    
+        <script src="/static/js/custom.js"></script>
+    
+        <script type="text/javascript" src="/static/js/live.js"></script>
+    
+</body>
+
+</html>

+ 4 - 0
out/doc1/config.json

@@ -0,0 +1,4 @@
+{
+    "import": "config",
+    "name": "Doc1"
+}

+ 237 - 0
out/doc1/index.html

@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+
+<html lang="en"  class="">
+
+
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    
+    <meta name="keywords" content="keyword1,  keyword2">
+    
+    
+    <meta name="description" content="description for this article">
+    
+    <meta name="generator" content="teedoc">
+    <meta name="theme" content="teedoc-plugin-theme-default">
+    
+        
+        <meta name="markdown-generator" content="teedoc-plugin-markdown-parser">
+        
+        <script>
+MathJax = {"loader": {"load": ["output/svg"]}, "tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]]}, "svg": {"fontCache": "global"}};
+</script>
+        
+        <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
+        
+        <script src="/static/js/theme_default/pre_main.js"></script>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/prism.min.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/viewer.min.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/dark.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/theme_default/light.css" type="text/css"/>
+        
+        <script src="/static/js/theme_default/jquery.min.js"></script>
+        
+        <script src="/static/js/theme_default/split.js"></script>
+        
+        <link rel="stylesheet" href="/static/css/search/style.css" type="text/css"/>
+        
+        <link rel="stylesheet" href="/static/css/custom.css" type="text/css"/>
+        
+    
+    
+    <title>Article title - mysite</title>
+    
+    <script type="text/javascript">js_vars = {}</script>
+</head>
+
+
+<body class="type_doc">
+    
+    <div id="navbar">
+        <div id="navbar_menu">
+            <a class="site_title" href="/">
+                
+                
+                    <h2>my_site</h2>
+                
+        </a>
+            <a id="navbar_menu_btn"></a>
+        </div>
+        <div id="navbar_items">
+            <div>
+                <ul id="nav_left">
+<li class="active"><a  href="/doc1/">Doc1</a></li>
+</ul>
+
+            </div>
+            <div>
+                <ul id="nav_right">
+</ul>
+
+                <ul class="nav_plugins"><li><a id="themes" class="light"></a></li></ul><ul class="nav_plugins"><li><a id="search"><span class="icon"></span><span class="placeholder">Search</span>
+                            <div id="search_hints">
+                                <span id="search_input_hint">Keywords separated by space</span>
+                                <span id="search_loading_hint">Loading, wait please ...</span>
+                                <span id="search_download_err_hint">Download error, please check network and refresh again</span>
+                                <span id="search_other_docs_result_hint">Result from other docs</span>
+                                <span id="search_curr_doc_result_hint">Result from current doc</span>
+                            </div></a></li></ul>
+            </div>
+        </div>
+    </div>
+    
+    <div id="wrapper">
+        <div id="sidebar_wrapper">
+            <div id="sidebar">
+                <div id="sidebar_title">
+                    
+                </div>
+                <ul class="show">
+<li class="active with_link"><a href="/doc1/index.html"><span class="label">Brief</span><span class=""></span></a></li>
+</ul>
+
+            </div>
+        </div>
+        <div id="article">
+            <div id="menu_wrapper">
+                <div id="menu">
+                </div>
+            </div>
+            <div id="content_wrapper">
+                <div id="content_body">
+                    <div id="article_head">
+                        <div id="article_title">
+                            
+                            <h1>Article title</h1>
+                            
+                        </div>
+                        <div id="article_tags">
+                            <ul>
+                            
+                            </ul>
+                        </div>
+                        <div id="article_info">
+                        <div id="article_info_left">
+                            <span class="article_author">
+                                
+                            </span>
+                            
+                                <span class="article_date" title="Last modify date: 2022-09-01">
+                                    2022-09-01
+                                </span>
+                            
+                        </div>
+                        <div id="article_info_right">
+                            
+                        </div>
+                        </div>
+                    </div>
+                    <div id="article_tools">
+                        <span></span>
+                        <span id="toc_btn"></span>
+                    </div>
+                    <div id="update_history">
+                        
+                    </div>
+                    <div id="article_content">
+                        
+                            <h2 id="Add-article">Add article</h2>
+<ul>
+<li>Create markdown file with file name end with <code>.md</code> in the directory of this file, e.g. <code>first.md</code></li>
+<li>Add link in <code>sidebar.yaml</code></li>
+</ul>
+
+<pre class="language-markdown"><code class="language-markdown">items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+</code></pre>
+<h2 id="More-example">More example</h2>
+<p>More visit: <a href="https://teedoc.neucrack.com/"  target="_blank">teedoc.neucrack.com</a> or <a href="https://teedoc.github.io/"  target="_blank">teedoc.github.io</a></p>
+<p>And more example see: <a href="https://github.com/teedoc/teedoc.github.io"  target="_blank">github.com/teedoc/teedoc.github.io</a> and <a href="https://github.com/teedoc/template"  target="_blank">https://github.com/teedoc/template</a> , and <a href="https://github.com/sipeed/sipeed_wiki"  target="_blank">sipeed wiki</a></p>
+<hr />
+<h2 id="%E6%B7%BB%E5%8A%A0%E6%96%87%E7%AB%A0">添加文章</h2>
+<ul>
+<li>在本文件所在目录创建 markdown 以  <code>.md</code> 结尾的文件,比如 <code>first.md</code></li>
+<li>在 <code>sidebar.yaml</code> 中添加侧边栏链接</li>
+</ul>
+
+<pre class="language-markdown"><code class="language-markdown">items:
+-   label: Brief
+    file: README.md
+-   label: First
+    file: first.md
+</code></pre>
+<h2 id="%E6%9B%B4%E5%A4%9A%E4%BE%8B%E5%AD%90">更多例子</h2>
+<p>更多请访问: <a href="https://teedoc.neucrack.com/"  target="_blank">teedoc.neucrack.com</a> 或者 <a href="https://teedoc.github.io/"  target="_blank">teedoc.github.io</a></p>
+<p>更多例子访问: <a href="https://github.com/teedoc/teedoc.github.io"  target="_blank">github.com/teedoc/teedoc.github.io</a> 或者 <a href="https://github.com/teedoc/template"  target="_blank">https://github.com/teedoc/template</a> , 或 <a href="https://github.com/sipeed/sipeed_wiki"  target="_blank">sipeed wiki</a></p>
+
+                        
+                    </div>
+                </div>
+                <div id="previous_next">
+                    <div id="previous">
+                        
+                    </div>
+                    <div id="next">
+                        
+                    </div>
+                </div>
+                <div id="comments-container"></div>
+            </div>
+            <div id="toc_wrapper">
+                <div id="toc">
+                    <div id="toc_content">
+                            
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <a id="to_top" href="#"></a>
+    <div id="doc_footer">
+        <div id="footer">
+            <div id="footer_top">
+                <ul>
+<li><a></a><ul><li><a target="_blank" href="/#"></a></li>
+</ul>
+</li>
+</ul>
+
+            </div>
+            <div id="footer_bottom">
+                <ul>
+<li><a target="_blank" href="https://github.com/teedoc/teedoc">Generated by teedoc</a></li>
+</ul>
+
+            </div>
+        </div>
+    </div>
+    
+        <script src="/teedoc-plugin-markdown-parser/mermaid.min.js"></script>
+    
+        <script>mermaid.initialize({startOnLoad:true});</script>
+    
+        <script src="/static/js/theme_default/tocbot.min.js"></script>
+    
+        <script src="/static/js/theme_default/main.js"></script>
+    
+        <script src="/static/js/theme_default/viewer.min.js"></script>
+    
+        <script src="/static/css/theme_default/prism.min.js"></script>
+    
+        <script src="/static/js/search/search_main.js"></script>
+    
+        <script src="/static/js/custom.js"></script>
+    
+        <script type="text/javascript" src="/static/js/live.js"></script>
+    
+</body>
+
+</html>

+ 3 - 0
out/doc1/sidebar.yaml

@@ -0,0 +1,3 @@
+items:
+-   label: Brief
+    file: README.md

BIN
out/favicon.ico


+ 121 - 0
out/index.html

@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+
+<html lang="en"  id="home_page"  class=" md_page ">
+
+<head>
+     
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+        <meta name="viewport" content="width=device-width, initial-scale=1.0">
+        <meta name="keywords" content="my_site">
+        <meta name="description" content="my_site, generated with teedoc, a static site generator">
+        <meta name="generator" content="teedoc">
+        <meta name="theme" content="teedoc-plugin-theme-default">
+    
+     
+        <meta name="markdown-generator" content="teedoc-plugin-markdown-parser"><script>
+MathJax = {"loader": {"load": ["output/svg"]}, "tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]]}, "svg": {"fontCache": "global"}};
+</script><script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script><script src="/static/js/theme_default/pre_main.js"></script><link rel="stylesheet" href="/static/css/theme_default/prism.min.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/viewer.min.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/dark.css" type="text/css"/><link rel="stylesheet" href="/static/css/theme_default/light.css" type="text/css"/><script src="/static/js/theme_default/jquery.min.js"></script><script src="/static/js/theme_default/split.js"></script><link rel="stylesheet" href="/static/css/search/style.css" type="text/css"/><link rel="stylesheet" href="/static/css/custom.css" type="text/css"/>
+    
+    
+        <title>my_site - mysite</title>
+    
+    
+    
+    <script type="text/javascript">js_vars = {}</script>
+</head>
+<body class="type_page">
+    
+    <div id="navbar">
+        <div id="navbar_menu">
+            <a class="site_title" href="/">
+                
+                
+                    <h2>my_site</h2>
+                
+        </a>
+            <a id="navbar_menu_btn"></a>
+        </div>
+        <div id="navbar_items">
+            <div>
+                <ul id="nav_left">
+<li class=""><a  href="/doc1/">Doc1</a></li>
+</ul>
+
+            </div>
+            <div>
+                <ul id="nav_right">
+</ul>
+
+                <ul class="nav_plugins"><li><a id="themes" class="light"></a></li></ul><ul class="nav_plugins"><li><a id="search"><span class="icon"></span><span class="placeholder">Search</span>
+                            <div id="search_hints">
+                                <span id="search_input_hint">Keywords separated by space</span>
+                                <span id="search_loading_hint">Loading, wait please ...</span>
+                                <span id="search_download_err_hint">Download error, please check network and refresh again</span>
+                                <span id="search_other_docs_result_hint">Result from other docs</span>
+                                <span id="search_curr_doc_result_hint">Result from current doc</span>
+                            </div></a></li></ul>
+            </div>
+        </div>
+    </div>
+    
+    <div id="page_wrapper">
+        <div id="page_content">
+            <div>
+                
+                <div>
+    <h1><span>my_site</span></h1>
+    <h3>好耶~ 网站出现啦!123</h3>
+</div>
+<div id="big_btn_wrapper">
+    <a class="btn" href="/doc1/">See Doc1</a>
+</div>
+
+                
+            </div>
+        </div>
+        <a id="to_top" href="#"></a>
+        <div id="page_footer">
+            <div id="footer">
+                
+                <div id="footer_top">
+                    <ul>
+<li><a></a><ul><li><a target="_blank" href="/#"></a></li>
+</ul>
+</li>
+</ul>
+
+                </div>
+                <div id="footer_bottom">
+                    <ul>
+<li><a target="_blank" href="https://github.com/teedoc/teedoc">Generated by teedoc</a></li>
+</ul>
+
+                </div>
+                
+            </div>
+        </div>
+    </div>
+
+    
+    
+        <script src="/teedoc-plugin-markdown-parser/mermaid.min.js"></script>
+    
+        <script>mermaid.initialize({startOnLoad:true});</script>
+    
+        <script src="/static/js/theme_default/tocbot.min.js"></script>
+    
+        <script src="/static/js/theme_default/main.js"></script>
+    
+        <script src="/static/js/theme_default/viewer.min.js"></script>
+    
+        <script src="/static/css/theme_default/prism.min.js"></script>
+    
+        <script src="/static/js/search/search_main.js"></script>
+    
+        <script src="/static/js/custom.js"></script>
+    
+        <script type="text/javascript" src="/static/js/live.js"></script>
+    
+    
+</body>
+</html>

+ 2 - 0
out/robots.txt

@@ -0,0 +1,2 @@
+User-agent: *
+Sitemap: https://my_name.github.io/sitemap.xml

+ 15 - 0
out/static/css/custom.css

@@ -0,0 +1,15 @@
+
+
+#home_page h1 {
+    color: #4caf7d;
+}
+.dark #home_page h1{
+    color: white;
+}
+
+@media screen and (max-width: 900px) {
+    #home_page h1 {
+        color: #eb4848;
+    }
+}
+

+ 330 - 0
out/static/css/search/style.css

@@ -0,0 +1,330 @@
+/**
+    teedoc search plugin css
+    @author neucrack
+    @copyright (c) neucrack CZD666666@gmail.com with MIT License
+    @changes 2021.2.1  add basic attrributes
+ */
+.blur {
+    -webkit-filter: blur(9px);
+    filter: blur(9px);
+}
+.pointer {
+    cursor: pointer;
+}
+.dark #search {
+    background-color: #2d2d2d;
+}
+#search {
+    border-radius: 2em;
+    background-color: #f1f1f1;
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+    transition: 0.4s;
+}
+
+#search .icon {
+    transition: transform 0.4s linear;
+    background: url("/static/image/search/search.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    align-self: center;
+    min-height: 1.8rem;
+    min-width: 1.8rem;
+    transition: 0.2s;
+}
+#search .placeholder {
+    padding: 0 1em;
+    color: #a5a5a5;
+}
+#search_hints {
+    display: none;
+}
+
+#search_wrapper {
+    display: none;
+    position: fixed;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    background-color: rgba(0, 0, 0, 0.73);
+    z-index: 100;
+}
+.dark #search_wrapper {
+    background-color: transparent;
+}
+#search_wrapper input:focus{
+    outline: none;
+    border: 1px solid #58b195;
+}
+#search_wrapper .close {
+    background: url("/static/image/search/close.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    border-radius: 0.5em;
+    min-height: 2.5rem;
+    min-width: 2.5rem;
+    z-index: 100;
+    position: fixed;
+    top: 3em;
+    right: 3em;
+    cursor: pointer;
+}
+#search_title {
+    margin: 1em;
+}
+#search_wrapper #search_title > div {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+}
+#search_wrapper input {
+    height: 60px;
+    width: 60%;
+    border: none;
+    border-radius: 0.5em;
+    margin: 0;
+    text-align: center;
+    color: #222222;
+    font-size: 1.2em;
+    display: inline-block;
+    box-shadow: 0 0 12px 0 #e8e8e8;
+}
+.dark #search_wrapper input {
+    box-shadow: 0 0 12px 0 #000000;
+    background-color: black;
+    color: white;
+}
+#search_wrapper > div {
+    display: flex;
+    height: 100%;
+}
+#search_wrapper #search_content {
+    display: flex;
+    flex-direction: column;
+    width: 75%;
+    height: 100%;
+    background-color: white;
+    margin: auto;
+    padding: 0;
+    border-radius: 0.5em;
+}
+.dark #search_wrapper #search_content {
+    background-color: #3c3c3c;
+}
+#search_result {
+    height: 100%;
+    display: flex;
+    flex-direction: row;
+    overflow: auto;
+}
+#search_result h1 {
+    font-size: 1.2em;
+}
+#search_result_name {
+    overflow-y: auto;
+    min-width: max-content;
+}
+#search_result_content {
+    overflow-y: auto;
+    flex-grow: 1;
+}
+#search_result ul {
+    padding-left: 0;
+    list-style: none;
+}
+#search_result li {
+    box-shadow: 0 0 10px #e0e0e0;
+    list-style: none;
+    padding: 1em;
+    margin: 1em;
+    border-radius: 0.5em;
+    transition: 0.4s;
+    background-color: white;
+}
+.dark #search_result li {
+    background-color: #2d2d2d;
+    box-shadow: 0 0 2px #000000;
+}
+#search_result #search_result_name li {
+    margin: 0.5em 1em 0.5em 0;
+    background: #4caf7d;
+    color: white;
+    border-radius: 0;
+}
+.dark #search_result #search_result_name li {
+    background: #1b4c33;
+}
+#search_result #search_result_name li:hover {
+    margin-right: 0;
+}
+#search_result li:hover {
+    box-shadow: 0px 5px 14px #868686;
+}
+.dark #search_result li:hover{
+    box-shadow: 0px 5px 14px #1d1d1d;
+}
+
+#search_result code {
+    background-color: #4caf7d;
+    color: white;
+    border-radius: 0.2em;
+    padding: 0.1em;
+}
+#search_result .loading_hint {
+    color: red;
+}
+#search_curr_result {
+    margin-top: 0;
+    padding-bottom: 3em;
+    border: 1px solid #4caf7d;
+    border-radius: 5px;
+}
+#search_others_result {
+    padding-bottom: 3em;
+    border: 1px solid #bdbdbd;
+    border-radius: 5px;
+}
+.dark #search_curr_result {
+    border: 1px solid #1b4c33;
+}
+.dark #search_others_result {
+    border: 1px solid #696969;
+}
+#search_curr_result:first-child,
+#search_others_result:first-child {
+    border-radius: 5px;
+}
+#search_result .hint {
+    height: 2em;
+    color: white;
+    font-size: 1.5em;
+    display: flex;
+    justify-content: center;
+    flex-direction: column;
+    text-align: center;
+    border-top: none;
+    box-shadow: 0 6px 7px rgba(76, 175, 125, 0.38);
+    background: #4caf7d;
+}
+.dark #search_result .hint {
+    background: #1b4c33;
+}
+#search_curr_result > .hint {
+    background-color: #4caf7d;
+}
+#search_curr_result  .searching {
+    background-color: #ff9800;
+}
+.search_highlight {
+    background-color: #FFEB3B;
+    border-radius: 0.2em;
+    padding: 0.1em;
+
+}
+.dark .search_highlight{
+    color: #1b1b1b;
+}
+.selected_highlight {
+    background-color: #ff9823;
+}
+
+#search_ctrl_btn {
+    position: fixed;
+    top: 2em;
+    right: 1em;
+    display: flex;
+    flex-direction: row;
+    z-index: 999;
+    user-select: none;
+}
+#search_ctrl_btn > div {
+    border-radius: 0.2em;
+    min-width: 5em;
+    min-height: 2.5em;
+    background-color: #fae94e;
+    margin: 0.2em;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+    justify-content: center;
+    padding: 0.2em;
+    cursor: pointer;
+    box-shadow: 0 0 12px 0 rgb(0, 0, 0, 0.06);
+    transition: 0.4s;
+    color: #8b7000;
+}
+#search_ctrl_btn > div:hover {
+    box-shadow: 0 0 12px 0 rgb(0, 0, 0, 0.2);
+}
+#search_ctrl_btn > .previous .icon {
+    background-image: url("/static/image/search/up.svg");
+    -ms-transform: rotate(270deg);
+    -moz-transform: rotate(270deg);
+    -webkit-transform: rotate(270deg);
+    transform: rotate(270deg);
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 1.5em;
+    min-width: 1.5em;
+    height: 1.5em;
+    width: 1.5em;
+}
+#search_ctrl_btn > .next .icon {
+    background-image: url("/static/image/search/up.svg");
+    -ms-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -webkit-transform: rotate(90deg);
+    transform: rotate(90deg);
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 1.5em;
+    min-width: 1.5em;
+    height: 1.5em;
+    width: 1.5em;
+}
+
+#remove_search > .icon {
+    background-image: url("/static/image/search/cancel.svg");
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 1.5em;
+    min-width: 1.5em;
+    height: 1.5em;
+    width: 1.5em;
+}
+
+
+@media screen and (max-width: 900px) {
+    #search_wrapper #search_content {
+        width: 100%;
+        height: 100%;
+        border-radius: 0;
+    }
+    #search_wrapper input {
+        font-size: 0.8em;
+    }
+    #search_wrapper .close {
+        top: 1.5em;
+        right: 1em;
+    }
+    #search_result li {
+        margin: 0;
+    }
+    #search_result #search_result_name li {
+        font-size: 0.8em;
+    }
+    #search_curr_result > .hint {
+        font-size: 1.2em;
+    }
+    #search_result .hint {
+        font-size: 1.2em;
+    }
+}

+ 169 - 0
out/static/css/theme_default/dark.css

@@ -0,0 +1,169 @@
+/**
+    teedoc light theme css
+    @author neucrack
+    @copyright (c) neucrack CZD666666@gmail.com with MIT License
+    @changes 2021.1.27  add basic attrributes
+ */
+
+ /*
+    use .dark class to cover light theme style
+  */
+
+/* global template */
+.dark body {
+    color: #d1d1d1;
+    background-color: #1b1b1b;
+}
+.dark a {
+    color: #8a8a8a;
+}
+.dark a:visited {
+    color: #8a8a8a;
+}
+.dark code {
+    background-color: #2a2a2a;
+}
+.dark pre[class*="language-"].line-numbers > code {
+    background: none;
+    padding: 0;
+}
+.dark #navbar .sub_items ul {
+    box-shadow: 0 0 9px 0px #000000;
+    background-color: #232323;
+}
+.dark #sidebar .active > a,
+.dark #navbar .active > a {
+    background-color: #2d2d2d;
+    color: #4caf7d;
+}
+.dark #sidebar .active > a,
+.dark #navbar .active > a,
+.dark #navbar .active_parent > a {
+    background-color: #2d2d2d;
+}
+.dark #sidebar li > a:hover,
+.dark #sidebar li.active_parent > a:hover,
+.dark #navbar li > a:hover,
+.dark #navbar .sub_items > a:hover {
+    background-color: #2d2d2d;
+}
+.dark #sidebar ul .active_parent > a {
+    background-color: #232323;
+}
+.dark .gutter.gutter-horizontal {
+    background-color: #484848;
+}
+.dark *::-webkit-scrollbar-track {
+    background: #484848;
+}
+.dark *::-webkit-scrollbar-thumb {
+    background-color: #6b6b6b;
+}
+.dark #article #toc {
+    background-color: #1b1b1b;
+}
+.dark #to_top {
+    background-color: #2d2d2d;
+    box-shadow: 8px 8px 20px #000000;
+}
+.dark #to_top:hover {
+    box-shadow: 8px 8px 28px #000000;
+}
+.dark #to_top:active {
+    box-shadow: 0px 0px 20px #000000;
+}
+.dark blockquote {
+    background-color: #2d2d2d;
+}
+.dark blockquote.spoiler {
+    border-left: 5px solid #FF9800;
+    background-color: #6e5200;
+    color: white;
+}
+.dark td {
+    background-color: #373737;
+    border: 2px solid #555555;
+}
+.dark th {
+    font-weight: 700;
+    background-color: #0f5943;
+    color: white;
+    border: 2px solid #006f4f;
+}
+.dark sup a {
+    background-color: #2d2d2d;
+}
+.dark a:hover {
+    background-color: #424242;
+}
+.dark #doc_footer {
+    background-color: #2d2d2d;
+    border-top: 1px solid #2d2d2d;
+}
+.dark #page_footer {
+    background-color: #2d2d2d;
+    border-top: 1px solid #2d2d2d;
+}
+.dark #footer a:hover {
+    background-color: #404040;
+}
+.dark #previous_next {
+    border-top: 1px solid #525252;
+}
+.dark #previous_next a {
+    background-color: #2d2d2d;
+}
+
+/* google translate */
+.dark #navbar #google_translate_element .goog-te-gadget-simple {
+    background-color: #1b1b1b;
+}
+.dark #navbar #google_translate_element .goog-te-gadget-simple .goog-te-menu-value {
+    color: #8a8a8a;
+}
+
+/* tabset */
+.dark .tabset {
+    border: 0.2em solid #4c4c4c;
+}
+.dark .tabset-text-container {
+    background-color: #212121;
+}
+.dark .tabset-tab-active {
+    background-color: #212121;
+}
+
+/* details */
+.dark details {
+    border: 0.2em solid #4c4c4c;
+}
+.dark details > .details-content {
+    background-color: #212121;
+}
+
+/* markdown */
+.dark #mermaid-1662893106119 .messageText {
+    fill: #6f6f6f;
+    stroke: #6f6f6f;
+}
+#mermaid-1662893106119 .loopText, #mermaid-1662893106119 .loopText>tspan {
+    fill: #a99b1a;
+    stroke: none;
+}
+
+@media screen and (max-width: 900px) {
+    .dark #menu_wrapper.m_menu_fixed {
+        background-color: rgb(27, 27, 27, 0.9);
+        box-shadow: 0px 1px 10px 0px rgb(0, 0, 0, 0.32);
+    }
+    .dark #sidebar_wrapper {
+        background-color: #1b1b1b;
+    }
+    .dark #navbar {
+        display: block;
+        border-bottom: 1px solid #383838;
+        z-index: 89;
+    }
+}
+
+

+ 1339 - 0
out/static/css/theme_default/light.css

@@ -0,0 +1,1339 @@
+/**
+    teedoc light theme css
+    @author neucrack
+    @copyright (c) neucrack CZD666666@gmail.com with MIT License
+    @changes 2021.1.26  add basic attrributes
+ */
+
+/* global template */
+body {
+    color: #606975;
+    background-color: white;
+    transition: 0.4s;
+    margin: 0;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+    min-height: 100vh;
+    letter-spacing: 0.03em;
+    font-family: "Microsoft YaHei",Helvetica,"Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Monaco,monospace,Tahoma,STXihei,"华文细黑",STHeiti,"Helvetica Neue","Droid Sans","wenquanyi micro hei",FreeSans,Arimo,Arial,SimSun,"宋体",Heiti,"黑体",sans-serif;
+}
+a {
+    color: #606975;
+    text-decoration: none;
+}
+a:visited {
+    color: #606975;
+}
+a:hover {
+    background-color: #d8d8d8;
+    border-radius: 5px;
+    transition: 0.4s;
+}
+h1 {
+    text-align: center;
+    font-size: 2.2em;
+}
+h2 {
+    font-size: 2em;
+}
+h3 {
+    font-size: 1.5em;
+}
+h4 {
+    font-size: 1.17em;
+}
+h5 {
+    font-size: 1em;
+}
+h6 {
+    font-size: 0.83em;
+}
+
+p {
+    /* text-align: justify; */
+    line-height: 2em;
+}
+blockquote {
+    border-left: 4px solid #4caf7d;
+    margin: 0 0 1em 2px;
+    padding: 1px;
+    padding-left: 1em;
+    background-color: #f1f1f1;
+    border-radius: 0 5px 5px 0;
+    transition: 0.4s;
+}
+blockquote.spoiler {
+    border-left: 5px solid #FF9800;
+    background-color: #ffd65b;
+}
+*::-webkit-scrollbar {
+    width : 0.8rem;
+    height: 0.8rem;
+    min-width: 0.8rem;
+    min-height: 0.6rem;
+}
+#sidebar ul::-webkit-scrollbar {
+    width : 0.45rem;
+    height: 0.8rem;
+    min-width: 0.45rem;
+    min-height: 0.6rem;
+}
+*::-webkit-scrollbar-thumb {
+    border-radius   : 0.6rem;
+    background-color: #b8b8b8;
+}
+*::-webkit-scrollbar-track {
+    background   : #ededed;
+    border-radius: 10px;
+}
+sup a {
+    font-size: 1.1em;
+    background-color: #f1f1f1;
+    padding: 4px;
+    border-left: 1px solid #4caf7d;
+    border-right: 1px solid #4caf7d;
+}
+dl > dt {
+    font-weight: bold;
+}
+table {
+    border-collapse: collapse;
+    border-spacing: 0;
+    display: block;
+    width: 100%;
+    overflow: auto;
+    word-break: keep-all;
+    border-color: transparent;
+}
+tr {
+    background-color: #f1f1f1;
+    border-top: 1px solid #ccc;
+}
+td, th {
+    padding: 6px 13px;
+    transition: 0.4s;
+}
+th {
+    font-weight: 700;
+    color: white;
+    filter: brightness(110%);
+    border: 2px solid #4caf7d;
+    background-color: #4caf7d;
+}
+td {
+    background-color: #fbfbfb;
+    border: 2px solid #f1f1f1;
+}
+code {
+    background-color: #f1f1f1;
+    border-radius: 0.2em;
+    transition: 0.4s;
+    font-family: Menlo, Consolas, "DejaVu Sans Mono", Bitstream Vera Sans Mono, Courier New, monospace, Monaco, 'Andale Mono', 'Ubuntu Mono', "Microsoft YaHei";
+    font-size: 85%;
+    padding: 0.2em 0.4em;
+    color: #4caf7d;
+}
+pre[class*="language-"].line-numbers > code {
+    background: none;
+    padding: 0;
+}
+.btn,
+#page_content .btn,
+#content_body .btn {
+    color: white;
+    border-radius: 5px;
+    transition: 0.2s;
+    padding: 1em;
+    cursor: pointer;
+    transition: 0.2s;
+    background: #4caf7d;
+}
+.btn:hover,
+#page_content .btn:hover,
+#content_body .btn:hover {
+    background: #4caf7d;
+    box-shadow: 1px 1px 5px 0px green;
+}
+.btn:visited,
+#page_content .btn:visited,
+#content_body .btn:visited {
+    color: white;
+}
+
+/* wrapper */
+.type_doc #wrapper {
+    margin-top: 1.5em;
+}
+#wrapper {
+    display: flex;
+    flex-grow: 1;
+}
+#page_wrapper {
+    display: flex;
+    flex-grow: 1;
+    flex-direction: column;
+    justify-content: space-between;
+    text-align: center;
+}
+
+/* page */
+#page_content {
+    width: 100%;
+    flex-grow: 1;
+    display: flex;
+    flex-direction: row;
+}
+#page_content > div {
+    flex-grow: 1;
+    align-self: center;
+}
+#page_content a {
+    color: #c33a3a;
+}
+
+/* navbar */
+#navbar {
+    display: flex;
+    justify-content: start;
+    z-index: 100;
+}
+#navbar * {
+    display: flex;
+    align-items: center;
+}
+#navbar_menu_btn {
+    display: none;
+}
+#navbar #navbar_items {
+    display: flex;
+    flex-grow: 1;
+    justify-content: space-between;
+    padding-right: 1em;
+    word-break: keep-all;
+}
+#navbar h2 {
+    color: #4caf7d;
+}
+#navbar a{
+    margin: 5px;
+    padding: 10px 15px;
+    cursor: pointer;
+}
+#navbar a.site_title{
+    padding: 0;
+}
+#navbar a.site_title:hover{
+    background-color: transparent;
+}
+#navbar .site_logo {
+    max-height: 60px;
+}
+#navbar ul {
+    list-style: none;
+    padding-inline-start: 10px;
+}
+#navbar .sub_items {
+    position: relative;
+    display: block;
+}
+#navbar .sub_items > a {
+    margin: 5px;
+    padding: 10px 15px;
+}
+#navbar .sub_items > a:hover + ul {
+    visibility: visible;
+}
+#navbar .sub_items ul {
+    display: block;
+    position: absolute;
+    left: 0;
+    box-shadow: 0 0 9px 0px #dadada;
+    border-radius: 5px;
+    padding: 0;
+    width: max-content;
+    min-width: 100%;
+    background-color: white;
+    visibility: hidden;
+    margin-top: -5px;
+    z-index: 101;
+}
+#navbar .sub_items ul:hover {
+    visibility: visible;
+}
+#navbar .sub_items ul li {
+    display: block;
+}
+
+
+/* sidebar */
+#sidebar_wrapper {
+    width: 300px;
+}
+/* sidebar splitter */
+.gutter_icon {
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==);
+    width: 3px;
+    height: 2em;
+    background-repeat: no-repeat;
+    position: fixed;
+    top: 50%;
+}
+.gutter {
+    background-color: #eee;
+    background-repeat: no-repeat;
+    background-position: 50%;
+    transition: 0.2s;
+    border-radius: 5px;
+    display: block;
+}
+
+.gutter.gutter-horizontal {
+    /* background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg=='); */
+    cursor: col-resize;
+}
+
+#sidebar {
+    /* width: 300px;
+    min-width: 200px;
+    position: sticky;
+    top: 0;
+    overflow-x: hidden; */
+    /* min-width: 200px; */
+    /* position: sticky; */
+    /* top: 0; */
+    /* overflow-x: hidden; */
+    display: flex;
+    flex-direction: column;
+    height: 100vh;
+    position: -webkit-sticky;
+    position: sticky;
+    top: 0;
+    padding-top: var(--ifm-navbar-height);
+    /* width: var(--doc-sidebar-width); */
+    transition: opacity 50ms;
+    padding-top: 0;
+    z-index: 1;
+}
+#sidebar ul {
+    padding-inline-start: 20px;
+    display: none;
+}
+#sidebar > ul {
+    padding-inline-start: 0;
+    padding: .5rem;
+    display: block;
+    padding-bottom: 3em;
+    margin: 0;
+    overflow-y: auto;
+    overflow-x: hidden;
+}
+#sidebar ul .show{
+    /* display: block; */ /* js instead, just reserve this item*/
+}
+#sidebar ul .active_parent {
+    display: block;
+}
+#sidebar ul .active_parent > ul{
+    display: block;
+}
+#sidebar ul.collapsed, #sidebar ul .active_parent > ul.collapsed{
+    /* display: none; */  /* js instead, just reserve this item*/
+}
+#sidebar ul .active_parent > a{
+    background-color: #f1f1f1;
+    border-radius: 5px;
+    transition: 0.4s;
+}
+#sidebar li {
+    list-style: none;
+    margin: 2px 0;
+    position: relative;
+}
+#sidebar li > a {
+    display: flex;
+    justify-content: space-between;
+    padding: 0;
+    font-size: 0.9em;
+}
+#sidebar a:hover {
+    cursor: pointer;
+}
+#sidebar .active > a, #navbar .active > a, #navbar .active_parent > a{
+    background-color: #f1f1f1;
+    border-radius: 5px;
+    color: #4caf7d;
+    transition: 0.4s;
+}
+#navbar .sub_items .active > a {
+    transition: 0s;
+}
+#sidebar .active > a {
+    transition: 0.4s;
+}
+#sidebar li > a > .label {
+    padding: 10px;
+    display: inline-block;
+    white-space: nowrap;
+    width: 100%;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+#sidebar li > a:hover,
+#sidebar li.active_parent > a:hover,
+#navbar li > a:hover,
+#navbar .sub_items > a:hover{
+    background-color: #d8d8d8;
+    border-radius: 5px;
+    transition: 0.4s;
+}
+#sidebar .sub_indicator {
+    transition: transform 0.4s linear;
+    background: url("/static/image/theme_default/indicator.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    align-self: center;
+    height: 1.25rem;
+    width: 1.25rem;
+    -ms-transform: rotate(-45deg);
+    -moz-transform: rotate(-45deg);
+    -webkit-transform: rotate(-45deg);
+    transform: rotate(-45deg);
+    transition: 0.2s;
+}
+
+#sidebar .sub_indicator:hover,
+#sidebar li.no_link > a:hover > .sub_indicator,
+#sidebar li.no_link > a.sub_indicator:hover,
+#sidebar li.no_link > a.sub_indicator{
+    height: 1.6em;
+    width: 1.6em;
+}
+#sidebar .sub_indicator_collapsed {
+    -ms-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+}
+#sidebar li.sidebar_category {
+    font-size: 0.9em;
+    color: #9e9e9e;
+    margin: 1em 0 0.1em 0;
+}
+#sidebar .tip {
+    position: fixed;
+    color: white;
+    left: 300px;
+    top: 18%;
+    box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.19);
+    border-radius: 0.2em;
+    padding: 1em;
+    display: flex;
+    flex-direction: column;
+    width: max-content;
+    transition: 0.4s;
+    visibility: hidden;
+    opacity: 0;
+    background: #4caf7d;
+}
+#sidebar li > a:hover+.tip, #sidebar .tip:hover {
+    visibility: visible;
+    opacity: 1;
+}
+.blog_info > span {
+    margin: 0.4em;
+}
+.blog_tags {
+    text-align: center;
+    margin-top: 1em;
+}
+.blog_tags > span {
+    border-radius: 0.2em;
+    padding: 0.2em;
+    margin: 0.4em;
+    filter: brightness(120%);
+    border: 1px solid #4caf7d;
+}
+#blog_list > ul {
+    padding-left: 0;
+}
+#blog_list > ul > li {
+    list-style: none;
+    box-shadow: 0px 0px 7px #00000033;
+    margin: 2em 1em;
+    padding: 2em;
+    border-radius: 0.4em;
+}
+#blog_list > ul > li a, #blog_list > ul > li a:visited {
+    padding: 0;
+    color: #4caf7d;
+}
+html[lang^=zh] #article_content #blog_list h2:before {
+    content: "";
+}
+#blog_list .blog_tags {
+    text-align: left;
+}
+#blog_list .blog_info {
+    color: #ababab;
+}
+#blog_list .blog_brief {
+    color: #828282;
+}
+.blog_cover {
+    text-align: center;
+    margin-top: 1em;
+}
+.blog_cover > img {
+    width: 100%;
+}
+#menu_wrapper {
+    width: 2%;
+}
+#menu {
+    background: url("/static/image/theme_default/menu.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    border-radius: 5px;
+    min-height: 2rem;
+    min-width: 2rem;
+    transition: 0.2s;
+    cursor: pointer;
+    position: sticky;
+    top: 1em;
+    z-index: 99;
+    margin-left: 0.2em;
+}
+
+/* article */
+#article {
+    display: flex;
+    width: 98%;
+    margin: auto;
+    justify-content: space-evenly;
+}
+#toc_wrapper {
+    width: 25%;
+}
+#article #toc {
+    background-color: white;
+    position: sticky;
+    transition: 0.4s;
+    top: 15%;
+    max-height: calc(100vh - 15vh);
+    overflow-y: auto;
+}
+#article #toc a{
+    padding: 0.2em 0.0em;
+    display: block;
+    font-size: 0.9em;
+}
+#article #toc ul, #article #toc ol {
+    list-style: none;
+    padding-left: 1.5em;
+}
+#article #toc > div > ul, #article #toc > div > ol {
+    padding-left: 1em;
+}
+
+/* add numbers for toc */
+#toc {counter-reset: toc_l1;}
+#toc #toc_content {counter-reset: toc_l2;}
+#toc a.node-name--H1 {
+    counter-reset: toc_l2;
+}
+#toc a.node-name--H2 {
+    counter-reset: toc_l3;
+}
+#toc a.node-name--H1:before {
+    counter-increment: toc_l1;
+}
+#toc a.node-name--H2:before {
+    counter-increment: toc_l2;
+    content: counter(toc_l2, decimal) ".\00a0";
+}
+html[lang^=zh] #toc a.node-name--H2:before {
+    counter-increment: toc_l2;
+    content: counter(toc_l2, simp-chinese-informal) "、";
+}
+#toc a.node-name--H3:before {
+    counter-increment: toc_l3;
+    content: counter(toc_l2, decimal) "." counter(toc_l3, decimal) ".\00a0";
+}
+.heading_no_counter #toc a.node-name--H2:before {
+	content: "";
+}
+.heading_no_counter #toc a.node-name--H3:before {
+	content: "";
+}
+html[lang^=zh].heading_no_counter #toc a.node-name--H2:before {
+    content: "";
+}
+/* add numbers for titles toc*/
+
+
+/* article content */
+#content_wrapper {
+    flex-grow: 1;
+    justify-content: space-between;
+    flex-direction: column;
+    display: flex;
+    width: 65%;
+}
+#content_body {
+    max-width: 50em;
+    width: 90%;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+    line-height: 2em;
+    margin: auto;
+}
+#content_body h1 {
+    line-height: initial;
+}
+#content_body a, #content_body a:visited {
+    color: #c33a3a;
+    padding: 0.2em;
+}
+#content_body a:hover {
+    background-color: #fde1e1;
+    padding: 0.2em;
+    border-radius: 0.2em;
+}
+#content_body img {
+    max-width: 100%;
+    object-fit: contain;
+    cursor: zoom-in;
+}
+
+/* add numbers for titles */
+#article_content {
+    /* counter-reset: h2section h3section h4section; */
+    min-height: 50vh;
+    word-break: break-word;
+}
+#article_content h1 {
+    /* counter-reset: h2section h3section h4section; */
+    line-height: 1.3em;
+}
+#article_content h2 {
+    /* counter-reset: h3section h4section; */
+    line-height: 1.3em;
+}
+/* #article_content h3 {
+    counter-reset: h4section;
+}
+#article_content h2:before
+{
+	counter-increment: h2section;
+	content: counter(h2section, upper-roman) "、";
+}
+#article_content h3:before 
+{
+	counter-increment: h3section;
+	content: counter(h2section, decimal) "." counter(h3section, decimal) "、";
+}
+#article_content h4:before 
+{
+	counter-increment: h4section;
+	content: counter(h2section, decimal) "." counter(h3section, decimal) "." counter(h4section, decimal) "、";
+}
+html[lang^=zh] #article_content h2:before {
+    content: counter(h2section, simp-chinese-informal) "、";
+}
+html[lang^=zh] #article_content h3:before {
+	content: counter(h2section, decimal) "." counter(h3section, decimal) "、";
+}
+html[lang^=zh] #article_content h4:before {
+    content: counter(h2section, decimal) "." counter(h3section, decimal) "." counter(h4section, decimal) "、";
+}
+.heading_no_counter #article_content h2:before {
+    content: "";
+}
+.heading_no_counter #article_content h3:before {
+	content: "";
+}
+.heading_no_counter #article_content h4:before {
+    content: "";
+}
+html[lang^=zh].heading_no_counter #article_content h2:before {
+    content: "";
+}
+html[lang^=zh].heading_no_counter #article_content h3:before {
+	content: "";
+}
+html[lang^=zh].heading_no_counter #article_content h4:before {
+    content: "";
+} */
+/* add numbers for titles end*/
+
+#article_head {
+    margin-bottom: 2em;
+}
+#article_tags ul {
+    list-style: none;
+    display: flex;
+    align-items: baseline;
+    justify-content: flex-end;
+    padding: 0
+}
+#article_tags ul li{
+    margin: 5px;
+    padding: 8px;
+    border-radius: 5px;
+    color: #ffffffcc;
+    font-size: 0.9em;
+    background-color: #4caf7d;
+}
+#article_info {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+}
+#article_info > div {
+    align-self: center;
+    display: flex;
+    flex-direction: row;
+    align-items: center;
+}
+#article_info > div > div {
+    margin: 2px;
+}
+#article_info #print_page {
+    height: 1em;
+    width: 1em;
+    cursor: pointer;
+    background-repeat: no-repeat;
+    background-size: contain;
+    background-image: url("/static/image/theme_default/print.svg");
+}
+#article_info>div>span {
+    padding: 0.2em;
+    color: #4caf7d;
+}
+#source_link {
+    display: flex;
+    flex-direction: row;
+    justify-content: flex-end;
+}
+
+/* cover prism.css */
+
+:not(pre) > code[class*="language-"], pre[class*="language-"] {
+    background: #2d2d2d;
+    border-radius: 5px;
+}
+div.code-toolbar > .toolbar a, div.code-toolbar > .toolbar button, div.code-toolbar > .toolbar span {
+    color: #fff;
+    font-size: .8em;
+    padding: 1em;
+    background: #f5f2f0;
+    background: rgba(224, 224, 224, 0.2);
+    box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
+    border-radius: .5em;
+    cursor: pointer;
+}
+div.code-toolbar > .toolbar a:hover, div.code-toolbar > .toolbar a:focus, div.code-toolbar > .toolbar button:hover, div.code-toolbar > .toolbar button:focus, div.code-toolbar > .toolbar span:hover, div.code-toolbar > .toolbar span:focus {
+    color: #a9ffe0;
+    text-decoration: none;
+}
+
+/* back to top button */
+/* #to_top_wrapper {
+} */
+#to_top {
+    background: url("/static/image/theme_default/to-top.svg");
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    align-self: flex-end;
+    position: sticky;
+    bottom: 6em;
+    right: 3em;
+    margin: 1em;
+    height: 3rem;
+    width: 3rem;
+    cursor: pointer;
+    transition: 0.4s;
+    z-index: 97;
+    border-radius: 100%;
+    padding: 2px;
+    background-color: #f1f1f1;
+    box-shadow: 8px 8px 20px rgba(0,0,0,0.13);
+}
+#to_top:hover {
+    background-size: 2.5em;
+    box-shadow: 8px 8px 20px rgba(0,0,0,0.24);
+}
+#to_top:active {
+    box-shadow: 0px 0px 20px rgba(0,0,0,0.05);
+}
+
+
+/* footer article */
+#previous_next {
+    min-height: 3em;
+    margin-top: 2em;
+    display: flex;
+    border-top: 1px solid #f1f1f1;
+    padding: 1em;
+    transition: 0.4s;
+    display: flex;
+    justify-content: space-between;
+}
+#previous_next > div {
+    margin: 1em;
+}
+#previous_next a{
+    padding: 1em;
+    border-radius: 5px;
+    display: flex;
+    align-items: center;
+    background-color: #f1f1f1;
+    justify-content: flex-start;
+}
+#previous_next a:hover {
+    background-color: #dedede;
+}
+#previous_next #previous a > .label{
+    flex-grow: 1;
+    text-align: center;
+    padding-right: 2.5em;
+}
+#previous_next #previous a > .icon{
+    transition: transform 0.4s linear;
+    background: url("/static/image/theme_default/to-top.svg");
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 2.5rem;
+    min-width: 2.5rem;
+    -ms-transform: rotate(-90deg);
+    -moz-transform: rotate(-90deg);
+    -webkit-transform: rotate(-90deg);
+    transform: rotate(-90deg);
+    padding-right: 2em;
+    padding: 0;
+}
+#previous_next #next a {
+    justify-content: flex-end;
+}
+#previous_next #next a > .label{
+    flex-grow: 1;
+    text-align: center;
+    padding-left: 2.5em;
+}
+#previous_next #next a > .icon{
+    transition: transform 0.4s linear;
+    background: url("/static/image/theme_default/to-top.svg");
+    background-size: 2em;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 2.5rem;
+    min-width: 2.5rem;
+    -ms-transform: rotate(90deg);
+    -moz-transform: rotate(90deg);
+    -webkit-transform: rotate(90deg);
+    transform: rotate(90deg);
+    padding-left: 2em;
+    padding: 0;
+}
+.footnotes {
+    margin-top: 5em;
+}
+#doc_footer {
+    min-height: 2em;
+    display: flex;
+    background-color: #2d2d2d;
+    border-top: 1px solid #2d2d2d;
+    padding: 1em;
+    transition: 0.4s;
+}
+#page_footer {
+    min-height: 2em;
+    /* margin-top: 5em; */
+    display: flex;
+    padding: 1em;
+    transition: 0.4s;
+    background-color: #292929;
+}
+#footer {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    width: 100%;
+    line-height: 1em;
+}
+#footer ul {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+#footer a, #footer a:visited{
+    color: #848fa0;
+    display: flex;
+    padding: 0.2em;
+    font-size: 0.9em;
+}
+#footer a:hover {
+    background-color: #e6e6e6;
+    border-radius: 0.1em;
+    padding: 0.2em;
+}
+#footer_top {
+    width: 100%;
+}
+#footer_top > ul {
+    display: flex;
+    justify-content: space-around;
+    flex-direction: row;
+}
+#footer_top > ul > li > a {
+    color: #cecece;
+    font-weight: 700;
+    margin: 1em 0 0.5em 0;
+}
+#footer_top > ul > li > a:hover {
+    background-color: transparent;
+}
+#footer_bottom {
+    margin-top: 2em;
+}
+#footer_bottom a {
+    justify-content: center;
+}
+
+/* TOC */
+.anchor {
+    opacity: 0;
+    transition: 0.4s;
+}
+h2:hover > .anchor, h3:hover > .anchor, h4:hover > .anchor, h5:hover > .anchor {
+    opacity: 1;
+}
+.anchor:hover {
+    opacity: 1;
+}
+.anchor-link {
+    display: none;
+}
+#toc_content>.toc-list {
+	overflow: hidden;
+	position: relative
+}
+
+#toc_content>.toc-list li {
+	list-style: none
+}
+
+.toc-list {
+	margin: 0;
+	padding-left: 10px
+}
+#toc_content > .toc-list > .toc-list-item {
+    border-left: 2px solid #f1f1f1;
+}
+
+a.toc-link {
+	color: currentColor;
+	height: 100%
+}
+
+.is-collapsible {
+	/* max-height: 1000px; */
+	overflow: hidden;
+	transition: all 300ms ease-in-out
+}
+
+.is-collapsed {
+	max-height: 0
+}
+
+.is-position-fixed {
+	position: fixed !important;
+	top: 0
+}
+
+.is-active-link {
+	font-weight: 700
+}
+
+.toc-link::before {
+	content: ' ';
+	display: inline-block;
+	height: inherit;
+	left: 0;
+	margin-top: -1px;
+    padding-left: 6px;
+    margin-left: -2px;
+}
+
+.is-active-link::before {
+	border-left: 2px solid #4caf7d;
+}
+
+/* class template */
+.md_page #page_content > div {
+    width: 90%;
+    max-width: 50em;
+    margin: auto;
+    line-height: 2em;
+}
+
+/* jupyter notebook parser */
+.jp-InputArea {
+    display: flex;
+    flex-direction: row;
+}
+.jp-InputPrompt {
+    word-break: keep-all;
+    margin-right: 0.2em;
+    font-size: 0.8em;
+}
+.jp-CodeMirrorEditor {
+    flex-grow: 1;
+    overflow: auto;
+}
+.jp-OutputArea-child {
+    display: flex;
+    flex-direction: row;
+}
+.jp-OutputPrompt {
+    word-break: keep-all;
+    margin-right: 0.2em;
+    font-size: 0.8em;
+    min-width: 2.7em;
+}
+.jp-OutputArea-output {
+    flex-grow: 1;
+    overflow: auto;
+    background: #2d2d2d;
+}
+
+/* google translate */
+#navbar #google_translate_element {
+    padding: 0;
+}
+#navbar #google_translate_element .goog-te-gadget-simple {
+    border-radius: 5px;
+    transition: 0.4s;
+}
+#navbar #google_translate_element .goog-te-gadget-simple .goog-te-menu-value {
+    transition: 0.4s;
+}
+
+/* tabset */
+.tabset {
+    display: flex;
+    flex-direction: column;
+    align-items: normal;
+    border: 0.2em solid #ebedf0;
+    border-radius: 0.5em;
+    margin: 0.5em 0;
+}
+.tabset-title {
+    font-size: medium;
+    font-weight: 500;
+    padding: 0.5em 1em;
+}
+.tabset-content {
+    display: flex;
+    flex-direction: column;
+    align-items: normal;
+}
+.tabset-tab {
+    display: flex;
+    flex-direction: row;
+    padding: 0 1em;
+}
+.tabset-tab-label {
+    cursor: pointer;
+    font-size: large;
+    font-weight: 700;
+    padding: 0.5em 1em;
+    border-top-left-radius: 0.2em;
+    border-top-right-radius: 0.2em;
+}
+.tabset-tab-label:hover {
+    background-color: #0000000d;
+}
+.tabset-tab-active {
+    background-color: #0000000d;
+    border-bottom: 0.2em solid #4caf7d;
+    color: #4caf7d;
+}
+.tabset-text-container {
+    padding: 1em;
+    background-color: #0000000d;
+}
+.tabset-text-container > div {
+    display: none;
+}
+.tabset-text-container > div.tabset-text-active {
+    display: block;
+}
+
+/* details */
+details {
+    display: flex;
+    flex-direction: column;
+    align-items: normal;
+    border: 0.2em solid #ebedf0;
+    border-radius: 0.5em;
+    margin: 0.5em 0;
+    transition: 0.4s;
+}
+details > summary {
+    font-size: medium;
+    font-weight: 500;
+    padding: 0.5em 1em;
+    cursor: pointer;
+}
+details > summary {
+    list-style-type:none;
+    position: relative;
+    padding-left: 2em;
+}
+details > summary:before {
+    display:inline-block;
+    content: url("/static/image/theme_default/array.svg");
+    transform:rotate(90deg);
+    transition: 0.4s;
+    left: 0.5em;
+    position: absolute;
+    top: 0.45rem;
+}
+details[open] > summary:before {
+    transform:rotate(180deg);
+    top: 0.35rem;
+}
+details[open] summary ~ * {
+    animation: sweep .4s ease-in-out;
+  }
+@keyframes sweep {
+0%    {opacity: 0; margin-left: -10px}
+100%  {opacity: 1; margin-left: 0px}
+}
+details > .details-content, details > div {
+    padding: 1em;
+    background-color: #0000000d;
+}
+
+#update_history {
+    overflow-x: auto;
+}
+#update_history details > div {
+    padding: 0;
+}
+#update_history details {
+    width: fit-content;
+}
+
+/* mobile phone */
+@media screen and (max-width: 900px) {
+    #navbar {
+        display: block;
+        border-bottom: 1px solid #f1f1f1;
+        z-index: 89;
+    }
+    #navbar * {
+        display: block;
+    }
+    #navbar a.site_title {
+        display: flex;
+    }
+    #navbar_menu {
+        display: flex;
+        justify-content: space-between;
+    }
+    #navbar ul {
+        padding-left: 0;
+    }
+    #navbar_menu_btn {
+        background: url("/static/image/theme_default/menu.svg");
+        background-size: contain;
+        background-repeat: no-repeat;
+        background-position: center;
+        border-radius: 5px;
+        cursor: pointer;
+        width: 1em;
+        height: 1em;
+        display: block;
+    }
+    #navbar #navbar_items {
+        display: none;
+        padding-right: 0;
+    }
+    #navbar .sub_items ul {
+        left: 0;
+        right: auto;
+    }
+    #sidebar_wrapper {
+        position: fixed;
+        top: 0;
+        left: 0;
+        bottom: 0;
+        background-color: white;
+        box-shadow: 0 0 20px 0px #bbbbbb;
+        width: 100%;
+        z-index: 98;
+        display: none;
+    }
+    #sidebar {
+        position: relative;
+        width: 100%;
+    }
+    .gutter {
+        display: none;
+    }
+    #sidebar > ul {
+        padding-top: 4em;
+    }
+    #menu_wrapper {
+        z-index: 99;
+    }
+    #menu_wrapper.m_menu_fixed {
+        position: fixed;
+        left: 0;
+        top: 0;
+        width: 100%;
+        height: 4em;
+        background-color: rgb(255, 255, 255, 0.9);
+        box-shadow: 0px 1px 10px 0px rgb(0, 0, 0, 0.06);
+    }
+    #menu_wrapper.m_menu_fixed > #menu {
+        position: fixed;
+        left: 0.2em;
+        top: 1em;
+    }
+    #menu.close {
+        background: url("/static/image/theme_default/back.svg");
+        background-size: contain;
+        background-repeat: no-repeat;
+        background-position: center;
+        border-radius: 5px;
+        min-height: 2em;
+        min-width: 2em;
+    }
+    #content_body {
+        width: 90%;
+    }  
+    #toc_wrapper {
+        display: none;
+        position: fixed;
+        width: 100vh;
+        height: 100vh;
+        top: 0;
+        left: 0;
+        background-color: rgb(0, 0, 0, 0.5);
+        z-index: 999;
+        transition: 0.4s;
+    }
+    #toc_wrapper.show {
+        display: block;
+    }
+    #article #toc{
+        position: fixed;
+        top: 4em;
+        right: 0;
+        z-index: 200;
+        width: 90%;
+        padding: 1em 0 1em 0;
+        border-radius: 0.3em 0 0 0.3em;
+    }
+    #previous_next {
+        flex-direction: column;
+    }
+
+    .m_hide {
+        display: none;
+    }
+    #footer_top > ul {
+        flex-direction: column;
+    }
+    .md_page #page_content > div {
+        margin: 1.5em;
+    }
+    #article_tools {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        align-items: flex-end;
+        position: -webkit-sticky;
+        position: sticky;
+        top: 1em;
+        z-index: 97;
+    }
+    #toc_btn {
+        background: url("/static/image/theme_default/anchor.svg");
+        background-size: contain;
+        background-repeat: no-repeat;
+        background-position: center;
+        border-radius: 5px;
+        min-height: 2em;
+        min-width: 2em;
+        -ms-transform: rotate(12deg);
+        -moz-transform: rotate(12deg);
+        -webkit-transform: rotate(12deg);
+        transform: rotate(12deg);
+    }
+}
+
+
+/* special */
+
+#themes{
+    padding: 2px 5px;
+    cursor: pointer;
+}
+#navbar .light, #navbar .dark:hover {
+    background: url("/static/image/theme_default/light_mode.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 1rem;
+    min-width: 1rem;
+}
+#navbar .dark, #navbar .light:hover {
+    background: url("/static/image/theme_default/dark_mode.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+    background-position: center;
+    min-height: 1rem;
+    min-width: 1rem;
+}
+
+
+@media print {
+    code[class*="language-"], pre[class*="language-"] {
+        white-space: pre-wrap;
+    }
+    pre[class*="language-"].line-numbers {
+        border: 1px solid #2d2d2d;
+    }
+    #navbar,
+    #sidebar_wrapper, .gutter, #menu_wrapper,
+    #toc, #to_top, #doc_footer,
+    #previous_next,
+    #source_link, #print_page,
+    #comments-container {
+        display: none;
+    }
+    #article {
+        width: 100%;
+    }
+    #content_body {
+        max-width: 100%;
+        width: 100%;
+    }
+    /* .line-numbers-rows {
+        display: none;
+    } */
+    .gutter {
+        display: none;
+    }
+}

+ 261 - 0
out/static/css/theme_default/prism.min.css

@@ -0,0 +1,261 @@
+/* PrismJS 1.23.0
+https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+bash+c+cpp+cmake+coffeescript+docker+go+ini+java+json+json5+kotlin+latex+less+lua+makefile+markdown+markup-templating+objectivec+php+powershell+python+jsx+tsx+ruby+rust+sass+scss+shell-session+sql+swift+textile+typescript+yaml&plugins=line-numbers+highlight-keywords+toolbar+copy-to-clipboard+match-braces */
+/**
+ * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
+ * Based on https://github.com/chriskempson/tomorrow-theme
+ * @author Rose Pritchard
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+	color: #ccc;
+	background: none;
+	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+	font-size: 1em;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+	word-break: normal;
+	word-wrap: normal;
+	line-height: 1.5;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #2d2d2d;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+	white-space: normal;
+}
+
+.token.comment,
+.token.block-comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: #999;
+}
+
+.token.punctuation {
+	color: #ccc;
+}
+
+.token.tag,
+.token.attr-name,
+.token.namespace,
+.token.deleted {
+	color: #e2777a;
+}
+
+.token.function-name {
+	color: #6196cc;
+}
+
+.token.boolean,
+.token.number,
+.token.function {
+	color: #f08d49;
+}
+
+.token.property,
+.token.class-name,
+.token.constant,
+.token.symbol {
+	color: #f8c555;
+}
+
+.token.selector,
+.token.important,
+.token.atrule,
+.token.keyword,
+.token.builtin {
+	color: #cc99cd;
+}
+
+.token.string,
+.token.char,
+.token.attr-value,
+.token.regex,
+.token.variable {
+	color: #7ec699;
+}
+
+.token.operator,
+.token.entity,
+.token.url {
+	color: #67cdcc;
+}
+
+.token.important,
+.token.bold {
+	font-weight: bold;
+}
+.token.italic {
+	font-style: italic;
+}
+
+.token.entity {
+	cursor: help;
+}
+
+.token.inserted {
+	color: green;
+}
+
+pre[class*="language-"].line-numbers {
+	position: relative;
+	padding-left: 3.8em;
+	counter-reset: linenumber;
+}
+
+pre[class*="language-"].line-numbers > code {
+	position: relative;
+	white-space: inherit;
+}
+
+.line-numbers .line-numbers-rows {
+	position: absolute;
+	pointer-events: none;
+	top: 0;
+	font-size: 100%;
+	left: -3.8em;
+	width: 3em; /* works for line-numbers below 1000 lines */
+	letter-spacing: -1px;
+	border-right: 1px solid #999;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+}
+
+	.line-numbers-rows > span {
+		display: block;
+		counter-increment: linenumber;
+	}
+
+		.line-numbers-rows > span:before {
+			content: counter(linenumber);
+			color: #999;
+			display: block;
+			padding-right: 0.8em;
+			text-align: right;
+		}
+
+div.code-toolbar {
+	position: relative;
+}
+
+div.code-toolbar > .toolbar {
+	position: absolute;
+	top: .3em;
+	right: .2em;
+	transition: opacity 0.3s ease-in-out;
+	opacity: 0;
+}
+
+div.code-toolbar:hover > .toolbar {
+	opacity: 1;
+}
+
+/* Separate line b/c rules are thrown out if selector is invalid.
+   IE11 and old Edge versions don't support :focus-within. */
+div.code-toolbar:focus-within > .toolbar {
+	opacity: 1;
+}
+
+div.code-toolbar > .toolbar .toolbar-item {
+	display: inline-block;
+}
+
+div.code-toolbar > .toolbar a {
+	cursor: pointer;
+}
+
+div.code-toolbar > .toolbar button {
+	background: none;
+	border: 0;
+	color: inherit;
+	font: inherit;
+	line-height: normal;
+	overflow: visible;
+	padding: 0;
+	-webkit-user-select: none; /* for button */
+	-moz-user-select: none;
+	-ms-user-select: none;
+}
+
+div.code-toolbar > .toolbar a,
+div.code-toolbar > .toolbar button,
+div.code-toolbar > .toolbar span {
+	color: #bbb;
+	font-size: .8em;
+	padding: 0 .5em;
+	background: #f5f2f0;
+	background: rgba(224, 224, 224, 0.2);
+	box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
+	border-radius: .5em;
+}
+
+div.code-toolbar > .toolbar a:hover,
+div.code-toolbar > .toolbar a:focus,
+div.code-toolbar > .toolbar button:hover,
+div.code-toolbar > .toolbar button:focus,
+div.code-toolbar > .toolbar span:hover,
+div.code-toolbar > .toolbar span:focus {
+	color: inherit;
+	text-decoration: none;
+}
+
+.token.punctuation.brace-hover,
+.token.punctuation.brace-selected {
+	outline: solid 1px;
+}
+
+.rainbow-braces .token.punctuation.brace-level-1,
+.rainbow-braces .token.punctuation.brace-level-5,
+.rainbow-braces .token.punctuation.brace-level-9 {
+	color: #E50;
+	opacity: 1;
+}
+.rainbow-braces .token.punctuation.brace-level-2,
+.rainbow-braces .token.punctuation.brace-level-6,
+.rainbow-braces .token.punctuation.brace-level-10 {
+	color: #0B3;
+	opacity: 1;
+}
+.rainbow-braces .token.punctuation.brace-level-3,
+.rainbow-braces .token.punctuation.brace-level-7,
+.rainbow-braces .token.punctuation.brace-level-11 {
+	color: #26F;
+	opacity: 1;
+}
+.rainbow-braces .token.punctuation.brace-level-4,
+.rainbow-braces .token.punctuation.brace-level-8,
+.rainbow-braces .token.punctuation.brace-level-12 {
+	color: #E0E;
+	opacity: 1;
+}
+

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 2 - 0
out/static/css/theme_default/prism.min.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 8 - 0
out/static/css/theme_default/viewer.min.css


+ 1 - 0
out/static/image/search/cancel.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1652619690462" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4565" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M512 128C300.8 128 128 300.8 128 512s172.8 384 384 384 384-172.8 384-384S723.2 128 512 128zM672 627.2c12.8 12.8 12.8 32 0 44.8s-32 12.8-44.8 0L512 556.8l-115.2 115.2c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8L467.2 512 352 396.8C339.2 384 339.2 364.8 352 352s32-12.8 44.8 0L512 467.2l115.2-115.2c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8L556.8 512 672 627.2z" p-id="4566" fill="#8b7000"></path></svg>

+ 1 - 0
out/static/image/search/close.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1612175062006" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4711" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 51.2C258.048 51.2 51.2 258.048 51.2 512s206.848 460.8 460.8 460.8 460.8-206.848 460.8-460.8S765.952 51.2 512 51.2z m181.248 612.352c8.192 8.192 8.192 20.48 0 28.672-4.096 4.096-9.216 6.144-14.336 6.144s-10.24-2.048-14.336-6.144L512 540.672 360.448 693.248c-4.096 4.096-9.216 6.144-14.336 6.144s-10.24-2.048-14.336-6.144c-8.192-8.192-8.192-20.48 0-28.672L483.328 512 330.752 360.448c-8.192-8.192-8.192-20.48 0-28.672s20.48-8.192 28.672 0L512 483.328l151.552-151.552c8.192-8.192 20.48-8.192 28.672 0s8.192 20.48 0 28.672L540.672 512l152.576 151.552z" p-id="4712" fill="#d81e06"></path></svg>

+ 1 - 0
out/static/image/search/search.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1612173307149" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3633" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M469.333333 853.333333c-211.2 0-384-172.8-384-384S258.133333 85.333333 469.333333 85.333333s384 172.8 384 384-172.8 384-384 384z m0-682.666666C305.066667 170.666667 170.666667 305.066667 170.666667 469.333333s134.4 298.666667 298.666666 298.666667 298.666667-134.4 298.666667-298.666667S633.6 170.666667 469.333333 170.666667z" p-id="3634" fill="#bfbfbf"></path><path d="M896 938.666667c-10.666667 0-21.333333-4.266667-29.866667-12.8l-185.6-185.6c-17.066667-17.066667-17.066667-42.666667 0-59.733334 17.066667-17.066667 42.666667-17.066667 59.733334 0l185.6 185.6c17.066667 17.066667 17.066667 42.666667 0 59.733334-8.533333 8.533333-19.2 12.8-29.866667 12.8z" p-id="3635" fill="#bfbfbf"></path></svg>

+ 1 - 0
out/static/image/search/up.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611731449920" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2525" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M504.962 328.269q-102.937 102.937-412.627 412.627-6.159 6.159-13.197 6.159-7.038 0-12.317-6.159-6.159-6.159-6.159-12.317 0-6.159 6.159-13.197 144.287-144.287 431.983-431.983 6.159-6.159 13.197-6.159 6.159 0 12.317 6.159 0.88 0.88 1.76 1.76 107.336 107.336 431.103 430.223 6.159 6.159 6.159 12.317 0 7.038-6.159 13.197-6.159 6.159-13.197 6.159-6.159 0-12.317-6.159-138.129-137.249-414.387-412.627-6.159-6.159-12.317 0z" p-id="2526" fill="#8b7000"></path></svg>

+ 1 - 0
out/static/image/theme_default/anchor.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1652012455149" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21492" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M87.466667 469.333333H298.666667v85.333334H173.312A341.504 341.504 0 0 0 469.333333 850.688V421.290667A170.752 170.752 0 0 1 512 85.333333a170.666667 170.666667 0 0 1 42.666667 335.957334v429.397333A341.504 341.504 0 0 0 850.688 554.666667H725.333333v-85.333334h211.2c1.408 14.037333 2.133333 28.288 2.133334 42.666667 0 235.648-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512c0-14.378667 0.725333-28.629333 2.133334-42.666667zM512 341.333333a85.333333 85.333333 0 1 0 0-170.666666 85.333333 85.333333 0 0 0 0 170.666666z" p-id="21493" fill="#bfbfbf"></path></svg>

+ 1 - 0
out/static/image/theme_default/array.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1663295836295" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4557" width="16" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M854.016 739.328l-313.344-309.248-313.344 309.248q-14.336 14.336-32.768 21.504t-37.376 7.168-36.864-7.168-32.256-21.504q-29.696-28.672-29.696-68.608t29.696-68.608l376.832-373.76q14.336-14.336 34.304-22.528t40.448-9.216 39.424 5.12 31.232 20.48l382.976 379.904q28.672 28.672 28.672 68.608t-28.672 68.608q-14.336 14.336-32.768 21.504t-37.376 7.168-36.864-7.168-32.256-21.504z" p-id="4558" fill="#8a8a8a"></path></svg>

+ 1 - 0
out/static/image/theme_default/back.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1652004501032" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4738" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><defs><style type="text/css"></style></defs><path d="M396.928 780.373333a42.496 42.496 0 0 0 0-60.16L231.381333 554.666667h647.253334c23.466667 0 42.666667-19.2 42.666666-42.666667s-19.2-42.666667-42.666666-42.666667H230.954667l165.546666-165.546666a42.496 42.496 0 1 0-60.16-60.16l-238.506666 238.506666a42.496 42.496 0 0 0 0 60.16l238.933333 238.08c16.213333 16.64 43.52 16.64 60.16 0z" p-id="4739" fill="#bfbfbf"></path></svg>

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
out/static/image/theme_default/dark_mode.svg


+ 1 - 0
out/static/image/theme_default/indicator.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611391508907" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1111" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M851.968 503.808 532.48 503.808 532.48 188.416c0-12.288-8.192-20.48-20.48-20.48S491.52 176.128 491.52 188.416l0 319.488L172.032 507.904c-12.288 0-20.48 8.192-20.48 20.48s8.192 20.48 20.48 20.48L491.52 548.864l0 319.488c0 12.288 8.192 20.48 20.48 20.48s20.48-8.192 20.48-20.48l0-319.488 319.488 0c12.288 0 20.48-8.192 20.48-20.48S864.256 503.808 851.968 503.808z" p-id="1112" fill="#606975"></path></svg>

+ 1 - 0
out/static/image/theme_default/light_mode.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611734747036" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2033" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M478.634667 811.349333a304.490667 304.490667 0 0 0 64.021333 0.277334v124.330666h-64v-124.608z m267.776-110.229333l87.594666 87.637333-45.226666 45.248-87.658667-87.594666c16.64-13.44 31.829333-28.629333 45.290667-45.290667z m-469.994667-1.493333c13.333333 16.746667 28.416 32 44.970667 45.568L232.533333 834.005333l-45.248-45.226666 89.130667-89.130667zM512 261.034667c138.602667 0 250.986667 112.384 250.986667 250.986666 0 138.602667-112.384 250.986667-250.986667 250.986667-138.602667 0-250.986667-112.384-250.986667-250.986667 0-138.602667 112.384-250.986667 250.986667-250.986666z m0 64a186.986667 186.986667 0 1 0 0 373.973333 186.986667 186.986667 0 0 0 0-373.973333z m423.957333 153.642666v64h-124.330666a304.725333 304.725333 0 0 0-0.277334-64h124.608z m-723.306666 0a304.490667 304.490667 0 0 0-0.277334 64H85.333333v-64h127.317334zM232.533333 187.264l90.346667 90.304c-16.64 13.44-31.829333 28.629333-45.290667 45.290667L187.306667 232.533333l45.226666-45.248z m556.224 0l45.248 45.226667-88.810666 88.874666a302.997333 302.997333 0 0 0-45.546667-44.970666l89.109333-89.130667zM542.656 85.333333v127.04a304.725333 304.725333 0 0 0-64 0.277334V85.333333h64z" p-id="2034" fill="#bfbfbf"></path></svg>

+ 1 - 0
out/static/image/theme_default/menu.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611654676671" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2528" width="200" height="200" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M963.764706 180.705882v120.470589H60.235294V180.705882h903.529412zM60.235294 602.352941h903.529412V481.882353H60.235294v120.470588z m0 301.176471h903.529412v-120.470588H60.235294v120.470588z" p-id="2529" fill="#bfbfbf"></path></svg>

+ 1 - 0
out/static/image/theme_default/print.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1629963451767" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2105" width="32" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M915.692308 342.646154h-807.384616c-43.323077 0-78.769231 35.446154-78.76923 78.769231v275.692307c0 43.323077 35.446154 78.769231 78.76923 78.769231h116.184616v114.215385c0 43.323077 35.446154 78.769231 78.76923 78.76923h419.446154c43.323077 0 78.769231-35.446154 78.769231-78.76923v-114.215385h116.184615c43.323077 0 78.769231-35.446154 78.769231-78.769231v-275.692307c-1.969231-43.323077-37.415385-78.769231-80.738461-78.769231zM163.446154 545.476923c-33.476923 0-59.076923-25.6-59.076923-59.076923s25.6-59.076923 59.076923-59.076923 59.076923 25.6 59.076923 59.076923-25.6 59.076923-59.076923 59.076923z m543.507692 303.261539c0 15.753846-13.784615 29.538462-29.538461 29.538461h-334.769231c-15.753846 0-29.538462-13.784615-29.538462-29.538461v-192.984616c0-15.753846 13.784615-29.538462 29.538462-29.538461h334.769231c15.753846 0 29.538462 13.784615 29.538461 29.538461v192.984616z m90.584616-630.153847c0 15.753846-13.784615 29.538462-29.538462 29.538462H252.061538c-15.753846 0-29.538462-13.784615-29.538461-29.538462V84.676923c0-15.753846 13.784615-29.538462 29.538461-29.538461H768c15.753846 0 29.538462 13.784615 29.538462 29.538461v133.907692z" p-id="2106" fill="#bfbfbf"></path></svg>

+ 1 - 0
out/static/image/theme_default/to-top.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1611731449920" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2525" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M504.962 328.269q-102.937 102.937-412.627 412.627-6.159 6.159-13.197 6.159-7.038 0-12.317-6.159-6.159-6.159-6.159-12.317 0-6.159 6.159-13.197 144.287-144.287 431.983-431.983 6.159-6.159 13.197-6.159 6.159 0 12.317 6.159 0.88 0.88 1.76 1.76 107.336 107.336 431.103 430.223 6.159 6.159 6.159 12.317 0 7.038-6.159 13.197-6.159 6.159-13.197 6.159-6.159 0-12.317-6.159-138.129-137.249-414.387-412.627-6.159-6.159-12.317 0z" p-id="2526" fill="#bfbfbf"></path></svg>

+ 0 - 0
out/static/js/custom.js


+ 247 - 0
out/static/js/live.js

@@ -0,0 +1,247 @@
+ /*
+  Live.js - One script closer to Designing in the Browser
+  Written for Handcraft.com by Martin Kool (@mrtnkl).
+
+  Version 4.
+  Recent change: Made stylesheet and mimetype checks case insensitive.
+
+  http://livejs.com
+  http://livejs.com/license (MIT)  
+  @livejs
+
+  Include live.js#css to monitor css changes only.
+  Include live.js#js to monitor js changes only.
+  Include live.js#html to monitor html changes only.
+  Mix and match to monitor a preferred combination such as live.js#html,css  
+
+  By default, just include live.js to monitor all css, js and html changes.
+  
+  Live.js can also be loaded as a bookmarklet. It is best to only use it for CSS then,
+  as a page reload due to a change in html or css would not re-include the bookmarklet.
+  To monitor CSS and be notified that it has loaded, include it as: live.js#css,notify
+*/
+(function () {
+
+    var headers = { "Etag": 1, "Last-Modified": 1, "Content-Length": 1, "Content-Type": 1 },
+        resources = {},
+        pendingRequests = {},
+        currentLinkElements = {},
+        oldLinkElements = {},
+        interval = 1000,
+        loaded = false,
+        active = { "html": 1, "css": 1, "js": 1 };
+  
+    var Live = {
+  
+      // performs a cycle per interval
+      heartbeat: function () {      
+        if (document.body) {        
+          // make sure all resources are loaded on first activation
+          if (!loaded) Live.loadresources();
+          Live.checkForChanges();
+        }
+        setTimeout(Live.heartbeat, interval);
+      },
+  
+      // loads all local css and js resources upon first activation
+      loadresources: function () {
+  
+        // helper method to assert if a given url is local
+        function isLocal(url) {
+          var loc = document.location,
+              reg = new RegExp("^\\.|^\/(?!\/)|^[\\w]((?!://).)*$|" + loc.protocol + "//" + loc.host);
+          return url.match(reg);
+        }
+  
+        // gather all resources
+        var scripts = document.getElementsByTagName("script"),
+            links = document.getElementsByTagName("link"),
+            uris = [];
+  
+        // track local js urls
+        for (var i = 0; i < scripts.length; i++) {
+          var script = scripts[i], src = script.getAttribute("src");
+          if (src && isLocal(src))
+            uris.push(src);
+          if (src && src.match(/\blive.js#/)) {
+            for (var type in active)
+              active[type] = src.match("[#,|]" + type) != null
+            if (src.match("notify")) 
+              alert("Live.js is loaded.");
+          }
+        }
+        if (!active.js) uris = [];
+        if (active.html) uris.push(document.location.href);
+  
+        // track local css urls
+        for (var i = 0; i < links.length && active.css; i++) {
+          var link = links[i], rel = link.getAttribute("rel"), href = link.getAttribute("href", 2);
+          if (href && rel && rel.match(new RegExp("stylesheet", "i")) && isLocal(href)) {
+            uris.push(href);
+            currentLinkElements[href] = link;
+          }
+        }
+  
+        // initialize the resources info
+        for (var i = 0; i < uris.length; i++) {
+          var url = uris[i];
+          Live.getHead(url, function (url, info) {
+            resources[url] = info;
+          });
+        }
+  
+        // add rule for morphing between old and new css files
+        var head = document.getElementsByTagName("head")[0],
+            style = document.createElement("style"),
+            rule = "transition: all .3s ease-out;"
+        css = [".livejs-loading * { ", rule, " -webkit-", rule, "-moz-", rule, "-o-", rule, "}"].join('');
+        style.setAttribute("type", "text/css");
+        head.appendChild(style);
+        style.styleSheet ? style.styleSheet.cssText = css : style.appendChild(document.createTextNode(css));
+  
+        // yep
+        loaded = true;
+      },
+  
+      // check all tracking resources for changes
+      checkForChanges: function () {
+        for (var url in resources) {
+          if (pendingRequests[url])
+            continue;
+  
+          Live.getHead(url, function (url, newInfo) {
+            var oldInfo = resources[url],
+                hasChanged = false;
+            resources[url] = newInfo;
+            for (var header in oldInfo) {
+              // do verification based on the header type
+              var oldValue = oldInfo[header],
+                  newValue = newInfo[header],
+                  contentType = newInfo["Content-Type"];
+              switch (header.toLowerCase()) {
+                case "etag":
+                  if (!newValue) break;
+                  // fall through to default
+                default:
+                  hasChanged = oldValue != newValue;
+                  break;
+              }
+              // if changed, act
+              if (hasChanged) {
+                Live.refreshResource(url, contentType);
+                break;
+              }
+            }
+          });
+        }
+      },
+  
+      // act upon a changed url of certain content type
+      refreshResource: function (url, type) {
+        switch (type.toLowerCase()) {
+          // css files can be reloaded dynamically by replacing the link element                               
+          case "text/css":
+            var link = currentLinkElements[url],
+                html = document.body.parentNode,
+                head = link.parentNode,
+                next = link.nextSibling,
+                newLink = document.createElement("link");
+  
+            html.className = html.className.replace(/\s*livejs\-loading/gi, '') + ' livejs-loading';
+            newLink.setAttribute("type", "text/css");
+            newLink.setAttribute("rel", "stylesheet");
+            newLink.setAttribute("href", url + "?now=" + new Date() * 1);
+            next ? head.insertBefore(newLink, next) : head.appendChild(newLink);
+            currentLinkElements[url] = newLink;
+            oldLinkElements[url] = link;
+  
+            // schedule removal of the old link
+            Live.removeoldLinkElements();
+            break;
+  
+          // check if an html resource is our current url, then reload                               
+          case "text/html":
+            if (Live.removeArgsId(url) != Live.removeArgsId(document.location.href))
+              return;
+  
+            // local javascript changes cause a reload as well
+          case "text/javascript":
+          case "application/javascript":
+          case "application/x-javascript":
+            document.location.reload();
+        }
+      },
+
+      // remove args and id in url
+      removeArgsId: function(url){
+        var idx = url.indexOf("?");
+        if(idx >= 0){
+          url = url.substr(0, idx);
+        }
+        idx = url.indexOf("#");
+        if(idx >= 0){
+          url = url.substr(0, idx);
+        }
+        return url;
+      },
+  
+      // removes the old stylesheet rules only once the new one has finished loading
+      removeoldLinkElements: function () {
+        var pending = 0;
+        for (var url in oldLinkElements) {
+          // if this sheet has any cssRules, delete the old link
+          try {
+            var link = currentLinkElements[url],
+                oldLink = oldLinkElements[url],
+                html = document.body.parentNode,
+                sheet = link.sheet || link.styleSheet,
+                rules = sheet.rules || sheet.cssRules;
+            if (rules.length >= 0) {
+              oldLink.parentNode.removeChild(oldLink);
+              delete oldLinkElements[url];
+              setTimeout(function () {
+                html.className = html.className.replace(/\s*livejs\-loading/gi, '');
+              }, 100);
+            }
+          } catch (e) {
+            pending++;
+          }
+          if (pending) setTimeout(Live.removeoldLinkElements, 50);
+        }
+      },
+  
+      // performs a HEAD request and passes the header info to the given callback
+      getHead: function (url, callback) {
+        pendingRequests[url] = true;
+        var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XmlHttp");
+        xhr.open("HEAD", url, true);
+        xhr.onreadystatechange = function () {
+          delete pendingRequests[url];
+          if (xhr.readyState == 4 && xhr.status != 304) {
+            xhr.getAllResponseHeaders();
+            var info = {};
+            for (var h in headers) {
+              var value = xhr.getResponseHeader(h);
+              // adjust the simple Etag variant to match on its significant part
+              if (h.toLowerCase() == "etag" && value) value = value.replace(/^W\//, '');
+              if (h.toLowerCase() == "content-type" && value) value = value.replace(/^(.*?);.*?$/i, "$1");
+              info[h] = value;
+            }
+            callback(url, info);
+          }
+        }
+        xhr.send();
+      }
+    };
+  
+    // start listening
+    if (document.location.protocol != "file:") {
+      if (!window.liveJsLoaded)
+        Live.heartbeat();
+  
+      window.liveJsLoaded = true;
+    }
+    else if (window.console)
+      console.log("Live.js doesn't support the file protocol. It needs http.");    
+  })();
+  

+ 351 - 0
out/static/js/search/search_main.js

@@ -0,0 +1,351 @@
+
+jQuery.fn.highlight = function (pat) {
+    function innerHighlight(node, pat) {
+        var skip = 0;
+        if (node.nodeType == 3) {
+            var pos = node.data.toUpperCase().indexOf(pat);
+            if (pos >= 0) {
+                var spannode = document.createElement('span');
+                spannode.className = 'search_highlight';
+                var middlebit = node.splitText(pos);
+                var endbit = middlebit.splitText(pat.length);
+                var middleclone = middlebit.cloneNode(true);
+                spannode.appendChild(middleclone);
+                middlebit.parentNode.replaceChild(spannode, middlebit);
+                skip = 1;
+            }
+        }
+        else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
+            for (var i = 0; i < node.childNodes.length; ++i) {
+                i += innerHighlight(node.childNodes[i], pat);
+            }
+        }
+        return skip;
+    }
+    return this.each(function () {
+        innerHighlight(this, pat.toUpperCase());
+    });
+};
+
+window.onload = function(){
+}
+
+$(document).ready(function(){
+    var waiting_search = false;
+    var search_index = null;
+    var search_content = {
+        "curr": null,
+        "others":{}
+    }
+    function onDownloadOk(data, arg1, arg2){
+        search_index = data;
+        var pathname   = window.location.pathname;
+        var curr_url   = null;
+        var others_url = [];
+        for(var url in search_index){
+            if(pathname.indexOf(url) != -1){
+                if(!curr_url){
+                    curr_url = url;
+                }else{  // already have math item, e.g. `/get_started/zh/install/index.html /get_started/zh`
+                        // and now `/get_started/zh/install/index.html /`
+                        // choose longger one
+                    if(url.length > curr_url.length){
+                        others_url.push(curr_url);
+                        curr_url = url;
+                    }else{
+                        others_url.push(url);
+                    }
+                }
+            }else{
+                others_url.push(url);
+            }
+        }
+        if(search_index[curr_url]){
+            downloadJson(search_index[curr_url][1], onIndexDownloadOk, curr_url, true, search_index[curr_url][0]);
+        }
+        for(var i in others_url){
+            url = others_url[i];
+            downloadJson(search_index[url][1], onIndexDownloadOk, url, false, search_index[url][0]);
+        }
+    }
+    function onIndexDownloadOk(data, url, is_curr, doc_name){
+        if(is_curr){
+            search_content["curr"] = [url, doc_name, data];
+        }else{
+            search_content["others"][url] = [url, doc_name, data];
+        }
+        if(waiting_search == true){
+            waiting_search = false;
+            onSearch();
+        }
+    }
+    downloadJson("/static/search_index/index.json", onDownloadOk);
+    var input_hint = $("#search_input_hint").html();
+    var loading_hint = $("#search_loading_hint").html();
+    var download_err_hint = $("#search_download_err_hint").html();
+    var other_docs_result_hint = $("#search_other_docs_result_hint").html();
+    var curr_doc_result_hint = $("#search_curr_doc_result_hint").html();
+    $("body").append('<div id="search_wrapper">\
+        <div>\
+            <div id="search_content">\
+                <div id="search_title">\
+                    <div>\
+                        <input id="search_input" placeholder="'+ input_hint +'"/>\
+                    </div>\
+                </div>\
+                <div id="search_result">\
+                    <div id="search_result_name"></div>\
+                    <div id="search_result_content"></div>\
+                </div>\
+            </div>\
+        </div><a class="close"></a></div>');
+    $("#search").bind("click", function(e){
+        $("body").css("overflow-y", "hidden");
+        $("#search_wrapper").show();
+        $("#search_input").focus();
+        $("#wrapper").addClass("blur");
+        $("#navbar").addClass("blur");
+    });
+    $("#search_wrapper .close").bind("click", function(e){
+        $("body").css("overflow-y", "auto");
+        $("#search_wrapper").hide();
+        $("#wrapper").removeClass("blur");
+        $("#navbar").removeClass("blur");
+    });
+    $("#search_input").bind("input propertychange", function(){
+        setTimeout(() => {
+            onSearch();
+        }, 1000);
+    });
+    function onSearch(){
+        $("#search_result_name").empty();
+        $("#search_result_content").empty();
+        $("#search_result_content").append('<ul id="search_curr_result"><div class="hint">'+ curr_doc_result_hint +'</div></ul>');
+        $("#search_result_content").append('<ul id="search_others_result"><div class="hint">'+ other_docs_result_hint +'</div></ul>');
+        if(!search_index){
+            $("#search_result_content").append('<div class="search_loading_hint">'+ loading_hint +'</div>');
+            waiting_search = true;
+            return;
+        }
+        if(!search_content["curr"] && search_content["others"].length == 0){
+            $("#search_result_content").append('<div class="search_loading_hint">'+ loading_hint +'</div>');
+            waiting_search = true;
+            return;
+        }
+        $("#search_curr_result > .hint").addClass("searching");
+        var search_keywords = $("#search_input").val();
+        search_doc(search_content["curr"], "#search_curr_result");
+        var doc_id = 0;
+        for(var url in search_content["others"]){
+            search_doc(search_content["others"][url], "#search_others_result", doc_id);
+            doc_id += 1;
+        }
+        addSearchResultClickListener();
+        function search_doc(data, containerId, doc_id="curr"){
+            var doc_id_str = 'result_wrapper_' + doc_id;
+            var findFlag = false;
+            var items = data[2];
+            for(var url in items){
+                var content = items[url];
+                search_keywords = search_keywords.trim();
+                if(search_keywords.length <= 0){
+                    return;
+                }
+                var keywords = search_keywords.split(" ");
+                var find = false;
+                var find_strs = "";
+                for(var i in keywords){
+                    var keyword = keywords[i];
+                    if(content["title"] && content["title"].indexOf(keyword) >= 0){
+                        find = true;
+                    }
+                }
+                if(content["content"] && content["content"].length > 0){
+                    find_strs = search(keywords, content["content"]);
+                    if(find_strs.length > 0){
+                        find = true; 
+                    }
+                }
+                if(find){
+                    if(!findFlag){
+                        $("#search_result_name").append('<li result_id="'+ doc_id_str +'" class="pointer">'+ data[1] +'</li>');
+                        $(containerId).append('<div id="'+ doc_id_str + '"><div class="hint">'+data[1]+'</div></div>');
+                        findFlag = true;
+                    }
+                    $("#"+doc_id_str).append('<li><a href="'+ url + '?highlight=' + search_keywords + '"><h1>'+ (content["title"]?content["title"]:url) +
+                            '</h1><div>' + find_strs + '</div></a></li>');
+                }
+            }
+        }
+        $("#search_curr_result > .hint").removeClass("searching");
+    }
+    function downloadJson(url, callback, arg1=null, arg2=null, arg3=null){
+        $.ajax({
+            type: "GET",
+            url: url,
+            contentType: "application/json",
+            dataType: "json",
+            success: function(data){
+                callback(data, arg1, arg2, arg3);
+            },
+            error: function(){
+                $("#search_result_content").empty();
+                $("#search_result_content").append('<div class="search_download_err_hint">'+ download_err_hint + ': '+ url +'</div>');
+            }
+        });
+    }
+    highlightKeywords();
+});
+
+function focusItems(id, contrainerId, offset=0, classname=null){
+    var elementTop = 0;
+    if(classname){
+        elementTop = $("."+classname)[0].offsetTop - offset;
+    }else{
+        elementTop = $("#"+id)[0].offsetTop - offset;
+    }
+    
+    $("#"+contrainerId).animate({scrollTop: elementTop},500);
+}
+
+
+function addSearchResultClickListener(){
+    $("#search_result_name > li").on("click", function(e){
+        var targetId = e.target.attributes.result_id.value;
+        focusItems(targetId, "search_result_content", $("#search_title").height() + $("#search_result .hint").height());
+    });
+}
+
+function highlightKeywords(){
+    var highlight_keywords = getQueryVariable("highlight");
+    if(highlight_keywords){
+        // add search result btn
+        var html = document.getElementsByTagName("html")[0];
+        var lang = html.lang.split("-")[0].toLowerCase()
+        let strs = {
+            "zh": {
+                "Previous": "上一个",
+                "Next": "下一个"
+            }
+        }
+        if(lang in strs){
+            var pre_name = strs[lang]["Previous"];
+            var next_name = strs[lang]["Next"];
+        }else{
+            var pre_name = "Previous";
+            var next_name = "Next";
+        }
+        $("body").append('<div id="search_ctrl_btn">' +
+            '<div class="previous"><span class="icon"></span><span>'+ pre_name +'</span></div>' + 
+            '<div id="remove_search"><span class="icon"></span></div>' +
+            '<div class="next"><span>' + next_name +'</span><span class="icon"></span></div>' + 
+            '</div>');
+        var highlight_keywords = decodeURI(highlight_keywords);
+        highlight_keywords = highlight_keywords.split(" ");
+        for(var i=0; i<highlight_keywords.length; ++i){
+            console.log(highlight_keywords[i]);
+            $('#content_body').highlight(highlight_keywords[i]);
+        }
+        if($(".search_highlight").length <= 0){
+            return;
+        }
+        window.scrollTo({
+            top: $(".search_highlight")[0].offsetTop - window.screen.height / 3,
+            behavior: "smooth" 
+        });
+        $($(".search_highlight")[0]).addClass("selected_highlight")
+        $("#remove_search").on("click", function(){
+            $('.search_highlight').removeClass("search_highlight");
+            $('.selected_highlight').removeClass("selected_highlight");
+            $("#search_ctrl_btn").hide();
+        });
+        var currSearchIdx = 0
+        $("#search_ctrl_btn > .previous").on("click", function(){
+            let old = currSearchIdx;
+            currSearchIdx -= 1;
+            if (currSearchIdx < 0){
+                currSearchIdx = $(".search_highlight").length - 1;
+            }
+            window.scrollTo({
+                top: $(".search_highlight")[currSearchIdx].offsetTop - window.screen.height / 3,
+                behavior: "smooth" 
+            });
+            $($(".search_highlight")[old]).removeClass("selected_highlight")
+            $($(".search_highlight")[currSearchIdx]).addClass("selected_highlight")
+        });
+        $("#search_ctrl_btn > .next").on("click", function(){
+            let old = currSearchIdx;
+            currSearchIdx += 1;
+            if (currSearchIdx >= $(".search_highlight").length){
+                currSearchIdx = 0;
+            }
+            window.scrollTo({
+                top: $(".search_highlight")[currSearchIdx].offsetTop - window.screen.height / 3,
+                behavior: "smooth" 
+            });
+            $($(".search_highlight")[old]).removeClass("selected_highlight")
+            $($(".search_highlight")[currSearchIdx]).addClass("selected_highlight")
+        });
+    }
+}
+function getQueryVariable(variable)
+{
+       var query = window.location.search.substring(1);
+       var vars = query.split("&");
+       for (var i=0;i<vars.length;i++) {
+               var pair = vars[i].split("=");
+               if(pair[0] == variable){return pair[1];}
+       }
+       return(false);
+}
+function search(keywords, content, show_length = 15){
+    if(keywords.length <= 0){
+        return "";
+    }
+    function _search(keywords, content, idx_rel = 0){
+        var idxs = [];
+        for(var i in keywords){
+            var keyword = keywords[i];
+            var idx = content.indexOf(keyword);
+            if(idx >= 0){
+                idxs.push({
+                    "idx": idx + idx_rel,
+                    "len": keyword.length
+                });
+                _idxs = _search([keyword], content.substr(idx + keyword.length), idx_rel + idx + keyword.length);
+                idxs = idxs.concat(_idxs);
+            }
+        }
+        return idxs
+    }
+    var find_strs = "";
+    idxs = _search(keywords, content);
+    idxs = idxs.sort((a, b)=> a.idx-b.idx);
+    var idx_last = -1;
+    var len_last = 0;
+    for(var i=0; i<idxs.length; ++i){
+        var idx = idxs[i]['idx'];
+        var len = idxs[i]['len'];
+
+        if(idx_last >= 0 && (idx - idx_last -len_last) < show_length){ // last keyword too close
+            find_strs += content.substr(idx_last + len_last, idx - (idx_last + len_last)) + '<code class="search_highlight">'+ content.substr(idx, len) +'</code>'
+        }else{
+            var start_idx = (idx - show_length < 0) ? 0 : (idx - show_length);
+            find_strs += '...' + content.substr(start_idx,  idx - start_idx) +
+                '<code class="search_highlight">' + content.substr(idx,  len) + 
+                '</code>';
+        }
+        var idx_next = -1;
+        if(i < idxs.length -1){
+            idx_next = idxs[i + 1]['idx'];
+        }
+        if(idx_next >= 0 && ((idx_next - idx - len) < show_length) ){ // next keywor too close
+        }else{
+            find_strs += content.substr(idx + len,  show_length) + '...';
+        }
+        idx_last = idx;
+        len_last = len;
+    }
+    return find_strs
+}
+

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 0
out/static/js/theme_default/jquery.min.js


+ 474 - 0
out/static/js/theme_default/main.js

@@ -0,0 +1,474 @@
+
+(function () {
+    var elements = document.getElementsByTagName("pre");
+    for(var i=0; i<elements.length; ++i){
+        elements[i].classList.add("language-none");
+        elements[i].classList.add("line-numbers");
+    }
+    // $('pre').addClass("language-none");
+    // $('pre').addClass("line-numbers").css("white-space", "pre-wrap");
+}());
+
+window.onload = function(){
+}
+
+var sleep = function(time) {
+    var startTime = new Date().getTime() + parseInt(time, 10);
+    while(new Date().getTime() < startTime) {}
+};
+
+$(document).ready(function(){
+    $("#sidebar ul .show").slideDown(200);
+    registerSidebarClick();
+    addTOC();
+    addSequence();
+    var has_sidebar = document.getElementById("sidebar_wrapper");
+    if(has_sidebar){
+        addSplitter();
+        focusSidebar();
+    }
+    addAnchor();
+    registerOnWindowResize(has_sidebar);
+    hello();
+    imageViewer();
+    if(false){
+        addPrintPage();
+    }
+    addTocMobileListener();
+    addTabsetListener();
+});
+
+var sidebar_width = "300px";
+var sidebar_width_is_percent = false;
+try{
+    if(isNaN(sidebar_width)){
+        if(sidebar_width.endsWith("px")){
+            sidebar_width = parseInt(sidebar_width.substr(0, sidebar_width.length-2));
+        }else if(sidebar_width.endsWith("%")){
+            sidebar_width = parseInt(sidebar_width.substr(0, sidebar_width.length-1));
+            sidebar_width_is_percent = true;
+        }else{
+            sidebar_width = parseInt(sidebar_width);
+        }
+    }
+}catch(err){
+    alert('plugin theme env sidebar_width value error, e.g. 300 or "300px" or "30%", not ' + sidebar_width);
+}
+
+function menu_show(show)
+{
+    if(show){
+        $("#menu_wrapper").addClass("m_menu_fixed");
+        $("#menu").addClass("close");
+        $("#to_top").addClass("m_hide");
+        $("#sidebar_wrapper").show(100);
+        $(".gutter").css("display", "block");
+        focusSidebar();
+    }else{
+        $("#menu_wrapper").removeClass("m_menu_fixed");
+        $("#menu").removeClass("close");
+        $("#to_top").removeClass("m_hide");
+        $("#sidebar_wrapper").hide(100);
+        $(".gutter").css("display", "none");
+        $("#article").css("width", "100%"); // recover set by splitter
+    }
+}
+function menu_toggle(){
+    if(!$("#sidebar_wrapper").is(':visible')){ // show
+        menu_show(true);
+    }else{ // hide
+        menu_show(false);
+    }
+}
+
+function registerSidebarClick(){
+    function show_collapse_item(a_obj){
+        var o_ul = a_obj.next();
+        var collapsed = !o_ul.hasClass("show");
+        if(collapsed){
+            o_ul.slideDown(200);
+            o_ul.removeClass("collapsed");
+            o_ul.addClass("show");
+            a_obj.children(".sub_indicator").removeClass("sub_indicator_collapsed");
+        }else {
+            o_ul.slideUp(200);
+            o_ul.removeClass("show");
+            o_ul.addClass("collapsed");
+            a_obj.children(".sub_indicator").addClass("sub_indicator_collapsed");
+        }
+    }
+    $("#menu").bind("click", function(e){
+        menu_toggle();
+    });
+    $("#navbar_menu_btn").bind("click", function(e){
+        $("#navbar_items").toggle();
+    });
+    var theme = getTheme();
+    setTheme(theme);
+    $("#themes").bind("click", function(e){
+        var theme = getTheme();
+        if(theme == "light"){
+            setTheme("dark");
+        }else {
+            setTheme("light");
+        }
+    });
+    $("#to_top").bind("click", function(e){
+        window.scrollTo({
+                            top: 0, 
+                            behavior: "smooth" 
+                        });
+        return false;
+    });
+    $("#sidebar ul li > a").bind("click", function(e){
+        var is_click_indicator = $(e.target).hasClass("sub_indicator");
+        var a_obj = $(this);
+        if(a_obj.attr("href") == window.location.pathname){
+            show_collapse_item(a_obj);
+            return false;
+        }
+        show_collapse_item(a_obj);
+        if(is_click_indicator){ // click indicator, only collapse, not jump to link
+            return false;
+        }
+        var screenW = $(window).width();
+        if(screenW > 900){
+            return;
+        }
+        link_href = $(this).attr("href").split(location.host);
+        if(link_href.length > 1){
+            link_href = link_href[1];
+        }else{
+            link_href = link_href[0];
+        }
+        url_href = location.href.split(location.host)[1]
+        let link_url = link_href.split("#")[0];
+        let sub = $(this).next();
+        var haveSub = false;
+        if(sub && sub.prop("nodeName")){
+            haveSub = sub.prop("nodeName").toLowerCase() == "ul";
+        }
+        if((link_href != decodeURIComponent(url_href) || !haveSub) && location.pathname == link_url){ // current page, and jump to header, close sidebar
+            location.href = link_href;
+            menu_toggle();
+        }
+    });
+}
+
+function hello(){
+    console.log('\n\n\
+     _                _            \n\
+    | |              | |           \n\
+    | |_ ___  ___  __| | ___   ___ \n\
+    | __/ _ \\/ _ \\/ _` |/ _ \\ / __|\n\
+    | ||  __/  __/ (_| | (_) | (__ \n\
+     \\__\\___|\\___|\\__,_|\\___/ \\___|\n\
+                                         \n\
+                 generated by teedoc:            \n\
+                                                 \n\
+                 https://github.com/teedoc/teedoc\n\
+                                                 \n\n\n\
+');
+}
+
+
+function addTOC(){
+    if(!document.getElementById("toc_content"))
+        return;
+    tocbot.init({
+        // Where to render the table of contents.
+        tocSelector: '#toc_content',
+        // Where to grab the headings to build the table of contents.
+        contentSelector: '#article_content',
+        // Which headings to grab inside of the contentSelector element.
+        headingSelector: 'h1, h2, h3, h4',
+        // For headings inside relative or absolute positioned containers within content.
+        hasInnerContainers: true,
+        });
+}
+
+function toChineseNumber(n) {
+    if (!Number.isInteger(n) && n < 0) {
+      throw Error('请输入自然数');
+    }
+
+    const digits = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
+    const positions = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿', '十亿', '百亿', '千亿'];
+    const charArray = String(n).split('');
+    let result = '';
+    let prevIsZero = false;
+    //处理0  deal zero
+    for (let i = 0; i < charArray.length; i++) {
+      const ch = charArray[i];
+      if (ch !== '0' && !prevIsZero) {
+        result += digits[parseInt(ch)] + positions[charArray.length - i - 1];
+      } else if (ch === '0') {
+        prevIsZero = true;
+      } else if (ch !== '0' && prevIsZero) {
+        result += '零' + digits[parseInt(ch)] + positions[charArray.length - i - 1];
+      }
+    }
+    //处理十 deal ten
+    if (n < 100) {
+      result = result.replace('一十', '十');
+    }
+    return result;
+  }
+
+function addSequence(){
+    if(!tocbot._parseContent){
+        return;
+    }
+    var headings = tocbot._parseContent.selectHeadings(document.getElementById("article_content"), tocbot.options.headingSelector);
+    var counth2=0, counth3=0, counth4=0;
+    var html = document.getElementsByTagName("html")[0];
+    var isZh = html.lang.substring(0, 2).toLowerCase() == "zh";
+    for(var i=0; i<html.classList.length; ++i){
+        if(html.classList[i] == "heading_no_counter"){
+            return;
+        }
+    }
+
+    var headerJoiner = ".";
+
+    for(var i=0; i<headings.length; ++i){
+        var headerEnd = ". ";
+        if(headings[i].tagName == "H1"){
+            counth2 = 0;
+            continue;
+        }
+
+        if(headings[i].tagName == "H2"){
+            counth2 += 1;
+            counth3 = 0;
+            var counts = [counth2];
+            if (isZh){
+                var counts = counts.map(toChineseNumber);
+                headerEnd = "、";
+            }
+        } else if(headings[i].tagName == "H3"){
+            counth3 += 1;
+            counth4 = 0;
+            var counts = [counth2, counth3];
+        } else if(headings[i].tagName == "H4"){
+            counth4 += 1;
+            var counts = [counth2, counth3, counth4];
+        }
+        var seq = counts.join(headerJoiner) + headerEnd
+        headings[i].insertAdjacentHTML('afterbegin', '<span class="sequence">' + seq + '</span>');
+    }
+}
+
+
+function getSplitter(){
+    var sizes = localStorage.getItem("splitter_w");
+    if(sizes){
+        try
+        {
+        sizes = JSON.parse(sizes);
+        }
+        catch(err)
+        {
+            sizes = false;
+        }
+    }
+    if(!sizes){
+        var screenW = $(window).width();
+        var split_w = 0;
+        if(!sidebar_width_is_percent){
+            split_w = parseInt(sidebar_width/screenW*100);
+        }else{
+            split_w = sidebar_width;
+        }
+        sizes = [split_w, 100-split_w];
+        setSplitter(sizes);
+    }
+    return sizes;
+}
+function setSplitter(sizes){
+    localStorage.setItem("splitter_w", JSON.stringify(sizes));
+}
+
+var hasSplitter = false;
+
+function createSplitter(){
+    var split = Split(["#sidebar_wrapper", "#article"],{
+        gutterSize: 3,
+        gutterAlign: 'start',
+        minSize: 200,
+        elementStyle: function (dimension, size, gutterSize) {
+            return {
+                'width': 'calc(' + size + '% - ' + gutterSize + 'px)',
+            }
+        },
+        onDragEnd: function (sizes) {
+            setSplitter(sizes)
+        },
+    });
+    hasSplitter = true;
+    var screenW = $(window).width();
+    var sizes = getSplitter();
+    split_w = parseInt(sizes[0]);
+    if(isNaN(split_w) || (split_w + 20) >= screenW){
+    if(!sidebar_width_is_percent){
+    split_w = parseInt(sidebar_width/screenW*100);
+    }else{
+    split_w = sidebar_width;
+    }
+    }
+    split.setSizes([split_w, 100 - split_w]);
+    $(".gutter").append('<div class="gutter_icon"></div>');
+    $(".gutter").hover(function(){
+        $(".gutter").css("width", "10px");
+        $(".gutter_icon").css("width", "10px");
+    },function(){
+        $(".gutter").css("width", "3px");
+        $(".gutter_icon").css("width", "3px");
+    });
+}
+
+function addSplitter(){
+    var screenW = $(window).width();
+    if(screenW > 900)
+    {
+        createSplitter();
+    }
+}
+
+function registerOnWindowResize(has_sidebar){
+    window.onresize = function(){
+        var screenW = $(window).width();
+        if(!has_sidebar){
+            return;
+        }
+        if(screenW < 900){
+            $("#sidebar_wrapper").removeAttr("style");
+            if($("#menu").hasClass("close")){
+                $("#sidebar_wrapper").css("display", "block");    
+            }
+            $(".gutter").css("display", "none");
+            $("#article").css("width", "100%");
+        }else{
+            if(!hasSplitter){
+                createSplitter();
+            }
+            if($("#sidebar_wrapper").css("display") != "none"){
+                $(".gutter").css("display", "block");
+            }
+        }
+    }
+}
+
+function focusSidebar(){
+    var windowH = window.innerHeight;
+    var active = $("#sidebar .active")[0];
+    if(!active)
+        return;
+    var offset = active.offsetTop;
+    if(offset > windowH/2){
+        $("#sidebar .show").scrollTop(offset);
+    }
+}
+
+function imageViewer(){
+    var content_e = document.getElementById("content_body");
+    if(!content_e){
+        content_e = document.getElementById("page_wrapper");
+    }
+    const gallery = new Viewer(content_e);
+}
+
+function addAnchor(){
+    $("#content_body h2, #content_body h3, #content_body h4, #content_body h5").each(function(){
+        if($(this).attr("id")){
+            $(this).append('<a class="anchor" href="#'+ $(this).attr("id") +'">#</a>');
+        }
+    });
+}
+
+function rerender(){
+    Prism.highlightAll();
+}
+
+function addPrintPage(){
+    if(!$("#article_info_right")){
+        return;
+    }
+    $("#article_info_right").append('<div id="print_page"></div>');
+
+    var beforePrint = function(){
+        // update style changed by js:
+        $("#article").css("width", "100%");
+        // rerender for proper output
+        rerender();
+    }
+    var afterPrint = function() {
+        // location.reload();
+    }
+    if (window.matchMedia) {
+        var mediaQueryList = window.matchMedia('print'); 
+        mediaQueryList.addListener(function(mql) {
+            if (mql.matches) {
+                beforePrint();
+            } else {
+                afterPrint();
+            }
+        });
+    }
+    window.onbeforeprint = beforePrint;
+    window.onafterprint = afterPrint;
+    $("#print_page").click(function(){
+        window.print();
+    });
+}
+
+function addTocMobileListener(){
+    $("#toc_btn").click(function(){
+        if($("#toc_wrapper").hasClass("show")){
+            $("#toc_wrapper").removeClass("show");
+        }else{
+            $("#toc_wrapper").addClass("show");
+        }
+    });
+    $("#toc_wrapper").click(function(){
+        if($("#toc_btn").is(":visible")){
+            $("#toc_wrapper").removeClass("show");
+        }
+    });
+}
+
+function addTabsetListener(){
+    $(".tabset-tab-label").on("click", function(){
+        let this_obj = $(this);
+        // already active, do nothing
+        if(this_obj.hasClass("tabset-tab-active")){
+            return;
+        }
+        // remove all active tabset-tab-active and tabset-text-active class from all have class that startswith tabset-id-,
+        // then add active class to the same idx tab-label and tab-text
+        let tabset_id = null;
+        let same_id_tabsets = [];
+        let old_idx = this_obj.parent().find(".tabset-tab-active").attr("idx");
+        let new_idx = this_obj.attr("idx");
+        let tabset_obj = this_obj.parent().parent().parent();
+        tabset_obj.attr("class").split(' ').forEach(function(item){
+            if(item.startsWith("tabset-id-")){
+                tabset_id = item;
+            }
+        });
+        if(!tabset_id){
+            same_id_tabsets = [tabset_obj[0]]; // to DOM element
+        }else{
+            same_id_tabsets = document.getElementsByClassName(tabset_id);
+        }
+        for (let tabset of same_id_tabsets) {
+            console.log(tabset);
+            let tab_labels = tabset.getElementsByClassName("tabset-tab-label");
+            tab_labels[old_idx].classList.remove("tabset-tab-active");
+            tab_labels[new_idx].classList.add("tabset-tab-active");
+            let tab_texts = tabset.getElementsByClassName("tabset-text");
+            tab_texts[old_idx].classList.remove("tabset-text-active");
+            tab_texts[new_idx].classList.add("tabset-text-active");
+        }
+    });
+}

+ 54 - 0
out/static/js/theme_default/pre_main.js

@@ -0,0 +1,54 @@
+(function(){
+    var theme = getTheme();
+    setTheme(theme);
+}());
+
+function addCss(filename) {
+    var head = document.getElementsByTagName('head')[0];
+    var link = document.createElement('link');
+    link.rel = 'stylesheet';
+    link.type = 'text/css';
+    link.href = filename;
+    head.appendChild(link);
+}
+function removejscssfile(filename, filetype) {
+    var targetelement = (filetype == "js") ? "script" : (filetype == "css") ? "link" : "none"
+    var targetattr = (filetype == "js") ? "src" : (filetype == "css") ? "href" : "none"
+    var allsuspects = document.getElementsByTagName(targetelement)
+    for (var i = allsuspects.length; i >= 0; i--) {
+        if (allsuspects[i] && allsuspects[i].getAttribute(targetattr) != null && allsuspects[i].getAttribute(targetattr).indexOf(filename) != -1)
+            allsuspects[i].parentNode.removeChild(allsuspects[i])
+    }
+}
+
+
+function getTheme(){
+    var t = localStorage.getItem("theme");
+    if(!t){
+        t = "light";
+        setTheme(t);
+    }
+    return t;
+}
+function setTheme(theme){
+    var obj = document.getElementById("themes");
+    if(theme=="dark"){
+        if(obj){
+            obj.classList.remove("light");
+            obj.classList.add("dark");
+        }
+        document.getElementsByTagName("html")[0].classList.add("dark");
+        // load dark and light togher, distingush by .dark class instead use single css file
+        // removejscssfile("/static/css/theme_default/light.css", "css");
+        // addCss("/static/css/theme_default/dark.css");
+    }else{
+        if(obj){
+            obj.classList.remove("dark");
+            obj.classList.add("light");
+        }
+        document.getElementsByTagName("html")[0].classList.remove("dark");
+        // removejscssfile("/static/css/theme_default/dark.css", "css");
+        // addCss("/static/css/theme_default/light.css");
+    }
+    localStorage.setItem("theme", theme);
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 0
out/static/js/theme_default/split.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
out/static/js/theme_default/tocbot.min.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 9 - 0
out/static/js/theme_default/viewer.min.js


+ 1 - 0
out/static/search_index/index.json

@@ -0,0 +1 @@
+{"/doc1/":["Doc1","/static/search_index/index_0.json"],"/":["Pages","/static/search_index/index_1.json"]}

+ 1 - 0
out/static/search_index/index_0.json

@@ -0,0 +1 @@
+{"/doc1/index.html":{"title":"Article title","content":" title: Article title keywords: keyword1, keyword2 desc: description for this article date: 2022 09 01 ## Add article * Create markdown file with file name end with `.md` in the directory of this file, e.g. `first.md` * Add link in `sidebar.yaml` ```markdown items: label: Brief file: README.md label: First file: first.md ``` ## More example More visit: [teedoc.neucrack.com](https://teedoc.neucrack.com/) or [teedoc.github.io](https://teedoc.github.io/) And more example see: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) and [https://github.com/teedoc/template](https://github.com/teedoc/template) , and [sipeed wiki](https://github.com/sipeed/sipeed_wiki) ## 添加文章 * 在本文件所在目录创建 markdown 以 `.md` 结尾的文件,比如 `first.md` * 在 `sidebar.yaml` 中添加侧边栏链接 ```markdown items: label: Brief file: README.md label: First file: first.md ``` ## 更多例子 更多请访问: [teedoc.neucrack.com](https://teedoc.neucrack.com/) 或者 [teedoc.github.io](https://teedoc.github.io/) 更多例子访问: [github.com/teedoc/teedoc.github.io](https://github.com/teedoc/teedoc.github.io) 或者 [https://github.com/teedoc/template](https://github.com/teedoc/template) , 或 [sipeed wiki](https://github.com/sipeed/sipeed_wiki)"}}

+ 1 - 0
out/static/search_index/index_1.json

@@ -0,0 +1 @@
+{"/404.html":{"title":"","content":" layout: 404.html "},"/index.html":{"title":"my_site","content":" title: my_site keywords: my_site desc: my_site, generated with teedoc, a static site generator id: home_page <div> <h1><span>my_site</span></h1> <h3>好耶~ 网站出现啦!123</h3> </div> <div id \"big_btn_wrapper\"> <a class \"btn\" href \"/doc1/\">See Doc1</a> </div>"}}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 0
out/teedoc-plugin-markdown-parser/mermaid.min.js


+ 4 - 0
pages/index/404.md

@@ -0,0 +1,4 @@
+---
+layout: 404.html
+---
+

+ 19 - 0
pages/index/README.md

@@ -0,0 +1,19 @@
+
+---
+title: my_site
+keywords: my_site
+desc: my_site, generated with teedoc, a static site generator
+id: home_page
+---
+
+
+
+
+<div>
+    <h1><span>my_site</span></h1>
+    <h3>好耶~ 网站出现啦!123</h3>
+</div>
+<div id="big_btn_wrapper">
+    <a class="btn" href="/doc1/">See Doc1</a>
+</div>
+

+ 5 - 0
pages/index/config.json

@@ -0,0 +1,5 @@
+{
+    "import": "config",
+    "class": "md_page",
+    "name": "Pages"
+}

BIN
pages/index/favicon.ico


+ 66 - 0
site_config.json

@@ -0,0 +1,66 @@
+{
+    "site_name": "mysite",
+    "site_slogon": "",
+    "site_root_url": "/",
+    "site_domain": "my_name.github.io",
+    "site_protocol": "https",
+    "config_template_dir": "config",
+    "route": {
+        "docs": {
+            "/doc1/": "docs/doc1"
+        },
+        "pages": {
+            "/": "pages/index"
+        },
+        "assets": {
+            "/static/": "static"
+        }
+    },
+    "executable": {
+        "python": "python3",
+        "pip": "pip3"
+    },
+    "plugins": {
+        "teedoc-plugin-markdown-parser":{
+            "from": "pypi",
+            "config": {
+            }
+        },
+        "teedoc-plugin-theme-default":{
+            "from": "pypi",
+            "config": {
+                "dark": true,
+                "show_print_page": false,
+                "env":{
+                    "main_color": "#4caf7d"
+                }
+            }
+        },
+        "teedoc-plugin-search":{
+            "from": "pypi",
+            "config": {
+                "search_hint": "Search"
+            }
+        },
+        "teedoc-plugin-assets": {
+            "from": "pypi",
+            "config": {
+                "header_items": [
+                    "/static/css/custom.css"
+                ],
+                "footer_items": [
+                    "/static/js/custom.js"
+                ],
+                "env":{
+                    "main_color": "#4caf7d",
+                    "second_color": "#0a7d43"
+                }
+            }
+        }
+    },
+    "rebuild_changes_delay": 1,
+    "robots":{
+        "User-agent": "*"
+    },
+    "layout_root_dir": "layout"
+}

+ 15 - 0
static/css/custom.css

@@ -0,0 +1,15 @@
+
+
+#home_page h1 {
+    color: #4caf7d;
+}
+.dark #home_page h1{
+    color: white;
+}
+
+@media screen and (max-width: 900px) {
+    #home_page h1 {
+        color: #eb4848;
+    }
+}
+

+ 0 - 0
static/js/custom.js


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott