From dd905efb2ae9b1f84b25269d99ff00d11a6b21eb Mon Sep 17 00:00:00 2001 From: wangjiezhe Date: Thu, 10 Oct 2024 02:17:40 +0000 Subject: [PATCH] Bump hexo-theme-next from `363f0f4` to `6128042` (#117) Bumps [hexo-theme-next](https://github.com/wangjiezhe/hexo-theme-next) from `363f0f4` to `6128042`. - [Commits](https://github.com/wangjiezhe/hexo-theme-next/compare/363f0f44ca939a79f95202bdba098ed1f228c440...6128042076053b16310743b0f1a285b489fc37ea) --- updated-dependencies: - dependency-name: hexo-theme-next dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- archives/2009/07/index.html | 46 +- archives/2009/index.html | 46 +- archives/2012/06/index.html | 46 +- archives/2012/08/index.html | 46 +- archives/2012/12/index.html | 46 +- archives/2012/index.html | 46 +- archives/2013/05/index.html | 46 +- archives/2013/index.html | 46 +- archives/2014/03/index.html | 46 +- archives/2014/04/index.html | 46 +- archives/2014/05/index.html | 46 +- archives/2014/08/index.html | 46 +- archives/2014/index.html | 46 +- archives/2015/08/index.html | 46 +- archives/2015/index.html | 46 +- archives/2018/10/index.html | 46 +- archives/2018/index.html | 46 +- archives/2019/09/index.html | 46 +- archives/2019/10/index.html | 46 +- archives/2019/11/index.html | 46 +- archives/2019/12/index.html | 46 +- archives/2019/index.html | 46 +- archives/2020/04/index.html | 46 +- archives/2020/05/index.html | 46 +- archives/2020/06/index.html | 46 +- archives/2020/07/index.html | 46 +- archives/2020/08/index.html | 46 +- archives/2020/index.html | 46 +- archives/2021/03/index.html | 46 +- archives/2021/04/index.html | 46 +- archives/2021/05/index.html | 46 +- archives/2021/07/index.html | 46 +- archives/2021/10/index.html | 46 +- archives/2021/index.html | 46 +- archives/2022/02/index.html | 46 +- archives/2022/05/index.html | 46 +- archives/2022/index.html | 46 +- archives/2023/03/index.html | 46 +- archives/2023/index.html | 46 +- archives/2024/03/index.html | 46 +- archives/2024/07/index.html | 46 +- archives/2024/08/index.html | 46 +- archives/2024/09/index.html | 46 +- archives/2024/index.html | 46 +- archives/index.html | 46 +- archives/page/2/index.html | 46 +- archives/page/3/index.html | 46 +- archives/page/4/index.html | 46 +- categories/LaTeX/index.html | 46 +- categories/Linux/index.html | 46 +- categories/Linux/page/2/index.html | 46 +- categories/Windows/index.html | 46 +- categories/index.html | 48 +- .../\345\215\232\345\256\242/index.html" | 46 +- .../\344\270\273\351\242\230/index.html" | 46 +- .../\345\255\230\346\241\243/index.html" | 46 +- .../\350\257\255\345\275\225/index.html" | 46 +- .../\345\267\245\344\275\234/index.html" | 46 +- .../\346\225\260\345\255\246/index.html" | 46 +- .../page/2/index.html" | 46 +- .../\345\210\206\346\236\220/index.html" | 46 +- .../index.html" | 46 +- .../\345\220\221\351\207\217/index.html" | 46 +- .../index.html" | 46 +- .../\346\225\260\345\210\227/index.html" | 46 +- .../\347\256\227\346\263\225/index.html" | 46 +- .../\350\275\257\344\273\266/index.html" | 46 +- .../index.html" | 46 +- .../\351\232\217\346\203\263/index.html" | 46 +- .../index.html" | 46 +- css/main.css | 41 +- fcircle/index.html | 46 +- index.html | 46 +- js/pjax.js | 2 +- js/sidebar.js | 12 +- js/third-party/search/local-search.js | 24 +- js/utils.js | 160 +-- links/index.html | 48 +- page/2/index.html | 46 +- page/3/index.html | 46 +- page/4/index.html | 46 +- page/5/index.html | 46 +- page/6/index.html | 46 +- page/7/index.html | 46 +- posts/2009-07-25-Xifengfu/index.html | 46 +- posts/2012-06-16-Saying-24-1/index.html | 46 +- posts/2012-06-17-Saying-24-2/index.html | 46 +- .../index.html | 46 +- posts/2012-12-20-Thinking-1/index.html | 46 +- posts/2013-05-09-Thinking-2/index.html | 46 +- posts/2014-03-01-Linux-Notes-1/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- posts/2014-03-16-Thinking-3/index.html | 46 +- posts/2014-03-19-Linux-Notes-2/index.html | 46 +- .../index.html | 46 +- posts/2014-04-20-Linux-Notes-3/index.html | 46 +- posts/2014-05-25-Thinking-4/index.html | 46 +- .../index.html | 46 +- posts/2015-08-20-Linux-Notes-4/index.html | 46 +- posts/2018-10-05-refactor-blog/index.html | 46 +- .../index.html | 46 +- posts/2018-10-29-Hexo-NexT-1/index.html | 46 +- posts/2018-10-29-Hexo-NexT-2/index.html | 46 +- posts/2018-10-29-Hexo-NexT-3/index.html | 46 +- posts/2019-09-04-Tai-1/index.html | 46 +- posts/2019-09-09-Paipu-review-1/index.html | 46 +- posts/2019-09-10-Tai-2/index.html | 46 +- posts/2019-09-14-Paipu-review-2/index.html | 46 +- .../index.html | 46 +- posts/2019-11-18-Tai-3/index.html | 46 +- posts/2019-12-10-2019-Canada-MO-P2/index.html | 46 +- .../index.html | 46 +- posts/2019-12-20-Paipu-review-3/index.html | 46 +- posts/2019-12-20-Use-webp-in-NexT/index.html | 46 +- posts/2020-04-01-Two-squares-1/index.html | 46 +- posts/2020-04-03-Two-squares-2/index.html | 50 +- posts/2020-04-03-Two-squares-3/index.html | 50 +- .../index.html | 46 +- posts/2020-04-11-Install-ArchWSL/index.html | 46 +- posts/2020-05-01-Reinstall-Windows/index.html | 46 +- posts/2020-05-12-Windows-commands/index.html | 46 +- posts/2020-06-22-FFmpeg-Commands/index.html | 46 +- .../index.html | 46 +- posts/2020-06-22-tkz-euclide-1/index.html | 46 +- posts/2020-07-04-tkz-euclide-2/index.html | 46 +- .../index.html | 46 +- posts/2020-07-06-Project-Euler-1/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../2021-03-20-Square-of-triangle/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- posts/2021-03-30-add-link-page/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- posts/2022-02-16-Definition-of-e/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- posts/2023-03-27-He-Qie-301-1/index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- .../index.html | 46 +- posts/2024-08-11-He-Qie-301-2/index.html | 46 +- .../index.html | 46 +- search.xml | 1118 ++++++++--------- sitemap.xml | 310 ++--- tags/ActiveX/index.html | 46 +- tags/ArchLinux/index.html | 46 +- tags/Awk/index.html | 46 +- tags/Blog/index.html | 46 +- tags/CTeX/index.html | 46 +- tags/ClassIn/index.html | 46 +- tags/Fedora/index.html | 46 +- tags/Gentoo/index.html | 46 +- tags/GoodNotes/index.html | 46 +- tags/Grep/index.html | 46 +- tags/Hexo/index.html | 46 +- tags/LaTeX/index.html | 46 +- tags/Lenovo/index.html | 46 +- tags/Linux/index.html | 46 +- tags/Linux/page/2/index.html | 46 +- tags/Loongson/index.html | 46 +- tags/MathType/index.html | 46 +- tags/Mathematica/index.html | 46 +- tags/Network/index.html | 46 +- tags/NexT/index.html | 46 +- tags/Nextcloud/index.html | 46 +- tags/Nginx/index.html | 46 +- tags/Notability/index.html | 46 +- tags/OpenBSD/index.html | 46 +- tags/Pearl24/index.html | 46 +- tags/Pipelight/index.html | 46 +- tags/Regular-expression/index.html | 46 +- tags/Rust/index.html | 46 +- tags/Sed/index.html | 46 +- tags/Shell/index.html | 46 +- tags/TikZ/index.html | 46 +- tags/Vim/index.html | 46 +- tags/Vultr/index.html | 46 +- tags/WSL/index.html | 46 +- tags/WebP/index.html | 46 +- tags/Wine/index.html | 46 +- tags/Zip/index.html | 46 +- tags/iPad/index.html | 46 +- tags/include/index.html | 46 +- tags/index.html | 48 +- tags/input/index.html | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\344\271\261\347\240\201/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\344\275\225\345\210\207/index.html" | 46 +- "tags/\345\205\250\347\255\211/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\345\216\213\347\274\251/index.html" | 46 +- .../index.html" | 46 +- "tags/\345\217\215\346\274\224/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\345\244\251\345\207\244/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\345\255\227\344\275\223/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\345\256\236\346\225\260/index.html" | 46 +- "tags/\345\257\271\346\225\260/index.html" | 46 +- .../index.html" | 46 +- "tags/\345\276\256\344\277\241/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\346\225\260\345\210\227/index.html" | 46 +- .../index.html" | 46 +- "tags/\346\226\260\345\206\240/index.html" | 46 +- "tags/\346\227\205\346\270\270/index.html" | 46 +- .../index.html" | 46 +- "tags/\346\230\276\345\215\241/index.html" | 46 +- .../index.html" | 46 +- "tags/\346\237\257\350\245\277/index.html" | 46 +- "tags/\346\242\257\345\275\242/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\347\224\273\345\233\276/index.html" | 46 +- "tags/\347\233\270\344\274\274/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\347\256\227\346\263\225/index.html" | 46 +- "tags/\347\264\240\346\225\260/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\347\275\221\350\257\276/index.html" | 46 +- .../index.html" | 46 +- "tags/\350\245\277\351\243\216/index.html" | 46 +- "tags/\350\247\206\351\242\221/index.html" | 46 +- .../index.html" | 46 +- .../index.html" | 46 +- "tags/\351\207\221\345\272\270/index.html" | 46 +- "tags/\351\233\200\351\255\202/index.html" | 46 +- "tags/\351\235\222\346\265\267/index.html" | 46 +- "tags/\351\235\242\347\247\257/index.html" | 46 +- "tags/\351\276\231\350\212\257/index.html" | 46 +- tools/index.html | 48 +- 258 files changed, 6630 insertions(+), 6599 deletions(-) diff --git a/archives/2009/07/index.html b/archives/2009/07/index.html index 5a2cd00cd..11e462178 100644 --- a/archives/2009/07/index.html +++ b/archives/2009/07/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2009/index.html b/archives/2009/index.html index f23538513..cab476dc9 100644 --- a/archives/2009/index.html +++ b/archives/2009/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2012/06/index.html b/archives/2012/06/index.html index 734374e2d..d9560df16 100644 --- a/archives/2012/06/index.html +++ b/archives/2012/06/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -698,8 +698,8 @@

如鱼饮水

- - + + diff --git a/archives/2012/08/index.html b/archives/2012/08/index.html index 62553819b..758852ae8 100644 --- a/archives/2012/08/index.html +++ b/archives/2012/08/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2012/12/index.html b/archives/2012/12/index.html index 6d6e39e73..97c027e87 100644 --- a/archives/2012/12/index.html +++ b/archives/2012/12/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2012/index.html b/archives/2012/index.html index 9a3f50fc9..f97dd2f9e 100644 --- a/archives/2012/index.html +++ b/archives/2012/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -738,8 +738,8 @@

如鱼饮水

- - + + diff --git a/archives/2013/05/index.html b/archives/2013/05/index.html index aecd75296..556ea78bc 100644 --- a/archives/2013/05/index.html +++ b/archives/2013/05/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2013/index.html b/archives/2013/index.html index c886e6735..c81cfc76d 100644 --- a/archives/2013/index.html +++ b/archives/2013/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2014/03/index.html b/archives/2014/03/index.html index 6135a9f0c..ecd377e15 100644 --- a/archives/2014/03/index.html +++ b/archives/2014/03/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -778,8 +778,8 @@

如鱼饮水

- - + + diff --git a/archives/2014/04/index.html b/archives/2014/04/index.html index 76640bc45..4537935a9 100644 --- a/archives/2014/04/index.html +++ b/archives/2014/04/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2014/05/index.html b/archives/2014/05/index.html index 1b5f52daf..d99a259d2 100644 --- a/archives/2014/05/index.html +++ b/archives/2014/05/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2014/08/index.html b/archives/2014/08/index.html index 65373b18e..b7d2bea62 100644 --- a/archives/2014/08/index.html +++ b/archives/2014/08/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2014/index.html b/archives/2014/index.html index a41eec409..56747422f 100644 --- a/archives/2014/index.html +++ b/archives/2014/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -838,8 +838,8 @@

如鱼饮水

- - + + diff --git a/archives/2015/08/index.html b/archives/2015/08/index.html index a0e2739e8..c884ac10c 100644 --- a/archives/2015/08/index.html +++ b/archives/2015/08/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2015/index.html b/archives/2015/index.html index e9f9528a3..47e2492aa 100644 --- a/archives/2015/index.html +++ b/archives/2015/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2018/10/index.html b/archives/2018/10/index.html index 5d1faf650..717bc0119 100644 --- a/archives/2018/10/index.html +++ b/archives/2018/10/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -758,8 +758,8 @@

如鱼饮水

- - + + diff --git a/archives/2018/index.html b/archives/2018/index.html index 247a3905c..0b364886d 100644 --- a/archives/2018/index.html +++ b/archives/2018/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -758,8 +758,8 @@

如鱼饮水

- - + + diff --git a/archives/2019/09/index.html b/archives/2019/09/index.html index 7fadbcc89..03de5f485 100644 --- a/archives/2019/09/index.html +++ b/archives/2019/09/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -738,8 +738,8 @@

如鱼饮水

- - + + diff --git a/archives/2019/10/index.html b/archives/2019/10/index.html index 35849685a..df8e329ff 100644 --- a/archives/2019/10/index.html +++ b/archives/2019/10/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2019/11/index.html b/archives/2019/11/index.html index 0f50dcec2..32d9a32d4 100644 --- a/archives/2019/11/index.html +++ b/archives/2019/11/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2019/12/index.html b/archives/2019/12/index.html index 5b86295ef..1a17b9e14 100644 --- a/archives/2019/12/index.html +++ b/archives/2019/12/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -738,8 +738,8 @@

如鱼饮水

- - + + diff --git a/archives/2019/index.html b/archives/2019/index.html index b86277e3e..3eed2591f 100644 --- a/archives/2019/index.html +++ b/archives/2019/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -858,8 +858,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/04/index.html b/archives/2020/04/index.html index 481b3e8d8..8504aa864 100644 --- a/archives/2020/04/index.html +++ b/archives/2020/04/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -758,8 +758,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/05/index.html b/archives/2020/05/index.html index d7596224b..57e6f642a 100644 --- a/archives/2020/05/index.html +++ b/archives/2020/05/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -698,8 +698,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/06/index.html b/archives/2020/06/index.html index 8ca05b12e..ee4b13cca 100644 --- a/archives/2020/06/index.html +++ b/archives/2020/06/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -718,8 +718,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/07/index.html b/archives/2020/07/index.html index 80849e3eb..197d19bdc 100644 --- a/archives/2020/07/index.html +++ b/archives/2020/07/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -718,8 +718,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/08/index.html b/archives/2020/08/index.html index e8bc2f264..22661840b 100644 --- a/archives/2020/08/index.html +++ b/archives/2020/08/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2020/index.html b/archives/2020/index.html index 0479d5be8..733fcd3e2 100644 --- a/archives/2020/index.html +++ b/archives/2020/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -938,8 +938,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/03/index.html b/archives/2021/03/index.html index 39abddefb..e4eca8c7f 100644 --- a/archives/2021/03/index.html +++ b/archives/2021/03/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -778,8 +778,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/04/index.html b/archives/2021/04/index.html index 2403f084a..fd20144e2 100644 --- a/archives/2021/04/index.html +++ b/archives/2021/04/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -698,8 +698,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/05/index.html b/archives/2021/05/index.html index 6d5c9095a..3ba2bec00 100644 --- a/archives/2021/05/index.html +++ b/archives/2021/05/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/07/index.html b/archives/2021/07/index.html index 416885133..2474c8483 100644 --- a/archives/2021/07/index.html +++ b/archives/2021/07/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/10/index.html b/archives/2021/10/index.html index f4f8ec820..543c8cfac 100644 --- a/archives/2021/10/index.html +++ b/archives/2021/10/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2021/index.html b/archives/2021/index.html index 7ca5b78c6..bc57a6043 100644 --- a/archives/2021/index.html +++ b/archives/2021/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -878,8 +878,8 @@

如鱼饮水

- - + + diff --git a/archives/2022/02/index.html b/archives/2022/02/index.html index 1b8696cae..0f3e1614b 100644 --- a/archives/2022/02/index.html +++ b/archives/2022/02/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -698,8 +698,8 @@

如鱼饮水

- - + + diff --git a/archives/2022/05/index.html b/archives/2022/05/index.html index 33f83f869..cfda4e103 100644 --- a/archives/2022/05/index.html +++ b/archives/2022/05/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2022/index.html b/archives/2022/index.html index 03940ddc8..7069291df 100644 --- a/archives/2022/index.html +++ b/archives/2022/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -718,8 +718,8 @@

如鱼饮水

- - + + diff --git a/archives/2023/03/index.html b/archives/2023/03/index.html index fde816889..8f20f4626 100644 --- a/archives/2023/03/index.html +++ b/archives/2023/03/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2023/index.html b/archives/2023/index.html index fd4c27b62..b664f9658 100644 --- a/archives/2023/index.html +++ b/archives/2023/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2024/03/index.html b/archives/2024/03/index.html index c43046ca7..e077950ee 100644 --- a/archives/2024/03/index.html +++ b/archives/2024/03/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2024/07/index.html b/archives/2024/07/index.html index 7d3fc52c1..faed7cfae 100644 --- a/archives/2024/07/index.html +++ b/archives/2024/07/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2024/08/index.html b/archives/2024/08/index.html index 17c0b3c01..681ebf2db 100644 --- a/archives/2024/08/index.html +++ b/archives/2024/08/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -718,8 +718,8 @@

如鱼饮水

- - + + diff --git a/archives/2024/09/index.html b/archives/2024/09/index.html index 4c0f0276e..82396d1ff 100644 --- a/archives/2024/09/index.html +++ b/archives/2024/09/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -678,8 +678,8 @@

如鱼饮水

- - + + diff --git a/archives/2024/index.html b/archives/2024/index.html index dff079e00..c25e2fb8f 100644 --- a/archives/2024/index.html +++ b/archives/2024/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -778,8 +778,8 @@

如鱼饮水

- - + + diff --git a/archives/index.html b/archives/index.html index da3365ff0..3b52b1947 100644 --- a/archives/index.html +++ b/archives/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1070,8 +1070,8 @@

如鱼饮水

- - + + diff --git a/archives/page/2/index.html b/archives/page/2/index.html index caa385439..b41f8e2b9 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1067,8 +1067,8 @@

如鱼饮水

- - + + diff --git a/archives/page/3/index.html b/archives/page/3/index.html index 36c578809..1d086856a 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1070,8 +1070,8 @@

如鱼饮水

- - + + diff --git a/archives/page/4/index.html b/archives/page/4/index.html index 3e7a60214..bd4d73301 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -787,8 +787,8 @@

如鱼饮水

- - + + diff --git a/categories/LaTeX/index.html b/categories/LaTeX/index.html index 8eea8b192..840ae1fc6 100644 --- a/categories/LaTeX/index.html +++ b/categories/LaTeX/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -764,8 +764,8 @@

LaTeX - - + + diff --git a/categories/Linux/index.html b/categories/Linux/index.html index 0d25149c3..4df29671c 100644 --- a/categories/Linux/index.html +++ b/categories/Linux/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -870,8 +870,8 @@

Linux - - + + diff --git a/categories/Linux/page/2/index.html b/categories/Linux/page/2/index.html index 3362bab4e..50d2a4609 100644 --- a/categories/Linux/page/2/index.html +++ b/categories/Linux/page/2/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

Linux - - + + diff --git a/categories/Windows/index.html b/categories/Windows/index.html index 50621f081..cf89774f9 100644 --- a/categories/Windows/index.html +++ b/categories/Windows/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -718,8 +718,8 @@

Windows - - + + diff --git a/categories/index.html b/categories/index.html index f28395de3..f0ed11b85 100644 --- a/categories/index.html +++ b/categories/index.html @@ -15,9 +15,9 @@ - + - + @@ -27,7 +27,7 @@ - + @@ -108,25 +108,25 @@
- @@ -674,8 +674,8 @@

分类 - - + + diff --git "a/categories/\345\215\232\345\256\242/index.html" "b/categories/\345\215\232\345\256\242/index.html" index 0c4030ce0..1c9fca9e0 100644 --- "a/categories/\345\215\232\345\256\242/index.html" +++ "b/categories/\345\215\232\345\256\242/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -807,8 +807,8 @@

博客 - - + + diff --git "a/categories/\345\215\232\345\256\242/\344\270\273\351\242\230/index.html" "b/categories/\345\215\232\345\256\242/\344\270\273\351\242\230/index.html" index 0bd5ad9c5..c933272c8 100644 --- "a/categories/\345\215\232\345\256\242/\344\270\273\351\242\230/index.html" +++ "b/categories/\345\215\232\345\256\242/\344\270\273\351\242\230/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -764,8 +764,8 @@

主题 - - + + diff --git "a/categories/\345\255\230\346\241\243/index.html" "b/categories/\345\255\230\346\241\243/index.html" index a096fddc5..9c586aa8d 100644 --- "a/categories/\345\255\230\346\241\243/index.html" +++ "b/categories/\345\255\230\346\241\243/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

存档 - - + + diff --git "a/categories/\345\255\230\346\241\243/\350\257\255\345\275\225/index.html" "b/categories/\345\255\230\346\241\243/\350\257\255\345\275\225/index.html" index 622da19f1..c5f50e58d 100644 --- "a/categories/\345\255\230\346\241\243/\350\257\255\345\275\225/index.html" +++ "b/categories/\345\255\230\346\241\243/\350\257\255\345\275\225/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

语录 - - + + diff --git "a/categories/\345\267\245\344\275\234/index.html" "b/categories/\345\267\245\344\275\234/index.html" index 3c96cae94..62628ec8a 100644 --- "a/categories/\345\267\245\344\275\234/index.html" +++ "b/categories/\345\267\245\344\275\234/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -744,8 +744,8 @@

工作 - - + + diff --git "a/categories/\346\225\260\345\255\246/index.html" "b/categories/\346\225\260\345\255\246/index.html" index aca6ad32a..8db64173d 100644 --- "a/categories/\346\225\260\345\255\246/index.html" +++ "b/categories/\346\225\260\345\255\246/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -870,8 +870,8 @@

数学 - - + + diff --git "a/categories/\346\225\260\345\255\246/page/2/index.html" "b/categories/\346\225\260\345\255\246/page/2/index.html" index 755925d4b..960544bf0 100644 --- "a/categories/\346\225\260\345\255\246/page/2/index.html" +++ "b/categories/\346\225\260\345\255\246/page/2/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -827,8 +827,8 @@

数学 - - + + diff --git "a/categories/\346\225\260\345\255\246/\345\210\206\346\236\220/index.html" "b/categories/\346\225\260\345\255\246/\345\210\206\346\236\220/index.html" index a62cfe5d0..bea2a0cc3 100644 --- "a/categories/\346\225\260\345\255\246/\345\210\206\346\236\220/index.html" +++ "b/categories/\346\225\260\345\255\246/\345\210\206\346\236\220/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

分析 - - + + diff --git "a/categories/\346\225\260\345\255\246/\345\210\235\347\255\211\346\225\260\350\256\272/index.html" "b/categories/\346\225\260\345\255\246/\345\210\235\347\255\211\346\225\260\350\256\272/index.html" index 5cfa64e95..324768efd 100644 --- "a/categories/\346\225\260\345\255\246/\345\210\235\347\255\211\346\225\260\350\256\272/index.html" +++ "b/categories/\346\225\260\345\255\246/\345\210\235\347\255\211\346\225\260\350\256\272/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

初等数论 - - + + diff --git "a/categories/\346\225\260\345\255\246/\345\220\221\351\207\217/index.html" "b/categories/\346\225\260\345\255\246/\345\220\221\351\207\217/index.html" index 9c7178739..74f4b814f 100644 --- "a/categories/\346\225\260\345\255\246/\345\220\221\351\207\217/index.html" +++ "b/categories/\346\225\260\345\255\246/\345\220\221\351\207\217/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

向量 - - + + diff --git "a/categories/\346\225\260\345\255\246/\345\271\263\351\235\242\345\207\240\344\275\225/index.html" "b/categories/\346\225\260\345\255\246/\345\271\263\351\235\242\345\207\240\344\275\225/index.html" index 42741b822..30b2b7058 100644 --- "a/categories/\346\225\260\345\255\246/\345\271\263\351\235\242\345\207\240\344\275\225/index.html" +++ "b/categories/\346\225\260\345\255\246/\345\271\263\351\235\242\345\207\240\344\275\225/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -761,8 +761,8 @@

平面几何 - - + + diff --git "a/categories/\346\225\260\345\255\246/\346\225\260\345\210\227/index.html" "b/categories/\346\225\260\345\255\246/\346\225\260\345\210\227/index.html" index 9a726231a..1d3b9454d 100644 --- "a/categories/\346\225\260\345\255\246/\346\225\260\345\210\227/index.html" +++ "b/categories/\346\225\260\345\255\246/\346\225\260\345\210\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

数列 - - + + diff --git "a/categories/\346\225\260\345\255\246/\347\256\227\346\263\225/index.html" "b/categories/\346\225\260\345\255\246/\347\256\227\346\263\225/index.html" index 222a89433..8587e218a 100644 --- "a/categories/\346\225\260\345\255\246/\347\256\227\346\263\225/index.html" +++ "b/categories/\346\225\260\345\255\246/\347\256\227\346\263\225/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

算法 - - + + diff --git "a/categories/\346\225\260\345\255\246/\350\275\257\344\273\266/index.html" "b/categories/\346\225\260\345\255\246/\350\275\257\344\273\266/index.html" index ec862ae0f..c7757233a 100644 --- "a/categories/\346\225\260\345\255\246/\350\275\257\344\273\266/index.html" +++ "b/categories/\346\225\260\345\255\246/\350\275\257\344\273\266/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

软件 - - + + diff --git "a/categories/\347\253\213\347\233\264\351\272\273\345\260\206/index.html" "b/categories/\347\253\213\347\233\264\351\272\273\345\260\206/index.html" index 145a5e68a..568d1633e 100644 --- "a/categories/\347\253\213\347\233\264\351\272\273\345\260\206/index.html" +++ "b/categories/\347\253\213\347\233\264\351\272\273\345\260\206/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -847,8 +847,8 @@

立直麻将 - - + + diff --git "a/categories/\351\232\217\346\203\263/index.html" "b/categories/\351\232\217\346\203\263/index.html" index 15ca971ff..71ed06989 100644 --- "a/categories/\351\232\217\346\203\263/index.html" +++ "b/categories/\351\232\217\346\203\263/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -787,8 +787,8 @@

随想 - - + + diff --git "a/categories/\351\232\217\346\203\263/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" "b/categories/\351\232\217\346\203\263/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" index 98d02a8bf..d764c2f40 100644 --- "a/categories/\351\232\217\346\203\263/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" +++ "b/categories/\351\232\217\346\203\263/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -744,8 +744,8 @@

忽然想到 - - + + diff --git a/css/main.css b/css/main.css index d8012ef4f..bfe68c401 100644 --- a/css/main.css +++ b/css/main.css @@ -3,6 +3,8 @@ --content-bg-color: #fff; --card-bg-color: #f5f5f5; --text-color: #555; + --selection-bg: #262a30; + --selection-color: #eee; --blockquote-color: #666; --link-color: #555; --link-hover-color: #005caf; @@ -30,6 +32,8 @@ --content-bg-color: #333; --card-bg-color: #555; --text-color: #ccc; + --selection-bg: #bbb; + --selection-color: #333; --blockquote-color: #bbb; --link-color: #ccc; --link-hover-color: #005caf; @@ -210,8 +214,8 @@ template { display: none; } ::selection { - background: #262a30; - color: #eee; + background: var(--selection-bg); + color: var(--selection-color); } html, body { @@ -370,7 +374,8 @@ td { left: 0; position: relative; top: 0; - transition: all 0.4s; + transition: 0.4s; + transition-property: left, opacity, top, transform, width; width: 100%; } .toggle .toggle-line:first-child { @@ -1402,7 +1407,8 @@ pre code { overflow-y: auto; position: fixed; top: 0; - transition: all 0.2s ease-out; + transition: 0.2s ease-out; + transition-property: left, right; width: 320px; z-index: 20; } @@ -1426,7 +1432,7 @@ pre code { transition: all 0.2s ease-in-out; } .links-of-author a::before { - background: #25829c; + background: #ffb881; display: inline-block; margin-right: 3px; transform: translateY(-2px); @@ -1871,7 +1877,8 @@ pre code { color: #fff; display: flex; height: 26px; - transition: bottom 0.2s ease-in-out; + transition: 0.2s ease-in-out; + transition-property: bottom; background: #222; cursor: pointer; opacity: 0.6; @@ -2386,7 +2393,6 @@ pre code { border: 2px solid #fc6423; border-radius: 2px; outline: 0; - transition: all 0.2s ease-in-out; vertical-align: text-top; } .reward-container button:hover { @@ -2809,11 +2815,14 @@ ul.breadcrumb li:last-child { display: none; } .search-popup .search-result-container { + display: flex; + flex-direction: column; height: calc(100% - 55px); overflow: auto; padding: 5px 25px; } .search-popup .search-result-container hr { + flex-shrink: 0; margin: 5px 0 10px; } .search-popup .search-result-container hr:first-child { @@ -2834,12 +2843,6 @@ ul.breadcrumb li:last-child { flex-grow: 1; padding: 2px; } -.search-popup .no-result { - display: flex; -} -.search-popup .search-result-list { - width: 100%; -} .search-popup .search-result-icon { color: #ccc; margin: auto; @@ -2974,6 +2977,7 @@ header.header { } .menu .menu-item a { padding: 5px 20px; + position: relative; transition-property: background-color; display: flex; align-items: center; @@ -2981,6 +2985,17 @@ header.header { .menu .menu-item a .badge { margin-left: auto; } +.menu .menu-item a.menu-item-active::after { + background: #bbb; + border-radius: 50%; + content: ' '; + height: 6px; + margin-top: -3px; + position: absolute; + right: 15px; + top: 50%; + width: 6px; +} @media (max-width: 991px) { .menu .menu-item.menu-item-search { display: none; diff --git a/fcircle/index.html b/fcircle/index.html index f14a96a73..3c2ce6061 100644 --- a/fcircle/index.html +++ b/fcircle/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -684,8 +684,8 @@

朋友圈 - - + + diff --git a/index.html b/index.html index 156b232f8..ec17698c8 100644 --- a/index.html +++ b/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1697,8 +1697,8 @@

- - + + diff --git a/js/pjax.js b/js/pjax.js index eaf266072..a9a9dd384 100644 --- a/js/pjax.js +++ b/js/pjax.js @@ -12,7 +12,7 @@ const pjax = new Pjax({ '.pjax' ], switches: { - '.post-toc-wrap': function(oldWrap, newWrap) { + '.post-toc-wrap'(oldWrap, newWrap) { if (newWrap.querySelector('.post-toc')) { Pjax.switches.outerHTML.call(this, oldWrap, newWrap); } else { diff --git a/js/sidebar.js b/js/sidebar.js index 6ab3c6b05..3c49861b0 100644 --- a/js/sidebar.js +++ b/js/sidebar.js @@ -6,7 +6,7 @@ document.addEventListener('DOMContentLoaded', () => { const sidebarToggleMotion = { mouse: {}, - init : function() { + init() { window.addEventListener('mousedown', this.mousedownHandler.bind(this)); window.addEventListener('mouseup', this.mouseupHandler.bind(this)); document.querySelector('.sidebar-dimmer').addEventListener('click', this.clickHandler.bind(this)); @@ -14,11 +14,11 @@ document.addEventListener('DOMContentLoaded', () => { window.addEventListener('sidebar:show', this.showSidebar); window.addEventListener('sidebar:hide', this.hideSidebar); }, - mousedownHandler: function(event) { + mousedownHandler(event) { this.mouse.X = event.pageX; this.mouse.Y = event.pageY; }, - mouseupHandler: function(event) { + mouseupHandler(event) { const deltaX = event.pageX - this.mouse.X; const deltaY = event.pageY - this.mouse.Y; const clickingBlankPart = Math.hypot(deltaX, deltaY) < 20 && event.target.matches('.main'); @@ -27,10 +27,10 @@ document.addEventListener('DOMContentLoaded', () => { this.hideSidebar(); } }, - clickHandler: function() { + clickHandler() { document.body.classList.contains('sidebar-active') ? this.hideSidebar() : this.showSidebar(); }, - showSidebar: function() { + showSidebar() { document.body.classList.add('sidebar-active'); const animateAction = isRight ? 'fadeInRight' : 'fadeInLeft'; document.querySelectorAll('.sidebar .animated').forEach((element, index) => { @@ -42,7 +42,7 @@ document.addEventListener('DOMContentLoaded', () => { }); }); }, - hideSidebar: function() { + hideSidebar() { document.body.classList.remove('sidebar-active'); } }; diff --git a/js/third-party/search/local-search.js b/js/third-party/search/local-search.js index 92a264dc9..1241f9278 100644 --- a/js/third-party/search/local-search.js +++ b/js/third-party/search/local-search.js @@ -13,22 +13,20 @@ document.addEventListener('DOMContentLoaded', () => { }); const input = document.querySelector('.search-input'); + const container = document.querySelector('.search-result-container'); const inputEventFunction = () => { if (!localSearch.isfetched) return; const searchText = input.value.trim().toLowerCase(); const keywords = searchText.split(/[-\s]+/); - const container = document.querySelector('.search-result-container'); let resultItems = []; if (searchText.length > 0) { // Perform local searching resultItems = localSearch.getResultItems(keywords); } if (keywords.length === 1 && keywords[0] === '') { - container.classList.add('no-result'); container.innerHTML = '
'; } else if (resultItems.length === 0) { - container.classList.add('no-result'); container.innerHTML = '
'; } else { resultItems.sort((left, right) => { @@ -41,7 +39,6 @@ document.addEventListener('DOMContentLoaded', () => { }); const stats = CONFIG.i18n.hits.replace('${hits}', resultItems.length); - container.classList.remove('no-result'); container.innerHTML = `
${stats}

    ${resultItems.map(result => result.item).join('')}
`; @@ -54,16 +51,7 @@ document.addEventListener('DOMContentLoaded', () => { localSearch.fetchData(); } - if (CONFIG.localsearch.trigger === 'auto') { - input.addEventListener('input', inputEventFunction); - } else { - document.querySelector('.search-icon').addEventListener('click', inputEventFunction); - input.addEventListener('keypress', event => { - if (event.key === 'Enter') { - inputEventFunction(); - } - }); - } + input.addEventListener('input', inputEventFunction); window.addEventListener('search:loaded', inputEventFunction); // Handle and trigger popup window @@ -91,6 +79,14 @@ document.addEventListener('DOMContentLoaded', () => { localSearch.highlightSearchWords(document.querySelector('.post-body')); onPopupClose(); }); + window.addEventListener('keydown', event => { + if ((event.ctrlKey || event.metaKey) && event.key === 'k') { + event.preventDefault(); + document.body.classList.add('search-active'); + setTimeout(() => input.focus(), 500); + if (!localSearch.isfetched) localSearch.fetchData(); + } + }); window.addEventListener('keyup', event => { if (event.key === 'Escape') { onPopupClose(); diff --git a/js/utils.js b/js/utils.js index ebd85526a..2bc2c8495 100644 --- a/js/utils.js +++ b/js/utils.js @@ -23,7 +23,7 @@ HTMLElement.prototype.wrap = function(wrapper) { NexT.utils = { - registerExtURL: function() { + registerExtURL() { document.querySelectorAll('span.exturl').forEach(element => { const link = document.createElement('a'); // https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings @@ -39,15 +39,60 @@ NexT.utils = { }); }, - registerCodeblock: function(element) { + registerCopyButton(target, element, code = '') { + // One-click copy code support. + target.insertAdjacentHTML('beforeend', '
'); + const button = target.querySelector('.copy-btn'); + button.addEventListener('click', () => { + if (!code) { + const lines = element.querySelector('.code') || element.querySelector('code'); + code = lines.innerText; + } + if (navigator.clipboard) { + // https://caniuse.com/mdn-api_clipboard_writetext + navigator.clipboard.writeText(code).then(() => { + button.querySelector('i').className = 'fa fa-check-circle fa-fw'; + }, () => { + button.querySelector('i').className = 'fa fa-times-circle fa-fw'; + }); + } else { + const ta = document.createElement('textarea'); + ta.style.top = window.scrollY + 'px'; // Prevent page scrolling + ta.style.position = 'absolute'; + ta.style.opacity = '0'; + ta.readOnly = true; + ta.value = code; + document.body.append(ta); + ta.select(); + ta.setSelectionRange(0, code.length); + ta.readOnly = false; + const result = document.execCommand('copy'); + button.querySelector('i').className = result ? 'fa fa-check-circle fa-fw' : 'fa fa-times-circle fa-fw'; + ta.blur(); // For iOS + button.blur(); + document.body.removeChild(ta); + } + }); + // If copycode.style is not mac, element is larger than target + // So we need to accept both of them as parameters + element.addEventListener('mouseleave', () => { + setTimeout(() => { + button.querySelector('i').className = 'fa fa-copy fa-fw'; + }, 300); + }); + }, + + registerCodeblock(element) { const inited = !!element; - let figure = (inited ? element : document).querySelectorAll('figure.highlight'); - let isHljsWithWrap = true; - if (figure.length === 0) { - figure = document.querySelectorAll('pre:not(.mermaid)'); - isHljsWithWrap = false; + let figure; + if (CONFIG.hljswrap) { + figure = (inited ? element : document).querySelectorAll('figure.highlight'); + } else { + figure = document.querySelectorAll('pre'); } figure.forEach(element => { + // Skip pre > .mermaid for folding and copy button + if (element.querySelector('.mermaid')) return; if (!inited) { let span = element.querySelectorAll('.code .line span'); if (span.length === 0) { @@ -60,11 +105,11 @@ NexT.utils = { }); }); } - const height = parseInt(window.getComputedStyle(element).height.replace('px', ''), 10); + const height = parseInt(window.getComputedStyle(element).height, 10); const needFold = CONFIG.fold.enable && (height > CONFIG.fold.height); if (!needFold && !CONFIG.copycode.enable) return; let target; - if (isHljsWithWrap && CONFIG.copycode.style === 'mac') { + if (CONFIG.hljswrap && CONFIG.copycode.style === 'mac') { target = element; } else { let box = element.querySelector('.code-container'); @@ -89,47 +134,13 @@ NexT.utils = { target.classList.add('unfold'); }); } - if (inited || !CONFIG.copycode.enable) return; - // One-click copy code support. - target.insertAdjacentHTML('beforeend', '
'); - const button = target.querySelector('.copy-btn'); - button.addEventListener('click', () => { - const lines = element.querySelector('.code') || element.querySelector('code'); - const code = lines.innerText; - if (navigator.clipboard) { - // https://caniuse.com/mdn-api_clipboard_writetext - navigator.clipboard.writeText(code).then(() => { - button.querySelector('i').className = 'fa fa-check-circle fa-fw'; - }, () => { - button.querySelector('i').className = 'fa fa-times-circle fa-fw'; - }); - } else { - const ta = document.createElement('textarea'); - ta.style.top = window.scrollY + 'px'; // Prevent page scrolling - ta.style.position = 'absolute'; - ta.style.opacity = '0'; - ta.readOnly = true; - ta.value = code; - document.body.append(ta); - ta.select(); - ta.setSelectionRange(0, code.length); - ta.readOnly = false; - const result = document.execCommand('copy'); - button.querySelector('i').className = result ? 'fa fa-check-circle fa-fw' : 'fa fa-times-circle fa-fw'; - ta.blur(); // For iOS - button.blur(); - document.body.removeChild(ta); - } - }); - element.addEventListener('mouseleave', () => { - setTimeout(() => { - button.querySelector('i').className = 'fa fa-copy fa-fw'; - }, 300); - }); + if (!inited && CONFIG.copycode.enable) { + this.registerCopyButton(target, element); + } }); }, - wrapTableWithBox: function() { + wrapTableWithBox() { document.querySelectorAll('table').forEach(element => { const box = document.createElement('div'); box.className = 'table-container'; @@ -137,7 +148,7 @@ NexT.utils = { }); }, - registerVideoIframe: function() { + registerVideoIframe() { document.querySelectorAll('iframe').forEach(element => { const supported = [ 'www.youtube.com', @@ -159,20 +170,20 @@ NexT.utils = { }); }, - updateActiveNav: function() { - if (!Array.isArray(NexT.utils.sections)) return; - let index = NexT.utils.sections.findIndex(element => { + updateActiveNav() { + if (!Array.isArray(this.sections)) return; + let index = this.sections.findIndex(element => { return element && element.getBoundingClientRect().top > 10; }); if (index === -1) { - index = NexT.utils.sections.length - 1; + index = this.sections.length - 1; } else if (index > 0) { index--; } this.activateNavByIndex(index); }, - registerScrollPercent: function() { + registerScrollPercent() { const backToTop = document.querySelector('.back-to-top'); const readingProgressBar = document.querySelector('.reading-progress-bar'); // For init back to top in sidebar if page was scrolled after page refresh. @@ -204,7 +215,7 @@ NexT.utils = { /** * Tabs tag listener (without twitter bootstrap). */ - registerTabsTag: function() { + registerTabsTag() { // Binding `nav-tabs` & `tab-content` by real time permalink changing. document.querySelectorAll('.tabs ul.nav-tabs .tab').forEach(element => { element.addEventListener('click', event => { @@ -219,9 +230,9 @@ NexT.utils = { // Comment system selection tab does not contain .active class. const activeTab = tabContent.querySelector('.active') || tabContent.firstElementChild; // Hight might be `auto`. - const prevHeight = parseInt(window.getComputedStyle(activeTab).height.replace('px', ''), 10) || 0; - const paddingTop = parseInt(window.getComputedStyle(activeTab).paddingTop.replace('px', ''), 10); - const marginBottom = parseInt(window.getComputedStyle(activeTab.firstElementChild).marginBottom.replace('px', ''), 10); + const prevHeight = parseInt(window.getComputedStyle(activeTab).height, 10) || 0; + const paddingTop = parseInt(window.getComputedStyle(activeTab).paddingTop, 10); + const marginBottom = parseInt(window.getComputedStyle(activeTab.firstElementChild).marginBottom, 10); tabContent.style.height = prevHeight + paddingTop + marginBottom + 'px'; // Add & Remove active class on `nav-tabs` & `tab-content`. [...nav.children].forEach(target => { @@ -238,7 +249,7 @@ NexT.utils = { })); // Get the height of `tab-pane` which is activated now. const hasScrollBar = document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight); - const currHeight = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height.replace('px', ''), 10); + const currHeight = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height, 10); // Reset the height of `tab-content` and see the animation. tabContent.style.height = currHeight + paddingTop + marginBottom + 'px'; // Change the height of `tab-content` may cause scrollbar show / disappear, which may result in the change of the `tab-pane`'s height @@ -246,7 +257,7 @@ NexT.utils = { if ((document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight)) !== hasScrollBar) { tabContent.style.transition = 'height 0.3s linear'; // After the animation, we need reset the height of `tab-content` again. - const currHeightAfterScrollBarChange = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height.replace('px', ''), 10); + const currHeightAfterScrollBarChange = parseInt(window.getComputedStyle(tabContent.querySelector('.active')).height, 10); tabContent.style.height = currHeightAfterScrollBarChange + paddingTop + marginBottom + 'px'; } // Remove all the inline styles, and let the height be adaptive again. @@ -269,7 +280,7 @@ NexT.utils = { window.dispatchEvent(new Event('tabs:register')); }, - registerCanIUseTag: function() { + registerCanIUseTag() { // Get responsive height passed from iframe. window.addEventListener('message', ({ data }) => { if (typeof data === 'string' && data.includes('ciu_embed')) { @@ -280,7 +291,7 @@ NexT.utils = { }, false); }, - registerActiveMenuItem: function() { + registerActiveMenuItem() { document.querySelectorAll('.menu-item a[href]').forEach(target => { const isSamePath = target.pathname === location.pathname || target.pathname === location.pathname.replace('index.html', ''); const isSubPath = !CONFIG.root.startsWith(target.pathname) && location.pathname.startsWith(target.pathname); @@ -288,7 +299,7 @@ NexT.utils = { }); }, - registerLangSelect: function() { + registerLangSelect() { const selects = document.querySelectorAll('.lang-select'); selects.forEach(sel => { sel.value = CONFIG.page.lang; @@ -303,7 +314,7 @@ NexT.utils = { }); }, - registerSidebarTOC: function() { + registerSidebarTOC() { this.sections = [...document.querySelectorAll('.post-toc:not(.placeholder-toc) li a.nav-link')].map(element => { const target = document.getElementById(decodeURI(element.getAttribute('href')).replace('#', '')); // TOC item animation navigate. @@ -325,7 +336,7 @@ NexT.utils = { this.updateActiveNav(); }, - registerPostReward: function() { + registerPostReward() { const button = document.querySelector('.reward-container button'); if (!button) return; button.addEventListener('click', () => { @@ -333,7 +344,7 @@ NexT.utils = { }); }, - activateNavByIndex: function(index) { + activateNavByIndex(index) { const nav = document.querySelector('.post-toc:not(.placeholder-toc) .nav'); if (!nav) return; @@ -374,7 +385,7 @@ NexT.utils = { }); }, - updateSidebarPosition: function() { + updateSidebarPosition() { if (window.innerWidth < 1200 || CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return; // Expand sidebar on post detail page by default, when post has a toc. const hasTOC = document.querySelector('.post-toc:not(.placeholder-toc)'); @@ -388,7 +399,7 @@ NexT.utils = { } }, - activateSidebarPanel: function(index) { + activateSidebarPanel(index) { const sidebar = document.querySelector('.sidebar-inner'); const activeClassNames = ['sidebar-toc-active', 'sidebar-overview-active']; if (sidebar.classList.contains(activeClassNames[index])) return; @@ -415,7 +426,7 @@ NexT.utils = { sidebar.classList.replace(activeClassNames[1 - index], activeClassNames[index]); }, - updateFooterPosition: function() { + updateFooterPosition() { if (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return; function updateFooterPosition() { const footer = document.querySelector('.footer'); @@ -428,7 +439,7 @@ NexT.utils = { window.addEventListener('scroll', updateFooterPosition, { passive: true }); }, - getScript: function(src, options = {}, legacyCondition) { + getScript(src, options = {}, legacyCondition) { if (typeof options === 'function') { return this.getScript(src, { condition: legacyCondition @@ -479,7 +490,7 @@ NexT.utils = { }); }, - loadComments: function(selector, legacyCallback) { + loadComments(selector, legacyCallback) { if (legacyCallback) { return this.loadComments(selector).then(legacyCallback); } @@ -498,5 +509,14 @@ NexT.utils = { }); intersectionObserver.observe(element); }); + }, + + debounce(func, wait) { + let timeout; + return function(...args) { + const context = this; + clearTimeout(timeout); + timeout = setTimeout(() => func.apply(context, args), wait); + }; } }; diff --git a/links/index.html b/links/index.html index ab3a3033b..c6669a519 100644 --- a/links/index.html +++ b/links/index.html @@ -15,9 +15,9 @@ - + - + @@ -30,7 +30,7 @@ - + @@ -112,25 +112,25 @@
- @@ -724,8 +724,8 @@

友情链接 - - + + diff --git a/page/2/index.html b/page/2/index.html index c44e0907c..1648f4f12 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1666,8 +1666,8 @@

- - + + diff --git a/page/3/index.html b/page/3/index.html index 0944d1d5d..8c61a33c0 100644 --- a/page/3/index.html +++ b/page/3/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1723,8 +1723,8 @@

- - + + diff --git a/page/4/index.html b/page/4/index.html index 17729933a..cab09f500 100644 --- a/page/4/index.html +++ b/page/4/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1704,8 +1704,8 @@

- - + + diff --git a/page/5/index.html b/page/5/index.html index e526f179c..6d75cbd53 100644 --- a/page/5/index.html +++ b/page/5/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1684,8 +1684,8 @@

- - + + diff --git a/page/6/index.html b/page/6/index.html index baa75025a..358499e5b 100644 --- a/page/6/index.html +++ b/page/6/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1717,8 +1717,8 @@

- - + + diff --git a/page/7/index.html b/page/7/index.html index dde0c2a64..7e4491689 100644 --- a/page/7/index.html +++ b/page/7/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@

如鱼饮水

- @@ -1297,8 +1297,8 @@

- - + + diff --git a/posts/2009-07-25-Xifengfu/index.html b/posts/2009-07-25-Xifengfu/index.html index c953f4631..8b4eb0d9e 100644 --- a/posts/2009-07-25-Xifengfu/index.html +++ b/posts/2009-07-25-Xifengfu/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -844,8 +844,8 @@

- - + + diff --git a/posts/2012-06-16-Saying-24-1/index.html b/posts/2012-06-16-Saying-24-1/index.html index ec8811c02..d03986ea2 100644 --- a/posts/2012-06-16-Saying-24-1/index.html +++ b/posts/2012-06-16-Saying-24-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -849,8 +849,8 @@

- - + + diff --git a/posts/2012-06-17-Saying-24-2/index.html b/posts/2012-06-17-Saying-24-2/index.html index e3b87068e..843f82b83 100644 --- a/posts/2012-06-17-Saying-24-2/index.html +++ b/posts/2012-06-17-Saying-24-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -849,8 +849,8 @@

- - + + diff --git a/posts/2012-08-09-Visitation-of-the-Atomic-City/index.html b/posts/2012-08-09-Visitation-of-the-Atomic-City/index.html index 6ba75d505..f5f9fc4e2 100644 --- a/posts/2012-08-09-Visitation-of-the-Atomic-City/index.html +++ b/posts/2012-08-09-Visitation-of-the-Atomic-City/index.html @@ -15,9 +15,9 @@ - + - + @@ -125,25 +125,25 @@
- @@ -872,8 +872,8 @@

- - + + diff --git a/posts/2012-12-20-Thinking-1/index.html b/posts/2012-12-20-Thinking-1/index.html index d4e81e293..6c516568e 100644 --- a/posts/2012-12-20-Thinking-1/index.html +++ b/posts/2012-12-20-Thinking-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -874,8 +874,8 @@

- - + + diff --git a/posts/2013-05-09-Thinking-2/index.html b/posts/2013-05-09-Thinking-2/index.html index 47006c15d..8b70074ef 100644 --- a/posts/2013-05-09-Thinking-2/index.html +++ b/posts/2013-05-09-Thinking-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -868,8 +868,8 @@

- - + + diff --git a/posts/2014-03-01-Linux-Notes-1/index.html b/posts/2014-03-01-Linux-Notes-1/index.html index 6fbdeebb8..3f40c00d4 100644 --- a/posts/2014-03-01-Linux-Notes-1/index.html +++ b/posts/2014-03-01-Linux-Notes-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -110,25 +110,25 @@
- @@ -861,8 +861,8 @@

- - + + diff --git a/posts/2014-03-02-Pipelight-use-eBank-on-Linux/index.html b/posts/2014-03-02-Pipelight-use-eBank-on-Linux/index.html index f8c9cfc05..605104983 100644 --- a/posts/2014-03-02-Pipelight-use-eBank-on-Linux/index.html +++ b/posts/2014-03-02-Pipelight-use-eBank-on-Linux/index.html @@ -15,9 +15,9 @@ - + - + @@ -111,25 +111,25 @@
- @@ -946,8 +946,8 @@

9. 完成

- - + + diff --git a/posts/2014-03-09-intro-for-regular-expression/index.html b/posts/2014-03-09-intro-for-regular-expression/index.html index 7de0e0718..bd13b4dce 100644 --- a/posts/2014-03-09-intro-for-regular-expression/index.html +++ b/posts/2014-03-09-intro-for-regular-expression/index.html @@ -15,9 +15,9 @@ - + - + @@ -111,25 +111,25 @@
- @@ -903,8 +903,8 @@

3.1. \\< \\> - - + + diff --git a/posts/2014-03-16-Thinking-3/index.html b/posts/2014-03-16-Thinking-3/index.html index 27e9ebc4d..0e87036cb 100644 --- a/posts/2014-03-16-Thinking-3/index.html +++ b/posts/2014-03-16-Thinking-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -895,8 +895,8 @@

- - + + diff --git a/posts/2014-03-19-Linux-Notes-2/index.html b/posts/2014-03-19-Linux-Notes-2/index.html index 908df1db3..63ed6610d 100644 --- a/posts/2014-03-19-Linux-Notes-2/index.html +++ b/posts/2014-03-19-Linux-Notes-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -877,8 +877,8 @@

6. - - + + diff --git a/posts/2014-03-22-NetworkManager-Hotspot-Setting/index.html b/posts/2014-03-22-NetworkManager-Hotspot-Setting/index.html index 1401cb72c..b4238deeb 100644 --- a/posts/2014-03-22-NetworkManager-Hotspot-Setting/index.html +++ b/posts/2014-03-22-NetworkManager-Hotspot-Setting/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -878,8 +878,8 @@

- - + + diff --git a/posts/2014-04-20-Linux-Notes-3/index.html b/posts/2014-04-20-Linux-Notes-3/index.html index aa24b44f7..75443d8d7 100644 --- a/posts/2014-04-20-Linux-Notes-3/index.html +++ b/posts/2014-04-20-Linux-Notes-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -888,8 +888,8 @@

- - + + diff --git a/posts/2014-05-25-Thinking-4/index.html b/posts/2014-05-25-Thinking-4/index.html index 7304a0c0d..b078ecc57 100644 --- a/posts/2014-05-25-Thinking-4/index.html +++ b/posts/2014-05-25-Thinking-4/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -980,8 +980,8 @@

- - + + diff --git a/posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/index.html b/posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/index.html index 6e1817271..6b5df922f 100644 --- a/posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/index.html +++ b/posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -875,8 +875,8 @@

- - + + diff --git a/posts/2015-08-20-Linux-Notes-4/index.html b/posts/2015-08-20-Linux-Notes-4/index.html index 95c90d900..4d3d275da 100644 --- a/posts/2015-08-20-Linux-Notes-4/index.html +++ b/posts/2015-08-20-Linux-Notes-4/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -885,8 +885,8 @@

- - + + diff --git a/posts/2018-10-05-refactor-blog/index.html b/posts/2018-10-05-refactor-blog/index.html index 3377a4757..bd7cd9a42 100644 --- a/posts/2018-10-05-refactor-blog/index.html +++ b/posts/2018-10-05-refactor-blog/index.html @@ -15,9 +15,9 @@ - + - + @@ -111,25 +111,25 @@
- @@ -915,8 +915,8 @@

- - + + diff --git a/posts/2018-10-24-prime-of-the-form-6k1/index.html b/posts/2018-10-24-prime-of-the-form-6k1/index.html index 9bdac07d0..12e617793 100644 --- a/posts/2018-10-24-prime-of-the-form-6k1/index.html +++ b/posts/2018-10-24-prime-of-the-form-6k1/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -925,8 +925,8 @@

- - + + diff --git a/posts/2018-10-29-Hexo-NexT-1/index.html b/posts/2018-10-29-Hexo-NexT-1/index.html index 12d2280a4..017ed99d2 100644 --- a/posts/2018-10-29-Hexo-NexT-1/index.html +++ b/posts/2018-10-29-Hexo-NexT-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -845,8 +845,8 @@

- - + + diff --git a/posts/2018-10-29-Hexo-NexT-2/index.html b/posts/2018-10-29-Hexo-NexT-2/index.html index 46339de11..23af34d51 100644 --- a/posts/2018-10-29-Hexo-NexT-2/index.html +++ b/posts/2018-10-29-Hexo-NexT-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -875,8 +875,8 @@

- - + + diff --git a/posts/2018-10-29-Hexo-NexT-3/index.html b/posts/2018-10-29-Hexo-NexT-3/index.html index 46bb31b51..148694164 100644 --- a/posts/2018-10-29-Hexo-NexT-3/index.html +++ b/posts/2018-10-29-Hexo-NexT-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -113,25 +113,25 @@
- @@ -913,8 +913,8 @@

- - + + diff --git a/posts/2019-09-04-Tai-1/index.html b/posts/2019-09-04-Tai-1/index.html index 6dd820e5c..2390d3ff2 100644 --- a/posts/2019-09-04-Tai-1/index.html +++ b/posts/2019-09-04-Tai-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -120,25 +120,25 @@
- @@ -888,8 +888,8 @@

6. 总结

- - + + diff --git a/posts/2019-09-09-Paipu-review-1/index.html b/posts/2019-09-09-Paipu-review-1/index.html index 534a53289..b77c5ac71 100644 --- a/posts/2019-09-09-Paipu-review-1/index.html +++ b/posts/2019-09-09-Paipu-review-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -111,25 +111,25 @@
- @@ -838,8 +838,8 @@

- - + + diff --git a/posts/2019-09-10-Tai-2/index.html b/posts/2019-09-10-Tai-2/index.html index 824956e76..7862fed14 100644 --- a/posts/2019-09-10-Tai-2/index.html +++ b/posts/2019-09-10-Tai-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -117,25 +117,25 @@
- @@ -863,8 +863,8 @@

4. 总结

- - + + diff --git a/posts/2019-09-14-Paipu-review-2/index.html b/posts/2019-09-14-Paipu-review-2/index.html index 5dc21bdb3..9d9d75eb3 100644 --- a/posts/2019-09-14-Paipu-review-2/index.html +++ b/posts/2019-09-14-Paipu-review-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -120,25 +120,25 @@
- @@ -871,8 +871,8 @@

- - + + diff --git a/posts/2019-10-21-Compress-video-for-wechat/index.html b/posts/2019-10-21-Compress-video-for-wechat/index.html index 586689512..ae8261fc5 100644 --- a/posts/2019-10-21-Compress-video-for-wechat/index.html +++ b/posts/2019-10-21-Compress-video-for-wechat/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -854,8 +854,8 @@

- - + + diff --git a/posts/2019-11-18-Tai-3/index.html b/posts/2019-11-18-Tai-3/index.html index a8ce6d04c..b6b366342 100644 --- a/posts/2019-11-18-Tai-3/index.html +++ b/posts/2019-11-18-Tai-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -114,25 +114,25 @@
- @@ -849,8 +849,8 @@

- - + + diff --git a/posts/2019-12-10-2019-Canada-MO-P2/index.html b/posts/2019-12-10-2019-Canada-MO-P2/index.html index 93956095c..8adcea72e 100644 --- a/posts/2019-12-10-2019-Canada-MO-P2/index.html +++ b/posts/2019-12-10-2019-Canada-MO-P2/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -906,8 +906,8 @@

3. 解答

- - + + diff --git a/posts/2019-12-11-Envolope-and-parabola/index.html b/posts/2019-12-11-Envolope-and-parabola/index.html index 67f6ee19e..5adb13052 100644 --- a/posts/2019-12-11-Envolope-and-parabola/index.html +++ b/posts/2019-12-11-Envolope-and-parabola/index.html @@ -15,9 +15,9 @@ - + - + @@ -114,25 +114,25 @@
- @@ -1207,8 +1207,8 @@

- - + + diff --git a/posts/2019-12-20-Paipu-review-3/index.html b/posts/2019-12-20-Paipu-review-3/index.html index 1b85a297a..12567fae3 100644 --- a/posts/2019-12-20-Paipu-review-3/index.html +++ b/posts/2019-12-20-Paipu-review-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -110,25 +110,25 @@
- @@ -842,8 +842,8 @@

- - + + diff --git a/posts/2019-12-20-Use-webp-in-NexT/index.html b/posts/2019-12-20-Use-webp-in-NexT/index.html index fc8721396..4b264f2da 100644 --- a/posts/2019-12-20-Use-webp-in-NexT/index.html +++ b/posts/2019-12-20-Use-webp-in-NexT/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -878,8 +878,8 @@

- - + + diff --git a/posts/2020-04-01-Two-squares-1/index.html b/posts/2020-04-01-Two-squares-1/index.html index 2da9a79d3..85eb8cd0a 100644 --- a/posts/2020-04-01-Two-squares-1/index.html +++ b/posts/2020-04-01-Two-squares-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -122,25 +122,25 @@
- @@ -965,8 +965,8 @@

- - + + diff --git a/posts/2020-04-03-Two-squares-2/index.html b/posts/2020-04-03-Two-squares-2/index.html index 3f6755313..5863bd6dd 100644 --- a/posts/2020-04-03-Two-squares-2/index.html +++ b/posts/2020-04-03-Two-squares-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -44,8 +44,8 @@ - + @@ -124,25 +124,25 @@
- @@ -791,8 +791,8 @@

- +

@@ -978,8 +978,8 @@

- - + + diff --git a/posts/2020-04-03-Two-squares-3/index.html b/posts/2020-04-03-Two-squares-3/index.html index d180a24d0..54f82cc86 100644 --- a/posts/2020-04-03-Two-squares-3/index.html +++ b/posts/2020-04-03-Two-squares-3/index.html @@ -15,9 +15,9 @@ - + - + @@ -42,8 +42,8 @@ - + @@ -122,25 +122,25 @@ @@ -1030,8 +1030,8 @@

- - + + diff --git a/posts/2020-04-07-Midpoint-in-trapezoid/index.html b/posts/2020-04-07-Midpoint-in-trapezoid/index.html index 2a638eb77..a74d486b5 100644 --- a/posts/2020-04-07-Midpoint-in-trapezoid/index.html +++ b/posts/2020-04-07-Midpoint-in-trapezoid/index.html @@ -15,9 +15,9 @@ - + - + @@ -131,25 +131,25 @@
- @@ -1027,8 +1027,8 @@

2.6. - - + + diff --git a/posts/2020-04-11-Install-ArchWSL/index.html b/posts/2020-04-11-Install-ArchWSL/index.html index 0eab134a3..cffddb47a 100644 --- a/posts/2020-04-11-Install-ArchWSL/index.html +++ b/posts/2020-04-11-Install-ArchWSL/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -940,8 +940,8 @@

- - + + diff --git a/posts/2020-05-01-Reinstall-Windows/index.html b/posts/2020-05-01-Reinstall-Windows/index.html index 44657d3ee..7ff223c2d 100644 --- a/posts/2020-05-01-Reinstall-Windows/index.html +++ b/posts/2020-05-01-Reinstall-Windows/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -935,8 +935,8 @@

10. WSL

- - + + diff --git a/posts/2020-05-12-Windows-commands/index.html b/posts/2020-05-12-Windows-commands/index.html index fc14d2e18..5f6d2e195 100644 --- a/posts/2020-05-12-Windows-commands/index.html +++ b/posts/2020-05-12-Windows-commands/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -904,8 +904,8 @@

3. - - + + diff --git a/posts/2020-06-22-FFmpeg-Commands/index.html b/posts/2020-06-22-FFmpeg-Commands/index.html index 873df270b..e5a595dac 100644 --- a/posts/2020-06-22-FFmpeg-Commands/index.html +++ b/posts/2020-06-22-FFmpeg-Commands/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -848,8 +848,8 @@

- - + + diff --git a/posts/2020-06-22-Notability-vs-GoodNotes/index.html b/posts/2020-06-22-Notability-vs-GoodNotes/index.html index 9ea1596e8..b62a34a96 100644 --- a/posts/2020-06-22-Notability-vs-GoodNotes/index.html +++ b/posts/2020-06-22-Notability-vs-GoodNotes/index.html @@ -15,9 +15,9 @@ - + - + @@ -113,25 +113,25 @@
- @@ -955,8 +955,8 @@

8. - - + + diff --git a/posts/2020-06-22-tkz-euclide-1/index.html b/posts/2020-06-22-tkz-euclide-1/index.html index c594e7b27..a9ed459dd 100644 --- a/posts/2020-06-22-tkz-euclide-1/index.html +++ b/posts/2020-06-22-tkz-euclide-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -1391,8 +1391,8 @@

- - + + diff --git a/posts/2020-07-04-tkz-euclide-2/index.html b/posts/2020-07-04-tkz-euclide-2/index.html index 116dc6e8b..4e9260559 100644 --- a/posts/2020-07-04-tkz-euclide-2/index.html +++ b/posts/2020-07-04-tkz-euclide-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -1281,8 +1281,8 @@

- - + + diff --git a/posts/2020-07-05-Mathematica-funny-signs/index.html b/posts/2020-07-05-Mathematica-funny-signs/index.html index 595582b35..05f60b429 100644 --- a/posts/2020-07-05-Mathematica-funny-signs/index.html +++ b/posts/2020-07-05-Mathematica-funny-signs/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -910,8 +910,8 @@

7. - - + + diff --git a/posts/2020-07-06-Project-Euler-1/index.html b/posts/2020-07-06-Project-Euler-1/index.html index 45941b12b..72d8a7471 100644 --- a/posts/2020-07-06-Project-Euler-1/index.html +++ b/posts/2020-07-06-Project-Euler-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -989,8 +989,8 @@

- - + + diff --git a/posts/2020-08-02-Riichi-mahjong-resources/index.html b/posts/2020-08-02-Riichi-mahjong-resources/index.html index 53c198f66..3de4b4794 100644 --- a/posts/2020-08-02-Riichi-mahjong-resources/index.html +++ b/posts/2020-08-02-Riichi-mahjong-resources/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -1117,8 +1117,8 @@

6. 漫画

- - + + diff --git a/posts/2021-03-12-Barycentric-coordinate-system/index.html b/posts/2021-03-12-Barycentric-coordinate-system/index.html index 44f18dfef..b61b37ebc 100644 --- a/posts/2021-03-12-Barycentric-coordinate-system/index.html +++ b/posts/2021-03-12-Barycentric-coordinate-system/index.html @@ -15,9 +15,9 @@ - + - + @@ -112,25 +112,25 @@
- @@ -1343,8 +1343,8 @@

- - + + diff --git a/posts/2021-03-20-Square-of-triangle/index.html b/posts/2021-03-20-Square-of-triangle/index.html index 99d1c31bb..47bed5f95 100644 --- a/posts/2021-03-20-Square-of-triangle/index.html +++ b/posts/2021-03-20-Square-of-triangle/index.html @@ -15,9 +15,9 @@ - + - + @@ -113,25 +113,25 @@
- @@ -1356,8 +1356,8 @@

4. 推广

- - + + diff --git a/posts/2021-03-23-Proof-of-Cauchy-inequality/index.html b/posts/2021-03-23-Proof-of-Cauchy-inequality/index.html index 3312c36ac..1b5c3635d 100644 --- a/posts/2021-03-23-Proof-of-Cauchy-inequality/index.html +++ b/posts/2021-03-23-Proof-of-Cauchy-inequality/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -1283,8 +1283,8 @@

9. 总结

- - + + diff --git a/posts/2021-03-25-angle-addition-and-subtraction-theorems/index.html b/posts/2021-03-25-angle-addition-and-subtraction-theorems/index.html index ec38fbeeb..364bc7319 100644 --- a/posts/2021-03-25-angle-addition-and-subtraction-theorems/index.html +++ b/posts/2021-03-25-angle-addition-and-subtraction-theorems/index.html @@ -15,9 +15,9 @@ - + - + @@ -116,25 +116,25 @@
- @@ -1058,8 +1058,8 @@

4. - - + + diff --git a/posts/2021-03-30-add-link-page/index.html b/posts/2021-03-30-add-link-page/index.html index 7d84a7843..a6a154137 100644 --- a/posts/2021-03-30-add-link-page/index.html +++ b/posts/2021-03-30-add-link-page/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -893,8 +893,8 @@

- - + + diff --git a/posts/2021-03-31-Notability-vs-GoodNotes-2021/index.html b/posts/2021-03-31-Notability-vs-GoodNotes-2021/index.html index 5e33df5f9..84a13c982 100644 --- a/posts/2021-03-31-Notability-vs-GoodNotes-2021/index.html +++ b/posts/2021-03-31-Notability-vs-GoodNotes-2021/index.html @@ -15,9 +15,9 @@ - + - + @@ -125,25 +125,25 @@
- @@ -956,8 +956,8 @@

- - + + diff --git a/posts/2021-04-09-Install-Nextcloud-on-vultr/index.html b/posts/2021-04-09-Install-Nextcloud-on-vultr/index.html index 3c816d6ca..1863e51a6 100644 --- a/posts/2021-04-09-Install-Nextcloud-on-vultr/index.html +++ b/posts/2021-04-09-Install-Nextcloud-on-vultr/index.html @@ -15,9 +15,9 @@ - + - + @@ -110,25 +110,25 @@
- @@ -897,8 +897,8 @@

- - + + diff --git a/posts/2021-04-21-Use-ctex-with-founder-font/index.html b/posts/2021-04-21-Use-ctex-with-founder-font/index.html index ce6721c3d..41c6cdd91 100644 --- a/posts/2021-04-21-Use-ctex-with-founder-font/index.html +++ b/posts/2021-04-21-Use-ctex-with-founder-font/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -941,8 +941,8 @@

- - + + diff --git a/posts/2021-05-07-LaTeX-include-files-in-subdir/index.html b/posts/2021-05-07-LaTeX-include-files-in-subdir/index.html index 8bdc0b631..ea7026ac2 100644 --- a/posts/2021-05-07-LaTeX-include-files-in-subdir/index.html +++ b/posts/2021-05-07-LaTeX-include-files-in-subdir/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -864,8 +864,8 @@

- - + + diff --git a/posts/2021-07-23-Recurrence-relation-1/index.html b/posts/2021-07-23-Recurrence-relation-1/index.html index 5c55675bb..2af418579 100644 --- a/posts/2021-07-23-Recurrence-relation-1/index.html +++ b/posts/2021-07-23-Recurrence-relation-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -110,25 +110,25 @@
- @@ -893,8 +893,8 @@

- - + + diff --git a/posts/2021-10-03-the-radical-conjugate-roots-theorem/index.html b/posts/2021-10-03-the-radical-conjugate-roots-theorem/index.html index 0b2cd343d..2239d79f6 100644 --- a/posts/2021-10-03-the-radical-conjugate-roots-theorem/index.html +++ b/posts/2021-10-03-the-radical-conjugate-roots-theorem/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -1219,8 +1219,8 @@

- - + + diff --git a/posts/2022-02-16-Definition-of-e/index.html b/posts/2022-02-16-Definition-of-e/index.html index c9f5d298d..72cec0532 100644 --- a/posts/2022-02-16-Definition-of-e/index.html +++ b/posts/2022-02-16-Definition-of-e/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -1049,8 +1049,8 @@

4. 总结

- - + + diff --git a/posts/2022-02-25-Least-upper-bound-for-rational-numbers/index.html b/posts/2022-02-25-Least-upper-bound-for-rational-numbers/index.html index 87a86d711..459b95ef1 100644 --- a/posts/2022-02-25-Least-upper-bound-for-rational-numbers/index.html +++ b/posts/2022-02-25-Least-upper-bound-for-rational-numbers/index.html @@ -15,9 +15,9 @@ - + - + @@ -109,25 +109,25 @@
- @@ -956,8 +956,8 @@

- - + + diff --git a/posts/2022-05-10-LaTeX-add-emphasis-mark/index.html b/posts/2022-05-10-LaTeX-add-emphasis-mark/index.html index aa1ded443..a7de14d8f 100644 --- a/posts/2022-05-10-LaTeX-add-emphasis-mark/index.html +++ b/posts/2022-05-10-LaTeX-add-emphasis-mark/index.html @@ -15,9 +15,9 @@ - + - + @@ -107,25 +107,25 @@
- @@ -860,8 +860,8 @@

- - + + diff --git a/posts/2023-03-27-He-Qie-301-1/index.html b/posts/2023-03-27-He-Qie-301-1/index.html index bc2be7365..e8ee2a9c7 100644 --- a/posts/2023-03-27-He-Qie-301-1/index.html +++ b/posts/2023-03-27-He-Qie-301-1/index.html @@ -15,9 +15,9 @@ - + - + @@ -138,25 +138,25 @@
- @@ -1199,8 +1199,8 @@

Q030

- - + + diff --git a/posts/2024-03-30-Fix-Giscus-with-Pjax/index.html b/posts/2024-03-30-Fix-Giscus-with-Pjax/index.html index 2fa3170b2..491dfd305 100644 --- a/posts/2024-03-30-Fix-Giscus-with-Pjax/index.html +++ b/posts/2024-03-30-Fix-Giscus-with-Pjax/index.html @@ -15,9 +15,9 @@ - + - + @@ -108,25 +108,25 @@
- @@ -865,8 +865,8 @@

终章

- - + + diff --git a/posts/2024-07-18-Install-Gentoo-on-Lemote-Yeeloong-netbook/index.html b/posts/2024-07-18-Install-Gentoo-on-Lemote-Yeeloong-netbook/index.html index dd9b1283e..463801dab 100644 --- a/posts/2024-07-18-Install-Gentoo-on-Lemote-Yeeloong-netbook/index.html +++ b/posts/2024-07-18-Install-Gentoo-on-Lemote-Yeeloong-netbook/index.html @@ -15,9 +15,9 @@ - + - + @@ -111,25 +111,25 @@
- @@ -1012,8 +1012,8 @@

11 - - + + diff --git a/posts/2024-08-05-Install-driver-for-Lenovo-M7600D-printer/index.html b/posts/2024-08-05-Install-driver-for-Lenovo-M7600D-printer/index.html index d6000fd17..a3781607e 100644 --- a/posts/2024-08-05-Install-driver-for-Lenovo-M7600D-printer/index.html +++ b/posts/2024-08-05-Install-driver-for-Lenovo-M7600D-printer/index.html @@ -15,9 +15,9 @@ - + - + @@ -110,25 +110,25 @@
- @@ -862,8 +862,8 @@

4. - - + + diff --git a/posts/2024-08-06-Cross-compile-Rust-for-Lemote-Yeeloong-netbook/index.html b/posts/2024-08-06-Cross-compile-Rust-for-Lemote-Yeeloong-netbook/index.html index 9c5f26310..f6ac15d0a 100644 --- a/posts/2024-08-06-Cross-compile-Rust-for-Lemote-Yeeloong-netbook/index.html +++ b/posts/2024-08-06-Cross-compile-Rust-for-Lemote-Yeeloong-netbook/index.html @@ -15,9 +15,9 @@ - + - + @@ -112,25 +112,25 @@
- @@ -941,8 +941,8 @@

2.5. ripgr - - + + diff --git a/posts/2024-08-11-He-Qie-301-2/index.html b/posts/2024-08-11-He-Qie-301-2/index.html index 4df35b7be..4e5287915 100644 --- a/posts/2024-08-11-He-Qie-301-2/index.html +++ b/posts/2024-08-11-He-Qie-301-2/index.html @@ -15,9 +15,9 @@ - + - + @@ -138,25 +138,25 @@
- @@ -1285,8 +1285,8 @@

Q060

- - + + diff --git a/posts/2024-09-08-China-Second-Round-2024-Geometry/index.html b/posts/2024-09-08-China-Second-Round-2024-Geometry/index.html index 192411198..c818e6680 100644 --- a/posts/2024-09-08-China-Second-Round-2024-Geometry/index.html +++ b/posts/2024-09-08-China-Second-Round-2024-Geometry/index.html @@ -15,9 +15,9 @@ - + - + @@ -114,25 +114,25 @@
- @@ -989,8 +989,8 @@

- - + + diff --git a/search.xml b/search.xml index 9dbc2f170..711bd385c 100644 --- a/search.xml +++ b/search.xml @@ -550,36 +550,6 @@ $ 匹配字符串的最后面。

Shell - - Linux 下 zip 解压的文件名乱码问题 - //posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/ - 在 windows 下打包的 zip 文件, 文件名是以 GBK 的方式编码的, 在 Linux 下解压会出现文件名乱码的问题。

-

一种方法是通过 wine 安装 7z 或 haozip 来解决。

-

另一种方法是利用环境变量 + 7z + convmv 来解决。

-

用 7z 在 LC_ALL=C 或 LC_ALL=zh_CN。gbk 的环境下解压 zip 文件:

-
LC_ALL=C 7z x -oOUTDIR zipfile.zip
-

然后用 convmv 检测文件名的编码转换, 查看是否有乱码:

-
convmv -f cp936 -t utf8-r *
-

如果没有乱码, 则可以进行转换:

-
convmv -f cp936 -t utf8 --notest *
-

如果还要转换某个文件的编码, 则可以用 iconv :

-
iconv -f cp936 -t utf8 -o outfile infile
-

网上还经常提到的一种方法是用 unzip 的 -O 选项, 可惜在新版的 unzip 中这一选项被移除了, 如果需要也可以自己打补丁, 不过个人感觉很麻烦。

-

还有一种方法是用 python 来做。网上有一个流传比较广的脚本, 不过功能不过完善, 下面的代码是在原代码基础上修改而成的,支持解压加密的压缩文件:

-

Python 3 版本:

-
unzip3_gbk.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
unzip3_gbk.py: Deal with zip files using encoding GB2312/GBK/GB18030
"""

import os
# import sys
import argparse
import zipfile
# import copy
import datetime


class GBKZipFile(zipfile.ZipFile):
"""Class with methods to list, extract zip files using encoding GB18030."""
def __init__(self, filename):
super().__init__(filename, mode='r')
# self.filelist_old = copy.deepcopy(self.filelist)
# self.NameToInfo_old = copy.deepcopy(self.NameToInfo)
self.NameToInfo = {}
for zinfo in self.filelist:
zinfo.filename = zinfo.filename.encode('cp437').decode('gb18030')
self.NameToInfo[zinfo.filename] = zinfo

@staticmethod
def print_bold(text):
"""Print bold text."""
bold = '\033[1m'
endc = '\033[0m'
print(bold + text + endc)

def pprintdir(self):
"""Print a table of contents of the zip files more elegantly."""
self.print_bold('Archive: ' + os.path.basename(self.filename))
if self.comment:
self.print_bold('Comment: ' + self.comment.decode('gb18030'))
print('{:^10} {:^19} {}'.format('Size', 'Modified', 'File Name'))
print('{:=^10} {:=^19} {:=<11}'.format('', '', ''))
size_sum = 0
for zinfo in self.filelist:
filename = zinfo.filename
filetime = '{:%Y-%m-%d %H:%M:%S}'.format(
datetime.datetime(*zinfo.date_time))
print('{:>10} {} {}'.format(zinfo.file_size, filetime, filename))
size_sum += zinfo.file_size
file_sum = len(self.filelist)
print('{:-^10} {:^19} {:-^11}'.format('', '', ''))
print('{:>10} {:^19} {}'.format(str(size_sum), '',
str(file_sum) + ' files'))


def cenc(name):
"""Check if it's not None and encode."""
return name is not None and name.encode() or None


class MyParser(argparse.ArgumentParser):
"""Paring command line options."""
def __init__(self, prog=None):
description = 'Extract files from zipfiles using encoding GBK'
super().__init__(prog=prog,
description=description)
self.add_argument('zipfile', nargs='+')
self.add_argument('-l', '--list', action='store_true', dest='islist',
help='list files in zipfiles')
self.add_argument('-o', '--outdir', dest='outdir',
help='set output directory')
self.add_argument('-p', '--password', dest='password',
help='set password')


def main():
"""Parse argument, list or extract zip files."""
myparser = MyParser()
args = myparser.parse_args()

if args.islist:
for zfile in args.zipfile:
with GBKZipFile(zfile) as zfp:
if args.password:
zfp.setpassword(cenc(args.password))
zfp.pprintdir()
else:
for zfile in args.zipfile:
with GBKZipFile(zfile) as zfp:
zfp.extractall(path=args.outdir, pwd=cenc(args.password))


if __name__ == '__main__':
main()
-

Python 2 版本:

-
unzip_gbk.py
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# unzip_gbk.py
"""
解决用 gbk 编码压缩的 zip 文件在 utf-8 环境下解压产生的中文文件名乱码问题
"""

from __future__ import print_function
import os
import sys
import getopt
from zipfile import ZipFile
from textwrap import dedent

IFLIST = False


def usage():
"""显示帮助"""
help_text = """\
Usage: %s [options] zipfile1 [zipfile2 ...]
Options:
-h --help : display this help
-l --list : list files
-o --outdir : set output directory
-p --password : set password""" % sys.argv[0]
print(dedent(help_text))


def analyse(args=sys.argv[1:]):
"""解析命令行参数, 返回输出文件夹, 解压密码和待解压文件"""
shortargs = "hlo:p:"
longargs = ["help", "list", "outdir=", "password="]
outdir = os.getcwdu()
password = None

try:
opts, zipfiles = getopt.getopt(args, shortargs, longargs)
except getopt.GetoptError:
print("Getopt error!")
usage()
sys.exit(1)

for opt, value in opts:
if opt in ("-h", "--help"):
usage()
sys.exit()
elif opt in ("-l", "--list"):
global IFLIST
IFLIST = True
elif opt in ("-o", "--outdir"):
outdir = value.decode('utf8')
elif opt in ("-p", "--password"):
password = value

return outdir, password, zipfiles


def listzip(filename, password=None):
"""列出文件内容"""
print("Archive: " + filename)
with ZipFile(filename, 'r') as infile:
if password:
infile.setpassword(password)

for name in infile.namelist():
utf8name = name.decode('gbk')
print(utf8name)


def unzip(filename, outdir='', password=None):
"""解压文件"""
print("Unziping " + filename)
with ZipFile(filename, "r") as infile:
if password:
infile.setpassword(password)

for name in infile.namelist():
utf8name = name.decode('gbk')
print("Extracting " + utf8name)
pathname = os.path.join(outdir, os.path.dirname(utf8name))
targetname = os.path.join(outdir, utf8name)
if not os.path.exists(pathname):
os.makedirs(pathname)
data = infile.read(name)
if not os.path.exists(targetname):
with open(targetname, 'w') as myfile:
myfile.write(data)


def main():
"""主程序"""
outdir, password, zipfiles = analyse()
if not zipfiles:
print("No file to unzip.")
usage()
sys.exit()

if IFLIST:
for filename in zipfiles:
listzip(filename, password)
else:
for filename in zipfiles:
unzip(filename, outdir, password)

sys.exit()


if __name__ == "__main__":
main()
-]]>
- - Linux - - - Linux - Zip - 乱码 - -
忽然想到(四) //posts/2014-05-25-Thinking-4/ @@ -736,6 +706,36 @@ $ 匹配字符串的最后面。

同桌的你
+ + Linux 下 zip 解压的文件名乱码问题 + //posts/2014-08-14-Linux-Zipfile-Bug-in-Chinese/ + 在 windows 下打包的 zip 文件, 文件名是以 GBK 的方式编码的, 在 Linux 下解压会出现文件名乱码的问题。

+

一种方法是通过 wine 安装 7z 或 haozip 来解决。

+

另一种方法是利用环境变量 + 7z + convmv 来解决。

+

用 7z 在 LC_ALL=C 或 LC_ALL=zh_CN。gbk 的环境下解压 zip 文件:

+
LC_ALL=C 7z x -oOUTDIR zipfile.zip
+

然后用 convmv 检测文件名的编码转换, 查看是否有乱码:

+
convmv -f cp936 -t utf8-r *
+

如果没有乱码, 则可以进行转换:

+
convmv -f cp936 -t utf8 --notest *
+

如果还要转换某个文件的编码, 则可以用 iconv :

+
iconv -f cp936 -t utf8 -o outfile infile
+

网上还经常提到的一种方法是用 unzip 的 -O 选项, 可惜在新版的 unzip 中这一选项被移除了, 如果需要也可以自己打补丁, 不过个人感觉很麻烦。

+

还有一种方法是用 python 来做。网上有一个流传比较广的脚本, 不过功能不过完善, 下面的代码是在原代码基础上修改而成的,支持解压加密的压缩文件:

+

Python 3 版本:

+
unzip3_gbk.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
unzip3_gbk.py: Deal with zip files using encoding GB2312/GBK/GB18030
"""

import os
# import sys
import argparse
import zipfile
# import copy
import datetime


class GBKZipFile(zipfile.ZipFile):
"""Class with methods to list, extract zip files using encoding GB18030."""
def __init__(self, filename):
super().__init__(filename, mode='r')
# self.filelist_old = copy.deepcopy(self.filelist)
# self.NameToInfo_old = copy.deepcopy(self.NameToInfo)
self.NameToInfo = {}
for zinfo in self.filelist:
zinfo.filename = zinfo.filename.encode('cp437').decode('gb18030')
self.NameToInfo[zinfo.filename] = zinfo

@staticmethod
def print_bold(text):
"""Print bold text."""
bold = '\033[1m'
endc = '\033[0m'
print(bold + text + endc)

def pprintdir(self):
"""Print a table of contents of the zip files more elegantly."""
self.print_bold('Archive: ' + os.path.basename(self.filename))
if self.comment:
self.print_bold('Comment: ' + self.comment.decode('gb18030'))
print('{:^10} {:^19} {}'.format('Size', 'Modified', 'File Name'))
print('{:=^10} {:=^19} {:=<11}'.format('', '', ''))
size_sum = 0
for zinfo in self.filelist:
filename = zinfo.filename
filetime = '{:%Y-%m-%d %H:%M:%S}'.format(
datetime.datetime(*zinfo.date_time))
print('{:>10} {} {}'.format(zinfo.file_size, filetime, filename))
size_sum += zinfo.file_size
file_sum = len(self.filelist)
print('{:-^10} {:^19} {:-^11}'.format('', '', ''))
print('{:>10} {:^19} {}'.format(str(size_sum), '',
str(file_sum) + ' files'))


def cenc(name):
"""Check if it's not None and encode."""
return name is not None and name.encode() or None


class MyParser(argparse.ArgumentParser):
"""Paring command line options."""
def __init__(self, prog=None):
description = 'Extract files from zipfiles using encoding GBK'
super().__init__(prog=prog,
description=description)
self.add_argument('zipfile', nargs='+')
self.add_argument('-l', '--list', action='store_true', dest='islist',
help='list files in zipfiles')
self.add_argument('-o', '--outdir', dest='outdir',
help='set output directory')
self.add_argument('-p', '--password', dest='password',
help='set password')


def main():
"""Parse argument, list or extract zip files."""
myparser = MyParser()
args = myparser.parse_args()

if args.islist:
for zfile in args.zipfile:
with GBKZipFile(zfile) as zfp:
if args.password:
zfp.setpassword(cenc(args.password))
zfp.pprintdir()
else:
for zfile in args.zipfile:
with GBKZipFile(zfile) as zfp:
zfp.extractall(path=args.outdir, pwd=cenc(args.password))


if __name__ == '__main__':
main()
+

Python 2 版本:

+
unzip_gbk.py
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
# unzip_gbk.py
"""
解决用 gbk 编码压缩的 zip 文件在 utf-8 环境下解压产生的中文文件名乱码问题
"""

from __future__ import print_function
import os
import sys
import getopt
from zipfile import ZipFile
from textwrap import dedent

IFLIST = False


def usage():
"""显示帮助"""
help_text = """\
Usage: %s [options] zipfile1 [zipfile2 ...]
Options:
-h --help : display this help
-l --list : list files
-o --outdir : set output directory
-p --password : set password""" % sys.argv[0]
print(dedent(help_text))


def analyse(args=sys.argv[1:]):
"""解析命令行参数, 返回输出文件夹, 解压密码和待解压文件"""
shortargs = "hlo:p:"
longargs = ["help", "list", "outdir=", "password="]
outdir = os.getcwdu()
password = None

try:
opts, zipfiles = getopt.getopt(args, shortargs, longargs)
except getopt.GetoptError:
print("Getopt error!")
usage()
sys.exit(1)

for opt, value in opts:
if opt in ("-h", "--help"):
usage()
sys.exit()
elif opt in ("-l", "--list"):
global IFLIST
IFLIST = True
elif opt in ("-o", "--outdir"):
outdir = value.decode('utf8')
elif opt in ("-p", "--password"):
password = value

return outdir, password, zipfiles


def listzip(filename, password=None):
"""列出文件内容"""
print("Archive: " + filename)
with ZipFile(filename, 'r') as infile:
if password:
infile.setpassword(password)

for name in infile.namelist():
utf8name = name.decode('gbk')
print(utf8name)


def unzip(filename, outdir='', password=None):
"""解压文件"""
print("Unziping " + filename)
with ZipFile(filename, "r") as infile:
if password:
infile.setpassword(password)

for name in infile.namelist():
utf8name = name.decode('gbk')
print("Extracting " + utf8name)
pathname = os.path.join(outdir, os.path.dirname(utf8name))
targetname = os.path.join(outdir, utf8name)
if not os.path.exists(pathname):
os.makedirs(pathname)
data = infile.read(name)
if not os.path.exists(targetname):
with open(targetname, 'w') as myfile:
myfile.write(data)


def main():
"""主程序"""
outdir, password, zipfiles = analyse()
if not zipfiles:
print("No file to unzip.")
usage()
sys.exit()

if IFLIST:
for filename in zipfiles:
listzip(filename, password)
else:
for filename in zipfiles:
unzip(filename, outdir, password)

sys.exit()


if __name__ == "__main__":
main()
+]]>
+ + Linux + + + Linux + Zip + 乱码 + +
Linux 随学随记 (4) //posts/2015-08-20-Linux-Notes-4/ @@ -799,91 +799,6 @@ $ 匹配字符串的最后面。

Vim
- - 形如 6k±1 的素数 - //posts/2018-10-24-prime-of-the-form-6k1/ - 欧几里得曾经给出过一个素数有无穷多个的证明:

-

PP 是一个包含有限个素数的集合,令

-

N=pPp+1N=\prod_{p \in P} p + 1 -

-

pP\forall p \in PpNp \nmid N ,所以 NN 必有一个素因子不在集合 PP 中,故 PP 不可能包含所有的素数,也就是说,素数一定有无穷多个.

-
-

应用类似的方法,可以证明形如 6k16k - 1 的素数也有无穷多个:

-

PP 是一个包含有限个形如 6k16k - 1 的素数的集合,令

-

N=6pPp1N=6 \cdot \prod_{p \in P} p - 1 -

-

pP\forall p \in PpNp \nmid N。但素数一定有 6k±16k \pm 1 的形式,而形如 6k+16k+1 的数的乘积还是 6k+16k+1 的形式,不可能得到 6k16k-1 的形式,故 NN 必有一个形如 6k16k-1 的素因子,且这个素因子不在 PP 中,故 PP 不可能包含所有形如 6k16k - 1 的素数,也就是说,形如 6k16k - 1 的素数有无穷多个.

-
-

不过,用同样的方法无法证明形如 6k+16k+1 的素数有无穷多个,我们需要另辟蹊径.

-

下面给出两个证明,这两个证明实际上都依赖与 (Z/pZ)(\mathbb{Z}/p\mathbb{Z})^* 的循环群结构:

-

证明一:

-

PP 是一个包含有限个形如 6k+16k + 1 的素数的集合,令

-

N=6pPpN = 6 \cdot \prod_{p \in P} p -

-

考虑 N2N+1N^2-N+1 的素因子 pp,因为 N3+1=(N+1)(N2N+1)N^3+1=(N+1) \cdot (N^2-N+1),所以 pN3+1p \mid N^3+1,即 N31(modp)N^3 \equiv -1 \pmod p,所以 N61(modp)N^6 \equiv 1 \pmod p

-

考虑 NN 对模 pp 的指数 δp(N)\delta_p (N)。则必有 δp(N)6\delta_p (N) \mid 6,故 δp(N)\delta_p (N) 只能是 112233 或者 66.由 N31(modp)N^3 \equiv -1 \pmod p 知, δp(N)\delta_p (N) 不可能是 1133

-

如果 δp(N)=2\delta_p (N) = 2 的话,则有 N21(modp)N^2 \equiv 1 \pmod p,且 N1(modp)N \equiv -1 \pmod p,故 pN+1p \mid N+1,可得

-

p(N+1,N2N+1)=(N+1,3)=1p \mid (N+1, N^2-N+1) = (N+1, 3) =1 -

-

而这是不可能的.

-

所以 δp(N)\delta_p (N) 只能等于 66

-

δp(N)φ(p)=p1\delta_p (N) \mid \varphi(p) = p-1,即 6p16 \mid p-1,故 pp6k+16k+1 形式的素数,且 pPp \notin P

-

所以 PP 不可能包含所有形如 6k+16k + 1 的素数,也就是说,形如 6k+16k + 1 的素数有无穷多个.

-
-

证明二:

-

实际上,我们只需要证明形如 3k+13k+1 的素数有无穷多个就可以了.

-

PP 是一个包含有限个形如 3k+13k + 1 的素数的集合,令

-

N=(pPp)2+3N = \left(\prod_{p \in P} p\right)^2+3 -

-

pPp=2c+1\displaystyle \prod_{p \in P} p=2c+1,则 N=4(c2+c+1)N=4(c^2+c+1)

-

考虑 NN 的一个素因子 pp,则 p3p \ne 3,且 pc2+c+1c31p \mid c^2+c+1 \mid c^3-1,所以 c31(modp)c^3 \equiv 1 \pmod p

-

如果 c1(modp)c \equiv 1 \pmod p,则

-

0c2+c+13(modp)0 \equiv c^2+c+1 \equiv 3 \pmod p -

-

而这是不可能的.所以 δp(c)=3\delta_p(c)=3

-

δp(c)φ(p)=p1\delta_p (c) \mid \varphi(p) = p-1,即 3p13\mid p-1,故 pp3k+13k+1 形式的素数,且 pPp \notin P

-

所以 PP 不可能包含所有形如 3k+13k + 1 的素数,也就是说,形如 3k+13k + 1 的素数有无穷多个.

-
-

上面的第二个证明实际上依赖于下面这个结论:

-

pp 是一个质数,则

-

(3p)=1    p1(mod3)\left(\frac{-3}{p}\right)=1 \iff p \equiv 1 \pmod 3 -

-
-

事实上,我们有更一般的结论,即狄利克雷定理

-

aabb 为整数,且 (a,b)=1(a,b)=1,则有无穷多个形如 ax+bax+b 的素数.

-
-

不过,这个定理的证明依赖于解析数论的技术,我们在这里就不讨论了.

-

参考:

-
    -
  • https://mathblag.wordpress.com/2013/08/30/primes-of-the-form-6k1/
  • -
  • https://math.stackexchange.com/questions/671820/proving-an-infinite-number-of-primes-of-the-form-6n1
  • -
  • Elementary Number Theory: Primes, Congruences, and Secrets by William Stein
  • -
-]]>
- - 数学 - 初等数论 - - - 素数 - 欧几里得 - -
博客的重构与回顾 //posts/2018-10-05-refactor-blog/ @@ -975,6 +890,91 @@ l0,-144c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, NexT + + 形如 6k±1 的素数 + //posts/2018-10-24-prime-of-the-form-6k1/ + 欧几里得曾经给出过一个素数有无穷多个的证明:

+

PP 是一个包含有限个素数的集合,令

+

N=pPp+1N=\prod_{p \in P} p + 1 +

+

pP\forall p \in PpNp \nmid N ,所以 NN 必有一个素因子不在集合 PP 中,故 PP 不可能包含所有的素数,也就是说,素数一定有无穷多个.

+
+

应用类似的方法,可以证明形如 6k16k - 1 的素数也有无穷多个:

+

PP 是一个包含有限个形如 6k16k - 1 的素数的集合,令

+

N=6pPp1N=6 \cdot \prod_{p \in P} p - 1 +

+

pP\forall p \in PpNp \nmid N。但素数一定有 6k±16k \pm 1 的形式,而形如 6k+16k+1 的数的乘积还是 6k+16k+1 的形式,不可能得到 6k16k-1 的形式,故 NN 必有一个形如 6k16k-1 的素因子,且这个素因子不在 PP 中,故 PP 不可能包含所有形如 6k16k - 1 的素数,也就是说,形如 6k16k - 1 的素数有无穷多个.

+
+

不过,用同样的方法无法证明形如 6k+16k+1 的素数有无穷多个,我们需要另辟蹊径.

+

下面给出两个证明,这两个证明实际上都依赖与 (Z/pZ)(\mathbb{Z}/p\mathbb{Z})^* 的循环群结构:

+

证明一:

+

PP 是一个包含有限个形如 6k+16k + 1 的素数的集合,令

+

N=6pPpN = 6 \cdot \prod_{p \in P} p +

+

考虑 N2N+1N^2-N+1 的素因子 pp,因为 N3+1=(N+1)(N2N+1)N^3+1=(N+1) \cdot (N^2-N+1),所以 pN3+1p \mid N^3+1,即 N31(modp)N^3 \equiv -1 \pmod p,所以 N61(modp)N^6 \equiv 1 \pmod p

+

考虑 NN 对模 pp 的指数 δp(N)\delta_p (N)。则必有 δp(N)6\delta_p (N) \mid 6,故 δp(N)\delta_p (N) 只能是 112233 或者 66.由 N31(modp)N^3 \equiv -1 \pmod p 知, δp(N)\delta_p (N) 不可能是 1133

+

如果 δp(N)=2\delta_p (N) = 2 的话,则有 N21(modp)N^2 \equiv 1 \pmod p,且 N1(modp)N \equiv -1 \pmod p,故 pN+1p \mid N+1,可得

+

p(N+1,N2N+1)=(N+1,3)=1p \mid (N+1, N^2-N+1) = (N+1, 3) =1 +

+

而这是不可能的.

+

所以 δp(N)\delta_p (N) 只能等于 66

+

δp(N)φ(p)=p1\delta_p (N) \mid \varphi(p) = p-1,即 6p16 \mid p-1,故 pp6k+16k+1 形式的素数,且 pPp \notin P

+

所以 PP 不可能包含所有形如 6k+16k + 1 的素数,也就是说,形如 6k+16k + 1 的素数有无穷多个.

+
+

证明二:

+

实际上,我们只需要证明形如 3k+13k+1 的素数有无穷多个就可以了.

+

PP 是一个包含有限个形如 3k+13k + 1 的素数的集合,令

+

N=(pPp)2+3N = \left(\prod_{p \in P} p\right)^2+3 +

+

pPp=2c+1\displaystyle \prod_{p \in P} p=2c+1,则 N=4(c2+c+1)N=4(c^2+c+1)

+

考虑 NN 的一个素因子 pp,则 p3p \ne 3,且 pc2+c+1c31p \mid c^2+c+1 \mid c^3-1,所以 c31(modp)c^3 \equiv 1 \pmod p

+

如果 c1(modp)c \equiv 1 \pmod p,则

+

0c2+c+13(modp)0 \equiv c^2+c+1 \equiv 3 \pmod p +

+

而这是不可能的.所以 δp(c)=3\delta_p(c)=3

+

δp(c)φ(p)=p1\delta_p (c) \mid \varphi(p) = p-1,即 3p13\mid p-1,故 pp3k+13k+1 形式的素数,且 pPp \notin P

+

所以 PP 不可能包含所有形如 3k+13k + 1 的素数,也就是说,形如 3k+13k + 1 的素数有无穷多个.

+
+

上面的第二个证明实际上依赖于下面这个结论:

+

pp 是一个质数,则

+

(3p)=1    p1(mod3)\left(\frac{-3}{p}\right)=1 \iff p \equiv 1 \pmod 3 +

+
+

事实上,我们有更一般的结论,即狄利克雷定理

+

aabb 为整数,且 (a,b)=1(a,b)=1,则有无穷多个形如 ax+bax+b 的素数.

+
+

不过,这个定理的证明依赖于解析数论的技术,我们在这里就不讨论了.

+

参考:

+
    +
  • https://mathblag.wordpress.com/2013/08/30/primes-of-the-form-6k1/
  • +
  • https://math.stackexchange.com/questions/671820/proving-an-infinite-number-of-primes-of-the-form-6n1
  • +
  • Elementary Number Theory: Primes, Congruences, and Secrets by William Stein
  • +
+]]>
+ + 数学 + 初等数论 + + + 素数 + 欧几里得 + +
Hexo NexT 魔改系列之一 ── 总集篇 //posts/2018-10-29-Hexo-NexT-1/ @@ -993,73 +993,6 @@ l0,-144c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,

参见 Hexo NexT 魔改系列之三 ── 评论篇

-]]> - - 博客 - 主题 - - - Hexo - NexT - - - - Hexo NexT 魔改系列之三 ── 评论篇 - //posts/2018-10-29-Hexo-NexT-3/ -

20240330更新:终于解决了Utterances/Giscus和Pjax不兼容的问题,可以切换到Giscus了。

-

-

20200806更新:仿照hexo-next-utteranc,我写了一个使用CommentsApp评论系统的插件hexo-next-discussbot

-

这是一个基于Telegram的评论系统,需要登陆Telegram账号才能评论。

-
-

20191110更新:如果要使用utterances作为评论系统的话,可以使用官方的插件hexo-next-utteranc。本文的方法在NexT主题更新至7.4.0之后已失效。

-
-

20190821更新:目前已改用集成到NexT主题中的DisqusJS,并使用ZEIT部署,方法见disqusjs-proxy-example

-
-

NexT主题本身集成了五种评论插件:Disqus,畅言,Valine,来必力和gitment。

-

Disqus应该算是全球最大的评论系统了,很多博客甚至一些其它网站都在使用,功能足够强大,也比较美观,还支持匿名评论。之前我也一直在用,本来打算不用折腾就可以用了,结果发现,Disqus居然被墙了,WTF???

-

查了一下,大概是16年7月的事情,嗯。。。

-

好吧,看来Disqus只能作为备用的评论系统了,还需要一个不用翻墙就能用的评论系统才行。

-
-

也有几种免翻墙用Disqus评论的解决办法,例如disqus-proxyDisqusJSDisqus PHP API,不过它们都需要另外一台服务器来进行反代理,而我的博客是放在Github上的,也没有多余的服务器可以用,只好放弃了。

-
-

畅言,搜狐作的评论系统,需要备案才能使用。有人能告诉我Github Page上的博客怎么备案么。。。

-

而且,按照国内评论系统的尿性,说不定那天就又关闭了,就像之前的多说、友言和网易云跟帖。。。

-

Valine,这个倒是一个不错的选择,看上去也比较简洁明快,不过是基于Leancloud的,还得去配置一个Leancloud账号。其实这是一个不错的选择,可以一试。

-

来必力,韩国的一个评论系统,看上去不错,而且支持多账号登录,不过在国内加载有点慢。

-

gitment,使用Github的issue系统作为评论系统,很geek的一个想法,不过看到这权限,能够读写所有公开的repo???

-

gitment的权限

-

这是不是意味着可以把我所有的repo全部删掉。。。

-
-

关于gitment的安全性的讨论,参见imsun/gitmentGitment 的安全性争议

-
-

1. 添加utterances评论系统

-

在搜索gitment的时候,发现了一片utterances的介绍文章,发现这是一个好东西,同样是基于Github的issue系统,但由于是基于Github App构建的,权限控制的颗粒度要细一些,可以只具有读写issue的权限,不需要读写代码的权限,而且可以只在需要的repo中安装。这才是一个合格的评论系统应该有的权限嘛。

-

utterances的权限
-DisqusJS
-不过utterances没有集成在NexT主题中,需要手动添加。

-

打开主题文件夹,在layout/_third-party/comments/中新建文件utterances.swig,并添加下面的内容:

-
{% if theme.utterances.enable %}
<script src="https://utteranc.es/client.js"
repo="{{ theme.utterances.repo }}"
issue-term="{{ theme.utterances.issue_term }}"
theme="{{ theme.utterances.theme }}"
crossorigin="anonymous"
async>
</script>
{% endif %}
-

然后在layout/_partials/comments.swig中添加下面的内容:

-
   {% elseif theme.valine.enable and theme.valine.appid and theme.valine.appkey %}
<div class="comments" id="comments">
</div>
+
+ {% elseif theme.utterances.enable %}
+ <div class="comments" id="comments">
+ {% include '../_third-party/comments/utterances.swig' %}
+ </div>
{% endif %}
-

最后在主题配置文件中添加如下配置:

-
utterances:
enable: true
repo: # owner/repo
issue_term: # pathname, url, title, og:title [ISSUE NUMBER] or [SPECIFIC TERM]
theme: # github-light or github-dark
-

三个配置选项都是必填的,第一个是配置issue所在的repo,第二个是如何决定如何寻找对应的issue,第三个决定采用亮或暗的主题。

-

然后可以愉快的使用了~

-

utterances的原始效果图

-

不过,utterances有默认宽度限制,在页面上明显要比外边框窄很多,感觉很难看,所以我把宽度限制给去掉了,方法是在source/css/_custom/custom.styl中添加以下内容:

-
.utterances {
max-width: none;
}
-

这样就显得好看多了。

-

utterances的最终效果图

-

utterance默认不会创建issue,而是会在第一次评论的时候自动创建相应的issue,这个也比gitment好用不少。

-

2. 使用 Disqus PHP API 进行反代理

-

待更新

-

3. 使用 Valine 作为评论系统

-
-

参见:
-Valine: 独立博客评论系统
-使用LeanCloud做评论系统
-Leancloud访客统计插件重大安全漏洞修复指南

-
]]> 博客 @@ -1103,21 +1036,88 @@ DisqusJS

3. 启用Algolia搜索(待更新)

最近发现,Agolia搜索的社区版还是免费的,不过暂时本地搜索已经够用了,就不再折腾搜索功能了,留待以后有时间再折腾吧。

-

参见主题自带的文档:Algolia 搜索

+

参见主题自带的文档:Algolia 搜索

+
+

参考:

+
    +
  • 搜索服务 - NexT 使用文档
  • +
+
+
+
    +
  1. 指的是主题目录下(theme/next/)的_config.yml文件 ↩︎

    +
  2. +
  3. 指的是根目录下的_config.yml文件 ↩︎

    +
  4. +
+
+]]> + + 博客 + 主题 + + + Hexo + NexT + + + + Hexo NexT 魔改系列之三 ── 评论篇 + //posts/2018-10-29-Hexo-NexT-3/ +

20240330更新:终于解决了Utterances/Giscus和Pjax不兼容的问题,可以切换到Giscus了。

+
+

20200806更新:仿照hexo-next-utteranc,我写了一个使用CommentsApp评论系统的插件hexo-next-discussbot

+

这是一个基于Telegram的评论系统,需要登陆Telegram账号才能评论。

+
+

20191110更新:如果要使用utterances作为评论系统的话,可以使用官方的插件hexo-next-utteranc。本文的方法在NexT主题更新至7.4.0之后已失效。

+
+

20190821更新:目前已改用集成到NexT主题中的DisqusJS,并使用ZEIT部署,方法见disqusjs-proxy-example

+
+

NexT主题本身集成了五种评论插件:Disqus,畅言,Valine,来必力和gitment。

+

Disqus应该算是全球最大的评论系统了,很多博客甚至一些其它网站都在使用,功能足够强大,也比较美观,还支持匿名评论。之前我也一直在用,本来打算不用折腾就可以用了,结果发现,Disqus居然被墙了,WTF???

+

查了一下,大概是16年7月的事情,嗯。。。

+

好吧,看来Disqus只能作为备用的评论系统了,还需要一个不用翻墙就能用的评论系统才行。

+
+

也有几种免翻墙用Disqus评论的解决办法,例如disqus-proxyDisqusJSDisqus PHP API,不过它们都需要另外一台服务器来进行反代理,而我的博客是放在Github上的,也没有多余的服务器可以用,只好放弃了。

+
+

畅言,搜狐作的评论系统,需要备案才能使用。有人能告诉我Github Page上的博客怎么备案么。。。

+

而且,按照国内评论系统的尿性,说不定那天就又关闭了,就像之前的多说、友言和网易云跟帖。。。

+

Valine,这个倒是一个不错的选择,看上去也比较简洁明快,不过是基于Leancloud的,还得去配置一个Leancloud账号。其实这是一个不错的选择,可以一试。

+

来必力,韩国的一个评论系统,看上去不错,而且支持多账号登录,不过在国内加载有点慢。

+

gitment,使用Github的issue系统作为评论系统,很geek的一个想法,不过看到这权限,能够读写所有公开的repo???

+

gitment的权限

+

这是不是意味着可以把我所有的repo全部删掉。。。

+
+

关于gitment的安全性的讨论,参见imsun/gitmentGitment 的安全性争议

+
+

1. 添加utterances评论系统

+

在搜索gitment的时候,发现了一片utterances的介绍文章,发现这是一个好东西,同样是基于Github的issue系统,但由于是基于Github App构建的,权限控制的颗粒度要细一些,可以只具有读写issue的权限,不需要读写代码的权限,而且可以只在需要的repo中安装。这才是一个合格的评论系统应该有的权限嘛。

+

utterances的权限
+DisqusJS
+不过utterances没有集成在NexT主题中,需要手动添加。

+

打开主题文件夹,在layout/_third-party/comments/中新建文件utterances.swig,并添加下面的内容:

+
{% if theme.utterances.enable %}
<script src="https://utteranc.es/client.js"
repo="{{ theme.utterances.repo }}"
issue-term="{{ theme.utterances.issue_term }}"
theme="{{ theme.utterances.theme }}"
crossorigin="anonymous"
async>
</script>
{% endif %}
+

然后在layout/_partials/comments.swig中添加下面的内容:

+
   {% elseif theme.valine.enable and theme.valine.appid and theme.valine.appkey %}
<div class="comments" id="comments">
</div>
+
+ {% elseif theme.utterances.enable %}
+ <div class="comments" id="comments">
+ {% include '../_third-party/comments/utterances.swig' %}
+ </div>
{% endif %}
+

最后在主题配置文件中添加如下配置:

+
utterances:
enable: true
repo: # owner/repo
issue_term: # pathname, url, title, og:title [ISSUE NUMBER] or [SPECIFIC TERM]
theme: # github-light or github-dark
+

三个配置选项都是必填的,第一个是配置issue所在的repo,第二个是如何决定如何寻找对应的issue,第三个决定采用亮或暗的主题。

+

然后可以愉快的使用了~

+

utterances的原始效果图

+

不过,utterances有默认宽度限制,在页面上明显要比外边框窄很多,感觉很难看,所以我把宽度限制给去掉了,方法是在source/css/_custom/custom.styl中添加以下内容:

+
.utterances {
max-width: none;
}
+

这样就显得好看多了。

+

utterances的最终效果图

+

utterance默认不会创建issue,而是会在第一次评论的时候自动创建相应的issue,这个也比gitment好用不少。

+

2. 使用 Disqus PHP API 进行反代理

+

待更新

+

3. 使用 Valine 作为评论系统

+
+

参见:
+Valine: 独立博客评论系统
+使用LeanCloud做评论系统
+Leancloud访客统计插件重大安全漏洞修复指南

-

参考:

-
    -
  • 搜索服务 - NexT 使用文档
  • -
-
-
-
    -
  1. 指的是主题目录下(theme/next/)的_config.yml文件 ↩︎

    -
  2. -
  3. 指的是根目录下的_config.yml文件 ↩︎

    -
  4. -
-
]]> 博客 @@ -1183,6 +1183,28 @@ DisqusJS
何切 + + 牌谱反思(一) + //posts/2019-09-09-Paipu-review-1/ + 今天在打牌的时候遇到了一个有意思的何切。

+

南2局0本场6巡目

+

自家一向听,此时上了6p,该如何切牌?

+

当时的第一反应是切6p或者7p,然后考虑到6p在中间,如果来5p的话可能还有用,于是就切了6p。

+

回过头来看一下,无论是切6p还是7p,待牌的数量是一样的。但不一样的是,如果切7p来5p,可以再切2p听58p的两面,而如果切6p来5p,那么切2p听的是1m和7p的双碰,听牌强度很明显要差一些。

+

仔细想想,饼子部分的牌可以拆成234+246+677的形状,因为不缺雀头,所以切7p保留67的好型是正解。(当时打牌没注意到中间其实是一个连坎)

+

(然而最终这局是立直之后铳了对家万子混一色的5200点。。。)

+

何切る解答機

+

这是何切给出的切牌建议,令我没想到的是,切2p或者4p的选项居然要比切6p还要靠前。仔细想一下,手牌可以看成234+24+6677,这样切2p/4p后,如果能进到5p或者8p(共8枚),就能够好型听牌,而且高目还有一杯口。虽说是要求重复进张,但毕竟听牌的时候强度比较好。而如果是切6p,只有进到3p(3枚)的时候才能好型听牌。显然相比而言,前一种会更好一点。

+

看来这种多面听的改良判断还是需要再加强一下。

+]]>
+ + 立直麻将 + + + 天凤 + 何切 + +
太流牌谱学习笔记(二) //posts/2019-09-10-Tai-2/ @@ -1222,28 +1244,6 @@ DisqusJS
攻守判断
- - 牌谱反思(一) - //posts/2019-09-09-Paipu-review-1/ - 今天在打牌的时候遇到了一个有意思的何切。

-

南2局0本场6巡目

-

自家一向听,此时上了6p,该如何切牌?

-

当时的第一反应是切6p或者7p,然后考虑到6p在中间,如果来5p的话可能还有用,于是就切了6p。

-

回过头来看一下,无论是切6p还是7p,待牌的数量是一样的。但不一样的是,如果切7p来5p,可以再切2p听58p的两面,而如果切6p来5p,那么切2p听的是1m和7p的双碰,听牌强度很明显要差一些。

-

仔细想想,饼子部分的牌可以拆成234+246+677的形状,因为不缺雀头,所以切7p保留67的好型是正解。(当时打牌没注意到中间其实是一个连坎)

-

(然而最终这局是立直之后铳了对家万子混一色的5200点。。。)

-

何切る解答機

-

这是何切给出的切牌建议,令我没想到的是,切2p或者4p的选项居然要比切6p还要靠前。仔细想一下,手牌可以看成234+24+6677,这样切2p/4p后,如果能进到5p或者8p(共8枚),就能够好型听牌,而且高目还有一杯口。虽说是要求重复进张,但毕竟听牌的时候强度比较好。而如果是切6p,只有进到3p(3枚)的时候才能好型听牌。显然相比而言,前一种会更好一点。

-

看来这种多面听的改良判断还是需要再加强一下。

-]]>
- - 立直麻将 - - - 天凤 - 何切 - -
牌谱反思(二) //posts/2019-09-14-Paipu-review-2/ @@ -1289,36 +1289,6 @@ DisqusJS
雀魂
- - 太流牌谱学习笔记(三) - //posts/2019-11-18-Tai-3/ - 今天看了太くないお的一个牌谱,里面有连续几个非常好的弃胡局,这里来总结一下。

-

东2局0本场12巡目

-

这里自家好型 dora 1 听牌,却被下家先制立直,怎么办?

-

答案比较简单,直接两北连切,有机会就争取兜听,没机会就直接弃胡。

-

结果是上家点了立直对对三暗刻的满贯(实际是四暗刻听牌)。

-

南1局0本场9巡目

-

这里七对一向听,何切?

-

1s!

-

这里我看了很久,感觉不是很能理解。之后再往下看,发现太くないお从这里开始直接选择了弃胡!

-

如果要解释的话,感觉就是自己即使听牌,很可能最终胡到也就是立直七对 3200 点,而目前 dora 一张未现,硬上的话很有可能出事。

-

最终的结果也证明了太くないお的选择是正确的,对家很快 dora 3 高目三色立直,下家 dora 2 三色确追立,最终是对家自摸高目跳满。

-

感觉这里是很值得学习的,如果是我的话绝对不会想到在这里就弃胡。

-
南2局0本场5巡目
南2局0本场16巡目
-

这里对家碰 dora 南,直接满贯起步,太くないお立即选择跟切 7m 开始弃胡,放弃了自己的好型两向听,非常的果断。

-

而到了16巡时,下家打5s,太くないお选择了碰。

-

这里我也是看了好久才想明白,因为如果不碰的话,太くないお只剩下一次摸牌的机会,那么肯定是没有机会听牌的;而碰了5s切中后,手牌变成了1向听,一旦下一巡7m能切的话,就有听牌赚罚符的可能,即使不能听牌,手里也有7s作为安全牌。这样就在保证下一巡不会放铳的基础上,增加了听牌的可能性。

-

最终,太くないお无铳吃二,非常完美的结局。

-]]>
- - 立直麻将 - - - 天凤 - 太くないお - 场况判断 - -
压缩发送微信的视频文件 //posts/2019-10-21-Compress-video-for-wechat/ @@ -1359,6 +1329,36 @@ DisqusJS
压缩
+ + 太流牌谱学习笔记(三) + //posts/2019-11-18-Tai-3/ + 今天看了太くないお的一个牌谱,里面有连续几个非常好的弃胡局,这里来总结一下。

+

东2局0本场12巡目

+

这里自家好型 dora 1 听牌,却被下家先制立直,怎么办?

+

答案比较简单,直接两北连切,有机会就争取兜听,没机会就直接弃胡。

+

结果是上家点了立直对对三暗刻的满贯(实际是四暗刻听牌)。

+

南1局0本场9巡目

+

这里七对一向听,何切?

+

1s!

+

这里我看了很久,感觉不是很能理解。之后再往下看,发现太くないお从这里开始直接选择了弃胡!

+

如果要解释的话,感觉就是自己即使听牌,很可能最终胡到也就是立直七对 3200 点,而目前 dora 一张未现,硬上的话很有可能出事。

+

最终的结果也证明了太くないお的选择是正确的,对家很快 dora 3 高目三色立直,下家 dora 2 三色确追立,最终是对家自摸高目跳满。

+

感觉这里是很值得学习的,如果是我的话绝对不会想到在这里就弃胡。

+
南2局0本场5巡目
南2局0本场16巡目
+

这里对家碰 dora 南,直接满贯起步,太くないお立即选择跟切 7m 开始弃胡,放弃了自己的好型两向听,非常的果断。

+

而到了16巡时,下家打5s,太くないお选择了碰。

+

这里我也是看了好久才想明白,因为如果不碰的话,太くないお只剩下一次摸牌的机会,那么肯定是没有机会听牌的;而碰了5s切中后,手牌变成了1向听,一旦下一巡7m能切的话,就有听牌赚罚符的可能,即使不能听牌,手里也有7s作为安全牌。这样就在保证下一巡不会放铳的基础上,增加了听牌的可能性。

+

最终,太くないお无铳吃二,非常完美的结局。

+]]>
+ + 立直麻将 + + + 天凤 + 太くないお + 场况判断 + +
2019 Canada MO 第2题 //posts/2019-12-10-2019-Canada-MO-P2/ @@ -1403,26 +1403,6 @@ DisqusJS
加拿大
- - 牌谱反思(三) - //posts/2019-12-20-Paipu-review-3/ - 这是前天的一个吃四的牌谱,里面的关键一处:

-

南3局1本场17巡

-

这里到了南3局1本场的末巡,自己是四位,还有自己的海底,因此期待能够立直一发海底自摸D1,满贯。

-

但问题来了,是切 8p 立直呢,还是切 6s 立直呢?

-

如果单从剩余张数来看,58p 剩余 4 张,467s 剩余 2 张,看上去立 6s 会好一点。

-

但是,剩余张数 ≠ 山存张数!!!

-

从各家的切牌来看,基本上各家都不要 46s,因此剩余的 46s 虽然剩的少,但是基本上都在山里;而牌河中饼子出的很少,显然各家手里都捏着不少饼子,中张的5p应该基本上都在上家或者下家手里。特别是上家,牌河里一张饼子都没有。

-

因此,这里应该切 8p 立直,期待能够摸到山里的 46s!

-]]>
- - 立直麻将 - - - 何切 - 雀魂 - -
包络线与抛物线 //posts/2019-12-11-Envolope-and-parabola/ @@ -1758,6 +1738,26 @@ M834 80h400000v40h-400000z'/> 绣曲线 + + 牌谱反思(三) + //posts/2019-12-20-Paipu-review-3/ + 这是前天的一个吃四的牌谱,里面的关键一处:

+

南3局1本场17巡

+

这里到了南3局1本场的末巡,自己是四位,还有自己的海底,因此期待能够立直一发海底自摸D1,满贯。

+

但问题来了,是切 8p 立直呢,还是切 6s 立直呢?

+

如果单从剩余张数来看,58p 剩余 4 张,467s 剩余 2 张,看上去立 6s 会好一点。

+

但是,剩余张数 ≠ 山存张数!!!

+

从各家的切牌来看,基本上各家都不要 46s,因此剩余的 46s 虽然剩的少,但是基本上都在山里;而牌河中饼子出的很少,显然各家手里都捏着不少饼子,中张的5p应该基本上都在上家或者下家手里。特别是上家,牌河里一张饼子都没有。

+

因此,这里应该切 8p 立直,期待能够摸到山里的 46s!

+]]>
+ + 立直麻将 + + + 何切 + 雀魂 + +
自动使用 WebP 图片 //posts/2019-12-20-Use-webp-in-NexT/ @@ -1783,19 +1783,101 @@ M834 80h400000v40h-400000z'/>
cwebp result.png -o result.webp

当然也可以借助 智图 等工具进行转化。


-

参考资料:

-
    -
  • https://akarin.dev/2019/10/22/upgrade-to-webp/
  • -
  • https://segmentfault.com/a/1190000007482148
  • -
+

参考资料:

+
    +
  • https://akarin.dev/2019/10/22/upgrade-to-webp/
  • +
  • https://segmentfault.com/a/1190000007482148
  • +
+]]> + + 博客 + + + Hexo + NexT + WebP + +
+ + 双正方形模型(一) + //posts/2020-04-01-Two-squares-1/ + 在正方形的题目中,有很常见的一类是和两个正方形有关的图形,如下图:

+图1 +

在这个图形中,有很多有意思的性质,也衍生出了很多的题目.我们讲分几次一一道来.

+

1. 「手拉手」模型

+

在学习全等的时候,我们知道有一类很重要的全等模型——旋转全等模型,俗称「手拉手」模型.说的是两个共顶点且顶角相等的等腰三角形,一定伴随着一组旋转全等,如图2

+图2 +

ABC\triangle ABCADE\triangle ADE 是两个顶角相等的等腰三角形,易证 ABDACE\triangle ABD \cong \triangle ACE .这是一个旋转全等,旋转角度等于两个等腰三角形的顶角角度.

+

关于这个模型,也有很多相关的结论,不过大部分和这次的内容关系不大,有机会我们另开文讲述.

+

那么,对于两个共顶点的正方形,也有类似的结论.在图1中,我们可以把它看成是两个等腰直角三角形 ABEABEACGACG 的「手拉手」,于是就有 ABGAEC\triangle ABG \cong \triangle AEC,而且旋转角度为 9090^\circ

+图3 +

于是,我们就得到了一个对角线垂直且相等的四边形 BCGEBCGE

+

1.1. 和中点四边形相关的问题

+

熟悉中点四边形的朋友马上就会想到,这样一个四边形的中点四边形一定是一个正方形,也就是下面这个图:

+图5 +

在这个图中,中点四边形 MPNQMPNQ 就是一个正方形.

+

2. 另一个和中点相关的问题

+

图1中,如果我们取 EGEG 的中点 PP ,连结 APAP ,则 APBCAP \perp BCAP=12BCAP = \dfrac{1}{2} BC.(如果取 BCBC 中点,有类似的结论)

+图5 +

对于中点问题,我们知道一种常见的处理方法就是「倍长中线」,因此我们倍长 APAPHH,可以证明 GHAABC\triangle GHA \cong \triangle ABC.注意这是一个旋转 9090 ^\circ 的全等,因此 AHAHBCBC 垂直且相等,所以上面的结论成立.

+图6 +

这个命题逆命题也成立,即如果 APBCAP \perp BC,则 PPEGEG 的中点,且 AP=12BCAP = \dfrac{1}{2} BC

+

这个命题也可以利用上图来证明,不过这个时候需要直接延长作 AH=BCAH=BC 来证明全等.

+

这个时候另外一种处理方法是做垂直,利用弦图的模型来证明全等.

+图7 +

图7,延长 PAPABCBCQQ,作 EMAPEM \perp APMMGNAPGN \perp APNN,则 ABQEAM\triangle ABQ \cong \triangle EAMACQGAM\triangle ACQ \cong \triangle GAM,于是 EM=AQ=NGEM = AQ = NGEMNGEM \parallel NG,因此 EMGNEMGN 是平行四边形,于是

+

PE=PG,PN=PM,BC=BQ+QC=AM+AN=2AP\begin{aligned} + PE &= PG, \\ + PN &= PM, \\ + BC &= BQ + QC \\ &= AM + AN \\ &= 2AP +\end{aligned} +

+

这两个证明同时还都证明了另一个结论,就是 SABC=SAEGS_{\triangle ABC} = S_{\triangle AEG}.由割补法知这两个三角形的面积的确是相等的.

+

当然,如果熟悉三角函数的话,这两个三角形的面积相等是显然的.因为 BAC\angle BACEAG\angle EAG 互补,而角的两边对应相等,因此面积也是相等的.

+

2.1. 变形一

+

前面我们说了 BCGEBCGE 是一个对角线垂直且相等的四边形,因此,这个题的可以这样来出:

+

图8,在四边形 ABCDABCD 中,ACBDAC \perp BD,且 AC=BDAC=BD,分别取 ADADBCBCABAB 的中点 MMNNPP,分别过 MMNNADADBCBC 的垂线交于 OO,则 POCDPO \perp CD

+图8 +

这个图如果把 OAOAOBOBOCOCODOD 都连起来,显然有 OACOBD\triangle OAC \cong \triangle OBD,注意这是一个旋转 9090^\circ 的全等,因此 OAD\triangle OADOBC\triangle OBC 都是等腰直角三角形.于是这就变成了图5一样的图了,后面的证明和上面相同.

+图9 +

2.2. 变形二

+

如果我们把两个正方形中间再加一个小正方形,那么结论会变成什么样子?

+

图10,有三个正方形 ABCDABCDAEFGAEFGFHIJFHIJ,取 JDJD 中点 PP,则有 PEBHPE \perp BHPE=12BHPE = \dfrac{1}{2} BH

+图10 +

很明显,这个图是上面图5的一个推广,如果中间的小正方形缩成一个点,那么就变成了图5

+

既然是推广,那么证明应该也是类似的.我们还是可以倍长 EPEP 来做,不过这个时候要找的全等变得复杂了一些.

+图11 +

图11,我们倍长 EPEPKK,可以类似地证明 JKEGBH\triangle JKE \cong \triangle GBH

+

不过在证明的时候需要注意,这里面隐藏着两个「手拉手」的全等模型,在证明上面的全等的时候需要用到,如图12,有 ADEABG\triangle ADE \cong \triangle ABGFJEFGH\triangle FJE \cong \triangle FGH,都是旋转 9090^\circ 的全等.

+图12 +

2.3. 拓展联想

+

在圆的内接四边形中,有一个类似的结论:

+

若圆内接四边形的对角线相互垂直,则垂直于一边且过对角线交点的直线将平分对边.

+

这就是 Brahmagupta 定理,一般译作「婆罗摩笈多定理」,或者「布拉美古塔定理」.

+

图13,在圆的内接四边形 ABCDABCD 中,ACBDAC \perp BD,过对角线的中点 OOPQABPQ \perp ABQQ,交 CDCD 于点 PP,则 PPCDCD 的中点.

+图13 +

这个的证明是比较简单的,

+

POC=90QOB=QBO=PCO\begin{aligned} + \angle POC &= 90^\circ - \angle QOB \\ &= \angle QBO \\ &= \angle PCO +\end{aligned} +

+

于是

+

POD=90POC=90PCO=PDC\begin{aligned} + \angle POD &= 90^\circ - \angle POC \\ &= 90^\circ - \angle PCO \\ &= \angle PDC +\end{aligned} +

+

PC=PO=PDPC = PO = PD,直接倒角就可以证明了.

+

这个定理的逆命题也成立,即如果 PPCDCD 的中点,那么 OPABOP \perp AB.证明和上面类似.

+
+

总结一下,这类问题主要是和中点有关系,主要的方法是「倍长中线」和「手拉手」的全等.还有一类问题是借助于中位线来解决的,这一类题目讨论的不是 EGEG 的中点(图1中),而是 DFDF 的中点.这一类问题,我们放到下一篇文章中来讨论.

]]>
- 博客 + 数学 + 平面几何 - Hexo - NexT - WebP + 全等 + 正方形
@@ -1880,89 +1962,6 @@ M834 80h400000v40h-400000z'/>

那么,我们还可以反过来想,如果保留等腰的条件,去掉直角的条件,那是否还会有这样漂亮的结论?

如果没有的话,是否可以考虑再加上一些条件(就像我们上面加入了相似的条件),再得到比较好的结论?

关于这种情形,我们放在下一篇文章中来讨论.

-]]> - - 数学 - 平面几何 - - - 全等 - 相似 - 正方形 - -
- - 双正方形模型(一) - //posts/2020-04-01-Two-squares-1/ - 在正方形的题目中,有很常见的一类是和两个正方形有关的图形,如下图:

-图1 -

在这个图形中,有很多有意思的性质,也衍生出了很多的题目.我们讲分几次一一道来.

-

1. 「手拉手」模型

-

在学习全等的时候,我们知道有一类很重要的全等模型——旋转全等模型,俗称「手拉手」模型.说的是两个共顶点且顶角相等的等腰三角形,一定伴随着一组旋转全等,如图2

-图2 -

ABC\triangle ABCADE\triangle ADE 是两个顶角相等的等腰三角形,易证 ABDACE\triangle ABD \cong \triangle ACE .这是一个旋转全等,旋转角度等于两个等腰三角形的顶角角度.

-

关于这个模型,也有很多相关的结论,不过大部分和这次的内容关系不大,有机会我们另开文讲述.

-

那么,对于两个共顶点的正方形,也有类似的结论.在图1中,我们可以把它看成是两个等腰直角三角形 ABEABEACGACG 的「手拉手」,于是就有 ABGAEC\triangle ABG \cong \triangle AEC,而且旋转角度为 9090^\circ

-图3 -

于是,我们就得到了一个对角线垂直且相等的四边形 BCGEBCGE

-

1.1. 和中点四边形相关的问题

-

熟悉中点四边形的朋友马上就会想到,这样一个四边形的中点四边形一定是一个正方形,也就是下面这个图:

-图5 -

在这个图中,中点四边形 MPNQMPNQ 就是一个正方形.

-

2. 另一个和中点相关的问题

-

图1中,如果我们取 EGEG 的中点 PP ,连结 APAP ,则 APBCAP \perp BCAP=12BCAP = \dfrac{1}{2} BC.(如果取 BCBC 中点,有类似的结论)

-图5 -

对于中点问题,我们知道一种常见的处理方法就是「倍长中线」,因此我们倍长 APAPHH,可以证明 GHAABC\triangle GHA \cong \triangle ABC.注意这是一个旋转 9090 ^\circ 的全等,因此 AHAHBCBC 垂直且相等,所以上面的结论成立.

-图6 -

这个命题逆命题也成立,即如果 APBCAP \perp BC,则 PPEGEG 的中点,且 AP=12BCAP = \dfrac{1}{2} BC

-

这个命题也可以利用上图来证明,不过这个时候需要直接延长作 AH=BCAH=BC 来证明全等.

-

这个时候另外一种处理方法是做垂直,利用弦图的模型来证明全等.

-图7 -

图7,延长 PAPABCBCQQ,作 EMAPEM \perp APMMGNAPGN \perp APNN,则 ABQEAM\triangle ABQ \cong \triangle EAMACQGAM\triangle ACQ \cong \triangle GAM,于是 EM=AQ=NGEM = AQ = NGEMNGEM \parallel NG,因此 EMGNEMGN 是平行四边形,于是

-

PE=PG,PN=PM,BC=BQ+QC=AM+AN=2AP\begin{aligned} - PE &= PG, \\ - PN &= PM, \\ - BC &= BQ + QC \\ &= AM + AN \\ &= 2AP -\end{aligned} -

-

这两个证明同时还都证明了另一个结论,就是 SABC=SAEGS_{\triangle ABC} = S_{\triangle AEG}.由割补法知这两个三角形的面积的确是相等的.

-

当然,如果熟悉三角函数的话,这两个三角形的面积相等是显然的.因为 BAC\angle BACEAG\angle EAG 互补,而角的两边对应相等,因此面积也是相等的.

-

2.1. 变形一

-

前面我们说了 BCGEBCGE 是一个对角线垂直且相等的四边形,因此,这个题的可以这样来出:

-

图8,在四边形 ABCDABCD 中,ACBDAC \perp BD,且 AC=BDAC=BD,分别取 ADADBCBCABAB 的中点 MMNNPP,分别过 MMNNADADBCBC 的垂线交于 OO,则 POCDPO \perp CD

-图8 -

这个图如果把 OAOAOBOBOCOCODOD 都连起来,显然有 OACOBD\triangle OAC \cong \triangle OBD,注意这是一个旋转 9090^\circ 的全等,因此 OAD\triangle OADOBC\triangle OBC 都是等腰直角三角形.于是这就变成了图5一样的图了,后面的证明和上面相同.

-图9 -

2.2. 变形二

-

如果我们把两个正方形中间再加一个小正方形,那么结论会变成什么样子?

-

图10,有三个正方形 ABCDABCDAEFGAEFGFHIJFHIJ,取 JDJD 中点 PP,则有 PEBHPE \perp BHPE=12BHPE = \dfrac{1}{2} BH

-图10 -

很明显,这个图是上面图5的一个推广,如果中间的小正方形缩成一个点,那么就变成了图5

-

既然是推广,那么证明应该也是类似的.我们还是可以倍长 EPEP 来做,不过这个时候要找的全等变得复杂了一些.

-图11 -

图11,我们倍长 EPEPKK,可以类似地证明 JKEGBH\triangle JKE \cong \triangle GBH

-

不过在证明的时候需要注意,这里面隐藏着两个「手拉手」的全等模型,在证明上面的全等的时候需要用到,如图12,有 ADEABG\triangle ADE \cong \triangle ABGFJEFGH\triangle FJE \cong \triangle FGH,都是旋转 9090^\circ 的全等.

-图12 -

2.3. 拓展联想

-

在圆的内接四边形中,有一个类似的结论:

-

若圆内接四边形的对角线相互垂直,则垂直于一边且过对角线交点的直线将平分对边.

-

这就是 Brahmagupta 定理,一般译作「婆罗摩笈多定理」,或者「布拉美古塔定理」.

-

图13,在圆的内接四边形 ABCDABCD 中,ACBDAC \perp BD,过对角线的中点 OOPQABPQ \perp ABQQ,交 CDCD 于点 PP,则 PPCDCD 的中点.

-图13 -

这个的证明是比较简单的,

-

POC=90QOB=QBO=PCO\begin{aligned} - \angle POC &= 90^\circ - \angle QOB \\ &= \angle QBO \\ &= \angle PCO -\end{aligned} -

-

于是

-

POD=90POC=90PCO=PDC\begin{aligned} - \angle POD &= 90^\circ - \angle POC \\ &= 90^\circ - \angle PCO \\ &= \angle PDC -\end{aligned} -

-

PC=PO=PDPC = PO = PD,直接倒角就可以证明了.

-

这个定理的逆命题也成立,即如果 PPCDCD 的中点,那么 OPABOP \perp AB.证明和上面类似.

-
-

总结一下,这类问题主要是和中点有关系,主要的方法是「倍长中线」和「手拉手」的全等.还有一类问题是借助于中位线来解决的,这一类题目讨论的不是 EGEG 的中点(图1中),而是 DFDF 的中点.这一类问题,我们放到下一篇文章中来讨论.

]]>
数学 @@ -1971,6 +1970,7 @@ M834 80h400000v40h-400000z'/> 全等 正方形 + 相似
@@ -2124,96 +2124,8 @@ M834 80h400000v40h-400000z'/>
全等 - 相似 正方形 - - - - 安装 ArchWSL 后需要做的事 - //posts/2020-04-11-Install-ArchWSL/ - 最近把 windows 更新到了 2004,切换到了 WSL 2 上。

-

1. 安装 WSL 2

-

启用 WSL 和虚拟机控制平台功能(要求管理员权限):

-
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
-

之后重启电脑。

-

升级 Linux 内核,然后安装 Arch,参见 ArchWSL

-

20200922 更新:在新电脑上安装 WSL2 时发现,按照升级内核的提示,打开网页 https://aka.ms/wsl2kernel,但发现并没有对应的链接。原因是中文版的帮助不知道为什么删掉了这一关键的步骤,而英文版的帮助上是有的。这里记录一下 msi 文件的链接,以防丢失。

-
-

2. WSL 2 相对于 WSL 1 的优缺点

-

优点:

-
    -
  • 本地文件操作更快。之前编译一个 glibc,几个小时都没有编完
  • -
  • 解决了 sleep 的问题
  • -
  • 支持网络操作,例如 ping
  • -
  • 可以使用 docker
  • -
-

缺点:

-
    -
  • 经常会爆内存,包括安装大软件、长时间运行等
  • -
  • 访问 Windows 主机上文件的速度变慢
  • -
-

3. 语言设置

-
sed -i '/zh_CN.UTF-8/s/^#//' /etc/locale.gen
locale-gen
sed -i 's/en_US/zh_CN/' /etc/locale.conf
source /etc/locale.conf
-

一个非常奇怪的事情是,如果把 LANG 设为 zh_CN.UTF-8,那么在 bash 下,windows 中的中文文件名显示为乱码,而 zsh 则显示正常。
-但在默认的 LANG=en_US.UTF-8 下,bashzsh 都能正常显示中文文件名。

-
-

20200922更新:上面出错的原因找到了,是没有修改 /etc/locale.gen 以及运行 locale-gen

-
-

4. 安装软件包

-

4.1. 导入密钥(非常重要!!!)

-
# 初始化密钥环 && 验证主密钥 && 更新密钥
pacman-key --init && pacman-key --populate archlinux && pacman-key --refresh-keys
-

4.2. 启用国内的镜像源

-
echo "Server = https://mirrors.aliyun.com/archlinux/\$repo/os/\$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.cqu.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.ustc.edu.cn/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
-

4.3. 添加 ArchlinuxCN 源

-
echo "
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/x86_64" >> /etc/pacman.conf
pacman -Sy && pacman -S archlinuxcn-keyring && pacman -S yaourt
-

这里坚持用 yaourt 的原因有两个,一是在 root 环境下使用不报错(主要是需要彩色显示),二是可以显示版本更新还是编译更新。

-

4.4. 安装常用软件

-

4.4.1. 先搭建好常用环境

-
pacman -Syu
pacman -S zsh git subversion lua openssh
-

4.4.2. 安装 zinit(原 zplugin)

-
git clone https://github.com/zdharma/zinit.git ~/.zinit/bin
echo "source ~/.zinit/bin/zinit.zsh" > ~/.zshrc
-
-

不得不再次吐槽一下 git clone 的速度。。。

-
-

4.4.3. 安装 powerlevel10k

-
echo "zinit ice depth=1; zinit light romkatv/powerlevel10k" >> ~/.zshrc
-

4.4.4. 启用 zsh(终于有了一个好看的终端)

-
zsh
-

然后就可以导入之前的 .zshrc 了。

-

4.4.5. 切换默认终端至 zsh

-
chsh -s /bin/zsh
-

4.4.6. 安装 vim-plug

-
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
-

导入之前的 .vimrc 文件,并执行命令:

-
vim +PlugInstall +qall
-

4.4.7. 安装常用软件

-
pacman -S base-devel which diffutils man openssh tree p7zip bc wget \
htop strace most \
yarn npm python-pip \
zathura-ps zathura-pdf-poppler \
feh imagemagick mediainfo ffmpeg \
opencc dos2unix jq net-tools bind-tools nload
yarn global add hexo-cli nali-cli http-server
-

4.4.8. 安装花哨软件

-
pacman -S fd exa bat ripgrep percol
-

4.4.9. 安装常用字体

-
pacman -S adobe-source-code-pro-fonts adobe-source-sans-pro-fonts adobe-source-serif-pro-fonts adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts tex-gyre-fonts ttf-dejavu wqy-zenhei wqy-microhei ttf-sarasa-gothic
-

4.4.10. 安装专业软件

-
pacman -S texlive-most
pacman -S texlive-langchinese biber asymptote qtikz \
sagemath jupyter
-

注意:安装 texlive-fontextra 会爆内存!!!
-反正我的8G内存被爆了,16G没有问题)

-
-

4.4.11. 安装 X 软件

-
pacman -S tk gvim
-

~/.zshrc 中添加:

-
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0.0
export LIBGL_ALWAYS_INDIRECT=1
-

注意对于 WSL 2,VcXsrv 启动时需要选中 Disable access control 的选项,或者加上 -ac 的参数。

-

20200922更新:如果是普通用户而且防火墙开启的话,在打开 VcXsrc 之后会弹出防火墙设置的弹窗。注意这里一定要把【公用网络】勾选上,因为 WSL2 创建 vEthernet(WSL) 默认识别为公用网络。

-
-

5. 添加新用户

-
groupadd AAA
useradd XXX -g AAA -G wheel -m -N
pacman -S sudo
echo "wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/wheel
-

其实我一直是使用 root 账户,只有在需要 makepkg 的时候才切换到普通用户。

-]]>
- - Windows - - - ArchLinux - WSL + 相似
@@ -2350,12 +2262,100 @@ M834 80h400000v40h-400000z'/>

图22

]]> - 数学 - 平面几何 + 数学 + 平面几何 + + + 全等 + 梯形 + +
+ + 安装 ArchWSL 后需要做的事 + //posts/2020-04-11-Install-ArchWSL/ + 最近把 windows 更新到了 2004,切换到了 WSL 2 上。

+

1. 安装 WSL 2

+

启用 WSL 和虚拟机控制平台功能(要求管理员权限):

+
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
+

之后重启电脑。

+

升级 Linux 内核,然后安装 Arch,参见 ArchWSL

+

20200922 更新:在新电脑上安装 WSL2 时发现,按照升级内核的提示,打开网页 https://aka.ms/wsl2kernel,但发现并没有对应的链接。原因是中文版的帮助不知道为什么删掉了这一关键的步骤,而英文版的帮助上是有的。这里记录一下 msi 文件的链接,以防丢失。

+
+

2. WSL 2 相对于 WSL 1 的优缺点

+

优点:

+
    +
  • 本地文件操作更快。之前编译一个 glibc,几个小时都没有编完
  • +
  • 解决了 sleep 的问题
  • +
  • 支持网络操作,例如 ping
  • +
  • 可以使用 docker
  • +
+

缺点:

+
    +
  • 经常会爆内存,包括安装大软件、长时间运行等
  • +
  • 访问 Windows 主机上文件的速度变慢
  • +
+

3. 语言设置

+
sed -i '/zh_CN.UTF-8/s/^#//' /etc/locale.gen
locale-gen
sed -i 's/en_US/zh_CN/' /etc/locale.conf
source /etc/locale.conf
+

一个非常奇怪的事情是,如果把 LANG 设为 zh_CN.UTF-8,那么在 bash 下,windows 中的中文文件名显示为乱码,而 zsh 则显示正常。
+但在默认的 LANG=en_US.UTF-8 下,bashzsh 都能正常显示中文文件名。

+
+

20200922更新:上面出错的原因找到了,是没有修改 /etc/locale.gen 以及运行 locale-gen

+
+

4. 安装软件包

+

4.1. 导入密钥(非常重要!!!)

+
# 初始化密钥环 && 验证主密钥 && 更新密钥
pacman-key --init && pacman-key --populate archlinux && pacman-key --refresh-keys
+

4.2. 启用国内的镜像源

+
echo "Server = https://mirrors.aliyun.com/archlinux/\$repo/os/\$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.cqu.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/\$repo/os/\$arch
Server = https://mirrors.ustc.edu.cn/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
+

4.3. 添加 ArchlinuxCN 源

+
echo "
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/x86_64" >> /etc/pacman.conf
pacman -Sy && pacman -S archlinuxcn-keyring && pacman -S yaourt
+

这里坚持用 yaourt 的原因有两个,一是在 root 环境下使用不报错(主要是需要彩色显示),二是可以显示版本更新还是编译更新。

+

4.4. 安装常用软件

+

4.4.1. 先搭建好常用环境

+
pacman -Syu
pacman -S zsh git subversion lua openssh
+

4.4.2. 安装 zinit(原 zplugin)

+
git clone https://github.com/zdharma/zinit.git ~/.zinit/bin
echo "source ~/.zinit/bin/zinit.zsh" > ~/.zshrc
+
+

不得不再次吐槽一下 git clone 的速度。。。

+
+

4.4.3. 安装 powerlevel10k

+
echo "zinit ice depth=1; zinit light romkatv/powerlevel10k" >> ~/.zshrc
+

4.4.4. 启用 zsh(终于有了一个好看的终端)

+
zsh
+

然后就可以导入之前的 .zshrc 了。

+

4.4.5. 切换默认终端至 zsh

+
chsh -s /bin/zsh
+

4.4.6. 安装 vim-plug

+
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
+

导入之前的 .vimrc 文件,并执行命令:

+
vim +PlugInstall +qall
+

4.4.7. 安装常用软件

+
pacman -S base-devel which diffutils man openssh tree p7zip bc wget \
htop strace most \
yarn npm python-pip \
zathura-ps zathura-pdf-poppler \
feh imagemagick mediainfo ffmpeg \
opencc dos2unix jq net-tools bind-tools nload
yarn global add hexo-cli nali-cli http-server
+

4.4.8. 安装花哨软件

+
pacman -S fd exa bat ripgrep percol
+

4.4.9. 安装常用字体

+
pacman -S adobe-source-code-pro-fonts adobe-source-sans-pro-fonts adobe-source-serif-pro-fonts adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts tex-gyre-fonts ttf-dejavu wqy-zenhei wqy-microhei ttf-sarasa-gothic
+

4.4.10. 安装专业软件

+
pacman -S texlive-most
pacman -S texlive-langchinese biber asymptote qtikz \
sagemath jupyter
+

注意:安装 texlive-fontextra 会爆内存!!!
+反正我的8G内存被爆了,16G没有问题)

+
+

4.4.11. 安装 X 软件

+
pacman -S tk gvim
+

~/.zshrc 中添加:

+
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0.0
export LIBGL_ALWAYS_INDIRECT=1
+

注意对于 WSL 2,VcXsrv 启动时需要选中 Disable access control 的选项,或者加上 -ac 的参数。

+

20200922更新:如果是普通用户而且防火墙开启的话,在打开 VcXsrc 之后会弹出防火墙设置的弹窗。注意这里一定要把【公用网络】勾选上,因为 WSL2 创建 vEthernet(WSL) 默认识别为公用网络。

+
+

5. 添加新用户

+
groupadd AAA
useradd XXX -g AAA -G wheel -m -N
pacman -S sudo
echo "wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/wheel
+

其实我一直是使用 root 账户,只有在需要 makepkg 的时候才切换到普通用户。

+]]>
+ + Windows - 全等 - 梯形 + ArchLinux + WSL
@@ -2441,41 +2441,6 @@ M834 80h400000v40h-400000z'/> 显卡 - - 常用 FFmpeg 命令 - //posts/2020-06-22-FFmpeg-Commands/ - 1. 剪裁文件

-
### 截取前一部分的视频
ffmpeg -t [duration] -i [input.mp4] -c copy [output.mp4]

### 截取后一部分视频
ffmpeg -ss [start] -i [input.mp4] -c copy [output.mp4]

### 截取中间一部分视频(结束时间确定)
ffmpeg -ss [start] -to [end] -i [input.mp4] -c copy [output.mp4]
### 或者(时长确定)
ffmpeg -ss [start] -t [duration] -i [input.mp4] -c copy [output.mp4]
-

时间格式:HH:MM:SS.XXX

-

这里面使用 -c copy 的选项,避免重新进行编码,可以很快地进行剪裁。

-

这里 -ss-to-t 的选项放在 -i 选项之前,时间不是很精确,可能有几秒的误差,但是可以避免黑屏的问题。在对时间精确度要求不高的情况下这是最好的方案。

-

如果放在 -i 选项之后,会对输入文件进行逐帧解码,时间会比较准确,但可能出现黑屏问题,速度也比较慢。

-
-

一种更加精确的剪裁方法是:

-
ffmpeg -ss [start] -t [duration] -accurate_seek -i [input.mp4] -avoid_negative_ts 1 -c copy [output.mp4]
-

注意 -accurate_seek 选项要在 -i 选项之前。

-

如果需要非常精确的剪裁的话,需要重新进行编码,并使用 -strict experimental 或者 -strict 2 的选项。

-

2. 合并文件

-

先把要合并的文件写在一个文本文件 list.txt 里:

-
file './split1.mp4'
file './split2.mp4'
file './split3.mp4'
-

然后再进行合并:

-
ffmpeg -f concat -i [list.txt] -c copy [output.mp4]
-

如果遇到 Unsafe file name 的错误(例如文件名中有空格),可以在 -f-i 之间加上 -safe 0 的选项。

-
-

3. 改变格式

-
### 重新编码
ffmpeg -i [input].mp4 [output].flv

### 不重新编码
ffmpeg -i [input].mp4 -c copy [output].flv
-

4. 提取音频

-
ffmpeg -i [intput].mp4 -c:a copy [output.aac]
-

5. 合并视频和音频

-
ffmpeg -i [input.mp4] -i [input.aac] -c copy [output.mp4]
-]]> - - 工作 - - - 视频 - - Windows 常用指令 //posts/2020-05-12-Windows-commands/ @@ -2523,6 +2488,41 @@ M834 80h400000v40h-400000z'/> 命令行 + + 常用 FFmpeg 命令 + //posts/2020-06-22-FFmpeg-Commands/ + 1. 剪裁文件

+
### 截取前一部分的视频
ffmpeg -t [duration] -i [input.mp4] -c copy [output.mp4]

### 截取后一部分视频
ffmpeg -ss [start] -i [input.mp4] -c copy [output.mp4]

### 截取中间一部分视频(结束时间确定)
ffmpeg -ss [start] -to [end] -i [input.mp4] -c copy [output.mp4]
### 或者(时长确定)
ffmpeg -ss [start] -t [duration] -i [input.mp4] -c copy [output.mp4]
+

时间格式:HH:MM:SS.XXX

+

这里面使用 -c copy 的选项,避免重新进行编码,可以很快地进行剪裁。

+

这里 -ss-to-t 的选项放在 -i 选项之前,时间不是很精确,可能有几秒的误差,但是可以避免黑屏的问题。在对时间精确度要求不高的情况下这是最好的方案。

+

如果放在 -i 选项之后,会对输入文件进行逐帧解码,时间会比较准确,但可能出现黑屏问题,速度也比较慢。

+
+

一种更加精确的剪裁方法是:

+
ffmpeg -ss [start] -t [duration] -accurate_seek -i [input.mp4] -avoid_negative_ts 1 -c copy [output.mp4]
+

注意 -accurate_seek 选项要在 -i 选项之前。

+

如果需要非常精确的剪裁的话,需要重新进行编码,并使用 -strict experimental 或者 -strict 2 的选项。

+

2. 合并文件

+

先把要合并的文件写在一个文本文件 list.txt 里:

+
file './split1.mp4'
file './split2.mp4'
file './split3.mp4'
+

然后再进行合并:

+
ffmpeg -f concat -i [list.txt] -c copy [output.mp4]
+

如果遇到 Unsafe file name 的错误(例如文件名中有空格),可以在 -f-i 之间加上 -safe 0 的选项。

+
+

3. 改变格式

+
### 重新编码
ffmpeg -i [input].mp4 [output].flv

### 不重新编码
ffmpeg -i [input].mp4 -c copy [output].flv
+

4. 提取音频

+
ffmpeg -i [intput].mp4 -c:a copy [output.aac]
+

5. 合并视频和音频

+
ffmpeg -i [input.mp4] -i [input.aac] -c copy [output.mp4]
+]]> + + 工作 + + + 视频 + + Notability 与 GoodNotes 在网课教学中的对比(2020版) //posts/2020-06-22-Notability-vs-GoodNotes/ @@ -3159,77 +3159,6 @@ Notability 转为订阅制,每年80元,老用户仅获赠一年订阅期。< 画图 - - Mathematica 中特殊符号的使用规则 - //posts/2020-07-05-Mathematica-funny-signs/ - 最近因为一些原因重新开始使用 Mathematica,Mathematica 的符号计算功能非常强大,但是在网上搜索别人的代码的时候,发现很难看懂,里面各种「@#%^&*?!」符号,看得人眼花缭乱。

-

所以在这里我们对一些常用的符号做一些总结。

- -

20211014 更新:关于 Mathematica 的系统的介绍,可以看清华大学刘思齐教授在 B 站的视频 北京某高校《Mathematica及其应用》 (共八讲) (已完结)

-
-

1. 前置、中置与后置运算符

-

我们知道,在数学中,我们很多时候习惯使用中置运算符,而计算机科学一般都是使用前置运算符,因此在 Mathematica 中,对于各种运算符都给了不同的符号。

-
f @ x
x // f
(* 结果是 *)
f[x]
-

需要注意的是,后置运算符 // 的运算优先级较低,例如 1+x//f 表示的是 f[1+x],而不是 1+f[x],这点在使用的时候需要注意,必要的时候可以加小括号。

-

对于有多个参数的函数,可以使用中置运算符:

-
x~f~y~f~z
(* 结果是 *)
f[x,y,z]
-

这种形式在连接列表(~Join~)、连接字符串(<>)等时候比较常见。

-

注意:仅当函数 f 有 Flat 属性时才可以这么用。

-
-

2. 函数式编程符号

-

在函数式编程中,MapApply 是两个非常重要的函数,因此 Mathematica 专门规定了简写的符号。

-

Map 函数:

-
f /@ {a, b, c}
Map[f, {a, b, c}]
(* 结果是 *)
{f[a], f[b], f[c]}
-

注意,Map 函数不仅仅可以作用在列表上,还可以作用在表达式上

-
Map[f, a + b + c]
(* 结果是 *)
f[a] + f[b] + f[c]

Map[f, g[a, b, c]]
(* 结果是 *)
g[f[a], f[b], f[c]]
-

还有一个不太常用的符号 //@,表示的是 MapAll 函数:

-
f //@ {{a, b}, {c, d}, {x, y}}
MapAll[f, {{a, b}, {c, d}, {x, y}}]
Map[f, {{a, b}, {c, d}, {x, y}}, {0, Infinity}]
(* 结果是 *)
f[{f[{f[a], f[b]}], f[{f[c], f[d]}], f[{f[x], f[y]}]}]
-

Apply 函数:

-
f @@ {a, b, c}
Apply[f,{a, b, c}]
(* 结果是 *)
f[a, b, c]
-

另外,Apply 函数还有一种简写形式 @@@,表示在第 1 层应用函数(@@ 默认是在最外层,也就是第 0 层)。

-

注意下面三个符号的不同点:

-
f @@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
f[{a, b}, {c, d}, {x, y}]

f @@@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
{f[a, b], f[c, d], f[x, y]}

f /@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
{f[{a, b}], f[{c, d}], f[{x, y}]}
-

在使用 MapApply 函数的时候,一定要注意列表的层数,必要时需要指定层数来使用。

-
-

Mathematica 中没有 Reduce 函数,可以视情况分别使用 FoldListComposeListNestList 等函数。

-
-

Mathematica 中也没有 Zip 函数,可以视情况分别使用 ThreadMapThreadMapIndexed 等函数。

-
-

3. 匿名函数(λ 函数)

-
(xx^2) /@ Range[10]
(x \[Function] x^2) /@ Range[10]
Function[x, x^2] /@ Range[10]
(#1^2) & /@ Range[10]

(* 匿名函数可以直接作用于列表 *)
(#1^2) & @ Range[10]
Range[10] // (#1^2) &

(* 结果是 *)
{1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
-

& 结尾表示一个匿名函数,其中 #1Slot[1])、#2Slot[2])等表示参数。#1 可简写为 ##0Slot[0]) 则表示函数本身。

-

##(即##1SlotSequence[])表示所有参数,##kSlotSequence[k]) 表示从第 k 个开始后面的参数。

-

常见的用法比如定义谓词函数:

-
Select[{1, -1, 2, -2, 3, -3}, # >= -1 &]
(* 结果是 *)
{1, -1, 2, 3}
-

传递函数参数:

-
(* 牛顿法 *)
NewtonZero[f_, x0_] := FixedPoint[# - f[#]/f'[#] &, x0]
-

等等。

-

4. 函数的复合

-

下面是函数复合的不同表示方法,其中 @* 表示左复合,/* 表示右复合。特别要注意其中的小括号。

-
f@*g@*h @@ {x, y, z}
(f@*g@*h)[x, y, z]
Composition[f, g, h][x, y, z]

h /* g /* f @@ {x, y, z}
(h /* g /* f)[x, y, z]
RightComposition[h, g, f][x, y, z]

f@g@h[x, y, z]
f@g@(h @@ {x, y, z})

h[x, y, z] // g // f
h @@ {x, y, z} // g // f

f[g[h[#1, #2, #3]]]& [x, y, z]
f[g[h[#1, #2, #3]]]& @@ {x, y, z}

(* 结果是 *)
f[g[h[x, y, z]]]
-

5. 逻辑运算符

-

这部分和其它语言类似,&&(或 )表示且,||(或 )表示或,!(或 ¬)表示非(否定)。

-

6. 历史记录

-

% 表示上一个结果,%% 表示倒数第二个结果,%%...%(k 次)表示倒数第 k 次结果,%n 表示第 n 次计算的结果。

-

7. 模式匹配

-

这部分我用的不多,主要是方程的解会以这种形式给出。-> 表示转换规则,使用 /. 可以应用规则。

-
Solve[{x^2 + y == 5, x - y == 1}, {x, y}]
(* 结果是 *)
{{x -> -3, y -> -4}, {x -> 2, y -> 1}}

f[x, y] /. %
(* 结果是 *)
{f[-3, -4], f[2, 1]}
-

其它的还有字符串的模式匹配等等。

-
-

参考资料:

-
    -
  • How to| 使用简写符号
  • -
  • What the @#%^&*?! do all those funny signs mean?
  • -
-]]>
- - 数学 - 软件 - - - Mathematica - -
常用 tkz-euclide 命令(二)——直线形的定义方法 //posts/2020-07-04-tkz-euclide-2/ @@ -3645,6 +3574,77 @@ Notability 转为订阅制,每年80元,老用户仅获赠一年订阅期。< 画图 + + Mathematica 中特殊符号的使用规则 + //posts/2020-07-05-Mathematica-funny-signs/ + 最近因为一些原因重新开始使用 Mathematica,Mathematica 的符号计算功能非常强大,但是在网上搜索别人的代码的时候,发现很难看懂,里面各种「@#%^&*?!」符号,看得人眼花缭乱。

+

所以在这里我们对一些常用的符号做一些总结。

+ +

20211014 更新:关于 Mathematica 的系统的介绍,可以看清华大学刘思齐教授在 B 站的视频 北京某高校《Mathematica及其应用》 (共八讲) (已完结)

+
+

1. 前置、中置与后置运算符

+

我们知道,在数学中,我们很多时候习惯使用中置运算符,而计算机科学一般都是使用前置运算符,因此在 Mathematica 中,对于各种运算符都给了不同的符号。

+
f @ x
x // f
(* 结果是 *)
f[x]
+

需要注意的是,后置运算符 // 的运算优先级较低,例如 1+x//f 表示的是 f[1+x],而不是 1+f[x],这点在使用的时候需要注意,必要的时候可以加小括号。

+

对于有多个参数的函数,可以使用中置运算符:

+
x~f~y~f~z
(* 结果是 *)
f[x,y,z]
+

这种形式在连接列表(~Join~)、连接字符串(<>)等时候比较常见。

+

注意:仅当函数 f 有 Flat 属性时才可以这么用。

+
+

2. 函数式编程符号

+

在函数式编程中,MapApply 是两个非常重要的函数,因此 Mathematica 专门规定了简写的符号。

+

Map 函数:

+
f /@ {a, b, c}
Map[f, {a, b, c}]
(* 结果是 *)
{f[a], f[b], f[c]}
+

注意,Map 函数不仅仅可以作用在列表上,还可以作用在表达式上

+
Map[f, a + b + c]
(* 结果是 *)
f[a] + f[b] + f[c]

Map[f, g[a, b, c]]
(* 结果是 *)
g[f[a], f[b], f[c]]
+

还有一个不太常用的符号 //@,表示的是 MapAll 函数:

+
f //@ {{a, b}, {c, d}, {x, y}}
MapAll[f, {{a, b}, {c, d}, {x, y}}]
Map[f, {{a, b}, {c, d}, {x, y}}, {0, Infinity}]
(* 结果是 *)
f[{f[{f[a], f[b]}], f[{f[c], f[d]}], f[{f[x], f[y]}]}]
+

Apply 函数:

+
f @@ {a, b, c}
Apply[f,{a, b, c}]
(* 结果是 *)
f[a, b, c]
+

另外,Apply 函数还有一种简写形式 @@@,表示在第 1 层应用函数(@@ 默认是在最外层,也就是第 0 层)。

+

注意下面三个符号的不同点:

+
f @@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
f[{a, b}, {c, d}, {x, y}]

f @@@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
{f[a, b], f[c, d], f[x, y]}

f /@ {{a, b}, {c, d}, {x, y}}
(* 结果是 *)
{f[{a, b}], f[{c, d}], f[{x, y}]}
+

在使用 MapApply 函数的时候,一定要注意列表的层数,必要时需要指定层数来使用。

+
+

Mathematica 中没有 Reduce 函数,可以视情况分别使用 FoldListComposeListNestList 等函数。

+
+

Mathematica 中也没有 Zip 函数,可以视情况分别使用 ThreadMapThreadMapIndexed 等函数。

+
+

3. 匿名函数(λ 函数)

+
(xx^2) /@ Range[10]
(x \[Function] x^2) /@ Range[10]
Function[x, x^2] /@ Range[10]
(#1^2) & /@ Range[10]

(* 匿名函数可以直接作用于列表 *)
(#1^2) & @ Range[10]
Range[10] // (#1^2) &

(* 结果是 *)
{1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
+

& 结尾表示一个匿名函数,其中 #1Slot[1])、#2Slot[2])等表示参数。#1 可简写为 ##0Slot[0]) 则表示函数本身。

+

##(即##1SlotSequence[])表示所有参数,##kSlotSequence[k]) 表示从第 k 个开始后面的参数。

+

常见的用法比如定义谓词函数:

+
Select[{1, -1, 2, -2, 3, -3}, # >= -1 &]
(* 结果是 *)
{1, -1, 2, 3}
+

传递函数参数:

+
(* 牛顿法 *)
NewtonZero[f_, x0_] := FixedPoint[# - f[#]/f'[#] &, x0]
+

等等。

+

4. 函数的复合

+

下面是函数复合的不同表示方法,其中 @* 表示左复合,/* 表示右复合。特别要注意其中的小括号。

+
f@*g@*h @@ {x, y, z}
(f@*g@*h)[x, y, z]
Composition[f, g, h][x, y, z]

h /* g /* f @@ {x, y, z}
(h /* g /* f)[x, y, z]
RightComposition[h, g, f][x, y, z]

f@g@h[x, y, z]
f@g@(h @@ {x, y, z})

h[x, y, z] // g // f
h @@ {x, y, z} // g // f

f[g[h[#1, #2, #3]]]& [x, y, z]
f[g[h[#1, #2, #3]]]& @@ {x, y, z}

(* 结果是 *)
f[g[h[x, y, z]]]
+

5. 逻辑运算符

+

这部分和其它语言类似,&&(或 )表示且,||(或 )表示或,!(或 ¬)表示非(否定)。

+

6. 历史记录

+

% 表示上一个结果,%% 表示倒数第二个结果,%%...%(k 次)表示倒数第 k 次结果,%n 表示第 n 次计算的结果。

+

7. 模式匹配

+

这部分我用的不多,主要是方程的解会以这种形式给出。-> 表示转换规则,使用 /. 可以应用规则。

+
Solve[{x^2 + y == 5, x - y == 1}, {x, y}]
(* 结果是 *)
{{x -> -3, y -> -4}, {x -> 2, y -> 1}}

f[x, y] /. %
(* 结果是 *)
{f[-3, -4], f[2, 1]}
+

其它的还有字符串的模式匹配等等。

+
+

参考资料:

+
    +
  • How to| 使用简写符号
  • +
  • What the @#%^&*?! do all those funny signs mean?
  • +
+]]>
+ + 数学 + 软件 + + + Mathematica + +
欧拉计划(Project Euler)解法【1~25】 //posts/2020-07-06-Project-Euler-1/ diff --git a/sitemap.xml b/sitemap.xml index b3b31ad83..1208d19bb 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -4,7 +4,7 @@ https://wangjiezhe.github.io/fcircle/friends.json - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -13,7 +13,7 @@ https://wangjiezhe.github.io/links/index.html - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -22,7 +22,7 @@ https://wangjiezhe.github.io/links/linklist.json - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -31,7 +31,7 @@ https://wangjiezhe.github.io/tags/index.html - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -40,7 +40,7 @@ https://wangjiezhe.github.io/tools/index.html - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -49,7 +49,7 @@ https://wangjiezhe.github.io/categories/index.html - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -58,7 +58,7 @@ https://wangjiezhe.github.io/404/index.html - 2024-10-06 + 2024-10-10 monthly 0.6 @@ -670,7 +670,7 @@ https://wangjiezhe.github.io/ - 2024-10-06 + 2024-10-10 daily 1.0 @@ -678,721 +678,721 @@ https://wangjiezhe.github.io/tags/%E8%A5%BF%E9%A3%8E/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%AE%9A%E5%9C%BA%E8%AF%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Pearl24/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%8E%9F%E5%AD%90%E5%9F%8E/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%9D%92%E6%B5%B7/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%97%85%E6%B8%B8/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%BA%AA%E5%BF%B5%E7%A2%91/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%BF%BD%E7%84%B6%E6%83%B3%E5%88%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%80%92%E6%94%BE%E7%9A%84%E7%94%9F%E5%91%BD/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Linux/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Shell/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Sed/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Vim/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Fedora/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Pipelight/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Wine/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/ActiveX/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Regular-expression/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Grep/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Awk/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%87%91%E5%BA%B8/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%87%A1%E4%BA%BA%E6%AD%8C/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Network/ - 2024-10-06 + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/Zip/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E5%90%8C%E6%A1%8C%E7%9A%84%E4%BD%A0/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E4%B9%B1%E7%A0%81/ - 2024-10-06 + https://wangjiezhe.github.io/tags/Zip/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E5%90%8C%E6%A1%8C%E7%9A%84%E4%BD%A0/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E4%B9%B1%E7%A0%81/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E7%B4%A0%E6%95%B0/ - 2024-10-06 + https://wangjiezhe.github.io/tags/Blog/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ - 2024-10-06 + https://wangjiezhe.github.io/tags/ArchLinux/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/Blog/ - 2024-10-06 + https://wangjiezhe.github.io/tags/Hexo/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/ArchLinux/ - 2024-10-06 + https://wangjiezhe.github.io/tags/NexT/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/Hexo/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E7%B4%A0%E6%95%B0/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/NexT/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/ + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%A4%A9%E5%87%A4/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%A4%AA%E3%81%8F%E3%81%AA%E3%81%84%E3%81%8A/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%BD%95%E5%88%87/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%94%BB%E5%AE%88%E5%88%A4%E6%96%AD/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%9B%80%E9%AD%82/ - 2024-10-06 + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E5%9C%BA%E5%86%B5%E5%88%A4%E6%96%AD/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E8%A7%86%E9%A2%91/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E8%A7%86%E9%A2%91/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E5%BE%AE%E4%BF%A1/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E5%BE%AE%E4%BF%A1/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E5%8E%8B%E7%BC%A9/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E5%8E%8B%E7%BC%A9/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E5%9C%BA%E5%86%B5%E5%88%A4%E6%96%AD/ + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%95%B0%E5%AD%A6%E7%AB%9E%E8%B5%9B/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%8A%A0%E6%8B%BF%E5%A4%A7/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%8A%9B%E7%89%A9%E7%BA%BF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%8C%85%E7%BB%9C%E7%BA%BF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%BB%A3%E6%9B%B2%E7%BA%BF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/WebP/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%85%A8%E7%AD%89/ - 2024-10-06 + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E7%9B%B8%E4%BC%BC/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E6%AD%A3%E6%96%B9%E5%BD%A2/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E6%AD%A3%E6%96%B9%E5%BD%A2/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E7%9B%B8%E4%BC%BC/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/WSL/ - 2024-10-06 + https://wangjiezhe.github.io/tags/%E6%A2%AF%E5%BD%A2/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/tags/%E6%A2%AF%E5%BD%A2/ - 2024-10-06 + https://wangjiezhe.github.io/tags/WSL/ + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/MathType/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%98%BE%E5%8D%A1/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%91%BD%E4%BB%A4%E8%A1%8C/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/iPad/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Notability/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/GoodNotes/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%96%B0%E5%86%A0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%BD%91%E8%AF%BE/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/ClassIn/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/LaTeX/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/TikZ/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%94%BB%E5%9B%BE/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Mathematica/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%AE%97%E6%B3%95/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%B9%B3%E9%9D%A2%E5%90%91%E9%87%8F/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%A5%94%E9%A9%B0%E5%AE%9A%E7%90%86/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%87%8D%E5%BF%83%E5%9D%90%E6%A0%87/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%B8%89%E8%A7%92%E5%BD%A2/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%9D%A2%E7%A7%AF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%B8%8D%E7%AD%89%E5%BC%8F/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%9F%AF%E8%A5%BF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Nextcloud/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Nginx/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Vultr/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/CTeX/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%AD%97%E4%BD%93/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/include/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/input/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%95%B0%E5%88%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%AD%89%E5%B7%AE%E6%95%B0%E5%88%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E7%AD%89%E6%AF%94%E6%95%B0%E5%88%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%80%92%E6%8E%A8%E6%95%B0%E5%88%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%BB%A3%E6%95%B0%E6%96%B9%E7%A8%8B/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%97%A0%E7%90%86%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E8%87%AA%E7%84%B6%E5%B8%B8%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%AF%B9%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%9C%89%E7%90%86%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%AE%9E%E6%95%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%AE%8C%E5%A4%87%E6%80%A7/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Gentoo/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Loongson/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E9%BE%99%E8%8A%AF/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/OpenBSD/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Lenovo/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E6%89%93%E5%8D%B0%E6%9C%BA/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/Rust/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/tags/%E5%8F%8D%E6%BC%94/ - 2024-10-06 + 2024-10-10 weekly 0.2 @@ -1401,133 +1401,133 @@ https://wangjiezhe.github.io/categories/%E9%9A%8F%E6%83%B3/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E5%AD%98%E6%A1%A3/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E9%9A%8F%E6%83%B3/%E5%BF%BD%E7%84%B6%E6%83%B3%E5%88%B0/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E5%AD%98%E6%A1%A3/%E8%AF%AD%E5%BD%95/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/Linux/ - 2024-10-06 + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/ - 2024-10-06 + https://wangjiezhe.github.io/categories/%E5%8D%9A%E5%AE%A2/ + 2024-10-10 weekly 0.2 - https://wangjiezhe.github.io/categories/%E5%8D%9A%E5%AE%A2/ - 2024-10-06 + https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/ + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E7%AB%8B%E7%9B%B4%E9%BA%BB%E5%B0%86/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E5%B7%A5%E4%BD%9C/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/Windows/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E5%88%9D%E7%AD%89%E6%95%B0%E8%AE%BA/ - 2024-10-06 - weekly - 0.2 - - - - https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E5%B9%B3%E9%9D%A2%E5%87%A0%E4%BD%95/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E5%8D%9A%E5%AE%A2/%E4%B8%BB%E9%A2%98/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/LaTeX/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E8%BD%AF%E4%BB%B6/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E7%AE%97%E6%B3%95/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E5%90%91%E9%87%8F/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E6%95%B0%E5%88%97/ - 2024-10-06 + 2024-10-10 weekly 0.2 https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E5%88%86%E6%9E%90/ - 2024-10-06 + 2024-10-10 + weekly + 0.2 + + + + https://wangjiezhe.github.io/categories/%E6%95%B0%E5%AD%A6/%E5%B9%B3%E9%9D%A2%E5%87%A0%E4%BD%95/ + 2024-10-10 weekly 0.2 diff --git a/tags/ActiveX/index.html b/tags/ActiveX/index.html index 0093e9f94..c3cf722be 100644 --- a/tags/ActiveX/index.html +++ b/tags/ActiveX/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

ActiveX - - + + diff --git a/tags/ArchLinux/index.html b/tags/ArchLinux/index.html index 3debbca71..b46062edc 100644 --- a/tags/ArchLinux/index.html +++ b/tags/ArchLinux/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -724,8 +724,8 @@

ArchLinux - - + + diff --git a/tags/Awk/index.html b/tags/Awk/index.html index 6509b2e62..948d6b52d 100644 --- a/tags/Awk/index.html +++ b/tags/Awk/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Awk - - + + diff --git a/tags/Blog/index.html b/tags/Blog/index.html index e71d459be..aab019600 100644 --- a/tags/Blog/index.html +++ b/tags/Blog/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Blog - - + + diff --git a/tags/CTeX/index.html b/tags/CTeX/index.html index 23516e495..274360ecb 100644 --- a/tags/CTeX/index.html +++ b/tags/CTeX/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

CTeX - - + + diff --git a/tags/ClassIn/index.html b/tags/ClassIn/index.html index a7d85b9a9..b47b37432 100644 --- a/tags/ClassIn/index.html +++ b/tags/ClassIn/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

ClassIn - - + + diff --git a/tags/Fedora/index.html b/tags/Fedora/index.html index c8f209df4..c569cdea2 100644 --- a/tags/Fedora/index.html +++ b/tags/Fedora/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

Fedora - - + + diff --git a/tags/Gentoo/index.html b/tags/Gentoo/index.html index 8b9bbb4f7..596a07196 100644 --- a/tags/Gentoo/index.html +++ b/tags/Gentoo/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -718,8 +718,8 @@

Gentoo - - + + diff --git a/tags/GoodNotes/index.html b/tags/GoodNotes/index.html index 3555b01db..60f70486a 100644 --- a/tags/GoodNotes/index.html +++ b/tags/GoodNotes/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

GoodNotes - - + + diff --git a/tags/Grep/index.html b/tags/Grep/index.html index 2db079b47..eba354b3d 100644 --- a/tags/Grep/index.html +++ b/tags/Grep/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Grep - - + + diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html index 1755e10a3..7d061e128 100644 --- a/tags/Hexo/index.html +++ b/tags/Hexo/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -807,8 +807,8 @@

Hexo - - + + diff --git a/tags/LaTeX/index.html b/tags/LaTeX/index.html index 9af02d8f8..042241f96 100644 --- a/tags/LaTeX/index.html +++ b/tags/LaTeX/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -764,8 +764,8 @@

LaTeX - - + + diff --git a/tags/Lenovo/index.html b/tags/Lenovo/index.html index f68934f7b..6af0ed8a6 100644 --- a/tags/Lenovo/index.html +++ b/tags/Lenovo/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Lenovo - - + + diff --git a/tags/Linux/index.html b/tags/Linux/index.html index d0300a77f..b7ed74e19 100644 --- a/tags/Linux/index.html +++ b/tags/Linux/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -867,8 +867,8 @@

Linux - - + + diff --git a/tags/Linux/page/2/index.html b/tags/Linux/page/2/index.html index deaeaccd5..48313137f 100644 --- a/tags/Linux/page/2/index.html +++ b/tags/Linux/page/2/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -681,8 +681,8 @@

Linux - - + + diff --git a/tags/Loongson/index.html b/tags/Loongson/index.html index fffa2f9ef..89f429ef2 100644 --- a/tags/Loongson/index.html +++ b/tags/Loongson/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

Loongson - - + + diff --git a/tags/MathType/index.html b/tags/MathType/index.html index f29016179..6ba9acf2f 100644 --- a/tags/MathType/index.html +++ b/tags/MathType/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

MathType - - + + diff --git a/tags/Mathematica/index.html b/tags/Mathematica/index.html index 4038c6d2b..23dc2170a 100644 --- a/tags/Mathematica/index.html +++ b/tags/Mathematica/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

Mathematica - - + + diff --git a/tags/Network/index.html b/tags/Network/index.html index d054e853a..73c2df964 100644 --- a/tags/Network/index.html +++ b/tags/Network/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Network - - + + diff --git a/tags/NexT/index.html b/tags/NexT/index.html index 568021db1..3ae6e592d 100644 --- a/tags/NexT/index.html +++ b/tags/NexT/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -807,8 +807,8 @@

NexT - - + + diff --git a/tags/Nextcloud/index.html b/tags/Nextcloud/index.html index e27dbf084..a2a8c7491 100644 --- a/tags/Nextcloud/index.html +++ b/tags/Nextcloud/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Nextcloud - - + + diff --git a/tags/Nginx/index.html b/tags/Nginx/index.html index d65c1cbca..157f03ef6 100644 --- a/tags/Nginx/index.html +++ b/tags/Nginx/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Nginx - - + + diff --git a/tags/Notability/index.html b/tags/Notability/index.html index 9cdd3aa5f..831a214e4 100644 --- a/tags/Notability/index.html +++ b/tags/Notability/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

Notability - - + + diff --git a/tags/OpenBSD/index.html b/tags/OpenBSD/index.html index 252e66209..a75cf7945 100644 --- a/tags/OpenBSD/index.html +++ b/tags/OpenBSD/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

OpenBSD - - + + diff --git a/tags/Pearl24/index.html b/tags/Pearl24/index.html index f23c7ef56..8089d4d5f 100644 --- a/tags/Pearl24/index.html +++ b/tags/Pearl24/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

Pearl24 - - + + diff --git a/tags/Pipelight/index.html b/tags/Pipelight/index.html index 7bafae683..bc8884c07 100644 --- a/tags/Pipelight/index.html +++ b/tags/Pipelight/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Pipelight - - + + diff --git a/tags/Regular-expression/index.html b/tags/Regular-expression/index.html index 170e6f0a0..4f68edd95 100644 --- a/tags/Regular-expression/index.html +++ b/tags/Regular-expression/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Regular expression - - + + diff --git a/tags/Rust/index.html b/tags/Rust/index.html index 64f630995..b3585c8be 100644 --- a/tags/Rust/index.html +++ b/tags/Rust/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Rust - - + + diff --git a/tags/Sed/index.html b/tags/Sed/index.html index 6325284af..0899d91b3 100644 --- a/tags/Sed/index.html +++ b/tags/Sed/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

Sed - - + + diff --git a/tags/Shell/index.html b/tags/Shell/index.html index d84263d11..102106ae2 100644 --- a/tags/Shell/index.html +++ b/tags/Shell/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -721,8 +721,8 @@

Shell - - + + diff --git a/tags/TikZ/index.html b/tags/TikZ/index.html index 4af236707..183eaeef9 100644 --- a/tags/TikZ/index.html +++ b/tags/TikZ/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

TikZ - - + + diff --git a/tags/Vim/index.html b/tags/Vim/index.html index bc9f30956..328f3f183 100644 --- a/tags/Vim/index.html +++ b/tags/Vim/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -721,8 +721,8 @@

Vim - - + + diff --git a/tags/Vultr/index.html b/tags/Vultr/index.html index 03c88bb1e..31e0c7576 100644 --- a/tags/Vultr/index.html +++ b/tags/Vultr/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Vultr - - + + diff --git a/tags/WSL/index.html b/tags/WSL/index.html index 190724a97..9882df1f2 100644 --- a/tags/WSL/index.html +++ b/tags/WSL/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

WSL - - + + diff --git a/tags/WebP/index.html b/tags/WebP/index.html index 7cc6a83eb..52488b1bb 100644 --- a/tags/WebP/index.html +++ b/tags/WebP/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

WebP - - + + diff --git a/tags/Wine/index.html b/tags/Wine/index.html index 160eff632..6fbaa02d3 100644 --- a/tags/Wine/index.html +++ b/tags/Wine/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Wine - - + + diff --git a/tags/Zip/index.html b/tags/Zip/index.html index f188eace4..88c040509 100644 --- a/tags/Zip/index.html +++ b/tags/Zip/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

Zip - - + + diff --git a/tags/iPad/index.html b/tags/iPad/index.html index e5d4c41e2..612c30ba9 100644 --- a/tags/iPad/index.html +++ b/tags/iPad/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

iPad - - + + diff --git a/tags/include/index.html b/tags/include/index.html index cb05ea8a2..0f05fddcf 100644 --- a/tags/include/index.html +++ b/tags/include/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

include - - + + diff --git a/tags/index.html b/tags/index.html index 70e941103..727bf0110 100644 --- a/tags/index.html +++ b/tags/index.html @@ -15,9 +15,9 @@ - + - + @@ -27,7 +27,7 @@ - + @@ -108,25 +108,25 @@
- @@ -674,8 +674,8 @@

标签 - - + + diff --git a/tags/input/index.html b/tags/input/index.html index c9c5c8533..c5e133619 100644 --- a/tags/input/index.html +++ b/tags/input/index.html @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

input - - + + diff --git "a/tags/\344\270\211\350\247\222\345\207\275\346\225\260/index.html" "b/tags/\344\270\211\350\247\222\345\207\275\346\225\260/index.html" index 8447c8f04..6305c4e7c 100644 --- "a/tags/\344\270\211\350\247\222\345\207\275\346\225\260/index.html" +++ "b/tags/\344\270\211\350\247\222\345\207\275\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

三角函数 - - + + diff --git "a/tags/\344\270\211\350\247\222\345\275\242/index.html" "b/tags/\344\270\211\350\247\222\345\275\242/index.html" index b4a703169..b2e3334c9 100644 --- "a/tags/\344\270\211\350\247\222\345\275\242/index.html" +++ "b/tags/\344\270\211\350\247\222\345\275\242/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

三角形 - - + + diff --git "a/tags/\344\270\215\347\255\211\345\274\217/index.html" "b/tags/\344\270\215\347\255\211\345\274\217/index.html" index 6da005b6a..6dcae8ab2 100644 --- "a/tags/\344\270\215\347\255\211\345\274\217/index.html" +++ "b/tags/\344\270\215\347\255\211\345\274\217/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

不等式 - - + + diff --git "a/tags/\344\271\261\347\240\201/index.html" "b/tags/\344\271\261\347\240\201/index.html" index e1a4df7a0..5dc2d36a2 100644 --- "a/tags/\344\271\261\347\240\201/index.html" +++ "b/tags/\344\271\261\347\240\201/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

乱码 - - + + diff --git "a/tags/\344\272\214\346\254\241\346\226\271\347\250\213/index.html" "b/tags/\344\272\214\346\254\241\346\226\271\347\250\213/index.html" index 547af22e7..77fa35457 100644 --- "a/tags/\344\272\214\346\254\241\346\226\271\347\250\213/index.html" +++ "b/tags/\344\272\214\346\254\241\346\226\271\347\250\213/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

二次方程 - - + + diff --git "a/tags/\344\272\244\345\217\211\347\274\226\350\257\221/index.html" "b/tags/\344\272\244\345\217\211\347\274\226\350\257\221/index.html" index 8cff4a56f..d1711824a 100644 --- "a/tags/\344\272\244\345\217\211\347\274\226\350\257\221/index.html" +++ "b/tags/\344\272\244\345\217\211\347\274\226\350\257\221/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

交叉编译 - - + + diff --git "a/tags/\344\273\243\346\225\260\346\226\271\347\250\213/index.html" "b/tags/\344\273\243\346\225\260\346\226\271\347\250\213/index.html" index 287cbaf54..4386223b9 100644 --- "a/tags/\344\273\243\346\225\260\346\226\271\347\250\213/index.html" +++ "b/tags/\344\273\243\346\225\260\346\226\271\347\250\213/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

代数方程 - - + + diff --git "a/tags/\344\275\225\345\210\207/index.html" "b/tags/\344\275\225\345\210\207/index.html" index 90a9b8c4a..82922d06b 100644 --- "a/tags/\344\275\225\345\210\207/index.html" +++ "b/tags/\344\275\225\345\210\207/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -804,8 +804,8 @@

何切 - - + + diff --git "a/tags/\345\205\250\347\255\211/index.html" "b/tags/\345\205\250\347\255\211/index.html" index 8ce17d932..f18a8339b 100644 --- "a/tags/\345\205\250\347\255\211/index.html" +++ "b/tags/\345\205\250\347\255\211/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -738,8 +738,8 @@

全等 - - + + diff --git "a/tags/\345\207\241\344\272\272\346\255\214/index.html" "b/tags/\345\207\241\344\272\272\346\255\214/index.html" index 665f768aa..b312d9fd4 100644 --- "a/tags/\345\207\241\344\272\272\346\255\214/index.html" +++ "b/tags/\345\207\241\344\272\272\346\255\214/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

凡人歌 - - + + diff --git "a/tags/\345\212\240\346\213\277\345\244\247/index.html" "b/tags/\345\212\240\346\213\277\345\244\247/index.html" index dc8810bdf..2a1a2081e 100644 --- "a/tags/\345\212\240\346\213\277\345\244\247/index.html" +++ "b/tags/\345\212\240\346\213\277\345\244\247/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

加拿大 - - + + diff --git "a/tags/\345\214\205\347\273\234\347\272\277/index.html" "b/tags/\345\214\205\347\273\234\347\272\277/index.html" index 0706044b4..9f17be371 100644 --- "a/tags/\345\214\205\347\273\234\347\272\277/index.html" +++ "b/tags/\345\214\205\347\273\234\347\272\277/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

包络线 - - + + diff --git "a/tags/\345\216\213\347\274\251/index.html" "b/tags/\345\216\213\347\274\251/index.html" index 2acbc7e4e..78d8fb883 100644 --- "a/tags/\345\216\213\347\274\251/index.html" +++ "b/tags/\345\216\213\347\274\251/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

压缩 - - + + diff --git "a/tags/\345\216\237\345\255\220\345\237\216/index.html" "b/tags/\345\216\237\345\255\220\345\237\216/index.html" index 3dd2d385e..573f2463b 100644 --- "a/tags/\345\216\237\345\255\220\345\237\216/index.html" +++ "b/tags/\345\216\237\345\255\220\345\237\216/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

原子城 - - + + diff --git "a/tags/\345\217\215\346\274\224/index.html" "b/tags/\345\217\215\346\274\224/index.html" index d01206aa1..77f84cea0 100644 --- "a/tags/\345\217\215\346\274\224/index.html" +++ "b/tags/\345\217\215\346\274\224/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

反演 - - + + diff --git "a/tags/\345\220\214\346\241\214\347\232\204\344\275\240/index.html" "b/tags/\345\220\214\346\241\214\347\232\204\344\275\240/index.html" index a40c267a6..c70c1df38 100644 --- "a/tags/\345\220\214\346\241\214\347\232\204\344\275\240/index.html" +++ "b/tags/\345\220\214\346\241\214\347\232\204\344\275\240/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

同桌的你 - - + + diff --git "a/tags/\345\221\275\344\273\244\350\241\214/index.html" "b/tags/\345\221\275\344\273\244\350\241\214/index.html" index ea95c0139..6ad0a3d7c 100644 --- "a/tags/\345\221\275\344\273\244\350\241\214/index.html" +++ "b/tags/\345\221\275\344\273\244\350\241\214/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

命令行 - - + + diff --git "a/tags/\345\234\272\345\206\265\345\210\244\346\226\255/index.html" "b/tags/\345\234\272\345\206\265\345\210\244\346\226\255/index.html" index b8ce857d5..7541cf8b3 100644 --- "a/tags/\345\234\272\345\206\265\345\210\244\346\226\255/index.html" +++ "b/tags/\345\234\272\345\206\265\345\210\244\346\226\255/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

场况判断 - - + + diff --git "a/tags/\345\244\251\345\207\244/index.html" "b/tags/\345\244\251\345\207\244/index.html" index 0cddcbaa7..dcbc5d4ce 100644 --- "a/tags/\345\244\251\345\207\244/index.html" +++ "b/tags/\345\244\251\345\207\244/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -761,8 +761,8 @@

天凤 - - + + diff --git "a/tags/\345\244\252\343\201\217\343\201\252\343\201\204\343\201\212/index.html" "b/tags/\345\244\252\343\201\217\343\201\252\343\201\204\343\201\212/index.html" index b4dc7c86a..e6325507c 100644 --- "a/tags/\345\244\252\343\201\217\343\201\252\343\201\204\343\201\212/index.html" +++ "b/tags/\345\244\252\343\201\217\343\201\252\343\201\204\343\201\212/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -718,8 +718,8 @@

太くないお - - + + diff --git "a/tags/\345\245\224\351\251\260\345\256\232\347\220\206/index.html" "b/tags/\345\245\224\351\251\260\345\256\232\347\220\206/index.html" index acc9185bc..b2492432c 100644 --- "a/tags/\345\245\224\351\251\260\345\256\232\347\220\206/index.html" +++ "b/tags/\345\245\224\351\251\260\345\256\232\347\220\206/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

奔驰定理 - - + + diff --git "a/tags/\345\255\227\344\275\223/index.html" "b/tags/\345\255\227\344\275\223/index.html" index 9806cda19..7965766a0 100644 --- "a/tags/\345\255\227\344\275\223/index.html" +++ "b/tags/\345\255\227\344\275\223/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

字体 - - + + diff --git "a/tags/\345\256\214\345\244\207\346\200\247/index.html" "b/tags/\345\256\214\345\244\207\346\200\247/index.html" index 711681717..6e4d5c32f 100644 --- "a/tags/\345\256\214\345\244\207\346\200\247/index.html" +++ "b/tags/\345\256\214\345\244\207\346\200\247/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

完备性 - - + + diff --git "a/tags/\345\256\232\345\234\272\350\257\227/index.html" "b/tags/\345\256\232\345\234\272\350\257\227/index.html" index 4f493a367..cdfd437e0 100644 --- "a/tags/\345\256\232\345\234\272\350\257\227/index.html" +++ "b/tags/\345\256\232\345\234\272\350\257\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

定场诗 - - + + diff --git "a/tags/\345\256\236\346\225\260/index.html" "b/tags/\345\256\236\346\225\260/index.html" index 158ceffa4..675049848 100644 --- "a/tags/\345\256\236\346\225\260/index.html" +++ "b/tags/\345\256\236\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

实数 - - + + diff --git "a/tags/\345\257\271\346\225\260/index.html" "b/tags/\345\257\271\346\225\260/index.html" index 42f0e0a8f..f8f87bf37 100644 --- "a/tags/\345\257\271\346\225\260/index.html" +++ "b/tags/\345\257\271\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

对数 - - + + diff --git "a/tags/\345\271\263\351\235\242\345\220\221\351\207\217/index.html" "b/tags/\345\271\263\351\235\242\345\220\221\351\207\217/index.html" index 858a31c54..7b20238be 100644 --- "a/tags/\345\271\263\351\235\242\345\220\221\351\207\217/index.html" +++ "b/tags/\345\271\263\351\235\242\345\220\221\351\207\217/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -718,8 +718,8 @@

平面向量 - - + + diff --git "a/tags/\345\276\256\344\277\241/index.html" "b/tags/\345\276\256\344\277\241/index.html" index 3e7079577..16f5d481c 100644 --- "a/tags/\345\276\256\344\277\241/index.html" +++ "b/tags/\345\276\256\344\277\241/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

微信 - - + + diff --git "a/tags/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" "b/tags/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" index ab1186b3e..55eda09c6 100644 --- "a/tags/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" +++ "b/tags/\345\277\275\347\204\266\346\203\263\345\210\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -744,8 +744,8 @@

忽然想到 - - + + diff --git "a/tags/\346\200\222\346\224\276\347\232\204\347\224\237\345\221\275/index.html" "b/tags/\346\200\222\346\224\276\347\232\204\347\224\237\345\221\275/index.html" index f5b1745ae..1fbc7ae53 100644 --- "a/tags/\346\200\222\346\224\276\347\232\204\347\224\237\345\221\275/index.html" +++ "b/tags/\346\200\222\346\224\276\347\232\204\347\224\237\345\221\275/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

怒放的生命 - - + + diff --git "a/tags/\346\211\223\345\215\260\346\234\272/index.html" "b/tags/\346\211\223\345\215\260\346\234\272/index.html" index a5dbd89a6..d64633717 100644 --- "a/tags/\346\211\223\345\215\260\346\234\272/index.html" +++ "b/tags/\346\211\223\345\215\260\346\234\272/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

打印机 - - + + diff --git "a/tags/\346\212\233\347\211\251\347\272\277/index.html" "b/tags/\346\212\233\347\211\251\347\272\277/index.html" index 0ffda7c07..bf395a097 100644 --- "a/tags/\346\212\233\347\211\251\347\272\277/index.html" +++ "b/tags/\346\212\233\347\211\251\347\272\277/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

抛物线 - - + + diff --git "a/tags/\346\224\273\345\256\210\345\210\244\346\226\255/index.html" "b/tags/\346\224\273\345\256\210\345\210\244\346\226\255/index.html" index 1a1fbbba1..043913d63 100644 --- "a/tags/\346\224\273\345\256\210\345\210\244\346\226\255/index.html" +++ "b/tags/\346\224\273\345\256\210\345\210\244\346\226\255/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

攻守判断 - - + + diff --git "a/tags/\346\225\260\345\210\227/index.html" "b/tags/\346\225\260\345\210\227/index.html" index 6cafe2088..59d948894 100644 --- "a/tags/\346\225\260\345\210\227/index.html" +++ "b/tags/\346\225\260\345\210\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

数列 - - + + diff --git "a/tags/\346\225\260\345\255\246\347\253\236\350\265\233/index.html" "b/tags/\346\225\260\345\255\246\347\253\236\350\265\233/index.html" index 58b7528f1..9f3352e6d 100644 --- "a/tags/\346\225\260\345\255\246\347\253\236\350\265\233/index.html" +++ "b/tags/\346\225\260\345\255\246\347\253\236\350\265\233/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

数学竞赛 - - + + diff --git "a/tags/\346\226\260\345\206\240/index.html" "b/tags/\346\226\260\345\206\240/index.html" index 803352585..5fde9e1db 100644 --- "a/tags/\346\226\260\345\206\240/index.html" +++ "b/tags/\346\226\260\345\206\240/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

新冠 - - + + diff --git "a/tags/\346\227\205\346\270\270/index.html" "b/tags/\346\227\205\346\270\270/index.html" index 7d3680b4d..3f115526b 100644 --- "a/tags/\346\227\205\346\270\270/index.html" +++ "b/tags/\346\227\205\346\270\270/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

旅游 - - + + diff --git "a/tags/\346\227\240\347\220\206\346\225\260/index.html" "b/tags/\346\227\240\347\220\206\346\225\260/index.html" index 9f4938026..17945cb58 100644 --- "a/tags/\346\227\240\347\220\206\346\225\260/index.html" +++ "b/tags/\346\227\240\347\220\206\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

无理数 - - + + diff --git "a/tags/\346\230\276\345\215\241/index.html" "b/tags/\346\230\276\345\215\241/index.html" index 5db879589..ffa16216c 100644 --- "a/tags/\346\230\276\345\215\241/index.html" +++ "b/tags/\346\230\276\345\215\241/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

显卡 - - + + diff --git "a/tags/\346\234\211\347\220\206\346\225\260/index.html" "b/tags/\346\234\211\347\220\206\346\225\260/index.html" index 45b14e2b6..4cccd50f1 100644 --- "a/tags/\346\234\211\347\220\206\346\225\260/index.html" +++ "b/tags/\346\234\211\347\220\206\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

有理数 - - + + diff --git "a/tags/\346\237\257\350\245\277/index.html" "b/tags/\346\237\257\350\245\277/index.html" index 750a6ce7e..f14bc022f 100644 --- "a/tags/\346\237\257\350\245\277/index.html" +++ "b/tags/\346\237\257\350\245\277/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

柯西 - - + + diff --git "a/tags/\346\242\257\345\275\242/index.html" "b/tags/\346\242\257\345\275\242/index.html" index ec8e30d93..c4993dead 100644 --- "a/tags/\346\242\257\345\275\242/index.html" +++ "b/tags/\346\242\257\345\275\242/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

梯形 - - + + diff --git "a/tags/\346\254\247\345\207\240\351\207\214\345\276\227/index.html" "b/tags/\346\254\247\345\207\240\351\207\214\345\276\227/index.html" index b28a6c161..f29c2e4c9 100644 --- "a/tags/\346\254\247\345\207\240\351\207\214\345\276\227/index.html" +++ "b/tags/\346\254\247\345\207\240\351\207\214\345\276\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

欧几里得 - - + + diff --git "a/tags/\346\255\243\346\226\271\345\275\242/index.html" "b/tags/\346\255\243\346\226\271\345\275\242/index.html" index fae86d04b..773c3ee2d 100644 --- "a/tags/\346\255\243\346\226\271\345\275\242/index.html" +++ "b/tags/\346\255\243\346\226\271\345\275\242/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -718,8 +718,8 @@

正方形 - - + + diff --git "a/tags/\347\224\273\345\233\276/index.html" "b/tags/\347\224\273\345\233\276/index.html" index d04eeb4c9..67cd5ff06 100644 --- "a/tags/\347\224\273\345\233\276/index.html" +++ "b/tags/\347\224\273\345\233\276/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

画图 - - + + diff --git "a/tags/\347\233\270\344\274\274/index.html" "b/tags/\347\233\270\344\274\274/index.html" index 27a629e4f..7a16f0aa9 100644 --- "a/tags/\347\233\270\344\274\274/index.html" +++ "b/tags/\347\233\270\344\274\274/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -721,8 +721,8 @@

相似 - - + + diff --git "a/tags/\347\254\224\350\256\260\350\275\257\344\273\266/index.html" "b/tags/\347\254\224\350\256\260\350\275\257\344\273\266/index.html" index c41de2c4b..3e4a5f68e 100644 --- "a/tags/\347\254\224\350\256\260\350\275\257\344\273\266/index.html" +++ "b/tags/\347\254\224\350\256\260\350\275\257\344\273\266/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

笔记软件 - - + + diff --git "a/tags/\347\255\211\345\267\256\346\225\260\345\210\227/index.html" "b/tags/\347\255\211\345\267\256\346\225\260\345\210\227/index.html" index f02dd8ef1..b42f605ae 100644 --- "a/tags/\347\255\211\345\267\256\346\225\260\345\210\227/index.html" +++ "b/tags/\347\255\211\345\267\256\346\225\260\345\210\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

等差数列 - - + + diff --git "a/tags/\347\255\211\346\257\224\346\225\260\345\210\227/index.html" "b/tags/\347\255\211\346\257\224\346\225\260\345\210\227/index.html" index f7d2cab19..e062682d3 100644 --- "a/tags/\347\255\211\346\257\224\346\225\260\345\210\227/index.html" +++ "b/tags/\347\255\211\346\257\224\346\225\260\345\210\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

等比数列 - - + + diff --git "a/tags/\347\256\227\346\263\225/index.html" "b/tags/\347\256\227\346\263\225/index.html" index f24b0c704..061dd904d 100644 --- "a/tags/\347\256\227\346\263\225/index.html" +++ "b/tags/\347\256\227\346\263\225/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

算法 - - + + diff --git "a/tags/\347\264\240\346\225\260/index.html" "b/tags/\347\264\240\346\225\260/index.html" index 48d94c4b4..43b4daad5 100644 --- "a/tags/\347\264\240\346\225\260/index.html" +++ "b/tags/\347\264\240\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

素数 - - + + diff --git "a/tags/\347\272\252\345\277\265\347\242\221/index.html" "b/tags/\347\272\252\345\277\265\347\242\221/index.html" index a50a4b433..12c141d56 100644 --- "a/tags/\347\272\252\345\277\265\347\242\221/index.html" +++ "b/tags/\347\272\252\345\277\265\347\242\221/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

纪念碑 - - + + diff --git "a/tags/\347\273\243\346\233\262\347\272\277/index.html" "b/tags/\347\273\243\346\233\262\347\272\277/index.html" index 9d697d3a6..01eec4965 100644 --- "a/tags/\347\273\243\346\233\262\347\272\277/index.html" +++ "b/tags/\347\273\243\346\233\262\347\272\277/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

绣曲线 - - + + diff --git "a/tags/\347\275\221\350\257\276/index.html" "b/tags/\347\275\221\350\257\276/index.html" index ee345c2ca..5848868a5 100644 --- "a/tags/\347\275\221\350\257\276/index.html" +++ "b/tags/\347\275\221\350\257\276/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

网课 - - + + diff --git "a/tags/\350\207\252\347\204\266\345\270\270\346\225\260/index.html" "b/tags/\350\207\252\347\204\266\345\270\270\346\225\260/index.html" index dd116e2ce..cdf73bcf1 100644 --- "a/tags/\350\207\252\347\204\266\345\270\270\346\225\260/index.html" +++ "b/tags/\350\207\252\347\204\266\345\270\270\346\225\260/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

自然常数 - - + + diff --git "a/tags/\350\245\277\351\243\216/index.html" "b/tags/\350\245\277\351\243\216/index.html" index cc998ee38..8e4f5b050 100644 --- "a/tags/\350\245\277\351\243\216/index.html" +++ "b/tags/\350\245\277\351\243\216/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

西风 - - + + diff --git "a/tags/\350\247\206\351\242\221/index.html" "b/tags/\350\247\206\351\242\221/index.html" index 0ee5a5886..32b3f4fc0 100644 --- "a/tags/\350\247\206\351\242\221/index.html" +++ "b/tags/\350\247\206\351\242\221/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -701,8 +701,8 @@

视频 - - + + diff --git "a/tags/\351\200\222\346\216\250\346\225\260\345\210\227/index.html" "b/tags/\351\200\222\346\216\250\346\225\260\345\210\227/index.html" index d21b085d3..efe4fb4b3 100644 --- "a/tags/\351\200\222\346\216\250\346\225\260\345\210\227/index.html" +++ "b/tags/\351\200\222\346\216\250\346\225\260\345\210\227/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

递推数列 - - + + diff --git "a/tags/\351\207\215\345\277\203\345\235\220\346\240\207/index.html" "b/tags/\351\207\215\345\277\203\345\235\220\346\240\207/index.html" index 31276758a..c0308a30a 100644 --- "a/tags/\351\207\215\345\277\203\345\235\220\346\240\207/index.html" +++ "b/tags/\351\207\215\345\277\203\345\235\220\346\240\207/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

重心坐标 - - + + diff --git "a/tags/\351\207\221\345\272\270/index.html" "b/tags/\351\207\221\345\272\270/index.html" index 6c0ca80ec..146dbf679 100644 --- "a/tags/\351\207\221\345\272\270/index.html" +++ "b/tags/\351\207\221\345\272\270/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

金庸 - - + + diff --git "a/tags/\351\233\200\351\255\202/index.html" "b/tags/\351\233\200\351\255\202/index.html" index 2657e5f1f..422aa42b3 100644 --- "a/tags/\351\233\200\351\255\202/index.html" +++ "b/tags/\351\233\200\351\255\202/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -721,8 +721,8 @@

雀魂 - - + + diff --git "a/tags/\351\235\222\346\265\267/index.html" "b/tags/\351\235\222\346\265\267/index.html" index d38db8c7a..57692ea5e 100644 --- "a/tags/\351\235\222\346\265\267/index.html" +++ "b/tags/\351\235\222\346\265\267/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

青海 - - + + diff --git "a/tags/\351\235\242\347\247\257/index.html" "b/tags/\351\235\242\347\247\257/index.html" index c79d3fa11..1240b0fc6 100644 --- "a/tags/\351\235\242\347\247\257/index.html" +++ "b/tags/\351\235\242\347\247\257/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -678,8 +678,8 @@

面积 - - + + diff --git "a/tags/\351\276\231\350\212\257/index.html" "b/tags/\351\276\231\350\212\257/index.html" index c0b9c318a..60c57e61d 100644 --- "a/tags/\351\276\231\350\212\257/index.html" +++ "b/tags/\351\276\231\350\212\257/index.html" @@ -15,9 +15,9 @@ - + - + @@ -105,25 +105,25 @@
- @@ -698,8 +698,8 @@

龙芯 - - + + diff --git a/tools/index.html b/tools/index.html index eb27a4aca..4e6efab31 100644 --- a/tools/index.html +++ b/tools/index.html @@ -15,9 +15,9 @@ - + - + @@ -27,7 +27,7 @@ - + @@ -108,25 +108,25 @@
- @@ -687,8 +687,8 @@

2. 工具

- - + +