Compare commits
124 Commits
bf5206ff9a
...
main
Author | SHA1 | Date | |
---|---|---|---|
28872d3391 | |||
d243e4261b | |||
dd0cdb393d | |||
cb3b1b89c5 | |||
721b876dea | |||
1cd3c369ea | |||
e15d66956c | |||
32862fe194 | |||
626e70a666 | |||
47cf42deff | |||
55ee13ad5f | |||
3a106842b3 | |||
0feb5644c9 | |||
139d107454 | |||
7011e08a95 | |||
d48cf7d4ec | |||
b833cb0981 | |||
e97857cb7e | |||
faed604ead | |||
6b8fdb3366 | |||
78f60f418c | |||
9e66decded | |||
4e2bc83644 | |||
d2585a431c | |||
1abd69f13f | |||
13ce84c95a | |||
43effcf0cb | |||
5cdd5d8d89 | |||
4ab24ae284 | |||
102b0862b9 | |||
0b9af04f70 | |||
68b804b7f5 | |||
ce0b7c6cd0 | |||
007394b051 | |||
3577721578 | |||
e0b540d174 | |||
7650bbac40 | |||
ffb15d6542 | |||
4a9e2d0ed7 | |||
3e732813c8 | |||
4381fe820e | |||
1c866c011f | |||
856094374d | |||
4ca8110520 | |||
cb8d9dfb45 | |||
fb3e277fed | |||
c2454acd73 | |||
3301d5a7ee | |||
d37f9c6442 | |||
4661fdc6b9 | |||
3f064a5457 | |||
582d26a6d9 | |||
0cb2ec73cc | |||
e4dda9a41a | |||
6937111dce | |||
27d597c801 | |||
04676e51df | |||
340934876e | |||
95da603a74 | |||
975ddb3193 | |||
ee9a764b8f | |||
d9a0c8cf07 | |||
4c7c88626b | |||
3ca296f8f7 | |||
fe07d5fd8c | |||
5b256b077e | |||
2655ce4914 | |||
1d6db04e39 | |||
1b4be7d870 | |||
ba9b4a5ca1 | |||
15cf70fb50 | |||
b463143e63 | |||
740b2b8871 | |||
9eb9edd04a | |||
882efb7310 | |||
a1dfc43d67 | |||
c9e729bc7e | |||
46e0ef5443 | |||
c9ae7d673e | |||
adf39710da | |||
b7f0db51fe | |||
c99af98f7d | |||
2e96576084 | |||
17921854d3 | |||
f401c87bbf | |||
a9974dfd20 | |||
0fd9e8af65 | |||
9f2ad7a295 | |||
0c618e1c01 | |||
19e258c591 | |||
13701d39ee | |||
a5759ea2d3 | |||
0c78352ef7 | |||
5e5666d347 | |||
884e8dbeff | |||
e3dbd1b196 | |||
828afdad47 | |||
c99f3c8788 | |||
cec3255efc | |||
a0a957483c | |||
8ec4235082 | |||
6f95c250e6 | |||
792451b75f | |||
d57b60064c | |||
3ec25b8951 | |||
6d86d679f0 | |||
95d21e81a9 | |||
99c30d38fd | |||
7cb9f0e058 | |||
f945549091 | |||
229b4af4a5 | |||
b673ede608 | |||
2297475e5a | |||
03e52c1126 | |||
e544b8f7b3 | |||
a7b01e4ce0 | |||
ea4637c28f | |||
fe047b1e5a | |||
4c8694d784 | |||
61046b519b | |||
8af3950731 | |||
3f329c15ec | |||
485d80489b | |||
0eb3ac6165 |
@ -23,6 +23,4 @@ yarn.lock
|
||||
# IDEA
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
*.tex
|
||||
*.iws
|
2
.github/workflows/ci.yml
vendored
@ -30,6 +30,7 @@ jobs:
|
||||
uses: jaywcjlove/github-action-modify-file-content@main
|
||||
with:
|
||||
path: CONTRIBUTING.md
|
||||
trim_whitespace: false
|
||||
body: |
|
||||
${{steps.contributors.outputs.htmlList}}
|
||||
|
||||
@ -37,6 +38,7 @@ jobs:
|
||||
uses: jaywcjlove/github-action-modify-file-content@main
|
||||
with:
|
||||
path: README.md
|
||||
trim_whitespace: false
|
||||
body: |
|
||||
${{steps.contributors.outputs.htmlList}}
|
||||
|
||||
|
4
.gitignore
vendored
@ -22,6 +22,4 @@ yarn.lock
|
||||
# IDEA
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
|
||||
\demo
|
||||
*.iws
|
@ -328,7 +328,8 @@ jobs:
|
||||
|
||||
请参阅[贡献指南](./CONTRIBUTING.md)了解如何开始。一如既往,感谢我们出色的贡献者!
|
||||
|
||||
<!--GAMFC--><a href="https://github.com/jaywcjlove" title="小弟调调"><img src="https://avatars.githubusercontent.com/u/1680273?v=4" width="42;" alt="小弟调调"/></a>
|
||||
<!--GAMFC-->
|
||||
<a href="https://github.com/jaywcjlove" title="小弟调调"><img src="https://avatars.githubusercontent.com/u/1680273?v=4" width="42;" alt="小弟调调"/></a>
|
||||
<a href="https://github.com/fwqaaq" title="fwqaaq"><img src="https://avatars.githubusercontent.com/u/82551626?v=4" width="42;" alt="fwqaaq"/></a>
|
||||
<a href="https://github.com/zhangymPerson" title="zhangym"><img src="https://avatars.githubusercontent.com/u/40376181?v=4" width="42;" alt="zhangym"/></a>
|
||||
<a href="https://github.com/mofelee" title="mofelee"><img src="https://avatars.githubusercontent.com/u/5069410?v=4" width="42;" alt="mofelee"/></a>
|
||||
@ -337,9 +338,9 @@ jobs:
|
||||
<a href="https://github.com/LesterChang0987" title="Steve Hartwell"><img src="https://avatars.githubusercontent.com/u/114913921?v=4" width="42;" alt="Steve Hartwell"/></a>
|
||||
<a href="https://github.com/h7ml" title="h7ml"><img src="https://avatars.githubusercontent.com/u/55233292?v=4" width="42;" alt="h7ml"/></a>
|
||||
<a href="https://github.com/nangongchengfeng" title="南宫乘风"><img src="https://avatars.githubusercontent.com/u/46562911?v=4" width="42;" alt="南宫乘风"/></a>
|
||||
<a href="https://github.com/aixcyi" title="砹小翼"><img src="https://avatars.githubusercontent.com/u/75880483?v=4" width="42;" alt="砹小翼"/></a>
|
||||
<a href="https://github.com/alex-reinfoce" title="Alex"><img src="https://avatars.githubusercontent.com/u/115539090?v=4" width="42;" alt="Alex"/></a>
|
||||
<a href="https://github.com/aixcyi" title="阿羽"><img src="https://avatars.githubusercontent.com/u/75880483?v=4" width="42;" alt="阿羽"/></a>
|
||||
<a href="https://github.com/LufsX" title="LufsX"><img src="https://avatars.githubusercontent.com/u/33221883?v=4" width="42;" alt="LufsX"/></a>
|
||||
<a href="https://github.com/alex-reinfoce" title="Alex"><img src="https://avatars.githubusercontent.com/u/115539090?v=4" width="42;" alt="Alex"/></a>
|
||||
<a href="https://github.com/mailbaoer" title="baoer"><img src="https://avatars.githubusercontent.com/u/5282978?v=4" width="42;" alt="baoer"/></a>
|
||||
<a href="https://github.com/expoli" title="expoli"><img src="https://avatars.githubusercontent.com/u/31023767?v=4" width="42;" alt="expoli"/></a>
|
||||
<a href="https://github.com/k23223" title="k23223"><img src="https://avatars.githubusercontent.com/u/57606136?v=4" width="42;" alt="k23223"/></a>
|
||||
@ -350,94 +351,103 @@ jobs:
|
||||
<a href="https://github.com/qyl27" title="雨落"><img src="https://avatars.githubusercontent.com/u/53731501?v=4" width="42;" alt="雨落"/></a>
|
||||
<a href="https://github.com/MackDing" title="Blossom"><img src="https://avatars.githubusercontent.com/u/19878893?v=4" width="42;" alt="Blossom"/></a>
|
||||
<a href="https://github.com/1250422131" title="萌新杰少"><img src="https://avatars.githubusercontent.com/u/52126790?v=4" width="42;" alt="萌新杰少"/></a>
|
||||
<a href="https://github.com/richuff" title="richuff"><img src="https://avatars.githubusercontent.com/u/162144087?v=4" width="42;" alt="richuff"/></a>
|
||||
<a href="https://github.com/chaos-cn" title="chaos"><img src="https://avatars.githubusercontent.com/u/71205599?v=4" width="42;" alt="chaos"/></a>
|
||||
<a href="https://github.com/xia0ne" title="YuRuiH"><img src="https://avatars.githubusercontent.com/u/32591223?v=4" width="42;" alt="YuRuiH"/></a>
|
||||
<a href="https://github.com/Willxup" title="Willxup"><img src="https://avatars.githubusercontent.com/u/51990395?v=4" width="42;" alt="Willxup"/></a>
|
||||
<a href="https://github.com/long-910" title="Small Long"><img src="https://avatars.githubusercontent.com/u/7323488?v=4" width="42;" alt="Small Long"/></a>
|
||||
<a href="https://github.com/zine0" title="zine yu"><img src="https://avatars.githubusercontent.com/u/46991452?v=4" width="42;" alt="zine yu"/></a>
|
||||
<a href="https://github.com/Harris-H" title="Hao He"><img src="https://avatars.githubusercontent.com/u/57698783?v=4" width="42;" alt="Hao He"/></a>
|
||||
<a href="https://github.com/LiuYuan-SHU" title="Yuan Liu"><img src="https://avatars.githubusercontent.com/u/96400967?v=4" width="42;" alt="Yuan Liu"/></a>
|
||||
<a href="https://github.com/AmosHuKe" title="Amos"><img src="https://avatars.githubusercontent.com/u/32262985?v=4" width="42;" alt="Amos"/></a>
|
||||
<a href="https://github.com/1834423612" title="kjch"><img src="https://avatars.githubusercontent.com/u/49981661?v=4" width="42;" alt="kjch"/></a>
|
||||
<a href="https://github.com/mancuoj" title="mancuoj"><img src="https://avatars.githubusercontent.com/u/45707684?v=4" width="42;" alt="mancuoj"/></a>
|
||||
<a href="https://github.com/pangxiaoli" title="pangxiaoli"><img src="https://avatars.githubusercontent.com/u/54620953?v=4" width="42;" alt="pangxiaoli"/></a>
|
||||
<a href="https://github.com/partoneplay" title="佐博"><img src="https://avatars.githubusercontent.com/u/5189132?v=4" width="42;" alt="佐博"/></a>
|
||||
<a href="https://github.com/ryanhex53" title="ryanhex53"><img src="https://avatars.githubusercontent.com/u/360426?v=4" width="42;" alt="ryanhex53"/></a>
|
||||
<a href="https://github.com/witt-bit" title="witt"><img src="https://avatars.githubusercontent.com/u/52407727?v=4" width="42;" alt="witt"/></a>
|
||||
<a href="https://github.com/catcto" title="小武Alan"><img src="https://avatars.githubusercontent.com/u/5467932?v=4" width="42;" alt="小武Alan"/></a>
|
||||
<a href="https://github.com/itldg" title="老大哥"><img src="https://avatars.githubusercontent.com/u/13432299?v=4" width="42;" alt="老大哥"/></a>
|
||||
<a href="https://github.com/long-910" title="Small Long"><img src="https://avatars.githubusercontent.com/u/7323488?v=4" width="42;" alt="Small Long"/></a>
|
||||
<a href="https://github.com/Willxup" title="Will"><img src="https://avatars.githubusercontent.com/u/51990395?v=4" width="42;" alt="Will"/></a>
|
||||
<a href="https://github.com/xia0ne" title="YuRuiH"><img src="https://avatars.githubusercontent.com/u/32591223?v=4" width="42;" alt="YuRuiH"/></a>
|
||||
<a href="https://github.com/chaos-cn" title="chaos"><img src="https://avatars.githubusercontent.com/u/71205599?v=4" width="42;" alt="chaos"/></a>
|
||||
<a href="https://github.com/QinIndexCode" title="fault"><img src="https://avatars.githubusercontent.com/u/177287013?v=4" width="42;" alt="fault"/></a>
|
||||
<a href="https://github.com/richuff" title="richuff"><img src="https://avatars.githubusercontent.com/u/162144087?v=4" width="42;" alt="richuff"/></a>
|
||||
<a href="https://github.com/wangdaodao" title="王叨叨"><img src="https://avatars.githubusercontent.com/u/2317442?v=4" width="42;" alt="王叨叨"/></a>
|
||||
<a href="https://github.com/wsypower" title="魏"><img src="https://avatars.githubusercontent.com/u/31298317?v=4" width="42;" alt="魏"/></a>
|
||||
<a href="https://github.com/buyfakett" title="buyfakett"><img src="https://avatars.githubusercontent.com/u/46560426?v=4" width="42;" alt="buyfakett"/></a>
|
||||
<a href="https://github.com/wangdaodao" title="王叨叨"><img src="https://avatars.githubusercontent.com/u/2317442?v=4" width="42;" alt="王叨叨"/></a>
|
||||
<a href="https://github.com/itldg" title="老大哥"><img src="https://avatars.githubusercontent.com/u/13432299?v=4" width="42;" alt="老大哥"/></a>
|
||||
<a href="https://github.com/catcto" title="小武Alan"><img src="https://avatars.githubusercontent.com/u/5467932?v=4" width="42;" alt="小武Alan"/></a>
|
||||
<a href="https://github.com/witt-bit" title="witt"><img src="https://avatars.githubusercontent.com/u/52407727?v=4" width="42;" alt="witt"/></a>
|
||||
<a href="https://github.com/ryanhex53" title="ryanhex53"><img src="https://avatars.githubusercontent.com/u/360426?v=4" width="42;" alt="ryanhex53"/></a>
|
||||
<a href="https://github.com/partoneplay" title="佐博"><img src="https://avatars.githubusercontent.com/u/5189132?v=4" width="42;" alt="佐博"/></a>
|
||||
<a href="https://github.com/pangxiaoli" title="pangxiaoli"><img src="https://avatars.githubusercontent.com/u/54620953?v=4" width="42;" alt="pangxiaoli"/></a>
|
||||
<a href="https://github.com/mancuoj" title="mancuoj"><img src="https://avatars.githubusercontent.com/u/45707684?v=4" width="42;" alt="mancuoj"/></a>
|
||||
<a href="https://github.com/1834423612" title="kjch"><img src="https://avatars.githubusercontent.com/u/49981661?v=4" width="42;" alt="kjch"/></a>
|
||||
<a href="https://github.com/AmosHuKe" title="Amos"><img src="https://avatars.githubusercontent.com/u/32262985?v=4" width="42;" alt="Amos"/></a>
|
||||
<a href="https://github.com/qjksxy" title="Apin"><img src="https://avatars.githubusercontent.com/u/81305669?v=4" width="42;" alt="Apin"/></a>
|
||||
<a href="https://github.com/dadatom" title="Da Da"><img src="https://avatars.githubusercontent.com/u/33886943?v=4" width="42;" alt="Da Da"/></a>
|
||||
<a href="https://github.com/ljq" title="Jack Liu"><img src="https://avatars.githubusercontent.com/u/7278286?v=4" width="42;" alt="Jack Liu"/></a>
|
||||
<a href="https://github.com/jasnzhuang" title="Jason Zhuang"><img src="https://avatars.githubusercontent.com/u/16612921?v=4" width="42;" alt="Jason Zhuang"/></a>
|
||||
<a href="https://github.com/Jovins" title="Jovins"><img src="https://avatars.githubusercontent.com/u/17738992?v=4" width="42;" alt="Jovins"/></a>
|
||||
<a href="https://github.com/Kisa-Dong" title="Kisa-Dong"><img src="https://avatars.githubusercontent.com/u/84782008?v=4" width="42;" alt="Kisa-Dong"/></a>
|
||||
<a href="https://github.com/infanx" title="infanx"><img src="https://avatars.githubusercontent.com/u/65985757?v=4" width="42;" alt="infanx"/></a>
|
||||
<a href="https://github.com/greyhao" title="greyhao"><img src="https://avatars.githubusercontent.com/u/107107440?v=4" width="42;" alt="greyhao"/></a>
|
||||
<a href="https://github.com/findnr" title="findnr"><img src="https://avatars.githubusercontent.com/u/3909023?v=4" width="42;" alt="findnr"/></a>
|
||||
<a href="https://github.com/izven" title="Zhang"><img src="https://avatars.githubusercontent.com/u/2149051?v=4" width="42;" alt="Zhang"/></a>
|
||||
<a href="https://github.com/Kisa-Dong" title="Kisa-Dong"><img src="https://avatars.githubusercontent.com/u/84782008?v=4" width="42;" alt="Kisa-Dong"/></a>
|
||||
<a href="https://github.com/SuperDiscovery" title="SuperDiscovery"><img src="https://avatars.githubusercontent.com/u/49646863?v=4" width="42;" alt="SuperDiscovery"/></a>
|
||||
<a href="https://github.com/XYZscratcher" title="XYZ"><img src="https://avatars.githubusercontent.com/u/108533817?v=4" width="42;" alt="XYZ"/></a>
|
||||
<a href="https://github.com/ThanatosXingYu" title="Thanatos"><img src="https://avatars.githubusercontent.com/u/53430376?v=4" width="42;" alt="Thanatos"/></a>
|
||||
<a href="https://github.com/SuperDiscovery" title="SuperDiscovery"><img src="https://avatars.githubusercontent.com/u/49646863?v=4" width="42;" alt="SuperDiscovery"/></a>
|
||||
<a href="https://github.com/hua03" title="hua03"><img src="https://avatars.githubusercontent.com/u/19561959?v=4" width="42;" alt="hua03"/></a>
|
||||
<a href="https://github.com/yanxuplay" title="hupilan"><img src="https://avatars.githubusercontent.com/u/69749541?v=4" width="42;" alt="hupilan"/></a>
|
||||
<a href="https://github.com/hweining" title="hweining"><img src="https://avatars.githubusercontent.com/u/8973985?v=4" width="42;" alt="hweining"/></a>
|
||||
<a href="https://github.com/icer233" title="icer"><img src="https://avatars.githubusercontent.com/u/74440627?v=4" width="42;" alt="icer"/></a>
|
||||
<a href="https://github.com/auroraslot" title="irony"><img src="https://avatars.githubusercontent.com/u/48817882?v=4" width="42;" alt="irony"/></a>
|
||||
<a href="https://github.com/jlchen5" title="J.Chen"><img src="https://avatars.githubusercontent.com/u/61578993?v=4" width="42;" alt="J.Chen"/></a>
|
||||
<a href="https://github.com/jldxpm" title="jldxjldx"><img src="https://avatars.githubusercontent.com/u/128905630?v=4" width="42;" alt="jldxjldx"/></a>
|
||||
<a href="https://github.com/joyfully-W" title="joyfully-W"><img src="https://avatars.githubusercontent.com/u/32212924?v=4" width="42;" alt="joyfully-W"/></a>
|
||||
<a href="https://github.com/jqzhao7" title="jqzhao"><img src="https://avatars.githubusercontent.com/u/54694535?v=4" width="42;" alt="jqzhao"/></a>
|
||||
<a href="https://github.com/jussker" title="jussker"><img src="https://avatars.githubusercontent.com/u/33953356?v=4" width="42;" alt="jussker"/></a>
|
||||
<a href="https://github.com/k983551019" title="Evan-k"><img src="https://avatars.githubusercontent.com/u/48147837?v=4" width="42;" alt="Evan-k"/></a>
|
||||
<a href="https://github.com/kcmeven" title="Evan-k"><img src="https://avatars.githubusercontent.com/u/48147837?v=4" width="42;" alt="Evan-k"/></a>
|
||||
<a href="https://github.com/kdxcxs" title="kdxcxs"><img src="https://avatars.githubusercontent.com/u/18746192?v=4" width="42;" alt="kdxcxs"/></a>
|
||||
<a href="https://github.com/kubeme" title="kubernetes for me"><img src="https://avatars.githubusercontent.com/u/16346220?v=4" width="42;" alt="kubernetes for me"/></a>
|
||||
<a href="https://github.com/larry-xue" title="yujian(larry) xue"><img src="https://avatars.githubusercontent.com/u/48818060?v=4" width="42;" alt="yujian(larry) xue"/></a>
|
||||
<a href="https://github.com/leauny" title="leauny"><img src="https://avatars.githubusercontent.com/u/42369176?v=4" width="42;" alt="leauny"/></a>
|
||||
<a href="https://github.com/liliangrong777" title="liliangrong777"><img src="https://avatars.githubusercontent.com/u/58727146?v=4" width="42;" alt="liliangrong777"/></a>
|
||||
<a href="https://github.com/lozhu20" title="lozhu"><img src="https://avatars.githubusercontent.com/u/44923922?v=4" width="42;" alt="lozhu"/></a>
|
||||
<a href="https://github.com/Zeng-qh" title="都一样"><img src="https://avatars.githubusercontent.com/u/40046415?v=4" width="42;" alt="都一样"/></a>
|
||||
<a href="https://github.com/yanxuplay" title="hupilan"><img src="https://avatars.githubusercontent.com/u/69749541?v=4" width="42;" alt="hupilan"/></a>
|
||||
<a href="https://github.com/hua03" title="hua03"><img src="https://avatars.githubusercontent.com/u/19561959?v=4" width="42;" alt="hua03"/></a>
|
||||
<a href="https://github.com/gzttcydxx" title="gzttcydxx"><img src="https://avatars.githubusercontent.com/u/50025185?v=4" width="42;" alt="gzttcydxx"/></a>
|
||||
<a href="https://github.com/sunny0826" title="Xudong Guo"><img src="https://avatars.githubusercontent.com/u/24563928?v=4" width="42;" alt="Xudong Guo"/></a>
|
||||
<a href="https://github.com/nodjoy" title="gowshwah"><img src="https://avatars.githubusercontent.com/u/145280043?v=4" width="42;" alt="gowshwah"/></a>
|
||||
<a href="https://github.com/godotc" title="godot42"><img src="https://avatars.githubusercontent.com/u/79260851?v=4" width="42;" alt="godot42"/></a>
|
||||
<a href="https://github.com/godot42x" title="godot42"><img src="https://avatars.githubusercontent.com/u/79260851?v=4" width="42;" alt="godot42"/></a>
|
||||
<a href="https://github.com/gi-b716" title="Gavin"><img src="https://avatars.githubusercontent.com/u/78394473?v=4" width="42;" alt="Gavin"/></a>
|
||||
<a href="https://github.com/fjqz177" title="fjqz177"><img src="https://avatars.githubusercontent.com/u/83070583?v=4" width="42;" alt="fjqz177"/></a>
|
||||
<a href="https://github.com/fenglielie" title="fenglielie (风猎猎)"><img src="https://avatars.githubusercontent.com/u/51266402?v=4" width="42;" alt="fenglielie (风猎猎)"/></a>
|
||||
<a href="https://github.com/fakevn" title="fakevn"><img src="https://avatars.githubusercontent.com/u/11464386?v=4" width="42;" alt="fakevn"/></a>
|
||||
<a href="https://github.com/emoji-share" title="emoji-share🤪"><img src="https://avatars.githubusercontent.com/u/192275245?v=4" width="42;" alt="emoji-share🤪"/></a>
|
||||
<a href="https://github.com/cool9203" title="cool9203"><img src="https://avatars.githubusercontent.com/u/29609607?v=4" width="42;" alt="cool9203"/></a>
|
||||
<a href="https://github.com/gaoxiaoduan" title="Coder Duan"><img src="https://avatars.githubusercontent.com/u/69953511?v=4" width="42;" alt="Coder Duan"/></a>
|
||||
<a href="https://github.com/lijc210" title="cizai"><img src="https://avatars.githubusercontent.com/u/10651081?v=4" width="42;" alt="cizai"/></a>
|
||||
<a href="https://github.com/chyok" title="chyok"><img src="https://avatars.githubusercontent.com/u/32629225?v=4" width="42;" alt="chyok"/></a>
|
||||
<a href="https://github.com/zlfyuan" title="bgbgPang"><img src="https://avatars.githubusercontent.com/u/19658018?v=4" width="42;" alt="bgbgPang"/></a>
|
||||
<a href="https://github.com/Lmmmmmm-bb" title="_lmmmmmm"><img src="https://avatars.githubusercontent.com/u/54026110?v=4" width="42;" alt="_lmmmmmm"/></a>
|
||||
<a href="https://github.com/Zeng-qh" title="都一样"><img src="https://avatars.githubusercontent.com/u/40046415?v=4" width="42;" alt="都一样"/></a>
|
||||
<a href="https://github.com/binscor" title="Zheng Nai Bin"><img src="https://avatars.githubusercontent.com/u/37325821?v=4" width="42;" alt="Zheng Nai Bin"/></a>
|
||||
<a href="https://github.com/binscor" title="binscor"><img src="https://avatars.githubusercontent.com/u/37325821?v=4" width="42;" alt="binscor"/></a>
|
||||
<a href="https://github.com/qwxingzhe" title="行者"><img src="https://avatars.githubusercontent.com/u/7071651?v=4" width="42;" alt="行者"/></a>
|
||||
<a href="https://github.com/lisheng741" title="芦荟柚子茶"><img src="https://avatars.githubusercontent.com/u/53617305?v=4" width="42;" alt="芦荟柚子茶"/></a>
|
||||
<a href="https://github.com/rainbowatcher" title="rainbowatcher"><img src="https://avatars.githubusercontent.com/u/42316353?v=4" width="42;" alt="rainbowatcher"/></a>
|
||||
<a href="https://github.com/HChenX" title="焕晨HChen"><img src="https://avatars.githubusercontent.com/u/123531821?v=4" width="42;" alt="焕晨HChen"/></a>
|
||||
<a href="https://github.com/LebranceBW" title="落叶乌龟"><img src="https://avatars.githubusercontent.com/u/19501514?v=4" width="42;" alt="落叶乌龟"/></a>
|
||||
<a href="https://github.com/sundakai" title="永恒"><img src="https://avatars.githubusercontent.com/u/21995250?v=4" width="42;" alt="永恒"/></a>
|
||||
<a href="https://github.com/LongYinStudio" title="敬培全"><img src="https://avatars.githubusercontent.com/u/42208852?v=4" width="42;" alt="敬培全"/></a>
|
||||
<a href="https://github.com/Fengjing95" title="小枫"><img src="https://avatars.githubusercontent.com/u/51731411?v=4" width="42;" alt="小枫"/></a>
|
||||
<a href="https://github.com/ZIDOUZI" title="子斗子"><img src="https://avatars.githubusercontent.com/u/53157536?v=4" width="42;" alt="子斗子"/></a>
|
||||
<a href="https://github.com/LuckyJie12" title="夜未央"><img src="https://avatars.githubusercontent.com/u/102901105?v=4" width="42;" alt="夜未央"/></a>
|
||||
<a href="https://github.com/kele527" title="吹衣轻飏"><img src="https://avatars.githubusercontent.com/u/345445?v=4" width="42;" alt="吹衣轻飏"/></a>
|
||||
<a href="https://github.com/lvzhenbo" title="无聊波波"><img src="https://avatars.githubusercontent.com/u/32427677?v=4" width="42;" alt="无聊波波"/></a>
|
||||
<a href="https://github.com/zxx457" title="zxx457"><img src="https://avatars.githubusercontent.com/u/114141362?v=4" width="42;" alt="zxx457"/></a>
|
||||
<a href="https://github.com/ChuwuYo" title="初五"><img src="https://avatars.githubusercontent.com/u/141227996?v=4" width="42;" alt="初五"/></a>
|
||||
<a href="https://github.com/zxx457" title="Xianxin Zeng"><img src="https://avatars.githubusercontent.com/u/114141362?v=4" width="42;" alt="Xianxin Zeng"/></a>
|
||||
<a href="https://github.com/zhouhw0306" title="zhouhw0306"><img src="https://avatars.githubusercontent.com/u/82752681?v=4" width="42;" alt="zhouhw0306"/></a>
|
||||
<a href="https://github.com/hiyms" title="yms"><img src="https://avatars.githubusercontent.com/u/84654050?v=4" width="42;" alt="yms"/></a>
|
||||
<a href="https://github.com/giteeking" title="xunjian"><img src="https://avatars.githubusercontent.com/u/166626162?v=4" width="42;" alt="xunjian"/></a>
|
||||
<a href="https://github.com/xing133" title="xing133"><img src="https://avatars.githubusercontent.com/u/5336490?v=4" width="42;" alt="xing133"/></a>
|
||||
<a href="https://github.com/wjjwkwindy" title="Hudson Alen"><img src="https://avatars.githubusercontent.com/u/9508591?v=4" width="42;" alt="Hudson Alen"/></a>
|
||||
<a href="https://github.com/wannima66" title="tmen"><img src="https://avatars.githubusercontent.com/u/26410255?v=4" width="42;" alt="tmen"/></a>
|
||||
<a href="https://github.com/swift-fs" title="swift-fs"><img src="https://avatars.githubusercontent.com/u/77133741?v=4" width="42;" alt="swift-fs"/></a>
|
||||
<a href="https://github.com/suyangzuo" title="suyangzuo"><img src="https://avatars.githubusercontent.com/u/50766353?v=4" width="42;" alt="suyangzuo"/></a>
|
||||
<a href="https://github.com/Mowmowj" title="nexo"><img src="https://avatars.githubusercontent.com/u/24759562?v=4" width="42;" alt="nexo"/></a>
|
||||
<a href="https://github.com/shanhai1024" title="shanhai1024"><img src="https://avatars.githubusercontent.com/u/56210461?v=4" width="42;" alt="shanhai1024"/></a>
|
||||
<a href="https://github.com/ri-fumo" title="ri-fumo"><img src="https://avatars.githubusercontent.com/u/190000479?v=4" width="42;" alt="ri-fumo"/></a>
|
||||
<a href="https://github.com/phygerr" title="phygerr"><img src="https://avatars.githubusercontent.com/u/42068889?v=4" width="42;" alt="phygerr"/></a>
|
||||
<a href="https://github.com/openapphub" title="openapphub"><img src="https://avatars.githubusercontent.com/u/175949671?v=4" width="42;" alt="openapphub"/></a>
|
||||
<a href="https://github.com/onewesong" title="onewesong"><img src="https://avatars.githubusercontent.com/u/17920822?v=4" width="42;" alt="onewesong"/></a>
|
||||
<a href="https://github.com/miclon-dev" title="miclon-dev"><img src="https://avatars.githubusercontent.com/u/111753685?v=4" width="42;" alt="miclon-dev"/></a>
|
||||
<a href="https://github.com/lykjjj" title="lykjjj"><img src="https://avatars.githubusercontent.com/u/58510058?v=4" width="42;" alt="lykjjj"/></a>
|
||||
<a href="https://github.com/lozhu20" title="lozhu"><img src="https://avatars.githubusercontent.com/u/44923922?v=4" width="42;" alt="lozhu"/></a>
|
||||
<a href="https://github.com/zlfyuan" title="bgbgPang"><img src="https://avatars.githubusercontent.com/u/19658018?v=4" width="42;" alt="bgbgPang"/></a>
|
||||
<a href="https://github.com/mariuszmichalowski" title="Mariusz Michalowski"><img src="https://avatars.githubusercontent.com/u/92091891?v=4" width="42;" alt="Mariusz Michalowski"/></a>
|
||||
<a href="https://github.com/isecret" title="Mao Wang"><img src="https://avatars.githubusercontent.com/u/15724152?v=4" width="42;" alt="Mao Wang"/></a>
|
||||
<a href="https://github.com/lvelvee" title="Lve Lvee"><img src="https://avatars.githubusercontent.com/u/25785753?v=4" width="42;" alt="Lve Lvee"/></a>
|
||||
<a href="https://github.com/likeadmin-likeshop" title="likeadmin通过管理后台-likeshop全开源商城"><img src="https://avatars.githubusercontent.com/u/77180968?v=4" width="42;" alt="likeadmin通过管理后台-likeshop全开源商城"/></a>
|
||||
@ -448,6 +458,7 @@ jobs:
|
||||
<a href="https://github.com/JavaZeroo" title="JavaZero"><img src="https://avatars.githubusercontent.com/u/71128095?v=4" width="42;" alt="JavaZero"/></a>
|
||||
<a href="https://github.com/Ding-Kyoma" title="HooinKyoma"><img src="https://avatars.githubusercontent.com/u/44542198?v=4" width="42;" alt="HooinKyoma"/></a>
|
||||
<a href="https://github.com/gongyeheyu" title="GONGYE Heyu"><img src="https://avatars.githubusercontent.com/u/85177605?v=4" width="42;" alt="GONGYE Heyu"/></a>
|
||||
<a href="https://github.com/Furry-Monster" title="Furry-Monster"><img src="https://avatars.githubusercontent.com/u/158404543?v=4" width="42;" alt="Furry-Monster"/></a>
|
||||
<a href="https://github.com/Fuku-L" title="Foozi"><img src="https://avatars.githubusercontent.com/u/38535911?v=4" width="42;" alt="Foozi"/></a>
|
||||
<a href="https://github.com/sirius-fan" title="Fan"><img src="https://avatars.githubusercontent.com/u/25720015?v=4" width="42;" alt="Fan"/></a>
|
||||
<a href="https://github.com/eeeeeio" title="EEEEE"><img src="https://avatars.githubusercontent.com/u/20723545?v=4" width="42;" alt="EEEEE"/></a>
|
||||
@ -467,12 +478,14 @@ jobs:
|
||||
<a href="https://github.com/dousha0w0" title="dousha0w0"><img src="https://avatars.githubusercontent.com/u/52566311?v=4" width="42;" alt="dousha0w0"/></a>
|
||||
<a href="https://github.com/JinchuanL" title="ANDY"><img src="https://avatars.githubusercontent.com/u/68026794?v=4" width="42;" alt="ANDY"/></a>
|
||||
<a href="https://github.com/13812700839" title="花殇"><img src="https://avatars.githubusercontent.com/u/58072506?v=4" width="42;" alt="花殇"/></a>
|
||||
<a href="https://github.com/Lmmmmmm-bb" title="_lmmmmmm"><img src="https://avatars.githubusercontent.com/u/54026110?v=4" width="42;" alt="_lmmmmmm"/></a>
|
||||
<a href="https://github.com/y52y" title="Zyj"><img src="https://avatars.githubusercontent.com/u/51304324?v=4" width="42;" alt="Zyj"/></a>
|
||||
<a href="https://github.com/Leaderzhangyi" title="ZinkCas"><img src="https://avatars.githubusercontent.com/u/46915666?v=4" width="42;" alt="ZinkCas"/></a>
|
||||
<a href="https://github.com/zhu0629" title="zhucong"><img src="https://avatars.githubusercontent.com/u/13188450?v=4" width="42;" alt="zhucong"/></a>
|
||||
<a href="https://github.com/yikuaibro" title="yikuaibro"><img src="https://avatars.githubusercontent.com/u/44493045?v=4" width="42;" alt="yikuaibro"/></a>
|
||||
<a href="https://github.com/HeZephyr" title="Zephyr He"><img src="https://avatars.githubusercontent.com/u/67893254?v=4" width="42;" alt="Zephyr He"/></a>
|
||||
<a href="https://github.com/dfshizhiqiang" title="Zech"><img src="https://avatars.githubusercontent.com/u/7030019?v=4" width="42;" alt="Zech"/></a>
|
||||
<a href="https://github.com/zkassing" title="You Kuan Zhang"><img src="https://avatars.githubusercontent.com/u/13414184?v=4" width="42;" alt="You Kuan Zhang"/></a>
|
||||
<a href="https://github.com/Yo-gurts" title="Yogurt"><img src="https://avatars.githubusercontent.com/u/44612841?v=4" width="42;" alt="Yogurt"/></a>
|
||||
<a href="https://github.com/hi-liyan" title="李李李"><img src="https://avatars.githubusercontent.com/u/40056492?v=4" width="42;" alt="李李李"/></a>
|
||||
<a href="https://github.com/BATTLEHAWK00" title="While True: learn()"><img src="https://avatars.githubusercontent.com/u/45313304?v=4" width="42;" alt="While True: learn()"/></a>
|
||||
@ -480,22 +493,25 @@ jobs:
|
||||
<a href="https://github.com/whb1998a" title="Wafer"><img src="https://avatars.githubusercontent.com/u/44045064?v=4" width="42;" alt="Wafer"/></a>
|
||||
<a href="https://github.com/YLee9527" title="Terry Young"><img src="https://avatars.githubusercontent.com/u/18697332?v=4" width="42;" alt="Terry Young"/></a>
|
||||
<a href="https://github.com/TRDSCSH" title="TRDSCSH"><img src="https://avatars.githubusercontent.com/u/125717891?v=4" width="42;" alt="TRDSCSH"/></a>
|
||||
<a href="https://github.com/Xiwin" title="Xiwin"><img src="https://avatars.githubusercontent.com/u/107191230?v=4" width="42;" alt="Xiwin"/></a>
|
||||
<a href="https://github.com/Xiwin" title="shawing"><img src="https://avatars.githubusercontent.com/u/107191230?v=4" width="42;" alt="shawing"/></a>
|
||||
<a href="https://github.com/DataEraserC" title="Sacabambaspis"><img src="https://avatars.githubusercontent.com/u/102341238?v=4" width="42;" alt="Sacabambaspis"/></a>
|
||||
<a href="https://github.com/qinxiongzhou" title="Ryan Zhou"><img src="https://avatars.githubusercontent.com/u/33239096?v=4" width="42;" alt="Ryan Zhou"/></a>
|
||||
<a href="https://github.com/RivailleF" title="RivailleF"><img src="https://avatars.githubusercontent.com/u/93083015?v=4" width="42;" alt="RivailleF"/></a>
|
||||
<a href="https://github.com/Qliangw" title="Qliangw"><img src="https://avatars.githubusercontent.com/u/22791711?v=4" width="42;" alt="Qliangw"/></a>
|
||||
<a href="https://github.com/QDelta" title="QDelta"><img src="https://avatars.githubusercontent.com/u/60222316?v=4" width="42;" alt="QDelta"/></a>
|
||||
<a href="https://github.com/sevenleave" title="Poirot Hercule"><img src="https://avatars.githubusercontent.com/u/24411140?v=4" width="42;" alt="Poirot Hercule"/></a>
|
||||
<a href="https://github.com/PipecraftNet" title="Pipecraft"><img src="https://avatars.githubusercontent.com/u/88728670?v=4" width="42;" alt="Pipecraft"/></a>
|
||||
<a href="https://github.com/Perzch" title="Perzch"><img src="https://avatars.githubusercontent.com/u/67987641?v=4" width="42;" alt="Perzch"/></a>
|
||||
<a href="https://github.com/PILIHU2022" title="PILIHU2022"><img src="https://avatars.githubusercontent.com/u/100511118?v=4" width="42;" alt="PILIHU2022"/></a>
|
||||
<a href="https://github.com/HanaNoryu" title="Noryu"><img src="https://avatars.githubusercontent.com/u/109856546?v=4" width="42;" alt="Noryu"/></a>
|
||||
<a href="https://github.com/Perzch" title="ZhaoChunhuan"><img src="https://avatars.githubusercontent.com/u/67987641?v=4" width="42;" alt="ZhaoChunhuan"/></a>
|
||||
<a href="https://github.com/PILIHU2022" title="Spark"><img src="https://avatars.githubusercontent.com/u/100511118?v=4" width="42;" alt="Spark"/></a>
|
||||
<a href="https://github.com/Noryu-01" title="Noryu"><img src="https://avatars.githubusercontent.com/u/109856546?v=4" width="42;" alt="Noryu"/></a>
|
||||
<a href="https://github.com/NianwenDan" title="NianwenDan"><img src="https://avatars.githubusercontent.com/u/74407127?v=4" width="42;" alt="NianwenDan"/></a>
|
||||
<a href="https://github.com/mo3et" title="Monet Lee"><img src="https://avatars.githubusercontent.com/u/34803812?v=4" width="42;" alt="Monet Lee"/></a>
|
||||
<a href="https://github.com/Moeyuuko" title="Moeyuuko"><img src="https://avatars.githubusercontent.com/u/14266681?v=4" width="42;" alt="Moeyuuko"/></a>
|
||||
<a href="https://github.com/malcolmyu" title="Minghao Yu"><img src="https://avatars.githubusercontent.com/u/3203962?v=4" width="42;" alt="Minghao Yu"/></a>
|
||||
<a href="https://github.com/Mieriki" title="Mieriki"><img src="https://avatars.githubusercontent.com/u/142009318?v=4" width="42;" alt="Mieriki"/></a>
|
||||
<a href="https://github.com/mariuszmichalowski" title="Mariusz Michalowski"><img src="https://avatars.githubusercontent.com/u/92091891?v=4" width="42;" alt="Mariusz Michalowski"/></a><!--GAMFC-END-->
|
||||
|
||||
|
||||
<!--GAMFC-END-->
|
||||
|
||||
上图贡献者列表,由 [contributors](https://github.com/jaywcjlove/github-action-contributors) 自动生成贡献者图片。
|
||||
|
||||
|
702
README.md
@ -15,266 +15,318 @@ Quick Reference
|
||||
|
||||
为了方便开发人员查阅技术栈,分享这份快速参考备忘清单【速查表】。这是英文版 [Reference](https://github.com/Randy8080/reference) 的中文翻译,旨在帮助自己更好地使用相关技术。如果您有自己的清单,也欢迎提供,我会抽时间搬运并立刻实现 :)。如果您发现这份备忘单中的内容不合适,可以通过提交 [PR](https://github.com/jaywcjlove/reference/blob/main/CONTRIBUTING.md) 来修复或提供更好的备忘清单,主要面向【中文】用户。以下是一些开源天使提供的备忘清单和快速参考 :)。
|
||||
|
||||
## 赞助支持
|
||||
<!--rehype:class=home-title-reset-->
|
||||
|
||||
非常感谢一直以来支持我开源项目的朋友们!如果您认可我的工作,欢迎通过 [赞助](https://wangchujiang.com/#/sponsor)<!--rehype:target=_blank--> 我或下载并使用我开发的 [macOS 应用](https://wangchujiang.com/#/app)<!--rehype:target=_blank--> 来支持我。以下是我个人独立开发的 macOS 应用列表:
|
||||
|
||||
<p style="display: inline-block">
|
||||
<a target="_blank" href="https://wangchujiang.com/mousio-hint/" title="Mousio Hint for macOS"><img align="center" alt="Mousio Hint" height="52" width="52" src="./appicon/mousio-hint.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6746747327" title="Mousio for macOS"><img align="center" alt="Mousio" height="52" width="52" src="./appicon/mousio.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6745227444" title="Musicer for macOS"><img align="center" alt="Musicer" height="52" width="52" src="./appicon/musicer.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6743841447" title="Audioer for macOS"><img align="center" alt="Audioer" height="52" width="52" src="./appicon/audioer.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6744690194" title="FileSentinel for macOS"><img align="center" alt="FileSentinel" height="52" width="52" src="./appicon/file-sentinel.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6743495172" title="FocusCursor for macOS"><img align="center" alt="FocusCursor" height="52" width="52" src="./appicon/focus-cursor.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6742680573" title="Videoer for macOS"><img align="center" alt="Videoer" height="52" width="52" src="./appicon/videoer.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6740425504" title="KeyClicker for macOS"><img align="center" alt="KeyClicker" height="50" width="50" src="./appicon/key-clicker.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6739052447" title="DayBar for macOS"><img align="center" alt="DayBar" height="50" width="50" src="./appicon/daybar.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6739444407" title="Iconed for macOS"><img align="center" alt="Iconed" height="50" width="50" src="./appicon/iconed.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6737160756" title="RightMenu Master for macOS"><img align="center" alt="RightMenu Master" height="50" width="50" src="./appicon/rightmenu-master.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6723903021" title="Paste Quick for macOS"><img align="center" alt="Paste Quick" height="50" width="50" src="./appicon/paste-quick.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6670696072" title="Quick RSS for macOS/iOS"><img align="center" alt="Quick RSS" height="50" width="50" src="./appicon/quick-rss.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6670167443" title="Web Serve for macOS"><img align="center" alt="Web Serve" height="50" width="50" src="./appicon/web-serve.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6503953628" title="Copybook Generator for macOS/iOS"><img align="center" alt="Copybook Generator" height="50" width="50" src="./appicon/copybook-generator.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6471227008" title="DevTutor for macOS/iOS"><img align="center" alt="DevTutor for SwiftUI" height="50" width="50" src="./appicon/devtutor.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6479819388" title="RegexMate for macOS/iOS"><img align="center" alt="RegexMate" height="50" width="50" src="./appicon/regex-mate.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6479194014" title="Time Passage for macOS/iOS"><img align="center" alt="Time Passage" height="50" width="50" src="./appicon/time-passage.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6478772538" title="IconizeFolder for macOS"><img align="center" alt="Iconize Folder" height="50" width="50" src="./appicon/iconize-folder.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6478511402" title="Textsound Saver for macOS/iOS"><img align="center" alt="Textsound Saver" height="50" width="50" src="./appicon/textsound-saver.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6476924627" title="Create Custom Symbols for macOS"><img align="center" alt="Create Custom Symbols" height="50" width="50" src="./appicon/create-custom-symbols.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6476452351" title="DevHub for macOS"><img align="center" alt="DevHub" height="50" width="50" src="./appicon/devhub.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6476400184" title="Resume Revise for macOS"><img align="center" alt="Resume Revise" height="50" width="50" src="./appicon/resume-revise.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6472593276" title="Palette Genius for macOS"><img align="center" alt="Palette Genius" height="50" width="50" src="./appicon/palette-genius.png"></a>
|
||||
<a target="_blank" href="https://apps.apple.com/app/6470879005" title="Symbol Scribe for macOS"><img align="center" alt="Symbol Scribe" height="50" width="50" src="./appicon/symbol-scribe.png"></a>
|
||||
</p>
|
||||
<!--rehype:style=padding-top:1rem;-->
|
||||
|
||||
## 正在建设中...
|
||||
|
||||
坑已挖,需要您的参与完善和[贡献](./docs/quickreference.md)!🙏
|
||||
<!--rehype:style=padding-bottom: 23px;-->
|
||||
|
||||
[Ansible](./docs/ansible.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=RedHat&data-info=👆看看还缺点儿什么?-->
|
||||
[CMake](./docs/cmake.md)<!--rehype:style=background: rgb(92 107 192);&class=contributing-->
|
||||
[C#](./docs/cs.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[Django](./docs/django.md)<!--rehype:style=background: rgb(12 75 51);&class=contributing tag&data-lang=Python-->
|
||||
[FFmpeg](./docs/ffmpeg.md)<!--rehype:style=background: rgb(0 193 9);&class=contributing-->
|
||||
[Flask](./docs/flask.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[FastAPI](./docs/fastapi.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
||||
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
||||
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
||||
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);&class=contributing-->
|
||||
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
||||
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
||||
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=contributing tag&data-lang=SQL-->
|
||||
[Pytorch](./docs/pytorch.md)<!--rehype:style=background: rgb(238 76 44);&class=contributing tag&data-lang=Python&data-info=👆看看还缺点儿什么?-->
|
||||
[Vue 3](./docs/vue.md)<!--rehype:style=background: rgb(64 184 131);&class=contributing-->
|
||||
[Github Copilot](./docs/github-copilot.md)<!--rehype:style=background: rgb(125 45 220);&class=tag contributing&data-lang=AI&data-info=👆看看还缺点儿什么?-->
|
||||
[Chown](./docs/chown.md)<!--rehype:style=background: rgb(12 75 51/var(\-\-bg\-opacity));&class=contributing-->
|
||||
[R 语言](./docs/r.md)<!--rehype:style=background: rgb(39 108 192);&class=contributing-->
|
||||
[Elixir](./docs/elixir.md)<!--rehype:style=background: rgb(124 26 156);&class=contributing tag&data-lang=Elixir-->
|
||||
[Ansible](./docs/ansible.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=RedHat&data-info=👆看看还缺点儿什么?-->
|
||||
[CMake](./docs/cmake.md)<!--rehype:style=background: rgb(92 107 192);&class=contributing-->
|
||||
[C#](./docs/cs.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[Django](./docs/django.md)<!--rehype:style=background: rgb(12 75 51);&class=contributing tag&data-lang=Python-->
|
||||
[FFmpeg](./docs/ffmpeg.md)<!--rehype:style=background: rgb(0 193 9);&class=contributing-->
|
||||
[Flask](./docs/flask.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[FastAPI](./docs/fastapi.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
||||
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
||||
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
||||
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);&class=contributing-->
|
||||
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
||||
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
||||
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=contributing tag&data-lang=SQL-->
|
||||
[Pytorch](./docs/pytorch.md)<!--rehype:style=background: rgb(238 76 44);&class=contributing tag&data-lang=Python&data-info=👆看看还缺点儿什么?-->
|
||||
[Vue 3](./docs/vue.md)<!--rehype:style=background: rgb(64 184 131);&class=contributing-->
|
||||
[Github Copilot](./docs/github-copilot.md)<!--rehype:style=background: rgb(125 45 220);&class=tag contributing&data-lang=AI&data-info=👆看看还缺点儿什么?-->
|
||||
[Chown](./docs/chown.md)<!--rehype:style=background: rgb(12 75 51/var(\-\-bg\-opacity));&class=contributing-->
|
||||
[R 语言](./docs/r.md)<!--rehype:style=background: rgb(39 108 192);&class=contributing-->
|
||||
[Elixir](./docs/elixir.md)<!--rehype:style=background: rgb(124 26 156);&class=contributing tag&data-lang=Elixir-->
|
||||
[Tauri](./docs/tauri.md)<!--rehype:style=background: rgb(103 214 237);&class=contributing-->
|
||||
[Docker Compose](./docs/docker-compose.md)<!--rehype:style=background: rgb(72 143 223);&class=contributing tag&data-lang=Docker-->
|
||||
[Docker Compose](./docs/docker-compose.md)<!--rehype:style=background: rgb(72 143 223);&class=contributing tag&data-lang=Docker-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 编程
|
||||
|
||||
[Bash](./docs/bash.md)<!--rehype:style=background: rgb(72 143 223);-->
|
||||
[Powershell](./docs/powershell.md)<!--rehype:style=background: rgb(0 81 197);-->
|
||||
[C 语言](./docs/c.md)<!--rehype:style=background: rgb(92 107 192);-->
|
||||
[C#](./docs/cs.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[C++](./docs/cpp.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[Dart](./docs/dart.md)<!--rehype:style=background: rgb(64 196 255);-->
|
||||
[Docker](./docs/docker.md)<!--rehype:style=background: rgb(72 143 223);-->
|
||||
[Docker Compose](./docs/docker-compose.md)<!--rehype:style=background: rgb(72 143 223);&class=contributing tag&data-lang=Docker-->
|
||||
[Dockerfile](./docs/dockerfile.md)<!--rehype:style=background: rgb(0 72 153);&class=tag&data-lang=Docker-->
|
||||
[Django](./docs/django.md)<!--rehype:style=background: rgb(12 75 51);&class=contributing tag&data-lang=Python-->
|
||||
[Elixir](./docs/elixir.md)<!--rehype:style=background: rgb(124 26 156);&class=contributing tag&data-lang=Elixir-->
|
||||
[Erlang](./docs/erlang.md)<!--rehype:style=background: rgb(206 55 97);&class=contributing-->
|
||||
[Flask](./docs/flask.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[FastAPI](./docs/fastapi.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
||||
[Golang](./docs/golang.md)<!--rehype:style=background: rgb(39 160 193);-->
|
||||
[GraphQL](./docs/graphql.md)<!--rehype:style=background: rgb(214 66 146);-->
|
||||
[Hook](./docs/hook.md)<!--rehype:style=background: rgb(211 55 49);-->
|
||||
[Java](./docs/java.md)<!--rehype:style=background: rgb(211 55 49);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Julia](./docs/julia.md)<!--rehype:style=background: rgb(26 188 156);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Kotlin](./docs/kotlin.md)<!--rehype:style=background: rgb(211 55 49);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Kubernetes](./docs/kubernetes.md)<!--rehype:style=background: rgb(51 113 227);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
||||
[Laravel 8](./docs/laravel.md)<!--rehype:style=background: rgb(249 50 44);&class=contributing tag&data-lang=PHP-->
|
||||
[Markdown](./docs/markdown.md)<!--rehype:style=background: rgb(103 61 156);-->
|
||||
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
||||
[PHP](./docs/php.md)<!--rehype:style=background: rgb(79 91 147);-->
|
||||
[Python](./docs/python.md)<!--rehype:style=background: rgb(43 91 132);-->
|
||||
[R 语言](./docs/r.md)<!--rehype:style=background: rgb(39 108 192);&class=contributing&data-info-->
|
||||
[Ruby](./docs/ruby.md)<!--rehype:style=background: rgb(204 52 45);-->
|
||||
[Rust](./docs/rust.md)<!--rehype:style=background: rgb(71 71 71);-->
|
||||
[Scala](./docs/scala.md)<!--rehype:style=background: rgb(34 82 94);-->
|
||||
[Swift](./docs/swift.md)<!--rehype:style=background: rgb(240 81 57);-->
|
||||
[SwiftUI](./docs/swiftui.md)<!--rehype:style=background: rgb(10 127 247);&class=tag&data-lang=swift-->
|
||||
[Spring Boot](./docs/springboot.md)<!--rehype:style=background: rgb(0 149 0);&class=tag&data-lang=Java-->
|
||||
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);-->
|
||||
[Pytorch](./docs/pytorch.md)<!--rehype:style=background: rgb(238 76 44);&class=contributing tag&data-lang=Python&data-info=👆看看还缺点儿什么?-->
|
||||
[Jupyter](./docs/jupyter.md)<!--rehype:style=background: rgb(0 72 153);&class=tag&data-lang=Python-->
|
||||
[Minio](./docs/minio.md)<!--rehype:style=background: rgb(3 3 128);-->
|
||||
[Bash](./docs/bash.md)<!--rehype:style=background: rgb(72 143 223);-->
|
||||
[Powershell](./docs/powershell.md)<!--rehype:style=background: rgb(0 81 197);-->
|
||||
[C 语言](./docs/c.md)<!--rehype:style=background: rgb(92 107 192);-->
|
||||
[C#](./docs/cs.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[C++](./docs/cpp.md)<!--rehype:style=background: rgb(6 147 13);&class=contributing-->
|
||||
[Dart](./docs/dart.md)<!--rehype:style=background: rgb(64 196 255);-->
|
||||
[Elixir](./docs/elixir.md)<!--rehype:style=background: rgb(124 26 156);&class=contributing tag&data-lang=Elixir-->
|
||||
[Erlang](./docs/erlang.md)<!--rehype:style=background: rgb(206 55 97);&class=contributing-->
|
||||
[Flutter](./docs/flutter.md)<!--rehype:style=background: rgb(150 220 254);&class=contributing tag&data-lang=Dart-->
|
||||
[Golang](./docs/golang.md)<!--rehype:style=background: rgb(39 160 193);-->
|
||||
[GraphQL](./docs/graphql.md)<!--rehype:style=background: rgb(214 66 146);-->
|
||||
[Hook](./docs/hook.md)<!--rehype:style=background: rgb(211 55 49);-->
|
||||
[Java](./docs/java.md)<!--rehype:style=background: rgb(211 55 49);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Julia](./docs/julia.md)<!--rehype:style=background: rgb(26 188 156);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Kotlin](./docs/kotlin.md)<!--rehype:style=background: rgb(211 55 49);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[Kubernetes](./docs/kubernetes.md)<!--rehype:style=background: rgb(51 113 227);&class=contributing&data-info=👆看看还缺点儿什么?-->
|
||||
[LaTeX](./docs/latex.md)<!--rehype:style=background: rgb(0 128 128);&class=contributing-->
|
||||
[Laravel 8](./docs/laravel.md)<!--rehype:style=background: rgb(249 50 44);&class=contributing tag&data-lang=PHP-->
|
||||
[Markdown](./docs/markdown.md)<!--rehype:style=background: rgb(103 61 156);-->
|
||||
[MATLAB](./docs/matlab.md)<!--rehype:style=background: rgb(0 118 168);&class=contributing-->
|
||||
[PHP](./docs/php.md)<!--rehype:style=background: rgb(79 91 147);-->
|
||||
[R 语言](./docs/r.md)<!--rehype:style=background: rgb(39 108 192);&class=contributing&data-info-->
|
||||
[Ruby](./docs/ruby.md)<!--rehype:style=background: rgb(204 52 45);-->
|
||||
[Rust](./docs/rust.md)<!--rehype:style=background: rgb(71 71 71);-->
|
||||
[Scala](./docs/scala.md)<!--rehype:style=background: rgb(34 82 94);-->
|
||||
[Swift](./docs/swift.md)<!--rehype:style=background: rgb(240 81 57);-->
|
||||
[SwiftUI](./docs/swiftui.md)<!--rehype:style=background: rgb(10 127 247);&class=tag&data-lang=swift-->
|
||||
[Spring Boot](./docs/springboot.md)<!--rehype:style=background: rgb(0 149 0);&class=tag&data-lang=Java-->
|
||||
[Lua](./docs/lua.md)<!--rehype:style=background: rgb(3 3 128);-->
|
||||
[Minio](./docs/minio.md)<!--rehype:style=background: rgb(3 3 128);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## Docker
|
||||
|
||||
[Docker](./docs/docker.md)<!--rehype:style=background: rgb(72 143 223);-->
|
||||
[Docker Compose](./docs/docker-compose.md)<!--rehype:style=background: rgb(72 143 223);&class=contributing tag&data-lang=Docker-->
|
||||
[Dockerfile](./docs/dockerfile.md)<!--rehype:style=background: rgb(0 72 153);&class=tag&data-lang=Docker-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 配置
|
||||
|
||||
[INI](./docs/ini.md)<!--rehype:style=background: rgb(57 59 60);-->
|
||||
[JSON](./docs/json.md)<!--rehype:style=background: rgb(57 59 60);-->
|
||||
[TOML](./docs/toml.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[YAML](./docs/yaml.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[INI](./docs/ini.md)<!--rehype:style=background: rgb(57 59 60);-->
|
||||
[JSON](./docs/json.md)<!--rehype:style=background: rgb(57 59 60);-->
|
||||
[TOML](./docs/toml.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[YAML](./docs/yaml.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 前端
|
||||
|
||||
[前端导航](./docs/feds.md)<!--rehype:style=background: rgb(35 115 205);&class=tag&data-lang=导航-->
|
||||
[Electron](./docs/electron.md)<!--rehype:style=background: rgb(0 72 153);-->
|
||||
[Emmet](./docs/emmet.md)<!--rehype:style=background: rgb(122 203 23);-->
|
||||
[ES 6](./docs/es6.md)<!--rehype:style=background: rgb(122 203 23);&class=tag&data-lang=JS-->
|
||||
[HTML](./docs/html.md)<!--rehype:style=background: rgb(228 77 39);-->
|
||||
[HTML Canvas](./docs/canvas.md)<!--rehype:style=background: rgb(228 77 39);-->
|
||||
[JavaScript](./docs/javascript.md)<!--rehype:style=background: rgb(203 183 31);-->
|
||||
[jQuery](./docs/jquery.md)<!--rehype:style=background: rgb(203 183 31);-->
|
||||
[Next.js](./docs/nextjs.md)<!--rehype:style=background: rgb(0 0 0);&class=tag&data-lang=React-->
|
||||
[RxJS](./docs/rxjs.md)<!--rehype:style=background: rgb(151 0 81);-->
|
||||
[React](./docs/react.md)<!--rehype:style=background: rgb(34 143 173);-->
|
||||
[React Router](./docs/reactrouter.md)<!--rehype:style=background: rgb(244 66 79);&class=tag&data-lang=React-->
|
||||
[React Native](./docs/react-native.md)<!--rehype:style=background: rgb(34 143 173);&class=tag&data-lang=React-->
|
||||
[TypeScript](./docs/typescript.md)<!--rehype:style=background: rgb(49 120 198);-->
|
||||
[Tauri](./docs/tauri.md)<!--rehype:style=background: rgb(103 214 237);&class=contributing-->
|
||||
[Vue 2](./docs/vue2.md)<!--rehype:style=background: rgb(64 184 131);&class=tag&data-lang=Vue-->
|
||||
[Vue 3](./docs/vue.md)<!--rehype:style=background: rgb(64 184 131);&class=tag&class=contributing tag&data-lang=Vue-->
|
||||
[</> htmx](./docs/htmx.md)<!--rehype:style=background: rgb(52 101 164);&class=contributing-->
|
||||
[Pinia](./docs/pinia.md)<!--rehype:style=background: rgb(44 136 50);&class=tag&data-lang=Vue-->
|
||||
[前端导航](./docs/feds.md)<!--rehype:style=background: rgb(35 115 205);&class=tag&data-lang=导航-->
|
||||
[Emmet](./docs/emmet.md)<!--rehype:style=background: rgb(122 203 23);-->
|
||||
[ES 6](./docs/es6.md)<!--rehype:style=background: rgb(122 203 23);&class=tag&data-lang=JS-->
|
||||
[HTML](./docs/html.md)<!--rehype:style=background: rgb(228 77 39);-->
|
||||
[HTML Canvas](./docs/canvas.md)<!--rehype:style=background: rgb(228 77 39);-->
|
||||
[JavaScript](./docs/javascript.md)<!--rehype:style=background: rgb(203 183 31);-->
|
||||
[jQuery](./docs/jquery.md)<!--rehype:style=background: rgb(203 183 31);-->
|
||||
[Next.js](./docs/nextjs.md)<!--rehype:style=background: rgb(0 0 0);&class=tag&data-lang=React-->
|
||||
[RxJS](./docs/rxjs.md)<!--rehype:style=background: rgb(151 0 81);-->
|
||||
[React](./docs/react.md)<!--rehype:style=background: rgb(34 143 173);-->
|
||||
[React Router](./docs/reactrouter.md)<!--rehype:style=background: rgb(244 66 79);&class=tag&data-lang=React-->
|
||||
[TypeScript](./docs/typescript.md)<!--rehype:style=background: rgb(49 120 198);-->
|
||||
[Vue 2](./docs/vue2.md)<!--rehype:style=background: rgb(64 184 131);&class=tag&data-lang=Vue-->
|
||||
[Vue 3](./docs/vue.md)<!--rehype:style=background: rgb(64 184 131);&class=tag&class=contributing tag&data-lang=Vue-->
|
||||
[</> htmx](./docs/htmx.md)<!--rehype:style=background: rgb(52 101 164);&class=contributing-->
|
||||
[Pinia](./docs/pinia.md)<!--rehype:style=background: rgb(44 136 50);&class=tag&data-lang=Vue-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## CSS
|
||||
|
||||
[CSS 3](./docs/css.md)<!--rehype:style=background: rgb(35 115 205);&class=tag&data-lang=CSS-->
|
||||
[Styled Components](./docs/styled-components.md)<!--rehype:style=background: rgb(221 60 184);&class=tag&data-lang=CSS-->
|
||||
[Stylus](./docs/stylus.md)<!--rehype:style=background: rgb(109 161 63);&class=tag&data-lang=CSS-->
|
||||
[Sass](./docs/sass.md)<!--rehype:style=background: rgb(207 100 154);&class=tag&data-lang=CSS-->
|
||||
[Less.js](./docs/lessjs.md)<!--rehype:style=background: rgb(29 54 93);&class=tag&data-lang=CSS-->
|
||||
[Tailwind CSS](./docs/tailwindcss.md)<!--rehype:style=background: rgb(49 120 198);&class=tag&data-lang=CSS-->
|
||||
[StyleX](./docs/stylex.md)<!--rehype:style=background: rgb(91 79 163);&class=tag&data-lang=CSS-->
|
||||
[CSS 3](./docs/css.md)<!--rehype:style=background: rgb(35 115 205);&class=tag&data-lang=CSS-->
|
||||
[Styled Components](./docs/styled-components.md)<!--rehype:style=background: rgb(221 60 184);&class=tag&data-lang=CSS-->
|
||||
[Stylus](./docs/stylus.md)<!--rehype:style=background: rgb(109 161 63);&class=tag&data-lang=CSS-->
|
||||
[Sass](./docs/sass.md)<!--rehype:style=background: rgb(207 100 154);&class=tag&data-lang=CSS-->
|
||||
[Less.js](./docs/lessjs.md)<!--rehype:style=background: rgb(29 54 93);&class=tag&data-lang=CSS-->
|
||||
[Tailwind CSS](./docs/tailwindcss.md)<!--rehype:style=background: rgb(49 120 198);&class=tag&data-lang=CSS-->
|
||||
[StyleX](./docs/stylex.md)<!--rehype:style=background: rgb(91 79 163);&class=tag&data-lang=CSS-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 客户端
|
||||
|
||||
[Electron](./docs/electron.md)<!--rehype:style=background: rgb(0 72 153);-->
|
||||
[React Native](./docs/react-native.md)<!--rehype:style=background: rgb(34 143 173);&class=tag&data-lang=React-->
|
||||
[Tauri](./docs/tauri.md)<!--rehype:style=background: rgb(103 214 237);&class=contributing-->
|
||||
[Wails](./docs/wails.md)<!--rehype:style=background: rgb(194 106 107);&class=contributing-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## Nodejs
|
||||
|
||||
[Express.js](./docs/expressjs.md)<!--rehype:style=background: rgb(95 151 206);-->
|
||||
[Ejs](./docs/ejs.md)<!--rehype:style=background: rgb(169 30 80);&class=tag&data-lang=JavaScript-->
|
||||
[Jest](./docs/jest.md)<!--rehype:style=background: rgb(153 66 91);-->
|
||||
[Koa.js](./docs/koajs.md)<!--rehype:style=background: rgb(95 151 206);-->
|
||||
[Lerna](./docs/lerna.md)<!--rehype:style=background: rgb(192 132 252);-->
|
||||
[npm](./docs/npm.md)<!--rehype:style=background: rgb(203 2 0);-->
|
||||
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
||||
[PM2](./docs/pm2.md)<!--rehype:style=background: rgb(73 117 241);&class=contributing-->
|
||||
[package.json](./docs/package.json.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[Yarn](./docs/yarn.md)<!--rehype:style=background: rgb(33 136 182);-->
|
||||
[nvm](./docs/nvm.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[pnpm](./docs/pnpm.md)<!--rehype:style=background: rgb(191 133 0);-->
|
||||
[Bun](./docs/bun.md)<!--rehype:style=background: rgb(157 49 81);-->
|
||||
[Express.js](./docs/expressjs.md)<!--rehype:style=background: rgb(95 151 206);-->
|
||||
[Ejs](./docs/ejs.md)<!--rehype:style=background: rgb(169 30 80);&class=tag&data-lang=JavaScript-->
|
||||
[Jest](./docs/jest.md)<!--rehype:style=background: rgb(153 66 91);-->
|
||||
[Koa.js](./docs/koajs.md)<!--rehype:style=background: rgb(95 151 206);-->
|
||||
[Lerna](./docs/lerna.md)<!--rehype:style=background: rgb(192 132 252);-->
|
||||
[npm](./docs/npm.md)<!--rehype:style=background: rgb(203 2 0);-->
|
||||
[NestJS](./docs/nestjs.md)<!--rehype:style=background: rgb(237 21 67);&class=contributing-->
|
||||
[PM2](./docs/pm2.md)<!--rehype:style=background: rgb(73 117 241);&class=contributing-->
|
||||
[package.json](./docs/package.json.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[Yarn](./docs/yarn.md)<!--rehype:style=background: rgb(33 136 182);-->
|
||||
[nvm](./docs/nvm.md)<!--rehype:style=background: rgb(132 132 132);-->
|
||||
[pnpm](./docs/pnpm.md)<!--rehype:style=background: rgb(191 133 0);-->
|
||||
[Bun](./docs/bun.md)<!--rehype:style=background: rgb(157 49 81);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## Python
|
||||
|
||||
[Python](./docs/python.md)<!--rehype:style=background: rgb(43 91 132);-->
|
||||
[Django](./docs/django.md)<!--rehype:style=background: rgb(12 75 51);&class=contributing tag&data-lang=Python-->
|
||||
[Flask](./docs/flask.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[FastAPI](./docs/fastapi.md)<!--rehype:style=background: rgb(210 168 255);&class=contributing tag&data-lang=Python-->
|
||||
[Pytorch](./docs/pytorch.md)<!--rehype:style=background: rgb(238 76 44);&class=contributing tag&data-lang=Python&data-info=👆看看还缺点儿什么?-->
|
||||
[Jupyter](./docs/jupyter.md)<!--rehype:style=background: rgb(0 72 153);&class=tag&data-lang=Python-->
|
||||
[Conda](./docs/conda.md)<!--rehype:style=background: rgb(68 168 51);&class=tag&data-lang=Python-->
|
||||
[pip](./docs/pip.md)<!--rehype:style=background: rgb(24 147 209);&class=tag contributing&data-lang=Python-->
|
||||
[uv](./docs/uv.md)<!--rehype:style=background: rgb(26 35 126);&class=tag contributing&data-lang=Python-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 命令
|
||||
|
||||
[ADB, Android Debug Bridge](./docs/adb.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=Android&data-info=👆看看还缺点儿什么?-->
|
||||
[Ansible](./docs/ansible.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=RedHat&data-info=👆看看还缺点儿什么?-->
|
||||
[Awk](./docs/awk.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Curl](./docs/curl.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Chmod](./docs/chmod.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[ADB, Android Debug Bridge](./docs/adb.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=Android&data-info=👆看看还缺点儿什么?-->
|
||||
[Ansible](./docs/ansible.md)<!--rehype:style=background: rgb(238 0 0);&class=contributing tag&data-lang=RedHat&data-info=👆看看还缺点儿什么?-->
|
||||
[Awk](./docs/awk.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Curl](./docs/curl.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Chmod](./docs/chmod.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Chown](./docs/chown.md)<!--rehype:style=background: rgb(12 75 51/var(\-\-bg\-opacity));&class=contributing-->
|
||||
[Cron](./docs/cron.md)<!--rehype:style=background: rgb(239 68 68);-->
|
||||
[CMake](./docs/cmake.md)<!--rehype:style=background: rgb(92 107 192);&class=contributing-->
|
||||
[CMD](./docs/cmd.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Find](./docs/find.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[FFmpeg](./docs/ffmpeg.md)<!--rehype:style=background: rgb(0 193 9);&class=contributing-->
|
||||
[Gdb](./docs/gdb.md)<!--rehype:style=background: rgb(215 89 62);-->
|
||||
[Glances](./docs/glances.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Grep](./docs/grep.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Htop](./docs/htop.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[iptables](./docs/iptables.md)<!--rehype:style=background: rgb(32 74 135);-->
|
||||
[jq](./docs/jq.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=JSON-->
|
||||
[Justfile](./docs/justfile.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Lsof](./docs/lsof.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Make](./docs/make.md)<!--rehype:style=background: rgb(99 99 99);&class=contributing-->
|
||||
[Netstat](./docs/netstat.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Netcat](./docs/netcat.md)<!--rehype:style=background: rgb(4 92 135);-->
|
||||
[OpenSSL](./docs/openssl.md)<!--rehype:style=background: rgb(114 20 18);-->
|
||||
[ps](./docs/ps.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Pandoc](./docs/pandoc.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=文档转换器-->
|
||||
[Sed](./docs/sed.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Systemd](./docs/systemd.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[SSH](./docs/ssh.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Screen](./docs/screen.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Sysdig](./docs/sysdig.md)<!--rehype:style=background: rgb(1 171 199);-->
|
||||
[Tmux](./docs/tmux.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Taskset](./docs/taskset.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[tar](./docs/tar.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=解压缩-->
|
||||
[Yazi](./docs/yazi.md)<!--rehype:style=background: rgb(255 165 0);&class=tag&data-lang=文件管理器;&class=contributing-->
|
||||
[Zip](./docs/zip.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=解压缩-->
|
||||
[FTP](./docs/ftp.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Cron](./docs/cron.md)<!--rehype:style=background: rgb(239 68 68);-->
|
||||
[CMake](./docs/cmake.md)<!--rehype:style=background: rgb(92 107 192);&class=contributing-->
|
||||
[CMD](./docs/cmd.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[.NET CLI](./docs/dotnet-cli.md)<!--rehype:style=background: rgb(16 185 129);&class=contributing tag&data-lang=#C-->
|
||||
[Find](./docs/find.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[FFmpeg](./docs/ffmpeg.md)<!--rehype:style=background: rgb(0 193 9);&class=contributing-->
|
||||
[FTP](./docs/ftp.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Gdb](./docs/gdb.md)<!--rehype:style=background: rgb(215 89 62);-->
|
||||
[Glances](./docs/glances.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Grep](./docs/grep.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Htop](./docs/htop.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[iptables](./docs/iptables.md)<!--rehype:style=background: rgb(32 74 135);-->
|
||||
[jq](./docs/jq.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=JSON-->
|
||||
[Justfile](./docs/justfile.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Lsof](./docs/lsof.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Make](./docs/make.md)<!--rehype:style=background: rgb(99 99 99);&class=contributing-->
|
||||
[Netstat](./docs/netstat.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Netcat](./docs/netcat.md)<!--rehype:style=background: rgb(4 92 135);-->
|
||||
[OpenSSL](./docs/openssl.md)<!--rehype:style=background: rgb(114 20 18);-->
|
||||
[ps](./docs/ps.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Pandoc](./docs/pandoc.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=文档转换器-->
|
||||
[Sed](./docs/sed.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Systemd](./docs/systemd.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[SSH](./docs/ssh.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Screen](./docs/screen.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Sysdig](./docs/sysdig.md)<!--rehype:style=background: rgb(1 171 199);-->
|
||||
[Tmux](./docs/tmux.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[Taskset](./docs/taskset.md)<!--rehype:style=background: rgb(99 99 99);-->
|
||||
[tar](./docs/tar.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=解压缩-->
|
||||
[Yazi](./docs/yazi.md)<!--rehype:style=background: rgb(255 165 0);&class=tag&data-lang=文件管理器;&class=contributing-->
|
||||
[Zip](./docs/zip.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=解压缩-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 工具
|
||||
|
||||
[ChatGPT](./docs/chatgpt.md)<!--rehype:style=background: rgb(74, 161, 129);&class=tag&data-lang=AI-->
|
||||
[Emacs](./docs/emacs.md)<!--rehype:style=background: rgb(98 36 134);-->
|
||||
[Linux Command](./docs/linux-command.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=命令速查-->
|
||||
[Mitmproxy](./docs/mitmproxy.md)<!--rehype:style=background: rgb(4 92 135);-->
|
||||
[nginx](./docs/nginx.md)<!--rehype:style=background: rgb(0 153 0);-->
|
||||
[RegEx 正则表达式](./docs/regex.md)<!--rehype:style=background: rgb(149 36 155);-->
|
||||
[Semver 语义化版本](./docs/semver.md)<!--rehype:style=background: rgb(106 111 141);-->
|
||||
[Vim](./docs/vim.md)<!--rehype:style=background: rgb(9 150 8);-->
|
||||
[XPath](./docs/xpath.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[Emacs](./docs/emacs.md)<!--rehype:style=background: rgb(98 36 134);-->
|
||||
[Linux Command](./docs/linux-command.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=命令速查-->
|
||||
[Mitmproxy](./docs/mitmproxy.md)<!--rehype:style=background: rgb(4 92 135);-->
|
||||
[nginx](./docs/nginx.md)<!--rehype:style=background: rgb(0 153 0);-->
|
||||
[RegEx 正则表达式](./docs/regex.md)<!--rehype:style=background: rgb(149 36 155);-->
|
||||
[Semver 语义化版本](./docs/semver.md)<!--rehype:style=background: rgb(106 111 141);-->
|
||||
[Vim](./docs/vim.md)<!--rehype:style=background: rgb(9 150 8);-->
|
||||
[XPath](./docs/xpath.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 软件包管理器
|
||||
|
||||
[APT](./docs/apt.md)<!--rehype:style=background: rgb(30 144 255);-->
|
||||
[Conan](./docs/conan.md)<!--rehype:style=background: rgb(0 193 9);&class=tag&data-lang=C/C++-->
|
||||
[Conda](./docs/conda.md)<!--rehype:style=background: rgb(68 168 51);&class=tag&data-lang=Python-->
|
||||
[CocoaPods](./docs/cocoapods.md)<!--rehype:style=background: rgb(251 0 6);&class=tag&data-lang=C/C++-->
|
||||
[Cargo](./docs/cargo.md)<!--rehype:style=background: rgb(71 71 71);&class=tag&data-lang=Rust-->
|
||||
[Homebrew](./docs/homebrew.md)<!--rehype:style=background: rgb(252 185 87);&class=tag&data-lang=macOS-->
|
||||
[Pacman](./docs/pacman.md)<!--rehype:style=background: rgb(24 147 209);&class=tag&data-lang=archlinux&class=contributing-->
|
||||
[YUM](./docs/yum.md)<!--rehype:style=background: rgb(86 86 123);-->
|
||||
[SDKMAN](./docs/sdkman.md)<!--rehype:style=background: rgb(0 118 198);-->
|
||||
[APT](./docs/apt.md)<!--rehype:style=background: rgb(30 144 255);-->
|
||||
[Conan](./docs/conan.md)<!--rehype:style=background: rgb(0 193 9);&class=tag&data-lang=C/C++-->
|
||||
[CocoaPods](./docs/cocoapods.md)<!--rehype:style=background: rgb(251 0 6);&class=tag&data-lang=C/C++-->
|
||||
[Cargo](./docs/cargo.md)<!--rehype:style=background: rgb(71 71 71);&class=tag&data-lang=Rust-->
|
||||
[Homebrew](./docs/homebrew.md)<!--rehype:style=background: rgb(252 185 87);&class=tag&data-lang=macOS-->
|
||||
[Pacman](./docs/pacman.md)<!--rehype:style=background: rgb(24 147 209);&class=tag contributing&data-lang=Linux-->
|
||||
[YUM](./docs/yum.md)<!--rehype:style=background: rgb(86 86 123);-->
|
||||
[SDKMAN](./docs/sdkman.md)<!--rehype:style=background: rgb(0 118 198);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## Git 版本控制
|
||||
|
||||
[Git](./docs/git.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=版本控制-->
|
||||
[Github](./docs/github.md)<!--rehype:style=background: rgb(36 41 47);-->
|
||||
[Github Copilot](./docs/github-copilot.md)<!--rehype:style=background: rgb(125 45 220);&class=tag contributing&data-lang=AI&data-info=👆看看还缺点儿什么?-->
|
||||
[Github CLI](./docs/github-cli.md)<!--rehype:style=background: rgb(36 41 47);-->
|
||||
[Github Actions](./docs/github-actions.md)<!--rehype:style=background: rgb(121 184 255);-->
|
||||
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
||||
[Subversion (SVN)](./docs/subversion.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=版本控制-->
|
||||
[Git](./docs/git.md)<!--rehype:style=background: rgb(215 89 62);&class=tag&data-lang=版本控制-->
|
||||
[Github](./docs/github.md)<!--rehype:style=background: rgb(36 41 47);-->
|
||||
[Github Copilot](./docs/github-copilot.md)<!--rehype:style=background: rgb(125 45 220);&class=tag contributing&data-lang=AI&data-info=👆看看还缺点儿什么?-->
|
||||
[Github CLI](./docs/github-cli.md)<!--rehype:style=background: rgb(36 41 47);-->
|
||||
[Github Actions](./docs/github-actions.md)<!--rehype:style=background: rgb(121 184 255);-->
|
||||
[Gitlab CI/CD](./docs/gitlab-ci.md)<!--rehype:style=background: rgb(226 67 41);&class=contributing-->
|
||||
[Subversion (SVN)](./docs/subversion.md)<!--rehype:style=background: rgb(99 99 99);&class=tag&data-lang=版本控制-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 数据库
|
||||
|
||||
[MySQL](./docs/mysql.md)<!--rehype:style=background: rgb(1 117 143);&class=tag&data-lang=SQL-->
|
||||
[MongoDB](./docs/mongodb.md)<!--rehype:style=background: rgb(0 237 100);-->
|
||||
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=tag&data-lang=SQL-->
|
||||
[PostgreSQL](./docs/postgres.md)<!--rehype:style=background: rgb(43 109 163);&class=tag&data-lang=SQL-->
|
||||
[Redis](./docs/redis.md)<!--rehype:style=background: rgb(198 47 44);-->
|
||||
[Elasticsearch](./docs/elasticsearch.md)<!--rehype:style=background: rgb(36 187 177);-->
|
||||
[MySQL](./docs/mysql.md)<!--rehype:style=background: rgb(1 117 143);&class=tag&data-lang=SQL-->
|
||||
[MongoDB](./docs/mongodb.md)<!--rehype:style=background: rgb(0 237 100);-->
|
||||
[Oracle](./docs/oracle.md)<!--rehype:style=background: rgb(255 0 0);&class=tag&data-lang=SQL-->
|
||||
[PostgreSQL](./docs/postgres.md)<!--rehype:style=background: rgb(43 109 163);&class=tag&data-lang=SQL-->
|
||||
[Redis](./docs/redis.md)<!--rehype:style=background: rgb(198 47 44);-->
|
||||
[Elasticsearch](./docs/elasticsearch.md)<!--rehype:style=background: rgb(36 187 177);-->
|
||||
[Neo4j](./docs/neo4j.md)<!--rehype:style=background: rgb(86 86 123);-->
|
||||
[SQLite](./docs/sqlite.md)<!--rehype:style=background: rgb(0 59 90);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 快捷键
|
||||
|
||||
[Adobe Lightroom](./docs/adobe-lightroom.md)<!--rehype:style=background: rgb(49 168 255);-->
|
||||
[Adobe Photoshop](./docs/adobe-photoshop.md)<!--rehype:style=background: rgb(49 168 255);-->
|
||||
[Adobe XD](./docs/adobe-xd.md)<!--rehype:style=background: rgb(255 97 246);-->
|
||||
[Android Studio](./docs/android-studio.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Blender](./docs/blender.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Firefox](./docs/firefox.md)<!--rehype:style=background: rgb(253 53 76);-->
|
||||
[Finder](./docs/finder.md)<!--rehype:style=background: rgb(253 53 76);&class=tag&data-lang=macOS-->
|
||||
[Figma](./docs/figma.md)<!--rehype:style=background: rgb(147 90 238);-->
|
||||
[Gmail](./docs/gmail.md)<!--rehype:style=background: rgb(234 67 54);-->
|
||||
[Gitlab](./docs/gitlab.md)<!--rehype:style=background: rgb(226 67 41);-->
|
||||
[Google Chrome](./docs/google-chrome.md)<!--rehype:style=background: rgb(29 116 232);-->
|
||||
[IntelliJ IDEA](./docs/intelli-j-idea.md)<!--rehype:style=background: rgb(223 148 0);&class=tag&data-lang=Java-->
|
||||
[PyCharm](./docs/pycharm.md)<!--rehype:style=background: rgb(36 215 137);&class=tag&data-lang=Python-->
|
||||
[PhpStorm](./docs/phpstorm.md)<!--rehype:style=\-\-bg\-opacity: 0.75;background-image: linear-gradient(to left, rgba(255 106 172 / var(\-\-bg\-opacity)), rgba(183 173 255 / var(\-\-bg\-opacity)));-->
|
||||
[Sketch](./docs/sketch.md)<!--rehype:style=background: rgb(223 148 0);&class=tag&data-lang=macOS-->
|
||||
[Sublime Text](./docs/sublime-text.md)<!--rehype:style=background: rgb(223 148 0);-->
|
||||
[Adobe Lightroom](./docs/adobe-lightroom.md)<!--rehype:style=background: rgb(49 168 255);-->
|
||||
[Adobe Photoshop](./docs/adobe-photoshop.md)<!--rehype:style=background: rgb(49 168 255);-->
|
||||
[Adobe XD](./docs/adobe-xd.md)<!--rehype:style=background: rgb(255 97 246);-->
|
||||
[Android Studio](./docs/android-studio.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Blender](./docs/blender.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Firefox](./docs/firefox.md)<!--rehype:style=background: rgb(253 53 76);-->
|
||||
[Finder](./docs/finder.md)<!--rehype:style=background: rgb(253 53 76);&class=tag&data-lang=macOS-->
|
||||
[Figma](./docs/figma.md)<!--rehype:style=background: rgb(147 90 238);-->
|
||||
[Gmail](./docs/gmail.md)<!--rehype:style=background: rgb(234 67 54);-->
|
||||
[Gitlab](./docs/gitlab.md)<!--rehype:style=background: rgb(226 67 41);-->
|
||||
[Google Chrome](./docs/google-chrome.md)<!--rehype:style=background: rgb(29 116 232);-->
|
||||
[IntelliJ IDEA](./docs/intelli-j-idea.md)<!--rehype:style=background: rgb(223 148 0);&class=tag&data-lang=Java-->
|
||||
[PyCharm](./docs/pycharm.md)<!--rehype:style=background: rgb(36 215 137);&class=tag&data-lang=Python-->
|
||||
[PhpStorm](./docs/phpstorm.md)<!--rehype:style=\-\-bg\-opacity: 0.75;background-image: linear-gradient(to left, rgba(255 106 172 / var(\-\-bg\-opacity)), rgba(183 173 255 / var(\-\-bg\-opacity)));-->
|
||||
[Sketch](./docs/sketch.md)<!--rehype:style=background: rgb(223 148 0);&class=tag&data-lang=macOS-->
|
||||
[Sublime Text](./docs/sublime-text.md)<!--rehype:style=background: rgb(223 148 0);-->
|
||||
[Vimium](./docs/vimium.md)<!--rehype:style=background: rgb(49 168 255);&class=contributing&class=tag&data-lang=浏览器插件-->
|
||||
[VSCode](./docs/vscode.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[Twitter(X)](./docs/twitter.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[WebStorm](./docs/webstorm.md)<!--rehype:style=background: rgb(32 148 220);-->
|
||||
[Xcode](./docs/xcode.md)<!--rehype:style=background: rgb(24 151 233);&class=tag&data-lang=macOS-->
|
||||
[VSCode](./docs/vscode.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[Twitter(X)](./docs/twitter.md)<!--rehype:style=background: rgb(91 163 230);-->
|
||||
[WebStorm](./docs/webstorm.md)<!--rehype:style=background: rgb(32 148 220);-->
|
||||
[Xcode](./docs/xcode.md)<!--rehype:style=background: rgb(24 151 233);&class=tag&data-lang=macOS-->
|
||||
[Zed](./docs/zed.md)<!--rehype:style=background: rgb(71 71 71);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 其它
|
||||
|
||||
[Quick Reference](./docs/quickreference.md)<!--rehype:style=background: rgb(0 182 122);&class=tag&data-lang=排版说明-->
|
||||
[Aspect Ratio](./docs/aspect-ratio.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[ASCII Code](./docs/ascii-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Symbol Code](./docs/symbol-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Colors Named](./docs/colors-named.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=CSS-->
|
||||
[HTTP 状态码](./docs/http-status-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[HTML 字符实体](./docs/html-char.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=HTML-->
|
||||
[ISO-3166 国家代码](./docs/iso-3166-1.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[ISO-639 语言代码](./docs/iso-639-1.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Emoji](./docs/emoji.md)<!--rehype:style=\-\-bg\-opacity: 0.75;background-image: linear-gradient(to left, rgba(74 222 128 / var(\-\-bg\-opacity)), rgba(59 130 246 / var(\-\-bg\-opacity)));-->
|
||||
[MIME types](./docs/mime.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Resolutions](./docs/resolutions.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[常见端口对照](./docs/ports.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Quick Reference](./docs/quickreference.md)<!--rehype:style=background: rgb(0 182 122);&class=tag&data-lang=排版说明-->
|
||||
[Aspect Ratio](./docs/aspect-ratio.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[ASCII Code](./docs/ascii-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Symbol Code](./docs/symbol-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Colors Named](./docs/colors-named.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=CSS-->
|
||||
[HTTP 状态码](./docs/http-status-code.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[HTML 字符实体](./docs/html-char.md)<!--rehype:style=background: rgb(16 185 129);&class=tag&data-lang=HTML-->
|
||||
[ISO-3166 国家代码](./docs/iso-3166-1.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[ISO-639 语言代码](./docs/iso-639-1.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Emoji](./docs/emoji.md)<!--rehype:style=\-\-bg\-opacity: 0.75;background-image: linear-gradient(to left, rgba(74 222 128 / var(\-\-bg\-opacity)), rgba(59 130 246 / var(\-\-bg\-opacity)));-->
|
||||
[MIME types](./docs/mime.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[Resolutions](./docs/resolutions.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[时区列表](./docs/time-zones.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
[常见端口对照](./docs/ports.md)<!--rehype:style=background: rgb(16 185 129);-->
|
||||
<!--rehype:class=home-card-->
|
||||
|
||||
## 看到缺少什么了吗?
|
||||
@ -282,7 +334,7 @@ Quick Reference
|
||||
|
||||
上面的列表没有看到你想要的? 您是否正在寻找一些备忘清单或参考资料,或者您有一些片段备忘清单要分享,这是一个最好的机会!
|
||||
|
||||
[`请求添加备忘单(速查表)`](https://github.com/jaywcjlove/reference/issues/new?title=【备忘清单】+请求%3A+&labels=request&template=cheatsheet-request.md&assignee=)<!--rehype:class=home-button&style=margin-top:2rem&target=__blank-->
|
||||
[`请求添加备忘单(速查表)`](https://github.com/jaywcjlove/reference/issues/new?template=cheatsheet-request.yml)<!--rehype:class=home-button&style=margin-top:2rem&target=__blank-->
|
||||
[`我有一张备忘单(速查表)`](https://github.com/jaywcjlove/reference/blob/main/CONTRIBUTING.md)<!--rehype:class=home-button text-grey&target=__blank-->
|
||||
<!--rehype:style=margin-top:3rem-->
|
||||
|
||||
@ -292,7 +344,8 @@ Quick Reference
|
||||
请参阅 [Quick Reference](./docs/quickreference.md) 了解如何开始。一如既往,感谢我们出色的[贡献者](https://github.com/jaywcjlove/reference/graphs/contributors)!
|
||||
<!--rehype:style=padding-bottom:1rem;-->
|
||||
|
||||
<!--GAMFC--><a href="https://github.com/jaywcjlove" title="小弟调调"><img src="https://avatars.githubusercontent.com/u/1680273?v=4" width="42;" alt="小弟调调"/></a>
|
||||
<!--GAMFC-->
|
||||
<a href="https://github.com/jaywcjlove" title="小弟调调"><img src="https://avatars.githubusercontent.com/u/1680273?v=4" width="42;" alt="小弟调调"/></a>
|
||||
<a href="https://github.com/fwqaaq" title="fwqaaq"><img src="https://avatars.githubusercontent.com/u/82551626?v=4" width="42;" alt="fwqaaq"/></a>
|
||||
<a href="https://github.com/zhangymPerson" title="zhangym"><img src="https://avatars.githubusercontent.com/u/40376181?v=4" width="42;" alt="zhangym"/></a>
|
||||
<a href="https://github.com/mofelee" title="mofelee"><img src="https://avatars.githubusercontent.com/u/5069410?v=4" width="42;" alt="mofelee"/></a>
|
||||
@ -301,9 +354,9 @@ Quick Reference
|
||||
<a href="https://github.com/LesterChang0987" title="Steve Hartwell"><img src="https://avatars.githubusercontent.com/u/114913921?v=4" width="42;" alt="Steve Hartwell"/></a>
|
||||
<a href="https://github.com/h7ml" title="h7ml"><img src="https://avatars.githubusercontent.com/u/55233292?v=4" width="42;" alt="h7ml"/></a>
|
||||
<a href="https://github.com/nangongchengfeng" title="南宫乘风"><img src="https://avatars.githubusercontent.com/u/46562911?v=4" width="42;" alt="南宫乘风"/></a>
|
||||
<a href="https://github.com/aixcyi" title="砹小翼"><img src="https://avatars.githubusercontent.com/u/75880483?v=4" width="42;" alt="砹小翼"/></a>
|
||||
<a href="https://github.com/alex-reinfoce" title="Alex"><img src="https://avatars.githubusercontent.com/u/115539090?v=4" width="42;" alt="Alex"/></a>
|
||||
<a href="https://github.com/aixcyi" title="阿羽"><img src="https://avatars.githubusercontent.com/u/75880483?v=4" width="42;" alt="阿羽"/></a>
|
||||
<a href="https://github.com/LufsX" title="LufsX"><img src="https://avatars.githubusercontent.com/u/33221883?v=4" width="42;" alt="LufsX"/></a>
|
||||
<a href="https://github.com/alex-reinfoce" title="Alex"><img src="https://avatars.githubusercontent.com/u/115539090?v=4" width="42;" alt="Alex"/></a>
|
||||
<a href="https://github.com/mailbaoer" title="baoer"><img src="https://avatars.githubusercontent.com/u/5282978?v=4" width="42;" alt="baoer"/></a>
|
||||
<a href="https://github.com/expoli" title="expoli"><img src="https://avatars.githubusercontent.com/u/31023767?v=4" width="42;" alt="expoli"/></a>
|
||||
<a href="https://github.com/k23223" title="k23223"><img src="https://avatars.githubusercontent.com/u/57606136?v=4" width="42;" alt="k23223"/></a>
|
||||
@ -314,94 +367,103 @@ Quick Reference
|
||||
<a href="https://github.com/qyl27" title="雨落"><img src="https://avatars.githubusercontent.com/u/53731501?v=4" width="42;" alt="雨落"/></a>
|
||||
<a href="https://github.com/MackDing" title="Blossom"><img src="https://avatars.githubusercontent.com/u/19878893?v=4" width="42;" alt="Blossom"/></a>
|
||||
<a href="https://github.com/1250422131" title="萌新杰少"><img src="https://avatars.githubusercontent.com/u/52126790?v=4" width="42;" alt="萌新杰少"/></a>
|
||||
<a href="https://github.com/richuff" title="richuff"><img src="https://avatars.githubusercontent.com/u/162144087?v=4" width="42;" alt="richuff"/></a>
|
||||
<a href="https://github.com/chaos-cn" title="chaos"><img src="https://avatars.githubusercontent.com/u/71205599?v=4" width="42;" alt="chaos"/></a>
|
||||
<a href="https://github.com/xia0ne" title="YuRuiH"><img src="https://avatars.githubusercontent.com/u/32591223?v=4" width="42;" alt="YuRuiH"/></a>
|
||||
<a href="https://github.com/Willxup" title="Willxup"><img src="https://avatars.githubusercontent.com/u/51990395?v=4" width="42;" alt="Willxup"/></a>
|
||||
<a href="https://github.com/long-910" title="Small Long"><img src="https://avatars.githubusercontent.com/u/7323488?v=4" width="42;" alt="Small Long"/></a>
|
||||
<a href="https://github.com/zine0" title="zine yu"><img src="https://avatars.githubusercontent.com/u/46991452?v=4" width="42;" alt="zine yu"/></a>
|
||||
<a href="https://github.com/Harris-H" title="Hao He"><img src="https://avatars.githubusercontent.com/u/57698783?v=4" width="42;" alt="Hao He"/></a>
|
||||
<a href="https://github.com/LiuYuan-SHU" title="Yuan Liu"><img src="https://avatars.githubusercontent.com/u/96400967?v=4" width="42;" alt="Yuan Liu"/></a>
|
||||
<a href="https://github.com/AmosHuKe" title="Amos"><img src="https://avatars.githubusercontent.com/u/32262985?v=4" width="42;" alt="Amos"/></a>
|
||||
<a href="https://github.com/1834423612" title="kjch"><img src="https://avatars.githubusercontent.com/u/49981661?v=4" width="42;" alt="kjch"/></a>
|
||||
<a href="https://github.com/mancuoj" title="mancuoj"><img src="https://avatars.githubusercontent.com/u/45707684?v=4" width="42;" alt="mancuoj"/></a>
|
||||
<a href="https://github.com/pangxiaoli" title="pangxiaoli"><img src="https://avatars.githubusercontent.com/u/54620953?v=4" width="42;" alt="pangxiaoli"/></a>
|
||||
<a href="https://github.com/partoneplay" title="佐博"><img src="https://avatars.githubusercontent.com/u/5189132?v=4" width="42;" alt="佐博"/></a>
|
||||
<a href="https://github.com/ryanhex53" title="ryanhex53"><img src="https://avatars.githubusercontent.com/u/360426?v=4" width="42;" alt="ryanhex53"/></a>
|
||||
<a href="https://github.com/witt-bit" title="witt"><img src="https://avatars.githubusercontent.com/u/52407727?v=4" width="42;" alt="witt"/></a>
|
||||
<a href="https://github.com/catcto" title="小武Alan"><img src="https://avatars.githubusercontent.com/u/5467932?v=4" width="42;" alt="小武Alan"/></a>
|
||||
<a href="https://github.com/itldg" title="老大哥"><img src="https://avatars.githubusercontent.com/u/13432299?v=4" width="42;" alt="老大哥"/></a>
|
||||
<a href="https://github.com/long-910" title="Small Long"><img src="https://avatars.githubusercontent.com/u/7323488?v=4" width="42;" alt="Small Long"/></a>
|
||||
<a href="https://github.com/Willxup" title="Will"><img src="https://avatars.githubusercontent.com/u/51990395?v=4" width="42;" alt="Will"/></a>
|
||||
<a href="https://github.com/xia0ne" title="YuRuiH"><img src="https://avatars.githubusercontent.com/u/32591223?v=4" width="42;" alt="YuRuiH"/></a>
|
||||
<a href="https://github.com/chaos-cn" title="chaos"><img src="https://avatars.githubusercontent.com/u/71205599?v=4" width="42;" alt="chaos"/></a>
|
||||
<a href="https://github.com/QinIndexCode" title="fault"><img src="https://avatars.githubusercontent.com/u/177287013?v=4" width="42;" alt="fault"/></a>
|
||||
<a href="https://github.com/richuff" title="richuff"><img src="https://avatars.githubusercontent.com/u/162144087?v=4" width="42;" alt="richuff"/></a>
|
||||
<a href="https://github.com/wangdaodao" title="王叨叨"><img src="https://avatars.githubusercontent.com/u/2317442?v=4" width="42;" alt="王叨叨"/></a>
|
||||
<a href="https://github.com/wsypower" title="魏"><img src="https://avatars.githubusercontent.com/u/31298317?v=4" width="42;" alt="魏"/></a>
|
||||
<a href="https://github.com/buyfakett" title="buyfakett"><img src="https://avatars.githubusercontent.com/u/46560426?v=4" width="42;" alt="buyfakett"/></a>
|
||||
<a href="https://github.com/wangdaodao" title="王叨叨"><img src="https://avatars.githubusercontent.com/u/2317442?v=4" width="42;" alt="王叨叨"/></a>
|
||||
<a href="https://github.com/itldg" title="老大哥"><img src="https://avatars.githubusercontent.com/u/13432299?v=4" width="42;" alt="老大哥"/></a>
|
||||
<a href="https://github.com/catcto" title="小武Alan"><img src="https://avatars.githubusercontent.com/u/5467932?v=4" width="42;" alt="小武Alan"/></a>
|
||||
<a href="https://github.com/witt-bit" title="witt"><img src="https://avatars.githubusercontent.com/u/52407727?v=4" width="42;" alt="witt"/></a>
|
||||
<a href="https://github.com/ryanhex53" title="ryanhex53"><img src="https://avatars.githubusercontent.com/u/360426?v=4" width="42;" alt="ryanhex53"/></a>
|
||||
<a href="https://github.com/partoneplay" title="佐博"><img src="https://avatars.githubusercontent.com/u/5189132?v=4" width="42;" alt="佐博"/></a>
|
||||
<a href="https://github.com/pangxiaoli" title="pangxiaoli"><img src="https://avatars.githubusercontent.com/u/54620953?v=4" width="42;" alt="pangxiaoli"/></a>
|
||||
<a href="https://github.com/mancuoj" title="mancuoj"><img src="https://avatars.githubusercontent.com/u/45707684?v=4" width="42;" alt="mancuoj"/></a>
|
||||
<a href="https://github.com/1834423612" title="kjch"><img src="https://avatars.githubusercontent.com/u/49981661?v=4" width="42;" alt="kjch"/></a>
|
||||
<a href="https://github.com/AmosHuKe" title="Amos"><img src="https://avatars.githubusercontent.com/u/32262985?v=4" width="42;" alt="Amos"/></a>
|
||||
<a href="https://github.com/qjksxy" title="Apin"><img src="https://avatars.githubusercontent.com/u/81305669?v=4" width="42;" alt="Apin"/></a>
|
||||
<a href="https://github.com/dadatom" title="Da Da"><img src="https://avatars.githubusercontent.com/u/33886943?v=4" width="42;" alt="Da Da"/></a>
|
||||
<a href="https://github.com/ljq" title="Jack Liu"><img src="https://avatars.githubusercontent.com/u/7278286?v=4" width="42;" alt="Jack Liu"/></a>
|
||||
<a href="https://github.com/jasnzhuang" title="Jason Zhuang"><img src="https://avatars.githubusercontent.com/u/16612921?v=4" width="42;" alt="Jason Zhuang"/></a>
|
||||
<a href="https://github.com/Jovins" title="Jovins"><img src="https://avatars.githubusercontent.com/u/17738992?v=4" width="42;" alt="Jovins"/></a>
|
||||
<a href="https://github.com/Kisa-Dong" title="Kisa-Dong"><img src="https://avatars.githubusercontent.com/u/84782008?v=4" width="42;" alt="Kisa-Dong"/></a>
|
||||
<a href="https://github.com/infanx" title="infanx"><img src="https://avatars.githubusercontent.com/u/65985757?v=4" width="42;" alt="infanx"/></a>
|
||||
<a href="https://github.com/greyhao" title="greyhao"><img src="https://avatars.githubusercontent.com/u/107107440?v=4" width="42;" alt="greyhao"/></a>
|
||||
<a href="https://github.com/findnr" title="findnr"><img src="https://avatars.githubusercontent.com/u/3909023?v=4" width="42;" alt="findnr"/></a>
|
||||
<a href="https://github.com/izven" title="Zhang"><img src="https://avatars.githubusercontent.com/u/2149051?v=4" width="42;" alt="Zhang"/></a>
|
||||
<a href="https://github.com/Kisa-Dong" title="Kisa-Dong"><img src="https://avatars.githubusercontent.com/u/84782008?v=4" width="42;" alt="Kisa-Dong"/></a>
|
||||
<a href="https://github.com/SuperDiscovery" title="SuperDiscovery"><img src="https://avatars.githubusercontent.com/u/49646863?v=4" width="42;" alt="SuperDiscovery"/></a>
|
||||
<a href="https://github.com/XYZscratcher" title="XYZ"><img src="https://avatars.githubusercontent.com/u/108533817?v=4" width="42;" alt="XYZ"/></a>
|
||||
<a href="https://github.com/ThanatosXingYu" title="Thanatos"><img src="https://avatars.githubusercontent.com/u/53430376?v=4" width="42;" alt="Thanatos"/></a>
|
||||
<a href="https://github.com/SuperDiscovery" title="SuperDiscovery"><img src="https://avatars.githubusercontent.com/u/49646863?v=4" width="42;" alt="SuperDiscovery"/></a>
|
||||
<a href="https://github.com/hua03" title="hua03"><img src="https://avatars.githubusercontent.com/u/19561959?v=4" width="42;" alt="hua03"/></a>
|
||||
<a href="https://github.com/yanxuplay" title="hupilan"><img src="https://avatars.githubusercontent.com/u/69749541?v=4" width="42;" alt="hupilan"/></a>
|
||||
<a href="https://github.com/hweining" title="hweining"><img src="https://avatars.githubusercontent.com/u/8973985?v=4" width="42;" alt="hweining"/></a>
|
||||
<a href="https://github.com/icer233" title="icer"><img src="https://avatars.githubusercontent.com/u/74440627?v=4" width="42;" alt="icer"/></a>
|
||||
<a href="https://github.com/auroraslot" title="irony"><img src="https://avatars.githubusercontent.com/u/48817882?v=4" width="42;" alt="irony"/></a>
|
||||
<a href="https://github.com/jlchen5" title="J.Chen"><img src="https://avatars.githubusercontent.com/u/61578993?v=4" width="42;" alt="J.Chen"/></a>
|
||||
<a href="https://github.com/jldxpm" title="jldxjldx"><img src="https://avatars.githubusercontent.com/u/128905630?v=4" width="42;" alt="jldxjldx"/></a>
|
||||
<a href="https://github.com/joyfully-W" title="joyfully-W"><img src="https://avatars.githubusercontent.com/u/32212924?v=4" width="42;" alt="joyfully-W"/></a>
|
||||
<a href="https://github.com/jqzhao7" title="jqzhao"><img src="https://avatars.githubusercontent.com/u/54694535?v=4" width="42;" alt="jqzhao"/></a>
|
||||
<a href="https://github.com/jussker" title="jussker"><img src="https://avatars.githubusercontent.com/u/33953356?v=4" width="42;" alt="jussker"/></a>
|
||||
<a href="https://github.com/k983551019" title="Evan-k"><img src="https://avatars.githubusercontent.com/u/48147837?v=4" width="42;" alt="Evan-k"/></a>
|
||||
<a href="https://github.com/kcmeven" title="Evan-k"><img src="https://avatars.githubusercontent.com/u/48147837?v=4" width="42;" alt="Evan-k"/></a>
|
||||
<a href="https://github.com/kdxcxs" title="kdxcxs"><img src="https://avatars.githubusercontent.com/u/18746192?v=4" width="42;" alt="kdxcxs"/></a>
|
||||
<a href="https://github.com/kubeme" title="kubernetes for me"><img src="https://avatars.githubusercontent.com/u/16346220?v=4" width="42;" alt="kubernetes for me"/></a>
|
||||
<a href="https://github.com/larry-xue" title="yujian(larry) xue"><img src="https://avatars.githubusercontent.com/u/48818060?v=4" width="42;" alt="yujian(larry) xue"/></a>
|
||||
<a href="https://github.com/leauny" title="leauny"><img src="https://avatars.githubusercontent.com/u/42369176?v=4" width="42;" alt="leauny"/></a>
|
||||
<a href="https://github.com/liliangrong777" title="liliangrong777"><img src="https://avatars.githubusercontent.com/u/58727146?v=4" width="42;" alt="liliangrong777"/></a>
|
||||
<a href="https://github.com/lozhu20" title="lozhu"><img src="https://avatars.githubusercontent.com/u/44923922?v=4" width="42;" alt="lozhu"/></a>
|
||||
<a href="https://github.com/Zeng-qh" title="都一样"><img src="https://avatars.githubusercontent.com/u/40046415?v=4" width="42;" alt="都一样"/></a>
|
||||
<a href="https://github.com/yanxuplay" title="hupilan"><img src="https://avatars.githubusercontent.com/u/69749541?v=4" width="42;" alt="hupilan"/></a>
|
||||
<a href="https://github.com/hua03" title="hua03"><img src="https://avatars.githubusercontent.com/u/19561959?v=4" width="42;" alt="hua03"/></a>
|
||||
<a href="https://github.com/gzttcydxx" title="gzttcydxx"><img src="https://avatars.githubusercontent.com/u/50025185?v=4" width="42;" alt="gzttcydxx"/></a>
|
||||
<a href="https://github.com/sunny0826" title="Xudong Guo"><img src="https://avatars.githubusercontent.com/u/24563928?v=4" width="42;" alt="Xudong Guo"/></a>
|
||||
<a href="https://github.com/nodjoy" title="gowshwah"><img src="https://avatars.githubusercontent.com/u/145280043?v=4" width="42;" alt="gowshwah"/></a>
|
||||
<a href="https://github.com/godotc" title="godot42"><img src="https://avatars.githubusercontent.com/u/79260851?v=4" width="42;" alt="godot42"/></a>
|
||||
<a href="https://github.com/godot42x" title="godot42"><img src="https://avatars.githubusercontent.com/u/79260851?v=4" width="42;" alt="godot42"/></a>
|
||||
<a href="https://github.com/gi-b716" title="Gavin"><img src="https://avatars.githubusercontent.com/u/78394473?v=4" width="42;" alt="Gavin"/></a>
|
||||
<a href="https://github.com/fjqz177" title="fjqz177"><img src="https://avatars.githubusercontent.com/u/83070583?v=4" width="42;" alt="fjqz177"/></a>
|
||||
<a href="https://github.com/fenglielie" title="fenglielie (风猎猎)"><img src="https://avatars.githubusercontent.com/u/51266402?v=4" width="42;" alt="fenglielie (风猎猎)"/></a>
|
||||
<a href="https://github.com/fakevn" title="fakevn"><img src="https://avatars.githubusercontent.com/u/11464386?v=4" width="42;" alt="fakevn"/></a>
|
||||
<a href="https://github.com/emoji-share" title="emoji-share🤪"><img src="https://avatars.githubusercontent.com/u/192275245?v=4" width="42;" alt="emoji-share🤪"/></a>
|
||||
<a href="https://github.com/cool9203" title="cool9203"><img src="https://avatars.githubusercontent.com/u/29609607?v=4" width="42;" alt="cool9203"/></a>
|
||||
<a href="https://github.com/gaoxiaoduan" title="Coder Duan"><img src="https://avatars.githubusercontent.com/u/69953511?v=4" width="42;" alt="Coder Duan"/></a>
|
||||
<a href="https://github.com/lijc210" title="cizai"><img src="https://avatars.githubusercontent.com/u/10651081?v=4" width="42;" alt="cizai"/></a>
|
||||
<a href="https://github.com/chyok" title="chyok"><img src="https://avatars.githubusercontent.com/u/32629225?v=4" width="42;" alt="chyok"/></a>
|
||||
<a href="https://github.com/zlfyuan" title="bgbgPang"><img src="https://avatars.githubusercontent.com/u/19658018?v=4" width="42;" alt="bgbgPang"/></a>
|
||||
<a href="https://github.com/Lmmmmmm-bb" title="_lmmmmmm"><img src="https://avatars.githubusercontent.com/u/54026110?v=4" width="42;" alt="_lmmmmmm"/></a>
|
||||
<a href="https://github.com/Zeng-qh" title="都一样"><img src="https://avatars.githubusercontent.com/u/40046415?v=4" width="42;" alt="都一样"/></a>
|
||||
<a href="https://github.com/binscor" title="Zheng Nai Bin"><img src="https://avatars.githubusercontent.com/u/37325821?v=4" width="42;" alt="Zheng Nai Bin"/></a>
|
||||
<a href="https://github.com/binscor" title="binscor"><img src="https://avatars.githubusercontent.com/u/37325821?v=4" width="42;" alt="binscor"/></a>
|
||||
<a href="https://github.com/qwxingzhe" title="行者"><img src="https://avatars.githubusercontent.com/u/7071651?v=4" width="42;" alt="行者"/></a>
|
||||
<a href="https://github.com/lisheng741" title="芦荟柚子茶"><img src="https://avatars.githubusercontent.com/u/53617305?v=4" width="42;" alt="芦荟柚子茶"/></a>
|
||||
<a href="https://github.com/rainbowatcher" title="rainbowatcher"><img src="https://avatars.githubusercontent.com/u/42316353?v=4" width="42;" alt="rainbowatcher"/></a>
|
||||
<a href="https://github.com/HChenX" title="焕晨HChen"><img src="https://avatars.githubusercontent.com/u/123531821?v=4" width="42;" alt="焕晨HChen"/></a>
|
||||
<a href="https://github.com/LebranceBW" title="落叶乌龟"><img src="https://avatars.githubusercontent.com/u/19501514?v=4" width="42;" alt="落叶乌龟"/></a>
|
||||
<a href="https://github.com/sundakai" title="永恒"><img src="https://avatars.githubusercontent.com/u/21995250?v=4" width="42;" alt="永恒"/></a>
|
||||
<a href="https://github.com/LongYinStudio" title="敬培全"><img src="https://avatars.githubusercontent.com/u/42208852?v=4" width="42;" alt="敬培全"/></a>
|
||||
<a href="https://github.com/Fengjing95" title="小枫"><img src="https://avatars.githubusercontent.com/u/51731411?v=4" width="42;" alt="小枫"/></a>
|
||||
<a href="https://github.com/ZIDOUZI" title="子斗子"><img src="https://avatars.githubusercontent.com/u/53157536?v=4" width="42;" alt="子斗子"/></a>
|
||||
<a href="https://github.com/LuckyJie12" title="夜未央"><img src="https://avatars.githubusercontent.com/u/102901105?v=4" width="42;" alt="夜未央"/></a>
|
||||
<a href="https://github.com/kele527" title="吹衣轻飏"><img src="https://avatars.githubusercontent.com/u/345445?v=4" width="42;" alt="吹衣轻飏"/></a>
|
||||
<a href="https://github.com/lvzhenbo" title="无聊波波"><img src="https://avatars.githubusercontent.com/u/32427677?v=4" width="42;" alt="无聊波波"/></a>
|
||||
<a href="https://github.com/zxx457" title="zxx457"><img src="https://avatars.githubusercontent.com/u/114141362?v=4" width="42;" alt="zxx457"/></a>
|
||||
<a href="https://github.com/ChuwuYo" title="初五"><img src="https://avatars.githubusercontent.com/u/141227996?v=4" width="42;" alt="初五"/></a>
|
||||
<a href="https://github.com/zxx457" title="Xianxin Zeng"><img src="https://avatars.githubusercontent.com/u/114141362?v=4" width="42;" alt="Xianxin Zeng"/></a>
|
||||
<a href="https://github.com/zhouhw0306" title="zhouhw0306"><img src="https://avatars.githubusercontent.com/u/82752681?v=4" width="42;" alt="zhouhw0306"/></a>
|
||||
<a href="https://github.com/hiyms" title="yms"><img src="https://avatars.githubusercontent.com/u/84654050?v=4" width="42;" alt="yms"/></a>
|
||||
<a href="https://github.com/giteeking" title="xunjian"><img src="https://avatars.githubusercontent.com/u/166626162?v=4" width="42;" alt="xunjian"/></a>
|
||||
<a href="https://github.com/xing133" title="xing133"><img src="https://avatars.githubusercontent.com/u/5336490?v=4" width="42;" alt="xing133"/></a>
|
||||
<a href="https://github.com/wjjwkwindy" title="Hudson Alen"><img src="https://avatars.githubusercontent.com/u/9508591?v=4" width="42;" alt="Hudson Alen"/></a>
|
||||
<a href="https://github.com/wannima66" title="tmen"><img src="https://avatars.githubusercontent.com/u/26410255?v=4" width="42;" alt="tmen"/></a>
|
||||
<a href="https://github.com/swift-fs" title="swift-fs"><img src="https://avatars.githubusercontent.com/u/77133741?v=4" width="42;" alt="swift-fs"/></a>
|
||||
<a href="https://github.com/suyangzuo" title="suyangzuo"><img src="https://avatars.githubusercontent.com/u/50766353?v=4" width="42;" alt="suyangzuo"/></a>
|
||||
<a href="https://github.com/Mowmowj" title="nexo"><img src="https://avatars.githubusercontent.com/u/24759562?v=4" width="42;" alt="nexo"/></a>
|
||||
<a href="https://github.com/shanhai1024" title="shanhai1024"><img src="https://avatars.githubusercontent.com/u/56210461?v=4" width="42;" alt="shanhai1024"/></a>
|
||||
<a href="https://github.com/ri-fumo" title="ri-fumo"><img src="https://avatars.githubusercontent.com/u/190000479?v=4" width="42;" alt="ri-fumo"/></a>
|
||||
<a href="https://github.com/phygerr" title="phygerr"><img src="https://avatars.githubusercontent.com/u/42068889?v=4" width="42;" alt="phygerr"/></a>
|
||||
<a href="https://github.com/openapphub" title="openapphub"><img src="https://avatars.githubusercontent.com/u/175949671?v=4" width="42;" alt="openapphub"/></a>
|
||||
<a href="https://github.com/onewesong" title="onewesong"><img src="https://avatars.githubusercontent.com/u/17920822?v=4" width="42;" alt="onewesong"/></a>
|
||||
<a href="https://github.com/miclon-dev" title="miclon-dev"><img src="https://avatars.githubusercontent.com/u/111753685?v=4" width="42;" alt="miclon-dev"/></a>
|
||||
<a href="https://github.com/lykjjj" title="lykjjj"><img src="https://avatars.githubusercontent.com/u/58510058?v=4" width="42;" alt="lykjjj"/></a>
|
||||
<a href="https://github.com/lozhu20" title="lozhu"><img src="https://avatars.githubusercontent.com/u/44923922?v=4" width="42;" alt="lozhu"/></a>
|
||||
<a href="https://github.com/zlfyuan" title="bgbgPang"><img src="https://avatars.githubusercontent.com/u/19658018?v=4" width="42;" alt="bgbgPang"/></a>
|
||||
<a href="https://github.com/mariuszmichalowski" title="Mariusz Michalowski"><img src="https://avatars.githubusercontent.com/u/92091891?v=4" width="42;" alt="Mariusz Michalowski"/></a>
|
||||
<a href="https://github.com/isecret" title="Mao Wang"><img src="https://avatars.githubusercontent.com/u/15724152?v=4" width="42;" alt="Mao Wang"/></a>
|
||||
<a href="https://github.com/lvelvee" title="Lve Lvee"><img src="https://avatars.githubusercontent.com/u/25785753?v=4" width="42;" alt="Lve Lvee"/></a>
|
||||
<a href="https://github.com/likeadmin-likeshop" title="likeadmin通过管理后台-likeshop全开源商城"><img src="https://avatars.githubusercontent.com/u/77180968?v=4" width="42;" alt="likeadmin通过管理后台-likeshop全开源商城"/></a>
|
||||
@ -412,6 +474,7 @@ Quick Reference
|
||||
<a href="https://github.com/JavaZeroo" title="JavaZero"><img src="https://avatars.githubusercontent.com/u/71128095?v=4" width="42;" alt="JavaZero"/></a>
|
||||
<a href="https://github.com/Ding-Kyoma" title="HooinKyoma"><img src="https://avatars.githubusercontent.com/u/44542198?v=4" width="42;" alt="HooinKyoma"/></a>
|
||||
<a href="https://github.com/gongyeheyu" title="GONGYE Heyu"><img src="https://avatars.githubusercontent.com/u/85177605?v=4" width="42;" alt="GONGYE Heyu"/></a>
|
||||
<a href="https://github.com/Furry-Monster" title="Furry-Monster"><img src="https://avatars.githubusercontent.com/u/158404543?v=4" width="42;" alt="Furry-Monster"/></a>
|
||||
<a href="https://github.com/Fuku-L" title="Foozi"><img src="https://avatars.githubusercontent.com/u/38535911?v=4" width="42;" alt="Foozi"/></a>
|
||||
<a href="https://github.com/sirius-fan" title="Fan"><img src="https://avatars.githubusercontent.com/u/25720015?v=4" width="42;" alt="Fan"/></a>
|
||||
<a href="https://github.com/eeeeeio" title="EEEEE"><img src="https://avatars.githubusercontent.com/u/20723545?v=4" width="42;" alt="EEEEE"/></a>
|
||||
@ -431,12 +494,14 @@ Quick Reference
|
||||
<a href="https://github.com/dousha0w0" title="dousha0w0"><img src="https://avatars.githubusercontent.com/u/52566311?v=4" width="42;" alt="dousha0w0"/></a>
|
||||
<a href="https://github.com/JinchuanL" title="ANDY"><img src="https://avatars.githubusercontent.com/u/68026794?v=4" width="42;" alt="ANDY"/></a>
|
||||
<a href="https://github.com/13812700839" title="花殇"><img src="https://avatars.githubusercontent.com/u/58072506?v=4" width="42;" alt="花殇"/></a>
|
||||
<a href="https://github.com/Lmmmmmm-bb" title="_lmmmmmm"><img src="https://avatars.githubusercontent.com/u/54026110?v=4" width="42;" alt="_lmmmmmm"/></a>
|
||||
<a href="https://github.com/y52y" title="Zyj"><img src="https://avatars.githubusercontent.com/u/51304324?v=4" width="42;" alt="Zyj"/></a>
|
||||
<a href="https://github.com/Leaderzhangyi" title="ZinkCas"><img src="https://avatars.githubusercontent.com/u/46915666?v=4" width="42;" alt="ZinkCas"/></a>
|
||||
<a href="https://github.com/zhu0629" title="zhucong"><img src="https://avatars.githubusercontent.com/u/13188450?v=4" width="42;" alt="zhucong"/></a>
|
||||
<a href="https://github.com/yikuaibro" title="yikuaibro"><img src="https://avatars.githubusercontent.com/u/44493045?v=4" width="42;" alt="yikuaibro"/></a>
|
||||
<a href="https://github.com/HeZephyr" title="Zephyr He"><img src="https://avatars.githubusercontent.com/u/67893254?v=4" width="42;" alt="Zephyr He"/></a>
|
||||
<a href="https://github.com/dfshizhiqiang" title="Zech"><img src="https://avatars.githubusercontent.com/u/7030019?v=4" width="42;" alt="Zech"/></a>
|
||||
<a href="https://github.com/zkassing" title="You Kuan Zhang"><img src="https://avatars.githubusercontent.com/u/13414184?v=4" width="42;" alt="You Kuan Zhang"/></a>
|
||||
<a href="https://github.com/Yo-gurts" title="Yogurt"><img src="https://avatars.githubusercontent.com/u/44612841?v=4" width="42;" alt="Yogurt"/></a>
|
||||
<a href="https://github.com/hi-liyan" title="李李李"><img src="https://avatars.githubusercontent.com/u/40056492?v=4" width="42;" alt="李李李"/></a>
|
||||
<a href="https://github.com/BATTLEHAWK00" title="While True: learn()"><img src="https://avatars.githubusercontent.com/u/45313304?v=4" width="42;" alt="While True: learn()"/></a>
|
||||
@ -444,22 +509,25 @@ Quick Reference
|
||||
<a href="https://github.com/whb1998a" title="Wafer"><img src="https://avatars.githubusercontent.com/u/44045064?v=4" width="42;" alt="Wafer"/></a>
|
||||
<a href="https://github.com/YLee9527" title="Terry Young"><img src="https://avatars.githubusercontent.com/u/18697332?v=4" width="42;" alt="Terry Young"/></a>
|
||||
<a href="https://github.com/TRDSCSH" title="TRDSCSH"><img src="https://avatars.githubusercontent.com/u/125717891?v=4" width="42;" alt="TRDSCSH"/></a>
|
||||
<a href="https://github.com/Xiwin" title="Xiwin"><img src="https://avatars.githubusercontent.com/u/107191230?v=4" width="42;" alt="Xiwin"/></a>
|
||||
<a href="https://github.com/Xiwin" title="shawing"><img src="https://avatars.githubusercontent.com/u/107191230?v=4" width="42;" alt="shawing"/></a>
|
||||
<a href="https://github.com/DataEraserC" title="Sacabambaspis"><img src="https://avatars.githubusercontent.com/u/102341238?v=4" width="42;" alt="Sacabambaspis"/></a>
|
||||
<a href="https://github.com/qinxiongzhou" title="Ryan Zhou"><img src="https://avatars.githubusercontent.com/u/33239096?v=4" width="42;" alt="Ryan Zhou"/></a>
|
||||
<a href="https://github.com/RivailleF" title="RivailleF"><img src="https://avatars.githubusercontent.com/u/93083015?v=4" width="42;" alt="RivailleF"/></a>
|
||||
<a href="https://github.com/Qliangw" title="Qliangw"><img src="https://avatars.githubusercontent.com/u/22791711?v=4" width="42;" alt="Qliangw"/></a>
|
||||
<a href="https://github.com/QDelta" title="QDelta"><img src="https://avatars.githubusercontent.com/u/60222316?v=4" width="42;" alt="QDelta"/></a>
|
||||
<a href="https://github.com/sevenleave" title="Poirot Hercule"><img src="https://avatars.githubusercontent.com/u/24411140?v=4" width="42;" alt="Poirot Hercule"/></a>
|
||||
<a href="https://github.com/PipecraftNet" title="Pipecraft"><img src="https://avatars.githubusercontent.com/u/88728670?v=4" width="42;" alt="Pipecraft"/></a>
|
||||
<a href="https://github.com/Perzch" title="Perzch"><img src="https://avatars.githubusercontent.com/u/67987641?v=4" width="42;" alt="Perzch"/></a>
|
||||
<a href="https://github.com/PILIHU2022" title="PILIHU2022"><img src="https://avatars.githubusercontent.com/u/100511118?v=4" width="42;" alt="PILIHU2022"/></a>
|
||||
<a href="https://github.com/HanaNoryu" title="Noryu"><img src="https://avatars.githubusercontent.com/u/109856546?v=4" width="42;" alt="Noryu"/></a>
|
||||
<a href="https://github.com/Perzch" title="ZhaoChunhuan"><img src="https://avatars.githubusercontent.com/u/67987641?v=4" width="42;" alt="ZhaoChunhuan"/></a>
|
||||
<a href="https://github.com/PILIHU2022" title="Spark"><img src="https://avatars.githubusercontent.com/u/100511118?v=4" width="42;" alt="Spark"/></a>
|
||||
<a href="https://github.com/Noryu-01" title="Noryu"><img src="https://avatars.githubusercontent.com/u/109856546?v=4" width="42;" alt="Noryu"/></a>
|
||||
<a href="https://github.com/NianwenDan" title="NianwenDan"><img src="https://avatars.githubusercontent.com/u/74407127?v=4" width="42;" alt="NianwenDan"/></a>
|
||||
<a href="https://github.com/mo3et" title="Monet Lee"><img src="https://avatars.githubusercontent.com/u/34803812?v=4" width="42;" alt="Monet Lee"/></a>
|
||||
<a href="https://github.com/Moeyuuko" title="Moeyuuko"><img src="https://avatars.githubusercontent.com/u/14266681?v=4" width="42;" alt="Moeyuuko"/></a>
|
||||
<a href="https://github.com/malcolmyu" title="Minghao Yu"><img src="https://avatars.githubusercontent.com/u/3203962?v=4" width="42;" alt="Minghao Yu"/></a>
|
||||
<a href="https://github.com/Mieriki" title="Mieriki"><img src="https://avatars.githubusercontent.com/u/142009318?v=4" width="42;" alt="Mieriki"/></a>
|
||||
<a href="https://github.com/mariuszmichalowski" title="Mariusz Michalowski"><img src="https://avatars.githubusercontent.com/u/92091891?v=4" width="42;" alt="Mariusz Michalowski"/></a><!--GAMFC-END-->
|
||||
|
||||
|
||||
<!--GAMFC-END-->
|
||||
|
||||
[贡献者](https://github.com/jaywcjlove/reference/graphs/contributors)列表,由 [contributors](https://github.com/jaywcjlove/github-action-contributors) 根据提交次数的先后顺序自动生成
|
||||
<!--rehype:style=padding-top:1rem;-->
|
||||
@ -469,104 +537,125 @@ Quick Reference
|
||||
|
||||
由于中国国内访问,时常打不开,你可以访问下面镜像网站(国内打不开的不再收录)。推荐自己的[镜像网站](https://github.com/jaywcjlove/reference/discussions/206#discussion-4625735)
|
||||
|
||||
[dev.bi](https://dev.bi)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[docflow.cn](https://ref.docflow.cn)<!--rehype:target=_blank-->
|
||||
[quickref.cn](https://quickref.cn)<!--rehype:target=_blank-->
|
||||
[aibk.cn](https://quickref.aibk.cn)<!--rehype:target=_blank-->
|
||||
[ecdata.cn](http://ref.ecdata.cn)<!--rehype:target=_blank-->
|
||||
[quickref.hestudio.net](https://quickref.hestudio.net)<!--rehype:target=_blank&class=contributing&data-info=👆整点自动同步-->
|
||||
[qiubit.cc](http://ref.qiubit.cc)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[78888889.xyz](https://reference.78888889.xyz)<!--rehype:target=_blank-->
|
||||
[pusukeji.com](https://reference.pusukeji.com/)<!--rehype:target=_blank-->
|
||||
[magese.com](https://ref.magese.com)<!--rehype:target=_blank-->
|
||||
[doraemon.press](https://reference.doraemon.press/)<!--rehype:target=_blank-->
|
||||
[foreverlink.love](https://reference.foreverlink.love)<!--rehype:target=_blank-->
|
||||
[xod.cc](https://ref.xod.cc)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[jhao.me](http://reference.jhao.me/)<!--rehype:target=_blank-->
|
||||
[maoo.me](https://note.maoo.me)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[luckyits.com](https://ref.luckyits.com/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[9up.dev](https://devref.9up.dev)<!--rehype:target=_blank-->
|
||||
[ylmty.cc](https://docs.ylmty.cc)<!--rehype:target=_blank-->
|
||||
[mingming.dev](https://ref.mingming.dev)<!--rehype:target=_blank-->
|
||||
[itzcy.com](https://reference.itzcy.com/)<!--rehype:target=_blank-->
|
||||
[ref.v-ta.com](https://ref.v-ta.com)<!--rehype:target=_blank-->
|
||||
[eryajf.net](https://ref.eryajf.net/)<!--rehype:target=_blank-->
|
||||
[isteed.cc](https://ref.isteed.cc/)<!--rehype:target=_blank-->
|
||||
[666666.dev](https://cheat.666666.dev)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[srebro.cn](https://ref.srebro.cn)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[guoxudong.io](https://reference.guoxudong.io/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[moeyuuko.com](https://ref.moeyuuko.com/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[terryyoung.cn](http://ref.terryyoung.cn/)<!--rehype:target=_blank&class=contributing&data-info=👆每周一三五自动同步-->
|
||||
[quickref.binscor.top](https://quickref.binscor.top)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[srebro.cn](https://ref.srebro.cn)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[zone.id](https://cyref.zone.id/)<!--rehype:target=_blank-->
|
||||
[aibk.cn](https://quickref.aibk.cn)<!--rehype:target=_blank-->
|
||||
[docflow.cn](https://ref.docflow.cn)<!--rehype:target=_blank-->
|
||||
[quickref.hestudio.net](https://quickref.hestudio.net)<!--rehype:target=_blank&class=contributing&data-info=👆整点自动同步-->
|
||||
[qiubit.cc](http://ref.qiubit.cc)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[moeyuuko.com](https://ref.moeyuuko.com/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[haah.net](https://ref.haah.net)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[xiechengqi.top](https://ref.xiechengqi.top)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[ownit.top](https://memo.ownit.top)<!--rehype:target=_blank&data-info=👆每十分钟自动同步-->
|
||||
[666666.dev](https://cheat.666666.dev)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[mmoke.com](https://ref.mmoke.com)<!--rehype:target=_blank&data-info=👆每天自动同步-->
|
||||
[laoleng.vip](http://bbs.laoleng.vip/reference/)<!--rehype:target=_blank-->
|
||||
[dbyun.net](https://www.dbyun.net/reference/index.html)<!--rehype:target=_blank-->
|
||||
[if010.com](https://quickref.if010.com/)<!--rehype:target=_blank-->
|
||||
[isteed.cc](https://ref.isteed.cc/)<!--rehype:target=_blank-->
|
||||
[xushanxiang.com](https://xushanxiang.com/ref/)<!--rehype:target=_blank-->
|
||||
[surcode.cn](https://ref.surcode.cn)<!--rehype:target=_blank-->
|
||||
[cms.im](https://quickref.cms.im/)<!--rehype:target=_blank-->
|
||||
[eryajf.net](https://ref.eryajf.net/)<!--rehype:target=_blank-->
|
||||
[kjchmc.cn](https://ref.kjchmc.cn/)<!--rehype:target=_blank-->
|
||||
[quickreference.pages.dev](https://quickreference.pages.dev/)<!--rehype:target=_blank-->
|
||||
[btaw.cn](https://btaw.cn/qr)<!--rehype:target=_blank&class=contributing-->
|
||||
[lzw.me](https://lzw.me/x/reference/)<!--rehype:target=_blank-->
|
||||
[itcent.cn](https://code.itcent.cn/)<!--rehype:target=_blank-->
|
||||
[coolxy.top](https://refer.coolxy.top)<!--rehype:target=_blank-->
|
||||
[notes-bin.top](https://notes-bin.top)<!--rehype:target=_blank-->
|
||||
[lzzzt.cn](https://ref.lzzzt.cn)<!--rehype:target=_blank-->
|
||||
[kclouder.cn](https://www.kclouder.cn/reference)<!--rehype:target=_blank-->
|
||||
[longdada.me](https://ref.longdada.me)<!--rehype:target=_blank-->
|
||||
[xalaok.top](https://ref.xalaok.top)<!--rehype:target=_blank-->
|
||||
[chenze.cloud](https://quick.chenze.cloud)<!--rehype:target=_blank-->
|
||||
[ref.v-ta.com](https://ref.v-ta.com)<!--rehype:target=_blank-->
|
||||
[hao.kim](https://ref.hao.kim)<!--rehype:target=_blank-->
|
||||
[tool.sakura.vin](https://tool.sakura.vin/ref/)<!--rehype:target=_blank-->
|
||||
[chenchen.site](https://img.chenchen.site/reference/)<!--rehype:target=_blank-->
|
||||
[jgeek.cn](http://reference.jgeek.cn/)<!--rehype:target=_blank-->
|
||||
[itzcy.com](https://reference.itzcy.com/)<!--rehype:target=_blank-->
|
||||
[fifo.site](https://ref.fifo.site)<!--rehype:target=_blank-->
|
||||
[gaojs.com.cn](https://study.gaojs.com.cn)<!--rehype:target=_blank-->
|
||||
[15926.tech](https://ref.15926.tech)<!--rehype:target=_blank-->
|
||||
[jeffjade.com](https://codehelp.jeffjade.com)<!--rehype:target=_blank-->
|
||||
[okhk.net](https://ref.okhk.net)<!--rehype:target=_blank-->
|
||||
[wdft.com](https://ref.wdft.com)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[xiaopa.cc](https://reference.xiaopa.cc)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[zsccodelnc.cn](https://zsccodelnc.cn/coderef/)<!--rehype:target=_blank-->
|
||||
[chanlun.pro](https://ref.chanlun.pro)<!--rehype:target=_blank-->
|
||||
[wdft.com](https://ref.wdft.com)<!--rehype:target=_blank-->
|
||||
[likui.info](https://r.likui.info)<!--rehype:target=_blank-->
|
||||
[ruiange.work](https://code.ruiange.work/)<!--rehype:target=_blank-->
|
||||
[denganliang.com](https://ref.denganliang.com)<!--rehype:target=_blank-->
|
||||
[ivanz.cc](https://ref.ivanz.cc)<!--rehype:target=_blank-->
|
||||
[dev6.site](https://ref.dev6.site/)<!--rehype:target=_blank-->
|
||||
[mingming.dev](https://ref.mingming.dev)<!--rehype:target=_blank-->
|
||||
[zishu.me](https://ref.zishu.me/)<!--rehype:target=_blank-->
|
||||
[sucan2233.cn](http://reference.sucan2233.cn)<!--rehype:target=_blank-->
|
||||
[pages.dev](https://reference-bk9.pages.dev/)<!--rehype:target=_blank&class=contributing&data-info=👆自动实时同步-->
|
||||
[hrzweb.xyz](https://r.hrzweb.xyz)<!--rehype:target=_blank-->
|
||||
[bobh.cool](https://quickref.bobh.cool)<!--rehype:target=_blank-->
|
||||
[tangwudi.com](https://doc.tangwudi.com)<!--rehype:target=_blank-->
|
||||
[alomerry.com](https://ref.alomerry.com)<!--rehype:target=_blank-->
|
||||
[osz.icu](https://ref.osz.icu/)<!--rehype:target=_blank-->
|
||||
[ylmty.cc](https://docs.ylmty.cc)<!--rehype:target=_blank-->
|
||||
[kfele.asia](https://ref.kfele.asia/)<!--rehype:target=_blank-->
|
||||
[9up.dev](https://devref.9up.dev)<!--rehype:target=_blank-->
|
||||
[cizai.io](https://reference.cizai.io)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[docs.willxup.top](https://docs.willxup.top)<!--rehype:target=_blank-->
|
||||
[wangchunfei.com](https://ref.wangchunfei.com/)<!--rehype:target=_blank-->
|
||||
[object.cool](https://r.object.cool)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[luckyits.com](https://ref.luckyits.com/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[jeremyjone.com](https://ref.jeremyjone.com/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[object.cool](https://r.object.cool)<!--rehype:target=_blank-->
|
||||
[jeremyjone.com](https://ref.jeremyjone.com/)<!--rehype:target=_blank-->
|
||||
[gistudy.net](https://reference.gistudy.net/)<!--rehype:target=_blank-->
|
||||
[maoo.me](https://note.maoo.me)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[deyout.com](https://ref.deyout.com)<!--rehype:target=_blank-->
|
||||
[xod.cc](https://ref.xod.cc)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[const.team](https://reference.const.team)<!--rehype:target=_blank-->
|
||||
[jhao.me](http://reference.jhao.me/)<!--rehype:target=_blank-->
|
||||
[7yueee.cn](https://memo.7yueee.cn/)<!--rehype:target=_blank-->
|
||||
[liamng.top](https://refer.liamng.top/)<!--rehype:target=_blank-->
|
||||
[maisblog.cn](https://reference.maisblog.cn/)<!--rehype:target=_blank-->
|
||||
[ruochen.net](https://dev.ruochen.net/)<!--rehype:target=_blank-->
|
||||
[liamng.de](https://refer.liamng.de)<!--rehype:target=_blank-->
|
||||
[zcsk18.cn](https://reference.zcsk18.cn/)<!--rehype:target=_blank-->
|
||||
[doraemon.press](https://reference.doraemon.press/)<!--rehype:target=_blank-->
|
||||
[foreverlink.love](https://reference.foreverlink.love)<!--rehype:target=_blank-->
|
||||
[94vessel.com](https://book.94vessel.com)<!--rehype:target=_blank-->
|
||||
[hhxyrk.icu](http://hhxy.hhxyrk.icu/)<!--rehype:target=_blank&class=contributing&data-info=👆每天自动同步-->
|
||||
[hhxyrk.icu](http://hhxy.hhxyrk.icu/)<!--rehype:target=_blank-->
|
||||
[vhcffh.com](https://docs.vhcffh.com)<!--rehype:target=_blank-->
|
||||
[magese.com](https://ref.magese.com)<!--rehype:target=_blank-->
|
||||
[childish.vip](https://reference.childish.vip)<!--rehype:target=_blank-->
|
||||
[hackshen.com](https://reference.hackshen.com)<!--rehype:target=_blank-->
|
||||
[afetera.top](https://note.afetera.top)<!--rehype:target=_blank-->
|
||||
[trtuaazz.com](https://reference.trtuaazz.com)<!--rehype:target=_blank-->
|
||||
[anhaoyang.com](http://dev-doc.anhaoyang.com/)<!--rehype:target=_blank-->
|
||||
[xxcxx.lat](https://xxcxx.lat/)<!--rehype:target=_blank-->
|
||||
[fishlee.net](https://cr.fishlee.net/)<!--rehype:target=_blank-->
|
||||
[yunshangmanyou.com](https://quick.yunshangmanyou.com)<!--rehype:target=_blank-->
|
||||
[xiaokaixuan.com](https://xiaokaixuan.com/xkx/rq/index.html)<!--rehype:target=_blank-->
|
||||
[opzz.top](https://reference.opzz.top)<!--rehype:target=_blank-->
|
||||
[songbaixin.xin](https://home.songbaixin.xin:26009/)<!--rehype:target=_blank-->
|
||||
[dev.bi](https://dev.bi)<!--rehype:target=_blank-->
|
||||
[ecdata.cn](http://ref.ecdata.cn)<!--rehype:target=_blank-->
|
||||
[cnxiaobai.com](https://quickref.cnxiaobai.com)<!--rehype:target=_blank-->
|
||||
[web.app](https://reference-f1cf1.web.app)<!--rehype:target=_blank-->
|
||||
[OneNAS.space](https://ref.onenas.space)<!--rehype:target=_blank-->
|
||||
[leonus.cn](https://ref.leonus.cn/)<!--rehype:target=_blank-->
|
||||
[taotaome.com](http://www.taotaome.com/)<!--rehype:target=_blank-->
|
||||
[hurcaguari.top](https://help.hurcaguari.top)<!--rehype:target=_blank-->
|
||||
<!--rehype:class=home-card home-links-->
|
||||
|
||||
下面网站暂时飞走了
|
||||
|
||||
[lideshan.top](https://dev.lideshan.top/)<!--rehype:target=_blank-->
|
||||
[94vessel.com](https://book.94vessel.com)<!--rehype:target=_blank-->
|
||||
[7yueee.cn](https://memo.7yueee.cn/)<!--rehype:target=_blank-->
|
||||
[maisblog.cn](https://reference.maisblog.cn/)<!--rehype:target=_blank-->
|
||||
[ruochen.net](https://dev.ruochen.net/)<!--rehype:target=_blank-->
|
||||
[cizai.io](https://reference.cizai.io)<!--rehype:target=_blank-->
|
||||
[alomerry.com](https://ref.alomerry.com)<!--rehype:target=_blank-->
|
||||
[kfele.asia](https://ref.kfele.asia/)<!--rehype:target=_blank-->
|
||||
[pages.dev](https://reference-bk9.pages.dev/)<!--rehype:target=_blank-->
|
||||
[hrzweb.xyz](https://r.hrzweb.xyz)<!--rehype:target=_blank-->
|
||||
[zsccodelnc.cn](https://zsccodelnc.cn/coderef/)<!--rehype:target=_blank-->
|
||||
[jeffjade.com](https://codehelp.jeffjade.com)<!--rehype:target=_blank-->
|
||||
[chanlun.pro](https://ref.chanlun.pro)<!--rehype:target=_blank-->
|
||||
[dotcube.cc](https://reference.dotcube.cc)<!--rehype:target=_blank-->
|
||||
[fifo.site](https://ref.fifo.site)<!--rehype:target=_blank-->
|
||||
[longdada.me](https://ref.longdada.me)<!--rehype:target=_blank-->
|
||||
[chenze.cloud](https://quick.chenze.cloud)<!--rehype:target=_blank-->
|
||||
[lzzzt.cn](https://ref.lzzzt.cn)<!--rehype:target=_blank-->
|
||||
[notes-bin.top](https://notes-bin.top)<!--rehype:target=_blank-->
|
||||
[fifo.site](https://ref.fifo.site)<!--rehype:target=_blank-->
|
||||
[longdada.me](https://ref.longdada.me)<!--rehype:target=_blank-->
|
||||
[btaw.cn](https://btaw.cn/qr)<!--rehype:target=_blank-->
|
||||
[lzw.me](https://lzw.me/x/reference/)<!--rehype:target=_blank-->
|
||||
[kjchmc.cn](https://ref.kjchmc.cn/)<!--rehype:target=_blank-->
|
||||
[quickreference.pages.dev](https://quickreference.pages.dev/)<!--rehype:target=_blank-->
|
||||
[surcode.cn](https://ref.surcode.cn)<!--rehype:target=_blank-->
|
||||
[xushanxiang.com](https://xushanxiang.com/ref/)<!--rehype:target=_blank-->
|
||||
[mmoke.com](https://ref.mmoke.com)<!--rehype:target=_blank-->
|
||||
[dbyun.net](https://www.dbyun.net/reference/index.html)<!--rehype:target=_blank-->
|
||||
[xiechengqi.top](https://ref.xiechengqi.top)<!--rehype:target=_blank-->
|
||||
<!--rehype:class=home-card home-links-->
|
||||
|
||||
如果你有资源,可以很方便[部署 web 版](https://github.com/jaywcjlove/reference/issues/102#issue-1451649637),这非常简单,只需要克隆 [gh-pages](https://github.com/jaywcjlove/reference/tree/gh-pages) 分支代码到你的静态服务就可以了,还可以使用 [docker](https://hub.docker.com/r/wcjiang/reference) 快捷部署 web 版。
|
||||
@ -576,32 +665,7 @@ Quick Reference
|
||||
<!--rehype:wrap-style=text-align: center;max-width: 650px;margin: 0 auto;&class=home-title-reset-->
|
||||
|
||||
- [Quick Reference for VSCode](https://marketplace.visualstudio.com/items?itemName=jackiotyu.quick-reference) 由 [jackiotyu](https://github.com/jackiotyu/vscode-quick-reference) 提供
|
||||
|
||||
## 赞助支持
|
||||
<!--rehype:wrap-style=text-align: center;max-width: 650px;margin: 0 auto;&class=home-title-reset-->
|
||||
|
||||
非常感谢那些一直支持我开源工作的朋友们。如果您对我的工作感到满意,可以选择在[这里进行赞助](https://wangchujiang.com/#/sponsor)<!--rehype:target=_blank-->。如果目前经济上不宽裕,也可以通过下载并使用我开发的 [macOS 应用](https://wangchujiang.com/#/app)<!--rehype:target=_blank-->来支持我。以下是我个人开发的 macOS 应用:
|
||||
|
||||
<p style="display: inline-block">
|
||||
<a target="_blank" href="https://wangchujiang.com/daybar/" title="DayBar for macOS"><img align="center" alt="DayBar" height="50" width="50" src="https://github.com/user-attachments/assets/b67d4a2e-92e2-4d8c-8c6f-2a1eb3e2fa93"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/iconed/" title="Iconed for macOS"><img align="center" alt="Iconed" height="50" width="50" src="https://github.com/user-attachments/assets/8a35dc7b-4faf-4e2a-9311-f66d6844a896"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/rightmenu-master/" title="RightMenu Master for macOS"><img align="center" alt="RightMenu Master" height="50" width="50" src="https://github.com/user-attachments/assets/39a76541-71bf-4de7-a01c-c62f0557dff5"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/paste-quick/" title="Paste Quick for macOS"><img align="center" alt="Quick RSS" height="50" width="50" src="https://github.com/user-attachments/assets/bdaad5b7-9810-44ce-8f17-8410864465d2"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/quick-rss/" title="Quick RSS for macOS/iOS"><img align="center" alt="Quick RSS" height="50" width="50" src="https://github.com/user-attachments/assets/374106b5-a448-4d1d-9ccb-b04b6bc681ed"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/web-serve/" title="Web Serve for macOS"><img align="center" alt="Web Serve" height="50" width="50" src="https://github.com/user-attachments/assets/e1d9f76f-0f3d-4ba5-8a15-253ee173bb1c"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/copybook-generator/" title="Copybook Generator for macOS/iOS"><img align="center" alt="Copybook Generator" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/b90e42ff-158b-4534-82ca-5898fd0e8d73"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/devtutor/" title="DevTutor for macOS/iOS"><img align="center" alt="DevTutor for SwiftUI" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/f15c154d-0192-48eb-8e0e-9e245ffd974a"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/regex-mate/" title="RegexMate for macOS/iOS"><img align="center" alt="RegexMate" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/aabe5aa9-9a96-4390-8bed-c3e4023d0dea"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/time-passage/" title="Time Passage for macOS/iOS"><img align="center" alt="Time Passage" height="50" width="50" src="https://github.com/jaywcjlove/time-passage/assets/1680273/6f30e429-e6f3-4dbe-9921-a5effe2a05e9"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/IconizeFolder/" title="IconizeFolder for macOS"><img align="center" alt="Iconize Folder" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/fa9d8b9c-1e51-4ded-877c-fa5b21c47220"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/TextSoundSaver/" title="Textsound Saver for macOS/iOS"><img align="center" alt="Textsound Saver" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/0595e842-980b-4574-8891-a8ba853a08be"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/create-custom-symbols/" title="Create Custom Symbols for macOS"><img align="center" alt="Create Custom Symbols" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/8cd022ce-a3f1-4e89-b7c6-6fbd0d4db77c"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/DevHub/" title="DevHub for macOS"><img align="center" alt="DevHub" height="50" width="50" src="https://github.com/user-attachments/assets/4a44a4fd-67ce-430b-af0a-72f18feaa47d"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/ResumeRevise/" title="Resume Revise for macOS"><img align="center" alt="Resume Revise" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c9954a20-1905-48de-bdf8-d71837974aa2"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/palette-genius/" title="Palette Genius for macOS"><img align="center" alt="Palette Genius" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/27340413-d355-45b2-8f6f-6ac37682d957"></a>
|
||||
<a target="_blank" href="https://wangchujiang.com/symbol-scribe/" title="Symbol Scribe for macOS"><img align="center" alt="Symbol Scribe" height="50" width="50" src="https://github.com/jaywcjlove/jaywcjlove/assets/1680273/c7249f05-fa70-4def-a1e9-571d5f171fc9"></a>
|
||||
</p>
|
||||
<!--rehype:style=padding-top:1rem;max-width: 520px;margin: 0 auto;-->
|
||||
- [懒猫微服应用商店](https://appstore.lazycat.cloud/#/shop/detail/io.zeroc.app.quickref)
|
||||
|
||||
<!--rehype:ignore:start-->
|
||||
## 开发
|
||||
|
BIN
appicon/audioer.png
Executable file
After Width: | Height: | Size: 50 KiB |
BIN
appicon/copybook-generator.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
appicon/create-custom-symbols.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
appicon/daybar.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
appicon/devhub.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
appicon/devtutor.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
appicon/file-sentinel.png
Executable file
After Width: | Height: | Size: 17 KiB |
BIN
appicon/focus-cursor.png
Executable file
After Width: | Height: | Size: 92 KiB |
BIN
appicon/hosts-editor.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
appicon/iconed.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
appicon/iconize-folder.png
Normal file
After Width: | Height: | Size: 120 KiB |
BIN
appicon/key-clicker.png
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
appicon/mousio-hint.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
appicon/mousio.png
Executable file
After Width: | Height: | Size: 27 KiB |
BIN
appicon/musicer.png
Executable file
After Width: | Height: | Size: 128 KiB |
BIN
appicon/npmd.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
appicon/palette-genius.png
Normal file
After Width: | Height: | Size: 249 KiB |
BIN
appicon/paste-quick.png
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
appicon/quick-rss.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
appicon/regex-mate.png
Normal file
After Width: | Height: | Size: 314 KiB |
BIN
appicon/resume-revise.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
appicon/rightmenu-master.png
Normal file
After Width: | Height: | Size: 111 KiB |
BIN
appicon/symbol-scribe.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
appicon/textsound-saver.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
appicon/time-passage.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
appicon/videoer.png
Executable file
After Width: | Height: | Size: 52 KiB |
BIN
appicon/web-serve.png
Normal file
After Width: | Height: | Size: 141 KiB |
4
assets/time-zones.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<svg viewBox="0 0 1024 1024" fill="currentColor" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
|
||||
<path d="M945 412H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h256c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM811 548H689c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h122c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM477.3 322.5H434c-6.2 0-11.2 5-11.2 11.2v248c0 3.6 1.7 6.9 4.6 9l148.9 108.6c5 3.6 12 2.6 15.6-2.4l25.7-35.1v-.1c3.6-5 2.5-12-2.5-15.6l-126.7-91.6V333.7c.1-6.2-5-11.2-11.1-11.2z"/>
|
||||
<path d="M804.8 673.9H747c-5.6 0-10.9 2.9-13.9 7.7-12.7 20.1-27.5 38.7-44.5 55.7-29.3 29.3-63.4 52.3-101.3 68.3-39.3 16.6-81 25-124 25-43.1 0-84.8-8.4-124-25-37.9-16-72-39-101.3-68.3s-52.3-63.4-68.3-101.3c-16.6-39.2-25-80.9-25-124 0-43.1 8.4-84.7 25-124 16-37.9 39-72 68.3-101.3 29.3-29.3 63.4-52.3 101.3-68.3 39.2-16.6 81-25 124-25 43.1 0 84.8 8.4 124 25 37.9 16 72 39 101.3 68.3 17 17 31.8 35.6 44.5 55.7 3 4.8 8.3 7.7 13.9 7.7h57.8c6.9 0 11.3-7.2 8.2-13.3-65.2-129.7-197.4-214-345-215.7-216.1-2.7-395.6 174.2-396 390.1C71.6 727.5 246.9 903 463.2 903c149.5 0 283.9-84.6 349.8-215.8 3.1-6.1-1.4-13.3-8.2-13.3z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
3
assets/uv.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="41" height="41" viewBox="0 0 41 41" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M-5.28619e-06 0.168629L0.0843098 20.1685L0.151762 36.1683C0.161075 38.3774 1.95947 40.1607 4.16859 40.1514L20.1684 40.084L30.1684 40.0418L31.1852 40.0375C33.3877 40.0282 35.1683 38.2026 35.1683 36V36L37.0003 36L37.0003 39.9992L40.1683 39.9996L39.9996 -9.94653e-07L21.5998 0.0775689L21.6774 16.0185L21.6774 25.9998L20.0774 25.9998L18.3998 25.9998L18.4774 16.032L18.3998 0.0910593L-5.28619e-06 0.168629Z" fill="currentColor" />
|
||||
</svg>
|
After Width: | Height: | Size: 537 B |
41
assets/wails.svg
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="43px" height="25px" viewBox="0 0 43 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>wails</title>
|
||||
<defs>
|
||||
<linearGradient x1="-0.2%" y1="49.9996942%" x2="99.8%" y2="49.9996942%" id="linearGradient-1">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="57.4612403%" y1="49.999806%" x2="105.910853%" y2="49.999806%" id="linearGradient-2">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="37.15%" y1="49.9997381%" x2="137.15%" y2="49.9997381%" id="linearGradient-3">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="112.55%" y1="91.3957%" x2="32.3601%" y2="31.6497%" id="linearGradient-4">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="11.95%" y1="49.9998072%" x2="111.95%" y2="49.9998072%" id="linearGradient-5">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
<linearGradient x1="25.85%" y1="50.0000968%" x2="125.85%" y2="50.0000968%" id="linearGradient-6">
|
||||
<stop stop-color="#E33232" offset="0%"></stop>
|
||||
<stop stop-color="#6B000D" offset="100%"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="wails" transform="translate(-2, -16)">
|
||||
<polygon id="Path" fill="url(#linearGradient-1)" fill-rule="nonzero" transform="translate(7.0309, 29.4785) scale(-1, 1) rotate(1.5717) translate(-7.0309, -29.4785)" points="11.9494683 28.4327958 2.11242576 30.5241355 3.85520888 28.6651669"></polygon>
|
||||
<polygon id="Path" fill="url(#linearGradient-2)" fill-rule="nonzero" transform="translate(36.5284, 31.0714) scale(-1, 1) rotate(-8.5836) translate(-36.5284, -31.0714)" points="45.1336155 28.6949336 37.2037952 36.9916435 27.9231538 35.590792 37.9375746 32.7974273 30.7582105 31.7134351 40.7726313 28.9200704 33.6016056 27.8360782 43.2241214 25.1511127"></polygon>
|
||||
<polygon id="Path" fill="url(#linearGradient-3)" fill-rule="nonzero" transform="translate(26.7683, 36.8365) scale(-1, 1) rotate(-54.8194) translate(-26.7683, -36.8365)" points="31.562747 36.2208083 28.8692495 35.9745456 27.514805 43.5625128 20.0037949 32.9116542 28.8230753 30.1104168 33.532848 30.1104168"></polygon>
|
||||
<polygon id="Path" fill="url(#linearGradient-4)" fill-rule="nonzero" transform="translate(25.014, 20.7986) scale(-1, 1) rotate(128.5441) translate(-25.014, -20.7986)" points="21.9947129 16.4027699 26.1092974 16.4027699 27.4413571 19.4221053 28.0333837 25.1943641"></polygon>
|
||||
<polygon id="Path" fill="url(#linearGradient-5)" fill-rule="nonzero" transform="translate(36.3109, 20.727) scale(-1, 1) rotate(-14.7678) translate(-36.3109, -20.727)" points="38.8713907 20.875032 39.5522206 22.562306 33.0695361 18.8917449"></polygon>
|
||||
<polygon id="Path" fill="#FFFFFF" transform="translate(23.7731, 24.2307) rotate(-70.4489) translate(-23.7731, -24.2307)" points="23.1059371 22.8465329 24.9921646 25.6148058 22.5539813 23.7394335"></polygon>
|
||||
<polygon id="Path" fill="url(#linearGradient-6)" fill-rule="nonzero" transform="translate(21.3064, 24.9941) scale(-1, 1) rotate(-6.2086) translate(-21.3064, -24.9941)" points="19.70206 25.0327874 20.4365745 24.298273 35.7067436 25.4580326 32.0341713 28.4347491 22.8720698 27.6229174 19.70206 30.2130473 29.8692865 32.493908 26.4286662 35.2773312 17.3052234 32.1846388 13.7872857 26.2698644 6.90604496 14.7109263"></polygon>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
1
assets/zed.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="1em" width="1em"><path d="M141.744 113.262C126.017 113.262 113.262 126.008 113.262 141.744L113.262 768.331 56.3 768.331 56.3 141.744C56.3 94.554 94.554 56.3 141.744 56.3L904.837 56.3C942.903 56.3 961.959 102.315 935.044 129.23L465.054 599.228 597.444 599.228 597.444 540.481 654.406 540.481 654.406 613.469C654.406 637.061 635.279 656.191 611.684 656.191L408.088 656.191 310.184 754.091 754.091 754.091 754.091 398.075 811.053 398.075 811.053 754.091C811.053 785.553 785.55 811.053 754.091 811.053L253.221 811.053 153.537 910.737 882.256 910.737C897.983 910.737 910.737 897.992 910.737 882.256L910.737 255.669 967.7 255.669 967.7 882.256C967.7 929.446 929.446 967.7 882.256 967.7L119.163 967.7C81.096 967.7 62.041 921.685 88.956 894.769L557.166 426.556 426.556 426.556 426.556 483.519 369.594 483.519 369.594 412.316C369.594 388.723 388.721 369.594 412.316 369.594L614.128 369.594 713.813 269.909 269.909 269.909 269.909 625.925 212.947 625.925 212.947 269.909C212.947 238.446 238.446 212.947 269.909 212.947L770.775 212.947 870.46 113.262 141.744 113.262Z"></path></svg>
|
After Width: | Height: | Size: 1.1 KiB |
@ -616,3 +616,4 @@ Facebook 受众建议
|
||||
- [Awesome ChatGPT Prompts](https://github.com/f/awesome-chatgpt-prompts)
|
||||
- [原始资料](https://github.com/Fechin/reference/blob/main/source/_posts/chatgpt.md)
|
||||
- [ChatGPT](https://chatgpt.com/)
|
||||
- [Comprehensive Cheatsheet](https://github.com/bg-write/chatGPT-cheatsheet)
|
||||
|
@ -209,7 +209,7 @@ attrib命令可以列出或修改磁盘上文件的属性,
|
||||
`cliconfg` | SQL SERVER 客户端网络实用工具
|
||||
`cmstp` | 连接管理器配置文件安装程序
|
||||
`compmgmt.msc` | 计算机管理
|
||||
`omexp.msc` | 打开系统组件服务
|
||||
`comexp.msc` | 打开系统组件服务
|
||||
`control` | 控制面版
|
||||
|
||||
### 启动程序(二)
|
||||
|
154
docs/cpp.md
@ -30,7 +30,7 @@ Hello Quick Reference
|
||||
int number = 5; // 整数
|
||||
float f = 0.95; // 浮点数
|
||||
double PI = 3.14159; // 浮点数
|
||||
char yes = 'Y'; // 特点
|
||||
char yes = 'Y'; // 字符
|
||||
std::string s = "ME"; // 字符串(文本)
|
||||
bool isRight = true; // 布尔值
|
||||
// 常量
|
||||
@ -322,19 +322,19 @@ else
|
||||
| Example | Meaning |
|
||||
|----------------|------------------------|
|
||||
| `exp1 && exp2` | Both are true _(AND)_ |
|
||||
| `exp1 || exp2` | Either is true _(OR)_ |
|
||||
| <code>exp1 || exp2</code> | Either is true _(OR)_ |
|
||||
| `!exp` | `exp` is false _(NOT)_ |
|
||||
|
||||
#### 位运算符
|
||||
|
||||
| Operator | Description |
|
||||
|----------|-------------------------|
|
||||
| `a & b` | Binary AND |
|
||||
| `a | b` | Binary OR |
|
||||
| `a ^ b` | Binary XOR |
|
||||
| `a ~ b` | Binary One's Complement |
|
||||
| `a << b` | Binary Shift Left |
|
||||
| `a >> b` | Binary Shift Right |
|
||||
| 运算符 | 描述 |
|
||||
|--------|------|
|
||||
| `a & b` | 按位与 |
|
||||
| <code>a | b</code> | 按位或 |
|
||||
| `a ^ b` | 按位异或 |
|
||||
| `~a` | 按位取反 |
|
||||
| `a << b` | 左移 |
|
||||
| `a >> b` | 右移 |
|
||||
|
||||
### 三元运算符
|
||||
|
||||
@ -614,14 +614,14 @@ auto func = []() -> return_type { };
|
||||
```cpp
|
||||
int val1 = 123, val2 = 456;
|
||||
string str1("123"), str2(456);
|
||||
|
||||
|
||||
auto func1 = [=, &str1]() -> int
|
||||
{
|
||||
return val1 == std::stoi(str1)
|
||||
? val1 : val2;
|
||||
};
|
||||
|
||||
auto func2 = [&, val1]() -> int
|
||||
|
||||
auto func2 = [&, val1]() -> string
|
||||
{
|
||||
return str1 == std::to_string(val1)
|
||||
? str1 : str2;
|
||||
@ -646,6 +646,128 @@ std::for_each(vec.begin(), vec.end(),
|
||||
});
|
||||
```
|
||||
|
||||
## C++智能指针
|
||||
|
||||
### 智能指针基础
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
```cpp
|
||||
#include <memory>
|
||||
|
||||
// 创建独占所有权的指针
|
||||
std::unique_ptr<int> p1 = std::make_unique<int>(42);
|
||||
// 不能复制,只能移动
|
||||
std::unique_ptr<int> p2 = std::move(p1);
|
||||
// p1 现在为 nullptr
|
||||
|
||||
// 创建共享所有权的指针
|
||||
std::shared_ptr<int> sp1 = std::make_shared<int>(42);
|
||||
// 可以复制,引用计数增加
|
||||
std::shared_ptr<int> sp2 = sp1;
|
||||
// 获取引用计数
|
||||
std::cout << sp1.use_count(); // 输出: 2
|
||||
|
||||
// 创建弱引用,不增加引用计数
|
||||
std::weak_ptr<int> wp = sp1;
|
||||
```
|
||||
|
||||
### unique_ptr
|
||||
|
||||
```cpp
|
||||
// 创建方式1:使用 make_unique (C++14)
|
||||
auto p1 = std::make_unique<int>(42);
|
||||
|
||||
// 创建方式2:直接构造
|
||||
std::unique_ptr<int> p2(new int(42));
|
||||
|
||||
// 访问资源
|
||||
std::cout << *p1 << std::endl;
|
||||
*p1 = 100;
|
||||
|
||||
// 获取原始指针(不转移所有权)
|
||||
int* raw = p1.get();
|
||||
|
||||
// 释放所有权并返回原始指针
|
||||
int* released = p1.release();
|
||||
// p1 现在为 nullptr
|
||||
|
||||
// 替换管理的对象
|
||||
p1.reset(new int(50));
|
||||
```
|
||||
|
||||
### shared_ptr
|
||||
|
||||
```cpp
|
||||
// 创建方式1:使用 make_shared
|
||||
auto sp1 = std::make_shared<int>(42);
|
||||
|
||||
// 创建方式2:直接构造
|
||||
std::shared_ptr<int> sp2(new int(42));
|
||||
|
||||
// 复制和共享所有权
|
||||
std::shared_ptr<int> sp3 = sp1;
|
||||
std::cout << sp1.use_count(); // 输出: 2
|
||||
|
||||
// 访问资源
|
||||
std::cout << *sp1 << std::endl;
|
||||
*sp1 = 100; // 所有指向该资源的shared_ptr都会看到这个修改
|
||||
|
||||
// 重置指针
|
||||
sp1.reset(); // sp1变为nullptr,引用计数减1
|
||||
```
|
||||
|
||||
### weak_ptr
|
||||
|
||||
```cpp
|
||||
std::shared_ptr<int> sp = std::make_shared<int>(42);
|
||||
std::weak_ptr<int> wp = sp;
|
||||
|
||||
// 检查引用对象是否存在
|
||||
if (auto locked = wp.lock()) {
|
||||
std::cout << *locked << std::endl; // 输出: 42
|
||||
} else {
|
||||
std::cout << "对象已被销毁" << std::endl;
|
||||
}
|
||||
|
||||
// 检查是否过期
|
||||
bool is_expired = wp.expired(); // false
|
||||
|
||||
// 获取引用计数
|
||||
std::cout << wp.use_count(); // 输出: 1
|
||||
|
||||
// 当所有shared_ptr都被销毁时
|
||||
sp.reset();
|
||||
if (wp.expired()) {
|
||||
std::cout << "对象已被销毁" << std::endl;
|
||||
}
|
||||
```
|
||||
|
||||
### 循环引用问题
|
||||
|
||||
```cpp
|
||||
struct Node {
|
||||
std::string name;
|
||||
std::shared_ptr<Node> next;
|
||||
// 使用weak_ptr避免循环引用
|
||||
std::weak_ptr<Node> parent;
|
||||
|
||||
Node(const std::string& n) : name(n) {}
|
||||
~Node() { std::cout << "销毁: " << name << std::endl; }
|
||||
};
|
||||
|
||||
// 创建循环引用
|
||||
void createCycle() {
|
||||
auto node1 = std::make_shared<Node>("Node1");
|
||||
auto node2 = std::make_shared<Node>("Node2");
|
||||
|
||||
node1->next = node2;
|
||||
node2->parent = node1; // 使用weak_ptr避免循环引用
|
||||
|
||||
// 函数结束时,node1和node2会被正确销毁
|
||||
// 如果parent也是shared_ptr,则会造成内存泄漏
|
||||
}
|
||||
```
|
||||
|
||||
## C++多线程
|
||||
|
||||
### 多线程介绍
|
||||
@ -926,7 +1048,7 @@ int val = result.get();
|
||||
extern double foo(int val) {}
|
||||
|
||||
std::future<double> result =
|
||||
async(foo, 5);
|
||||
std::async(foo, 5);
|
||||
|
||||
//返回值类型
|
||||
std::future_status status;
|
||||
@ -935,7 +1057,7 @@ status = result.wait_for(
|
||||
std::chrono::seconds(1)
|
||||
);
|
||||
// 等待到某一时间点
|
||||
status = result.wait_for(
|
||||
status = result.wait_until(
|
||||
std::chrono::now() +
|
||||
std::chrono::seconds(1)
|
||||
);
|
||||
@ -1108,7 +1230,7 @@ C++ 预处理器
|
||||
|
||||
```cpp
|
||||
#ifdef DEBUG
|
||||
console.log('hi');
|
||||
std::cout << "hi" << std::endl;
|
||||
#elif defined VERBOSE
|
||||
...
|
||||
#else
|
||||
|
255
docs/cs.md
@ -1321,6 +1321,261 @@ var result = students
|
||||
["Charlie","Damon","David"]
|
||||
```
|
||||
|
||||
事件和委托
|
||||
----
|
||||
|
||||
### 介绍
|
||||
|
||||
在 .NET 中,委托支持后期绑定,允许调用方在运行时提供方法的一部分,而不是在创建委托时定义完整算法,从而增强了灵活性和扩展性。
|
||||
|
||||
### 多播委托
|
||||
<!--rehype:wrap-class=col-span-2 row-span-6-->
|
||||
|
||||
我们预先提供这些可用的方法
|
||||
|
||||
```cs
|
||||
public void Sub(int x, int y)
|
||||
{
|
||||
Console.WriteLine("x-y=" + (x - y));
|
||||
}
|
||||
|
||||
public void Mul(int x, int y)
|
||||
{
|
||||
Console.WriteLine("x*y=" + (x * y));
|
||||
}
|
||||
```
|
||||
|
||||
定义一个委托类型
|
||||
|
||||
```cs
|
||||
public delegate void MyDelegate3(int x, int y);
|
||||
```
|
||||
|
||||
定义一个方法,接收委托作为参数
|
||||
|
||||
```cs
|
||||
public void MyMethod3(int x, int y, MyDelegate3 myDelegate)
|
||||
{
|
||||
myDelegate(x, y);
|
||||
}
|
||||
```
|
||||
|
||||
定义另一个委托类型
|
||||
|
||||
```cs
|
||||
public delegate void MyDelegate4(int x, int y);
|
||||
```
|
||||
|
||||
定义一个方法,接收委托作为参数
|
||||
|
||||
```cs
|
||||
public void MyMethod4(int x, int y, MyDelegate4 myDelegate)
|
||||
{
|
||||
myDelegate(x, y);
|
||||
}
|
||||
```
|
||||
|
||||
定义一个方法,接收委托作为参数
|
||||
|
||||
```cs
|
||||
public void MyMethod5(int x, int y, MyDelegate3 myDelegate, MyDelegate4 myDelegate2)
|
||||
{
|
||||
myDelegate(x, y);
|
||||
myDelegate2(x, y);
|
||||
}
|
||||
```
|
||||
|
||||
#### 多播委托
|
||||
|
||||
```cs
|
||||
MyDelegate3 myDelegate31 = new MyDelegate3(Sub);
|
||||
MyDelegate4 myDelegate41 = new MyDelegate4(Mul);
|
||||
```
|
||||
|
||||
调用 MyMethod3 方法,并传入委托作为参数
|
||||
|
||||
```cs
|
||||
MyMethod3(10, 5, myDelegate31);
|
||||
// output:
|
||||
// x-y=5
|
||||
```
|
||||
|
||||
调用 MyMethod4 方法,并传入委托作为参数
|
||||
|
||||
```cs
|
||||
MyMethod4(10, 5, myDelegate41);
|
||||
// output:
|
||||
// x*y=50
|
||||
```
|
||||
|
||||
调用 MyMethod5 方法,并传入委托作为参数
|
||||
|
||||
```cs
|
||||
MyMethod5(10, 5, myDelegate31, myDelegate41);
|
||||
// output:
|
||||
// x-y=5
|
||||
// x*y=50
|
||||
```
|
||||
|
||||
### 定义委托类型
|
||||
|
||||
使用 `delegate` 关键字定义委托
|
||||
|
||||
```cs
|
||||
public delegate void MyDelegate(
|
||||
int x, string y
|
||||
);
|
||||
```
|
||||
|
||||
上述委托对应的函数实现应该类似:
|
||||
|
||||
```cs
|
||||
public void MyMethod(int x, string y);
|
||||
```
|
||||
|
||||
### 创建委托实例
|
||||
|
||||
```cs
|
||||
// 创建委托实例
|
||||
MyDelegate myDelegate = new MyDelegate(
|
||||
MyMethod
|
||||
);
|
||||
```
|
||||
|
||||
### 调用委托
|
||||
|
||||
```cs
|
||||
// 调用委托,传入对应类型的参数
|
||||
myDelegate(10, "Hello");
|
||||
```
|
||||
|
||||
### 委托作为参数
|
||||
|
||||
```cs
|
||||
// 定义另一个委托类型
|
||||
public delegate int MyDelegate2(
|
||||
int x, int y
|
||||
);
|
||||
|
||||
// 定义一个方法,接收委托作为参数
|
||||
public int MyMethod2(
|
||||
int x, int y, MyDelegate2 myDelegate
|
||||
)
|
||||
{
|
||||
return myDelegate(x, y);
|
||||
}
|
||||
|
||||
// 创建委托实例
|
||||
MyDelegate2 myDelegate2 = new MyDelegate2(
|
||||
Add
|
||||
);
|
||||
|
||||
// 调用 MyMethod2 方法,并传入委托作为参数
|
||||
int result = MyMethod2(
|
||||
10, 20, myDelegate2
|
||||
);
|
||||
```
|
||||
|
||||
### Action 委托
|
||||
|
||||
Action 委托的变体最多可包含 16 个参数,且返回类型为 `void`
|
||||
|
||||
```cs
|
||||
// 创建一个Action
|
||||
public Action<int, string> myAction;
|
||||
|
||||
// 给Action赋值
|
||||
myAction = (x, y) => Console.WriteLine(
|
||||
"x+y=" + (x + y)
|
||||
);
|
||||
|
||||
// 直接调用Action
|
||||
myAction(10, "Hello");
|
||||
|
||||
// 使用 null 合并运算符调用Action
|
||||
myAction?.Invoke(10, "Hello");
|
||||
```
|
||||
|
||||
### Func 委托
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
Func 委托的变体可包含最多16个参数,返回类型可以是任意类型 T
|
||||
|
||||
```cs
|
||||
// 创建一个Func,最后一个参数是返回类型
|
||||
public Func<int, int, string> myFunc;
|
||||
|
||||
// 给Func赋值
|
||||
myFunc = (x, y) => "x+y=" + (x + y);
|
||||
|
||||
// 调用Func
|
||||
string result = myFunc(10, 20);
|
||||
|
||||
// 使用 null 合并运算符调用Func
|
||||
string result2 = myFunc?.Invoke(10, 20);
|
||||
```
|
||||
|
||||
事件与委托类似,都是后期绑定机制。实际上,事件是建立在委托基础上的一种语言支持,它是 C# 对委托的封装,提供了更面向对象的编程模型,并实现了观察者模式。
|
||||
|
||||
### 事件定义
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
```cs
|
||||
// 使用 event 关键字定义事件
|
||||
public event EventHandler<EventArgs> MyEvent;
|
||||
```
|
||||
|
||||
### 事件订阅
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
我们实现定义一个方法作为事件处理器,并订阅事件
|
||||
|
||||
```cs
|
||||
public void MyEventHandler(object sender, EventArgs e)
|
||||
{
|
||||
// 事件处理逻辑
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
```cs
|
||||
// 订阅事件
|
||||
MyEvent += MyEventHandler;
|
||||
|
||||
// 取消订阅事件
|
||||
MyEvent -= MyEventHandler;
|
||||
```
|
||||
|
||||
### 事件触发
|
||||
|
||||
```cs
|
||||
// 触发事件
|
||||
MyEvent?.Invoke(this, new EventArgs());
|
||||
```
|
||||
|
||||
### 事件参数
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
```cs
|
||||
// 定义事件参数
|
||||
public class MyEventArgs : EventArgs
|
||||
{
|
||||
public int Value { get; set; }
|
||||
}
|
||||
|
||||
// 新的Handler
|
||||
public void MyEventHandler2(object sender, MyEventArgs e)
|
||||
{
|
||||
// 事件处理逻辑,这里可以获取到事件参数
|
||||
Console.WriteLine("事件参数的值:" + e.Value);
|
||||
}
|
||||
|
||||
// 触发事件
|
||||
// output:
|
||||
// 事件参数的值:10
|
||||
MyEvent?.Invoke(this, new MyEventArgs { Value = 10 });
|
||||
```
|
||||
|
||||
语法糖
|
||||
----
|
||||
|
||||
|
@ -692,7 +692,7 @@ $ docker run -d --name portainer \
|
||||
--restart=always \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-v $HOME/portainer:/data \
|
||||
portainer/portainer-ee:latest
|
||||
portainer/portainer-ce:latest
|
||||
```
|
||||
|
||||
### Nginx
|
||||
|
125
docs/dotnet-cli.md
Normal file
@ -0,0 +1,125 @@
|
||||
.NET CLI 备忘清单
|
||||
===
|
||||
|
||||
本备忘单总结了 [.NET](https://learn.microsoft.com/zh-cn/dotnet/core/tools/) 命令行接口 (CLI) 工具,以供快速参考
|
||||
|
||||
.NET CLI 备忘清单
|
||||
---
|
||||
<!--rehype:style=display: none;-->
|
||||
|
||||
### 介绍
|
||||
|
||||
`.NET CLI` 命令由 **驱动程序(`dotnet`)**、**命令**、**参数** 和 **选项** 组成。典型流程如下:
|
||||
|
||||
```bash
|
||||
# 创建控制台应用
|
||||
dotnet new console
|
||||
# 构建并指定输出目录
|
||||
dotnet build --output ./build_output
|
||||
# 运行构建结果
|
||||
dotnet ./build_output/my_app.dll
|
||||
```
|
||||
|
||||
### 基本命令
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `new` | 创建新项目或文件模板 | `dotnet new console` |
|
||||
| `restore` | 还原项目依赖项 | `dotnet restore` |
|
||||
| `build` | 构建项目 | `dotnet build` |
|
||||
| `publish` | 发布应用以部署 | `dotnet publish -c Release -o ./publish`|
|
||||
| `run` | 运行项目 | `dotnet run` |
|
||||
| `test` | 运行测试(使用 xUnit/NUnit 等) | `dotnet test` |
|
||||
| `vstest` | 运行已编译的测试程序集 | `dotnet vstest ./bin/Debug/test.dll` |
|
||||
| `pack` | 打包为 NuGet 包 | `dotnet pack` |
|
||||
| `migrate` | 迁移旧版项目(已弃用) | `dotnet migrate` |
|
||||
| `clean` | 清理构建输出 | `dotnet clean` |
|
||||
| `sln` | 管理 `.sln` 解决方案文件 | `dotnet sln add ./MyApp/MyApp.csproj` |
|
||||
| `help` | 显示帮助信息 | `dotnet help build` |
|
||||
| `store` | 预编译和缓存程序集(高级用法) | `dotnet store` |
|
||||
| `watch` | 监视文件更改并自动运行命令 | `dotnet watch run` |
|
||||
| `format` | 格式化代码(自 .NET 6 起支持) | `dotnet format` |
|
||||
<!--rehype:className=left-align -->
|
||||
|
||||
### 项目修改命令
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `package add` | 添加 NuGet 包依赖 | `dotnet add package Newtonsoft.Json` |
|
||||
| `package list` | 列出项目中的所有包依赖 | `dotnet list package` |
|
||||
| `package remove` | 移除 NuGet 包依赖 | `dotnet remove package Newtonsoft.Json` |
|
||||
| `package search` | 搜索 NuGet 包 | `dotnet search package Newtonsoft.Json` |
|
||||
| `reference add` | 添加项目引用(*.csproj) | `dotnet add reference ../CommonLib/CommonLib.csproj` |
|
||||
| `reference list` | 列出当前项目引用的其他项目 | `dotnet list reference` |
|
||||
| `reference remove` | 移除项目引用 | `dotnet remove reference ../CommonLib/CommonLib.csproj` |
|
||||
<!--rehype:className=left-align style-list-arrow-->
|
||||
|
||||
### 工作负荷管理命令
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `workload` | 顶级命令,显示所有 workload 子命令 | `dotnet workload --help` |
|
||||
| `workload install` | 安装指定的工作负荷(如 MAUI、Web 等) | `dotnet workload install maui` |
|
||||
| `workload uninstall` | 卸载指定的工作负荷 | `dotnet workload uninstall maui` |
|
||||
| `workload update` | 更新所有已安装的工作负荷 | `dotnet workload update` |
|
||||
| `workload list` | 显示当前已安装的工作负荷 | `dotnet workload list` |
|
||||
| `workload restore` | 还原项目所需的工作负荷 | `dotnet workload restore` |
|
||||
| `workload search` | 搜索可用的工作负荷 | `dotnet workload search` |
|
||||
| `workload repair` | 修复已安装的工作负荷 | `dotnet workload repair` |
|
||||
| `workload config` | 配置自定义源、缓存路径等(.NET 8.0.400+) | `dotnet workload config list` |
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
### NuGet 命令
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `nuget delete` | 从源中删除一个 NuGet 包 | `dotnet nuget delete MyLib 1.0.0 -s https://api.nuget.org/v3/index.json`|
|
||||
| `nuget locals` | 清理 NuGet 缓存 | `dotnet nuget locals all --clear` |
|
||||
| `nuget push` | 将 NuGet 包推送到服务器(如 nuget.org) | `dotnet nuget push MyLib.1.0.0.nupkg -k API_KEY -s https://api.nuget.org/v3/index.json` |
|
||||
| `nuget add source` | 添加一个新的 NuGet 源 | `dotnet nuget add source https://myserver/index.json -n MySource` |
|
||||
| `nuget disable source` | 禁用一个现有的 NuGet 源 | `dotnet nuget disable source MySource` |
|
||||
| `nuget enable source` | 启用已禁用的 NuGet 源 | `dotnet nuget enable source MySource` |
|
||||
| `nuget list source` | 列出所有已配置的 NuGet 源 | `dotnet nuget list source` |
|
||||
| `nuget remove source` | 移除已配置的 NuGet 源 | `dotnet nuget remove source MySource` |
|
||||
| `nuget update source` | 更新现有 NuGet 源信息 | `dotnet nuget update source MySource -s https://new-url` |
|
||||
| `nuget verify` | 验证 NuGet 包签名(.NET 5+) | `dotnet nuget verify MyLib.1.0.0.nupkg` |
|
||||
| `nuget trust` | 管理受信任的签名证书(.NET 5+) | `dotnet nuget trust list` |
|
||||
| `nuget sign` | 对 NuGet 包进行签名(.NET 6+) | `dotnet nuget sign MyLib.1.0.0.nupkg --certificate-path cert.pfx` |
|
||||
| `package search` | 搜索 NuGet 包(.NET 8.0.2xx+) | `dotnet package search Newtonsoft.Json` |
|
||||
| `nuget why` | 显示为什么某个包被安装(.NET 8.0.4xx+)| `dotnet nuget why Newtonsoft.Json` |
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
### 高级命令
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `sdk check` | 显示可用的 SDK/运行时版本,并检测更新 | `dotnet sdk check` |
|
||||
| `msbuild` | 使用 MSBuild 构建项目(提供更多构建自定义性) | `dotnet msbuild /t:Clean;Build /p:Configuration=Release` |
|
||||
| `build-server` | 管理后端构建服务器(如清理缓存、关闭等) | `dotnet build-server shutdown` |
|
||||
| `dev-certs` | 管理开发 HTTPS 证书 | `dotnet dev-certs https --trust` |
|
||||
| `dotnet install script` | 获取可安装指定版本 .NET 的脚本(Linux/macOS) | `curl -sSL https://dot.net/v1/dotnet-install.sh \| bash` |
|
||||
<!--rehype:className=left-align style-list-arrow-->
|
||||
|
||||
### 工具管理命令
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
| 命令 | 说明 | 示例 |
|
||||
|--------------|--------------|--------------|
|
||||
| `tool install` | 安装 .NET 工具(本地或全局) | `dotnet tool install -g dotnet-ef` |
|
||||
| `tool list` | 列出已安装的工具 | `dotnet tool list -g` |
|
||||
| `tool update` | 更新指定工具 | `dotnet tool update -g dotnet-ef` |
|
||||
| `tool restore` | 恢复项目中定义的工具(基于 manifest) | `dotnet tool restore` |
|
||||
| `tool run` | 运行本地安装的工具 | `dotnet tool run my-tool` |
|
||||
| `tool uninstall` | 卸载已安装的工具 | `dotnet tool uninstall -g dotnet-ef` |
|
||||
| `tool search` | 搜索 NuGet 上可用的工具 | `dotnet tool search dotnet-ef` |
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
另请参阅
|
||||
---
|
||||
|
||||
- [dotnet/sdk GitHub 存储库](https://github.com/dotnet/sdk/) _(github.com/dotnet)_
|
||||
- [.NET 安装指南](https://learn.microsoft.com/zh-cn/dotnet/core/install/windows) _(learn.microsoft.com)_
|
48
docs/git.md
@ -1287,6 +1287,54 @@ Conventional Commmits
|
||||
| `test:` | 添加测试代码或修正已有的测试 |
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
patch 补丁的使用
|
||||
----
|
||||
|
||||
### 简单创建
|
||||
|
||||
```bash
|
||||
$ git diff commit_id > my.patch
|
||||
```
|
||||
|
||||
### 简单应用
|
||||
|
||||
- **检查**补丁
|
||||
|
||||
```bash
|
||||
# 检查下这个补丁能否被正常应用
|
||||
$ git apply --check path/to/my.patch
|
||||
```
|
||||
|
||||
- **使用**补丁
|
||||
|
||||
```
|
||||
# 检查通过使用该补丁
|
||||
$ git apply < path/to/my.patch
|
||||
```
|
||||
|
||||
- 若有冲突则**解决**
|
||||
|
||||
```
|
||||
# 检查不通过可以自动合入patch不冲突的代码,同时保留冲突部分
|
||||
$ git apply --reject path/to/my.patch
|
||||
```
|
||||
|
||||
<!--rehype:className=style-timeline-->
|
||||
|
||||
### Email patch 方式
|
||||
|
||||
```bash
|
||||
# 创建指定 commit sha1 id 之前的 n 次提交补丁
|
||||
$ git format-patch commit_id -n
|
||||
# 创建 300f59991f22826c8478f0c019387c4ca815b085 这个提交的patch
|
||||
$ git format-patch commit_id -1
|
||||
# 提取当前分支最上面的3次提交,生成补丁
|
||||
$ git format-patch -3
|
||||
# 发送者可使用 git-send-email 发送 git format-patch 的结果给接收者
|
||||
# 接收者保存邮件到文件 email.txt,然后应用补丁创建一个提交,会自动包含作者的信息
|
||||
$ git am < email.txt
|
||||
```
|
||||
|
||||
另见
|
||||
---
|
||||
|
||||
|
@ -851,6 +851,54 @@ ch <- 3
|
||||
|
||||
参见:[缓冲通道](https://tour.golang.org/concurrency/3)
|
||||
|
||||
### Context
|
||||
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 创建根 context
|
||||
ctx := context.Background() // 空 context,通常作为根 context
|
||||
todo := context.TODO() // 当不确定使用哪个 context 时使用
|
||||
|
||||
// 创建带取消功能的 context
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel() // 确保所有路径都调用取消函数
|
||||
|
||||
// 创建带超时的 context
|
||||
ctx, cancel = context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||
defer cancel()
|
||||
|
||||
// 创建带截止时间的 context
|
||||
deadline := time.Now().Add(200 * time.Millisecond)
|
||||
ctx, cancel = context.WithDeadline(context.Background(), deadline)
|
||||
defer cancel()
|
||||
|
||||
// 创建带值的 context
|
||||
ctx = context.WithValue(context.Background(), "key", "value")
|
||||
|
||||
// 从 context 获取值
|
||||
value := ctx.Value("key")
|
||||
fmt.Println(value)
|
||||
|
||||
// 检查 context 是否已取消
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
fmt.Println("Context canceled:", ctx.Err())
|
||||
default:
|
||||
fmt.Println("Context still valid")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Golang 错误控制
|
||||
--------
|
||||
|
||||
|
268
docs/java.md
@ -349,16 +349,16 @@ for (int a: arr) {
|
||||
### 二维数组 Multidimensional Arrays
|
||||
|
||||
```java
|
||||
int[][] matrix = { {1, 2, 3}, {4, 5} };
|
||||
int[][] matrix = {{1, 2, 3}, {4, 5}, {6}};
|
||||
int x = matrix[1][0]; // 4
|
||||
// [[1, 2, 3], [4, 5]]
|
||||
Arrays.deepToString(matrix)
|
||||
for (int i = 0; i < a.length; ++i) {
|
||||
for(int j = 0; j < a[i].length; ++j) {
|
||||
System.out.println(a[i][j]);
|
||||
}
|
||||
System.out.println(Arrays.deepToString(matrix));
|
||||
// 输出: [[1, 2, 3], [4, 5], [6]]
|
||||
for (int i = 0; i < matrix.length; ++i) {
|
||||
for(int j = 0; j < matrix[i].length; ++j) {
|
||||
System.out.println(matrix[i][j]);
|
||||
}
|
||||
}
|
||||
// 输出: 1 2 3 4 5 6 7
|
||||
// 输出: 1 2 3 4 5 6
|
||||
```
|
||||
|
||||
### 排序 Sort
|
||||
@ -563,7 +563,7 @@ do {
|
||||
// 输出: 01234
|
||||
```
|
||||
|
||||
### 继续声明
|
||||
### 继续语句
|
||||
|
||||
```java
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@ -572,7 +572,7 @@ for (int i = 0; i < 5; i++) {
|
||||
}
|
||||
System.out.print(i);
|
||||
}
|
||||
// 输出: 01245
|
||||
// 输出: 0124
|
||||
```
|
||||
|
||||
### 中断语句
|
||||
@ -587,6 +587,254 @@ for (int i = 0; i < 5; i++) {
|
||||
// 输出: 0123
|
||||
```
|
||||
|
||||
Java 面向对象
|
||||
---
|
||||
|
||||
### 类的定义
|
||||
|
||||
```java
|
||||
public class Dog {
|
||||
private String name;
|
||||
|
||||
// 构造方法无无返回值,方法名与类名相同
|
||||
// 一个类可以有多个构造方法
|
||||
//Java 默认提供一个构造方法
|
||||
public Dog() {
|
||||
}
|
||||
|
||||
public Dog(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 类中的变量
|
||||
|
||||
```java
|
||||
public class Dog {
|
||||
// 成员变量
|
||||
private String name;
|
||||
|
||||
// 类变量
|
||||
// 多对象将会共享同一个类变量
|
||||
static int val = 10;
|
||||
|
||||
public void Say() {
|
||||
// 局部变量
|
||||
String sentence = "hello";
|
||||
System.out.println(sentence);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 对象的创建
|
||||
|
||||
```java
|
||||
Dog myDog = new Dog(); // 调用无参构造函数
|
||||
Dog myDog2 = new Dog("aaa"); // 调用对应参数列表的构造函数
|
||||
|
||||
// 调用方法
|
||||
myDog.Say();
|
||||
```
|
||||
|
||||
### 对象的继承
|
||||
|
||||
```java
|
||||
public Animal() {
|
||||
|
||||
public String name;
|
||||
|
||||
public Animal(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void eat() {
|
||||
System.out.println("eat something");
|
||||
}
|
||||
}
|
||||
|
||||
// Dog类继承Animal类
|
||||
public Dog extends Animal(){
|
||||
// 调用父类的构造函数
|
||||
public Dog(String name){
|
||||
super(name);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
请注意Java不支持多继承,只能够单继承,但支持多重继承
|
||||
即,一个类最多只有一个父类,但可以有爷爷类和太爷爷类
|
||||
|
||||
#### Java继承的特点
|
||||
|
||||
- 子类拥有父类的非private的属性、方法
|
||||
- 子类可以有自己的属性、方法
|
||||
- 子类可以重写父类的方法
|
||||
|
||||
#### super 与 this
|
||||
|
||||
super引用当前类的父类
|
||||
this引用自身
|
||||
|
||||
```java
|
||||
class Animal {
|
||||
void eat() {
|
||||
System.out.println("animal : eat");
|
||||
}
|
||||
}
|
||||
|
||||
class Dog extends Animal {
|
||||
void eat() {
|
||||
System.out.println("dog : eat");
|
||||
}
|
||||
void eatTest() {
|
||||
this.eat(); // this 调用自己的方法
|
||||
super.eat(); // super 调用父类方法
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### final 关键字
|
||||
|
||||
被final 关键字修饰的类不能够被继承
|
||||
被final 关键字修饰的方法不能被子类重写
|
||||
|
||||
### Java的重写(Override)与重载(Overload)
|
||||
|
||||
#### 重写(Override)
|
||||
|
||||
重写者位于被重写者的子类中
|
||||
重写者的签名必须与被重写者的签名相同
|
||||
|
||||
```java
|
||||
class Animal {
|
||||
// 被重写者
|
||||
void Say(String sentence) {
|
||||
System.out.println("Animal say: " + sentence);
|
||||
}
|
||||
}
|
||||
|
||||
class Dog extends Animal {
|
||||
// 重写者
|
||||
// 重写者位于被重写者的子类
|
||||
void Say(String sentence) { // 签名与被重写者相同
|
||||
System.out.println("Dog say: " + sentence);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 重载(Overload)
|
||||
|
||||
重载位于同一类内部
|
||||
签名必须不同
|
||||
|
||||
```java
|
||||
public class Overloading {
|
||||
public int test(){
|
||||
System.out.println("test1");
|
||||
return 1;
|
||||
}
|
||||
|
||||
public void test(int a) {
|
||||
System.out.println("test2");
|
||||
}
|
||||
|
||||
//以下两个参数类型顺序不同
|
||||
public String test(int a,String s){
|
||||
System.out.println("test3");
|
||||
return "returntest3";
|
||||
}
|
||||
|
||||
public String test(String s,int a){
|
||||
System.out.println("test4");
|
||||
return "returntest4";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Java 抽象类
|
||||
|
||||
抽象类不能被实例化为对象,因此,抽象类必须被继承才能够使用
|
||||
抽象类使用abstract 关键字进行修饰
|
||||
|
||||
```java
|
||||
public abstract class Animal {
|
||||
String name;
|
||||
|
||||
public Animal(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
||||
public class Dog extends Animal {
|
||||
public Dog(String name) {
|
||||
super(name);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
使用abstract 关键字修饰的方法是抽象方法
|
||||
抽象方法必须包含在抽象类中
|
||||
子类必须重写父类中的所有抽象方法,除非子类也是抽象类
|
||||
|
||||
```java
|
||||
public abstract class Animal {
|
||||
String name;
|
||||
|
||||
public Animal(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public abstract void Say();
|
||||
}
|
||||
|
||||
public class Dog extends Animal {
|
||||
public Dog(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
public void Say(){
|
||||
System.out.println("Dog");
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### Java 接口
|
||||
|
||||
#### 接口的定义
|
||||
|
||||
与类的继承不同,接口可以继承多个接口
|
||||
|
||||
```java
|
||||
[可见度] interface 接口名称 [extends 其他的接口名] {
|
||||
// 声明变量
|
||||
// 抽象方法
|
||||
}
|
||||
```
|
||||
|
||||
#### 接口的实现
|
||||
|
||||
一个类可以实现多个接口
|
||||
类必须实现接口的所有方法,除非该类是抽象类
|
||||
|
||||
```java
|
||||
public interface Animal {
|
||||
public void eat();
|
||||
public void say();
|
||||
}
|
||||
|
||||
public class Dog implements Animal {
|
||||
public void eat() {
|
||||
System.out.println("Dog eat something");
|
||||
}
|
||||
|
||||
public void say() {
|
||||
System.out.println("Dog say something");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Java 多线程
|
||||
---
|
||||
|
||||
|
224
docs/latex.md
@ -11,17 +11,18 @@ LaTeX 备忘清单
|
||||
[LaTeX](https://www.latex-project.org/) 基于 TEX 的排版系统,适用于生成高印刷质量的科技和数学、物理文档。
|
||||
|
||||
- [LaTeX 官网](https://www.latex-project.org/) _(latex-project.org)_
|
||||
- [KaTeX 官网](https://katex.org/) _(katex.org)_
|
||||
|
||||
而 [KaTeX](https://katex.org/) 只处理 LaTeX 的数学符号的一个更小的子集,用于 web 上展示
|
||||
|
||||
- [KaTeX 官网](https://katex.org/) _(katex.org)_
|
||||
|
||||
### 示例
|
||||
|
||||
```KaTeX
|
||||
% \f is defined as #1f(#2) using the macro
|
||||
f\relax(x) = \int_{-\infty}^\infty
|
||||
f\hat\xi\,e^{2 \pi i \xi x}
|
||||
\,d\xi
|
||||
\,\mathrm{d}\xi
|
||||
```
|
||||
|
||||
---
|
||||
@ -30,7 +31,7 @@ f\relax(x) = \int_{-\infty}^\infty
|
||||
% \f is defined as #1f(#2) using the macro
|
||||
f\relax(x) = \int_{-\infty}^\infty
|
||||
f\hat\xi\,e^{2 \pi i \xi x}
|
||||
\,d\xi
|
||||
\,\mathrm{d}\xi
|
||||
```
|
||||
|
||||
### 行内展示
|
||||
@ -42,10 +43,10 @@ f\relax(x) = \int_{-\infty}^\infty
|
||||
|
||||
基于 KaTeX 在一行展示示例: `KaTeX:\int_0^\infty x^2 dx`
|
||||
|
||||
Supported Functions
|
||||
支持的语法
|
||||
---
|
||||
|
||||
### Accents
|
||||
### 标注符号
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
:- | :- | :-
|
||||
@ -72,9 +73,9 @@ Supported Functions
|
||||
``KaTeX:\\\`{a}`` <pur><code>\\`{a}</code></pur> | `KaTeX:\={a}` <pur>`\={a}`</pur> |
|
||||
`KaTeX:\"{a}` <pur>`\"{a}`</pur> | `KaTeX:\v{a}` <pur>`\v{a}`</pur> |
|
||||
`KaTeX:\^{a}` <pur>`\^{a}`</pur> | `KaTeX:\u{a}` <pur>`\u{a}`</pur> |
|
||||
`KaTeX:\r{a}` <pur>`\r{a}`</pur>
|
||||
`KaTeX:\r{a}` <pur>`\r{a}`</pur> |
|
||||
|
||||
### Delimiter Sizing
|
||||
### 定界符大小调整
|
||||
|
||||
:- | :-
|
||||
:- | :-
|
||||
@ -90,7 +91,7 @@ Supported Functions
|
||||
`\right` | `\bigg` | `\biggl` | `\biggm` | `\biggr`
|
||||
`\` | `\Bigg` | `\Biggl` | `\Biggm` | `\Biggr`
|
||||
|
||||
### 希腊和希伯来字母 Greek and Hebrew letters
|
||||
### 希腊和希伯来字母
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
预览 | 方法 | 预览 | 方法 | 预览 | 方法 | 预览| 方法 | 预览 | 方法 | 预览 | 方法
|
||||
@ -156,7 +157,6 @@ Supported Functions
|
||||
`KaTex:\sout{abc}` | <pur>`\sout{abc}`</pur> | `KaTex:\boxed{\pi=\frac c d}` | <pur>`\boxed{\pi=\frac c d}`</pur>
|
||||
`KaTex:\$a_{\angl n}` _<red>MD语法冲突</red>_ | <pur>`$a_{\angl n}`</pur> | `KaTex:a_\angln` | <pur>`a_\angln`</pur>
|
||||
`KaTex:\phase{-78^\circ}` | <pur>`\phase{-78^\circ}`</pur>
|
||||
`KaTex:\overset{a}{B}` | <pur>`\overset{a}{B}`</pur> | `KaTex:\underset{a}{B}` | <pur>`\underset{a}{B}`</pur>
|
||||
|
||||
<pur>\tag{hi} x+y^{2x}</pur>
|
||||
|
||||
@ -194,7 +194,7 @@ Supported Functions
|
||||
\sum_{\mathclap{1\le i\le j\le n}} x_{ij}
|
||||
```
|
||||
|
||||
### `KaTex:\LaTeX` math constructs
|
||||
### `KaTex:\LaTeX` 数学结构
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
预览 | 方法 | 预览 | 方法 | 预览 | 方法
|
||||
@ -203,9 +203,8 @@ Supported Functions
|
||||
| `KaTex:f'` | <pur>`f'`</pur> | `KaTex:\underline{abc}` | <pur>`\underline{abc}`</pur> | `KaTex:\overleftarrow{abc}` | <pur>`\overleftarrow{abc}`</pur> |
|
||||
| `KaTex:\sqrt{abc}` | <pur>`\sqrt{abc}`</pur> | `KaTex:\widehat{abc}` | <pur>`\widehat{abc}`</pur> | `KaTex:\overbrace{abc}` | <pur>`\overbrace{abc}`</pur> |
|
||||
| `KaTex:\sqrt[n]{abc}` | <pur>`\sqrt[n]{abc}`</pur> | `KaTex:\widetilde{abc}` | <pur>`\widetilde{abc}`</pur> | `KaTex:\underbrace{abc}` | <pur>`\underbrace{abc}`</pur> |
|
||||
|`KaTex:\frac{d^n y}{d x^n}`| <pur>`\frac{d^n y}{d x^n}`</pur> | `KaTex:\int_{b}^{a} \,dx` | <pur>`\int_{b}^{a} \,dx`</pur> | `KaTex:\lim_{x \to \infty}` | <pur>`\lim_{x \to \infty}`</pur> |
|
||||
|
||||
### 分隔符 Delimiters
|
||||
### 分隔符
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
预览 | 方法 | 预览 | 方法 | 预览 | 方法 | 预览| 方法 | 预览 | 方法
|
||||
@ -549,10 +548,10 @@ Supported Functions
|
||||
`KaTex:\circledS` | <pur>`\circledS`</pur> | `KaTex:\spadesuit` | <pur>`\spadesuit`</pur> | `KaTex:\spades` | <pur>`\spades`</pur> |
|
||||
`KaTex:\text{\textcircled a}` | <pur>`\text{\textcircled a}`</pur> | `KaTex:\maltese` | <pur>`\maltese`</pur> | `KaTex:\minuso` | <pur>`\minuso`</pur> |
|
||||
|
||||
Environments
|
||||
环境
|
||||
---
|
||||
|
||||
### Environments 1
|
||||
### 环境 1
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -571,7 +570,7 @@ Environments
|
||||
```
|
||||
<!--rehype:style=flex:1;-->
|
||||
|
||||
### Environments 2
|
||||
### 环境 2
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -589,7 +588,7 @@ Environments
|
||||
\end{array}
|
||||
```
|
||||
|
||||
### Environments 3
|
||||
### 环境 3
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -608,7 +607,7 @@ Environments
|
||||
```
|
||||
<!--rehype:style=flex:1;-->
|
||||
|
||||
### Environments 4
|
||||
### 环境 4
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -625,7 +624,7 @@ Environments
|
||||
\end{bmatrix}
|
||||
```
|
||||
|
||||
### Environments 5
|
||||
### 环境 5
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -644,7 +643,7 @@ Environments
|
||||
```
|
||||
<!--rehype:style=flex:1;-->
|
||||
|
||||
### Environments 6
|
||||
### 环境 6
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -663,7 +662,7 @@ Environments
|
||||
```
|
||||
<!--rehype:style=flex:1;-->
|
||||
|
||||
### Environments 7
|
||||
### 环境 7
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -680,7 +679,7 @@ Environments
|
||||
\end{Bmatrix}
|
||||
```
|
||||
|
||||
### Environments 8
|
||||
### 环境 8
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -704,7 +703,7 @@ Environments
|
||||
\end{array}
|
||||
```
|
||||
|
||||
### Environments 9
|
||||
### 环境 9
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -721,7 +720,7 @@ x = \begin{cases}
|
||||
\end{cases}
|
||||
```
|
||||
|
||||
### Environments 10
|
||||
### 环境 10
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -738,7 +737,7 @@ x = \begin{cases}
|
||||
\end{rcases}⇒…
|
||||
```
|
||||
|
||||
### Environments 11
|
||||
### 环境 11
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -756,7 +755,7 @@ x = \begin{cases}
|
||||
\end{smallmatrix}
|
||||
```
|
||||
|
||||
### Environments 12
|
||||
### 环境 12
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -776,7 +775,7 @@ x = \begin{cases}
|
||||
\end{subarray}}
|
||||
```
|
||||
|
||||
### Environments 13
|
||||
### 环境 13
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -796,7 +795,7 @@ x = \begin{cases}
|
||||
\end{equation}
|
||||
```
|
||||
|
||||
### Environments 14
|
||||
### 环境 14
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -814,7 +813,7 @@ x = \begin{cases}
|
||||
\end{align}
|
||||
```
|
||||
|
||||
### Environments 15
|
||||
### 环境 15
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -832,7 +831,7 @@ x = \begin{cases}
|
||||
\end{gather}
|
||||
```
|
||||
|
||||
### Environments 16
|
||||
### 环境 16
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -850,7 +849,7 @@ x = \begin{cases}
|
||||
\end{alignat}
|
||||
```
|
||||
|
||||
### Environments 17
|
||||
### 环境 17
|
||||
<!--rehype:body-style=display: flex;flex-direction: row;justify-content: flex-start;-->
|
||||
|
||||
```KaTeX
|
||||
@ -883,7 +882,7 @@ x = \begin{cases}
|
||||
`KaTex:\colorbox{aqua}{$F=ma$}` | <pur>`\colorbox{aqua}{$F=ma$}`</pur>
|
||||
`KaTex:\fcolorbox{red}{aqua}{$F=ma$}` | <pur>`\fcolorbox{red}{aqua}{$F=ma$}`</pur>
|
||||
|
||||
### Font 字体
|
||||
### 字体
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
:- | :- | :- | :- | :- | :-
|
||||
@ -893,9 +892,8 @@ x = \begin{cases}
|
||||
`KaTex:\LARGE AB` | <pur>`\LARGE AB`</pur> | `KaTex:\LARGE AB` | <pur>`\LARGE AB`</pur> | `KaTex:\footnotesize AB` | <pur>\footnotesize AB</pur>
|
||||
`KaTex:\Large AB` | <pur>`\Large AB`</pur> | `KaTex:\Large AB` | <pur>`\Large AB`</pur> | `KaTex:\scriptsize AB` | <pur>\scriptsize AB</pur>
|
||||
`KaTex:\large AB` | <pur>`\large AB`</pur> | `KaTex:\large AB` | <pur>`\large AB`</pur> | `KaTex:\tiny AB` | <pur>\tiny AB</pur>
|
||||
`KaTex:\mathcal{AB}` | <pur>`\mathcal{AB}`</pur> | `KaTex:\mathak{AB}` | <pur>`\mathak{AB}`</pur> | `KaTex:\mathbb{AB}` | <pur>`\mathbb{AB}`</pur> | `KaTex:\mathsf{AB}` | <pur>`\mathsf{AB}`</pur>
|
||||
|
||||
### Style 样式
|
||||
### 样式
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
:- | :- | :- | :-
|
||||
@ -903,165 +901,7 @@ x = \begin{cases}
|
||||
`KaTex:\displaystyle\sum_{i=1}^n` | <pur>\displaystyle\sum_{i=1}^n</pur> | `KaTex:\textstyle\sum_{i=1}^n` | <pur>\textstyle\sum_{i=1}^n</pur>
|
||||
`KaTex:\scriptstyle x` | <pur>\scriptstyle x</pur> | `KaTex:\scriptscriptstyle x` | <pur>\scriptscriptstyle x</pur>
|
||||
`KaTex:\lim\limits_x` | <pur>\lim\limits_x</pur> | `KaTex:\lim\nolimits_x` | <pur>\lim\nolimits_x</pur>
|
||||
`KaTex:\verb!x^2!` | <pur>\verb!x^2!</pur> | `KaTeX:\mathbf{a}` <pur>`\textbf{a}`</pur> |
|
||||
`KaTeX:\mathit{a}` <pur>`\textit{a}`</pur> | `KaTeX:\textup{a}` <pur>`\textup{a}`</pur> | `KaTeX:\textsl{a}` <pur>`\textsl{a}`</pur> | `KaTeX:\textsc{a}` <pur>`\textsc{a}`</pur> | `KaTeX:\underline{a}` <pur>`\underline{a}`</pur>
|
||||
|
||||
列表,图片,表格表示
|
||||
---
|
||||
|
||||
### 列表
|
||||
|
||||
```latex
|
||||
| - First item |
|
||||
| - Second item |
|
||||
\begin{enumerate}
|
||||
\item First item
|
||||
\item Second item
|
||||
\end{enumerate}
|
||||
|
||||
| 1. First item |
|
||||
| 2. Second item |
|
||||
\begin{itemize}
|
||||
\item First item
|
||||
\item Second item
|
||||
\end{itemize}
|
||||
|
||||
|First item |
|
||||
|Second item |
|
||||
\begin{description}
|
||||
\item First item
|
||||
\item Second item
|
||||
\end{description}
|
||||
```
|
||||
|
||||
### 图片
|
||||
|
||||
```latex
|
||||
% 展示单张图像
|
||||
\usepackage{graphicx}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=0.8\textwidth]{path/to/your/image.jpg}
|
||||
\caption{Caption for the single figure.}
|
||||
\label{fig:singlefig}
|
||||
\end{figure}
|
||||
|
||||
% 展示多张图像
|
||||
\usepackage{graphicx}
|
||||
\usepackage{subcaption}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\begin{subfigure}[b]{0.45\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{path/to/your/image1.jpg}
|
||||
\caption{First subfigure}
|
||||
\label{fig:sub1}
|
||||
\end{subfigure}
|
||||
\hfill % 在子图之间添加水平间距
|
||||
\begin{subfigure}[b]{0.45\textwidth}
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{path/to/your/image2.jpg}
|
||||
\caption{Second subfigure}
|
||||
\label{fig:sub2}
|
||||
\end{subfigure}
|
||||
\caption{Caption for the entire figure}
|
||||
\label{fig:mainfig}
|
||||
\end{figure}
|
||||
```
|
||||
|
||||
### 表格
|
||||
|
||||
```latex
|
||||
\begin{table}[hbpt] % 使用 longtable 包创建可以跨页的表格
|
||||
\centering % 居中表格
|
||||
\caption{Example Table}
|
||||
\label{tab:example}
|
||||
\begin{tabular}{|c|l|r|} % 对齐列:居中、居左、居右
|
||||
\hline % 插入一条水平线
|
||||
\textbf{Column 1} & \textbf{Column 2} & \textbf{Column 3} \\ \hline
|
||||
Data 1 & Data 2 & Data 3 \\ % 数据
|
||||
Data 4 & Data 5 & Data 6 \\ \hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
```
|
||||
|
||||
LaTex排版
|
||||
----
|
||||
|
||||
### 调整页边距和页面类型
|
||||
|
||||
```latex
|
||||
\usepackage[left=3cm, right=3cm, top=2cm, bottom=2cm]{geometry} or \geometry{left=3cm, right=3cm, top=2cm, bottom=2cm}
|
||||
|
||||
\usepackage[a4paper]{geometry} % 另有a5paper, b5paper, letterpaper等格式
|
||||
```
|
||||
|
||||
### 页面分割和布局
|
||||
|
||||
```latex
|
||||
\quad | 添加空格
|
||||
\qquad | 双空格
|
||||
\vspace{} | 增加纵向间距
|
||||
\hspace{} | 增加横向间距
|
||||
\newpage | 开始新的一页
|
||||
\clearpage | 清除当前页,并处理所有未处理的浮动体
|
||||
\vfill | 在当前页面的剩余空间中插入垂直空白
|
||||
```
|
||||
|
||||
### 页面页眉和页脚
|
||||
|
||||
```latex
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancy}
|
||||
|
||||
\fancyhf{} | 清除所有页眉和页脚字段
|
||||
\fancyhead[L]{Left header} | 左页眉
|
||||
\fancyhead[C]{Center header} | 中页眉
|
||||
\fancyhead[R]{Right header} | 右页眉
|
||||
\fancyfoot[L]{Left footer} | 左页脚
|
||||
\fancyfoot[C]{\thepage} | 页脚中央的页码
|
||||
\fancyfoot[R]{Right footer} | 右页脚
|
||||
```
|
||||
|
||||
其他
|
||||
----
|
||||
|
||||
### bib文献管理
|
||||
|
||||
```latex
|
||||
\cite{example} | 在文本中引用
|
||||
|
||||
\bibliographystyle{plain} | 设定引用格式
|
||||
\bibliography{references} | 假设.bib文件名为 'references.bib'
|
||||
```
|
||||
|
||||
### URL
|
||||
|
||||
```latex
|
||||
\usepackage{hyperref} | 加载 hyperref 包以增强 PDF 文档的交互性,如添加超链接和书签
|
||||
|
||||
\href{URL}{text} | 创建一个指向 URL 的超链接
|
||||
\url{URL} | 显示 URL 并作为链接
|
||||
```
|
||||
|
||||
### 颜色和盒子
|
||||
|
||||
```latex
|
||||
\usepackage{color} | 使用 color 包来给文本添加颜色
|
||||
|
||||
\color{color} | 设置文本颜色
|
||||
\fbox{content} | 在内容周围创建一个边框
|
||||
```
|
||||
|
||||
### 多栏布局
|
||||
|
||||
```latex
|
||||
\usepackage{multicol} | 使用 multicol 包创建多栏文本
|
||||
|
||||
\begin{multicols}{num} ... \end{multicols} | 开始一个多栏环境,其中 num 指定列数
|
||||
\onecolumn | 文档从当前位置开始变为单列格式
|
||||
\twocolumn | 文档从当前位置开始变为双列格式
|
||||
```
|
||||
`KaTex:\verb!x^2!` | <pur>\verb!x^2!</pur>
|
||||
|
||||
另见
|
||||
----
|
||||
|
@ -197,7 +197,11 @@ t.n = t.n + 1 -- 改变 table
|
||||
|
||||
```lua
|
||||
-- 给多个变量赋值
|
||||
a, b = 10, 2*a --> a=10; b=20
|
||||
-- 情况1:a 未定义过
|
||||
a, b = 10, 2*a -- 报错:a 是 nil
|
||||
-- 情况2:a 已定义(比如 a=5)
|
||||
a = 5
|
||||
a, b = 10, 2*a -- 右侧的 a=5,结果 a=10, b=10(不会报错)
|
||||
```
|
||||
|
||||
#### 交换变量
|
||||
@ -763,7 +767,7 @@ table["sex"] = "boy"
|
||||
|
||||
-- 获取 table 的长度
|
||||
|
||||
print(#table) -- 3
|
||||
print(#table) -- 0
|
||||
|
||||
-- 如果想要删除一个 table,那么可以使用 nil 赋值
|
||||
table = nil
|
||||
|
396
docs/matlab.md
@ -1410,6 +1410,402 @@ true 或 false 条件
|
||||
[thingSpeakWrite](https://ww2.mathworks.cn/help/matlab/ref/thingspeakwrite.html) | 将数据写入 `ThingSpeak` 通道
|
||||
<!--rehype:className=style-list-->
|
||||
|
||||
## 面向对象基础
|
||||
|
||||
MATLAB 支持面向对象编程,虽然很少有人使用。
|
||||
|
||||
MATLAB 的自定义类型可以分成全值类和句柄类,它们的区别在于句柄类相当于指针,赋值时只会进行浅拷贝,全值类总是会进行深拷贝。下面的例子只涉及全值类。
|
||||
|
||||
### 简单例子
|
||||
|
||||
一个简单的 `point2d` 类(文件名必须与类名相同:`point2d.m` )
|
||||
|
||||
```matlab
|
||||
classdef point2d
|
||||
properties % 属性
|
||||
x
|
||||
y
|
||||
end
|
||||
methods % 方法
|
||||
function obj = point2d(x0,y0) % 构造方法
|
||||
if nargin == 0
|
||||
obj.x = 0;
|
||||
obj.y = 0;
|
||||
elseif nargin == 2
|
||||
obj.x = x0;
|
||||
obj.y = y0;
|
||||
else
|
||||
error("unsupported arguments")
|
||||
end
|
||||
end
|
||||
function obj = normalize(obj) % 普通方法
|
||||
% obj 相当于 Python 的 self
|
||||
r = sqrt(obj.x^2+obj.y^2);
|
||||
obj.x = obj.x/r;
|
||||
obj.y = obj.y/r;
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
使用例如
|
||||
|
||||
```matlab
|
||||
a = point2d(3,4);
|
||||
fprintf('(%f, %f)\n',a.x,a.y);
|
||||
% (3.000000, 4.000000)
|
||||
|
||||
b = a.normalize();
|
||||
fprintf('(%f, %f)\n',b.x,b.y);
|
||||
% (0.600000, 0.800000)
|
||||
```
|
||||
|
||||
### 属性
|
||||
|
||||
可以给属性提供默认值
|
||||
|
||||
```matlab
|
||||
classdef point2d
|
||||
properties
|
||||
x = cos(pi/12);
|
||||
y = sin(pi/12);
|
||||
end
|
||||
...
|
||||
end
|
||||
```
|
||||
|
||||
默认值不需要是常量,可以是任何表达式
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties
|
||||
time_stamp = date;
|
||||
end
|
||||
...
|
||||
end
|
||||
```
|
||||
|
||||
属性的默认值在类被加载时会被计算,并不会在每一个对象创建时重新计算。
|
||||
|
||||
可以将属性标记为只读(`Constant`),不允许对其进行修改。
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties(Constant)
|
||||
R = pi/180;
|
||||
end
|
||||
...
|
||||
end
|
||||
```
|
||||
|
||||
尝试修改会报错
|
||||
|
||||
```matlab
|
||||
s = demo();
|
||||
disp(s.R)
|
||||
|
||||
s.R = 100; % error
|
||||
```
|
||||
|
||||
### 构造方法和普通方法
|
||||
|
||||
#### 构造方法
|
||||
|
||||
与类同名的方法称为构造方法。MATLAB只允许创建一个构造方法,但是我们通过nargin判断参数个数,并据此实现不同的创建行为,例如
|
||||
|
||||
```matlab
|
||||
function obj = point2d(x0,y0)
|
||||
if nargin == 0
|
||||
obj.x = 0;
|
||||
obj.y = 0;
|
||||
elseif nargin == 2
|
||||
obj.x = x0;
|
||||
obj.y = y0;
|
||||
else
|
||||
error("unsupported arguments")
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
例如
|
||||
|
||||
```matlab
|
||||
s1 = point2d(1,2);
|
||||
s2 = point2d();
|
||||
s3 = point2d;
|
||||
```
|
||||
|
||||
#### 普通方法
|
||||
|
||||
类的普通方法的第一个参数是对象自身,并且习惯上使用obj表示。
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties
|
||||
x = 100;
|
||||
end
|
||||
methods
|
||||
function z = compute(obj,y)
|
||||
z = obj.x + y;
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
普通方法可以通过对象或类调用
|
||||
|
||||
```matlab
|
||||
s = demo();
|
||||
s.compute(10); % 110
|
||||
compute(s,20); % 120
|
||||
```
|
||||
|
||||
### 静态方法
|
||||
|
||||
MATLAB 提供了静态方法,在定义时标记为 `Static`,静态方法没有`obj`参数,不绑定任何的对象,不能访问类对象的普通属性,但是可以访问类的常量属性。
|
||||
|
||||
例如
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
methods(Static) % 静态方法
|
||||
function hello()
|
||||
disp("hello,world!")
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
使用例如
|
||||
|
||||
```matlab
|
||||
>> demo.hello()
|
||||
hello,world!
|
||||
>> s = demo();
|
||||
>> s.hello()
|
||||
hello,world!
|
||||
```
|
||||
|
||||
### 重写disp方法
|
||||
|
||||
可以通过提供`disp`方法来定制自定义类型调用`disp`函数时的行为,例如
|
||||
|
||||
```matlab
|
||||
classdef point2d
|
||||
properties
|
||||
x = 0
|
||||
y = 0
|
||||
end
|
||||
methods
|
||||
function disp(obj)
|
||||
fprintf("(%f,%f)",obj.x,obj.y);
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
提供`disp`函数后的输出
|
||||
|
||||
```matlab
|
||||
>> s = point2d();
|
||||
>> disp(s)
|
||||
|
||||
(0.000000,0.000000)
|
||||
```
|
||||
|
||||
作为对比,默认情况下的输出
|
||||
|
||||
```matlab
|
||||
>> s = point2d();
|
||||
>> disp(s)
|
||||
point2d with properties:
|
||||
|
||||
x: 0
|
||||
y: 0
|
||||
R: 0.0175
|
||||
```
|
||||
|
||||
### 重载运算符
|
||||
|
||||
MATLAB 支持自定义类型对运算符的重载,例如`plus`方法对应加法。
|
||||
|
||||
```matlab
|
||||
classdef point2d
|
||||
properties
|
||||
x
|
||||
y
|
||||
end
|
||||
methods
|
||||
function obj = point2d(x0,y0)
|
||||
% same as before
|
||||
end
|
||||
function result = plus(obj, other)
|
||||
result = point2d(obj.x + other.x, obj.y + other.y);
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
例如
|
||||
|
||||
```matlab
|
||||
>> a = point2d(1,0);
|
||||
>> b = point2d(0,2);
|
||||
>> a + b
|
||||
ans =
|
||||
point2d with properties:
|
||||
|
||||
x: 1
|
||||
y: 2
|
||||
```
|
||||
|
||||
### 属性和方法的权限
|
||||
|
||||
MATLAB 提供了比 C++ 和 Java 更加精细的访问权限控制,默认情况下所有的属性和方法都是public。
|
||||
|
||||
基本的三种权限例如
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties % public
|
||||
x1
|
||||
end
|
||||
properties(Access = protected)
|
||||
x2
|
||||
end
|
||||
properties(Access = privated)
|
||||
x3
|
||||
end
|
||||
|
||||
methods % public
|
||||
function h1(obj)
|
||||
end
|
||||
end
|
||||
methods(Access = protected)
|
||||
function h2(obj)
|
||||
end
|
||||
end
|
||||
methods(Access = privated)
|
||||
function h3(obj)
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
MATLAB对属性提供了更精细的访问权限,可以将其拆分为读权限和写权限,例如
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties(SetAccess = private)
|
||||
x1
|
||||
end
|
||||
properties(SetAccess = private, GetAccess = protected)
|
||||
x2
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
### 类的继承
|
||||
|
||||
MATLAB 使用 `<` 表示继承关系。
|
||||
|
||||
基类
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
properties
|
||||
Value
|
||||
end
|
||||
methods
|
||||
function obj = demo(val)
|
||||
if nargin > 0
|
||||
obj.Value = val;
|
||||
else
|
||||
obj.Value = 0;
|
||||
end
|
||||
end
|
||||
|
||||
function displayValue(obj)
|
||||
disp(['Value: ', num2str(obj.Value)]);
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
派生类
|
||||
|
||||
```matlab
|
||||
classdef demo2 < demo
|
||||
properties
|
||||
ExtraValue
|
||||
end
|
||||
|
||||
methods
|
||||
function obj = demo2(val, extraVal)
|
||||
obj = obj@demo(val); % 调用基类构造方法
|
||||
if nargin > 1
|
||||
obj.ExtraValue = extraVal;
|
||||
else
|
||||
obj.ExtraValue = 0;
|
||||
end
|
||||
end
|
||||
|
||||
function displayValue(obj)
|
||||
displayValue@demo(obj); % 调用基类的同名函数
|
||||
disp(['Extra Value: ',num2str(obj.ExtraValue)]);
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
### 补充
|
||||
|
||||
#### 抽象方法和抽象类
|
||||
|
||||
MATLAB提供了抽象方法和抽象类。
|
||||
|
||||
抽象基类(不可实例化)
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
methods(Abstract) % 抽象方法
|
||||
hello(obj) % 只有接口,没有实现
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
继承自抽象基类的派生类(实现了抽象方法,可以实例化)
|
||||
|
||||
```matlab
|
||||
classdef demo2 < demo
|
||||
methods
|
||||
function hello(obj) % 实现抽象方法
|
||||
disp("hello,world!")
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
#### 禁止继承和重写
|
||||
|
||||
可以使用 `Sealed` 关键词来禁止一个类被继承,例如
|
||||
|
||||
```matlab
|
||||
classdef (Sealed) demo
|
||||
...
|
||||
end
|
||||
```
|
||||
|
||||
可以使用 `Sealed` 关键词来禁止方法被派生类重写,例如
|
||||
|
||||
```matlab
|
||||
classdef demo
|
||||
methods(Sealed)
|
||||
...
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
另见
|
||||
----
|
||||
|
||||
|
141
docs/mysql.md
@ -95,12 +95,35 @@ mysql> exit
|
||||
退出 `quit;` 或 `\q;` 一样的效果
|
||||
|
||||
### 备份
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
创建备份
|
||||
备份特定表
|
||||
|
||||
```sql
|
||||
mysqldump -u user -p db_name > db.sql
|
||||
```bash
|
||||
mysqldump -u user -p db_name table1 table2 > tables_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
备份多个数据库
|
||||
|
||||
```bash
|
||||
mysqldump -u user -p --databases db1 db2 > multi_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
备份所有数据库
|
||||
|
||||
```bash
|
||||
mysqldump -u user -p --all-databases > all_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
备份时压缩
|
||||
|
||||
```bash
|
||||
mysqldump -u user -p db_name | gzip > db_backup.sql.gz
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
导出不带架构的数据库
|
||||
|
||||
@ -109,11 +132,116 @@ mysqldump -u user -p db_name --no-data=true --add-drop-table=false > db.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
恢复备份
|
||||
仅导出数据
|
||||
|
||||
```shell
|
||||
mysql -u user -p db_name < db.sql
|
||||
```bash
|
||||
mysqldump -u user -p --no-create-info db_name > only_data.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
仅导出结构
|
||||
|
||||
```bash
|
||||
mysqldump -u user -p --no-data db_name > only_schema.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
导出时忽略某些表
|
||||
|
||||
```bash
|
||||
mysqldump -u user -p db_name --ignore-table=db_name.table1 --ignore-table=db_name.table2 > partial.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
### 恢复备份
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
恢复单个数据库备份
|
||||
|
||||
```bash
|
||||
mysql -u user -p db_name < db_backup.sql
|
||||
```
|
||||
|
||||
恢复多个数据库(带 `--databases` 选项备份的)
|
||||
|
||||
```bash
|
||||
mysql -u user -p < multi_backup.sql
|
||||
```
|
||||
|
||||
恢复所有数据库(使用 `--all-databases` 备份的)
|
||||
|
||||
```bash
|
||||
mysql -u user -p < all_backup.sql
|
||||
```
|
||||
|
||||
从 gzip 压缩的备份恢复
|
||||
|
||||
```bash
|
||||
gunzip < db_backup.sql.gz | mysql -u user -p db_name
|
||||
|
||||
# 或:
|
||||
|
||||
zcat db_backup.sql.gz | mysql -u user -p db_name
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
恢复单张表(从 `mysqldump` 单表导出文件)
|
||||
|
||||
```bash
|
||||
mysql -u user -p db_name < table1_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
先创建数据库再导入(如果备份中不包含 CREATE DATABASE)
|
||||
|
||||
```bash
|
||||
mysql -u user -p -e "CREATE DATABASE IF NOT EXISTS db_name;"
|
||||
|
||||
mysql -u user -p db_name < db_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
恢复指定字符集(防止乱码)
|
||||
|
||||
```bash
|
||||
mysql --default-character-set=utf8mb4 -u user -p db_name < db_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
恢复时跳过某些错误(如重复键)
|
||||
|
||||
```bash
|
||||
mysql -u user -p --force db_name < db_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
恢复到远程主机数据库
|
||||
|
||||
```bash
|
||||
mysql -h remote_host -u user -p db_name < db_backup.sql
|
||||
```
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
### 错误处理(Error Handling)
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
| 语句 | 说明 |
|
||||
| :--------------------------- | :------------------------------ |
|
||||
| `SHOW ERRORS;` | 显示最近的错误 |
|
||||
| `SHOW WARNINGS;` | 显示最近的警告 |
|
||||
| `SHOW COUNT(*) ERRORS;` | 显示错误数量 |
|
||||
| `SHOW COUNT(*) WARNINGS;` | 显示警告数量 |
|
||||
| `EXPLAIN SELECT ...;` | 分析查询执行计划 |
|
||||
| `SHOW ENGINE INNODB STATUS;` | 查看 InnoDB 状态和死锁信息 |
|
||||
| `SHOW PROFILE;` | 显示语句的资源消耗(需开启 profiling) |
|
||||
| `SHOW PROFILES;` | 显示所有已记录的 profiling 数据 |
|
||||
| `SHOW PROCESSLIST;` | 查看当前线程,排查长时间运行或阻塞的语句 |
|
||||
| `SHOW STATUS LIKE 'Last_error%';` | 查看上次语句执行的错误信息 |
|
||||
| `SHOW VARIABLES LIKE 'log_%';` | 查看错误日志相关配置 |
|
||||
| `SHOW BINARY LOGS;` | 查看二进制日志,排查事务或复制异常 |
|
||||
| `SHOW SLAVE STATUS\G` | 查看主从复制错误(用于主从复制场景) |
|
||||
| `SHOW MASTER STATUS;` | 查看主库状态,辅助分析复制问题 |
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
MySQL 示例
|
||||
------
|
||||
@ -613,6 +741,7 @@ MySQL 数据类型
|
||||
| `COUNT()` | 计算行数,可选择性地忽略NULL值 |
|
||||
| `MAX()` | 找出一列的最大值 |
|
||||
| `MIN()` | 找出一列的最小值 |
|
||||
| `GROUP_CONCAT()` | 将一组值连接成单一字符串,可指定分隔符,常用于分组。|
|
||||
|
||||
### 数学函数
|
||||
|
||||
|
67
docs/pip.md
Normal file
@ -0,0 +1,67 @@
|
||||
pip 备忘清单
|
||||
===
|
||||
|
||||
这份 pip 备忘清单汇总了 Python 包管理的常用命令,涵盖安装、卸载、版本控制、依赖管理及镜像加速等操作,助你高效掌控开发环境。
|
||||
|
||||
入门
|
||||
---
|
||||
|
||||
### 基础命令
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
命令 | 说明
|
||||
:- | :-
|
||||
`pip install package_name` | 安装指定的包
|
||||
`pip install requests-2.22.0-py2.py3-none-any.whl` | 从本地的 wheel 文件安装包
|
||||
`pip install git+https://github.com/psf/requests.git` | 从 Git 仓库安装包
|
||||
`pip install /home/user/src/requests` | 从目录中安装包
|
||||
`pip uninstall package_name` | 卸载指定的包
|
||||
`pip list` | 查看已安装的包列表
|
||||
`pip show package_name` | 查看某个包的详细信息
|
||||
`pip search keyword` | 搜索 PyPI 包(新版 pip 已弃用,建议用 [pypi.org](https://pypi.org))
|
||||
<!--rehype:className=left-align-->
|
||||
|
||||
### 版本控制
|
||||
|
||||
命令 | 说明
|
||||
:- | :-
|
||||
`pip install package==1.2.3` | 安装指定版本
|
||||
`pip install "package>=1.0,<2.0"` | 安装满足条件的版本
|
||||
`pip install package!=2.21.0` | 安装包,但排除某个特定版本
|
||||
`pip install --upgrade package` | 升级包到最新版本
|
||||
<!--rehype:className=style-list-->
|
||||
|
||||
### 依赖文件操作
|
||||
|
||||
命令 | 说明
|
||||
:- | :-
|
||||
`pip freeze` | 导出当前环境的所有包及版本
|
||||
`pip freeze > requirements.txt` | 保存依赖列表到文件
|
||||
`pip install -r requirements.txt` | 从文件安装依赖
|
||||
<!--rehype:className=style-list-->
|
||||
|
||||
### 高级选项
|
||||
|
||||
命令 | 说明
|
||||
:- | :-
|
||||
`pip install .` | 安装当前目录中的包(`setup.py` 或 `pyproject.toml`)
|
||||
`pip install -e .` | 安装当前项目为可编辑模式(开发用)
|
||||
`pip cache dir` | 查看 pip 缓存目录
|
||||
`pip cache purge` | 清除 pip 缓存
|
||||
`pip check` | 检查依赖冲突
|
||||
<!--rehype:className=style-list-->
|
||||
|
||||
### 使用镜像源
|
||||
|
||||
命令 | 说明
|
||||
:- | :-
|
||||
`pip install -i https://pypi.org/simple package` | 使用官方源安装
|
||||
`pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package` | 使用清华镜像安装
|
||||
`pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple` | 永久设置默认镜像
|
||||
<!--rehype:className=style-list-->
|
||||
|
||||
另见
|
||||
---
|
||||
|
||||
- [pip 官方文档](https://pip.pypa.io/en/stable/) _(pypa.io)_
|
||||
- [Github 仓库](https://github.com/pypa/pip) _(github.com)_
|
@ -1817,7 +1817,7 @@ finally: # 在所有情况下执行
|
||||
### pyenv & pipenv
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
pvenv 用于管理python版本,pipenv 用于管理项目包版本
|
||||
pyenv 用于管理python版本,pipenv 用于管理项目包版本
|
||||
|
||||
#### pyenv
|
||||
|
||||
@ -1829,13 +1829,21 @@ curl https://pyenv.run | bash
|
||||
[更多安装方式](https://github.com/pyenv/pyenv#installation)
|
||||
|
||||
```shell
|
||||
# 查看 pyenv 可以安装的 python 版本列表
|
||||
pyenv install -l
|
||||
# 按照 3.10 的前缀显示 python 的最新版本
|
||||
pyenv latest 3.10
|
||||
|
||||
# 安装 python 版本
|
||||
pyenv install 3.10.12
|
||||
pyenv install 3.10.14
|
||||
|
||||
# 查看已安装的 python 版本
|
||||
pyenv versions
|
||||
|
||||
# 设置 python 版本
|
||||
pyenv global 3.10.12 # 全局设置
|
||||
pyenv shell 3.10.12 # 针对当前 shell session
|
||||
pyenv local 3.10.12 # 针对当前目录
|
||||
pyenv global 3.10.14 # 全局设置
|
||||
pyenv shell 3.10.14 # 针对当前 shell session
|
||||
pyenv local 3.10.14 # 针对当前目录
|
||||
```
|
||||
|
||||
#### pipenv
|
||||
|
439
docs/time-zones.md
Normal file
@ -0,0 +1,439 @@
|
||||
时区列表 备忘清单
|
||||
===
|
||||
|
||||
全部时区列表帮助用户快速查看和管理世界各地时区的备忘参考清单
|
||||
|
||||
全部时区列表
|
||||
----
|
||||
|
||||
### 完整代码
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
UTC (协调世界时) | 时区 | 国家 | 时区主要城市
|
||||
---|---|---|---
|
||||
UTC-11 | Pacific/Midway | United States Minor Outlying Islands |
|
||||
UTC-11 | Pacific/Niue | Niue | Alofi
|
||||
UTC-11 | Pacific/Pago_Pago | American Samoa | Pago Pago, Tāfuna, Ta`ū, Taulaga
|
||||
UTC-10 | America/Adak | United States |
|
||||
UTC-10 | Pacific/Honolulu | United States | Honolulu, East Honolulu, Pearl City, Hilo, Kailua
|
||||
UTC-10 | Pacific/Rarotonga | Cook Islands | Avarua
|
||||
UTC-10 | Pacific/Tahiti | French Polynesia | Faaa, Papeete, Punaauia, Pirae, Mahina
|
||||
UTC-9:30 | Pacific/Marquesas | French Polynesia | Taiohae
|
||||
UTC-9 | America/Anchorage | United States | Anchorage, Fairbanks, Eagle River, Badger, Knik-Fairview
|
||||
UTC-9 | America/Juneau | United States | Juneau
|
||||
UTC-9 | America/Metlakatla | United States |
|
||||
UTC-9 | America/Nome | United States |
|
||||
UTC-9 | America/Sitka | United States | Sitka, Ketchikan
|
||||
UTC-9 | America/Yakutat | United States |
|
||||
UTC-9 | Pacific/Gambier | French Polynesia |
|
||||
UTC-8 | America/Los_Angeles | United States | Los Angeles, San Diego, San Jose, San Francisco, Seattle
|
||||
UTC-8 | America/Tijuana | Mexico | Tijuana, Mexicali, Ensenada, Rosarito, Tecate
|
||||
UTC-8 | America/Vancouver | Canada | Vancouver, Surrey, Okanagan, Victoria, Burnaby
|
||||
UTC-8 | Pacific/Pitcairn | Pitcairn | Adamstown
|
||||
UTC-7 | America/Boise | United States | Boise, Meridian, Nampa, Idaho Falls, Pocatello
|
||||
UTC-7 | America/Cambridge_Bay | Canada |
|
||||
UTC-7 | America/Ciudad_Juarez | Mexico | Ciudad Juárez, Ascensión, Ascención, Puerto Palomas
|
||||
UTC-7 | America/Creston | Canada | Creston
|
||||
UTC-7 | America/Dawson | Canada |
|
||||
UTC-7 | America/Dawson_Creek | Canada | Fort St. John, Dawson Creek
|
||||
UTC-7 | America/Denver | United States | Denver, El Paso, Albuquerque, Colorado Springs, Aurora
|
||||
UTC-7 | America/Edmonton | Canada | Calgary, Edmonton, Shaughnessy, Red Deer, Sherwood Park
|
||||
UTC-7 | America/Fort_Nelson | Canada |
|
||||
UTC-7 | America/Hermosillo | Mexico | Hermosillo, Ciudad Obregón, Nogales, San Luis Río Colorado, Navojoa
|
||||
UTC-7 | America/Inuvik | Canada |
|
||||
UTC-7 | America/Mazatlan | Mexico | Culiacán, Mazatlán, Tepic, Los Mochis, La Paz
|
||||
UTC-7 | America/Phoenix | United States | Phoenix, Tucson, Mesa, Chandler, Gilbert
|
||||
UTC-7 | America/Whitehorse | Canada | Whitehorse
|
||||
UTC-7 | America/Yellowknife | Canada | Yellowknife
|
||||
UTC-6 | America/Bahia_Banderas | Mexico | Mezcales, San Vicente, Bucerías, Valle de Banderas
|
||||
UTC-6 | America/Belize | Belize | Belize City, San Ignacio, San Pedro, Orange Walk, Corozal
|
||||
UTC-6 | America/Chicago | United States | Chicago, Houston, San Antonio, Dallas, Austin
|
||||
UTC-6 | America/Chihuahua | Mexico | Chihuahua, Ciudad Delicias, Cuauhtémoc, Parral, Nuevo Casas Grandes
|
||||
UTC-6 | America/Costa_Rica | Costa Rica | San José, Limón, San Francisco, Alajuela, Liberia
|
||||
UTC-6 | America/El_Salvador | El Salvador | San Salvador, Soyapango, San Miguel, Santa Ana, Mejicanos
|
||||
UTC-6 | America/Guatemala | Guatemala | Guatemala City, Villa Nueva, Mixco, Cobán, Quetzaltenango
|
||||
UTC-6 | America/Indiana/Knox | United States |
|
||||
UTC-6 | America/Indiana/Tell_City | United States | Tell City
|
||||
UTC-6 | America/Managua | Nicaragua | Managua, León, Masaya, Chinandega, Matagalpa
|
||||
UTC-6 | America/Matamoros | Mexico | Reynosa, Heroica Matamoros, Nuevo Laredo, Piedras Negras, Ciudad Acuña
|
||||
UTC-6 | America/Menominee | United States | Menominee, Iron Mountain, Kingsford, Ironwood
|
||||
UTC-6 | America/Merida | Mexico | Mérida, Campeche, Ciudad del Carmen, Kanasín, Valladolid
|
||||
UTC-6 | America/Mexico_City | Mexico | Mexico City, Iztapalapa, León de los Aldama, Puebla, Ecatepec de Morelos
|
||||
UTC-6 | America/Monterrey | Mexico | Monterrey, Torreón, Saltillo, Guadalupe, Victoria de Durango
|
||||
UTC-6 | America/North_Dakota/Beulah | United States |
|
||||
UTC-6 | America/North_Dakota/Center | United States |
|
||||
UTC-6 | America/North_Dakota/New_Salem | United States | Mandan
|
||||
UTC-6 | America/Ojinaga | Mexico | Manuel Ojinaga, Ojinaga
|
||||
UTC-6 | America/Rankin_Inlet | Canada |
|
||||
UTC-6 | America/Regina | Canada | Saskatoon, Regina, Prince Albert, Moose Jaw, North Battleford
|
||||
UTC-6 | America/Resolute | Canada |
|
||||
UTC-6 | America/Swift_Current | Canada | Swift Current
|
||||
UTC-6 | America/Tegucigalpa | Honduras | Tegucigalpa, San Pedro Sula, La Ceiba, Choloma, El Progreso
|
||||
UTC-6 | America/Winnipeg | Canada | Winnipeg, Brandon, Steinbach, Kenora, Thompson
|
||||
UTC-6 | Pacific/Easter | Chile | Hanga Roa
|
||||
UTC-6 | Pacific/Galapagos | Ecuador | Puerto Ayora, Puerto Baquerizo Moreno
|
||||
UTC-5 | America/Atikokan | Canada |
|
||||
UTC-5 | America/Bogota | Colombia | Bogotá, Cali, Medellín, Barranquilla, Cartagena
|
||||
UTC-5 | America/Cancun | Mexico | Cancún, Chetumal, Playa del Carmen, Cozumel, Felipe Carrillo Puerto
|
||||
UTC-5 | America/Cayman | Cayman Islands | George Town, West Bay, Bodden Town, North Side, East End
|
||||
UTC-5 | America/Detroit | United States | Detroit, Grand Rapids, Warren, Sterling Heights, Ann Arbor
|
||||
UTC-5 | America/Eirunepe | Brazil | Eirunepé, Benjamin Constant, Envira
|
||||
UTC-5 | America/Grand_Turk | Turks and Caicos Islands | Cockburn Town
|
||||
UTC-5 | America/Guayaquil | Ecuador | Quito, Guayaquil, Cuenca, Santo Domingo de los Colorados, Ambato
|
||||
UTC-5 | America/Havana | Cuba | Havana, Santiago de Cuba, Camagüey, Holguín, Guantánamo
|
||||
UTC-5 | America/Indiana/Indianapolis | United States | Indianapolis, Fort Wayne, South Bend, Carmel, Bloomington
|
||||
UTC-5 | America/Indiana/Marengo | United States |
|
||||
UTC-5 | America/Indiana/Petersburg | United States |
|
||||
UTC-5 | America/Indiana/Vevay | United States |
|
||||
UTC-5 | America/Indiana/Vincennes | United States | Jasper, Washington, Huntingburg
|
||||
UTC-5 | America/Indiana/Winamac | United States |
|
||||
UTC-5 | America/Iqaluit | Canada | Iqaluit
|
||||
UTC-5 | America/Jamaica | Jamaica | Kingston, New Kingston, Spanish Town, Portmore, Montego Bay
|
||||
UTC-5 | America/Kentucky/Louisville | United States | Louisville, Jeffersonville, New Albany, Jeffersontown, Pleasure Ridge Park
|
||||
UTC-5 | America/Kentucky/Monticello | United States | Monticello
|
||||
UTC-5 | America/Lima | Peru | Lima, Callao, Arequipa, Trujillo, Chiclayo
|
||||
UTC-5 | America/Nassau | Bahamas | Nassau, Lucaya, Freeport, West End, Cooper’s Town
|
||||
UTC-5 | America/New_York | United States | New York City, Brooklyn, Queens, Philadelphia, Manhattan
|
||||
UTC-5 | America/Panama | Panama | Panamá, San Miguelito, Juan Díaz, David, Arraiján
|
||||
UTC-5 | America/Port-au-Prince | Haiti | Port-au-Prince, Carrefour, Delmas 73, Port-de-Paix, Pétionville
|
||||
UTC-5 | America/Rio_Branco | Brazil | Rio Branco, Cruzeiro do Sul, Senador Guiomard, Sena Madureira, Tarauacá
|
||||
UTC-5 | America/Toronto | Canada | Toronto, Montréal, Ottawa, Mississauga, Brampton
|
||||
UTC-4 | America/Anguilla | Anguilla | The Valley, Blowing Point Village, Sandy Ground Village, The Quarter, Sandy Hill
|
||||
UTC-4 | America/Antigua | Antigua and Barbuda | Saint John’s, Piggotts, Bolands, Codrington, Parham
|
||||
UTC-4 | America/Aruba | Aruba | Oranjestad, Tanki Leendert, San Nicolas, Santa Cruz, Paradera
|
||||
UTC-4 | America/Asuncion | Paraguay | Asunción, Ciudad del Este, San Lorenzo, Capiatá, Lambaré
|
||||
UTC-4 | America/Barbados | Barbados | Bridgetown, Speightstown, Oistins, Bathsheba, Holetown
|
||||
UTC-4 | America/Blanc-Sablon | Canada |
|
||||
UTC-4 | America/Boa_Vista | Brazil | Boa Vista
|
||||
UTC-4 | America/Campo_Grande | Brazil | Campo Grande, Dourados, Corumbá, Três Lagoas, Ponta Porã
|
||||
UTC-4 | America/Caracas | Venezuela | Caracas, Maracaibo, Maracay, Valencia, Barquisimeto
|
||||
UTC-4 | America/Cuiaba | Brazil | Cuiabá, Várzea Grande, Rondonópolis, Sinop, Barra do Garças
|
||||
UTC-4 | America/Curacao | Curacao | Willemstad, Sint Michiel Liber
|
||||
UTC-4 | America/Dominica | Dominica | Roseau, Portsmouth, Berekua, Saint Joseph, Wesley
|
||||
UTC-4 | America/Glace_Bay | Canada | Sydney, Glace Bay, Sydney Mines
|
||||
UTC-4 | America/Goose_Bay | Canada | Happy Valley-Goose Bay, Labrador City
|
||||
UTC-4 | America/Grenada | Grenada | Saint George's, Gouyave, Grenville, Victoria, Saint David’s
|
||||
UTC-4 | America/Guadeloupe | Guadeloupe | Les Abymes, Baie-Mahault, Le Gosier, Petit-Bourg, Sainte-Anne
|
||||
UTC-4 | America/Guyana | Guyana | Georgetown, Linden, New Amsterdam, Anna Regina, Bartica
|
||||
UTC-4 | America/Halifax | Canada | Halifax, Dartmouth, Charlottetown, Lower Sackville, Cole Harbour
|
||||
UTC-4 | America/Kralendijk | Bonaire, Saint Eustatius and Saba | Kralendijk, Oranjestad, The Bottom
|
||||
UTC-4 | America/La_Paz | Bolivia | La Paz, Santa Cruz de la Sierra, Cochabamba, Sucre, Oruro
|
||||
UTC-4 | America/Lower_Princes | Sint Maarten | Cul de Sac, Lower Prince’s Quarter, Koolbaai, Philipsburg
|
||||
UTC-4 | America/Manaus | Brazil | Manaus, Itacoatiara, Parintins, Manacapuru, Coari
|
||||
UTC-4 | America/Marigot | Saint Martin | Marigot
|
||||
UTC-4 | America/Martinique | Martinique | Fort-de-France, Le Lamentin, Le Robert, Sainte-Marie, Le François
|
||||
UTC-4 | America/Moncton | Canada | Moncton, Saint John, Fredericton, Dieppe, Miramichi
|
||||
UTC-4 | America/Montserrat | Montserrat | Brades, Saint Peters, Plymouth
|
||||
UTC-4 | America/Porto_Velho | Brazil | Porto Velho, Ji Paraná, Vilhena, Ariquemes, Cacoal
|
||||
UTC-4 | America/Port_of_Spain | Trinidad and Tobago | Chaguanas, Mon Repos, San Fernando, Port of Spain, Rio Claro
|
||||
UTC-4 | America/Puerto_Rico | Puerto Rico | San Juan, Bayamón, Carolina, Ponce, Arecibo
|
||||
UTC-4 | America/Santiago | Chile | Santiago, Puente Alto, Antofagasta, Viña del Mar, Valparaíso
|
||||
UTC-4 | America/Santo_Domingo | Dominican Republic | Santo Domingo, Santiago de los Caballeros, Santo Domingo Oeste, Santo Domingo Este, San Pedro de Macorís
|
||||
UTC-4 | America/St_Barthelemy | Saint Barthelemy | Gustavia
|
||||
UTC-4 | America/St_Kitts | Saint Kitts and Nevis | Basseterre, Fig Tree, Market Shop, Saint Paul’s, Middle Island
|
||||
UTC-4 | America/St_Lucia | Saint Lucia | Castries, Bisee, Vieux Fort, Micoud, Soufrière
|
||||
UTC-4 | America/St_Thomas | U.S. Virgin Islands | Saint Croix, Charlotte Amalie, Cruz Bay
|
||||
UTC-4 | America/St_Vincent | Saint Vincent and the Grenadines | Kingstown, Georgetown, Barrouallie, Port Elizabeth, Chateaubelair
|
||||
UTC-4 | America/Thule | Greenland |
|
||||
UTC-4 | America/Tortola | British Virgin Islands | Road Town
|
||||
UTC-4 | Atlantic/Bermuda | Bermuda | Hamilton
|
||||
UTC-3:30 | America/St_Johns | Canada | St. John's, Mount Pearl, Corner Brook, Conception Bay South, Grand Falls-Windsor
|
||||
UTC-3 | America/Araguaina | Brazil | Palmas, Araguaína, Gurupi, Miracema do Tocantins, Taguatinga
|
||||
UTC-3 | America/Argentina/Buenos_Aires | Argentina | Buenos Aires, Mar del Plata, Bahía Blanca, Merlo, Quilmes
|
||||
UTC-3 | America/Argentina/Catamarca | Argentina | Catamarca, Comodoro Rivadavia, Trelew, Puerto Madryn, Esquel
|
||||
UTC-3 | America/Argentina/Cordoba | Argentina | Córdoba, Rosario, Santa Fe, Corrientes, Posadas
|
||||
UTC-3 | America/Argentina/Jujuy | Argentina | San Salvador de Jujuy, San Pedro de Jujuy, Libertador General San Martín, Palpalá, La Quiaca
|
||||
UTC-3 | America/Argentina/La_Rioja | Argentina | La Rioja, Chilecito, Arauco, Chamical
|
||||
UTC-3 | America/Argentina/Mendoza | Argentina | San Rafael, Mendoza, San Martín
|
||||
UTC-3 | America/Argentina/Rio_Gallegos | Argentina | Río Gallegos, Caleta Olivia, Pico Truncado, Puerto Deseado, Las Heras
|
||||
UTC-3 | America/Argentina/Salta | Argentina | Salta, Neuquén, Santa Rosa, San Carlos de Bariloche, Cipolletti
|
||||
UTC-3 | America/Argentina/San_Juan | Argentina | San Juan, Chimbas, Santa Lucía, Pocito, Caucete
|
||||
UTC-3 | America/Argentina/San_Luis | Argentina | San Luis, Villa Mercedes, La Punta, Merlo, Justo Daract
|
||||
UTC-3 | America/Argentina/Tucuman | Argentina | San Miguel de Tucumán, Yerba Buena, Tafí Viejo, Alderetes, Aguilares
|
||||
UTC-3 | America/Argentina/Ushuaia | Argentina | Ushuaia, Río Grande
|
||||
UTC-3 | America/Bahia | Brazil | Salvador, Feira de Santana, Vitória da Conquista, Itabuna, Camaçari
|
||||
UTC-3 | America/Belem | Brazil | Belém, Macapá, Ananindeua, Parauapebas, Marabá
|
||||
UTC-3 | America/Cayenne | French Guiana | Cayenne, Matoury, Saint-Laurent-du-Maroni, Kourou, Rémire-Montjoly
|
||||
UTC-3 | America/Fortaleza | Brazil | Fortaleza, São Luís, Natal, Teresina, João Pessoa
|
||||
UTC-3 | America/Maceio | Brazil | Maceió, Aracaju, Arapiraca, Nossa Senhora do Socorro, São Cristóvão
|
||||
UTC-3 | America/Miquelon | Saint Pierre and Miquelon | Saint-Pierre, Miquelon
|
||||
UTC-3 | America/Montevideo | Uruguay | Montevideo, Salto, Paysandú, Las Piedras, Rivera
|
||||
UTC-3 | America/Paramaribo | Suriname | Paramaribo, Lelydorp, Brokopondo, Nieuw Nickerie, Meerzorg
|
||||
UTC-3 | America/Punta_Arenas | Chile | Punta Arenas, Puerto Natales
|
||||
UTC-3 | America/Recife | Brazil | Recife, Jaboatão, Jaboatão dos Guararapes, Olinda, Paulista
|
||||
UTC-3 | America/Santarem | Brazil | Santarém, Altamira, Itaituba, Óbidos, Oriximiná
|
||||
UTC-3 | America/Sao_Paulo | Brazil | São Paulo, Rio de Janeiro, Belo Horizonte, Brasília, Curitiba
|
||||
UTC-3 | Antarctica/Palmer | Antarctica |
|
||||
UTC-3 | Antarctica/Rothera | Antarctica |
|
||||
UTC-3 | Atlantic/Stanley | Falkland Islands | Stanley
|
||||
UTC-2 | America/Noronha | Brazil |
|
||||
UTC-2 | America/Nuuk | Greenland | Nuuk, Sisimiut, Ilulissat, Qaqortoq, Aasiaat
|
||||
UTC-2 | Atlantic/South_Georgia | South Georgia and the South Sandwich Islands | Grytviken
|
||||
UTC-1 | America/Scoresbysund | Greenland |
|
||||
UTC-1 | Atlantic/Azores | Portugal | Ponta Delgada, Lagoa, Angra do Heroísmo, Rosto de Cão, Rabo de Peixe
|
||||
UTC-1 | Atlantic/Cape_Verde | Cabo Verde | Praia, Mindelo, Espargos, Assomada, Tarrafal
|
||||
UTC+0 | Africa/Abidjan | Ivory Coast | Abidjan, Abobo, Bouaké, Korhogo, Daloa
|
||||
UTC+0 | Africa/Accra | Ghana | Kumasi, Accra, Tamale, Takoradi, Sekondi
|
||||
UTC+0 | Africa/Bamako | Mali | Bamako, Ségou, Sikasso, Mopti, Koutiala
|
||||
UTC+0 | Africa/Banjul | Gambia | Serekunda, Brikama, Bununka Kunda, Sukuta, Talinding
|
||||
UTC+0 | Africa/Bissau | Guinea-Bissau | Bissau, Gabú, Bafatá, Canchungo, Bissorã
|
||||
UTC+0 | Africa/Casablanca | Morocco | Casablanca, Rabat, Fès, Sale, Marrakesh
|
||||
UTC+0 | Africa/Conakry | Guinea | Conakry, Camayenne, Nzérékoré, Kankan, Manéah
|
||||
UTC+0 | Africa/Dakar | Senegal | Dakar, Pikine, Touba, Thiès, Thiès Nones
|
||||
UTC+0 | Africa/El_Aaiun | Western Sahara | Laayoune, Dakhla, Boujdour, Laayoune Plage
|
||||
UTC+0 | Africa/Freetown | Sierra Leone | Freetown, Bo, Kenema, Koidu, Makeni
|
||||
UTC+0 | Africa/Lome | Togo | Lomé, Sokodé, Kara, Atakpamé, Kpalimé
|
||||
UTC+0 | Africa/Monrovia | Liberia | Monrovia, Gbarnga, Buchanan, Kakata, Zwedru
|
||||
UTC+0 | Africa/Nouakchott | Mauritania | Nouakchott, Nouadhibou, Dar Naim, Néma, Kaédi
|
||||
UTC+0 | Africa/Ouagadougou | Burkina Faso | Ouagadougou, Bobo-Dioulasso, Koudougou, Saaba, Ouahigouya
|
||||
UTC+0 | Africa/Sao_Tome | Sao Tome and Principe | São Tomé, Santo António
|
||||
UTC+0 | America/Danmarkshavn | Greenland |
|
||||
UTC+0 | Antarctica/Troll | Antarctica |
|
||||
UTC+0 | Atlantic/Canary | Spain | Las Palmas de Gran Canaria, Santa Cruz de Tenerife, La Laguna, Telde, Arona
|
||||
UTC+0 | Atlantic/Faroe | Faroe Islands | Tórshavn, Klaksvík, Fuglafjørður, Miðvágur, Tvøroyri
|
||||
UTC+0 | Atlantic/Madeira | Portugal | Funchal, Câmara de Lobos, São Martinho, Caniço, Machico
|
||||
UTC+0 | Atlantic/Reykjavik | Iceland | Reykjavík, Kópavogur, Hafnarfjörður, Reykjanesbær, Akureyri
|
||||
UTC+0 | Atlantic/St_Helena | Saint Helena | Jamestown, Georgetown, Edinburgh of the Seven Seas
|
||||
UTC+0 | Europe/Dublin | Ireland | Dublin, South Dublin, Cork, Limerick, Galway
|
||||
UTC+0 | Europe/Guernsey | Guernsey | Saint Peter Port, Saint Sampson, St Martin, St Anne, Saint Saviour
|
||||
UTC+0 | Europe/Isle_of_Man | Isle of Man | Douglas, Ramsey, Peel, Port Erin, Castletown
|
||||
UTC+0 | Europe/Jersey | Jersey | Saint Helier, Le Hocq
|
||||
UTC+0 | Europe/Lisbon | Portugal | Lisbon, Porto, Amadora, Braga, Setúbal
|
||||
UTC+0 | Europe/London | United Kingdom | London, Birmingham, Liverpool, Glasgow, Sheffield
|
||||
UTC+1 | Africa/Algiers | Algeria | Algiers, Oran, Constantine, Annaba, Blida
|
||||
UTC+1 | Africa/Bangui | Central African Republic | Bangui, Bimbo, Bégoua, Carnot, Berbérati
|
||||
UTC+1 | Africa/Brazzaville | Republic of the Congo | Brazzaville, Pointe-Noire, Dolisie, Nkayi, Kayes
|
||||
UTC+1 | Africa/Ceuta | Spain | Melilla
|
||||
UTC+1 | Africa/Douala | Cameroon | Douala, Yaoundé, Bamenda, Bafoussam, Maroua
|
||||
UTC+1 | Africa/Kinshasa | Democratic Republic of the Congo | Kinshasa, Kikwit, Masina, Mbandaka, Matadi
|
||||
UTC+1 | Africa/Lagos | Nigeria | Lagos, Kano, Ibadan, Port Harcourt, Benin City
|
||||
UTC+1 | Africa/Libreville | Gabon | Libreville, Port-Gentil, Franceville, Owendo, Oyem
|
||||
UTC+1 | Africa/Luanda | Angola | Luanda, Lubango, Huambo, Benguela, Cabinda
|
||||
UTC+1 | Africa/Malabo | Equatorial Guinea | Bata, Malabo, Ebebiyin, Aconibe, Añisoc
|
||||
UTC+1 | Africa/Ndjamena | Chad | N'Djamena, Moundou, Abéché, Sarh, Kelo
|
||||
UTC+1 | Africa/Niamey | Niger | Niamey, Zinder, Maradi, Agadez, Alaghsas
|
||||
UTC+1 | Africa/Porto-Novo | Benin | Cotonou, Abomey-Calavi, Porto-Novo, Parakou, Godomè
|
||||
UTC+1 | Africa/Tunis | Tunisia | Tunis, Sfax, Sousse, Kairouan, Bizerte
|
||||
UTC+1 | Africa/Windhoek | Namibia | Windhoek, Rundu, Walvis Bay, Oshakati, Swakopmund
|
||||
UTC+1 | Arctic/Longyearbyen | Svalbard and Jan Mayen | Longyearbyen, Olonkinbyen
|
||||
UTC+1 | Europe/Amsterdam | The Netherlands | Amsterdam, Rotterdam, The Hague, Utrecht, Groningen
|
||||
UTC+1 | Europe/Andorra | Andorra | Andorra la Vella, les Escaldes, Encamp, Sant Julià de Lòria, la Massana
|
||||
UTC+1 | Europe/Belgrade | Serbia | Belgrade, Pristina, Niš, Novi Sad, Prizren
|
||||
UTC+1 | Europe/Berlin | Germany | Berlin, Hamburg, Munich, Köln, Frankfurt am Main
|
||||
UTC+1 | Europe/Bratislava | Slovakia | Bratislava, Košice, Nitra, Prešov, Žilina
|
||||
UTC+1 | Europe/Brussels | Belgium | Brussels, Antwerpen, Gent, Charleroi, Liège
|
||||
UTC+1 | Europe/Budapest | Hungary | Budapest, Debrecen, Szeged, Miskolc, Pécs
|
||||
UTC+1 | Europe/Copenhagen | Denmark | Copenhagen, Århus, Odense, Aalborg, Frederiksberg
|
||||
UTC+1 | Europe/Gibraltar | Gibraltar | Gibraltar
|
||||
UTC+1 | Europe/Ljubljana | Slovenia | Ljubljana, Maribor, Kranj, Celje, Koper
|
||||
UTC+1 | Europe/Luxembourg | Luxembourg | Luxembourg, Esch-sur-Alzette, Dudelange, Schifflange, Bettembourg
|
||||
UTC+1 | Europe/Madrid | Spain | Madrid, Barcelona, Valencia, Sevilla, Zaragoza
|
||||
UTC+1 | Europe/Malta | Malta | San Pawl il-Baħar, Birkirkara, Mosta, Sliema, Qormi
|
||||
UTC+1 | Europe/Monaco | Monaco | Monaco, Monte-Carlo, La Condamine
|
||||
UTC+1 | Europe/Oslo | Norway | Oslo, Bergen, Trondheim, Stavanger, Drammen
|
||||
UTC+1 | Europe/Paris | France | Paris, Marseille, Lyon, Toulouse, Nice
|
||||
UTC+1 | Europe/Podgorica | Montenegro | Podgorica, Nikšić, Herceg Novi, Pljevlja, Budva
|
||||
UTC+1 | Europe/Prague | Czechia | Prague, Brno, Ostrava, Pilsen, Liberec
|
||||
UTC+1 | Europe/Rome | Italy | Rome, Milan, Naples, Turin, Palermo
|
||||
UTC+1 | Europe/San_Marino | San Marino | Serravalle, Borgo Maggiore, San Marino, Domagnano, Fiorentino
|
||||
UTC+1 | Europe/Sarajevo | Bosnia and Herzegovina | Sarajevo, Banja Luka, Zenica, Tuzla, Mostar
|
||||
UTC+1 | Europe/Skopje | North Macedonia | Skopje, Kumanovo, Prilep, Bitola, Čair
|
||||
UTC+1 | Europe/Stockholm | Sweden | Stockholm, Göteborg, Malmö, Uppsala, Linköping
|
||||
UTC+1 | Europe/Tirane | Albania | Tirana, Durrës, Elbasan, Vlorë, Shkodër
|
||||
UTC+1 | Europe/Vaduz | Liechtenstein | Schaan, Vaduz, Triesen, Balzers, Eschen
|
||||
UTC+1 | Europe/Vatican | Vatican | Vatican City
|
||||
UTC+1 | Europe/Vienna | Austria | Vienna, Graz, Linz, Favoriten, Donaustadt
|
||||
UTC+1 | Europe/Warsaw | Poland | Warsaw, Łódź, Kraków, Wrocław, Poznań
|
||||
UTC+1 | Europe/Zagreb | Croatia | Zagreb, Split, Rijeka, Osijek, Zadar
|
||||
UTC+1 | Europe/Zurich | Switzerland | Zürich, Genève, Basel, Lausanne, Bern
|
||||
UTC+2 | Africa/Blantyre | Malawi | Lilongwe, Blantyre, Mzuzu, Zomba, Kasungu
|
||||
UTC+2 | Africa/Bujumbura | Burundi | Bujumbura, Gitega, Ngozi, Rumonge, Cibitoke
|
||||
UTC+2 | Africa/Cairo | Egypt | Cairo, Alexandria, Giza, Shubrā al Khaymah, Port Said
|
||||
UTC+2 | Africa/Gaborone | Botswana | Gaborone, Francistown, Mogoditshane, Maun, Molepolole
|
||||
UTC+2 | Africa/Harare | Zimbabwe | Harare, Bulawayo, Chitungwiza, Mutare, Gweru
|
||||
UTC+2 | Africa/Johannesburg | South Africa | Johannesburg, Cape Town, Durban, Soweto, Pretoria
|
||||
UTC+2 | Africa/Juba | South Sudan | Juba, Winejok, Yei, Malakal, Wau
|
||||
UTC+2 | Africa/Khartoum | Sudan | Khartoum, Omdurman, Nyala, Port Sudan, Kassala
|
||||
UTC+2 | Africa/Kigali | Rwanda | Kigali, Gisenyi, Butare, Gitarama, Musanze
|
||||
UTC+2 | Africa/Lubumbashi | Democratic Republic of the Congo | Lubumbashi, Mbuji-Mayi, Kananga, Kisangani, Bukavu
|
||||
UTC+2 | Africa/Lusaka | Zambia | Lusaka, Ndola, Kitwe, Chipata, Kabwe
|
||||
UTC+2 | Africa/Maputo | Mozambique | Maputo, Matola, Nampula, Beira, Chimoio
|
||||
UTC+2 | Africa/Maseru | Lesotho | Maseru, Maputsoe, Mohale's Hoek, Mafeteng, Hlotse
|
||||
UTC+2 | Africa/Mbabane | Eswatini | Manzini, Mbabane, Big Bend, Malkerns, Nhlangano
|
||||
UTC+2 | Africa/Tripoli | Libya | Tripoli, Benghazi, Misratah, Zliten, Al Khums
|
||||
UTC+2 | Asia/Beirut | Lebanon | Beirut, Ra’s Bayrūt, Tripoli, Sidon, Tyre
|
||||
UTC+2 | Asia/Famagusta | Cyprus | Famagusta, Kyrenia, Égkomi, Protaras, Paralímni
|
||||
UTC+2 | Asia/Gaza | Palestinian Territory | Gaza, Khān Yūnis, Jabālyā, Rafaḩ, Dayr al Balaḩ
|
||||
UTC+2 | Asia/Hebron | Palestinian Territory | East Jerusalem, Hebron, Nablus, Ţūlkarm, Qalqīlyah
|
||||
UTC+2 | Asia/Jerusalem | Israel | Jerusalem, Tel Aviv, West Jerusalem, Haifa, Rishon LeTsiyyon
|
||||
UTC+2 | Asia/Nicosia | Cyprus | Nicosia, Limassol, Larnaca, Stróvolos, Káto Lakatámeia
|
||||
UTC+2 | Europe/Athens | Greece | Athens, Thessaloníki, Pátra, Piraeus, Lárisa
|
||||
UTC+2 | Europe/Bucharest | Romania | Bucharest, Sector 3, Iaşi, Sector 6, Sector 2
|
||||
UTC+2 | Europe/Chisinau | Moldova | Chisinau, Tiraspol, Bălţi, Bender, Rîbniţa
|
||||
UTC+2 | Europe/Helsinki | Finland | Helsinki, Espoo, Tampere, Oulu, Turku
|
||||
UTC+2 | Europe/Kaliningrad | Russia | Kaliningrad, Chernyakhovsk, Sovetsk, Baltiysk, Gusev
|
||||
UTC+2 | Europe/Kyiv | Ukraine | Kyiv, Kharkiv, Odesa, Dnipro, Donetsk
|
||||
UTC+2 | Europe/Mariehamn | Aland Islands | Mariehamn
|
||||
UTC+2 | Europe/Riga | Latvia | Riga, Daugavpils, Liepāja, Jelgava, Jūrmala
|
||||
UTC+2 | Europe/Sofia | Bulgaria | Sofia, Plovdiv, Varna, Burgas, Stara Zagora
|
||||
UTC+2 | Europe/Tallinn | Estonia | Tallinn, Tartu, Narva, Pärnu, Nõmme
|
||||
UTC+2 | Europe/Vilnius | Lithuania | Vilnius, Kaunas, Klaipėda, Šiauliai, Panevėžys
|
||||
UTC+3 | Africa/Addis_Ababa | Ethiopia | Addis Ababa, Jijiga, Gonder, Mek'ele, Nazrēt
|
||||
UTC+3 | Africa/Asmara | Eritrea | Asmara, Keren, Himora, Massawa, Assab
|
||||
UTC+3 | Africa/Dar_es_Salaam | Tanzania | Dar es Salaam, Mwanza, Arusha, Mbeya, Morogoro
|
||||
UTC+3 | Africa/Djibouti | Djibouti | Djibouti, Ali Sabih, Dikhil, Tadjoura, Arta
|
||||
UTC+3 | Africa/Kampala | Uganda | Kampala, Gulu, Lira, Mbarara, Jinja
|
||||
UTC+3 | Africa/Mogadishu | Somalia | Mogadishu, Borama, Hargeysa, Berbera, Kismayo
|
||||
UTC+3 | Africa/Nairobi | Kenya | Nairobi, Kakamega, Mombasa, Nakuru, Ruiru
|
||||
UTC+3 | Antarctica/Syowa | Antarctica |
|
||||
UTC+3 | Asia/Aden | Yemen | Sanaa, Aden, Al Ḩudaydah, Taiz, Mukalla
|
||||
UTC+3 | Asia/Amman | Jordan | Amman, Zarqa, Irbid, Russeifa, Wādī as Sīr
|
||||
UTC+3 | Asia/Baghdad | Iraq | Baghdad, Al Mawşil al Jadīdah, Al Başrah al Qadīmah, Mosul, Erbil
|
||||
UTC+3 | Asia/Bahrain | Bahrain | Ar Rifā‘, Manama, Al Muharraq, Dār Kulayb, Madīnat Ḩamad
|
||||
UTC+3 | Asia/Damascus | Syria | Aleppo, Damascus, Homs, Latakia, Ar Raqqah
|
||||
UTC+3 | Asia/Kuwait | Kuwait | Al Aḩmadī, Ḩawallī, As Sālimīyah, Şabāḩ as Sālim, Al Farwānīyah
|
||||
UTC+3 | Asia/Qatar | Qatar | Doha, Ar Rayyān, Umm Şalāl Muḩammad, Al Wakrah, Al Khawr
|
||||
UTC+3 | Asia/Riyadh | Saudi Arabia | Jeddah, Riyadh, Mecca, Medina, Dammam
|
||||
UTC+3 | Europe/Istanbul | Turkey | Istanbul, Ankara, Bursa, İzmir, Gaziantep
|
||||
UTC+3 | Europe/Kirov | Russia | Kirov, Kirovo-Chepetsk, Vyatskiye Polyany, Slobodskoy, Kotel’nich
|
||||
UTC+3 | Europe/Minsk | Belarus | Minsk, Homyel', Hrodna, Mahilyow, Brest
|
||||
UTC+3 | Europe/Moscow | Russia | Moscow, Saint Petersburg, Nizhniy Novgorod, Kazan, Rostov-na-Donu
|
||||
UTC+3 | Europe/Simferopol | Ukraine | Sevastopol, Simferopol, Kerch, Yevpatoriya, Yalta
|
||||
UTC+3 | Europe/Volgograd | Russia | Volgograd, Volzhsky, Kamyshin, Mikhaylovka, Uryupinsk
|
||||
UTC+3 | Indian/Antananarivo | Madagascar | Antananarivo, Toamasina, Antsirabe, Mahajanga, Fianarantsoa
|
||||
UTC+3 | Indian/Comoro | Comoros | Moroni, Moutsamoudou, Fomboni, Tsimbeo, Domoni
|
||||
UTC+3 | Indian/Mayotte | Mayotte | Mamoudzou, Koungou, Dzaoudzi, Dembeni, Sada
|
||||
UTC+3:30 | Asia/Tehran | Iran | Tehran, Mashhad, Isfahan, Karaj, Tabriz
|
||||
UTC+4 | Asia/Baku | Azerbaijan | Baku, Sumqayıt, Ganja, Lankaran, Tovuz
|
||||
UTC+4 | Asia/Dubai | United Arab Emirates | Dubai, Abu Dhabi, Sharjah, Al Ain City, Ajman City
|
||||
UTC+4 | Asia/Muscat | Oman | Muscat, Seeb, Bawshar, ‘Ibrī, Şalālah
|
||||
UTC+4 | Asia/Tbilisi | Georgia | Tbilisi, Batumi, Kutaisi, Rustavi, Sokhumi
|
||||
UTC+4 | Asia/Yerevan | Armenia | Yerevan, Gyumri, Vanadzor, Vagharshapat, Hrazdan
|
||||
UTC+4 | Europe/Astrakhan | Russia | Astrakhan, Akhtubinsk, Znamensk, Kharabali, Kamyzyak
|
||||
UTC+4 | Europe/Samara | Russia | Samara, Tolyatti, Izhevsk, Syzran, Novokuybyshevsk
|
||||
UTC+4 | Europe/Saratov | Russia | Saratov, Balakovo, Engels, Balashov, Vol’sk
|
||||
UTC+4 | Europe/Ulyanovsk | Russia | Ulyanovsk, Dimitrovgrad, Inza, Barysh, Novoul’yanovsk
|
||||
UTC+4 | Indian/Mahe | Seychelles | Victoria, Anse Boileau, Bel Ombre, Beau Vallon, Cascade
|
||||
UTC+4 | Indian/Mauritius | Mauritius | Port Louis, Vacoas, Beau Bassin-Rose Hill, Curepipe, Quatre Bornes
|
||||
UTC+4 | Indian/Reunion | Reunion | Saint-Denis, Saint-Paul, Le Tampon, Saint-Pierre, Saint-André
|
||||
UTC+4:30 | Asia/Kabul | Afghanistan | Kabul, Herāt, Mazār-e Sharīf, Kandahār, Jalālābād
|
||||
UTC+5 | Antarctica/Mawson | Antarctica |
|
||||
UTC+5 | Asia/Aqtau | Kazakhstan | Shevchenko, Zhanaozen, Beyneu, Shetpe, Kuryk
|
||||
UTC+5 | Asia/Aqtobe | Kazakhstan | Aktobe, Kandyagash, Shalqar, Khromtau, Embi
|
||||
UTC+5 | Asia/Ashgabat | Turkmenistan | Ashgabat, Türkmenabat, Daşoguz, Mary, Balkanabat
|
||||
UTC+5 | Asia/Atyrau | Kazakhstan | Atyrau, Qulsary, Shalkar, Balykshi, Maqat
|
||||
UTC+5 | Asia/Dushanbe | Tajikistan | Dushanbe, Isfara, Istaravshan, Kŭlob, Konibodom
|
||||
UTC+5 | Asia/Karachi | Pakistan | Karachi, Lahore, Faisalabad, Rawalpindi, Multan
|
||||
UTC+5 | Asia/Oral | Kazakhstan | Oral, Aqsay, Zhanibek, Tasqala, Zhumysker
|
||||
UTC+5 | Asia/Qyzylorda | Kazakhstan | Kyzylorda, Novokazalinsk, Aral, Shiyeli, Zhangaqorghan
|
||||
UTC+5 | Asia/Samarkand | Uzbekistan | Samarkand, Nukus, Bukhara, Qarshi, Tirmiz
|
||||
UTC+5 | Asia/Tashkent | Uzbekistan | Tashkent, Namangan, Andijon, Fergana, Qo‘qon
|
||||
UTC+5 | Asia/Yekaterinburg | Russia | Yekaterinburg, Chelyabinsk, Ufa, Perm, Tyumen
|
||||
UTC+5 | Indian/Kerguelen | French Southern Territories | Port-aux-Français
|
||||
UTC+5 | Indian/Maldives | Maldives | Male, Fuvahmulah, Hithadhoo, Kulhudhuffushi, Thinadhoo
|
||||
UTC+5:30 | Asia/Colombo | Sri Lanka | Colombo, Dehiwala-Mount Lavinia, Maharagama, Jaffna, Moratuwa
|
||||
UTC+5:30 | Asia/Kolkata | India | Mumbai, Delhi, Bengaluru, Hyderābād, Ahmedabad
|
||||
UTC+5:45 | Asia/Kathmandu | Nepal | Kathmandu, Bharatpur, Pātan, Birgañj, Biratnagar
|
||||
UTC+6 | Antarctica/Vostok | Antarctica |
|
||||
UTC+6 | Asia/Almaty | Kazakhstan | Almaty, Shymkent, Karagandy, Taraz, Astana
|
||||
UTC+6 | Asia/Bishkek | Kyrgyzstan | Bishkek, Osh, Jalal-Abad, Karakol, Tokmok
|
||||
UTC+6 | Asia/Dhaka | Bangladesh | Dhaka, Chattogram, Khulna, Rangpur, Comilla
|
||||
UTC+6 | Asia/Omsk | Russia | Omsk, Tara, Kalachinsk, Znamenskoye, Tavricheskoye
|
||||
UTC+6 | Asia/Qostanay | Kazakhstan | Kostanay, Rudnyy, Baikonur, Zhitikara, Arkalyk
|
||||
UTC+6 | Asia/Thimphu | Bhutan | Thimphu, Phuntsholing, Tsirang, Punākha, Pemagatshel
|
||||
UTC+6 | Asia/Urumqi | China | Ürümqi, Shihezi, Korla, Aksu, Kashgar
|
||||
UTC+6 | Indian/Chagos | British Indian Ocean Territory |
|
||||
UTC+6:30 | Asia/Yangon | Myanmar | Yangon, Mandalay, Nay Pyi Taw, Mawlamyine, Kyain Seikgyi Township
|
||||
UTC+6:30 | Indian/Cocos | Cocos Islands | West Island
|
||||
UTC+7 | Antarctica/Davis | Antarctica |
|
||||
UTC+7 | Asia/Bangkok | Thailand | Hanoi, Bangkok, Haiphong, Samut Prakan, Huế
|
||||
UTC+7 | Asia/Barnaul | Russia | Barnaul, Biysk, Rubtsovsk, Gorno-Altaysk, Novoaltaysk
|
||||
UTC+7 | Asia/Hovd | Mongolia | Ulaangom, Khovd, Ölgii, Altai, Uliastay
|
||||
UTC+7 | Asia/Ho_Chi_Minh | Vietnam | Ho Chi Minh City, Da Nang, Biên Hòa, Cần Thơ, Thuận An
|
||||
UTC+7 | Asia/Jakarta | Indonesia | Jakarta, Surabaya, Bekasi, Bandung, Medan
|
||||
UTC+7 | Asia/Krasnoyarsk | Russia | Krasnoyarsk, Abakan, Norilsk, Achinsk, Kyzyl
|
||||
UTC+7 | Asia/Novokuznetsk | Russia | Kemerovo, Novokuznetsk, Prokop’yevsk, Leninsk-Kuznetsky, Kiselëvsk
|
||||
UTC+7 | Asia/Novosibirsk | Russia | Novosibirsk, Berdsk, Iskitim, Akademgorodok, Kuybyshev
|
||||
UTC+7 | Asia/Phnom_Penh | Cambodia | Phnom Penh, Takeo, Siem Reap, Battambang, Paoy Paet
|
||||
UTC+7 | Asia/Pontianak | Indonesia | Pontianak, Palangkaraya, Singkawang, Sampit, Sungai Raya
|
||||
UTC+7 | Asia/Tomsk | Russia | Tomsk, Seversk, Strezhevoy, Kolpashevo, Asino
|
||||
UTC+7 | Asia/Vientiane | Laos | Vientiane, Savannakhet, Pakse, Thakhèk, Luang Prabang
|
||||
UTC+7 | Indian/Christmas | Christmas Island | Flying Fish Cove
|
||||
UTC+8 | Asia/Brunei | Brunei | Bandar Seri Begawan, Kuala Belait, Seria, Tutong, Bangar
|
||||
UTC+8 | Asia/Choibalsan | Mongolia | Baruun-Urt, Choibalsan
|
||||
UTC+8 | Asia/Hong_Kong | Hong Kong | Hong Kong, Kowloon, Victoria, Tuen Mun, Sha Tin
|
||||
UTC+8 | Asia/Irkutsk | Russia | Irkutsk, Ulan-Ude, Bratsk, Angarsk, Ust’-Ilimsk
|
||||
UTC+8 | Asia/Kuala_Lumpur | Malaysia | Kuala Lumpur, Petaling Jaya, Klang, Johor Bahru, Ipoh
|
||||
UTC+8 | Asia/Kuching | Malaysia | Kota Kinabalu, Sandakan, Kuching, Tawau, Miri
|
||||
UTC+8 | Asia/Macau | Macao | Macau, Taipa
|
||||
UTC+8 | Asia/Makassar | Indonesia | Makassar, Samarinda, Denpasar, Balikpapan, Banjarmasin
|
||||
UTC+8 | Asia/Manila | Philippines | Quezon City, Davao, Manila, Caloocan City, Budta
|
||||
UTC+8 | Asia/Shanghai | China | Shanghai, Beijing, Shenzhen, Guangzhou, Chengdu
|
||||
UTC+8 | Asia/Singapore | Singapore | Singapore, Jurong Town, Woodlands, Punggol, Kampong Pasir Ris
|
||||
UTC+8 | Asia/Taipei | Taiwan | Taipei, Kaohsiung, Taichung, Tainan, Banqiao
|
||||
UTC+8 | Asia/Ulaanbaatar | Mongolia | Ulan Bator, Erdenet, Darhan, Mörön, Bayanhongor
|
||||
UTC+8 | Australia/Perth | Australia | Perth, Mandurah, Bunbury, Baldivis, Geraldton
|
||||
UTC+8:45 | Australia/Eucla | Australia |
|
||||
UTC+9 | Asia/Chita | Russia | Chita, Krasnokamensk, Borzya, Petrovsk-Zabaykal’skiy, Aginskoye
|
||||
UTC+9 | Asia/Dili | Timor Leste | Dili, Maliana, Suai, Likisá, Aileu
|
||||
UTC+9 | Asia/Jayapura | Indonesia | Jayapura, Ambon, Sorong, Ternate, Manokwari
|
||||
UTC+9 | Asia/Khandyga | Russia |
|
||||
UTC+9 | Asia/Pyongyang | North Korea | Pyongyang, Hamhŭng, Namp’o, Sunch’ŏn, Hŭngnam
|
||||
UTC+9 | Asia/Seoul | South Korea | Seoul, Busan, Incheon, Daegu, Gwangju
|
||||
UTC+9 | Asia/Tokyo | Japan | Tokyo, Yokohama, Osaka, Nagoya, Sapporo
|
||||
UTC+9 | Asia/Yakutsk | Russia | Yakutsk, Blagoveshchensk, Belogorsk, Neryungri, Svobodnyy
|
||||
UTC+9 | Pacific/Palau | Palau | Koror, Koror Town, Kloulklubed, Ulimang, Mengellang
|
||||
UTC+9:30 | Australia/Adelaide | Australia | Adelaide, Adelaide Hills, Mount Gambier, Morphett Vale, Gawler
|
||||
UTC+9:30 | Australia/Broken_Hill | Australia | Broken Hill
|
||||
UTC+9:30 | Australia/Darwin | Australia | Darwin, Alice Springs, Palmerston, Howard Springs
|
||||
UTC+10 | Antarctica/DumontDUrville | Antarctica |
|
||||
UTC+10 | Antarctica/Macquarie | Australia |
|
||||
UTC+10 | Asia/Ust-Nera | Russia |
|
||||
UTC+10 | Asia/Vladivostok | Russia | Khabarovsk, Vladivostok, Khabarovsk Vtoroy, Komsomolsk-on-Amur, Ussuriysk
|
||||
UTC+10 | Australia/Brisbane | Australia | Brisbane, Gold Coast, Logan City, Townsville, Cairns
|
||||
UTC+10 | Australia/Hobart | Australia | Hobart, Launceston, Burnie, Devonport, Sandy Bay
|
||||
UTC+10 | Australia/Lindeman | Australia |
|
||||
UTC+10 | Australia/Melbourne | Australia | Melbourne, Geelong, Ballarat, Bendigo, Point Cook
|
||||
UTC+10 | Australia/Sydney | Australia | Sydney, Canberra, Newcastle, Wollongong, Maitland
|
||||
UTC+10 | Pacific/Chuuk | Micronesia | Weno, Colonia
|
||||
UTC+10 | Pacific/Guam | Guam | Dededo Village, Yigo Village, Tamuning, Tamuning-Tumon-Harmon Village, Mangilao Village
|
||||
UTC+10 | Pacific/Port_Moresby | Papua New Guinea | Port Moresby, Lae, Mount Hagen, Popondetta, Madang
|
||||
UTC+10 | Pacific/Saipan | Northern Mariana Islands | Saipan, San Jose Village
|
||||
UTC+10:30 | Australia/Lord_Howe | Australia |
|
||||
UTC+11 | Antarctica/Casey | Antarctica |
|
||||
UTC+11 | Asia/Magadan | Russia | Magadan, Ust-Nera, Susuman, Ola
|
||||
UTC+11 | Asia/Sakhalin | Russia | Yuzhno-Sakhalinsk, Korsakov, Kholmsk, Okha, Nevel’sk
|
||||
UTC+11 | Asia/Srednekolymsk | Russia |
|
||||
UTC+11 | Pacific/Bougainville | Papua New Guinea | Arawa, Buka
|
||||
UTC+11 | Pacific/Efate | Vanuatu | Port-Vila, Luganville, Isangel, Sola, Lakatoro
|
||||
UTC+11 | Pacific/Guadalcanal | Solomon Islands | Honiara, Malango, Auki, Gizo, Kirakira
|
||||
UTC+11 | Pacific/Kosrae | Micronesia | Tofol
|
||||
UTC+11 | Pacific/Norfolk | Norfolk Island | Kingston
|
||||
UTC+11 | Pacific/Noumea | New Caledonia | Nouméa, Mont-Dore, Dumbéa, Païta, Wé
|
||||
UTC+11 | Pacific/Pohnpei | Micronesia | Kolonia, Kolonia Town, Palikir - National Government Center
|
||||
UTC+12 | Antarctica/McMurdo | Antarctica |
|
||||
UTC+12 | Asia/Anadyr | Russia | Anadyr, Bilibino
|
||||
UTC+12 | Asia/Kamchatka | Russia | Petropavlovsk-Kamchatsky, Yelizovo, Vilyuchinsk, Klyuchi, Mil’kovo
|
||||
UTC+12 | Pacific/Auckland | New Zealand | Auckland, Wellington, Christchurch, Manukau City, North Shore
|
||||
UTC+12 | Pacific/Fiji | Fiji | Nasinu, Suva, Lautoka, Nadi, Labasa
|
||||
UTC+12 | Pacific/Funafuti | Tuvalu | Funafuti, Savave Village, Tanrake Village, Toga Village, Asau Village
|
||||
UTC+12 | Pacific/Kwajalein | Marshall Islands | Ebaye, Jabat
|
||||
UTC+12 | Pacific/Majuro | Marshall Islands | Majuro, Arno, Jabor, Wotje, Mili
|
||||
UTC+12 | Pacific/Nauru | Nauru | Yaren, Baiti, Anabar, Uaboe, Ijuw
|
||||
UTC+12 | Pacific/Tarawa | Kiribati | Tarawa, Betio Village, Bikenibeu Village
|
||||
UTC+12 | Pacific/Wake | United States Minor Outlying Islands |
|
||||
UTC+12 | Pacific/Wallis | Wallis and Futuna | Mata-Utu, Leava, Alo
|
||||
UTC+12:45 | Pacific/Chatham | New Zealand | Waitangi
|
||||
UTC+13 | Pacific/Apia | Samoa | Apia, Asau, Mulifanua, Afega, Leulumoega
|
||||
UTC+13 | Pacific/Fakaofo | Tokelau | Atafu Village, Nukunonu, Fale old settlement
|
||||
UTC+13 | Pacific/Kanton | Kiribati |
|
||||
UTC+13 | Pacific/Tongatapu | Tonga | Nuku‘alofa, Lapaha, Neiafu, Pangai, ‘Ohonua
|
||||
UTC+14 | Pacific/Kiritimati | Kiribati |
|
||||
<!--rehype:className=left-align show-header-->
|
||||
|
||||
另见
|
||||
---
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
- [时区列表](https://help.aliyun.com/zh/maxcompute/user-guide/time-zones) _(aliyun.com)_
|
||||
- [全部时区列表](https://www.zeitverschiebung.net/cn/all-time-zones.html) _(zeitverschiebung.net)_
|
123
docs/uv.md
Normal file
@ -0,0 +1,123 @@
|
||||
uv 备忘清单
|
||||
===
|
||||
|
||||
一个用 Rust 编写的极快的 Python 包和项目管理工具
|
||||
|
||||
安装
|
||||
---
|
||||
|
||||
### 使用独立安装程序安装
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
#### macOS or Linux
|
||||
|
||||
```sh
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
```
|
||||
|
||||
#### Windows
|
||||
|
||||
```sh
|
||||
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
||||
```
|
||||
|
||||
### 通过PyPI
|
||||
|
||||
```sh
|
||||
# pip
|
||||
pip install uv
|
||||
```
|
||||
|
||||
```sh
|
||||
# pipx
|
||||
pipx install uv
|
||||
```
|
||||
|
||||
入门
|
||||
---
|
||||
|
||||
### 创建新项目
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
```sh
|
||||
# 创建一个目录作为项目的根目录
|
||||
uv init project_name
|
||||
```
|
||||
|
||||
```sh
|
||||
# 将当前目录作为项目的根目录
|
||||
uv init
|
||||
```
|
||||
|
||||
#### 项目的结构
|
||||
|
||||
```sh
|
||||
.
|
||||
├── .venv/ # 虚拟环境目录
|
||||
│ ├── bin/ # 可执行文件
|
||||
│ ├── lib/ # 安装的库
|
||||
│ └── pyvenv.cfg # 虚拟环境配置
|
||||
├── .python-version # 指定 Python 版本
|
||||
├── README.md # 项目说明文档
|
||||
├── main.py # 主程序入口
|
||||
├── pyproject.toml # 项目配置与依赖声明
|
||||
└── uv.lock # 依赖锁定文件(自动生成)
|
||||
```
|
||||
|
||||
### 管理项目依赖
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
#### 添加依赖
|
||||
|
||||
```sh
|
||||
uv add requests
|
||||
```
|
||||
|
||||
#### 指定依赖版本或替代来源
|
||||
|
||||
```sh
|
||||
# 指定版本
|
||||
uv add 'requests==2.28.1'
|
||||
|
||||
# 指定来源
|
||||
uv add git+https://github.com/psf/requests
|
||||
```
|
||||
|
||||
#### 从`requirements.txt`迁移
|
||||
|
||||
```sh
|
||||
uv add -r requirements.txt
|
||||
```
|
||||
|
||||
#### 删除一个包
|
||||
|
||||
```sh
|
||||
uv remove requests
|
||||
```
|
||||
|
||||
#### 升级一个包
|
||||
|
||||
```sh
|
||||
uv lock --upgrade-package requests
|
||||
```
|
||||
|
||||
### 运行脚本
|
||||
|
||||
指定脚本运行
|
||||
|
||||
```sh
|
||||
uv run main.py
|
||||
```
|
||||
|
||||
指定Python版本运行
|
||||
|
||||
```sh
|
||||
uv run --python 3.10 main.py
|
||||
```
|
||||
|
||||
### 构建项目
|
||||
|
||||
```sh
|
||||
uv build
|
||||
```
|
||||
|
||||
构建结果存储在`dist`目录下
|
394
docs/vue.md
@ -841,51 +841,13 @@ export default router
|
||||
### 3.路由的query
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div>
|
||||
<ul class="list">
|
||||
<!-- to的对象写法 -->
|
||||
<li v-for="item of data" :key="item.id">
|
||||
<router-link
|
||||
class="link"
|
||||
:to="{
|
||||
path:'/home/message/mes',
|
||||
query: { id:item.id, title:item.mes }
|
||||
}"
|
||||
>{{item.mes}}</router-link>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name:'HomeChild1',
|
||||
data() {
|
||||
return {
|
||||
data:[
|
||||
{id:1,mes:"消息1"},
|
||||
{id:2,mes:"消息2"},
|
||||
{id:3,mes:"消息3"}
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
<script setup>
|
||||
import { useRoute } from 'vue-router';
|
||||
const route = useRoute();
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.list { margin-left:80px; }
|
||||
.link{
|
||||
color: orange;
|
||||
text-decoration: none;
|
||||
background-color: skyblue;
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
> 接收参数 `{{$route.query.id}}`
|
||||
> 接收参数 `{{route.query.id}}`
|
||||
|
||||
#### 跳转路由并携带参数
|
||||
|
||||
@ -1529,10 +1491,356 @@ declare module 'vue' {
|
||||
from: Route,
|
||||
next: () => void
|
||||
): void
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
## 性能优化
|
||||
|
||||
### 介绍
|
||||
|
||||
性能优化是构建高效 Vue 应用的关键。以下是一些特殊的优化策略,结合 Vue 的特性,可以大幅减少渲染开销、提升加载速度和用户体验。这些方法不仅限于单一 API,而是从整体架构和开发实践出发,提供通用的性能提升思路。
|
||||
|
||||
### 条件渲染与缓存结合
|
||||
|
||||
通过结合 `v-if` 和 `<KeepAlive>`,可以避免频繁销毁和重建组件,尤其是在切换视图或路由时。搭配 `defineAsyncComponent` 实现懒加载,进一步减少初次加载的开销。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div>
|
||||
<button @click="toggle">Toggle View</button>
|
||||
<keep-alive>
|
||||
<component :is="currentView" />
|
||||
</keep-alive>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, defineAsyncComponent } from 'vue';
|
||||
|
||||
const currentView = ref('ViewA');
|
||||
const toggle = () => {
|
||||
currentView.value = currentView.value === 'ViewA' ? 'ViewB' : 'ViewA';
|
||||
};
|
||||
|
||||
const ViewA = defineAsyncComponent(() => import('./ViewA.vue'));
|
||||
const ViewB = defineAsyncComponent(() => import('./ViewB.vue'));
|
||||
</script>
|
||||
//<KeepAlive> 缓存动态组件,防止重复创建和销毁。
|
||||
//defineAsyncComponent 实现组件懒加载,仅在需要时加载模块。
|
||||
//效果:减少 DOM 操作和组件初始化的性能消耗,特别适合复杂组件切换或路由场景。
|
||||
```
|
||||
|
||||
### 路由前置优化(beforeRouteEnter)
|
||||
|
||||
在路由进入前执行数据预取或条件检查,可以避免不必要的渲染和请求,提升页面加载效率。
|
||||
|
||||
```html
|
||||
<script>
|
||||
import { defineComponent } from 'vue';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Profile',
|
||||
beforeRouteEnter(to, from, next) {
|
||||
// 模拟数据预取
|
||||
fetchUserData(to.params.id).then((user) => {
|
||||
next((vm) => {
|
||||
vm.user = user; // 将数据传递给组件实例
|
||||
});
|
||||
}).catch(() => {
|
||||
next(false); // 阻止路由进入
|
||||
});
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
user: null,
|
||||
};
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="user">
|
||||
<h1>{{ user.name }}</h1>
|
||||
</div>
|
||||
</template>
|
||||
```
|
||||
|
||||
### 响应式对象的精简
|
||||
|
||||
避免将大型对象直接用 reactive 包裹,而是按需拆分,使用 ref 或 toRef 精细控制响应式范围,减少依赖追踪的开销。
|
||||
|
||||
```html
|
||||
<script setup>
|
||||
import { ref, toRef, reactive } from 'vue';
|
||||
|
||||
const largeData = {
|
||||
user: { name: 'Alice', age: 25 },
|
||||
settings: { theme: 'dark', fontSize: 16 },
|
||||
items: Array(1000).fill({ id: 0, value: 'test' }),
|
||||
};
|
||||
|
||||
// 仅将需要的部分设为响应式
|
||||
const userName = ref(largeData.user.name);
|
||||
const settings = reactive(largeData.settings);
|
||||
const firstItem = toRef(largeData.items[0], 'value');
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<input v-model="userName" />
|
||||
<p>Theme: {{ settings.theme }}</p>
|
||||
<p>First Item: {{ firstItem }}</p>
|
||||
</div>
|
||||
</template>
|
||||
```
|
||||
|
||||
### 计算属性的延迟执行
|
||||
|
||||
通过封装计算属性并结合 watchEffect,实现按需计算,避免不必要的开销。
|
||||
|
||||
```html
|
||||
<script setup>
|
||||
import { ref, computed, watchEffect } from 'vue';
|
||||
|
||||
const items = ref([]);
|
||||
const filterText = ref('');
|
||||
const filteredItems = computed(() => {
|
||||
return items.value.filter((item) => item.includes(filterText.value));
|
||||
});
|
||||
|
||||
watchEffect(() => {
|
||||
if (filterText.value) {
|
||||
// 仅在 filterText 不为空时触发计算
|
||||
filteredItems.value;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<input v-model="filterText" placeholder="Filter items" />
|
||||
<ul>
|
||||
<li v-for="item in filteredItems" :key="item">{{ item }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
```
|
||||
|
||||
### v-memo 缓存子树
|
||||
|
||||
v-memo 用于缓存模板子树,仅在依赖项变化时更新,常用于优化列表或静态内容。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div v-for="item in items" :key="item.id" v-memo="[item.updated]">
|
||||
{{ item.name }} - {{ expensiveComputation(item) }}
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const items = ref([
|
||||
{ id: 1, name: 'Item 1', updated: false },
|
||||
{ id: 2, name: 'Item 2', updated: false },
|
||||
]);
|
||||
|
||||
const expensiveComputation = (item) => {
|
||||
return item.name.toUpperCase(); // 模拟复杂计算
|
||||
};
|
||||
</script>
|
||||
```
|
||||
|
||||
### 事件节流与防抖
|
||||
|
||||
通过在事件处理中引入节流(throttle)或防抖(debounce),减少高频事件的触发频率。
|
||||
|
||||
```html
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { debounce } from 'lodash-es';
|
||||
|
||||
const searchText = ref('');
|
||||
const search = debounce((value) => {
|
||||
console.log('Search:', value); // 模拟搜索请求
|
||||
}, 300);
|
||||
|
||||
const handleInput = (e) => {
|
||||
searchText.value = e.target.value;
|
||||
search(searchText.value);
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<input
|
||||
:value="searchText"
|
||||
@input="handleInput"
|
||||
placeholder="Type to search"
|
||||
/>
|
||||
</template>
|
||||
```
|
||||
|
||||
### 虚拟列表(Virtual Scrolling)
|
||||
|
||||
对于长列表(如包含数千条数据的列表),可以使用虚拟列表技术,只渲染可视区域内的元素,减少 DOM 节点数量。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div class="list-container" ref="list">
|
||||
<div class="list-viewport" :style="{ height: totalHeight + 'px' }">
|
||||
<div
|
||||
class="list-content"
|
||||
:style="{ transform: `translateY(${scrollTop}px)` }"
|
||||
>
|
||||
<div
|
||||
v-for="item in visibleItems"
|
||||
:key="item.id"
|
||||
class="list-item"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, onMounted, onUnmounted } from 'vue';
|
||||
|
||||
const items = ref(
|
||||
Array.from({ length: 10000 }, (_, i) => ({
|
||||
id: i,
|
||||
name: `Item ${i}`,
|
||||
}))
|
||||
);
|
||||
const itemHeight = 40; // 每项高度
|
||||
const viewportHeight = 400; // 视口高度
|
||||
const totalHeight = computed(() => items.value.length * itemHeight);
|
||||
const scrollTop = ref(0);
|
||||
const visibleCount = Math.ceil(viewportHeight / itemHeight) + 2; // 多渲染2项作为缓冲
|
||||
|
||||
const visibleItems = computed(() => {
|
||||
const start = Math.floor(scrollTop.value / itemHeight);
|
||||
const end = Math.min(start + visibleCount, items.value.length);
|
||||
return items.value.slice(start, end);
|
||||
});
|
||||
|
||||
const list = ref(null);
|
||||
const onScroll = () => {
|
||||
scrollTop.value = list.value.scrollTop;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
list.value.addEventListener('scroll', onScroll);
|
||||
});
|
||||
onUnmounted(() => {
|
||||
list.value.removeEventListener('scroll', onScroll);
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.list-container {
|
||||
height: 400px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.list-item {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
</style>
|
||||
|
||||
```
|
||||
|
||||
### 按需加载资源(Lazy Loading Resources)
|
||||
|
||||
通过动态导入(Dynamic Import)按需加载非关键资源(如图片、第三方库),可以减少初次加载的开销,提升首屏渲染速度。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div>
|
||||
<button @click="loadChart">Load Chart</button>
|
||||
<div v-if="ChartComponent">
|
||||
<ChartComponent :data="chartData" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const ChartComponent = ref(null);
|
||||
const chartData = ref([10, 20, 30, 40]);
|
||||
|
||||
const loadChart = async () => {
|
||||
// 动态导入第三方库(如 Chart.js)
|
||||
const { default: Chart } = await import('chart.js/auto');
|
||||
// 模拟动态加载的图表组件
|
||||
ChartComponent.value = {
|
||||
props: ['data'],
|
||||
template: `<canvas ref="chart"></canvas>`,
|
||||
mounted() {
|
||||
new Chart(this.$refs.chart, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: ['A', 'B', 'C', 'D'],
|
||||
datasets: [{ data: this.data }],
|
||||
},
|
||||
});
|
||||
},
|
||||
};
|
||||
};
|
||||
</script>
|
||||
```
|
||||
|
||||
### 优化事件监听(Event Delegation)
|
||||
|
||||
通过事件委托(Event Delegation)将事件监听器绑定到父元素,减少直接绑定到每个子元素的事件监听器数量,适合动态列表或大量元素场景。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<div class="item-list" @click="handleItemClick">
|
||||
<div
|
||||
v-for="item in items"
|
||||
:key="item.id"
|
||||
:data-id="item.id"
|
||||
class="item"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const items = ref([
|
||||
{ id: 1, name: 'Item 1' },
|
||||
{ id: 2, name: 'Item 2' },
|
||||
{ id: 3, name: 'Item 3' },
|
||||
]);
|
||||
|
||||
const handleItemClick = (event) => {
|
||||
const itemId = event.target.dataset.id;
|
||||
if (itemId) {
|
||||
console.log(`Clicked item with ID: ${itemId}`);
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.item-list {
|
||||
padding: 10px;
|
||||
}
|
||||
.item {
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid #ddd;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
```
|
||||
|
||||
API 参考
|
||||
---
|
||||
|
||||
|
438
docs/wails.md
Normal file
@ -0,0 +1,438 @@
|
||||
Wails V2 备忘清单
|
||||
===
|
||||
|
||||
[](https://github.com/wailsapp/wails) [](https://github.com/wailsapp/wails/releases/latest) [](https://pkg.go.dev/github.com/wailsapp/wails/v2)
|
||||
|
||||
Wails 是一个基于 Go 和现代 Web 技术(如 Vue、React)构建跨平台桌面应用的轻量级开源框架,可作为 Electron 的替代方案,以下是 Wails v2 的常用命令和示例速查(v3 仍在开发中)。
|
||||
|
||||
<!--rehype:style=padding-top: 12px;-->
|
||||
|
||||
## 命令行工具 (CLI)
|
||||
|
||||
### 安装与更新
|
||||
|
||||
```bash
|
||||
# 安装 Wails CLI
|
||||
$ go install github.com/wailsapp/wails/v2/cmd/wails@latest
|
||||
|
||||
# 更新到最新稳定版
|
||||
$ wails update
|
||||
# 更新到最新预发布版
|
||||
$ wails update -pre
|
||||
```
|
||||
<!--rehype:className=wrap-text-->
|
||||
|
||||
### 常用命令参数
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
| 命令 | 参数 | 描述 |
|
||||
| ------- | ----------------------- | ---------------------------------------------------------- |
|
||||
| `init` | `-n` | **项目名称 (必填)** |
|
||||
| | `-t` | 模板名称 (`vue`, `react`) 或模板 URL |
|
||||
| | `-ide` | 为 `vscode` 或 `goland` 生成 IDE 配置 |
|
||||
| `dev` | `-browser` | 在浏览器中打开前端界面进行调试 |
|
||||
| | `-assetdir` | 指定前端资产目录的路径 |
|
||||
| | `-frontenddevserverurl` | 使用外部前端开发服务器的 URL |
|
||||
| | `-wailsjsdir` | 指定生成的 Wails JS 模块目录 |
|
||||
| `build` | `-platform` | 交叉编译目标平台, 如 `darwin/arm64` |
|
||||
| | `-clean` | 构建前清理 `build/bin` 目录 |
|
||||
| | `-upx` | 使用 UPX 压缩最终的二进制文件 |
|
||||
| | `-nsis` | (Windows) 生成 NSIS 安装程序 |
|
||||
| | `-webview2` | (Windows) WebView2 依赖处理策略 (`download`, `embed`, `browser`) |
|
||||
| | `-debug` | 保留调试信息 |
|
||||
| | `-devtools` | 在生产版本中启用开发者工具 |
|
||||
<!--rehype:className=wrap-text left-align-->
|
||||
|
||||
### 项目命令
|
||||
|
||||
```bash
|
||||
# 初始化新项目 (以 Vue 模板为例)
|
||||
$ wails init -n my-project -t vue
|
||||
|
||||
# 进入项目目录并启动实时开发
|
||||
$ cd my-project
|
||||
$ wails dev
|
||||
|
||||
# 构建生产版本 (以 Windows 平台为例)
|
||||
$ wails build -platform windows/amd64 -clean -upx
|
||||
# 检查环境依赖
|
||||
$ wails doctor
|
||||
```
|
||||
<!--rehype:className=wrap-text-->
|
||||
|
||||
## 项目配置
|
||||
|
||||
### 项目结构
|
||||
|
||||
```shell
|
||||
my-project/
|
||||
├── build/ # 构建输出目录
|
||||
├── frontend/ # 前端源文件
|
||||
│ └── wailsjs/ # Wails 自动生成的模块
|
||||
├── app.go # 应用核心逻辑
|
||||
├── main.go # 应用入口
|
||||
├── go.mod
|
||||
└── wails.json # 项目配置文件
|
||||
```
|
||||
|
||||
### `wails.json` 详解
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
| 配置项 | 描述 | 示例 |
|
||||
| ---------------------- | ---------------------------- | --------------------------- |
|
||||
| `name` | 项目名称 | `"my-app"` |
|
||||
| `outputfilename` | 输出的二进制文件名 | `"my-app.exe"` |
|
||||
| `frontend:install` | 前端依赖安装命令 | `"npm install"` |
|
||||
| `frontend:build` | 前端构建命令 | `"npm run build"` |
|
||||
| `frontend:dev:watcher` | 开发模式下运行的前端监视命令 | `"npm run dev"` |
|
||||
| `wailsjsdir` | 生成 JS 模块的目录 | `"./frontend/wailsjs"` |
|
||||
| `author.name` | 作者名称,用于打包元数据 | `"Your Name"` |
|
||||
| `info` | (macOS) 用于 `Info.plist` 的元数据 | `{"CFBundleName": "MyApp"}` |
|
||||
<!--rehype:className=wrap-text left-align-->
|
||||
|
||||
## 核心交互与生命周期
|
||||
|
||||
### 方法绑定 (Go <-> JS)
|
||||
|
||||
在 Go 中定义公共方法,即可在前端直接调用。
|
||||
|
||||
```go
|
||||
// app.go
|
||||
type App struct {
|
||||
ctx context.Context
|
||||
}
|
||||
|
||||
func (a *App) Greet(name string) string {
|
||||
return fmt.Sprintf("Hello %s!", name)
|
||||
}
|
||||
|
||||
// main.go
|
||||
app := NewApp()
|
||||
err := wails.Run(&options.App{
|
||||
Title: "My App",
|
||||
Bind: []interface{}{
|
||||
app, // 暴露 app 实例的所有公共方法
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
```js
|
||||
// frontend/main.js
|
||||
import { Greet } from '../wailsjs/go/main/App';
|
||||
|
||||
Greet("World").then(result => console.log(result));
|
||||
```
|
||||
|
||||
### 事件系统 (Events)
|
||||
|
||||
用于在 Go 和前端之间异步发送和监听消息。
|
||||
|
||||
#### Go 端 (`runtime.Events*`)
|
||||
|
||||
```go
|
||||
import "github.com/wailsapp/wails/v2/pkg/runtime"
|
||||
|
||||
// 发送事件到前端
|
||||
runtime.EventsEmit(app.ctx, "go-event", "data from Go")
|
||||
|
||||
// 监听来自前端的事件
|
||||
runtime.EventsOn(app.ctx, "js-event", func(optionalData ...interface{}) {
|
||||
// ... 处理数据
|
||||
})
|
||||
```
|
||||
|
||||
#### JavaScript 端 (`runtime.Events*`)
|
||||
|
||||
```js
|
||||
import { EventsOn, EventsEmit } from '../wailsjs/runtime';
|
||||
|
||||
// 发送事件到 Go
|
||||
EventsEmit("js-event", { "payload": 123 });
|
||||
|
||||
// 监听来自 Go 的事件
|
||||
EventsOn("go-event", (data) => {
|
||||
console.log("Received data from Go:", data);
|
||||
});
|
||||
```
|
||||
|
||||
### 应用生命周期钩子
|
||||
|
||||
在 `wails.Run()` 中定义,用于在应用关键节点执行 Go 代码。
|
||||
|
||||
```go
|
||||
// main.go
|
||||
err := wails.Run(&options.App{
|
||||
// ...
|
||||
OnStartup: app.startup,
|
||||
OnDomReady: app.domReady,
|
||||
OnShutdown: app.shutdown,
|
||||
|
||||
// 返回 bool 值决定是否关闭
|
||||
OnBeforeClose: app.beforeClose,
|
||||
})
|
||||
```
|
||||
|
||||
| 钩子 | 描述 |
|
||||
| --------------- | ------------------------- |
|
||||
| `OnStartup` | 应用启动时,在窗口创建前调用 |
|
||||
| `OnDomReady` | 前端 DOM 加载完成后调用 |
|
||||
| `OnShutdown` | 应用关闭前,在窗口销毁后调用 |
|
||||
| `OnBeforeClose` | 用户关闭窗口时调用,返回 `true` 可阻止关闭 |
|
||||
<!--rehype:className=wrap-text left-align-->
|
||||
|
||||
## 运行时 API (Runtime)
|
||||
|
||||
### 窗口 (Window)
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
| 功能 | Go 示例 (`runtime.*`) | JS 示例 (`runtime.*`) |
|
||||
| ------------- | ------------------------------------- | --------------------------------------------- |
|
||||
| **设置标题** | `WindowSetTitle(ctx, "New")` | `WindowSetTitle("New")` |
|
||||
| **设置尺寸** | `WindowSetSize(ctx, 800, 600)` | `WindowSetSize(800, 600)` |
|
||||
| **设置最小/最大尺寸** | `WindowSetMinSize(ctx, 400, 300)` | `WindowSetMinSize(400, 300)` |
|
||||
| **居中** | `WindowCenter(ctx)` | `WindowCenter()` |
|
||||
| **全屏/取消全屏** | `WindowFullscreen(ctx)` | `WindowFullscreen()` |
|
||||
| **显示/隐藏** | `WindowShow(ctx)` / `WindowHide(ctx)` | `WindowShow()` / `WindowHide()` |
|
||||
| **设为置顶** | `WindowSetAlwaysOnTop(ctx, true)` | `WindowSetAlwaysOnTop(true)` |
|
||||
| **拖动窗口** | (仅 JS) | 在 HTML 元素上设置 `style="--wails-draggable:drag"` |
|
||||
<!--rehype:className=wrap-text left-align-->
|
||||
|
||||
### 对话框 (Dialog)
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
|
||||
#### Go 端
|
||||
|
||||
```go
|
||||
dialogOpts := &runtime.OpenDialogOptions{ Title: "Select File" }
|
||||
filePath, err := runtime.OpenFileDialog(app.ctx, *dialogOpts)
|
||||
```
|
||||
|
||||
| 对话框类型 | Go 方法 (`runtime.*`) |
|
||||
| -------- | ---------------------------------------------------------- |
|
||||
| **信息框** | `MessageDialog(ctx, runtime.MessageDialogOptions{...})` |
|
||||
| **打开文件** | `OpenFileDialog(ctx, runtime.OpenDialogOptions{...})` |
|
||||
| **保存文件** | `SaveFileDialog(ctx, runtime.SaveDialogOptions{...})` |
|
||||
| **打开目录** | `OpenDirectoryDialog(ctx, runtime.OpenDialogOptions{...})` |
|
||||
<!--rehype:className=wrap-text left-align-->
|
||||
|
||||
#### JavaScript 端
|
||||
|
||||
```js
|
||||
import { OpenFileDialog } from '../wailsjs/runtime';
|
||||
|
||||
async function selectFile() {
|
||||
const filePath = await OpenFileDialog({ title: "Select File" });
|
||||
}
|
||||
```
|
||||
|
||||
### 菜单 (Menu)
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
|
||||
```go
|
||||
// main.go
|
||||
appMenu := menu.NewMenu()
|
||||
fileMenu := appMenu.AddSubmenu("File")
|
||||
fileMenu.AddText("Quit", keys.CmdOrCtrl("q"), func(_ *menu.CallbackData) {
|
||||
runtime.Quit(app.ctx)
|
||||
})
|
||||
|
||||
err := wails.Run(&options.App{
|
||||
// ...
|
||||
Menu: appMenu,
|
||||
})
|
||||
```
|
||||
|
||||
| 菜单项类型 | 示例 |
|
||||
| ------- | --------------------------------------------------------- |
|
||||
| **文本项** | `menu.AddText("Item", accelerator, callback)` |
|
||||
| **复选框** | `menu.AddCheckbox("Toggle", true, accelerator, callback)` |
|
||||
| **分隔符** | `menu.AddSeparator()` |
|
||||
| **子菜单** | `menu.AddSubmenu("Submenu")` |
|
||||
|
||||
<!--rehype:className=wrap-text -->
|
||||
|
||||
### 其他 Runtime API
|
||||
|
||||
#### 日志
|
||||
|
||||
```go
|
||||
// Go 示例 (`runtime.*`)
|
||||
LogInfo(ctx, "Message")
|
||||
// JS 示例 (`runtime.*`)
|
||||
LogInfo("Message")
|
||||
```
|
||||
|
||||
#### 剪贴板
|
||||
|
||||
```go
|
||||
// Go 示例 (`runtime.*`)
|
||||
ClipboardSetText(ctx, "text")
|
||||
// JS 示例 (`runtime.*`)
|
||||
ClipboardSetText("text")
|
||||
```
|
||||
|
||||
应用打包与分发
|
||||
---
|
||||
|
||||
### Windows 打包
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
#### <red>■</red> 默认生成: `.exe` 可执行文件。
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform windows/amd64
|
||||
```
|
||||
|
||||
#### <red>■</red> 生成 NSIS 安装程序:
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
**前提条件**: 需要预先安装 [NSIS (Nullsoft Scriptable Install System)](https://nsis.sourceforge.io/Download)。
|
||||
|
||||
- **下载 NSIS**: 从 [NSIS 官方网站](https://nsis.sourceforge.io/Download) 下载最新版本的 NSIS 安装程序。
|
||||
- **安装 NSIS**: 运行安装程序并按照提示完成安装。**确保**在安装过程中选择将 NSIS 添加到系统的 `PATH` 环境变量中,以便 `makensis` 命令可以在命令行中全局访问。
|
||||
- **验证安装**:
|
||||
|
||||
```bash
|
||||
$ makensis -VERSION
|
||||
```
|
||||
|
||||
如果安装正确,您将看到 NSIS 的版本号输出。
|
||||
|
||||
**生成安装程序**:
|
||||
|
||||
```bash
|
||||
$ wails build -platform windows/amd64 -nsis
|
||||
```
|
||||
|
||||
#### <red>■</red> 处理 WebView2 依赖:
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
`download`: 提示用户下载 WebView2。
|
||||
|
||||
```bash
|
||||
$ wails build -platform windows/amd64 -webview2 download
|
||||
```
|
||||
`embed`: 将 WebView2 嵌入到应用中(推荐)。
|
||||
|
||||
```bash
|
||||
$ wails build -platform windows/amd64 -webview2 embed
|
||||
```
|
||||
`browser`: 在浏览器中打开下载页面。
|
||||
|
||||
```bash
|
||||
$ wails build -platform windows/amd64 -webview2 browser
|
||||
```
|
||||
|
||||
### macOS 打包
|
||||
|
||||
|
||||
#### <red>■</red> 默认生成: `.app` 应用程序包。
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform darwin/amd64
|
||||
```
|
||||
|
||||
#### <red>■</red> 代码签名与公证:
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
需要通过 Apple 开发者账户进行 **代码签名** 和 **公证** 才能分发。
|
||||
|
||||
#### <red>■</red> 跳过打包成 `.app` 步骤:
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform darwin/amd64 -skippackage
|
||||
```
|
||||
<!--rehype:className=wrap-text-->
|
||||
|
||||
### Linux 打包
|
||||
|
||||
#### <red>■</red> 生成可执行文件
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform linux/amd64
|
||||
```
|
||||
|
||||
#### <red>■</red> 打包成 `.deb`
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform linux/amd64 -deb
|
||||
```
|
||||
|
||||
#### <red>■</red> 打包成 `.rpm`
|
||||
<!--rehype:style=text-align: left;font-weight: bold;-->
|
||||
|
||||
```bash
|
||||
$ wails build -platform linux/amd64 -rpm
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### AppImage 支持
|
||||
|
||||
Wails 不直接内置对 AppImage 的支持,但可以使用外部工具手动创建。使用 `appimagetool`:
|
||||
|
||||
```shell
|
||||
appimagetool ./your-app-dir
|
||||
```
|
||||
|
||||
**安装 `appimagetool`**:
|
||||
|
||||
- 您可以从 [AppImage 官方网站](https://appimage.org/) 获取 `appimagetool`。
|
||||
- 下载后,将其添加到您的 `PATH` 中以便全局访问。
|
||||
|
||||
## 进阶主题与杂项
|
||||
|
||||
### 平台特定构建选项
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
|
||||
在 `main.go` 的 `wails.Run()` 中为不同平台提供细粒度配置。
|
||||
|
||||
```go
|
||||
err := wails.Run(&options.App{
|
||||
// ...
|
||||
Windows: &windows.Options{
|
||||
WebviewIsTransparent: true, // WebView2 背景透明
|
||||
WindowIsTranslucent: true, // 窗口背景透明
|
||||
},
|
||||
Mac: &mac.Options{
|
||||
TitleBar: &mac.TitleBar{
|
||||
TitlebarAppearsTransparent: true, // 透明标题栏
|
||||
},
|
||||
About: &mac.AboutInfo{
|
||||
Title: "My Awesome App",
|
||||
Message: "© 2025 Me",
|
||||
},
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
### 使用 TypeScript
|
||||
|
||||
Wails 会自动为 Go 绑定的方法生成 TypeScript 定义。
|
||||
|
||||
```bash
|
||||
# wails.json
|
||||
"frontend:build": "npm run build"
|
||||
|
||||
# package.json
|
||||
"scripts": {
|
||||
"build": "tsc && vite build"
|
||||
}
|
||||
```
|
||||
|
||||
### 调试
|
||||
|
||||
- **Go 部分**: 使用 `wails dev -debug` 启动并附加您的 Go 调试器。
|
||||
- **前端部分**: 在 `wails dev` 模式下,右键点击应用,选择“检查”打开浏览器开发者工具。
|
||||
|
||||
参考资料
|
||||
---
|
||||
|
||||
- [Wails 官方文档](https://wails.io/) _(wails.io)_
|
||||
- [Wails GitHub 仓库](https://github.com/wailsapp/wails) _(github.com)_
|
||||
- [Wails Discord 社区](https://discord.gg/4K6VHPkG5c) _discord.gg_
|
175
docs/yazi.md
@ -51,34 +51,132 @@ yazi --help
|
||||
| `l` | 进入选中的目录或打开文件 |
|
||||
<!--rehype:className=shortcuts-->
|
||||
|
||||
### 文件操作
|
||||
更多导航命令
|
||||
|
||||
:- | :-
|
||||
:- | :-
|
||||
| `y` | 复制选中的文件或目录 |
|
||||
| `d` | 剪切选中的文件或目录 |
|
||||
| `p` | 粘贴文件或目录 |
|
||||
| `x` | 删除选中的文件或目录 |
|
||||
| `r` | 重命名选中的文件或目录 |
|
||||
<!--rehype:className=shortcuts-->
|
||||
| 快捷键 | 操作说明 |
|
||||
| --------------------------- | --------------------------------------------------------- |
|
||||
| `K` | 在预览中向上移动 5 个单位 |
|
||||
| `J` | 在预览中向下移动 5 个单位 |
|
||||
| `g` ⇒ `g` | 将光标移动到顶部 |
|
||||
| `G` | 将光标移动到底部 |
|
||||
| `z` | 通过 fzf 进入目录或显示文件([cd](https://yazi-rs.github.io/docs/configuration/keymap#mgr.cd) 或 [reveal](https://yazi-rs.github.io/docs/configuration/keymap#mgr.reveal)) |
|
||||
| `Z` | 通过 zoxide 进入目录([cd](https://yazi-rs.github.io/docs/configuration/keymap#mgr.cd)) |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
### 选择操作
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ------------------------------ | --------------------------------------------- |
|
||||
| <kbd>Space</kbd> | 切换当前悬停的文件/目录的选择状态 |
|
||||
| <kbd>v</kbd> | 进入可视模式(选择模式) |
|
||||
| <kbd>V</kbd> | 进入可视模式(取消模式) |
|
||||
| <kbd>Ctrl</kbd> + <kbd>a</kbd> | 选择所有文件 |
|
||||
| <kbd>Ctrl</kbd> + <kbd>r</kbd> | 反转当前所有文件的选择状态 |
|
||||
| <kbd>Esc</kbd> | 取消所有选择 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
用于选择文件和目录的快捷键命令
|
||||
|
||||
### 文件操作
|
||||
<!--rehype:wrap-class=row-span-4-->
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ----------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| <kbd>o</kbd> | 打开选中的文件 |
|
||||
| <kbd>O</kbd> | 以交互方式打开选中的文件 |
|
||||
| <kbd>Enter</kbd> | 打开选中的文件 |
|
||||
| <kbd>Shift</kbd> + <kbd>Enter</kbd> | 以交互方式打开选中的文件(部分终端尚不支持) |
|
||||
| <kbd>Tab</kbd> | 显示文件信息 |
|
||||
| <kbd>y</kbd> | 复制选中的文件 |
|
||||
| <kbd>x</kbd> | 剪切选中的文件 |
|
||||
| <kbd>p</kbd> | 粘贴已复制/剪切的文件 |
|
||||
| <kbd>P</kbd> | 粘贴已复制/剪切的文件(如目标存在则覆盖) |
|
||||
| <kbd>Y</kbd> 或 <kbd>X</kbd> | 取消已复制/剪切状态 |
|
||||
| <kbd>d</kbd> | 将选中的文件移至回收站 |
|
||||
| <kbd>D</kbd> | 彻底删除选中的文件 |
|
||||
| <kbd>a</kbd> | 新建文件(以 / 结尾表示新建目录) |
|
||||
| <kbd>r</kbd> | 重命名选中的文件 |
|
||||
| <kbd>.</kbd> | 切换隐藏文件的显示状态 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
更多文件操作命令如下:
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ------------------------------ | -------------------------------------------- |
|
||||
| <kbd>;</kbd> | 执行一个 Shell 命令 |
|
||||
| <kbd>:</kbd> | 执行一个 Shell 命令(阻塞,直到命令完成) |
|
||||
| <kbd>-</kbd> | 创建已复制文件的绝对路径符号链接 |
|
||||
| <kbd>\_</kbd> | 创建已复制文件的相对路径符号链接 |
|
||||
| <kbd>Ctrl</kbd> + <kbd>-</kbd> | 创建已复制文件的硬链接 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
要操作选中的文件或目录
|
||||
|
||||
### 复制路径
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ---------------------------- | ---------------------------------- |
|
||||
| <kbd>c</kbd> ⇒ <kbd>c</kbd> | 复制文件路径 |
|
||||
| <kbd>c</kbd> ⇒ <kbd>d</kbd> | 复制目录路径 |
|
||||
| <kbd>c</kbd> ⇒ <kbd>f</kbd> | 复制文件名 |
|
||||
| <kbd>c</kbd> ⇒ <kbd>n</kbd> | 复制不带扩展名的文件名 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
**复制路径** _说明:<kbd>c</kbd> ⇒ <kbd>d</kbd> 表示先按下 <kbd>c</kbd> 键,然后按下 <kbd>d</kbd> 键。_
|
||||
|
||||
### 搜索与过滤
|
||||
|
||||
:- | :-
|
||||
:- | :-
|
||||
| `/` | 开始搜索模式 |
|
||||
| `n` | 在搜索模式中跳到下一个匹配项 |
|
||||
| `N` | 在搜索模式中跳到上一个匹配项 |
|
||||
| 快捷键 | 操作说明 |
|
||||
| ------------ | -------------------- |
|
||||
| <kbd>f</kbd> | 过滤文件 |
|
||||
| <kbd>/</kbd> | 查找下一个文件 |
|
||||
| <kbd>?</kbd> | 查找上一个文件 |
|
||||
| <kbd>n</kbd> | 跳转到下一个匹配项 |
|
||||
| <kbd>N</kbd> | 跳转到上一个匹配项 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
### 搜索文件
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ---------------------------- | ------------------------------------------------------- |
|
||||
| <kbd>s</kbd> | 使用 [fd](https://github.com/sharkdp/fd) 按名称搜索文件 |
|
||||
| <kbd>S</kbd> | 使用 [ripgrep](https://github.com/BurntSushi/ripgrep) 按内容搜索文件 |
|
||||
| <kbd>Ctrl</kbd> + <kbd>s</kbd> | 取消当前进行中的搜索 |
|
||||
<!--rehype:className=shortcuts-->
|
||||
|
||||
### 视图操作
|
||||
### 排序
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
|
||||
:- | :-
|
||||
:- | :-
|
||||
| `gg` | 跳到列表的顶部 |
|
||||
| `G` | 跳到列表的底部 |
|
||||
| `Ctrl+f` | 向下滚动一页 |
|
||||
| `Ctrl+b` | 向上滚动一页 |
|
||||
| 快捷键 | 操作说明 |
|
||||
| ---------------------- | ------------------------ |
|
||||
| <kbd>,</kbd> ⇒ <kbd>m</kbd> | 按修改`时间`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>M</kbd> | 按修改`时间倒序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>b</kbd> | 按`创建时间`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>B</kbd> | 按`创建时间`倒序排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>e</kbd> | 按文件`扩展名`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>E</kbd> | 按文件`扩展名倒序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>a</kbd> | 按`字母顺序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>A</kbd> | 按`字母倒序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>n</kbd> | 按`自然`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>N</kbd> | 按`自然倒序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>s</kbd> | 按文件`大小`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>S</kbd> | 按文件`大小倒序`排序 |
|
||||
| <kbd>,</kbd> ⇒ <kbd>r</kbd> | `随机`排序 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
对文件/目录进行排序说明: _<kbd>,</kbd> ⇒ <kbd>a</kbd> 表示先按下 <kbd>,</kbd> 键,再按下 <kbd>a</kbd> 键。_
|
||||
|
||||
### 多标签页
|
||||
|
||||
| 快捷键 | 操作说明 |
|
||||
| ------------------------------------------- | ---------------------------- |
|
||||
| <kbd>t</kbd> | 以当前工作目录创建新标签页 |
|
||||
| <kbd>1</kbd>, <kbd>2</kbd>, ..., <kbd>9</kbd> | 切换到第 N 个标签页 |
|
||||
| <kbd>[</kbd> | 切换到上一个标签页 |
|
||||
| <kbd>]</kbd> | 切换到下一个标签页 |
|
||||
| <kbd>{</kbd> | 当前标签页与上一个互换位置 |
|
||||
| <kbd>}</kbd> | 当前标签页与下一个互换位置 |
|
||||
| <kbd>Ctrl</kbd> + <kbd>c</kbd> | 关闭当前标签页 |
|
||||
<!--rehype:className=shortcuts-->
|
||||
|
||||
## 自定义配置
|
||||
@ -98,38 +196,59 @@ yazi --help
|
||||
[general]
|
||||
# 设置主界面主题为 dark 或 light
|
||||
theme = "dark"
|
||||
```
|
||||
|
||||
# 启动时的默认路径
|
||||
启动时的默认路径
|
||||
|
||||
```toml
|
||||
default_path = "~"
|
||||
```
|
||||
|
||||
# 是否启用自动保存配置
|
||||
是否启用自动保存配置
|
||||
|
||||
```toml
|
||||
auto_save_config = true
|
||||
```
|
||||
|
||||
自定义快捷键绑定
|
||||
|
||||
```toml
|
||||
[keybindings]
|
||||
# 自定义快捷键绑定
|
||||
quit = "q" # 退出
|
||||
copy = "y" # 复制文件
|
||||
paste = "p" # 粘贴文件
|
||||
delete = "d" # 删除文件
|
||||
```
|
||||
|
||||
界面相关配置
|
||||
|
||||
```toml
|
||||
[ui]
|
||||
# 界面相关配置
|
||||
preview_enabled = true # 是否启用文件预览
|
||||
show_hidden_files = true # 显示隐藏文件
|
||||
columns = 2 # 文件列表列数
|
||||
```
|
||||
|
||||
搜索行为配置
|
||||
|
||||
```toml
|
||||
[search]
|
||||
# 搜索行为配置
|
||||
case_sensitive = false # 搜索是否区分大小写
|
||||
search_timeout = 30 # 搜索超时时间(秒)
|
||||
```
|
||||
|
||||
排序规则配置
|
||||
|
||||
```toml
|
||||
[sorting]
|
||||
# 排序规则配置
|
||||
sort_by = "name" # 排序方式: name,size,date
|
||||
reverse_sort = false # 是否反向排序
|
||||
```
|
||||
|
||||
插件加载配置
|
||||
|
||||
```toml
|
||||
[plugins]
|
||||
# 插件加载配置
|
||||
enabled_plugins = ["git", "archive"]
|
||||
```
|
||||
|
||||
|
98
docs/zed.md
Normal file
@ -0,0 +1,98 @@
|
||||
Zed 备忘清单
|
||||
====
|
||||
|
||||
Zed 文本编辑器中 50 个快捷键的视觉备忘单
|
||||
|
||||
## 键盘快捷键
|
||||
|
||||
### Zed
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|-----------------------|------------------------|
|
||||
| `Ctrl` `,` | 打开设置 |
|
||||
| `Ctrl` `Shift` `X` | 打开扩展商店 |
|
||||
| `Ctrl` `Q` | 退出 Zed |
|
||||
<!--rehype:className=shortcuts-->
|
||||
|
||||
### 文件
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|-------------------------|------------------------|
|
||||
| `Ctrl` `N` | 新建文件 |
|
||||
| `Ctrl` `Shift` `N` | 新建窗口 |
|
||||
| `Ctrl` `O` | 打开文件夹 |
|
||||
| `Ctrl` `Alt` `Shift` `O`| 打开远程文件夹 |
|
||||
| `Ctrl` `S` | 保存 |
|
||||
| `Ctrl` `Shift` `S` | 另存为... |
|
||||
| `Ctrl` `Alt` `S` | 保存所有文件 |
|
||||
| `Ctrl` `Shift` `W` | 关闭窗口 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
### 编辑
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|-----------------------|------------------------|
|
||||
| `Ctrl` `Z` | 撤销 |
|
||||
| `Ctrl` `Shift` `Z` | 重做 |
|
||||
| `Ctrl` `X` | 剪切 |
|
||||
| `Ctrl` `C` | 复制 |
|
||||
| `Ctrl` `V` | 粘贴 |
|
||||
| `Ctrl` `Shift` `F` | 在项目中查找 |
|
||||
| `Ctrl` `/` | 切换行注释 |
|
||||
<!--rehype:className=shortcuts-->
|
||||
|
||||
### 选择
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|--------------------------|--------------------------|
|
||||
| `Ctrl` `A` | 全选 |
|
||||
| `Alt` `Shift` `Right` | 扩展选择 |
|
||||
| `Alt` `Shift` `Left` | 缩小选择 |
|
||||
| `Alt` `Shift` `Up` | 在上方添加光标 |
|
||||
| `Alt` `Shift` `Down` | 在下方添加光标 |
|
||||
| `Ctrl` `Shift` `Down` | 选择下一个匹配项 |
|
||||
| `Alt` `Up` | 上移一行 |
|
||||
| `Alt` `Down` | 下移一行 |
|
||||
| `Ctrl` `Shift` `D` | 复制选中的内容 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
### 视图
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|----------------------|-------------------------|
|
||||
| `Ctrl` `B` | 切换左侧面板 |
|
||||
| `Ctrl` `Alt` `B` | 切换右侧面板 |
|
||||
| `Ctrl` `J` | 切换底部面板 |
|
||||
| `Ctrl` `Alt` `Y` | 关闭所有面板 |
|
||||
| `Ctrl` `K` `Up` | 向上分屏 |
|
||||
| `Ctrl` `K` `Down` | 向下分屏 |
|
||||
| `Ctrl` `K` `Left` | 向左分屏 |
|
||||
| `Ctrl` `K` `Right` | 向右分屏 |
|
||||
| `Ctrl` `Shift` `E` | 项目面板 |
|
||||
| `Ctrl` `Shift` `B` | 大纲面板 |
|
||||
| `Ctrl` `Shift` `C` | 协作面板 |
|
||||
| `Ctrl` ``` ` ``` | 终端面板 |
|
||||
| `Ctrl` `Shift` `M` | 调试面板 |
|
||||
<!--rehype:className=shortcuts -->
|
||||
|
||||
### 跳转
|
||||
|
||||
| 快捷键 | 操作 |
|
||||
|-----------------------|-----------------------------|
|
||||
| `Ctrl` `Alt` `-` | 后退 |
|
||||
| `Ctrl` `Shift` `P` | 打开命令面板… |
|
||||
| `Ctrl` `E` | 跳转到文件… |
|
||||
| `Ctrl` `Shift` `O` | 跳转到编辑器中的符号… |
|
||||
| `Ctrl` `G` | 跳转到行/列… |
|
||||
| `F12` | 跳转到定义 |
|
||||
| `Ctrl` `F12` | 跳转到类型定义 |
|
||||
| `Alt` `Shift` `F12` | 查找所有引用 |
|
||||
| `F8` | 下一个问题 |
|
||||
| `Shift` `F8` | 上一个问题 |
|
||||
<!--rehype:className=shortcuts left-align-->
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [Zed](https://zed.dev/)
|
||||
- [Zed GitHub](https://github.com/zed-industries/zed)
|
||||
- [Zed 文档](https://zed.dev/docs)
|
15
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@wcj/reference",
|
||||
"version": "1.45.0",
|
||||
"version": "1.46.0",
|
||||
"description": "为开发人员分享快速参考备忘单(主要是方便自己)。",
|
||||
"author": "jaywcjlove",
|
||||
"license": "MIT",
|
||||
@ -9,8 +9,10 @@
|
||||
"private": false,
|
||||
"scripts": {
|
||||
"prepare": "husky",
|
||||
"build": "refs-cli",
|
||||
"start": "refs-cli --watch",
|
||||
"postinstall": "npm run cpy",
|
||||
"build": "refs-cli && npm run cpy",
|
||||
"start": "npm run cpy && refs-cli --watch",
|
||||
"cpy": "cpy 'appicon/*.png' dist/appicon",
|
||||
"prettier": "prettier --write '**/*.{mjs,css,json,prettierrc,lintstagedrc}'",
|
||||
"markdownlint": "npx markdownlint-cli --fix ./docs/*.md"
|
||||
},
|
||||
@ -28,12 +30,13 @@
|
||||
"docs/*.md": "markdownlint --fix"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cpy-cli": "^5.0.0",
|
||||
"husky": "^9.0.0",
|
||||
"lint-staged": "^15.0.0",
|
||||
"prettier": "^3.0.0",
|
||||
"refs-cli": "^1.8.0",
|
||||
"markdownlint": "^0.33.0",
|
||||
"markdownlint-cli": "^0.39.0"
|
||||
"markdownlint-cli": "^0.39.0",
|
||||
"prettier": "^3.0.0",
|
||||
"refs-cli": "^1.8.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
|