Repository: Lruihao/lruihao.github.io Branch: main Commit: 5696986f1894 Files: 2351 Total size: 35.3 MB Directory structure: gitextract_3q2w6mcv/ ├── .nojekyll ├── 404.html ├── _posts/ │ ├── feed.json │ ├── index.html │ ├── index.xml │ └── page/ │ └── 1/ │ └── index.html ├── about/ │ ├── index.html │ └── index.md ├── archives/ │ ├── index.html │ └── page/ │ ├── 1/ │ │ └── index.html │ ├── 10/ │ │ └── index.html │ ├── 11/ │ │ └── index.html │ ├── 12/ │ │ └── index.html │ ├── 13/ │ │ └── index.html │ ├── 14/ │ │ └── index.html │ ├── 15/ │ │ └── index.html │ ├── 2/ │ │ └── index.html │ ├── 3/ │ │ └── index.html │ ├── 4/ │ │ └── index.html │ ├── 5/ │ │ └── index.html │ ├── 6/ │ │ └── index.html │ ├── 7/ │ │ └── index.html │ ├── 8/ │ │ └── index.html │ └── 9/ │ └── index.html ├── baidu_urls.txt ├── browserconfig.xml ├── categories/ │ ├── acm/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ └── 3/ │ │ └── index.html │ ├── browser/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── css/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── git/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── github/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ └── 3/ │ │ └── index.html │ ├── go/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── grocery/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── html/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── index.html │ ├── java/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── javascript/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── memo/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ └── 3/ │ │ └── index.html │ ├── mysql/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── node.js/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── os/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── php/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── python/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── react/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── spec/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── thoughts/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vue.js/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 瞎折腾/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 翻译/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ └── 计算机网络/ │ ├── feed.json │ ├── index.html │ ├── index.xml │ └── page/ │ └── 1/ │ └── index.html ├── collections/ │ ├── aws/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── css-奇技淫巧/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── index.html │ ├── modern-css/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── project/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ └── 3/ │ │ └── index.html │ ├── web-components/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ └── 拖拽式仪表盘系列/ │ ├── feed.json │ ├── index.html │ ├── index.xml │ └── page/ │ └── 1/ │ └── index.html ├── css/ │ └── post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css ├── feed.json ├── friends/ │ ├── index.html │ └── index.md ├── guestbook/ │ ├── index.html │ ├── index.md │ └── valine-hacker.css ├── index.html ├── index.xml ├── js/ │ ├── config/ │ │ ├── 0037bc2c32fa8e81abd15ed406ab2c88.js │ │ ├── 021d7a7632f5e9a49828e315b8028cc4.js │ │ ├── 042a6806e0090fd207a9108f0c2b9f1f.js │ │ ├── 063a7c6d2aefb90daf3d805734b1df24.js │ │ ├── 067f014b07ee3a506035596baf104864.js │ │ ├── 06c7174af922cb41ac234199a8b4709d.js │ │ ├── 07d140fad64e8e303ead3a6cdf7ac46e.js │ │ ├── 07dc02755c6f7b78185d6842db700b36.js │ │ ├── 087fe8ea85659b55a7d545f2f69d6134.js │ │ ├── 0bb6dac5aeef225eee1557f8c20108f6.js │ │ ├── 0c0b8df0ebba1c9ee318abc52a8229ef.js │ │ ├── 0cf6fc71a2aa7176ca55c6bb96d83773.js │ │ ├── 0d594e779c5ae2bd9b7ddba4f5074b7a.js │ │ ├── 0d8648db64976c5112e4fa3049752404.js │ │ ├── 0f60328123a2a79d5ddfdb6dfcdfad30.js │ │ ├── 0fbd1de114dfdb73770a88111b5d4e31.js │ │ ├── 10197f7436eae710bf968c3cba131875.js │ │ ├── 11731361789df6557ab8fa35ccb37982.js │ │ ├── 13577df3a49a47c9d2b5d13beb4325e1.js │ │ ├── 13b21784b8ed829def60cfa62398f076.js │ │ ├── 151a394dfe55d6be346d8fe3637a8fc0.js │ │ ├── 160160b17b769c7c43691b7c09140d60.js │ │ ├── 19817062b86725f9931c9927d3c37d20.js │ │ ├── 1a0fd4e09739a1836a4fb4215952202d.js │ │ ├── 1a22a336553538929c787e5f03170f51.js │ │ ├── 1b078ccc55871dd0d40d77f1056078d0.js │ │ ├── 1c5bbc39c6512b61cc5c915f8ad0b839.js │ │ ├── 1cd02bf1ad69a440c99ba61b5c6183ed.js │ │ ├── 1ce2b38079d9b4fc8647b4847733631a.js │ │ ├── 1ce7d401f80e690df073189ecec29477.js │ │ ├── 1d24d2422bd3fe23b32d8f5ed5a26c3f.js │ │ ├── 1de9df7c4c69cb31234c5c05cb69693e.js │ │ ├── 1ef18b020da0fb5d3b2e79d1d399e62c.js │ │ ├── 2053578da0514057166c13965ec58b4e.js │ │ ├── 20b32ac645052332d31625c852330f19.js │ │ ├── 20b75e9cebe826082f74682133ae2ae5.js │ │ ├── 211c86c12dbc4e740b31b4edc4a9592a.js │ │ ├── 223b81876e3028aeaa96a2959290d05b.js │ │ ├── 22727014067af9c4cd8f1a834df835d1.js │ │ ├── 22a949cb92801746b6e125c797ebc6d0.js │ │ ├── 22b590af45577bcd6639362bda0ff70b.js │ │ ├── 247eb66223c15b4808b09a1d172c70b6.js │ │ ├── 257907c0ccec1406a7e51c9c17d6584a.js │ │ ├── 25c200cb60a3f4bbb4acfa03de8137b0.js │ │ ├── 27e1cf5e4c051c452d3a3b4306864a77.js │ │ ├── 2956f1cccb73a886d642d203e4f0bb52.js │ │ ├── 2b16902a0ab9359c22af350a1293eba5.js │ │ ├── 2c7c25806c1b020cadf6f63e0962305f.js │ │ ├── 2ce8440d2e698a0bc48ed62d63347606.js │ │ ├── 2d9c54e40775802a74cf79fe7d2e5158.js │ │ ├── 2ef1295d48d146ea03955a5b8beab68d.js │ │ ├── 321e4c6811fb3e2ea089d57ac3b040bd.js │ │ ├── 32933748836d9ddad6b8a9179d32bab3.js │ │ ├── 32cb17f0202794769e79771235ba6bec.js │ │ ├── 334b4758f80bf1340a4e02810b62509b.js │ │ ├── 344a803009a489a24e0035487899e424.js │ │ ├── 34ad5ea3680cfc3332eb04da39f4f743.js │ │ ├── 35329dfb1fc66d8a56de7b21aab94c36.js │ │ ├── 36735ed50e9a4121e9fea9ef0954a5a1.js │ │ ├── 36ebddeb1ce8adfbd97498a9ff2c2d7b.js │ │ ├── 3732e41af9de0bc63f40781a99c47060.js │ │ ├── 379d6c0822bcdcec980d5a8b073966e0.js │ │ ├── 38071d54f1ea34a6b632919a315ae439.js │ │ ├── 380d79fcfd90b303a04a00efb9ed5ec0.js │ │ ├── 382d5f75fc970a96ee9777775717ac97.js │ │ ├── 38fd272149f9ea5fb309874b8348e534.js │ │ ├── 39573cf1686e4588c2700c87529273c0.js │ │ ├── 3ab7b3c0725dcbca5991bf242eb9b0d6.js │ │ ├── 3afb2cc93680553927e6cc9082224ee9.js │ │ ├── 3b6347f8a397754b4aa70388743c2721.js │ │ ├── 3bb5f4f8924127e723fa7746bf60bb4a.js │ │ ├── 3c0d788c5aef31e769a7bc0198259867.js │ │ ├── 3c48228073c0f5dfd0edaf8297e1dba2.js │ │ ├── 3e1c0a5419cb5b02f60950abdabb060d.js │ │ ├── 3e2b1f699d04d23eb5c686eb812f4dc7.js │ │ ├── 3e50d109d4df475fb8a6c61436914771.js │ │ ├── 3ebf363e73290b7b68ae11519f02b692.js │ │ ├── 3ee519d1095b211e0e845e8f9f096a82.js │ │ ├── 3f3b3bbb615c034f8f37055427b83892.js │ │ ├── 3f8e146f550d20bebe5aa95937adc761.js │ │ ├── 41192006e7fb5d2f9f1a7caa97105c8c.js │ │ ├── 41df7cfd1a135f290b3fa56272d53632.js │ │ ├── 4281806367b1de9059a1f848c2510f13.js │ │ ├── 431ad847b2fa08d7740410546f00bf5b.js │ │ ├── 47cdd5023e575a59907d132466ed2a9b.js │ │ ├── 48d418b2e265ac04d276e23fb980bbd6.js │ │ ├── 4ca38f0ff587e5775a2d6f1a2dde3c48.js │ │ ├── 4d0419f124a75d5a016ebe63f9010fa7.js │ │ ├── 4e4f919455da0987a141b4ef412aeb48.js │ │ ├── 50a19c19b19fb06da7fc1e0b7a611a2e.js │ │ ├── 50d88726c42a23edb45562a9bce23a02.js │ │ ├── 50ddd55196c0ec608c96d427ebb2fb8f.js │ │ ├── 5228cc9c439e70c10266f94192573758.js │ │ ├── 52ed700aaee4c796d3aba30f6abc325f.js │ │ ├── 54639e69f9bb0f26b6e0c20251d837c8.js │ │ ├── 5954156ca63ba6e21a8d13d55731c53b.js │ │ ├── 5a34e845cf080729c16df88f67bdbcf3.js │ │ ├── 5b8a1dd7275c2db6ccf1e01d55644ac6.js │ │ ├── 5bdc928cd9257d788fb7a5343279fe73.js │ │ ├── 5c54b4cdaacef7f7ab4db1bb72ce361a.js │ │ ├── 6044e0fddda1c4891d5575b4e65c5d23.js │ │ ├── 62275962ff6d2a8c47a9328a03d0fea6.js │ │ ├── 644dbb6a92190c74c2ca806d9d56dd02.js │ │ ├── 64de0604052d048c582136011aaec101.js │ │ ├── 6530c9177543fbff69c3660d3e33a81e.js │ │ ├── 65501877c75fd5623c9ba3a5519c5d9a.js │ │ ├── 666ed43a5283cf26881a402d93328d8c.js │ │ ├── 6764dc15ea7b8ee22c2266fbedf1629e.js │ │ ├── 679d541d97dada7b64e8d7791dacd6ba.js │ │ ├── 67cb5d10fdf41c150ceaec0b041ec9e9.js │ │ ├── 68476cc29d8bedd521d32ae91b064db6.js │ │ ├── 68705244048c105f2eac165a741e3182.js │ │ ├── 68e86329cdb902703397dd04f5fc4416.js │ │ ├── 690c84bc951f94458e7fe0075907e31a.js │ │ ├── 6a3423da80259f1997c2e2252c8554ab.js │ │ ├── 6c4f5cb0664c744c67d3d8e2ee2a8bff.js │ │ ├── 6d39ed1e24c47282d4bc7e849660db5e.js │ │ ├── 6dba2d2635ebf1a0a76c65b1308b8eaa.js │ │ ├── 6e630006d7d1732df7885c17566d2d56.js │ │ ├── 6f3e0ca7308179c11374fd8095d64f64.js │ │ ├── 6fc44cad1abecf6df2cff07272bfd31b.js │ │ ├── 7417807edf3228ede7205ab88ce58ecf.js │ │ ├── 74efae613deccc0dcd4093c3f44c600a.js │ │ ├── 76d3ee0b5aa07dd4d045f569bebb748b.js │ │ ├── 772eed652fda688964d02acb01784609.js │ │ ├── 79c7dd05726956976d682d1ae0b5d84d.js │ │ ├── 79cb396d7e1fb56b5cf5a14b0b513b34.js │ │ ├── 7a351a9cd38836cc0730ebeed0d61953.js │ │ ├── 7ad9cd5126d73a535492159809361cd1.js │ │ ├── 7c52c93570e8548e38dea375ddc00481.js │ │ ├── 7ca193687bf18f5f37d6d598a9e2d72e.js │ │ ├── 7d2bcc6b215b153c1d49ec5edfede53e.js │ │ ├── 7d42aee776410000268c47280a00c67d.js │ │ ├── 7df4a721a60c5380b21ea35def918bf4.js │ │ ├── 7e98b2eeb64d081d620055122e9915a0.js │ │ ├── 80acd2330a03632340c6961a055f9fc3.js │ │ ├── 8133d23d199cb604b3b0b495c34058f9.js │ │ ├── 84c9011a7be78653e7be5dc29e91d753.js │ │ ├── 85605c5ede51aa5fde314908a0e1dd18.js │ │ ├── 8576ec274c98b3831668a172fa632d80.js │ │ ├── 85f41e792ee3de1ac5020de929e1c596.js │ │ ├── 88d5bebdacaa8043d0726fa84dbfc257.js │ │ ├── 89128e9368d37da24f50b69f56d541fe.js │ │ ├── 89372d9c14cb3e6a12d7ded732418f63.js │ │ ├── 893dcbfb89ffeacaa99f40f37c31c669.js │ │ ├── 8c376d7b111a7da475c29028f2fd4330.js │ │ ├── 8c4e95a40b4e33b38b5d28d9ca5f9cb3.js │ │ ├── 8c8e5f3cee9fd116b04e25d061ee3488.js │ │ ├── 8e86957d7556b9d8b7ddc1e31bbed823.js │ │ ├── 90008290651fdeddf133bee26cc2e3e1.js │ │ ├── 914a1ddda61ca7ee342100d93e625e25.js │ │ ├── 91db0fa13e5e2065c1c8b336b86fc4c5.js │ │ ├── 93790f9ff497dfbdac23b3844326f0d5.js │ │ ├── 939cc2608b36b67d5c2fe1b6dc8ea54b.js │ │ ├── 9496ca8909ce2321bfc35cbe13d9d281.js │ │ ├── 94a9310cd4c8ab0dde63d210c39adfa3.js │ │ ├── 960bf92a61acbc81aafd4f8882506ca9.js │ │ ├── 967022599cfd24670ded11a2c801cb34.js │ │ ├── 980c8a4cc81391e2ce4a2bbee7e1e6a9.js │ │ ├── 990af5a53b5e9a8d890fd389c6e0cabf.js │ │ ├── 996fd5a4211944694571fca1aaa87105.js │ │ ├── 9b5d8d6ca9926e02fff9fac8113762be.js │ │ ├── 9e104be23a3904181ce3d8ad4f4ab220.js │ │ ├── 9e1fc8104320f894b5cb7cbd620e4d93.js │ │ ├── 9f7c53c593cacb46be354f01f9719e15.js │ │ ├── a0ccfff49c4e05313f93e04c41df9e58.js │ │ ├── a2741986477cab7cb901f93ba8362f41.js │ │ ├── a2ae81125a3a0bcf0012a4a8dbfee438.js │ │ ├── a311b864532fd54bd959242c6376c303.js │ │ ├── a3d4eaca0bbaf2e48cb439525f833eed.js │ │ ├── a5237505c0018dcaf2332aa645d98fb7.js │ │ ├── a543b622ee68b6d53c4400bab804d910.js │ │ ├── a56da8a7ff577d3943d46542a4b838fe.js │ │ ├── a5c446f7a06efadb1547b74b2a74befd.js │ │ ├── a5e7645e82813977ee845e1455ab1c50.js │ │ ├── a6da1526d066440ae439665d78a814ba.js │ │ ├── a7487aed908c38304252d1bbf8a74f90.js │ │ ├── a829e0fd133b98fd41c9ce565fae9ad4.js │ │ ├── a9c663e1be35f13be44ee6ec9e190e32.js │ │ ├── aafa3c7949a62e4a9cfc2452c03d5691.js │ │ ├── aba4cbe833311b22bf5d0427f24941e6.js │ │ ├── abd7d90c084fce01e013a12cd9dfb8d4.js │ │ ├── adc208d6cb444ffdd3a5dce73c2baee7.js │ │ ├── b2974a15012c06b846be42ba82708c32.js │ │ ├── b2f0074cce92da89ff8c1bd4899efd32.js │ │ ├── b30d1699a32476a23eb4a032f624f821.js │ │ ├── b31df2415b2195d8fa30ab2b8cec6f26.js │ │ ├── b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js │ │ ├── b8169fe3025bec6aa838d0ab8c76158e.js │ │ ├── b8a3b8e54946b7da92cd6a554de14280.js │ │ ├── b94f654fca25ee13e1af4b36c6188be5.js │ │ ├── bbce6fbd8d4e759d7e4770be2ac8fe1e.js │ │ ├── bbf0b5f24720c346912022ccdf2e213d.js │ │ ├── bd37631ebcc69021fee8a3a115e9188c.js │ │ ├── bdd184c51212429fcf35500b71c86829.js │ │ ├── be490516b49d9e274eb9c3cc4dcd4a42.js │ │ ├── bf6cfc0dc4bddf23d51d404860b60c00.js │ │ ├── c01a69160f89b6f90a7b7ea438910e86.js │ │ ├── c17747a3ee44a81b34f8a2dece22f076.js │ │ ├── c349130a660e1b4877d286b099cb3e53.js │ │ ├── c46366ac40713b505bd07a45b9cda8cd.js │ │ ├── c4e0e052b26014b958361ca24591e880.js │ │ ├── c527e918ff0a8e574b40a00d50866376.js │ │ ├── c56affac7fa1841b8c945ff7c1ee8e42.js │ │ ├── c5c1aace2f9807f5a8433beacefb89d5.js │ │ ├── c6842325fb41c160202c49e4a4c50d8b.js │ │ ├── c6bc2d5d0c5396826c9d0b6d5c23e26d.js │ │ ├── c6ef9ca883d83930d49ac7d07559852c.js │ │ ├── c7abcdc6ecfd72bb00803225755a0d6b.js │ │ ├── c7d4ef89bfcee2c44727fc9bac4c6f1d.js │ │ ├── c8f1e633cb926fe996d5f2044426716b.js │ │ ├── ca64402c74c2c861854a74d9fee0d56b.js │ │ ├── cadb06d453c2085804acba60a7196e5d.js │ │ ├── cb3a462071102ce7affe15497b674321.js │ │ ├── cbdcef242cc969fdcea7bbd898430f4a.js │ │ ├── cce38c49564849ca8d84971eebfe1d72.js │ │ ├── cde8be452aefe0c97004d0108cf5fe37.js │ │ ├── ce53e9a85944c58fead0c64f6ddd6272.js │ │ ├── cf6f184ef6fa9bb5ac418756f2050ad3.js │ │ ├── cf951cf6b21d5af8ca797c8d013a78fa.js │ │ ├── cfdcd42409dccb38a513bc3bca47d4ca.js │ │ ├── d0910d8518c18973441e6349561fed55.js │ │ ├── d13c1c99bddbc642489b8a9e7d3d4aae.js │ │ ├── d1fc0c74a0d39522d8a35249c7b53c23.js │ │ ├── d1ff0bc4ecb52aa165876cbd218d8413.js │ │ ├── d367a7d65bc40ba4cd89e27d9afdd887.js │ │ ├── d56b48a046a639a406a699708812cf07.js │ │ ├── d5a9d79018e75c4302880ad278e28363.js │ │ ├── d6ce767f8a5bfa4fb341cd873fd19755.js │ │ ├── d7cfd77837fdccb790ac25f9018bfea5.js │ │ ├── d8ae2051c1c637ef58cbfff835862815.js │ │ ├── daae8dd216a8d0163756498e642e4f01.js │ │ ├── dbef3e0d34ebab88f6ee074213b96e0c.js │ │ ├── dbf8e36831437278c75ac3295d420944.js │ │ ├── dc102bb51e198559d7bde12f6293456e.js │ │ ├── dd6bebe0a76227cd094747aab35d9b67.js │ │ ├── ddf6975ff5fbc5c661477b59ca586e4d.js │ │ ├── de4d95097fc8ff3a4e564ca1b1e5f106.js │ │ ├── de967b22e35857b24b5b26e279d6525e.js │ │ ├── decdfc6ce8b9de00d594b2ca783388f1.js │ │ ├── dfd3937a4be1f2bb1b8f0c783501e347.js │ │ ├── e034d72fd6b56cf59b58738a20161a20.js │ │ ├── e05e69f3640d00f6512576fbd1fbc71d.js │ │ ├── e089ce555f6a93225dbbd6857eab7cbb.js │ │ ├── e2bba2b979fee7fd23a44657253057af.js │ │ ├── e3da3ff90cf53f4a9658f3d622190e2a.js │ │ ├── e46127dc2b6b65ea71d5e4f3e66d526b.js │ │ ├── e543db54fa740737bf75fb6493e830ed.js │ │ ├── e5fe63fa99c78f4ae0ba3ed0c8dcd333.js │ │ ├── e61ca88883d625f967c831c9a433599c.js │ │ ├── e6f8f40ad771f3bf9592bd0b23cf9435.js │ │ ├── e736ca84f941c8a4de150b5e327fc508.js │ │ ├── e782f1b3e6277fd8a5f7c6717b41da12.js │ │ ├── e7910750ca8b31e5b33d54d82fee104a.js │ │ ├── ec41ccbb04cee550014cf8e576f76619.js │ │ ├── ecfcf3d2db9f233abd64137387ea9a9d.js │ │ ├── ed54a17dda6215c4ebd914aa00d070e4.js │ │ ├── edb5a958b8f7500ddc4825759a251692.js │ │ ├── ede83a7ccfe409df78e72f619c94d71f.js │ │ ├── ee6eb6b7a814d20b2414551e5d0cd11d.js │ │ ├── f05ec885592fe8fc3e08767f078656fc.js │ │ ├── f0f94f24c4bc9a4d90c7e11b521f3f5f.js │ │ ├── f1f2b8a76d1d4e07827b8548b3ef1c8d.js │ │ ├── f4a09c8a767f701b81df89c1ef7b3512.js │ │ ├── f517e60c538984f781281242bdbf8607.js │ │ ├── f6fad020e77fef815450ef1a64d9353a.js │ │ ├── f841fe31d977148c591ab6b18c0edb8f.js │ │ ├── f88a1617bec23310e493b5e3eda78ef5.js │ │ ├── f8b50c62d1562efacbe486fb5ed8bd87.js │ │ ├── f8c9a0dc01662987361a64b52a8302e4.js │ │ ├── f9292c8cd2371ac9de89f6c155166df1.js │ │ ├── fb55cc5f720ca1d6412e7036e7463982.js │ │ ├── fd69d6c6f08c01154641d96aacb5e893.js │ │ ├── ffe22751f3c8e22b1d48d3c99cb99e5a.js │ │ └── post-chat/ │ │ ├── 0037bc2c32fa8e81abd15ed406ab2c88.js │ │ ├── 021d7a7632f5e9a49828e315b8028cc4.js │ │ ├── 042a6806e0090fd207a9108f0c2b9f1f.js │ │ ├── 063a7c6d2aefb90daf3d805734b1df24.js │ │ ├── 067f014b07ee3a506035596baf104864.js │ │ ├── 06c7174af922cb41ac234199a8b4709d.js │ │ ├── 07d140fad64e8e303ead3a6cdf7ac46e.js │ │ ├── 07dc02755c6f7b78185d6842db700b36.js │ │ ├── 087fe8ea85659b55a7d545f2f69d6134.js │ │ ├── 0bb6dac5aeef225eee1557f8c20108f6.js │ │ ├── 0c0b8df0ebba1c9ee318abc52a8229ef.js │ │ ├── 0cf6fc71a2aa7176ca55c6bb96d83773.js │ │ ├── 0d594e779c5ae2bd9b7ddba4f5074b7a.js │ │ ├── 0d8648db64976c5112e4fa3049752404.js │ │ ├── 0f60328123a2a79d5ddfdb6dfcdfad30.js │ │ ├── 0fbd1de114dfdb73770a88111b5d4e31.js │ │ ├── 10197f7436eae710bf968c3cba131875.js │ │ ├── 11731361789df6557ab8fa35ccb37982.js │ │ ├── 13577df3a49a47c9d2b5d13beb4325e1.js │ │ ├── 13b21784b8ed829def60cfa62398f076.js │ │ ├── 151a394dfe55d6be346d8fe3637a8fc0.js │ │ ├── 160160b17b769c7c43691b7c09140d60.js │ │ ├── 19817062b86725f9931c9927d3c37d20.js │ │ ├── 1a0fd4e09739a1836a4fb4215952202d.js │ │ ├── 1a22a336553538929c787e5f03170f51.js │ │ ├── 1b078ccc55871dd0d40d77f1056078d0.js │ │ ├── 1c5bbc39c6512b61cc5c915f8ad0b839.js │ │ ├── 1cd02bf1ad69a440c99ba61b5c6183ed.js │ │ ├── 1ce2b38079d9b4fc8647b4847733631a.js │ │ ├── 1ce7d401f80e690df073189ecec29477.js │ │ ├── 1d24d2422bd3fe23b32d8f5ed5a26c3f.js │ │ ├── 1de9df7c4c69cb31234c5c05cb69693e.js │ │ ├── 1ef18b020da0fb5d3b2e79d1d399e62c.js │ │ ├── 2053578da0514057166c13965ec58b4e.js │ │ ├── 20b32ac645052332d31625c852330f19.js │ │ ├── 20b75e9cebe826082f74682133ae2ae5.js │ │ ├── 211c86c12dbc4e740b31b4edc4a9592a.js │ │ ├── 223b81876e3028aeaa96a2959290d05b.js │ │ ├── 22727014067af9c4cd8f1a834df835d1.js │ │ ├── 22a949cb92801746b6e125c797ebc6d0.js │ │ ├── 22b590af45577bcd6639362bda0ff70b.js │ │ ├── 247eb66223c15b4808b09a1d172c70b6.js │ │ ├── 257907c0ccec1406a7e51c9c17d6584a.js │ │ ├── 25c200cb60a3f4bbb4acfa03de8137b0.js │ │ ├── 27e1cf5e4c051c452d3a3b4306864a77.js │ │ ├── 2956f1cccb73a886d642d203e4f0bb52.js │ │ ├── 2b16902a0ab9359c22af350a1293eba5.js │ │ ├── 2c7c25806c1b020cadf6f63e0962305f.js │ │ ├── 2ce8440d2e698a0bc48ed62d63347606.js │ │ ├── 2d9c54e40775802a74cf79fe7d2e5158.js │ │ ├── 2ef1295d48d146ea03955a5b8beab68d.js │ │ ├── 321e4c6811fb3e2ea089d57ac3b040bd.js │ │ ├── 32933748836d9ddad6b8a9179d32bab3.js │ │ ├── 32cb17f0202794769e79771235ba6bec.js │ │ ├── 334b4758f80bf1340a4e02810b62509b.js │ │ ├── 344a803009a489a24e0035487899e424.js │ │ ├── 34ad5ea3680cfc3332eb04da39f4f743.js │ │ ├── 35329dfb1fc66d8a56de7b21aab94c36.js │ │ ├── 36735ed50e9a4121e9fea9ef0954a5a1.js │ │ ├── 36ebddeb1ce8adfbd97498a9ff2c2d7b.js │ │ ├── 3732e41af9de0bc63f40781a99c47060.js │ │ ├── 379d6c0822bcdcec980d5a8b073966e0.js │ │ ├── 38071d54f1ea34a6b632919a315ae439.js │ │ ├── 380d79fcfd90b303a04a00efb9ed5ec0.js │ │ ├── 382d5f75fc970a96ee9777775717ac97.js │ │ ├── 38fd272149f9ea5fb309874b8348e534.js │ │ ├── 39573cf1686e4588c2700c87529273c0.js │ │ ├── 3ab7b3c0725dcbca5991bf242eb9b0d6.js │ │ ├── 3afb2cc93680553927e6cc9082224ee9.js │ │ ├── 3b6347f8a397754b4aa70388743c2721.js │ │ ├── 3bb5f4f8924127e723fa7746bf60bb4a.js │ │ ├── 3c0d788c5aef31e769a7bc0198259867.js │ │ ├── 3c48228073c0f5dfd0edaf8297e1dba2.js │ │ ├── 3e1c0a5419cb5b02f60950abdabb060d.js │ │ ├── 3e2b1f699d04d23eb5c686eb812f4dc7.js │ │ ├── 3e50d109d4df475fb8a6c61436914771.js │ │ ├── 3ebf363e73290b7b68ae11519f02b692.js │ │ ├── 3ee519d1095b211e0e845e8f9f096a82.js │ │ ├── 3f3b3bbb615c034f8f37055427b83892.js │ │ ├── 3f8e146f550d20bebe5aa95937adc761.js │ │ ├── 41192006e7fb5d2f9f1a7caa97105c8c.js │ │ ├── 41df7cfd1a135f290b3fa56272d53632.js │ │ ├── 4281806367b1de9059a1f848c2510f13.js │ │ ├── 431ad847b2fa08d7740410546f00bf5b.js │ │ ├── 47cdd5023e575a59907d132466ed2a9b.js │ │ ├── 48d418b2e265ac04d276e23fb980bbd6.js │ │ ├── 4ca38f0ff587e5775a2d6f1a2dde3c48.js │ │ ├── 4d0419f124a75d5a016ebe63f9010fa7.js │ │ ├── 4e4f919455da0987a141b4ef412aeb48.js │ │ ├── 50a19c19b19fb06da7fc1e0b7a611a2e.js │ │ ├── 50d88726c42a23edb45562a9bce23a02.js │ │ ├── 50ddd55196c0ec608c96d427ebb2fb8f.js │ │ ├── 5228cc9c439e70c10266f94192573758.js │ │ ├── 52ed700aaee4c796d3aba30f6abc325f.js │ │ ├── 54639e69f9bb0f26b6e0c20251d837c8.js │ │ ├── 5954156ca63ba6e21a8d13d55731c53b.js │ │ ├── 5a34e845cf080729c16df88f67bdbcf3.js │ │ ├── 5b8a1dd7275c2db6ccf1e01d55644ac6.js │ │ ├── 5bdc928cd9257d788fb7a5343279fe73.js │ │ ├── 5c54b4cdaacef7f7ab4db1bb72ce361a.js │ │ ├── 6044e0fddda1c4891d5575b4e65c5d23.js │ │ ├── 62275962ff6d2a8c47a9328a03d0fea6.js │ │ ├── 644dbb6a92190c74c2ca806d9d56dd02.js │ │ ├── 64de0604052d048c582136011aaec101.js │ │ ├── 6530c9177543fbff69c3660d3e33a81e.js │ │ ├── 65501877c75fd5623c9ba3a5519c5d9a.js │ │ ├── 666ed43a5283cf26881a402d93328d8c.js │ │ ├── 6764dc15ea7b8ee22c2266fbedf1629e.js │ │ ├── 679d541d97dada7b64e8d7791dacd6ba.js │ │ ├── 67cb5d10fdf41c150ceaec0b041ec9e9.js │ │ ├── 68476cc29d8bedd521d32ae91b064db6.js │ │ ├── 68705244048c105f2eac165a741e3182.js │ │ ├── 68e86329cdb902703397dd04f5fc4416.js │ │ ├── 690c84bc951f94458e7fe0075907e31a.js │ │ ├── 6a3423da80259f1997c2e2252c8554ab.js │ │ ├── 6c4f5cb0664c744c67d3d8e2ee2a8bff.js │ │ ├── 6d39ed1e24c47282d4bc7e849660db5e.js │ │ ├── 6dba2d2635ebf1a0a76c65b1308b8eaa.js │ │ ├── 6e630006d7d1732df7885c17566d2d56.js │ │ ├── 6f3e0ca7308179c11374fd8095d64f64.js │ │ ├── 6fc44cad1abecf6df2cff07272bfd31b.js │ │ ├── 7417807edf3228ede7205ab88ce58ecf.js │ │ ├── 74efae613deccc0dcd4093c3f44c600a.js │ │ ├── 76d3ee0b5aa07dd4d045f569bebb748b.js │ │ ├── 772eed652fda688964d02acb01784609.js │ │ ├── 79c7dd05726956976d682d1ae0b5d84d.js │ │ ├── 79cb396d7e1fb56b5cf5a14b0b513b34.js │ │ ├── 7a351a9cd38836cc0730ebeed0d61953.js │ │ ├── 7ad9cd5126d73a535492159809361cd1.js │ │ ├── 7c52c93570e8548e38dea375ddc00481.js │ │ ├── 7ca193687bf18f5f37d6d598a9e2d72e.js │ │ ├── 7d2bcc6b215b153c1d49ec5edfede53e.js │ │ ├── 7d42aee776410000268c47280a00c67d.js │ │ ├── 7df4a721a60c5380b21ea35def918bf4.js │ │ ├── 7e98b2eeb64d081d620055122e9915a0.js │ │ ├── 80acd2330a03632340c6961a055f9fc3.js │ │ ├── 8133d23d199cb604b3b0b495c34058f9.js │ │ ├── 84c9011a7be78653e7be5dc29e91d753.js │ │ ├── 85605c5ede51aa5fde314908a0e1dd18.js │ │ ├── 8576ec274c98b3831668a172fa632d80.js │ │ ├── 85f41e792ee3de1ac5020de929e1c596.js │ │ ├── 88d5bebdacaa8043d0726fa84dbfc257.js │ │ ├── 89128e9368d37da24f50b69f56d541fe.js │ │ ├── 89372d9c14cb3e6a12d7ded732418f63.js │ │ ├── 893dcbfb89ffeacaa99f40f37c31c669.js │ │ ├── 8c376d7b111a7da475c29028f2fd4330.js │ │ ├── 8c4e95a40b4e33b38b5d28d9ca5f9cb3.js │ │ ├── 8c8e5f3cee9fd116b04e25d061ee3488.js │ │ ├── 8e86957d7556b9d8b7ddc1e31bbed823.js │ │ ├── 90008290651fdeddf133bee26cc2e3e1.js │ │ ├── 914a1ddda61ca7ee342100d93e625e25.js │ │ ├── 91db0fa13e5e2065c1c8b336b86fc4c5.js │ │ ├── 93790f9ff497dfbdac23b3844326f0d5.js │ │ ├── 939cc2608b36b67d5c2fe1b6dc8ea54b.js │ │ ├── 9496ca8909ce2321bfc35cbe13d9d281.js │ │ ├── 94a9310cd4c8ab0dde63d210c39adfa3.js │ │ ├── 960bf92a61acbc81aafd4f8882506ca9.js │ │ ├── 967022599cfd24670ded11a2c801cb34.js │ │ ├── 980c8a4cc81391e2ce4a2bbee7e1e6a9.js │ │ ├── 990af5a53b5e9a8d890fd389c6e0cabf.js │ │ ├── 996fd5a4211944694571fca1aaa87105.js │ │ ├── 9b5d8d6ca9926e02fff9fac8113762be.js │ │ ├── 9e104be23a3904181ce3d8ad4f4ab220.js │ │ ├── 9e1fc8104320f894b5cb7cbd620e4d93.js │ │ ├── 9f7c53c593cacb46be354f01f9719e15.js │ │ ├── a0ccfff49c4e05313f93e04c41df9e58.js │ │ ├── a2741986477cab7cb901f93ba8362f41.js │ │ ├── a2ae81125a3a0bcf0012a4a8dbfee438.js │ │ ├── a311b864532fd54bd959242c6376c303.js │ │ ├── a3d4eaca0bbaf2e48cb439525f833eed.js │ │ ├── a5237505c0018dcaf2332aa645d98fb7.js │ │ ├── a543b622ee68b6d53c4400bab804d910.js │ │ ├── a56da8a7ff577d3943d46542a4b838fe.js │ │ ├── a5c446f7a06efadb1547b74b2a74befd.js │ │ ├── a5e7645e82813977ee845e1455ab1c50.js │ │ ├── a6da1526d066440ae439665d78a814ba.js │ │ ├── a7487aed908c38304252d1bbf8a74f90.js │ │ ├── a829e0fd133b98fd41c9ce565fae9ad4.js │ │ ├── a9c663e1be35f13be44ee6ec9e190e32.js │ │ ├── aafa3c7949a62e4a9cfc2452c03d5691.js │ │ ├── aba4cbe833311b22bf5d0427f24941e6.js │ │ ├── abd7d90c084fce01e013a12cd9dfb8d4.js │ │ ├── adc208d6cb444ffdd3a5dce73c2baee7.js │ │ ├── b2974a15012c06b846be42ba82708c32.js │ │ ├── b2f0074cce92da89ff8c1bd4899efd32.js │ │ ├── b30d1699a32476a23eb4a032f624f821.js │ │ ├── b31df2415b2195d8fa30ab2b8cec6f26.js │ │ ├── b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js │ │ ├── b8169fe3025bec6aa838d0ab8c76158e.js │ │ ├── b8a3b8e54946b7da92cd6a554de14280.js │ │ ├── b94f654fca25ee13e1af4b36c6188be5.js │ │ ├── bbce6fbd8d4e759d7e4770be2ac8fe1e.js │ │ ├── bbf0b5f24720c346912022ccdf2e213d.js │ │ ├── bd37631ebcc69021fee8a3a115e9188c.js │ │ ├── bdd184c51212429fcf35500b71c86829.js │ │ ├── be490516b49d9e274eb9c3cc4dcd4a42.js │ │ ├── bf6cfc0dc4bddf23d51d404860b60c00.js │ │ ├── c01a69160f89b6f90a7b7ea438910e86.js │ │ ├── c17747a3ee44a81b34f8a2dece22f076.js │ │ ├── c349130a660e1b4877d286b099cb3e53.js │ │ ├── c46366ac40713b505bd07a45b9cda8cd.js │ │ ├── c4e0e052b26014b958361ca24591e880.js │ │ ├── c527e918ff0a8e574b40a00d50866376.js │ │ ├── c56affac7fa1841b8c945ff7c1ee8e42.js │ │ ├── c5c1aace2f9807f5a8433beacefb89d5.js │ │ ├── c6842325fb41c160202c49e4a4c50d8b.js │ │ ├── c6bc2d5d0c5396826c9d0b6d5c23e26d.js │ │ ├── c6ef9ca883d83930d49ac7d07559852c.js │ │ ├── c7abcdc6ecfd72bb00803225755a0d6b.js │ │ ├── c7d4ef89bfcee2c44727fc9bac4c6f1d.js │ │ ├── c8f1e633cb926fe996d5f2044426716b.js │ │ ├── ca64402c74c2c861854a74d9fee0d56b.js │ │ ├── cadb06d453c2085804acba60a7196e5d.js │ │ ├── cb3a462071102ce7affe15497b674321.js │ │ ├── cbdcef242cc969fdcea7bbd898430f4a.js │ │ ├── cce38c49564849ca8d84971eebfe1d72.js │ │ ├── cde8be452aefe0c97004d0108cf5fe37.js │ │ ├── ce53e9a85944c58fead0c64f6ddd6272.js │ │ ├── cf6f184ef6fa9bb5ac418756f2050ad3.js │ │ ├── cf951cf6b21d5af8ca797c8d013a78fa.js │ │ ├── cfdcd42409dccb38a513bc3bca47d4ca.js │ │ ├── d0910d8518c18973441e6349561fed55.js │ │ ├── d13c1c99bddbc642489b8a9e7d3d4aae.js │ │ ├── d1fc0c74a0d39522d8a35249c7b53c23.js │ │ ├── d1ff0bc4ecb52aa165876cbd218d8413.js │ │ ├── d367a7d65bc40ba4cd89e27d9afdd887.js │ │ ├── d56b48a046a639a406a699708812cf07.js │ │ ├── d5a9d79018e75c4302880ad278e28363.js │ │ ├── d6ce767f8a5bfa4fb341cd873fd19755.js │ │ ├── d7cfd77837fdccb790ac25f9018bfea5.js │ │ ├── d8ae2051c1c637ef58cbfff835862815.js │ │ ├── daae8dd216a8d0163756498e642e4f01.js │ │ ├── dbef3e0d34ebab88f6ee074213b96e0c.js │ │ ├── dbf8e36831437278c75ac3295d420944.js │ │ ├── dc102bb51e198559d7bde12f6293456e.js │ │ ├── dd6bebe0a76227cd094747aab35d9b67.js │ │ ├── ddf6975ff5fbc5c661477b59ca586e4d.js │ │ ├── de4d95097fc8ff3a4e564ca1b1e5f106.js │ │ ├── de967b22e35857b24b5b26e279d6525e.js │ │ ├── decdfc6ce8b9de00d594b2ca783388f1.js │ │ ├── dfd3937a4be1f2bb1b8f0c783501e347.js │ │ ├── e034d72fd6b56cf59b58738a20161a20.js │ │ ├── e05e69f3640d00f6512576fbd1fbc71d.js │ │ ├── e089ce555f6a93225dbbd6857eab7cbb.js │ │ ├── e2bba2b979fee7fd23a44657253057af.js │ │ ├── e3da3ff90cf53f4a9658f3d622190e2a.js │ │ ├── e46127dc2b6b65ea71d5e4f3e66d526b.js │ │ ├── e543db54fa740737bf75fb6493e830ed.js │ │ ├── e5fe63fa99c78f4ae0ba3ed0c8dcd333.js │ │ ├── e61ca88883d625f967c831c9a433599c.js │ │ ├── e6f8f40ad771f3bf9592bd0b23cf9435.js │ │ ├── e736ca84f941c8a4de150b5e327fc508.js │ │ ├── e782f1b3e6277fd8a5f7c6717b41da12.js │ │ ├── e7910750ca8b31e5b33d54d82fee104a.js │ │ ├── ec41ccbb04cee550014cf8e576f76619.js │ │ ├── ecfcf3d2db9f233abd64137387ea9a9d.js │ │ ├── ed54a17dda6215c4ebd914aa00d070e4.js │ │ ├── edb5a958b8f7500ddc4825759a251692.js │ │ ├── ede83a7ccfe409df78e72f619c94d71f.js │ │ ├── ee6eb6b7a814d20b2414551e5d0cd11d.js │ │ ├── f05ec885592fe8fc3e08767f078656fc.js │ │ ├── f0f94f24c4bc9a4d90c7e11b521f3f5f.js │ │ ├── f1f2b8a76d1d4e07827b8548b3ef1c8d.js │ │ ├── f4a09c8a767f701b81df89c1ef7b3512.js │ │ ├── f517e60c538984f781281242bdbf8607.js │ │ ├── f6fad020e77fef815450ef1a64d9353a.js │ │ ├── f841fe31d977148c591ab6b18c0edb8f.js │ │ ├── f88a1617bec23310e493b5e3eda78ef5.js │ │ ├── f8b50c62d1562efacbe486fb5ed8bd87.js │ │ ├── f8c9a0dc01662987361a64b52a8302e4.js │ │ ├── f9292c8cd2371ac9de89f6c155166df1.js │ │ ├── fb55cc5f720ca1d6412e7036e7463982.js │ │ ├── fd69d6c6f08c01154641d96aacb5e893.js │ │ └── ffe22751f3c8e22b1d48d3c99cb99e5a.js │ ├── page/ │ │ └── a0ccfff49c4e05313f93e04c41df9e58.js │ ├── post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js │ └── valine-hacker.js ├── lib/ │ └── shortcode-caniuse/ │ └── caniuse-embed-element.iife.js ├── me/ │ └── whysmoke/ │ ├── index.html │ └── index.md ├── offline/ │ └── index.html ├── page/ │ ├── 1/ │ │ └── index.html │ ├── 10/ │ │ └── index.html │ ├── 11/ │ │ └── index.html │ ├── 12/ │ │ └── index.html │ ├── 13/ │ │ └── index.html │ ├── 14/ │ │ └── index.html │ ├── 15/ │ │ └── index.html │ ├── 16/ │ │ └── index.html │ ├── 17/ │ │ └── index.html │ ├── 18/ │ │ └── index.html │ ├── 19/ │ │ └── index.html │ ├── 2/ │ │ └── index.html │ ├── 20/ │ │ └── index.html │ ├── 21/ │ │ └── index.html │ ├── 22/ │ │ └── index.html │ ├── 23/ │ │ └── index.html │ ├── 24/ │ │ └── index.html │ ├── 25/ │ │ └── index.html │ ├── 26/ │ │ └── index.html │ ├── 3/ │ │ └── index.html │ ├── 4/ │ │ └── index.html │ ├── 5/ │ │ └── index.html │ ├── 6/ │ │ └── index.html │ ├── 7/ │ │ └── index.html │ ├── 8/ │ │ └── index.html │ └── 9/ │ └── index.html ├── posts/ │ ├── 18湘潭邀请赛总结/ │ │ ├── index.html │ │ └── index.md │ ├── 18湘潭邀请赛队员代表发言/ │ │ ├── index.html │ │ └── index.md │ ├── 1thintervivew/ │ │ ├── index.html │ │ └── index.md │ ├── 20b75e9/ │ │ ├── index.html │ │ └── index.md │ ├── 404d6a2/ │ │ ├── index.html │ │ └── index.md │ ├── 6550187/ │ │ ├── index.html │ │ └── index.md │ ├── 900d5e4/ │ │ ├── index.html │ │ └── index.md │ ├── 91db0fa/ │ │ ├── index.html │ │ └── index.md │ ├── a-easy/ │ │ ├── index.html │ │ └── index.md │ ├── adb-for-mac/ │ │ ├── index.html │ │ └── index.md │ ├── adjacent-replacements/ │ │ ├── index.html │ │ └── index.md │ ├── article-structure/ │ │ ├── index.html │ │ └── index.md │ ├── aside-toggle-drag/ │ │ ├── index.html │ │ └── index.md │ ├── async-defer/ │ │ ├── index.html │ │ └── index.md │ ├── at-layer/ │ │ ├── index.html │ │ └── index.md │ ├── auto-sizes/ │ │ ├── index.html │ │ └── index.md │ ├── aws-ec2/ │ │ ├── index.html │ │ └── index.md │ ├── aws-solution/ │ │ ├── index.html │ │ └── index.md │ ├── b-higher/ │ │ ├── index.html │ │ └── index.md │ ├── beego-install/ │ │ ├── index.html │ │ └── index.md │ ├── beian/ │ │ ├── index.html │ │ └── index.md │ ├── bfs求最短路/ │ │ ├── index.html │ │ └── index.md │ ├── biaoshi/ │ │ ├── index.html │ │ └── index.md │ ├── blog-backup/ │ │ ├── index.html │ │ └── index.md │ ├── bqbj/ │ │ ├── index.html │ │ └── index.md │ ├── browser-rendering/ │ │ ├── index.html │ │ └── index.md │ ├── bt/ │ │ ├── index.html │ │ └── index.md │ ├── byteio/ │ │ ├── index.html │ │ └── index.md │ ├── c-sort/ │ │ ├── index.html │ │ └── index.md │ ├── c-with-stl/ │ │ ├── index.html │ │ └── index.md │ ├── c6bc2d5/ │ │ ├── index.html │ │ └── index.md │ ├── caddy-file/ │ │ ├── index.html │ │ └── index.md │ ├── cell-blog-dev/ │ │ ├── index.html │ │ └── index.md │ ├── cf-1009/ │ │ ├── index.html │ │ └── index.md │ ├── cfcontest1017/ │ │ ├── index.html │ │ └── index.md │ ├── cipanadmin/ │ │ ├── index.html │ │ └── index.md │ ├── code-playground/ │ │ ├── index.html │ │ └── index.md │ ├── codeforces476a/ │ │ ├── index.html │ │ └── index.md │ ├── codeforces476b/ │ │ ├── index.html │ │ └── index.md │ ├── codeforces680a/ │ │ ├── index.html │ │ └── index.md │ ├── codeforces680b/ │ │ ├── index.html │ │ └── index.md │ ├── codereview/ │ │ ├── index.html │ │ └── index.md │ ├── cognitive-complexity/ │ │ ├── index.html │ │ └── index.md │ ├── commit-bat/ │ │ ├── index.html │ │ └── index.md │ ├── commit-spec/ │ │ ├── index.html │ │ └── index.md │ ├── config4mac/ │ │ ├── index.html │ │ └── index.md │ ├── console-log/ │ │ ├── index.html │ │ └── index.md │ ├── content-adapters/ │ │ ├── index.html │ │ └── index.md │ ├── cos-album.html │ ├── cos-hexo/ │ │ ├── index.html │ │ └── index.md │ ├── crash-cheat/ │ │ ├── index.html │ │ └── index.md │ ├── cron/ │ │ ├── index.html │ │ └── index.md │ ├── csdnvisiter/ │ │ ├── index.html │ │ └── index.md │ ├── css-round/ │ │ ├── index.html │ │ └── index.md │ ├── css-scss-var/ │ │ ├── index.html │ │ └── index.md │ ├── css-viewport/ │ │ ├── css-viewport.css │ │ ├── index.html │ │ └── index.md │ ├── d1fc0c7/ │ │ ├── index.html │ │ └── index.md │ ├── d8ae205/ │ │ ├── index.html │ │ └── index.md │ ├── dacheng/ │ │ ├── index.html │ │ └── index.md │ ├── daka/ │ │ ├── index.html │ │ └── index.md │ ├── dashboard-analysis/ │ │ ├── index.html │ │ └── index.md │ ├── dashboard-summary/ │ │ ├── index.html │ │ └── index.md │ ├── dashborad-template-docs/ │ │ ├── index.html │ │ └── index.md │ ├── dashborad-template-usage/ │ │ ├── index.html │ │ └── index.md │ ├── dashborad-widget-docs/ │ │ ├── index.html │ │ └── index.md │ ├── dashborad-widget-usage/ │ │ ├── index.html │ │ └── index.md │ ├── data/ │ │ ├── index.html │ │ └── index.md │ ├── design-principles/ │ │ ├── index.html │ │ └── index.md │ ├── dev-rules/ │ │ ├── index.html │ │ └── index.md │ ├── dfs_bfs/ │ │ ├── index.html │ │ └── index.md │ ├── document-style-guide/ │ │ ├── index.html │ │ └── index.md │ ├── dongtaisub/ │ │ ├── index.html │ │ └── index.md │ ├── draggable-dashboard/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── drop-shadow/ │ │ ├── index.html │ │ └── index.md │ ├── duixiang/ │ │ ├── index.html │ │ └── index.md │ ├── eclipseuse/ │ │ ├── index.html │ │ └── index.md │ ├── el-backtop-fix/ │ │ ├── index.html │ │ └── index.md │ ├── el-card-collapse/ │ │ ├── index.html │ │ └── index.md │ ├── electron-summary/ │ │ ├── index.html │ │ └── index.md │ ├── encryption-fe/ │ │ ├── index.html │ │ └── index.md │ ├── euclid/ │ │ ├── index.html │ │ └── index.md │ ├── euler/ │ │ ├── index.html │ │ └── index.md │ ├── event-loop/ │ │ ├── index.html │ │ └── index.md │ ├── f-sorting/ │ │ ├── index.html │ │ └── index.md │ ├── fanxing/ │ │ ├── index.html │ │ └── index.md │ ├── fas-app/ │ │ ├── index.html │ │ └── index.md │ ├── feed.json │ ├── fixit-docs-bookmark/ │ │ ├── index.html │ │ └── index.md │ ├── flexbox/ │ │ ├── index.html │ │ └── index.md │ ├── gcd-bit/ │ │ ├── index.html │ │ └── index.md │ ├── gen-router/ │ │ ├── index.html │ │ └── index.md │ ├── git/ │ │ ├── index.html │ │ └── index.md │ ├── git-index-lock/ │ │ ├── index.html │ │ └── index.md │ ├── git-summary/ │ │ ├── index.html │ │ └── index.md │ ├── github-actions/ │ │ ├── index.html │ │ └── index.md │ ├── gituse/ │ │ ├── index.html │ │ └── index.md │ ├── grid-bg-image/ │ │ ├── index.html │ │ └── index.md │ ├── gtd/ │ │ ├── index.html │ │ └── index.md │ ├── hdu-1241/ │ │ ├── index.html │ │ └── index.md │ ├── hdu-1495/ │ │ ├── index.html │ │ └── index.md │ ├── hdu-2612/ │ │ ├── index.html │ │ └── index.md │ ├── hdu1009/ │ │ ├── index.html │ │ └── index.md │ ├── hdu1272/ │ │ ├── index.html │ │ └── index.md │ ├── hdu3038/ │ │ ├── index.html │ │ └── index.md │ ├── heart/ │ │ ├── index.html │ │ └── index.md │ ├── hello-world/ │ │ ├── index.html │ │ └── index.md │ ├── hellojava/ │ │ ├── index.html │ │ └── index.md │ ├── hexo-d-error/ │ │ ├── index.html │ │ └── index.md │ ├── hexo-theme-next/ │ │ ├── index.html │ │ └── index.md │ ├── hexo-to-hugo/ │ │ ├── index.html │ │ └── index.md │ ├── hexo-wordcount/ │ │ ├── index.html │ │ └── index.md │ ├── hexobuild/ │ │ ├── index.html │ │ └── index.md │ ├── hexowrite/ │ │ ├── index.html │ │ └── index.md │ ├── homebrew-npm/ │ │ ├── index.html │ │ └── index.md │ ├── how-tables/ │ │ ├── index.html │ │ └── index.md │ ├── href-301/ │ │ ├── index.html │ │ └── index.md │ ├── http2https/ │ │ ├── index.html │ │ └── index.md │ ├── hugo-admin/ │ │ ├── index.html │ │ └── index.md │ ├── hugo-cardlink/ │ │ ├── index.html │ │ └── index.md │ ├── hugo-friends/ │ │ ├── index.html │ │ └── index.md │ ├── hugo-i18n-zh-tw/ │ │ ├── index.html │ │ └── index.md │ ├── hustoj/ │ │ ├── index.html │ │ └── index.md │ ├── ifzhushi/ │ │ ├── index.html │ │ └── index.md │ ├── imgurl/ │ │ ├── index.html │ │ └── index.md │ ├── index.html │ ├── index.xml │ ├── inversion-1/ │ │ ├── index.html │ │ └── index.md │ ├── inversion-2/ │ │ ├── index.html │ │ └── index.md │ ├── inversion-3/ │ │ ├── index.html │ │ └── index.md │ ├── java-arrays/ │ │ ├── index.html │ │ └── index.md │ ├── java-input/ │ │ ├── index.html │ │ └── index.md │ ├── java-range/ │ │ ├── index.html │ │ └── index.md │ ├── java-regex/ │ │ ├── index.html │ │ └── index.md │ ├── java-urlreader/ │ │ ├── index.html │ │ └── index.md │ ├── javaexception/ │ │ ├── index.html │ │ └── index.md │ ├── jicheng/ │ │ ├── index.html │ │ └── index.md │ ├── js-device/ │ │ ├── index.html │ │ └── index.md │ ├── js-fullscreen/ │ │ ├── index.html │ │ └── index.md │ ├── js-rediscover/ │ │ ├── index.html │ │ └── index.md │ ├── js-vcode/ │ │ ├── index.html │ │ └── index.md │ ├── jsoninfo/ │ │ ├── index.html │ │ └── index.md │ ├── judgetriangle/ │ │ ├── index.html │ │ └── index.md │ ├── k-2018/ │ │ ├── index.html │ │ └── index.md │ ├── less-sass-scss/ │ │ ├── index.html │ │ └── index.md │ ├── lightbox/ │ │ ├── index.html │ │ └── index.md │ ├── lightoj1282/ │ │ ├── index.html │ │ └── index.md │ ├── linkcard/ │ │ ├── index.html │ │ └── index.md │ ├── links/ │ │ ├── index.html │ │ └── index.md │ ├── linux-git/ │ │ ├── index.html │ │ └── index.md │ ├── linux-hello-c/ │ │ ├── index.html │ │ └── index.md │ ├── linux-permission/ │ │ ├── index.html │ │ └── index.md │ ├── liushuixian/ │ │ ├── index.html │ │ └── index.md │ ├── markdownlint/ │ │ ├── index.html │ │ └── index.md │ ├── mathclass/ │ │ ├── index.html │ │ └── index.md │ ├── mermaid-theming/ │ │ ├── index.html │ │ └── index.md │ ├── mmtimgpy/ │ │ ├── index.html │ │ └── index.md │ ├── mood/ │ │ ├── index.html │ │ └── index.md │ ├── ms-html-css/ │ │ ├── index.html │ │ └── index.md │ ├── mx2wx/ │ │ ├── index.html │ │ └── index.md │ ├── native-img-loading-lazy/ │ │ ├── index.html │ │ └── index.md │ ├── netbeans/ │ │ ├── index.html │ │ └── index.md │ ├── newline/ │ │ ├── index.html │ │ └── index.md │ ├── next-pdf/ │ │ ├── index.html │ │ └── index.md │ ├── nextplugin/ │ │ ├── index.html │ │ └── index.md │ ├── ngrok/ │ │ ├── index.html │ │ └── index.md │ ├── night/ │ │ ├── index.html │ │ └── index.md │ ├── nowcoder157a/ │ │ ├── index.html │ │ └── index.md │ ├── nowcodersummer-5th/ │ │ ├── index.html │ │ └── index.md │ ├── ohmyzsh-custom/ │ │ ├── index.html │ │ └── index.md │ ├── overflow-tooltip/ │ │ ├── index.html │ │ └── index.md │ ├── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 10/ │ │ │ └── index.html │ │ ├── 11/ │ │ │ └── index.html │ │ ├── 12/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ ├── 3/ │ │ │ └── index.html │ │ ├── 4/ │ │ │ └── index.html │ │ ├── 5/ │ │ │ └── index.html │ │ ├── 6/ │ │ │ └── index.html │ │ ├── 7/ │ │ │ └── index.html │ │ ├── 8/ │ │ │ └── index.html │ │ └── 9/ │ │ └── index.html │ ├── patch-package/ │ │ ├── index.html │ │ └── index.md │ ├── phpfile/ │ │ ├── index.html │ │ └── index.md │ ├── phpform/ │ │ ├── index.html │ │ └── index.md │ ├── phpfunc/ │ │ ├── index.html │ │ └── index.md │ ├── phppushurl/ │ │ ├── index.html │ │ └── index.md │ ├── piles-with-stones/ │ │ ├── index.html │ │ └── index.md │ ├── player/ │ │ ├── index.html │ │ └── index.md │ ├── poj-1321/ │ │ ├── index.html │ │ └── index.md │ ├── poj-1426/ │ │ ├── index.html │ │ └── index.md │ ├── poj-1611/ │ │ ├── index.html │ │ └── index.md │ ├── poj-2236/ │ │ ├── index.html │ │ └── index.md │ ├── poj-2251/ │ │ ├── index.html │ │ └── index.md │ ├── poj-3278/ │ │ ├── index.html │ │ └── index.md │ ├── poj-3984/ │ │ ├── index.html │ │ └── index.md │ ├── poj1182/ │ │ ├── index.html │ │ └── index.md │ ├── poj1797/ │ │ ├── index.html │ │ └── index.md │ ├── poj2387/ │ │ ├── index.html │ │ └── index.md │ ├── posttest/ │ │ ├── index.html │ │ └── index.md │ ├── pyinstallererror/ │ │ ├── index.html │ │ └── index.md │ ├── pysettime/ │ │ ├── index.html │ │ └── index.md │ ├── pysx1/ │ │ ├── index.html │ │ └── index.md │ ├── pysx2/ │ │ ├── index.html │ │ └── index.md │ ├── qcloudcdn/ │ │ ├── index.html │ │ └── index.md │ ├── qframe/ │ │ ├── index.html │ │ └── index.md │ ├── qqxml/ │ │ ├── index.html │ │ └── index.md │ ├── qrcode/ │ │ ├── index.html │ │ └── index.md │ ├── recent-posts/ │ │ ├── index.html │ │ └── index.md │ ├── renative/ │ │ ├── index.html │ │ └── index.md │ ├── restful/ │ │ ├── index.html │ │ └── index.md │ ├── scrollbar-styling/ │ │ ├── index.html │ │ └── index.md │ ├── semver/ │ │ ├── index.html │ │ └── index.md │ ├── shell/ │ │ ├── index.html │ │ └── index.md │ ├── singlethreaddown/ │ │ ├── index.html │ │ └── index.md │ ├── site-time/ │ │ ├── index.html │ │ └── index.md │ ├── sourcetree-husky/ │ │ ├── index.html │ │ └── index.md │ ├── sql/ │ │ ├── index.html │ │ └── index.md │ ├── ssh-sign/ │ │ ├── index.html │ │ └── index.md │ ├── stringbuffer/ │ │ ├── index.html │ │ └── index.md │ ├── subject-verb/ │ │ ├── index.html │ │ └── index.md │ ├── subl_imgpaste2/ │ │ ├── index.html │ │ └── index.md │ ├── sublime-text3/ │ │ ├── index.html │ │ └── index.md │ ├── substatus/ │ │ ├── index.html │ │ └── index.md │ ├── svg-dark-light/ │ │ ├── index.html │ │ └── index.md │ ├── taotao要吃鸡/ │ │ ├── index.html │ │ └── index.md │ ├── termux/ │ │ ├── index.html │ │ └── index.md │ ├── termux1/ │ │ ├── index.html │ │ └── index.md │ ├── translation-guide/ │ │ ├── index.html │ │ └── index.md │ ├── ubuntutime/ │ │ ├── index.html │ │ └── index.md │ ├── v2-tailwind/ │ │ ├── index.html │ │ └── index.md │ ├── vim/ │ │ ├── index.html │ │ └── index.md │ ├── vscode-snippets/ │ │ ├── index.html │ │ └── index.md │ ├── vue-build/ │ │ ├── index.html │ │ └── index.md │ ├── vue-fullscreen-toggler/ │ │ ├── index.html │ │ └── index.md │ ├── vue-svg-icon/ │ │ ├── index.html │ │ └── index.md │ ├── vue2-guid/ │ │ ├── index.html │ │ └── index.md │ ├── wamproot/ │ │ ├── index.html │ │ └── index.md │ ├── wannafly-18/ │ │ ├── index.html │ │ └── index.md │ ├── wannafly-20/ │ │ ├── index.html │ │ └── index.md │ ├── watermark-fixed/ │ │ └── index.html │ ├── wc-01-prologue/ │ │ ├── index.html │ │ └── index.md │ ├── web-components/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── web-font/ │ │ ├── index.html │ │ └── index.md │ ├── web-server-win/ │ │ ├── index.html │ │ └── index.md │ ├── web-server-yun/ │ │ ├── index.html │ │ └── index.md │ ├── webbiji/ │ │ ├── index.html │ │ └── index.md │ ├── windefault/ │ │ ├── index.html │ │ └── index.md │ ├── wximgpy/ │ │ ├── index.html │ │ └── index.md │ ├── wxpy1/ │ │ ├── index.html │ │ └── index.md │ ├── zuiduanlu/ │ │ ├── index.html │ │ └── index.md │ ├── 位运算/ │ │ ├── index.html │ │ └── index.md │ ├── 在线离线算法/ │ │ ├── index.html │ │ └── index.md │ ├── 戏子春秋/ │ │ ├── index.html │ │ └── index.md │ ├── 杨辉三角/ │ │ ├── index.html │ │ └── index.md │ ├── 牛客练习赛23/ │ │ ├── index.html │ │ └── index.md │ ├── 猴子与哪吒/ │ │ ├── index.html │ │ └── index.md │ ├── 畅通工程/ │ │ ├── index.html │ │ └── index.md │ └── 简单背包/ │ ├── index.html │ └── index.md ├── projects/ │ ├── apple-devices-preview/ │ │ ├── index.html │ │ └── index.md │ ├── bill-note/ │ │ ├── index.html │ │ └── index.md │ ├── cell-blog/ │ │ ├── index.html │ │ └── index.md │ ├── cell-watermark/ │ │ ├── index.html │ │ └── index.md │ ├── cos-album/ │ │ ├── index.html │ │ └── index.md │ ├── coverview/ │ │ ├── index.html │ │ └── index.md │ ├── el-table-sticky/ │ │ ├── index.html │ │ └── index.md │ ├── feed.json │ ├── fixit-cli/ │ │ ├── index.html │ │ └── index.md │ ├── font-mmt/ │ │ ├── index.html │ │ ├── index.md │ │ └── mmt.css │ ├── hugo-fixit/ │ │ ├── action-component-list/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cmpt-flyfish/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cmpt-mdevtools/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cmpt-santa-hat/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cmpt-translate/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── component-projects/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── docs/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── fixit/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── fixit-cli/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── fixit-releaser/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-atom-feed/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-fixit-starter/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-fixit-starter1/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-json-feed/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-shell/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── shortcode-asciinema/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── shortcode-caniuse/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── shortcode-docs-bookmark/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── shortcode-mmt-netease/ │ │ │ ├── index.html │ │ │ └── index.md │ │ └── shortcode-rewards/ │ │ ├── index.html │ │ └── index.md │ ├── index.html │ ├── index.xml │ ├── lruihao/ │ │ ├── auto-changelog-plus/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── bill-note/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── caniuse-embed-element/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cell-blog/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cell-tooltip/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── cos-album/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── coverview/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── el-table-sticky/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hexo-theme-next/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── html-demo/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── hugo-blog/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── json-viewer-element/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── kityminder-core/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── lruihao.github.io/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── mmt/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── mmt-webfont/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── vercel-gravatar/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── vercel-proxy/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── vue-el-demo/ │ │ │ ├── index.html │ │ │ └── index.md │ │ ├── vue-minder-editor-extended/ │ │ │ ├── index.html │ │ │ └── index.md │ │ └── watermark/ │ │ ├── index.html │ │ └── index.md │ ├── page/ │ │ └── 1/ │ │ └── index.html │ └── vercel-gravatar/ │ ├── index.html │ └── index.md ├── readme.md ├── reward/ │ ├── index.html │ └── index.md ├── robots.txt ├── search/ │ ├── index.html │ └── index.md ├── search.json ├── shortcodes/ │ └── mmt-netease/ │ ├── css/ │ │ └── index.css │ └── js/ │ └── index.js ├── site.webmanifest ├── sitemap.xml ├── tags/ │ ├── 2018-湘潭邀请赛/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── @layer/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── acm/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ ├── 2/ │ │ │ └── index.html │ │ └── 3/ │ │ └── index.html │ ├── adb/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── algolia/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── android/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── asciinema/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── async/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── atom/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── auto-changelog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── autocorrect/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── aws/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── backend/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── bat/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── beego/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── bfs/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── blog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── box-shadow/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── browser/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── c/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── c++/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── caddy/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── caniuse/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── caniuse-embed/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── canvas/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cdn/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cell-watermark/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── changelog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cjk/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── codeforces/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── codereview/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── collator/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── comparator/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── continuous-integration/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── conventional-changelog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── conventional-commits/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cos-album/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cos-bucket/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cosalbum/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── coverview/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── cron/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── css/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── custom-element/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── custom-elements/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── dashboard/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── debug/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── defer/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── design-patterns/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── dfs/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── documentation/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── drop-shadow/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── eager/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── eclipse/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── editor/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── el-table/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── el-table-sticky/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── electron/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── element-ui/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── english/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── eruda/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── es6/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── eslint/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── euler/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── feed/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── fixit/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── fixit-cli/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── fixit-docs-bookmark/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── flexbox/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── font/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── front-end/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── frontend/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── fusion/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── giscus/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── git/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── github-actions/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── github-api/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── go/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── gravatar/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── gtd/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── gui/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hdu/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hexo/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hexo-theme-next/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── homebrew/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── html/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── html-css-javascript/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── http/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── hugo-blog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-blog-template/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-blog-theme/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-fixit/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-fixit-starter/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-site/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hugo-theme/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── husky/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── hustoj/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── i18n/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── imageio/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── imgurl/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── index.html │ ├── invert-filter/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── java/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── javascript/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── jieba/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── json/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── json-feed/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── laravel/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── laravel-blog/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── layui/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── lazy/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── leancloud/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── less/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── lightbox/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── linux/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── loading/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── lua/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── mac/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── markdown/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── markdownlint/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── mermaid/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── minder/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── mmt/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── mysql/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── netbeans/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── netease-cloud-music/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── newline/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── nginx/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── ngrok/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── node.js/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── nodejs/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── nowcoder/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── npm/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── npx/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── numpy/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── nvm/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── os/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pangu.js/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── php/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pillow/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── poj/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── prefers-color-scheme/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── proxy/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pwa/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pwa-app/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pyecharts/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── pyinstaller/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── python/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── react/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── redirect/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── regex/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── rest/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── reward-log/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── rolldown/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── round/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── sass/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── scaffolding-tool/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── scrollbar-styling/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── scss/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── semver/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── server/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── shadow-dom/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── shell/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── shortcodes/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── slot/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── sort/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── ssh/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── ssl/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── stl/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── stringbuffer/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── study-notes/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── sublime/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── summary/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── svg/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── tailwindcss/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── template/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── termux/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── theme-component/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── thinkphp/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── translatejs/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── turtle/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── typescript/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── ubuntu/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── urlconnection/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── v-height-adaptive/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── v-sticky-footer/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── v-sticky-h-scroll/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── v-sticky-header/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vconsole/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vercel/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vim/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vue/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vue-directive/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── vue2/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ ├── 1/ │ │ │ └── index.html │ │ └── 2/ │ │ └── index.html │ ├── vue3/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── wamp/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── watermark/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── web-components/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── web-development/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── webfont/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── widget/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── windows/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── wxpy/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 云盘/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 他山之石/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 位运算/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 加密/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 在线离线算法/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 大数运算/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 字体压缩/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 字数统计/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 宝塔面板/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 对象存储/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 并查集/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 快速幂/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 拖拽式仪表盘/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 搜索/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 数学/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 数论/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 最短路/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 杨辉三角/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 欧几里得/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 水仙花数/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 沐目体/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 泛型/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 流水线/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 磁盘/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 组合数学/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 网站备案/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 背包问题/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 脚手架/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 腾讯云-cos-桶/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 计算机数据/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 计算机组成与体系结构/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 贪心/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 随想/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 随笔/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 需求分析/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 面向对象/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ ├── 面试/ │ │ ├── feed.json │ │ ├── index.html │ │ ├── index.xml │ │ └── page/ │ │ └── 1/ │ │ └── index.html │ └── 黑盒测试/ │ ├── feed.json │ ├── index.html │ ├── index.xml │ └── page/ │ └── 1/ │ └── index.html ├── vercel.json └── years/ ├── 2018/ │ ├── index.html │ └── index.md ├── 2019/ │ ├── index.html │ └── index.md ├── 2020-2021/ │ ├── index.html │ └── index.md ├── 2022/ │ ├── index.html │ └── index.md ├── 2023/ │ ├── index.html │ └── index.md ├── feed.json ├── index.html ├── index.xml └── page/ └── 1/ └── index.html ================================================ FILE CONTENTS ================================================ ================================================ FILE: .nojekyll ================================================ ================================================ FILE: 404.html ================================================ 404 页面没找到 | 菠菜眾長

抱歉,您要查找的页面不存在。 

微信扫一扫,订阅本博客
================================================ FILE: _posts/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"加密文章 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[]} ================================================ FILE: _posts/index.html ================================================ 加密文章 | 菠菜眾長

加密文章 1

总计约 535 字

2024

================================================ FILE: _posts/index.xml ================================================ 加密文章 | 菠菜眾長https://lruihao.cn/_posts/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。 ================================================ FILE: _posts/page/1/index.html ================================================ https://lruihao.cn/_posts/ ================================================ FILE: about/index.html ================================================ 关于 | 菠菜眾長

关于

Lruihao

不卑不亢,不矜不伐,戒骄戒躁
不嗔不怒,不争不弃,独善其身

—— 自我期许

关于作者

人知道的越多,就会发现无知的越多。有更广袤的世界可以探索,真是莫大的快乐!

喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。

  • 👨‍💻 一名前端开发工程师
  • 🫶 Hugo FixIt 作者
  • 📚 专业:计算机科学与技术
  •  关注 Follow:Lruihao
  •  微信公众号:菠菜眾長

关于博客

博客内容主要以前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。

你可以通过我的微信公众号GitHubRSS 来订阅本博客。

博客历史
  • 部署从 GitHub Pages 迁移至 Vercel。
    2023-05-01 17:13:51
  • 大学毕业后,出湖南工作。网警打电话告知我迁移备案,我觉得麻烦就注销了,同时部署从腾讯云 COS 桶迁移至 GitHub Pages。
    2023-02-14 18:00:40
  • LoveIt => FixIt
    LoveIt 长期停更,博客主题改为 FixIt,并自行开发维护。
    2021-12-18 16:15:22
  • 博客迁移至 Hugo,使用 LoveIt 主题,重新出发。
    2021-09-08 20:53:21
  • 升级 Windows 11,系统更新出现故障,整理磁盘时不小心把代码全删除了,无备份,GitHub 仅备份了 Markdown 源码。博客开始停止运行。
    2021-08-19 22:48:06
  • 博客名称“博採眾長”改为“菠菜眾長”,因为网站备案不能使用成语。
    这个时候博客内容开始转向前端开发了。部署在腾讯云 COS 桶,速度嘎嘎快。
    2019-12-06 21:04:01
  • 基于 Hexo + NexT 主题搭建博客,博客取名为“博採眾長”,取“兼收並蓄,博採眾長”之意。
    当时还在打 ACM,博客内容也主要是记录题解。
    2018-05-28 20:01:01

有偿帮助

前后端开发需求可以联系我,暂定价格 50~100 元/小时,具体详聊。

(其他类型开发也可以咨询)

商务合作

广告投放、其他平台同步授权等事宜请邮件与我联系。

📮 邮箱:1024@lruihao.cn(备注来意)

已授权平台:云 + 社区


decryptor loading
PGgyIGNb5fbcbd56537bce1ee1174c5e0fe69e3a75437f9867b76600ad802dffsYXNzPSJoZWFkaW5nLWVsZW1lbnQiIGlkPSLmlbDmja7liIbmnpAiPjxzcGFuPuaVsOaNruWIhuaekDwvc3Bhbj4KICA8YSBocmVmPSIjJWU2JTk1JWIwJWU2JThkJWFlJWU1JTg4JTg2JWU2JTllJTkwIiBjbGFzcz0iaGVhZGluZy1tYXJrIj4KICAgIDxzdmcgY2xhc3M9Im9jdGljb24gb2N0aWNvbi1saW5rIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcuNzc1IDMuMjc1IDEuMjUtMS4yNWEzLjUgMy41IDAgMSAxIDQuOTUgNC45NWwtMi41IDIuNWEzLjUgMy41IDAgMCAxLTQuOTUgMCAuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOCAxLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMi41LTIuNWEyLjAwMiAyLjAwMiAwIDAgMC0yLjgzLTIuODNsLTEuMjUgMS4yNWEuNzUxLjc1MSAwIDAgMS0xLjA0Mi0uMDE4Ljc1MS43NTEgMCAwIDEtLjAxOC0xLjA0MlptLTQuNjkgOS42NGExLjk5OCAxLjk5OCAwIDAgMCAyLjgzIDBsMS4yNS0xLjI1YS43NTEuNzUxIDAgMCAxIDEuMDQyLjAxOC43NTEuNzUxIDAgMCAxIC4wMTggMS4wNDJsLTEuMjUgMS4yNWEzLjUgMy41IDAgMSAxLTQuOTUtNC45NWwyLjUtMi41YTMuNSAzLjUgMCAwIDEgNC45NSAwIC43NTEuNzUxIDAgMCAxLS4wMTggMS4wNDIuNzUxLjc1MSAwIDAgMS0xLjA0Mi4wMTggMS45OTggMS45OTggMCAwIDAtMi44MyAwbC0yLjUgMi41YTEuOTk4IDEuOTk4IDAgMCAwIDAgMi44M1oiPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvaDI+PHVsPgo8bGk+PGEgaHJlZj0iaHR0cHM6Ly91cy51bWFtaS5pcy9zaGFyZS9GU1B3bTFJc3JRRlk3WnZQL2xydWloYW8uY24iIHRhcmdldD0iX2JsYW5rIiByZWw9ImV4dGVybmFsIG5vZm9sbG93IG5vb3BlbmVyIG5vcmVmZXJyZXIiPlVtYW1pPGkgY2xhc3M9ImZhLXNvbGlkIGZhLWV4dGVybmFsLWxpbmstYWx0IGZhLXhzIG1zLTEgdGV4dC1zZWNvbmRhcnkiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+PC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwczovL3ZlcmNvdW50Lm9uZS9kYXNoYm9hcmQvYW5hbHl0aWNzP2RvbWFpbj1scnVpaGFvLmNuIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJleHRlcm5hbCBub2ZvbGxvdyBub29wZW5lciBub3JlZmVycmVyIj5WZXJjb3VudDxpIGNsYXNzPSJmYS1zb2xpZCBmYS1leHRlcm5hbC1saW5rLWFsdCBmYS14cyBtcy0xIHRleHQtc2Vjb25kYXJ5IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPjwvYT48L2xpPgo8L3VsPgo=
- 次阅读
微信扫一扫,订阅本博客
================================================ FILE: about/index.md ================================================ # 关于 {{< center-quote >}} 不卑不亢,不矜不伐,戒骄戒躁\ 不嗔不怒,不争不弃,独善其身 _—— 自我期许_ {{< /center-quote >}} ## 关于作者 > 人知道的越多,就会发现无知的越多。有更广袤的世界可以探索,真是莫大的快乐! 喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。 - 👨‍💻 一名前端开发工程师 - 🫶 [Hugo FixIt](https://github.com/hugo-fixit) 作者 - 📚 专业:计算机科学与技术 - :(fa-brands fa-github): 关注 Follow:[Lruihao](https://github.com/Lruihao) - :(fa-brands fa-weixin): 微信公众号:[菠菜眾長](https://lruihao.cn/images/qr-wx-mp.webp) ## 关于博客 博客内容主要以前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。 你可以通过我的[微信公众号](https://lruihao.cn/images/qr-wx-mp.webp "关注「菠菜眾長」公众号")、[GitHub](https://github.com/Lruihao/hugo-blog "Watch on GitHub") 或 [RSS](http://lruihao.cn/index.xml) 来订阅本博客。 {{< style "min-height: 350px;" >}} {{< typeit code=javascript speed=20 >}} /** * 菠菜眾長,取“兼收並蓄,博採眾長”之意。 * Licensed under CC BY-NC-SA 4.0 * @since 2018-05-28 20:01:01 */ class Blog { constructor(name, author, url) { this.name = name; this.author = author; this.url = url; } } // 建站的初衷不是为了炫耀所知,而是记录无知。 const site = new Blog('菠菜眾長', 'Lruihao', 'https://lruihao.cn'); {{< /typeit >}} {{< /style >}} {{< details "博客历史" >}} ```timeline {reverse=true, animation=true, height="280px"} events: - timestamp: 2018-05-28 20:01:01 content: 基于 Hexo + NexT 主题搭建博客,博客取名为“博採眾長”,取“兼收並蓄,博採眾長”之意。
当时还在打 ACM,博客内容也主要是记录题解。 - timestamp: 2019-12-06 21:04:01 content: 博客名称“博採眾長”改为“菠菜眾長”,因为网站备案不能使用成语。
这个时候博客内容开始转向前端开发了。部署在腾讯云 COS 桶,速度嘎嘎快。 - timestamp: 2021-08-19 22:48:06 content: 升级 Windows 11,系统更新出现故障,整理磁盘时不小心把代码全删除了,无备份,GitHub 仅备份了 Markdown 源码。博客开始停止运行。 - timestamp: 2021-09-08 20:53:21 content: 博客迁移至 Hugo,使用 LoveIt 主题,重新出发。 - timestamp: 2021-12-18 16:15:22 content: LoveIt => FixIt
LoveIt 长期停更,博客主题改为 [FixIt](https://github.com/hugo-fixit/FixIt),并自行开发维护。 - timestamp: 2023-02-14 18:00:40 content: 大学毕业后,出湖南工作。网警打电话告知我迁移备案,我觉得麻烦就注销了,同时部署从腾讯云 COS 桶迁移至 GitHub Pages。 - timestamp: 2023-05-01 17:13:51 content: 部署从 GitHub Pages 迁移至 Vercel。 ``` {{< /details >}} ## 有偿帮助 前后端开发需求可以联系我,暂定价格 [50~100 元]/[小时],具体详聊。 _(其他类型开发也可以咨询)_ ## 商务合作 广告投放、其他平台同步授权等事宜请邮件与我联系。 📮 邮箱:`1024@lruihao.cn`(备注来意) 已授权平台:[云 + 社区](https://cloud.tencent.com/developer/column/94521) --- {{< busuanzi_embed >}} --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/about/ ================================================ FILE: archives/index.html ================================================ 归档 | 菠菜眾長

归档 297

总计约 271.93K 字

最近更新

2026

2025

2024

微信扫一扫,订阅本博客
================================================ FILE: archives/page/1/index.html ================================================ https://lruihao.cn/archives/ ================================================ FILE: archives/page/10/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/11/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/12/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/13/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/14/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/15/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/2/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/3/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/4/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/5/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/6/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/7/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/8/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: archives/page/9/index.html ================================================ 归档 | 菠菜眾長
微信扫一扫,订阅本博客
================================================ FILE: baidu_urls.txt ================================================ https://lruihao.cn/projects/lruihao/cell-tooltip/ https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/ https://lruihao.cn/projects/lruihao/auto-changelog-plus/ https://lruihao.cn/posts/mermaid-theming/ https://lruihao.cn/posts/wc-01-prologue/ https://lruihao.cn/posts/code-playground/ https://lruihao.cn/projects/lruihao/caniuse-embed-element/ https://lruihao.cn/projects/lruihao/json-viewer-element/ https://lruihao.cn/posts/at-layer/ https://lruihao.cn/posts/vue-build/ https://lruihao.cn/projects/lruihao/mmt-webfont/ https://lruihao.cn/projects/lruihao/vercel-proxy/ https://lruihao.cn/posts/flexbox/ https://lruihao.cn/projects/hugo-fixit/action-component-list/ https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/ https://lruihao.cn/posts/css-viewport/ https://lruihao.cn/projects/hugo-fixit/cmpt-translate/ https://lruihao.cn/search/ https://lruihao.cn/posts/91db0fa/ https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/ https://lruihao.cn/posts/content-adapters/ https://lruihao.cn/projects/lruihao/html-demo/ https://lruihao.cn/projects/hugo-fixit/fixit-releaser/ https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/ https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/ https://lruihao.cn/reward/ https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/ https://lruihao.cn/posts/css-round/ https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/ https://lruihao.cn/posts/git-summary/ https://lruihao.cn/posts/drop-shadow/ https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/ https://lruihao.cn/posts/fixit-docs-bookmark/ https://lruihao.cn/posts/d1fc0c7/ https://lruihao.cn/posts/scrollbar-styling/ https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/ https://lruihao.cn/posts/aside-toggle-drag/ https://lruihao.cn/posts/design-principles/ https://lruihao.cn/posts/svg-dark-light/ https://lruihao.cn/posts/404d6a2/ https://lruihao.cn/projects/vercel-gravatar/ https://lruihao.cn/projects/lruihao/vercel-gravatar/ https://lruihao.cn/projects/hugo-fixit/component-projects/ https://lruihao.cn/projects/apple-devices-preview/ https://lruihao.cn/projects/coverview/ https://lruihao.cn/projects/lruihao/coverview/ https://lruihao.cn/posts/c6bc2d5/ https://lruihao.cn/posts/overflow-tooltip/ https://lruihao.cn/posts/auto-sizes/ https://lruihao.cn/years/2023/ https://lruihao.cn/projects/lruihao/kityminder-core/ https://lruihao.cn/posts/900d5e4/ https://lruihao.cn/posts/20b75e9/ https://lruihao.cn/posts/6550187/ https://lruihao.cn/posts/el-card-collapse/ https://lruihao.cn/posts/d8ae205/ https://lruihao.cn/projects/fixit-cli/ https://lruihao.cn/projects/hugo-fixit/fixit-cli/ https://lruihao.cn/posts/aws-solution/ https://lruihao.cn/posts/ssh-sign/ https://lruihao.cn/posts/patch-package/ https://lruihao.cn/posts/dashboard-summary/ https://lruihao.cn/posts/dashborad-widget-usage/ https://lruihao.cn/posts/dashborad-template-usage/ https://lruihao.cn/posts/dashborad-widget-docs/ https://lruihao.cn/posts/dashborad-template-docs/ https://lruihao.cn/posts/dashboard-analysis/ https://lruihao.cn/posts/markdownlint/ https://lruihao.cn/posts/cognitive-complexity/ https://lruihao.cn/posts/article-structure/ https://lruihao.cn/projects/el-table-sticky/ https://lruihao.cn/posts/vue-fullscreen-toggler/ https://lruihao.cn/posts/js-fullscreen/ https://lruihao.cn/posts/translation-guide/ https://lruihao.cn/posts/vue-svg-icon/ https://lruihao.cn/posts/vscode-snippets/ https://lruihao.cn/posts/grid-bg-image/ https://lruihao.cn/posts/aws-ec2/ https://lruihao.cn/projects/lruihao/vue-el-demo/ https://lruihao.cn/posts/el-backtop-fix/ https://lruihao.cn/projects/lruihao/el-table-sticky/ https://lruihao.cn/posts/gen-router/ https://lruihao.cn/posts/sourcetree-husky/ https://lruihao.cn/posts/v2-tailwind/ https://lruihao.cn/posts/vue2-guid/ https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/ https://lruihao.cn/posts/native-img-loading-lazy/ https://lruihao.cn/posts/browser-rendering/ https://lruihao.cn/posts/document-style-guide/ https://lruihao.cn/posts/event-loop/ https://lruihao.cn/years/2022/ https://lruihao.cn/posts/homebrew-npm/ https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/ https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/ https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/ https://lruihao.cn/projects/hugo-fixit/hugo-shell/ https://lruihao.cn/posts/beego-install/ https://lruihao.cn/posts/semver/ https://lruihao.cn/posts/commit-spec/ https://lruihao.cn/posts/electron-summary/ https://lruihao.cn/posts/encryption-fe/ https://lruihao.cn/posts/qcloudcdn/ https://lruihao.cn/posts/newline/ https://lruihao.cn/posts/ohmyzsh-custom/ https://lruihao.cn/posts/linux-permission/ https://lruihao.cn/posts/config4mac/ https://lruihao.cn/projects/hugo-fixit/docs/ https://lruihao.cn/posts/adb-for-mac/ https://lruihao.cn/posts/js-rediscover/ https://lruihao.cn/posts/css-scss-var/ https://lruihao.cn/posts/gtd/ https://lruihao.cn/projects/hugo-fixit/fixit/ https://lruihao.cn/posts/subl_imgpaste2/ https://lruihao.cn/posts/hugo-cardlink/ https://lruihao.cn/posts/hugo-i18n-zh-tw/ https://lruihao.cn/posts/hugo-friends/ https://lruihao.cn/posts/hugo-admin/ https://lruihao.cn/posts/github-actions/ https://lruihao.cn/posts/hexo-to-hugo/ https://lruihao.cn/friends/ https://lruihao.cn/guestbook/ https://lruihao.cn/projects/lruihao/hugo-blog/ https://lruihao.cn/about/ https://lruihao.cn/posts/less-sass-scss/ https://lruihao.cn/posts/lightbox/ https://lruihao.cn/years/2020-2021/ https://lruihao.cn/projects/lruihao/watermark/ https://lruihao.cn/projects/cell-watermark/ https://lruihao.cn/posts/codereview/ https://lruihao.cn/projects/bill-note/ https://lruihao.cn/me/whysmoke/ https://lruihao.cn/projects/lruihao/bill-note/ https://lruihao.cn/projects/cell-blog/ https://lruihao.cn/posts/cell-blog-dev/ https://lruihao.cn/projects/lruihao/cell-blog/ https://lruihao.cn/posts/csdnvisiter/ https://lruihao.cn/posts/cron/ https://lruihao.cn/posts/daka/ https://lruihao.cn/years/2019/ https://lruihao.cn/posts/sql/ https://lruihao.cn/projects/cos-album/ https://lruihao.cn/projects/lruihao/cos-album/ https://lruihao.cn/posts/restful/ https://lruihao.cn/posts/phppushurl/ https://lruihao.cn/posts/phpfile/ https://lruihao.cn/projects/lruihao/mmt/ https://lruihao.cn/posts/site-time/ https://lruihao.cn/posts/async-defer/ https://lruihao.cn/posts/sublime-text3/ https://lruihao.cn/posts/netbeans/ https://lruihao.cn/posts/dev-rules/ https://lruihao.cn/posts/phpform/ https://lruihao.cn/posts/phpfunc/ https://lruihao.cn/posts/wamproot/ https://lruihao.cn/posts/pysx2/ https://lruihao.cn/posts/pysx1/ https://lruihao.cn/posts/judgetriangle/ https://lruihao.cn/posts/hustoj/ https://lruihao.cn/posts/gcd-bit/ https://lruihao.cn/posts/imgurl/ https://lruihao.cn/posts/mx2wx/ https://lruihao.cn/posts/ifzhushi/ https://lruihao.cn/posts/pysettime/ https://lruihao.cn/posts/pyinstallererror/ https://lruihao.cn/posts/singlethreaddown/ https://lruihao.cn/posts/jsoninfo/ https://lruihao.cn/posts/posttest/ https://lruihao.cn/posts/java-urlreader/ https://lruihao.cn/posts/byteio/ https://lruihao.cn/posts/javaexception/ https://lruihao.cn/posts/qrcode/ https://lruihao.cn/posts/1thintervivew/ https://lruihao.cn/posts/mmtimgpy/ https://lruihao.cn/posts/wxpy1/ https://lruihao.cn/posts/wximgpy/ https://lruihao.cn/posts/hellojava/ https://lruihao.cn/posts/java-regex/ https://lruihao.cn/posts/stringbuffer/ https://lruihao.cn/posts/hdu1009/ https://lruihao.cn/posts/ngrok/ https://lruihao.cn/posts/ms-html-css/ https://lruihao.cn/posts/bqbj/ https://lruihao.cn/posts/dacheng/ https://lruihao.cn/posts/http2https/ https://lruihao.cn/posts/hexo-theme-next/ https://lruihao.cn/posts/substatus/ https://lruihao.cn/posts/windefault/ https://lruihao.cn/posts/player/ https://lruihao.cn/posts/bt/ https://lruihao.cn/posts/webbiji/ https://lruihao.cn/posts/fanxing/ https://lruihao.cn/posts/eclipseuse/ https://lruihao.cn/posts/qframe/ https://lruihao.cn/posts/linkcard/ https://lruihao.cn/posts/ubuntutime/ https://lruihao.cn/posts/qqxml/ https://lruihao.cn/posts/cipanadmin/ https://lruihao.cn/posts/js-vcode/ https://lruihao.cn/posts/renative/ https://lruihao.cn/projects/lruihao/hexo-theme-next/ https://lruihao.cn/posts/jicheng/ https://lruihao.cn/posts/cos-hexo/ https://lruihao.cn/posts/java-arrays/ https://lruihao.cn/posts/recent-posts/ https://lruihao.cn/posts/mathclass/ https://lruihao.cn/posts/duixiang/ https://lruihao.cn/posts/java-range/ https://lruihao.cn/posts/java-input/ https://lruihao.cn/posts/biaoshi/ https://lruihao.cn/posts/subject-verb/ https://lruihao.cn/years/2018/ https://lruihao.cn/posts/inversion-3/ https://lruihao.cn/posts/inversion-2/ https://lruihao.cn/posts/inversion-1/ https://lruihao.cn/posts/nextplugin/ https://lruihao.cn/posts/commit-bat/ https://lruihao.cn/posts/fas-app/ https://lruihao.cn/posts/caddy-file/ https://lruihao.cn/posts/next-pdf/ https://lruihao.cn/posts/js-device/ https://lruihao.cn/posts/blog-backup/ https://lruihao.cn/posts/git/ https://lruihao.cn/posts/beian/ https://lruihao.cn/posts/shell/ https://lruihao.cn/posts/web-server-yun/ https://lruihao.cn/posts/href-301/ https://lruihao.cn/posts/web-server-win/ https://lruihao.cn/posts/gituse/ https://lruihao.cn/posts/termux1/ https://lruihao.cn/posts/web-font/ https://lruihao.cn/posts/linux-hello-c/ https://lruihao.cn/projects/font-mmt/ https://lruihao.cn/posts/liushuixian/ https://lruihao.cn/posts/data/ https://lruihao.cn/posts/night/ https://lruihao.cn/posts/crash-cheat/ https://lruihao.cn/posts/linux-git/ https://lruihao.cn/posts/mood/ https://lruihao.cn/posts/vim/ https://lruihao.cn/posts/hexo-wordcount/ https://lruihao.cn/posts/hexo-d-error/ https://lruihao.cn/posts/dongtaisub/ https://lruihao.cn/posts/heart/ https://lruihao.cn/posts/git-index-lock/ https://lruihao.cn/posts/termux/ https://lruihao.cn/posts/nowcoder157a/ https://lruihao.cn/posts/codeforces476a/ https://lruihao.cn/posts/codeforces476b/ https://lruihao.cn/posts/euclid/ https://lruihao.cn/posts/lightoj1282/ https://lruihao.cn/posts/cfcontest1017/ https://lruihao.cn/posts/euler/ https://lruihao.cn/posts/poj1797/ https://lruihao.cn/posts/console-log/ https://lruihao.cn/posts/poj2387/ https://lruihao.cn/posts/zuiduanlu/ https://lruihao.cn/posts/nowcodersummer-5th/ https://lruihao.cn/posts/poj1182/ https://lruihao.cn/posts/hdu1272/ https://lruihao.cn/posts/hdu3038/ https://lruihao.cn/posts/codeforces680b/ https://lruihao.cn/posts/codeforces680a/ https://lruihao.cn/posts/how-tables/ https://lruihao.cn/posts/poj-1611/ https://lruihao.cn/posts/poj-2236/ https://lruihao.cn/posts/piles-with-stones/ https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/ https://lruihao.cn/posts/hdu-1495/ https://lruihao.cn/posts/hdu-2612/ https://lruihao.cn/posts/poj-3278/ https://lruihao.cn/posts/poj-2251/ https://lruihao.cn/posts/poj-1321/ https://lruihao.cn/posts/poj-1426/ https://lruihao.cn/posts/adjacent-replacements/ https://lruihao.cn/posts/poj-3984/ https://lruihao.cn/posts/wannafly-20/ https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ https://lruihao.cn/posts/hdu-1241/ https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ https://lruihao.cn/posts/cf-1009/ https://lruihao.cn/posts/dfs_bfs/ https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ https://lruihao.cn/posts/wannafly-18/ https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ https://lruihao.cn/posts/f-sorting/ https://lruihao.cn/posts/k-2018/ https://lruihao.cn/posts/b-higher/ https://lruihao.cn/posts/a-easy/ https://lruihao.cn/posts/c-sort/ https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/ https://lruihao.cn/posts/c-with-stl/ https://lruihao.cn/posts/links/ https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/ https://lruihao.cn/posts/hexobuild/ https://lruihao.cn/posts/hexowrite/ https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/ https://lruihao.cn/projects/lruihao/lruihao.github.io/ https://lruihao.cn/posts/hello-world/ ================================================ FILE: browserconfig.xml ================================================ #2b5797 ================================================ FILE: categories/acm/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"ACM - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"最大公约数(二进制算法)","date_published":"2019-05-17T09:14:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/gcd-bit/","url":"https://lruihao.cn/posts/gcd-bit/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["欧几里得","数学","数论","C"],"summary":" 二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"HDU 1009 FatMouse' Trade(贪心)","date_published":"2019-04-12T16:43:19+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/hdu1009/","url":"https://lruihao.cn/posts/hdu1009/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","贪心","HDU"],"summary":"5 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e5 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。\u003c/p\u003e"},{"title":"百钱百鸡(枚举法)","date_published":"2019-03-30T10:13:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/bqbj/","url":"https://lruihao.cn/posts/bqbj/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM"],"summary":" 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"大数乘法","date_published":"2019-03-28T22:50:43+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/dacheng/","url":"https://lruihao.cn/posts/dacheng/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","大数运算","ACM","C"],"summary":" 大数乘法 c 版 (基础写法)\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e大数乘法 c 版 (基础写法)\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"石子阵列(组合数学)","date_published":"2018-08-10T22:11:00+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/nowcoder157a/","url":"https://lruihao.cn/posts/nowcoder157a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","组合数学","ACM","Nowcoder","C++"],"summary":"链接:https://www.nowcoder.com/acm/contest/157/A\n来源:牛客网\n15 题目描述 xb 有 m 种石子,每种无限个,Ta 想从这些石子中取出 n 个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb 想知道有多少种排列的方法。\n","content_html":"\u003cp\u003e链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/157/A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e15 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003exb 有 m 种石子,每种无限个,Ta 想从这些石子中取出 n 个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb 想知道有多少种排列的方法。\u003c/p\u003e"},{"title":"Dreamoon and Stairs","date_published":"2018-08-10T20:13:08+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces476a/","url":"https://lruihao.cn/posts/codeforces476a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","数学","C++","C"],"summary":"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n7 Input The single line contains two space separated integers n, m (0 \u0026lt; n ≤ 10000, 1 \u0026lt; m ≤ 10).\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\u003c/p\u003e\n\u003cp\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"input\"\u003e\u003cspan\u003e7 Input\u003c/span\u003e\n \u003ca href=\"#input\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe single line contains two space separated integers n, m (0 \u0026lt; n ≤ 10000, 1 \u0026lt; m ≤ 10).\u003c/p\u003e"},{"title":"Dreamoon and WiFi(组合数学)","date_published":"2018-08-10T17:44:47+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/codeforces476b/","url":"https://lruihao.cn/posts/codeforces476b/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["组合数学","Codeforces","ACM","数学","C++","C"],"summary":"题目链接\n7 题目大意 就是给定两个字符串,第一个字符串由\u0026quot;+\u0026quot;,\u0026quot;-\u0026ldquo;组成,第二个字符串由\u0026rdquo;+\u0026quot;,\u0026quot;-\u0026quot;,\u0026quot;?\u0026ldquo;组成,“+”代表加 1,\u0026rdquo;-\u0026ldquo;代表减一,“?\u0026ldquo;代表可取正也可取负,问第二个字符串的位置和第一个字符串相等的概率是多少。\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e7 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e就是给定两个字符串,第一个字符串由\u0026quot;+\u0026quot;,\u0026quot;-\u0026ldquo;组成,第二个字符串由\u0026rdquo;+\u0026quot;,\u0026quot;-\u0026quot;,\u0026quot;?\u0026ldquo;组成,“+”代表加 1,\u0026rdquo;-\u0026ldquo;代表减一,“?\u0026ldquo;代表可取正也可取负,问第二个字符串的位置和第一个字符串相等的概率是多少。\u003c/p\u003e"},{"title":"The equation-SGU106(扩展欧几里得)","date_published":"2018-08-10T10:32:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/euclid/","url":"https://lruihao.cn/posts/euclid/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","数论","ACM","欧几里得","他山之石","C++","C"],"summary":"7 题意 给出 a,b,c,x1,x2,y1,y2,求满足 ax+by+c=0,且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题意\"\u003e\u003cspan\u003e7 题意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给出 a,b,c,x1,x2,y1,y2,求满足 ax+by+c=0,且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\u003c/p\u003e"},{"title":"Leading and Trailing-lightoj1282(快速幂 + 对数运算)","date_published":"2018-08-09T20:55:26+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/lightoj1282/","url":"https://lruihao.cn/posts/lightoj1282/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数论","数学","快速幂","ACM","C"],"summary":"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n11 分析 求后三位的话:直接快速幂,对 1000 取模就好了。\n求前三位,对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数,则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分,对于 t=nk 这个数,它的位数由 (10x) 决定,它的位数上的值则有 (10y) 决定,因此我们要求 t 的前三位,只需要将 10y 求出,在乘以 100,就得到了它的前三位。\n分析完,我们再整体看,设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接\"\u003e\u003cspan\u003e9 \u003ca href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e10 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"分析\"\u003e\u003cspan\u003e11 分析\u003c/span\u003e\n \u003ca href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e求后三位的话:直接快速幂,对 1000 取模就好了。\u003cbr\u003e\n求前三位,对于给定的一个数 n, 它可以写成 n=10\u003csup\u003ea, 其中这个 a 为浮点数,则\u003ccode\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\u003c/code\u003e其中 x,y 分别是\u003ccode\u003ea*k\u003c/code\u003e的整数部分和小数部分,对于 t=n\u003c/sup\u003ek 这个数,它的位数由 (10\u003csup\u003ex) 决定,它的位数上的值则有 (10\u003c/sup\u003ey) 决定,因此我们要求 t 的前三位,只需要将 10\u003csup\u003ey 求出,在乘以 100,就得到了它的前三位。\u003cbr\u003e\n分析完,我们再整体看,设 n\u003c/sup\u003ek=10^z; 那么\u003ccode\u003ez=k*log10(n)\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003efmod(z,1)\u003c/code\u003e可以求出 x 的小数部分。\u003c/p\u003e"},{"title":"Codeforces Round 502(Div.1 + Div.2)","date_published":"2018-08-09T10:48:00+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/cfcontest1017/","url":"https://lruihao.cn/posts/cfcontest1017/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Codeforces","组合数学","C++"],"summary":"0.5 A. The Rank 题目大意:\n给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"a-the-rank\"\u003e\u003cspan\u003e0.5 \u003ca href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. The Rank\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#a-the-rank\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e题目大意:\u003cbr\u003e\n给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排;\u003cbr\u003e\n开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。\u003c/p\u003e"},{"title":"欧拉函数","date_published":"2018-08-08T17:10:07+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/euler/","url":"https://lruihao.cn/posts/euler/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","数论","euler","C"],"summary":"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数\nφ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=223】\n12 定理 若 n 是素数 p 的 k 次幂,φ(n)=pk-p(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时,φ(2n)=φ(n) p 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值 若 a 为素数,b mod a=0,φ(a*b)=φ(b)*a ","content_html":"\u003ch2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"\u003e\u003cspan\u003e11 \u003cstrong\u003e\u003cem\u003e欧拉函数是求小于 x 并且和 x\u003ca href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e互质\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的数的个数\u003c/em\u003e\u003c/strong\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\u003cbr\u003e\n\u003cstrong\u003e其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数\u003c/strong\u003e\u003cbr\u003e\nφ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=2\u003cem\u003e2\u003c/em\u003e3】\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"定理\"\u003e\u003cspan\u003e12 定理\u003c/span\u003e\n \u003ca href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e若 n 是素数 p 的 k 次幂,φ(n)=p\u003csup\u003ek-p\u003c/sup\u003e(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 \u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"\u003ch2\u003eIMG_20180808_170807.jpg\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"特殊性质\"\u003e\u003cspan\u003e13 特殊性质\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e当 n 为奇数时,φ(2n)=φ(n)\u003c/li\u003e\n\u003cli\u003ep 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值\u003c/li\u003e\n\u003cli\u003e若 a 为素数,b mod a=0,\u003ccode\u003eφ(a*b)=φ(b)*a\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"Heavy Transportation-poj1797(dijkstra 或最大生成树)","date_published":"2018-08-06T09:42:11+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj1797/","url":"https://lruihao.cn/posts/poj1797/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","POJ","最短路","C++"],"summary":"题目链接\n大意:\n要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单,就是找一条 1\u0026ndash;\u0026gt;N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边; ","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大意:\u003cbr\u003e\n要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。\u003cbr\u003e\n其实题意很简单,就是找一条 1\u0026ndash;\u0026gt;N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边;\n\u003ca class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"\u003ch2\u003e更新\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='images/update.jpg' alt=\"更新\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"Til the Cows Come Home-poj2387(dijkstra 判断重边)","date_published":"2018-08-03T21:40:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj2387/","url":"https://lruihao.cn/posts/poj2387/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","最短路","C++","C"],"summary":"题目链接\n题目大意:\n说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。\n两个点可能有多条路,选择最短的。\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \u0026\u0026 d[j]","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e题目大意:\u003cbr\u003e\n说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。\u003c/p\u003e\n\u003cp\u003e两个点可能有多条路,选择最短的。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e#include\u003cstdio.h\u003e\n#include\u003cstring.h\u003e\n#include\u003calgorithm\u003e\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i\u003c=n;i++)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j\u003c=n;j++) //在所有未标记点中 选 d 值最小的点\n if(!v[j] \u0026\u0026 d[j]\u003cmini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(\"%d\\n\",d[t]);\n return;\n }\n for(j=1;j\u003c=n;j++)\n if(!v[j] \u0026\u0026 (d[k]+maps[k][j])\u003cd[j]) //表示从 k 出发的点,对于所有边,更新相连点\n d[j]=d[k]+maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(\"%d %d\",\u0026T,\u0026n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i\u003c=n;i++)\n for(j=1;j\u003c=n;j++)\n maps[i][j]=INF;\n\n for(i=1;i\u003c=T;i++){\n scanf(\"%d%d%d\",\u0026x,\u0026y,\u0026D);\n if(maps[x][y]\u003eD) //可能有多条路,只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e"},{"title":"最短路入门","date_published":"2018-08-03T16:27:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/zuiduanlu/","url":"https://lruihao.cn/posts/zuiduanlu/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["最短路","ACM"],"summary":" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ch2 class=\"heading-element\" id=\"dijkstra-算法\"\u003e\u003cspan\u003e1 Dijkstra 算法\u003c/span\u003e\n \u003ca href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"1-定义概览\"\u003e\u003cspan\u003e1.1 1. 定义概览\u003c/span\u003e\n \u003ca href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eDijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。\u003c/p\u003e"},{"title":"牛客暑假多校第五场","date_published":"2018-08-02T21:27:02+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/nowcodersummer-5th/","url":"https://lruihao.cn/posts/nowcodersummer-5th/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Nowcoder","ACM","C++"],"summary":"题目链接 密码:l9sn\n终于不爆零了,但是还是 wa 了无数次,有时候代码感觉都差不多\n","content_html":"\u003cp\u003e\u003ca href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接 密码:l9sn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n终于不爆零了,但是还是 wa 了无数次,有时候代码感觉都差不多\u003c/p\u003e"},{"title":"食物链-poj1182(带权并查集经典模板)","date_published":"2018-08-02T11:10:37+08:00","date_modified":"2024-10-02T13:35:30+08:00","id":"https://lruihao.cn/posts/poj1182/","url":"https://lruihao.cn/posts/poj1182/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","POJ","C++","C"],"summary":"题目链接\n思路参考 1,思路参考 2(没看懂)\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e思路参考 1\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e思路参考 2\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(没看懂)\u003c/p\u003e"},{"title":"小希的迷宫-HDU-1272(并查集 or 树性质)","date_published":"2018-08-01T21:45:50+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu1272/","url":"https://lruihao.cn/posts/hdu1272/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","HDU","C++","C"],"summary":"7 题目链接:小希的迷宫 8 并查集 无回路 单连通 并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成回路,则可以判定 No,交了一发错了。\n想了一下没有考虑到多个连通域的情况,该题必须只有一个连通域\n9 树的性质 既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接小希的迷宫\"\u003e\u003cspan\u003e7 题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e小希的迷宫\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"并查集\"\u003e\u003cspan\u003e8 并查集\u003c/span\u003e\n \u003ca href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e无回路\u003c/li\u003e\n\u003cli\u003e单连通\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成\u003cstrong\u003e回路\u003c/strong\u003e,则可以判定 No,交了一发错了。\u003cbr\u003e\n想了一下没有考虑到多个连通域的情况,该题必须只有\u003cstrong\u003e一个连通域\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"树的性质\"\u003e\u003cspan\u003e9 树的性质\u003c/span\u003e\n \u003ca href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;\u003c/p\u003e"},{"title":"How Many Answers Are Wrong-hdu3038(带权并查集)","date_published":"2018-08-01T11:45:53+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu3038/","url":"https://lruihao.cn/posts/hdu3038/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","ACM","HDU","C++"],"summary":"题目链接:How Many Answers Are Wrong\n思路参考:本题直接参考,图文解释\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHow Many Answers Are Wrong\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n思路参考:\u003ca href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e本题直接参考\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e图文解释\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"Bear and Finding Criminals-Codeforces680B","date_published":"2018-07-31T19:32:21+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces680b/","url":"https://lruihao.cn/posts/codeforces680b/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"题目链接:Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况:\n警察所住城市有罪犯,则一定能检测到\n警察所住城市的左边和右边位置若都不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)\n警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Finding Criminals\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里\u003cstrong\u003e一定\u003c/strong\u003e有罪犯。\u003c/p\u003e\n\u003cp\u003e一定能确定该城市有小偷的几种情况:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e警察所住城市有罪犯,则一定能检测到\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e警察所住城市的左边和右边位置若\u003cstrong\u003e都\u003c/strong\u003e不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"Bear and Five Cards-Codeforces680A","date_published":"2018-07-31T19:22:36+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces680a/","url":"https://lruihao.cn/posts/codeforces680a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"题目链接:Bear and Five Cards\n大致题意就是小熊有 5 张卡片,每张卡片有对应的分数,他可以选择丢弃 2 张相同的或者 3 张相同的卡片,没有相同的就无法丢弃,问小熊剩下的分数最少是多少。\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Five Cards\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大致题意就是小熊有 5 张卡片,每张卡片有对应的分数,他可以选择丢弃 2 张相同的或者 3 张相同的卡片,没有相同的就无法丢弃,问小熊剩下的分数最少是多少。\u003c/p\u003e"},{"title":"how many tables-HDU-1213(并查集求连通域数目)","date_published":"2018-07-31T11:12:10+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/how-tables/","url":"https://lruihao.cn/posts/how-tables/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","HDU","C++","ACM"],"summary":"并查集求连通域数目,初始化 sum=n; 题目链接: how many tables\n","content_html":"\u003cp\u003e并查集求连通域数目,初始化 sum=n;\n题目链接: \u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehow many tables\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"The-suspects-POJ-1611(并查集)","date_published":"2018-07-31T11:11:31+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-1611/","url":"https://lruihao.cn/posts/poj-1611/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","POJ","ACM","C","C++"],"summary":"5 题目链接:The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0 号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯?\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接the-suspects\"\u003e\u003cspan\u003e5 题目链接:\u003ca href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe-suspects\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"翻译\"\u003e\u003cspan\u003e6 翻译\u003c/span\u003e\n \u003ca href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0 号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯?\u003c/p\u003e"},{"title":"wireless network-POJ-2236(并查集)","date_published":"2018-07-31T11:10:54+08:00","date_modified":"2024-07-07T14:04:22+08:00","id":"https://lruihao.cn/posts/poj-2236/","url":"https://lruihao.cn/posts/poj-2236/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","ACM","POJ","C++","C"],"summary":"5 题目链接:wireless network 6 翻译 ","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接wireless-network\"\u003e\u003cspan\u003e5 题目链接:\u003ca href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewireless network\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"翻译\"\u003e\u003cspan\u003e6 翻译\u003c/span\u003e\n \u003ca href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e"},{"title":"Piles-with-stones","date_published":"2018-07-31T11:09:31+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/piles-with-stones/","url":"https://lruihao.cn/posts/piles-with-stones/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Codeforces","C++"],"summary":"Codeforces Round #500 (Div. 2)\n题目链接:Piles With Stones\n","content_html":"\u003cp\u003eCodeforces Round #500 (Div. 2)\u003cbr\u003e\n题目链接:\u003ca href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePiles With Stones\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"畅通工程-HDU-1232(并查集经典模板)","date_published":"2018-07-31T11:08:43+08:00","date_modified":"2018-07-31T11:08:43+08:00","id":"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/","url":"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","HDU","C++","C"],"summary":"9 并查集入门推荐:超有爱的并查集~ 10 题目链接:畅通工程 11 题意分析 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"\u003e\u003cspan\u003e9 并查集入门推荐:\u003ca href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e超有爱的并查集~\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题目链接畅通工程\"\u003e\u003cspan\u003e10 题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e畅通工程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题意分析\"\u003e\u003cspan\u003e11 题意分析\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。\u003c/p\u003e"},{"title":"牛客练习赛 23","date_published":"2018-07-27T21:56:08+08:00","date_modified":"2018-07-27T21:56:08+08:00","id":"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/","url":"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Nowcoder","ACM","C++","C"],"summary":"两题水过,暴力,找规律。\n9 托米的赌球 10 托米的划分 ","content_html":"\u003cp\u003e两题水过,暴力,找规律。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"托米的赌球\"\u003e\u003cspan\u003e9 \u003ca href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e托米的赌球\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"托米的划分\"\u003e\u003cspan\u003e10 \u003ca href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e托米的划分\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e"},{"title":"HDU-1495-非常可乐(bfs 模拟倒水 or 数论)","date_published":"2018-07-24T15:34:00+08:00","date_modified":"2018-07-24T15:34:00+08:00","id":"https://lruihao.cn/posts/hdu-1495/","url":"https://lruihao.cn/posts/hdu-1495/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","HDU","搜索","C++"],"summary":"非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S\u0026lt;101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出\u0026quot;NO\u0026quot;。\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e非常可乐\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S\u0026lt;101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出\u0026quot;NO\u0026quot;。\u003c/p\u003e"},{"title":"hdu-2612-Find a way(双 bfs)","date_published":"2018-07-23T12:34:42+08:00","date_modified":"2018-07-23T12:34:42+08:00","id":"https://lruihao.cn/posts/hdu-2612/","url":"https://lruihao.cn/posts/hdu-2612/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","HDU","搜索","C++"],"summary":"Find a way\n圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) \u0026hellip;\u0026hellip;.. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFind a way\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) \u0026hellip;\u0026hellip;.. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)\u003c/p\u003e"},{"title":"POJ-3278-Catch That Cow(bfs)","date_published":"2018-07-22T12:10:32+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-3278/","url":"https://lruihao.cn/posts/poj-3278/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","搜索","POJ","C++"],"summary":"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\u0026quot;,\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n13 Input Line 1: Two space-separated integers: N and K\n","content_html":"\u003cp\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWalking: FJ can move from any point X to the points X\u0026quot;,\u0026ldquo;1 or X + 1 in a single minute\u003c/li\u003e\n\u003cli\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"input\"\u003e\u003cspan\u003e13 Input\u003c/span\u003e\n \u003ca href=\"#input\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eLine 1: Two space-separated integers: N and K\u003c/p\u003e"},{"title":"poj-2251-Dungeon Master(三维 bfs 最短路)","date_published":"2018-07-22T12:02:32+08:00","date_modified":"2018-07-22T12:02:32+08:00","id":"https://lruihao.cn/posts/poj-2251/","url":"https://lruihao.cn/posts/poj-2251/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","搜索","POJ","C++","C"],"summary":"英文原题链接\n11 Description - 题目描述 你被困在一个三维的空间中,现在要寻找最短路径逃生!\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性?如果存在,则需要多少时间?\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英文原题链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description---题目描述\"\u003e\u003cspan\u003e11 Description - 题目描述\u003c/span\u003e\n \u003ca href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e你被困在一个三维的空间中,现在要寻找最短路径逃生!\u003cbr\u003e\n空间由立方体单位构成\u003cbr\u003e\n你每次向上下前后左右移动一个单位需要一分钟\u003cbr\u003e\n你不能对角线移动并且四周封闭\u003cbr\u003e\n是否存在逃出生天的可能性?如果存在,则需要多少时间?\u003c/p\u003e"},{"title":"poj-1321 棋盘问题(dfs)","date_published":"2018-07-22T11:58:14+08:00","date_modified":"2018-07-22T11:58:14+08:00","id":"https://lruihao.cn/posts/poj-1321/","url":"https://lruihao.cn/posts/poj-1321/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","ACM","搜索","POJ","C++"],"summary":"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n17 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。\n","content_html":"\u003cp\u003eTime Limit: 1000MS\u003cbr\u003e\nMemory Limit: 10000K\u003cbr\u003e\nTotal Submissions: 63659\u003cbr\u003e\nAccepted: 30423\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e17 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。\u003c/p\u003e"},{"title":"poj-1426-Find The Multiple(dfs)","date_published":"2018-07-22T11:57:13+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-1426/","url":"https://lruihao.cn/posts/poj-1426/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","ACM","搜索","POJ","C++"],"summary":"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"find-the-multiple\"\u003e\u003cspan\u003e3 Find The Multiple\u003c/span\u003e\n \u003ca href=\"#find-the-multiple\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eTime Limit: 1000MS Memory Limit: 10000K\u003cbr\u003e\nTotal Submissions: 40713 Accepted: 17088 Special Judge\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e3.1 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\u003c/p\u003e"},{"title":"Adjacent Replacements","date_published":"2018-07-22T11:54:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/adjacent-replacements/","url":"https://lruihao.cn/posts/adjacent-replacements/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"A. Adjacent Replacements\n第一次打 cf 就做出一道这样的找规律的题,打到自闭。\n#include using namespace std; int main(){ int n,a[1001]; cin\u003e\u003en; int i; int flag=0; for(i=0;i\u003ea[i]; if(!(a[i]\u00261)) a[i]--; if(!flag) {cout\u003c","content_html":"\u003cp\u003e\u003ca href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. Adjacent Replacements\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e第一次打 cf 就做出一道这样的找规律的题,打到自闭。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e#include\u003cbits/stdc++.h\u003e\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin\u003e\u003en;\n int i;\n int flag=0;\n for(i=0;i\u003cn;i++){\n cin\u003e\u003ea[i];\n if(!(a[i]\u00261)) a[i]--;\n if(!flag) {cout\u003c\u003ca[i];flag=1;}\n else cout\u003c\u003c\" \"\u003c\u003ca[i];\n }\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e"},{"title":"poj-3984-迷宫问题 (bfs 路径)","date_published":"2018-07-22T11:50:20+08:00","date_modified":"2018-07-22T11:50:20+08:00","id":"https://lruihao.cn/posts/poj-3984/","url":"https://lruihao.cn/posts/poj-3984/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","POJ","C++","C"],"summary":"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n13 Description 定义一个二维数组:\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e迷宫问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eTime Limit: 1000MS Memory Limit: 65536K\u003cbr\u003e\nTotal Submissions: 32323 Accepted: 18471\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e13 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e定义一个二维数组:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eint maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。\u003c/p\u003e"},{"title":"Wannafly 挑战赛 20-染色","date_published":"2018-07-22T11:46:25+08:00","date_modified":"2018-07-22T11:46:25+08:00","id":"https://lruihao.cn/posts/wannafly-20/","url":"https://lruihao.cn/posts/wannafly-20/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Nowcoder","C++","C"],"summary":"链接:https://www.nowcoder.com/acm/contest/133/A\n来源:牛客网\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,\n现在,Applese 的钱要用来买书 (game),所以他想要最小化代价\n","content_html":"\u003cp\u003e链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/133/A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e9 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,\u003cbr\u003e\n现在,Applese 的钱要用来买书 (game),所以他想要最小化代价\u003c/p\u003e"},{"title":"杨辉三角","date_published":"2018-07-22T11:41:15+08:00","date_modified":"2021-09-26T12:04:42+08:00","id":"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/","url":"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","杨辉三角"],"summary":"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\n","content_html":"\u003cp\u003e\u003ca href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e百度知道\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\n1\u003c/p\u003e\n\u003cp\u003e1 1\u003c/p\u003e\n\u003cp\u003e1 2 1\u003c/p\u003e\n\u003cp\u003e1 3 3 1\u003c/p\u003e\n\u003cp\u003e1 4 6 4 1\u003c/p\u003e\n\u003cp\u003e1 5 10 10 5 1\u003c/p\u003e\n\u003cp\u003e1 6 15 20 15 6 1\u003c/p\u003e\n\u003chr\u003e"},{"title":"hdu-1241-Oil Deposits (dfs)","date_published":"2018-07-22T11:37:20+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu-1241/","url":"https://lruihao.cn/posts/hdu-1241/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","搜索","HDU","ACM","C++"],"summary":"5 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"oil-deposits\"\u003e\u003cspan\u003e5 \u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eOil Deposits\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#oil-deposits\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e翻译\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\u003cbr\u003e\nTotal Submission(s): 41406 Accepted Submission(s): 23977\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"problem-description\"\u003e\u003cspan\u003e5.1 Problem Description\u003c/span\u003e\n \u003ca href=\"#problem-description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\u003c/p\u003e"},{"title":"BFS 求最短路","date_published":"2018-07-22T11:31:05+08:00","date_modified":"2018-07-22T11:31:05+08:00","id":"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/","url":"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","搜索","C++"],"summary":"假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).\n如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\n","content_html":"\u003cp\u003e假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).\u003cbr\u003e\n如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,\u003cbr\u003e\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\u003c/p\u003e"},{"title":"Educational Codeforces Round 47 (Rated for Div. 2)","date_published":"2018-07-22T11:25:56+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cf-1009/","url":"https://lruihao.cn/posts/cf-1009/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++","C"],"summary":"那天晚上报名了没打,第二天早上打的,也只出了两题。\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\u003e\u003en\u003e\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\u003ec[i]; for(i=0;i\u003ea[i]; for(i=0,j=0;i","content_html":"\u003cp\u003e那天晚上报名了没打,第二天早上打的,也只出了两题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"a-game-shopping\"\u003e\u003cspan\u003e5 \u003ca href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. Game Shopping\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#a-game-shopping\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e#include\u003ciostream\u003e\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin\u003e\u003en\u003e\u003em;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i\u003cn;i++)\n cin\u003e\u003ec[i];\n for(i=0;i\u003cm;i++)\n cin\u003e\u003ea[i];\n for(i=0,j=0;i\u003cn;){\n if(j==m)\n break;\n if(c[i]\u003c=a[j]){\n s++;\n j++;\n i++;\n }\n else i++;\n }\n if(i==n\u0026\u0026s==0)\n cout\u003c\u003c\"0\\n\";\n else cout\u003c\u003cs\u003c\u003cendl;\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"b-minimum-ternary-string\"\u003e\u003cspan\u003e6 \u003ca href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eB. Minimum Ternary String\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#b-minimum-ternary-string\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e#include \u003cbits/stdc++.h\u003e\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin \u003e\u003e s;\n int one = 0;\n for (int i = 0; i \u003c s.size(); i++){\n if (s[i] == '0') ans += \"0\";\n if (s[i] == '1') one++;\n if (s[i] == '2') ans += \"2\";\n }\n bool flag = false;\n for (int i = 0; i \u003c ans.size(); i++){\n if (ans[i] == '2' \u0026\u0026 !flag) flag = true, cout \u003c\u003c string(one, '1');\n cout \u003c\u003c ans[i];\n }\n if (!flag) cout \u003c\u003c string(one, '1');\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/\u003c/code\u003e\u003c/pre\u003e"},{"title":"深搜广搜","date_published":"2018-07-22T11:25:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/dfs_bfs/","url":"https://lruihao.cn/posts/dfs_bfs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","BFS","DFS","搜索","C","C++"],"summary":"0.5 广度优先搜索(BFS) 广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。\n0.6 深度优先搜索(DFS) 深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"广度优先搜索bfs\"\u003e\u003cspan\u003e0.5 广度优先搜索(BFS)\u003c/span\u003e\n \u003ca href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"深度优先搜索dfs\"\u003e\u003cspan\u003e0.6 深度优先搜索(DFS)\u003c/span\u003e\n \u003ca href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。\u003c/p\u003e"},{"title":"TaoTao 要吃鸡","date_published":"2018-07-22T10:55:21+08:00","date_modified":"2018-07-22T10:55:21+08:00","id":"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/","url":"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["背包问题","Nowcoder","C++"],"summary":" 2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)\n链接:https://www.nowcoder.com/acm/contest/74/B\n来源:牛客网\n11 题目描述 Taotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)\u003cbr\u003e\n链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/74/B\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e11 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eTaotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。\u003c/p\u003e"},{"title":"Wannafly 挑战赛 18-序列","date_published":"2018-07-18T08:40:21+08:00","date_modified":"2018-07-18T08:40:21+08:00","id":"https://lruihao.cn/posts/wannafly-18/","url":"https://lruihao.cn/posts/wannafly-18/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["组合数学","ACM","Nowcoder","C++","C"],"summary":"时间限制:C/C++ 1 秒,其他语言 2 秒\n空间限制:C/C++ 262144K,其他语言 524288K\n64bit IO Format: %lld\n9 题目描述 有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 \u0026lt;= x \u0026lt;= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。\n","content_html":"\u003cp\u003e时间限制:C/C++ 1 秒,其他语言 2 秒\u003cbr\u003e\n空间限制:C/C++ 262144K,其他语言 524288K\u003cbr\u003e\n64bit IO Format: %lld\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e9 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 \u0026lt;= x \u0026lt;= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。\u003cbr\u003e\n两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。\u003c/p\u003e"},{"title":"简单背包","date_published":"2018-06-16T13:18:43+08:00","date_modified":"2018-06-16T13:18:43+08:00","id":"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/","url":"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["背包问题","C"],"summary":"弱鸡还是弱鸡啊最简单的背包问题——。——!\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。\n","content_html":"\u003cp\u003e\u003ccode\u003e弱鸡还是弱鸡啊最简单的背包问题——。——!\u003c/code\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"问题描述\"\u003e\u003cspan\u003e5 问题描述\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。\u003c/p\u003e"},{"title":"18 湘潭邀请赛参赛队员代表发言","date_published":"2018-06-15T07:51:21+08:00","date_modified":"2018-06-15T07:51:21+08:00","id":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/","url":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","2018 湘潭邀请赛"],"summary":" 来自一位大佬的演讲\n尊敬的领导、教练,亲爱的参赛选手们:\n大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。\n刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e来自一位大佬的演讲\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e尊敬的领导、教练,亲爱的参赛选手们:\u003cbr\u003e\n大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。\u003cbr\u003e\n刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。\u003cbr\u003e\n在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。\u003cbr\u003e\n为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\u003cbr\u003e\n三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。\u003cbr\u003e\n最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。\u003c/p\u003e"},{"title":"F.sorting","date_published":"2018-06-14T22:49:27+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/f-sorting/","url":"https://lruihao.cn/posts/f-sorting/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM"],"summary":"\n","content_html":"\u003cp\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"\u003ch2\u003esorting.png\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"K.2018","date_published":"2018-06-14T22:48:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/k-2018/","url":"https://lruihao.cn/posts/k-2018/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","C++"],"summary":"3 K. 2018 Given a,b,c,d, find out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"k-2018\"\u003e\u003cspan\u003e3 K. 2018\u003c/span\u003e\n \u003ca href=\"#k-2018\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eGiven a,b,c,d, find out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\u003c/p\u003e"},{"title":"B.Higher h-index","date_published":"2018-06-14T22:47:28+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/b-higher/","url":"https://lruihao.cn/posts/b-higher/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","2018 湘潭邀请赛","C++","C"],"summary":"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, find the maximum h-index of him.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"b-higher-h-index\"\u003e\u003cspan\u003e3 B. Higher h-index\u003c/span\u003e\n \u003ca href=\"#b-higher-h-index\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\u003cbr\u003e\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\u003cbr\u003e\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\u003cbr\u003e\nThere is also a trick – one can cite his own papers published earlier.\u003c/p\u003e\n\u003cp\u003eGiven Bobo has n working hours, find the maximum h-index of him.\u003c/p\u003e"},{"title":"A.Easy h-index","date_published":"2018-06-14T22:36:58+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/a-easy/","url":"https://lruihao.cn/posts/a-easy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","C++"],"summary":"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,\u0026hellip;,an which means Bobo has published ai papers with\nitations exactly i, find the h-index of Bobo.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"a-easy-h-index\"\u003e\u003cspan\u003e3 A. Easy h-index\u003c/span\u003e\n \u003ca href=\"#a-easy-h-index\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\u003cbr\u003e\nBobo has published many papers. Given a0,a1,a2,\u0026hellip;,an which means Bobo has published ai papers with\u003cbr\u003e\nitations exactly i, find the h-index of Bobo.\u003c/p\u003e"},{"title":"sort 排序","date_published":"2018-06-14T20:23:03+08:00","date_modified":"2018-06-14T20:23:03+08:00","id":"https://lruihao.cn/posts/c-sort/","url":"https://lruihao.cn/posts/c-sort/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["C++","sort","STL","ACM"],"summary":"sort 使用#include\u0026lt;algorithm\u0026gt;头文件,\nsort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。\n或者简单的用 less\u0026lt;参数类型\u0026gt;()表示升序\ngreater\u0026lt;参数类型\u0026gt;()表示降序\n也可以用一个 bool 型函数,比如:\nbool cmp(int a,int b){ return a\u003eb;//表从大到小,即降序 }假设自己定义了一个结构体 node\n","content_html":"\u003cp\u003esort 使用\u003ccode\u003e#include\u0026lt;algorithm\u0026gt;\u003c/code\u003e头文件,\u003c/p\u003e\n\u003cp\u003esort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。\u003c/p\u003e\n\u003cp\u003e或者简单的用\n\u003ccode\u003eless\u0026lt;参数类型\u0026gt;()\u003c/code\u003e表示升序\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003egreater\u0026lt;参数类型\u0026gt;()\u003c/code\u003e表示降序\u003c/p\u003e\n\u003cp\u003e也可以用一个 bool 型函数,比如:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ebool cmp(int a,int b){\n\n return a\u003eb;//表从大到小,即降序\n\n}\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e假设自己定义了一个结构体 node\u003c/p\u003e"},{"title":"C++ with STL","date_published":"2018-06-14T20:22:06+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/c-with-stl/","url":"https://lruihao.cn/posts/c-with-stl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","STL","C++"],"summary":"17 1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);) 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\n","content_html":"\u003ch2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"\u003e\u003cspan\u003e17 1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);)\u003c/span\u003e\n \u003ca href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\u003c/p\u003e\n\u003cp\u003eint a=1,b=2;\u003c/p\u003e"}]} ================================================ FILE: categories/acm/index.html ================================================ ACM - 分类 | 菠菜眾長
================================================ FILE: categories/acm/index.xml ================================================ ACM - 分类 | 菠菜眾長https://lruihao.cn/categories/acm/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 02 Oct 2024 13:35:30 +0800最大公约数(二进制算法)https://lruihao.cn/posts/gcd-bit/Fri, 17 May 2019 09:14:16 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/gcd-bit/ACM<blockquote> <p>二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。</p> </blockquote>HDU 1009 FatMouse' Trade(贪心)https://lruihao.cn/posts/hdu1009/Fri, 12 Apr 2019 16:43:19 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu1009/ACM<h2 class="heading-element" id="题目大意"><span>7 题目大意</span> <a href="#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1009" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。</p>百钱百鸡(枚举法)https://lruihao.cn/posts/bqbj/Sat, 30 Mar 2019 10:13:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/bqbj/ACM<blockquote> <p>我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?</p> </blockquote>大数乘法https://lruihao.cn/posts/dacheng/Thu, 28 Mar 2019 22:50:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dacheng/ACM<blockquote> <p>大数乘法 c 版 (基础写法)</p> </blockquote>石子阵列(组合数学)https://lruihao.cn/posts/nowcoder157a/Fri, 10 Aug 2018 22:11:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/nowcoder157a/ACM<p>链接:<a href="https://www.nowcoder.com/acm/contest/157/A" target="_blank" rel="external nofollow noopener noreferrer">https://www.nowcoder.com/acm/contest/157/A<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 来源:牛客网</p> <h2 class="heading-element" id="题目描述"><span>22 题目描述</span> <a href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>xb 有 m 种石子,每种无限个,Ta 想从这些石子中取出 n 个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb 想知道有多少种排列的方法。</p>Dreamoon and Stairshttps://lruihao.cn/posts/codeforces476a/Fri, 10 Aug 2018 20:13:08 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/codeforces476a/ACM<p><strong><a href="https://codeforces.com/contest/476/problem/a" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong></p> <p>Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.</p> <p>What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?</p> <h2 class="heading-element" id="input"><span>10 Input</span> <a href="#input" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The single line contains two space separated integers n, m (0 &lt; n ≤ 10000, 1 &lt; m ≤ 10).</p>Dreamoon and WiFi(组合数学)https://lruihao.cn/posts/codeforces476b/Fri, 10 Aug 2018 17:44:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/codeforces476b/ACM<p><strong><a href="https://codeforces.com/contest/476/problem/B" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong></p> <h2 class="heading-element" id="题目大意"><span>10 题目大意</span> <a href="#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>就是给定两个字符串,第一个字符串由&quot;+&quot;,&quot;-&ldquo;组成,第二个字符串由&rdquo;+&quot;,&quot;-&quot;,&quot;?&ldquo;组成,“+”代表加 1,&rdquo;-&ldquo;代表减一,“?&ldquo;代表可取正也可取负,问第二个字符串的位置和第一个字符串相等的概率是多少。</p>The equation-SGU106(扩展欧几里得)https://lruihao.cn/posts/euclid/Fri, 10 Aug 2018 10:32:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/euclid/ACM<h2 class="heading-element" id="题意"><span>10 题意</span> <a href="#%e9%a2%98%e6%84%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>给出 a,b,c,x1,x2,y1,y2,求满足 ax+by+c=0,且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。</p>Leading and Trailing-lightoj1282(快速幂 + 对数运算)https://lruihao.cn/posts/lightoj1282/Thu, 09 Aug 2018 20:55:26 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/lightoj1282/ACM<h2 class="heading-element" id="题目链接"><span>13 <a href="https://vjudge.net/contest/238979#problem/E" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="题目大意"><span>14 题目大意</span> <a href="#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>给定两个数 n,k 求 n^k 的前三位和最后三位。</p> <h2 class="heading-element" id="分析"><span>15 分析</span> <a href="#%e5%88%86%e6%9e%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>求后三位的话:直接快速幂,对 1000 取模就好了。<br> 求前三位,对于给定的一个数 n, 它可以写成 n=10<sup>a, 其中这个 a 为浮点数,则<code>t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);</code>其中 x,y 分别是<code>a*k</code>的整数部分和小数部分,对于 t=n</sup>k 这个数,它的位数由 (10<sup>x) 决定,它的位数上的值则有 (10</sup>y) 决定,因此我们要求 t 的前三位,只需要将 10<sup>y 求出,在乘以 100,就得到了它的前三位。<br> 分析完,我们再整体看,设 n</sup>k=10^z; 那么<code>z=k*log10(n)</code><br> <code>fmod(z,1)</code>可以求出 x 的小数部分。</p>Codeforces Round 502(Div.1 + Div.2)https://lruihao.cn/posts/cfcontest1017/Thu, 09 Aug 2018 10:48:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cfcontest1017/ACM<h3 class="heading-element" id="a-the-rank"><span>0.7 <a href="https://codeforces.com/contest/1017/problem/A" target="_blank" rel="external nofollow noopener noreferrer">A. The Rank<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#a-the-rank" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>题目大意:<br> 给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排;<br> 开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。</p>欧拉函数https://lruihao.cn/posts/euler/Wed, 08 Aug 2018 17:10:07 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/euler/ACM<h2 class="heading-element" id="欧拉函数是求小于-x-并且和-x"><span>16 <strong><em>欧拉函数是求小于 x 并且和 x<a href="https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin" target="_blank" rel="external nofollow noopener noreferrer">互质<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的数的个数</em></strong></span> <a href="#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)<br> <strong>其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数</strong><br> φ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=2<em>2</em>3】</p> <h2 class="heading-element" id="定理"><span>17 定理</span> <a href="#%e5%ae%9a%e7%90%86" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>若 n 是素数 p 的 k 次幂,φ(n)=p<sup>k-p</sup>(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 <a class="lightgallery" target="_blank" href="https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg" title="IMG_20180808_170807.jpg" data-thumbnail="/images/remote/5b6ab31239225_7187742310856122931.jpg" data-sub-html="<h2>IMG_20180808_170807.jpg</h2>"><img loading="lazy" src='https://lruihao.cn/images/remote/5b6ab31239225_7187742310856122931.jpg' alt="IMG_20180808_170807.jpg" height="1797" width="4160"></a></li> <li>欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n)</li> </ol> <h2 class="heading-element" id="特殊性质"><span>18 特殊性质</span> <a href="#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>当 n 为奇数时,φ(2n)=φ(n)</li> <li>p 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值</li> <li>若 a 为素数,b mod a=0,<code>φ(a*b)=φ(b)*a</code></li> </ol>Heavy Transportation-poj1797(dijkstra 或最大生成树)https://lruihao.cn/posts/poj1797/Mon, 06 Aug 2018 09:42:11 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj1797/ACM<p><a href="http://poj.org/problem?id=1797" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>大意:<br> 要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。<br> 其实题意很简单,就是找一条 1&ndash;&gt;N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边; <a class="lightgallery" target="_blank" href="images/update.jpg" title="更新" data-thumbnail="images/update.jpg" data-sub-html="<h2>更新</h2>"><img loading="lazy" src='images/update.jpg' alt="更新"></a></p>Til the Cows Come Home-poj2387(dijkstra 判断重边)https://lruihao.cn/posts/poj2387/Fri, 03 Aug 2018 21:40:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj2387/ACM<p><a href="http://poj.org/problem?id=2387" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>题目大意:<br> 说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。</p> <p>两个点可能有多条路,选择最短的。</p> <pre><code>#include&lt;stdio.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i&lt;=n;i&#43;&#43;) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i&lt;=n;i&#43;&#43;) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j&lt;=n;j&#43;&#43;) //在所有未标记点中 选 d 值最小的点 if(!v[j] &amp;&amp; d[j]&lt;mini) mini=d[k=j]; v[k]=1; //标记节点 if(k==t) { printf(&#34;%d\n&#34;,d[t]); return; } for(j=1;j&lt;=n;j&#43;&#43;) if(!v[j] &amp;&amp; (d[k]&#43;maps[k][j])&lt;d[j]) //表示从 k 出发的点,对于所有边,更新相连点 d[j]=d[k]&#43;maps[k][j]; } } int main() { int T,i,j,x,y,D; while(scanf(&#34;%d %d&#34;,&amp;T,&amp;n)!=EOF) { memset(v,0,sizeof(v)); //清除标记 for(i=1;i&lt;=n;i&#43;&#43;) for(j=1;j&lt;=n;j&#43;&#43;) maps[i][j]=INF; for(i=1;i&lt;=T;i&#43;&#43;){ scanf(&#34;%d%d%d&#34;,&amp;x,&amp;y,&amp;D); if(maps[x][y]&gt;D) //可能有多条路,只记录最短的 maps[x][y]=D,maps[y][x]=D; } Dijkstra(1,n); } return 0; }</code></pre>最短路入门https://lruihao.cn/posts/zuiduanlu/Fri, 03 Aug 2018 16:27:16 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/zuiduanlu/ACM<!-- markdownlint-disable MD033 --> <h2 class="heading-element" id="dijkstra-算法"><span>1 Dijkstra 算法</span> <a href="#dijkstra-%e7%ae%97%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="1-定义概览"><span>1.1 1. 定义概览</span> <a href="#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。</p>牛客暑假多校第五场https://lruihao.cn/posts/nowcodersummer-5th/Thu, 02 Aug 2018 21:27:02 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/nowcodersummer-5th/ACM<p><a href="https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA" target="_blank" rel="external nofollow noopener noreferrer">题目链接 密码:l9sn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 终于不爆零了,但是还是 wa 了无数次,有时候代码感觉都差不多</p>食物链-poj1182(带权并查集经典模板)https://lruihao.cn/posts/poj1182/Thu, 02 Aug 2018 11:10:37 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj1182/ACM<p><a href="http://poj.org/problem?id=1182" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> <a href="https://blog.csdn.net/freezhanacmore/article/details/8767413" target="_blank" rel="external nofollow noopener noreferrer">思路参考 1<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,<a href="https://blog.csdn.net/niushuai666/article/details/6981689" target="_blank" rel="external nofollow noopener noreferrer">思路参考 2<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>(没看懂)</p>小希的迷宫-HDU-1272(并查集 or 树性质)https://lruihao.cn/posts/hdu1272/Wed, 01 Aug 2018 21:45:50 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu1272/ACM<h2 class="heading-element" id="题目链接小希的迷宫"><span>10 题目链接:<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1272" target="_blank" rel="external nofollow noopener noreferrer">小希的迷宫<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="并查集"><span>11 并查集</span> <a href="#%e5%b9%b6%e6%9f%a5%e9%9b%86" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>无回路</li> <li>单连通</li> </ul> <p>并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成<strong>回路</strong>,则可以判定 No,交了一发错了。<br> 想了一下没有考虑到多个连通域的情况,该题必须只有<strong>一个连通域</strong></p> <h2 class="heading-element" id="树的性质"><span>12 树的性质</span> <a href="#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;</p>How Many Answers Are Wrong-hdu3038(带权并查集)https://lruihao.cn/posts/hdu3038/Wed, 01 Aug 2018 11:45:53 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu3038/ACM<p>题目链接:<a href="http://acm.hdu.edu.cn/showproblem.php?pid=3038" target="_blank" rel="external nofollow noopener noreferrer">How Many Answers Are Wrong<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 思路参考:<a href="https://blog.csdn.net/duan_1998/article/details/70196576" target="_blank" rel="external nofollow noopener noreferrer">本题直接参考<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,<a href="https://blog.csdn.net/dextrad_ihacker/article/details/51016017" target="_blank" rel="external nofollow noopener noreferrer">图文解释<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>Bear and Finding Criminals-Codeforces680Bhttps://lruihao.cn/posts/codeforces680b/Tue, 31 Jul 2018 19:32:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/codeforces680b/ACM<p>题目链接:<a href="https://codeforces.com/problemset/problem/680/B" target="_blank" rel="external nofollow noopener noreferrer">Bear and Finding Criminals<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里<strong>一定</strong>有罪犯。</p> <p>一定能确定该城市有小偷的几种情况:</p> <ol> <li> <p>警察所住城市有罪犯,则一定能检测到</p> </li> <li> <p>警察所住城市的左边和右边位置若<strong>都</strong>不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)</p> </li> <li> <p>警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯</p> </li> </ol>Bear and Five Cards-Codeforces680Ahttps://lruihao.cn/posts/codeforces680a/Tue, 31 Jul 2018 19:22:36 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/codeforces680a/ACM<p>题目链接:<a href="https://codeforces.com/problemset/problem/680/A" target="_blank" rel="external nofollow noopener noreferrer">Bear and Five Cards<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>大致题意就是小熊有 5 张卡片,每张卡片有对应的分数,他可以选择丢弃 2 张相同的或者 3 张相同的卡片,没有相同的就无法丢弃,问小熊剩下的分数最少是多少。</p>how many tables-HDU-1213(并查集求连通域数目)https://lruihao.cn/posts/how-tables/Tue, 31 Jul 2018 11:12:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/how-tables/ACM<p>并查集求连通域数目,初始化 sum=n; 题目链接: <a href="http://acm.hdu.edu.cn/showproblem.php?pid=1213" target="_blank" rel="external nofollow noopener noreferrer">how many tables<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>The-suspects-POJ-1611(并查集)https://lruihao.cn/posts/poj-1611/Tue, 31 Jul 2018 11:11:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-1611/ACM<h2 class="heading-element" id="题目链接the-suspects"><span>7 题目链接:<a href="http://poj.org/problem?id=1611" target="_blank" rel="external nofollow noopener noreferrer">The-suspects<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="翻译"><span>8 翻译</span> <a href="#%e7%bf%bb%e8%af%91" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0 号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯?</p>wireless network-POJ-2236(并查集)https://lruihao.cn/posts/poj-2236/Tue, 31 Jul 2018 11:10:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-2236/ACM<h2 class="heading-element" id="题目链接wireless-network"><span>7 题目链接:<a href="http://poj.org/problem?id=2236" target="_blank" rel="external nofollow noopener noreferrer">wireless network<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="翻译"><span>8 翻译</span> <a href="#%e7%bf%bb%e8%af%91" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2>Piles-with-stoneshttps://lruihao.cn/posts/piles-with-stones/Tue, 31 Jul 2018 11:09:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/piles-with-stones/ACM<p>Codeforces Round #500 (Div. 2)<br> 题目链接:<a href="https://codeforces.com/contest/1013/problem/A" target="_blank" rel="external nofollow noopener noreferrer">Piles With Stones<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>畅通工程-HDU-1232(并查集经典模板)https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/Tue, 31 Jul 2018 11:08:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/ACM<h2 class="heading-element" id="并查集入门推荐超有爱的并查集"><span>13 并查集入门推荐:<a href="https://blog.csdn.net/iteye_10189/article/details/82103035" target="_blank" rel="external nofollow noopener noreferrer">超有爱的并查集~<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="题目链接畅通工程"><span>14 题目链接:<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1232" target="_blank" rel="external nofollow noopener noreferrer">畅通工程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="题意分析"><span>15 题意分析</span> <a href="#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。</p>牛客练习赛 23https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/Fri, 27 Jul 2018 21:56:08 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/ACM<p>两题水过,暴力,找规律。</p> <h2 class="heading-element" id="托米的赌球"><span>13 <a href="https://www.nowcoder.com/acm/contest/156/A" target="_blank" rel="external nofollow noopener noreferrer">托米的赌球<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="托米的划分"><span>14 <a href="https://www.nowcoder.com/acm/contest/156/B" target="_blank" rel="external nofollow noopener noreferrer">托米的划分<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2>HDU-1495-非常可乐(bfs 模拟倒水 or 数论)https://lruihao.cn/posts/hdu-1495/Tue, 24 Jul 2018 15:34:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu-1495/ACM<p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1495" target="_blank" rel="external nofollow noopener noreferrer">非常可乐<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S&lt;101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出&quot;NO&quot;。</p>hdu-2612-Find a way(双 bfs)https://lruihao.cn/posts/hdu-2612/Mon, 23 Jul 2018 12:34:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu-2612/ACM<p><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2612" target="_blank" rel="external nofollow noopener noreferrer">Find a way<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) &hellip;&hellip;.. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)</p>POJ-3278-Catch That Cow(bfs)https://lruihao.cn/posts/poj-3278/Sun, 22 Jul 2018 12:10:32 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-3278/ACM<p>Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.</p> <ul> <li>Walking: FJ can move from any point X to the points X&quot;,&ldquo;1 or X + 1 in a single minute</li> <li>Teleporting: FJ can move from any point X to the point 2 × X in a single minute.</li> </ul> <p>If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?</p> <h2 class="heading-element" id="input"><span>19 Input</span> <a href="#input" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Line 1: Two space-separated integers: N and K</p>poj-2251-Dungeon Master(三维 bfs 最短路)https://lruihao.cn/posts/poj-2251/Sun, 22 Jul 2018 12:02:32 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-2251/ACM<p><a href="http://poj.org/problem?id=2251" target="_blank" rel="external nofollow noopener noreferrer">英文原题链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="description---题目描述"><span>16 Description - 题目描述</span> <a href="#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>你被困在一个三维的空间中,现在要寻找最短路径逃生!<br> 空间由立方体单位构成<br> 你每次向上下前后左右移动一个单位需要一分钟<br> 你不能对角线移动并且四周封闭<br> 是否存在逃出生天的可能性?如果存在,则需要多少时间?</p>poj-1321 棋盘问题(dfs)https://lruihao.cn/posts/poj-1321/Sun, 22 Jul 2018 11:58:14 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-1321/ACM<p>Time Limit: 1000MS<br> Memory Limit: 10000K<br> Total Submissions: 63659<br> Accepted: 30423</p> <h2 class="heading-element" id="description"><span>25 Description</span> <a href="#description" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。</p>poj-1426-Find The Multiple(dfs)https://lruihao.cn/posts/poj-1426/Sun, 22 Jul 2018 11:57:13 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-1426/ACM<h2 class="heading-element" id="find-the-multiple"><span>4 Find The Multiple</span> <a href="#find-the-multiple" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Time Limit: 1000MS Memory Limit: 10000K<br> Total Submissions: 40713 Accepted: 17088 Special Judge</p> <h3 class="heading-element" id="description"><span>4.1 Description</span> <a href="#description" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.</p>Adjacent Replacementshttps://lruihao.cn/posts/adjacent-replacements/Sun, 22 Jul 2018 11:54:14 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/adjacent-replacements/ACM<p><a href="https://codeforces.com/contest/1006/problem/A" target="_blank" rel="external nofollow noopener noreferrer">A. Adjacent Replacements<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>第一次打 cf 就做出一道这样的找规律的题,打到自闭。</p> <pre><code>#include&lt;bits/stdc&#43;&#43;.h&gt; using namespace std; int main(){ int n,a[1001]; cin&gt;&gt;n; int i; int flag=0; for(i=0;i&lt;n;i&#43;&#43;){ cin&gt;&gt;a[i]; if(!(a[i]&amp;1)) a[i]--; if(!flag) {cout&lt;&lt;a[i];flag=1;} else cout&lt;&lt;&#34; &#34;&lt;&lt;a[i]; } return 0; }</code></pre>poj-3984-迷宫问题 (bfs 路径)https://lruihao.cn/posts/poj-3984/Sun, 22 Jul 2018 11:50:20 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/poj-3984/ACM<p><a href="http://poj.org/problem?id=3984" target="_blank" rel="external nofollow noopener noreferrer">迷宫问题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>Time Limit: 1000MS Memory Limit: 65536K<br> Total Submissions: 32323 Accepted: 18471</p> <h2 class="heading-element" id="description"><span>19 Description</span> <a href="#description" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>定义一个二维数组:</p> <pre><code>int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; </code></pre> <p>它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。</p>Wannafly 挑战赛 20-染色https://lruihao.cn/posts/wannafly-20/Sun, 22 Jul 2018 11:46:25 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wannafly-20/ACM<p>链接:<a href="https://www.nowcoder.com/acm/contest/133/A" target="_blank" rel="external nofollow noopener noreferrer">https://www.nowcoder.com/acm/contest/133/A<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 来源:牛客网</p> <h2 class="heading-element" id="题目描述"><span>13 题目描述</span> <a href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,<br> 现在,Applese 的钱要用来买书 (game),所以他想要最小化代价</p>杨辉三角https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/Sun, 22 Jul 2018 11:41:15 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/ACM<p><a href="https://zhidao.baidu.com/question/367384574464313844.html" target="_blank" rel="external nofollow noopener noreferrer">百度知道<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 1</p> <p>1 1</p> <p>1 2 1</p> <p>1 3 3 1</p> <p>1 4 6 4 1</p> <p>1 5 10 10 5 1</p> <p>1 6 15 20 15 6 1</p> <hr>hdu-1241-Oil Deposits (dfs)https://lruihao.cn/posts/hdu-1241/Sun, 22 Jul 2018 11:37:20 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hdu-1241/ACM<h2 class="heading-element" id="oil-deposits"><span>7 <a href="http://acm.hdu.edu.cn/showproblem.php?pid=1241" target="_blank" rel="external nofollow noopener noreferrer">Oil Deposits<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#oil-deposits" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://vjudge.net/contest/238973#problem/L" target="_blank" rel="external nofollow noopener noreferrer">翻译<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)<br> Total Submission(s): 41406 Accepted Submission(s): 23977</p> <h3 class="heading-element" id="problem-description"><span>7.1 Problem Description</span> <a href="#problem-description" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.</p>BFS 求最短路https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/Sun, 22 Jul 2018 11:31:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/ACM<p>假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).<br> 如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,<br> 以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。</p>Educational Codeforces Round 47 (Rated for Div. 2)https://lruihao.cn/posts/cf-1009/Sun, 22 Jul 2018 11:25:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cf-1009/ACM<p>那天晚上报名了没打,第二天早上打的,也只出了两题。</p> <h2 class="heading-element" id="a-game-shopping"><span>7 <a href="https://codeforces.com/contest/1009/problem/A" target="_blank" rel="external nofollow noopener noreferrer">A. Game Shopping<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#a-game-shopping" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>#include&lt;iostream&gt; using namespace std; int main(){ int n,m,s=0; cin&gt;&gt;n&gt;&gt;m; int i,j; int c[1000],a[1000]; for(i=0;i&lt;n;i&#43;&#43;) cin&gt;&gt;c[i]; for(i=0;i&lt;m;i&#43;&#43;) cin&gt;&gt;a[i]; for(i=0,j=0;i&lt;n;){ if(j==m) break; if(c[i]&lt;=a[j]){ s&#43;&#43;; j&#43;&#43;; i&#43;&#43;; } else i&#43;&#43;; } if(i==n&amp;&amp;s==0) cout&lt;&lt;&#34;0\n&#34;; else cout&lt;&lt;s&lt;&lt;endl; return 0; }</code></pre><h2 class="heading-element" id="b-minimum-ternary-string"><span>8 <a href="https://codeforces.com/contest/1009/problem/B" target="_blank" rel="external nofollow noopener noreferrer">B. Minimum Ternary String<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#b-minimum-ternary-string" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>#include &lt;bits/stdc&#43;&#43;.h&gt; using namespace std; string s, ans; int main(){ cin &gt;&gt; s; int one = 0; for (int i = 0; i &lt; s.size(); i&#43;&#43;){ if (s[i] == &#39;0&#39;) ans &#43;= &#34;0&#34;; if (s[i] == &#39;1&#39;) one&#43;&#43;; if (s[i] == &#39;2&#39;) ans &#43;= &#34;2&#34;; } bool flag = false; for (int i = 0; i &lt; ans.size(); i&#43;&#43;){ if (ans[i] == &#39;2&#39; &amp;&amp; !flag) flag = true, cout &lt;&lt; string(one, &#39;1&#39;); cout &lt;&lt; ans[i]; } if (!flag) cout &lt;&lt; string(one, &#39;1&#39;); return 0; } /* 100210 11222121 20 2001 020201 2012101 111 000 */</code></pre>深搜广搜https://lruihao.cn/posts/dfs_bfs/Sun, 22 Jul 2018 11:25:14 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dfs_bfs/ACM<h3 class="heading-element" id="广度优先搜索bfs"><span>0.7 广度优先搜索(BFS)</span> <a href="#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。</p> <h3 class="heading-element" id="深度优先搜索dfs"><span>0.8 深度优先搜索(DFS)</span> <a href="#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。</p>TaoTao 要吃鸡https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/Sun, 22 Jul 2018 10:55:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/ACM<blockquote> <p>2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)<br> 链接:<a href="https://www.nowcoder.com/acm/contest/74/B" target="_blank" rel="external nofollow noopener noreferrer">https://www.nowcoder.com/acm/contest/74/B<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 来源:牛客网</p> </blockquote> <h2 class="heading-element" id="题目描述"><span>16 题目描述</span> <a href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Taotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。</p>Wannafly 挑战赛 18-序列https://lruihao.cn/posts/wannafly-18/Wed, 18 Jul 2018 08:40:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wannafly-18/ACM<p>时间限制:C/C++ 1 秒,其他语言 2 秒<br> 空间限制:C/C++ 262144K,其他语言 524288K<br> 64bit IO Format: %lld</p> <h2 class="heading-element" id="题目描述"><span>13 题目描述</span> <a href="#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 &lt;= x &lt;= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。<br> 两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。</p>简单背包https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/Sat, 16 Jun 2018 13:18:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/ACM<p><code>弱鸡还是弱鸡啊最简单的背包问题——。——!</code></p> <h2 class="heading-element" id="问题描述"><span>7 问题描述</span> <a href="#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。</p>18 湘潭邀请赛参赛队员代表发言https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/Fri, 15 Jun 2018 07:51:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ACM<blockquote> <p>来自一位大佬的演讲</p> </blockquote> <p>尊敬的领导、教练,亲爱的参赛选手们:<br> 大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。<br> 刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。<br> 在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。<br> 为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。<br> 三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。<br> 最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。</p>F.sortinghttps://lruihao.cn/posts/f-sorting/Thu, 14 Jun 2018 22:49:27 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/f-sorting/ACM<p><a class="lightgallery" target="_blank" href="https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png" title="sorting.png" data-thumbnail="/images/remote/5b2286fcec6fc_5173814137014719346.png" data-sub-html="<h2>sorting.png</h2>"><img loading="lazy" src='https://lruihao.cn/images/remote/5b2286fcec6fc_5173814137014719346.png' alt="sorting.png" height="697" width="1049"></a></p>K.2018https://lruihao.cn/posts/k-2018/Thu, 14 Jun 2018 22:48:16 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/k-2018/ACM<h2 class="heading-element" id="k-2018"><span>4 K. 2018</span> <a href="#k-2018" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Given a,b,c,d, find out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.</p>B.Higher h-indexhttps://lruihao.cn/posts/b-higher/Thu, 14 Jun 2018 22:47:28 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/b-higher/ACM<h2 class="heading-element" id="b-higher-h-index"><span>4 B. Higher h-index</span> <a href="#b-higher-h-index" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br> Bobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the<br> paper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.<br> There is also a trick – one can cite his own papers published earlier.</p> <p>Given Bobo has n working hours, find the maximum h-index of him.</p>A.Easy h-indexhttps://lruihao.cn/posts/a-easy/Thu, 14 Jun 2018 22:36:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/a-easy/ACM<h2 class="heading-element" id="a-easy-h-index"><span>4 A. Easy h-index</span> <a href="#a-easy-h-index" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The h-index of an author is the largest h where he has at least h papers with citations not less than h.<br> Bobo has published many papers. Given a0,a1,a2,&hellip;,an which means Bobo has published ai papers with<br> itations exactly i, find the h-index of Bobo.</p>sort 排序https://lruihao.cn/posts/c-sort/Thu, 14 Jun 2018 20:23:03 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/c-sort/ACM<p>sort 使用<code>#include&lt;algorithm&gt;</code>头文件,</p> <p>sort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。</p> <p>或者简单的用 <code>less&lt;参数类型&gt;()</code>表示升序</p> <p><code>greater&lt;参数类型&gt;()</code>表示降序</p> <p>也可以用一个 bool 型函数,比如:</p> <pre><code>bool cmp(int a,int b){ return a&gt;b;//表从大到小,即降序 }</code></pre><p>假设自己定义了一个结构体 node</p>C++ with STLhttps://lruihao.cn/posts/c-with-stl/Thu, 14 Jun 2018 20:22:06 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/c-with-stl/ACM<h2 class="heading-element" id="1swap交换两元素值在-algorithm-下用法swapab"><span>25 1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);)</span> <a href="#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>交换两元素的值在 C 语言课上作为指针讲解的典例。</p> <p>int a=1,b=2;</p> ================================================ FILE: categories/acm/page/1/index.html ================================================ https://lruihao.cn/categories/acm/ ================================================ FILE: categories/acm/page/2/index.html ================================================ ACM - 分类 | 菠菜眾長
================================================ FILE: categories/acm/page/3/index.html ================================================ ACM - 分类 | 菠菜眾長
================================================ FILE: categories/browser/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Browser - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"浏览器渲染原理","date_published":"2023-02-05T21:02:52+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/browser-rendering/","url":"https://lruihao.cn/posts/browser-rendering/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Browser","JavaScript","HTML","CSS"],"summary":" 1 浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。\n","content_html":"\u003ciframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"\u003e\u003c/iframe\u003e\n\u003ch2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"\u003e\u003cspan\u003e1 浏览器是如何渲染页面的?\u003c/span\u003e\n \u003ca href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。\u003c/p\u003e\n\u003cp\u003e在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。\u003c/p\u003e"},{"title":"浏览器原理 - 事件循环","date_published":"2023-01-11T11:16:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/event-loop/","url":"https://lruihao.cn/posts/event-loop/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Browser","JavaScript"],"image":"https://lruihao.cn/posts/event-loop/images/202208092131410.png","summary":"最近在抖音上刷到很多次 袁进老师 的前端视频,然后就听了一下他的前端大师课,感觉了解一些浏览器原理后,原来工作中的一些疑问也自然解开了。\n","content_html":"\u003cp\u003e最近在抖音上刷到很多次 \u003ca href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e袁进老师\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的前端视频,然后就听了一下他的前端大师课,感觉了解一些浏览器原理后,原来工作中的一些疑问也自然解开了。\u003c/p\u003e"}]} ================================================ FILE: categories/browser/index.html ================================================ Browser - 分类 | 菠菜眾長
================================================ FILE: categories/browser/index.xml ================================================ Browser - 分类 | 菠菜眾長https://lruihao.cn/categories/browser/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800浏览器渲染原理https://lruihao.cn/posts/browser-rendering/Sun, 05 Feb 2023 21:02:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/browser-rendering/Browser<iframe src="files/browser-rendering.pdf" width="100%" height="550"></iframe> <h2 class="heading-element" id="浏览器是如何渲染页面的"><span>1 浏览器是如何渲染页面的?</span> <a href="#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。</p> <p>在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。</p>浏览器原理 - 事件循环https://lruihao.cn/posts/event-loop/Wed, 11 Jan 2023 11:16:02 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/event-loop/Browser<p>最近在抖音上刷到很多次 <a href="http://yuanjin.tech/" target="_blank" rel="external nofollow noopener noreferrer">袁进老师<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的前端视频,然后就听了一下他的前端大师课,感觉了解一些浏览器原理后,原来工作中的一些疑问也自然解开了。</p> ================================================ FILE: categories/browser/page/1/index.html ================================================ https://lruihao.cn/categories/browser/ ================================================ FILE: categories/css/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"CSS - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"让 Mermaid 图表自动跟随系统深浅色","date_published":"2025-08-16T12:37:49+08:00","date_modified":"2025-08-16T14:56:28+08:00","id":"https://lruihao.cn/posts/mermaid-theming/","url":"https://lruihao.cn/posts/mermaid-theming/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["invert filter","Mermaid","prefers-color-scheme","FixIt"],"image":"https://lruihao.cn/posts/mermaid-theming/featured-image.webp","summary":"Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\n","content_html":"\u003cp\u003eMermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\u003cbr\u003e\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\u003c/p\u003e"},{"title":"CSS @layer:构建更高效、更可维护的样式层级","date_published":"2025-06-18T10:35:47+08:00","date_modified":"2025-06-18T12:41:26+08:00","id":"https://lruihao.cn/posts/at-layer/","url":"https://lruihao.cn/posts/at-layer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","@layer"],"summary":"在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 @layer 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法,带你一探究竟。\n","content_html":"\u003cp\u003e在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 \u003ccode\u003e@layer\u003c/code\u003e 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 \u003ccode\u003e@layer\u003c/code\u003e 的背景、作用以及语法,带你一探究竟。\u003c/p\u003e"},{"title":"CSS Flexbox 布局指南","date_published":"2025-01-20T15:56:38+08:00","date_modified":"2025-01-20T17:49:35+08:00","id":"https://lruihao.cn/posts/flexbox/","url":"https://lruihao.cn/posts/flexbox/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Flexbox"],"image":"https://lruihao.cn/posts/flexbox/images/featured-image.webp","summary":"本指南完整解释了弹性盒子(Flexible Box)的所有内容,重点介绍了父元素(弹性容器)和子元素(弹性项目)的所有不同可能属性。\n","content_html":"\u003cp\u003e本指南完整解释了弹性盒子(Flexible Box)的所有内容,重点介绍了父元素(弹性容器)和子元素(弹性项目)的所有不同可能属性。\u003c/p\u003e"},{"title":"震惊!CSS 竟然能获取视口尺寸?","date_published":"2024-12-06T10:32:22+08:00","date_modified":"2024-12-06T11:51:15+08:00","id":"https://lruihao.cn/posts/css-viewport/","url":"https://lruihao.cn/posts/css-viewport/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS"],"summary":"在这篇文章中,我们将探讨如何使用 CSS 获取视口尺寸,并展示一个简单的实现示例。\n","content_html":"\u003cp\u003e在这篇文章中,我们将探讨如何使用 CSS 获取视口尺寸,并展示一个简单的实现示例。\u003c/p\u003e"},{"title":"现代 CSS 解决方案:CSS 四舍五入数值单位","date_published":"2024-07-29T20:32:39+08:00","date_modified":"2024-10-13T12:28:31+08:00","id":"https://lruihao.cn/posts/css-round/","url":"https://lruihao.cn/posts/css-round/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","round"],"summary":"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\n","content_html":"\u003cp\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \u003ccode\u003eround()\u003c/code\u003e 及其实际应用场景。\u003c/p\u003e"},{"title":"现代 CSS 解决方案之异形元素怎么设置阴影?","date_published":"2024-07-15T10:40:12+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/drop-shadow/","url":"https://lruihao.cn/posts/drop-shadow/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","drop-shadow","box-shadow"],"summary":"今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\n","content_html":"\u003cp\u003e今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\u003c/p\u003e"},{"title":"CSS 实现时间轴、背景图 loading 和渐变边框","date_published":"2024-07-14T13:03:31+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/fixit-docs-bookmark/","url":"https://lruihao.cn/posts/fixit-docs-bookmark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"image":"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp","summary":"本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\n","content_html":"\u003cp\u003e本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\u003c/p\u003e"},{"title":"标准滚动条控制规范","date_published":"2024-06-28T22:29:03+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/scrollbar-styling/","url":"https://lruihao.cn/posts/scrollbar-styling/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","scrollbar-styling"],"summary":"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\n","content_html":"\u003cp\u003e使用 \u003ccode\u003escrollbar-width\u003c/code\u003e 和 \u003ccode\u003escrollbar-color\u003c/code\u003e 属性设置滚动条的样式。\u003c/p\u003e"},{"title":"怎么生成暗黑模式和明亮模式的 SVG 图片?","date_published":"2024-06-06T22:13:26+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/svg-dark-light/","url":"https://lruihao.cn/posts/svg-dark-light/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","SVG","hugo"],"summary":"在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。\n","content_html":"\u003cp\u003e在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。\u003c/p\u003e"},{"title":"CSS 如何实现网格背景效果?","date_published":"2023-09-02T10:05:44+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/grid-bg-image/","url":"https://lruihao.cn/posts/grid-bg-image/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS"],"summary":"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n15 前言 最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\n","content_html":"\u003cp\u003e本文将介绍如何使用 \u003ccode\u003elinear-gradient\u003c/code\u003e 、\u003ccode\u003ebackground-size\u003c/code\u003e 等属性来实现网格背景效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"前言\"\u003e\u003cspan\u003e15 前言\u003c/span\u003e\n \u003ca href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\u003c/p\u003e"},{"title":"关于 CSS 和 Scss 变量运算那些事","date_published":"2022-04-30T22:04:29+08:00","date_modified":"2024-07-14T17:09:39+08:00","id":"https://lruihao.cn/posts/css-scss-var/","url":"https://lruihao.cn/posts/css-scss-var/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"summary":"7 问题分析 昨天在开发 FixIt 的时候,在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了,但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\n造成这一问题的原因是,在 Scss 中,也实现了 max 和 min 函数,但是在 Scss 中,不同单位的变量是不能进行运算的,所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)\n知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"问题分析\"\u003e\u003cspan\u003e7 问题分析\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e昨天在开发 FixIt 的时候,在 Scss 中写 \u003ccode\u003emax(foo, bar)\u003c/code\u003e 函数比较不同的单位变量时报错了,但是在 CSS 中使用 \u003ccode\u003emax\u003c/code\u003e 或者 \u003ccode\u003emin\u003c/code\u003e 函数函数比较不同的单位变量是没有问题的。\u003c/p\u003e\n\u003cp\u003e造成这一问题的原因是,在 Scss 中,也实现了 \u003ccode\u003emax\u003c/code\u003e 和 \u003ccode\u003emin\u003c/code\u003e 函数,但是在 Scss 中,\u003cstrong\u003e不同单位的变量是不能进行运算的\u003c/strong\u003e,所以使得在 Scss 中直接使用 \u003ccode\u003emax\u003c/code\u003e 或者 \u003ccode\u003emin\u003c/code\u003e 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)\u003c/p\u003e\n\u003cp\u003e知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。\u003c/p\u003e"},{"title":"less\u0026sass\u0026scss","date_published":"2021-06-22T16:39:47+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/less-sass-scss/","url":"https://lruihao.cn/posts/less-sass-scss/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Less","Sass","Scss"],"summary":" Sass 和 Less 都屬於 CSS 前置處理器,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eSass 和 Less 都屬於 \u003cstrong\u003eCSS 前置處理器\u003c/strong\u003e,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。\u003cbr\u003e\n轉化成通俗易懂的話來說就是 \u003cstrong\u003e“用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/css/index.html ================================================ CSS - 分类 | 菠菜眾長
================================================ FILE: categories/css/index.xml ================================================ CSS - 分类 | 菠菜眾長https://lruihao.cn/categories/css/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Sat, 16 Aug 2025 14:56:28 +0800让 Mermaid 图表自动跟随系统深浅色https://lruihao.cn/posts/mermaid-theming/Sat, 16 Aug 2025 12:37:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mermaid-theming/JavaScriptCSS<p>Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。<br> 不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。</p>CSS @layer:构建更高效、更可维护的样式层级https://lruihao.cn/posts/at-layer/Wed, 18 Jun 2025 10:35:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/at-layer/CSS<p>在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 <code>@layer</code> 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 <code>@layer</code> 的背景、作用以及语法,带你一探究竟。</p>CSS Flexbox 布局指南https://lruihao.cn/posts/flexbox/Mon, 20 Jan 2025 15:56:38 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/flexbox/CSS<p>本指南完整解释了弹性盒子(Flexible Box)的所有内容,重点介绍了父元素(弹性容器)和子元素(弹性项目)的所有不同可能属性。</p>震惊!CSS 竟然能获取视口尺寸?https://lruihao.cn/posts/css-viewport/Fri, 06 Dec 2024 10:32:22 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/css-viewport/CSS<p>在这篇文章中,我们将探讨如何使用 CSS 获取视口尺寸,并展示一个简单的实现示例。</p>现代 CSS 解决方案:CSS 四舍五入数值单位https://lruihao.cn/posts/css-round/Mon, 29 Jul 2024 20:32:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/css-round/CSS<p>本文将介绍另外一个非常实用的 CSS 数学函数 - <code>round()</code> 及其实际应用场景。</p>现代 CSS 解决方案之异形元素怎么设置阴影?https://lruihao.cn/posts/drop-shadow/Mon, 15 Jul 2024 10:40:12 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/drop-shadow/CSS<p>今天记录一个 CSS 小知识点,如何给异形元素设置阴影。</p>CSS 实现时间轴、背景图 loading 和渐变边框https://lruihao.cn/posts/fixit-docs-bookmark/Sun, 14 Jul 2024 13:03:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/fixit-docs-bookmark/CSS<p>本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。</p>标准滚动条控制规范https://lruihao.cn/posts/scrollbar-styling/Fri, 28 Jun 2024 22:29:03 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/scrollbar-styling/CSS<p>使用 <code>scrollbar-width</code> 和 <code>scrollbar-color</code> 属性设置滚动条的样式。</p>怎么生成暗黑模式和明亮模式的 SVG 图片?https://lruihao.cn/posts/svg-dark-light/Thu, 06 Jun 2024 22:13:26 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/svg-dark-light/CSS<p>在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。</p>CSS 如何实现网格背景效果?https://lruihao.cn/posts/grid-bg-image/Sat, 02 Sep 2023 10:05:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/grid-bg-image/CSS<p>本文将介绍如何使用 <code>linear-gradient</code> 、<code>background-size</code> 等属性来实现网格背景效果。</p> <h2 class="heading-element" id="前言"><span>22 前言</span> <a href="#%e5%89%8d%e8%a8%80" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。</p>关于 CSS 和 Scss 变量运算那些事https://lruihao.cn/posts/css-scss-var/Sat, 30 Apr 2022 22:04:29 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/css-scss-var/CSS<h2 class="heading-element" id="问题分析"><span>10 问题分析</span> <a href="#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>昨天在开发 FixIt 的时候,在 Scss 中写 <code>max(foo, bar)</code> 函数比较不同的单位变量时报错了,但是在 CSS 中使用 <code>max</code> 或者 <code>min</code> 函数函数比较不同的单位变量是没有问题的。</p> <p>造成这一问题的原因是,在 Scss 中,也实现了 <code>max</code> 和 <code>min</code> 函数,但是在 Scss 中,<strong>不同单位的变量是不能进行运算的</strong>,所以使得在 Scss 中直接使用 <code>max</code> 或者 <code>min</code> 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)</p> <p>知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。</p>less&sass&scsshttps://lruihao.cn/posts/less-sass-scss/Tue, 22 Jun 2021 16:39:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/less-sass-scss/CSS<blockquote> <p>Sass 和 Less 都屬於 <strong>CSS 前置處理器</strong>,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。<br> 轉化成通俗易懂的話來說就是 <strong>“用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。</strong></p> </blockquote> ================================================ FILE: categories/css/page/1/index.html ================================================ https://lruihao.cn/categories/css/ ================================================ FILE: categories/git/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Git - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"Git 统计代码量","date_published":"2024-07-17T16:06:08+08:00","date_modified":"2024-07-17T18:34:56+08:00","id":"https://lruihao.cn/posts/git-summary/","url":"https://lruihao.cn/posts/git-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"使用 Git 命令统计在某段时间内项目中的代码量。\n","content_html":"\u003cp\u003e使用 Git 命令统计在某段时间内项目中的代码量。\u003c/p\u003e"},{"title":"git submodule: already exists in the index","date_published":"2024-01-11T10:30:04+08:00","date_modified":"2024-01-11T10:39:56+08:00","id":"https://lruihao.cn/posts/6550187/","url":"https://lruihao.cn/posts/6550187/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"Git 报错 \u0026ldquo;git submodule: already exists in the index\u0026rdquo; 的解决方法。\n","content_html":"\u003cp\u003eGit 报错 \u0026ldquo;git submodule: already exists in the index\u0026rdquo; 的解决方法。\u003c/p\u003e"},{"title":"SSH 提交签名验证","date_published":"2023-10-22T18:59:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/ssh-sign/","url":"https://lruihao.cn/posts/ssh-sign/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","SSH"],"summary":"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。\n","content_html":"\u003cp\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。\u003c/p\u003e"},{"title":"Commit Message Spec","date_published":"2022-08-12T15:37:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/commit-spec/","url":"https://lruihao.cn/posts/commit-spec/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cp\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eConventional Commits\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e specification based on the \u003ca href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAngular convention\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\u003c/p\u003e"},{"title":"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶","date_published":"2021-10-04T23:46:49+08:00","date_modified":"2024-12-17T18:09:03+08:00","id":"https://lruihao.cn/posts/github-actions/","url":"https://lruihao.cn/posts/github-actions/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","GitHub Actions","hugo","腾讯云 cos 桶"],"summary":" 解決痛點 Github Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e解決痛點\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003eGithub Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\u003cbr\u003e\n也就是説實現了在線寫靜態博客的需求。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Git 常用指令汇总","date_published":"2018-10-30T08:59:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/git/","url":"https://lruihao.cn/posts/git/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"image":"/posts/git/images/relation-1.png","summary":" 工作区:就是你在电脑里能看到的目录。 暂存区:英文叫 stage, 或 index。一般存放在 \u0026ldquo;.git 目录下\u0026rdquo; 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。 ","content_html":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e工作区\u003c/strong\u003e:就是你在电脑里能看到的目录。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e暂存区\u003c/strong\u003e:英文叫 stage, 或 index。一般存放在 \u0026ldquo;.git 目录下\u0026rdquo; 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e版本库\u003c/strong\u003e:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"使用 Git 上传代码到 github, coding 等仓库","date_published":"2018-10-26T21:11:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/gituse/","url":"https://lruihao.cn/posts/gituse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"0.9 config git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意:\n如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"config\"\u003e\u003cspan\u003e0.9 config\u003c/span\u003e\n \u003ca href=\"#config\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003egit config --global user.name \"Your Name\"\ngit config --global user.email \"email@example.com\"\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e第一次使用 git 的时候需要设置提交者信息。\u003cbr\u003e\n注意:\u003cbr\u003e\n如果用了 \u003ccode\u003e--global\u003c/code\u003e 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。\u003cbr\u003e\n如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 \u003ccode\u003e--global\u003c/code\u003e 选项重新配置即可,新的设定保存在当前项目的 \u003ccode\u003e.git/config\u003c/code\u003e 文件里。\u003c/p\u003e"},{"title":"git index.lock","date_published":"2018-08-14T19:21:23+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/git-index-lock/","url":"https://lruihao.cn/posts/git-index-lock/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。\n有时强制关闭进行中的 git 操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除,进入。git 文件中删除,打开显示隐藏文件。如果没有看见。git 文件夹,可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\n","content_html":"\u003cp\u003e在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。\u003c/p\u003e\n\u003cp\u003e有时强制关闭进行中的 git 操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除,进入。git 文件中删除,打开显示隐藏文件。如果没有看见。git 文件夹,可以直接用命令 \u003ccode\u003erm -f ./.git/index.lock\u003c/code\u003e 。之后就可以正常使用。\u003c/p\u003e"}]} ================================================ FILE: categories/git/index.html ================================================ Git - 分类 | 菠菜眾長
================================================ FILE: categories/git/index.xml ================================================ Git - 分类 | 菠菜眾長https://lruihao.cn/categories/git/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Tue, 17 Dec 2024 18:09:03 +0800Git 统计代码量https://lruihao.cn/posts/git-summary/Wed, 17 Jul 2024 16:06:08 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/git-summary/Git<p>使用 Git 命令统计在某段时间内项目中的代码量。</p>git submodule: already exists in the indexhttps://lruihao.cn/posts/6550187/Thu, 11 Jan 2024 10:30:04 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/6550187/Git<p>Git 报错 &ldquo;git submodule: already exists in the index&rdquo; 的解决方法。</p>SSH 提交签名验证https://lruihao.cn/posts/ssh-sign/Sun, 22 Oct 2023 18:59:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ssh-sign/Git<p>Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。</p>Commit Message Spechttps://lruihao.cn/posts/commit-spec/Fri, 12 Aug 2022 15:37:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/commit-spec/程序猿的自我修养Git<!-- markdownlint-disable MD033 --> <p>Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the <a href="https://www.conventionalcommits.org/en/v1.0.0-beta.4/" target="_blank" rel="external nofollow noopener noreferrer">Conventional Commits<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> specification based on the <a href="https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit" target="_blank" rel="external nofollow noopener noreferrer">Angular convention<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.</p>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶https://lruihao.cn/posts/github-actions/Mon, 04 Oct 2021 23:46:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/github-actions/MemoGit<div class="details admonition quote open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-quote-right" aria-hidden="true"></i>解決痛點<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">Github Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。<br> 也就是説實現了在線寫靜態博客的需求。</div> </div> </div>Git 常用指令汇总https://lruihao.cn/posts/git/Tue, 30 Oct 2018 08:59:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/git/Git<ul> <li><strong>工作区</strong>:就是你在电脑里能看到的目录。</li> <li><strong>暂存区</strong>:英文叫 stage, 或 index。一般存放在 &ldquo;.git 目录下&rdquo; 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。</li> <li><strong>版本库</strong>:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。</li> </ul>使用 Git 上传代码到 github, coding 等仓库https://lruihao.cn/posts/gituse/Fri, 26 Oct 2018 21:11:02 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/gituse/Git<h3 class="heading-element" id="config"><span>0.13 config</span> <a href="#config" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>git config --global user.name &#34;Your Name&#34; git config --global user.email &#34;email@example.com&#34;</code></pre><blockquote> <p>第一次使用 git 的时候需要设置提交者信息。<br> 注意:<br> 如果用了 <code>--global</code> 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。<br> 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 <code>--global</code> 选项重新配置即可,新的设定保存在当前项目的 <code>.git/config</code> 文件里。</p>git index.lockhttps://lruihao.cn/posts/git-index-lock/Tue, 14 Aug 2018 19:21:23 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/git-index-lock/Git<p>在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。</p> <pre><code>fatal: Unable to create &#39;/xxx/xx/.git/index.lock&#39;: File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.</code></pre><p>原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。</p> <p>有时强制关闭进行中的 git 操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除,进入。git 文件中删除,打开显示隐藏文件。如果没有看见。git 文件夹,可以直接用命令 <code>rm -f ./.git/index.lock</code> 。之后就可以正常使用。</p> ================================================ FILE: categories/git/page/1/index.html ================================================ https://lruihao.cn/categories/git/ ================================================ FILE: categories/github/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"GitHub - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"一个轻量化 Tooltip 组件。","date_published":"2026-03-06T06:58:23Z","date_modified":"2026-03-30T06:51:12Z","id":"https://lruihao.cn/projects/lruihao/cell-tooltip/","url":"https://lruihao.cn/projects/lruihao/cell-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap tooltip.js,保留常用能力并尽量减少体积与依赖。\n特性 支持触发方式:hover / focus / click / manual 支持位置:top / bottom / left / right / auto 支持延迟配置(show / hide) 支持 data-ct-* 属性初始化 支持实例方法:show / hide / toggle / update / dispose 内置箭头与基础样式,无第三方依赖 本地运行 pnpm install pnpm dev构建库产物:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased\u003e\u003cspan\u003ecell-tooltip\u003c/span\u003e\n \u003ca href=\"#cell-tooltip\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap \u003ccode\u003etooltip.js\u003c/code\u003e,保留常用能力并尽量减少体积与依赖。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持触发方式:\u003ccode\u003ehover\u003c/code\u003e / \u003ccode\u003efocus\u003c/code\u003e / \u003ccode\u003eclick\u003c/code\u003e / \u003ccode\u003emanual\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持位置:\u003ccode\u003etop\u003c/code\u003e / \u003ccode\u003ebottom\u003c/code\u003e / \u003ccode\u003eleft\u003c/code\u003e / \u003ccode\u003eright\u003c/code\u003e / \u003ccode\u003eauto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持延迟配置(\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持 \u003ccode\u003edata-ct-*\u003c/code\u003e 属性初始化\u003c/li\u003e\n\u003cli\u003e支持实例方法:\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e / \u003ccode\u003etoggle\u003c/code\u003e / \u003ccode\u003eupdate\u003c/code\u003e / \u003ccode\u003edispose\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e内置箭头与基础样式,无第三方依赖\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"本地运行\"\u003e\u003cspan\u003e本地运行\u003c/span\u003e\n \u003ca href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epnpm install\npnpm dev\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e构建库产物:\u003c/p\u003e"},{"title":"A Christmas Easter Egg by JavaScript.","date_published":"2025-12-24T03:31:47Z","date_modified":"2026-05-04T16:54:23Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","theme-component"],"summary":" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期,无需手动开关 💫 轻量级实现,不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003e🎄 Santa Hat | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个 JavaScript 实现的圣诞节小彩蛋。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰\u003c/li\u003e\n\u003cli\u003e🎯 自动检测当前日期,无需手动开关\u003c/li\u003e\n\u003cli\u003e💫 轻量级实现,不影响网站性能\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 或更高版本。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方式与 \u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\u003c/p\u003e"},{"title":"Command line tool for generating a changelog from git tags and commit history","date_published":"2025-08-30T15:40:19Z","date_modified":"2025-11-19T04:35:56Z","id":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","url":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["auto-changelog","conventional-changelog","conventional-commits","semver"],"summary":"auto-changelog-plus 中文 | English\n从 git 提交历史自动生成 changelog 的命令行工具。\n基于 auto-changelog 和 约定式提交 规范。\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased\u003e\u003cspan\u003eauto-changelog-plus\u003c/span\u003e\n \u003ca href=\"#auto-changelog-plus\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e从 git 提交历史自动生成 changelog 的命令行工具。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于 \u003ca href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto-changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 和 \u003ca href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e约定式提交\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 规范。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-安装\"\u003e\u003cspan\u003e📦 安装\u003c/span\u003e\n \u003ca href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install -g auto-changelog-plus\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"-用法\"\u003e\u003cspan\u003e🚀 用法\u003c/span\u003e\n \u003ca href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 git 仓库根目录运行 \u003ccode\u003eauto-changelog-plus\u003c/code\u003e 或者 \u003ccode\u003eacp\u003c/code\u003e。工具会在后台运行 \u003ccode\u003egit log\u003c/code\u003e 来解析提交历史。\u003c/p\u003e"},{"title":"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.","date_published":"2025-07-22T03:40:45Z","date_modified":"2026-04-08T08:41:40Z","id":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","url":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["caniuse","caniuse-embed","custom-elements","web-components"],"summary":"\u0026lt;caniuse-embed\u0026gt; 元素 English | 简体中文\n一个轻量级、可定制的 Web 组件,用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建,设计为可无缝集成到任何 Web 项目中。\n🌟 在线演示\n","content_html":"\u003ch2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased\u003e\u003cspan\u003e\u003ccode\u003e\u0026lt;caniuse-embed\u0026gt;\u003c/code\u003e 元素\u003c/span\u003e\n \u003ca href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e | 简体中文\u003c/p\u003e\n\u003cp\u003e一个轻量级、可定制的 Web 组件,用于嵌入 \u003ca href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaniuse.com\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \u003ca href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 构建,设计为可无缝集成到任何 Web 项目中。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌟 \u003cstrong\u003e在线演示\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"A custom element for viewing and interacting with JSON data.","date_published":"2025-07-19T07:05:07Z","date_modified":"2026-04-08T08:42:59Z","id":"https://lruihao.cn/projects/lruihao/json-viewer-element/","url":"https://lruihao.cn/projects/lruihao/json-viewer-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"\u0026lt;json-viewer\u0026gt; Element 简体中文 | English\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\n功能特性 🌟 Web 组件:原生,无框架依赖 🎨 主题:支持明暗模式 📦 盒装:可选边框与内边距 📋 可复制:一键复制 JSON 🔑 排序:支持键排序 🔍 展开深度:可控初始展开层级 🧩 自定义复制按钮:slot 插槽支持 🧬 类型高亮:多种类型高亮 🛠️ 自定义事件:支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased\u003e\u003cspan\u003e\u0026lt;json-viewer\u0026gt; Element\u003c/span\u003e\n \u003ca href=\"#json-viewer-element\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e简体中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能特性\"\u003e\u003cspan\u003e功能特性\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e🌟 \u003cstrong\u003eWeb 组件\u003c/strong\u003e:原生,无框架依赖\u003c/li\u003e\n\u003cli\u003e🎨 \u003cstrong\u003e主题\u003c/strong\u003e:支持明暗模式\u003c/li\u003e\n\u003cli\u003e📦 \u003cstrong\u003e盒装\u003c/strong\u003e:可选边框与内边距\u003c/li\u003e\n\u003cli\u003e📋 \u003cstrong\u003e可复制\u003c/strong\u003e:一键复制 JSON\u003c/li\u003e\n\u003cli\u003e🔑 \u003cstrong\u003e排序\u003c/strong\u003e:支持键排序\u003c/li\u003e\n\u003cli\u003e🔍 \u003cstrong\u003e展开深度\u003c/strong\u003e:可控初始展开层级\u003c/li\u003e\n\u003cli\u003e🧩 \u003cstrong\u003e自定义复制按钮\u003c/strong\u003e:slot 插槽支持\u003c/li\u003e\n\u003cli\u003e🧬 \u003cstrong\u003e类型高亮\u003c/strong\u003e:多种类型高亮\u003c/li\u003e\n\u003cli\u003e🛠️ \u003cstrong\u003e自定义事件\u003c/strong\u003e:支持 copy/toggle 事件监听\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"使用方法\"\u003e\u003cspan\u003e使用方法\u003c/span\u003e\n \u003ca href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003enpm install json-viewer-element\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"引入\"\u003e\u003cspan\u003e引入\u003c/span\u003e\n \u003ca href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003ch4 class=\"heading-element\" id=\"作为模块\"\u003e\u003cspan\u003e作为模块\u003c/span\u003e\n \u003ca href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003eimport 'json-viewer-element'\u003c/code\u003e\u003c/pre\u003e\u003ch4 class=\"heading-element\" id=\"umd-cdn\"\u003e\u003cspan\u003eUMD (CDN)\u003c/span\u003e\n \u003ca href=\"#umd-cdn\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript src=\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"基本用法\"\u003e\u003cspan\u003e基本用法\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e手动绑定 value:\u003c/p\u003e"},{"title":"The webfont package for the MMT typeface.","date_published":"2025-04-10T08:35:34Z","date_modified":"2026-01-05T07:25:04Z","id":"https://lruihao.cn/projects/lruihao/mmt-webfont/","url":"https://lruihao.cn/projects/lruihao/mmt-webfont/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cjk","mmt","vue3","webfont"],"summary":"MMT webfont package The webfont package for the MMT typeface.\nDemo MMT typeface online demo\n","content_html":"\u003ch2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased\u003e\u003cspan\u003eMMT webfont package\u003c/span\u003e\n \u003ca href=\"#mmt-webfont-package\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe webfont package for the \u003ca href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e typeface.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT typeface online demo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"API proxies powered by Vercel.","date_published":"2025-04-09T02:13:22Z","date_modified":"2026-03-10T07:05:02Z","id":"https://lruihao.cn/projects/lruihao/vercel-proxy/","url":"https://lruihao.cn/projects/lruihao/vercel-proxy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel API Proxy API proxies powered by Vercel.\n[toc]\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#vercel-api-proxy\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eAPI proxies powered by Vercel.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e[toc]\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"hosts\"\u003e\u003cspan\u003eHosts\u003c/span\u003e\n \u003ca href=\"#hosts\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://api.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://cell-api.vercel.app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"api-list\"\u003e\u003cspan\u003eAPI List\u003c/span\u003e\n \u003ca href=\"#api-list\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eGo to the \u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e and select the API you want to use.\u003c/p\u003e"},{"title":"Generate a list of all hugo-fixit theme components.","date_published":"2025-01-14T09:10:09Z","date_modified":"2026-05-06T03:13:04Z","id":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","url":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["github-actions"],"summary":"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased\u003e\u003cspan\u003eaction-component-list | FixIt\u003c/span\u003e\n \u003ca href=\"#action-component-list--fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"\u003e\u003c/a\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/badge_12862037500024650352.svg' alt=\"CI\"\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"how-to-use\"\u003e\u003cspan\u003eHow to use\u003c/span\u003e\n \u003ca href=\"#how-to-use\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eYou can reference different stable versions of this action. For more\ninformation, see\n\u003ca href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVersioning\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\nin the GitHub Actions toolkit.\u003c/p\u003e"},{"title":"A Hugo theme component with asciinema-embed shortcode.","date_published":"2025-01-08T09:20:48Z","date_modified":"2026-04-20T07:20:15Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["asciinema","hugo","shortcodes","theme-component"],"summary":" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\n要求 适用于所有 Hugo 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eshortcode-asciinema | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个带有 \u003ccode\u003easciinema-embed\u003c/code\u003e shortcode 的 Hugo 主题组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题#CLI | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e适用于所有 Hugo 主题。\u003c/p\u003e"},{"title":"🌐 A component for site automatic translation.","date_published":"2024-12-02T07:29:57Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","i18n","theme-component","translatejs"],"summary":" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\n多语言 Hugo 站点:fixit.lruihao.cn 单语言 Hugo 站点:lruihao.cn 在网站右上角切换配置的翻译语言,或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如:?lang=korean。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eAuto Translate | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个基于 \u003ca href=\"https://github.com/xnx3/translate\"\u003etranslate.js\u003c/a\u003e 实现网站自动翻译的组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e多语言 Hugo 站点:\u003ca href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e单语言 Hugo 站点:\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e在网站右上角切换配置的翻译语言,或者在 URL 中添加 \u003ccode\u003e?lang=\u003c/code\u003e 参数指定任意\u003ca href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e支持的翻译语言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。例如:\u003ccode\u003e?lang=korean\u003c/code\u003e。\u003c/p\u003e"},{"title":"🐟 A canvas implemented animation effect of small fish swimming.","date_published":"2024-11-05T08:23:29Z","date_modified":"2025-12-27T08:05:18Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["canvas","hugo","hugo-fixit","theme-component"],"summary":"Fly Fish 👉 简体中文说明 | English README\n一个 canvas 实现的小鱼游动动画效果。\nDemo https://lruihao.cn\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fly-fish\" data-decreased\u003e\u003cspan\u003eFly Fish\u003c/span\u003e\n \u003ca href=\"#fly-fish\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish README\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e一个 canvas 实现的小鱼游动动画效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。","date_published":"2024-09-13T02:36:29Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/lruihao/html-demo/","url":"https://lruihao.cn/projects/lruihao/html-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["html-css-javascript"],"summary":"HTML demos 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"html-demos\" data-decreased\u003e\u003cspan\u003eHTML demos\u003c/span\u003e\n \u003ca href=\"#html-demos\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"文件预览\"\u003e\u003cspan\u003e文件预览\u003c/span\u003e\n \u003ca href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e直接浏览器打开 \u003ccode\u003esrc\u003c/code\u003e 目录下的 HTML 文件。\u003c/p\u003e"},{"title":"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)","date_published":"2024-09-04T18:10:59Z","date_modified":"2025-12-10T03:29:52Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["auto-changelog","changelog","continuous-integration","conventional-changelog","conventional-commits","hugo-fixit","nodejs","rolldown","semver"],"summary":"FixIt Releaser 中文 | English\n版本控制、变更日志和发布工具。\n小心\n该工具已停止维护!建议使用 auto changelog plus 或者 auto changelog 生成日志。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased\u003e\u003cspan\u003eFixIt Releaser\u003c/span\u003e\n \u003ca href=\"#fixit-releaser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e版本控制、变更日志和发布工具。\u003c/p\u003e\n\u003cdiv class=\"alert alert-caution\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e小心\u003c/p\u003e\u003cp\u003e该工具已停止维护!建议使用 \u003ca href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog plus\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 或者 \u003ca href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 生成日志。\u003c/p\u003e"},{"title":"Hugo theme component for ATOM feed custom Output Format.","date_published":"2024-08-22T03:29:22Z","date_modified":"2025-12-20T06:45:59Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["atom","feed","hugo","theme-component"],"summary":"Hugo ATOM Feed 中文 | English\nHugo 主题组件,用于自定义 ATOM feed 输出格式。\n该组件为您的站点启用 ATOM feeds。\n安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased\u003e\u003cspan\u003eHugo ATOM Feed\u003c/span\u003e\n \u003ca href=\"#hugo-atom-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 ATOM feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 ATOM feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Hugo theme component for JSON feed custom Output Format.","date_published":"2024-08-22T03:28:23Z","date_modified":"2025-12-20T06:44:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","json-feed","theme-component"],"summary":"Hugo JSON Feed 中文 | English\nHugo 主题组件,用于自定义 JSON feed 输出格式。\n该组件为您的站点启用 JSON feeds。\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased\u003e\u003cspan\u003eHugo JSON Feed\u003c/span\u003e\n \u003ca href=\"#hugo-json-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 JSON feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 JSON feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"演示\"\u003e\u003cspan\u003e演示\u003c/span\u003e\n \u003ca href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e主页 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文章 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e列表 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Mobile devtools component powered by vConsole and eruda.","date_published":"2024-08-07T05:49:13Z","date_modified":"2025-07-04T02:38:28Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["eruda","hugo","theme-component","vconsole"],"summary":"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased\u003e\u003cspan\u003ecmpt-mdevtools\u003c/span\u003e\n \u003ca href=\"#cmpt-mdevtools\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eMobile devtools component powered by vConsole and eruda.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 or later.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeruda\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evConsole\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"A Hugo theme component with reward-log or sponsor-log shortcode.","date_published":"2024-07-21T14:02:29Z","date_modified":"2025-11-08T18:49:59Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","reward-log","shortcodes","theme-component"],"summary":"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\nDemo FixIt Docs Lruihao\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased\u003e\u003cspan\u003eshortcode-rewards\u003c/span\u003e\n \u003ca href=\"#shortcode-rewards\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eA Hugo theme component with \u003ccode\u003ereward-log\u003c/code\u003e or \u003ccode\u003esponsor-log\u003c/code\u003e shortcode.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt Docs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eDeveloped based on the FixIt Timeline plugin.\u003c/p\u003e"},{"title":"🔖 Embed bookmark of FixIt Docs.","date_published":"2024-07-14T07:39:56Z","date_modified":"2025-12-27T08:36:41Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-docs-bookmark","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased\u003e\u003cspan\u003efixit-docs-bookmark\u003c/span\u003e\n \u003ca href=\"#fixit-docs-bookmark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e🔖 Embed bookmark of FixIt Docs.\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"A Hugo theme component with caniuse shortcode.","date_published":"2024-06-28T06:56:32Z","date_modified":"2026-05-06T03:02:29Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["caniuse-embed","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\n依赖 FixIt 主题 v0.4.0 及以上版本。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased\u003e\u003cspan\u003eHugo shortcode for CanIUse\u003c/span\u003e\n \u003ca href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Hugo 中使用 \u003ccode\u003eshortcode\u003c/code\u003e 方式内嵌 \u003ca href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCanIUse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 到你的文章中。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"依赖\"\u003e\u003cspan\u003e依赖\u003c/span\u003e\n \u003ca href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eFixIt 主题 \u003ccode\u003ev0.4.0\u003c/code\u003e 及以上版本。\u003c/p\u003e"},{"title":"Gravatar Proxy powered by Vercel.","date_published":"2024-04-17T01:37:06Z","date_modified":"2025-08-18T17:42:18Z","id":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","url":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel Gravatar 注意\nSuperseded by Lruihao/vercel-proxy.\nGravatar Proxy powered by Vercel.\nGo to test Gravatar:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased\u003e\u003cspan\u003eVercel Gravatar\u003c/span\u003e\n \u003ca href=\"#vercel-gravatar\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003eSuperseded by \u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao/vercel-proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/div\u003e\u003cp\u003eGravatar Proxy powered by Vercel.\u003c/p\u003e\n\u003cp\u003eGo to test Gravatar:\u003c/p\u003e"},{"title":"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.","date_published":"2024-04-09T21:38:42Z","date_modified":"2026-05-06T03:02:26Z","id":"https://lruihao.cn/projects/hugo-fixit/component-projects/","url":"https://lruihao.cn/projects/hugo-fixit/component-projects/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","shortcodes","theme-component"],"summary":" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示(layout 或者 shortcodes) 支持根据 README 自动生成博客文章(content adapter) 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法,请选择一种。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eGitHub Projects Embed | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"\u003edeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"\u003eしろうと\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e生态系统 | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao 的开源项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持 GitHub 项目卡片展示(\u003ccode\u003elayout\u003c/code\u003e 或者 \u003ccode\u003eshortcodes\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持根据 README 自动生成博客文章(\u003ccode\u003econtent adapter\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 或更高版本\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与 \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同。有几种安装方法,请选择一种。\u003c/p\u003e"},{"title":"🛠 Create awesome cover images for your blog posts quickly.","date_published":"2024-03-28T06:14:16Z","date_modified":"2026-05-06T03:02:25Z","id":"https://lruihao.cn/projects/lruihao/coverview/","url":"https://lruihao.cn/projects/lruihao/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"CoverView 👉 简体中文说明 | English README\n该项目基于原始的 CoverView。\n现在为你的博客创建封面图片变得非常简单。\n💥 变更通知 自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"coverview\" data-decreased\u003e\u003cspan\u003eCoverView\u003c/span\u003e\n \u003ca href=\"#coverview\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"README.en.md\"\u003eEnglish README\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e该项目基于原始的 \u003ca href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e现在为你的博客创建封面图片变得非常简单。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-变更通知\"\u003e\u003cspan\u003e💥 变更通知\u003c/span\u003e\n \u003ca href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\u003c/p\u003e"},{"title":"强大的脑图可视化工具","date_published":"2024-01-21T06:24:42Z","date_modified":"2024-07-07T02:44:14Z","id":"https://lruihao.cn/projects/lruihao/kityminder-core/","url":"https://lruihao.cn/projects/lruihao/kityminder-core/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"KityMinder Core 注意\n由于原项目 KityMinder Core 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 @cell-x/kityminder-core。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"kityminder-core\" data-decreased\u003e\u003cspan\u003eKityMinder Core\u003c/span\u003e\n \u003ca href=\"#kityminder-core\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003e由于原项目 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKityMinder Core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 \u003ca href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e@cell-x/kityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"🛠️ A node-based tooling for FixIt site initialization.","date_published":"2023-11-20T06:40:09Z","date_modified":"2026-05-06T03:02:22Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-cli","hugo","hugo-fixit","nodejs","scaffolding-tool"],"summary":"FixIt CLI 👉 中文 | English\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\n系统依赖 Node.js (\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题,你还需要安装 Go。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-cli\" data-decreased\u003e\u003cspan\u003eFixIt CLI\u003c/span\u003e\n \u003ca href=\"#fixit-cli\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🛠️ 一个基于 Node.js 开发的用于 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 站点初始化的脚手架工具。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e (\u0026gt;= 18)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 扩展版\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e如果你使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题,你还需要安装 \u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"Vue2 and element-ui related demos","date_published":"2023-08-08T01:41:08Z","date_modified":"2026-05-06T03:02:21Z","id":"https://lruihao.cn/projects/lruihao/vue-el-demo/","url":"https://lruihao.cn/projects/lruihao/vue-el-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["element-ui","vue","vue2"],"summary":"vue-el-demo Vue and element-ui related demos.\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased\u003e\u003cspan\u003evue-el-demo\u003c/span\u003e\n \u003ca href=\"#vue-el-demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eVue and element-ui related \u003ca href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"project-setup\"\u003e\u003cspan\u003eProject setup\u003c/span\u003e\n \u003ca href=\"#project-setup\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eyarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis project is built with \u003ca href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRsbuild\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, a fast build tool powered by Rspack.\u003c/p\u003e"},{"title":"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.","date_published":"2023-06-14T14:03:49Z","date_modified":"2026-05-06T03:02:19Z","id":"https://lruihao.cn/projects/lruihao/el-table-sticky/","url":"https://lruihao.cn/projects/lruihao/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["el-table","el-table-sticky","element-ui","v-height-adaptive","v-sticky-footer","v-sticky-h-scroll","v-sticky-header","vue","vue-directive","vue2"],"summary":"el-table-sticky 在线示例\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\n背景 Element UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased\u003e\u003cspan\u003eel-table-sticky\u003c/span\u003e\n \u003ca href=\"#el-table-sticky\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线示例\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"背景\"\u003e\u003cspan\u003e背景\u003c/span\u003e\n \u003ca href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eElement UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\u003c/p\u003e"},{"title":"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.","date_published":"2023-02-28T09:12:29Z","date_modified":"2025-07-02T07:28:07Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","netease-cloud-music","shortcodes","theme-component"],"summary":"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\nDemo https://lruihao.cn/guestbook/\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased\u003e\u003cspan\u003eshortcode-mmt-netease\u003c/span\u003e\n \u003ca href=\"#shortcode-mmt-netease\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"\u003e\u003c/p\u003e\n\u003cp\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn/guestbook/\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件","date_published":"2022-10-10T02:50:53Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","url":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["editor","minder","vue"],"summary":"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased\u003e\u003cspan\u003eVue Minder Editor\u003c/span\u003e\n \u003ca href=\"#vue-minder-editor\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e基于 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ekityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 实现的 Vue2 脑图编辑器组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"install\"\u003e\u003cspan\u003eInstall\u003c/span\u003e\n \u003ca href=\"#install\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install vue-minder-editor-extended --save\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e注册组件:\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.","date_published":"2022-09-30T09:28:41Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Go) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门,请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Go)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题。如果你更熟悉 Git,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门,请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.","date_published":"2022-09-27T15:23:38Z","date_modified":"2026-05-06T02:33:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Git) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Git)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 子模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能来加载主题。如果你更熟悉 Go,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"Using frequently-used Hugo commands by shell.","date_published":"2022-09-04T04:18:42Z","date_modified":"2025-09-12T09:38:50Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo"],"summary":"Hugo Shell Using frequently-used Hugo commands by shell.\nDownload Add a submodule for your Hugo blog project.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shell\" data-decreased\u003e\u003cspan\u003eHugo Shell\u003c/span\u003e\n \u003ca href=\"#hugo-shell\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eUsing frequently-used Hugo commands by shell.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"download\"\u003e\u003cspan\u003eDownload\u003c/span\u003e\n \u003ca href=\"#download\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eAdd a submodule for your Hugo blog project.\u003c/p\u003e"},{"title":"📄 The open-source repo for fixit.lruihao.cn","date_published":"2022-07-23T12:17:06Z","date_modified":"2026-05-06T14:32:49Z","id":"https://lruihao.cn/projects/hugo-fixit/docs/","url":"https://lruihao.cn/projects/hugo-fixit/docs/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["documentation","hugo","hugo-blog","hugo-fixit"],"summary":"FixIt 主题文档 👉 中文 | English\nFixIt 主题文档主要分为:文档、教程 两大板块,欢迎大家发起 PR 完善主题文档。\n系统依赖 Node.js: \u0026gt;= 20.0.0 Go Hugo: \u0026gt;= 0.156.0 (extended version) 贡献文档 首先,点击 fork 按钮 fork 本仓库。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased\u003e\u003cspan\u003eFixIt 主题文档\u003c/span\u003e\n \u003ca href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题文档主要分为:\u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 两大板块,欢迎大家发起 PR 完善主题文档。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 20.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 0.156.0 (extended version)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"贡献文档\"\u003e\u003cspan\u003e贡献文档\u003c/span\u003e\n \u003ca href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先,点击 fork 按钮 fork 本仓库。\u003c/p\u003e"},{"title":"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题","date_published":"2021-12-16T03:35:27Z","date_modified":"2026-05-06T03:08:15Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit/","url":"https://lruihao.cn/projects/hugo-fixit/fixit/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["algolia","blog","giscus","hugo","hugo-blog","hugo-blog-theme","hugo-fixit","hugo-theme","pwa","pwa-app"],"summary":" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\n如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢! English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题,KeepIt 主题和 LeaveIt 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e\n FixIt 是一个简洁、优雅且高效的 \u003ca href=\"https://gohugo.io/\"\u003eHugo\u003c/a\u003e 博客主题。\u003cbr\u003e\n \u003cem\u003e\u003csub\u003e如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!\u003c/sub\u003e\u003c/em\u003e\n \u003c/p\u003e\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"\u003eEnglish\u003c/a\u003e |\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"\u003e\u003cimg align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200\u0026v=4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"fixit\" data-decreased\u003e\u003cspan\u003eFixIt\u003c/span\u003e\n \u003ca href=\"#fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e它的原型基于 \u003ca href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLoveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题,\u003ca href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKeepIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题和 \u003ca href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeaveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题。\u003c/p\u003e"},{"title":"Lruihao's Note","date_published":"2021-09-08T12:52:53Z","date_modified":"2026-05-06T03:02:13Z","id":"https://lruihao.cn/projects/lruihao/hugo-blog/","url":"https://lruihao.cn/projects/lruihao/hugo-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","front-end","hugo","hugo-blog","hugo-fixit","hugo-site"],"summary":"菠菜眾長 站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\nContent 博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e菠菜眾長\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"content\"\u003e\u003cspan\u003eContent\u003c/span\u003e\n \u003ca href=\"#content\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\u003c/p\u003e"},{"title":"Create watermark for webpage and automatic adjust when window resize.","date_published":"2021-05-24T13:05:40Z","date_modified":"2026-05-06T03:02:12Z","id":"https://lruihao.cn/projects/lruihao/watermark/","url":"https://lruihao.cn/projects/lruihao/watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cell-watermark","watermark"],"summary":"Watermark Create watermark for webpage and automatic adjust when windows resize.\nDocumentation Usage Browser Clone source\n","content_html":"\u003ch2 class=\"heading-element\" id=\"watermark\" data-decreased\u003e\u003cspan\u003eWatermark\u003c/span\u003e\n \u003ca href=\"#watermark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eCreate watermark for webpage and automatic adjust when windows resize.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"documentation\"\u003e\u003cspan\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDocumentation\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#documentation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"browser\"\u003e\u003cspan\u003eBrowser\u003c/span\u003e\n \u003ca href=\"#browser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eClone source\u003c/p\u003e"},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-02-28T03:44:09Z","date_modified":"2025-01-16T02:53:15Z","id":"https://lruihao.cn/projects/lruihao/bill-note/","url":"https://lruihao.cn/projects/lruihao/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["vue"],"summary":"Preparation 去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"preparation\" data-decreased\u003e\u003cspan\u003ePreparation\u003c/span\u003e\n \u003ca href=\"#preparation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\u003c/p\u003e\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003ename\u003c/th\u003e\n \u003cth\u003etype\u003c/th\u003e\n \u003cth\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003epay\u003c/td\u003e\n \u003ctd\u003eNumber\u003c/td\u003e\n \u003ctd\u003e消费金额\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_description\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费描述\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_type\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费类型\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_user\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e付款人\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 class=\"heading-element\" id=\"init\" data-decreased\u003e\u003cspan\u003eInit\u003c/span\u003e\n \u003ca href=\"#init\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eset for yourself.\u003c/p\u003e"},{"title":"基于 Laravel 7 开发,支持 Markdown 语法的博客","date_published":"2020-04-17T08:33:39Z","date_modified":"2025-04-12T07:30:24Z","id":"https://lruihao.cn/projects/lruihao/cell-blog/","url":"https://lruihao.cn/projects/lruihao/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","laravel","laravel-blog"],"summary":"Cell Blog 基于Laravel7开发,Markdown语法的个人独立博客。\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布,评论开关,排序) 自定义导航(显示开关,排序) 自定义页面(发布开关) 友情链接(显示开关,排序) COS桶相册 丰富的博客配置(方便扩展,支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 ","content_html":"\u003ch1 align=\"center\" \u003eCell Blog\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于Laravel7开发,Markdown语法的个人独立博客。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能\"\u003e\u003cspan\u003e功能\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持Markdown,文章实时预览效果\u003c/li\u003e\n\u003cli\u003e支持多种编程语言代码高亮\u003c/li\u003e\n\u003cli\u003e编辑器图片上传\u003c/li\u003e\n\u003cli\u003e后台上传文件管理\u003c/li\u003e\n\u003cli\u003e文章搜索\u003c/li\u003e\n\u003cli\u003e文章分类\u003c/li\u003e\n\u003cli\u003e文章标签\u003c/li\u003e\n\u003cli\u003e热门文章\u003c/li\u003e\n\u003cli\u003e随机格言\u003c/li\u003e\n\u003cli\u003e文章管理(发布,评论开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义导航(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义页面(发布开关)\u003c/li\u003e\n\u003cli\u003e友情链接(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCOS桶相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e丰富的博客配置(方便扩展,支持自定义JS脚本)\u003c/li\u003e\n\u003cli\u003e不蒜子计数\u003c/li\u003e\n\u003cli\u003eLeancloud计数\u003c/li\u003e\n\u003cli\u003eValine评论插件\u003c/li\u003e\n\u003cli\u003e文章分享插件\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"截图\"\u003e\u003cspan\u003e截图\u003c/span\u003e\n \u003ca href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"\u003e\u003c/p\u003e"},{"title":"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面","date_published":"2019-11-23T12:59:05Z","date_modified":"2023-02-16T04:56:55Z","id":"https://lruihao.cn/projects/lruihao/cos-album/","url":"https://lruihao.cn/projects/lruihao/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cos-album","cos-bucket"],"summary":"cos-album demo\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \u0026lsquo;body\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cos-album\" data-decreased\u003e\u003cspan\u003ecos-album\u003c/span\u003e\n \u003ca href=\"#cos-album\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"step1\"\u003e\u003cspan\u003eStep1\u003c/span\u003e\n \u003ca href=\"#step1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.min.css?v=1.1.6\"\u003e\n\u003cscript type=\"text/javascript\" src=\"cos-album.min.js?v=1.1.6\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"step2\"\u003e\u003cspan\u003eStep2\u003c/span\u003e\n \u003ca href=\"#step2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript type=\"text/javascript\"\u003e\n new Cosalbum({\n 'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n 'prependTo': '.cos-album',\n 'viewNum': 8,\n 'copyUrl': '//img.lruihao.cn'\n });\n\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"params\"\u003e\u003cspan\u003eParams\u003c/span\u003e\n \u003ca href=\"#params\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth style=\"text-align: left\"\u003eparam\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003etype\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edefault\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003exmlLink\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e需要解析的騰訊云COS桶XML鏈接\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eprependTo\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u0026lsquo;body\u0026rsquo;\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e可選解析相冊到某個節點\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eviewNum\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eNumber\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e4\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e每個相冊顯示的照片數目\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003ecopyUrl\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003ehref\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eimgType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e图片類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003evideoType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e視頻類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cstrong\u003e详细说明\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"沐目之,湘也。— 沐目体","date_published":"2019-09-26T12:44:17Z","date_modified":"2025-08-06T09:23:14Z","id":"https://lruihao.cn/projects/lruihao/mmt/","url":"https://lruihao.cn/projects/lruihao/mmt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["font","mmt"],"summary":" 关于沐目体\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Elegant and powerful theme for Hexo.","date_published":"2019-01-31T09:57:45Z","date_modified":"2023-12-21T02:39:42Z","id":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","url":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"hexo-theme-next 如无必要,不再更新!(2019.09.13)\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\n以下仍为当前博客使用主题,lib资源已打包github。\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; https://theme-next.org 记录一下折腾过程,修改内容以博採眾長为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\n","content_html":"\u003ch1 align=center\u003ehexo-theme-next\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e如无必要,不再更新!(2019.09.13)\u003c/strong\u003e\u003cbr\u003e\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将\u003cstrong\u003e放弃对next的主题的自定义修改\u003c/strong\u003e,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\u003cbr\u003e\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\u003cbr\u003e\n以下仍为当前博客使用主题,lib资源已打包github。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于\u003ca href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next 6.0+\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; \u003ca href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://theme-next.org\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e \u003cbr\u003e\n记录一下折腾过程,修改内容以\u003ca href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见\u003ca href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo分类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\n\u003cstrong\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"博客构建档(HTML \u0026 Markdown)","date_published":"2018-05-28T12:24:11Z","date_modified":"2026-05-07T02:00:50Z","id":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","url":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["acm","backend","blog","frontend","hexo","hexo-theme-next","hugo","hugo-fixit","java","javascript","php","python","study-notes","summary","web-development"],"summary":"菠菜眾長 Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\n共计 297 篇文章 by Lruihao.\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer:构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊!CSS 竟然能获取视口尺寸? 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全? 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案:CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影? 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基:从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片? 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写? 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar? 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁? 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度(Cognitive Complexity) 09-26 写作技巧:如何搭建文章的框架结构? 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定? 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段,自定义用户代码片段 09-02 CSS 如何实现网格背景效果? 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向:Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制(SemVer) 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\u0026rsquo;s Note 06-22 less\u0026amp;sass\u0026amp;scss 06-21 Lightbox 06-21 2020\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做?新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟? 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发,支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度,神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之,湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则,代码规范 07-19 简单评论模块\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数(二进制算法) 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战:模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json? 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密(字节流) 05-01 模拟借书系统(java 异常练习) 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本) 04-24 第一次面试经历 04-22 python 爬取网站图片(图片链接相似) 04-20 python 玩微信:初探 wxpy 04-20 基本 python 实现的爬取微信好友头像,并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\u0026rsquo; Trade(贪心) 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡(枚举法) 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏(Math 类) 01-15 面向对象基础知识总结 01-14 java 水仙花数(循环) 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\u0026ndash;形式倒装 12-10 英语语法\u0026ndash;完全倒装 12-08 英语语法\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人,都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计(2018) 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列(组合数学) 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi(组合数学) 08-10 The equation-SGU106(扩展欧几里得) 08-09 Leading and Trailing-lightoj1282(快速幂 + 对数运算) 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树) 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边) 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182(带权并查集经典模板) 08-01 小希的迷宫-HDU-1272(并查集 or 树性质) 08-01 How Many Answers Are Wrong-hdu3038(带权并查集) 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213(并查集求连通域数目) 07-31 The-suspects-POJ-1611(并查集) 07-31 wireless network-POJ-2236(并查集) 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232(并查集经典模板) 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐(bfs 模拟倒水 or 数论) 07-23 hdu-2612-Find a way(双 bfs) 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master(三维 bfs 最短路) 07-22 poj-1321 棋盘问题(dfs) 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径) 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片,音乐,链接,视频 05-31 猴子与哪吒 05-28 博客构建档(HTML \u0026amp; Markdown) 05-28 Hello World ","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e菠菜眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eHugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e共计 297 篇文章 by \u003ca href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"2026\"\u003e\u003cspan\u003e2026\u003c/span\u003e\n \u003ca href=\"#2026\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails open\u003e\n\u003csummary\u003e共计 1 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e03-06 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e一个轻量化 Tooltip 组件。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2025\"\u003e\u003cspan\u003e2025\u003c/span\u003e\n \u003ca href=\"#2025\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 14 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-24 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Christmas Easter Egg by JavaScript.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommand line tool for generating a changelog from git tags and commit history\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-16 \u003ca href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e让 Mermaid 图表自动跟随系统深浅色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-05 \u003ca href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e黑盒出关・三把钥匙定江湖\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Playground\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom element for viewing and interacting with JSON data.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS @layer:构建更高效、更可维护的样式层级\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-11 \u003ca href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue.js History 模式下的 NGINX 配置与 API 代理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe webfont package for the MMT typeface.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAPI proxies powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-20 \u003ca href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS Flexbox 布局指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGenerate a list of all hugo-fixit theme components.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-08 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with asciinema-embed shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2024\"\u003e\u003cspan\u003e2024\u003c/span\u003e\n \u003ca href=\"#2024\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 38 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-06 \u003ca href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e震惊!CSS 竟然能获取视口尺寸?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-02 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌐 A component for site automatic translation.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-22 \u003ca href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAmazon 如何让服务器享受着持续集群安全?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-05 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐟 A canvas implemented animation effect of small fish swimming.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-06 \u003ca href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自动获取 GitHub README 内容添加到 Hugo 文章\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-13 \u003ca href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for ATOM feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for JSON feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMobile devtools component powered by vConsole and eruda.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案:CSS 四舍五入数值单位\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-21 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-17 \u003ca href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 统计代码量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案之异形元素怎么设置阴影?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔖 Embed bookmark of FixIt Docs.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 实现时间轴、背景图 loading 和渐变边框\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-07 \u003ca href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 Amazon S3 的无限存储潜力\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e标准滚动条控制规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with caniuse shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-13 \u003ca href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-09 \u003ca href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e架构之基:从根儿上了解设计原则\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-06 \u003ca href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e怎么生成暗黑模式和明亮模式的 SVG 图片?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-20 \u003ca href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e坐高铁去柳州吃螺狮粉\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用 Vercel 反代 Gravatar 实现镜像加速\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGravatar Proxy powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-04 \u003ca href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e临时决定再写一个小工具 - 网站预览图生成器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-02 \u003ca href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用五天时间给自己制作一个封面图生成工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠 Create awesome cover images for your blog posts quickly.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写文档时英文标题什么时候要大写?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-29 \u003ca href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e实现类似于 Element UI 表格的溢出文本提示功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-21 \u003ca href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-09 \u003ca href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2023 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-21 \u003ca href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e强大的脑图可视化工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e记一次 Debug 第三方包的过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e为什么很多教程中都有 foo bar?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit submodule: already exists in the index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-10 \u003ca href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给 el-card 添加折叠功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2023\"\u003e\u003cspan\u003e2023\u003c/span\u003e\n \u003ca href=\"#2023\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 35 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e尝试在 Python 中使用 Amazon Titan 文本模型\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-28 \u003ca href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 Node.js 开发一个轻量脚手架\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-20 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠️ A node-based tooling for FixIt site initialization.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-18 \u003ca href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 AWS 云上一站式解决方案免费使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-22 \u003ca href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSSH 提交签名验证\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何给 npm 包打补丁?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘系列总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件开发\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 模板使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件配置文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 布局模板文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 功能需求分析\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-11 \u003ca href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给你的 Markdown 挑挑刺\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e认知复杂度(Cognitive Complexity)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写作技巧:如何搭建文章的框架结构?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-25 \u003ca href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-17 \u003ca href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e封装 Vue FullScreenToggler 组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 实现全屏和退出全屏\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文翻译的常见问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Vue 项目中更优雅地使用 icon\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVSCode 添加用户代码片段,自定义用户代码片段\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-02 \u003ca href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 如何实现网格背景效果?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-26 \u003ca href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e将 Hugo 博客部署到亚马逊云服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 and element-ui related demos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-20 \u003ca href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用魔法打败魔法 - ElBacktop Fix\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Node.js 自动创建 Vue 的路由\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-12 \u003ca href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解决 SourceTree 提交时候 husky 命令失败问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 + tailwindcss 初始化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-14 \u003ca href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新手向:Vue 2.0 的建议学习顺序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-12 \u003ca href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-05 \u003ca href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器渲染原理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-04 \u003ca href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文技术文档的写作规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器原理 - 事件循环\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2022\"\u003e\u003cspan\u003e2022\u003c/span\u003e\n \u003ca href=\"#2022\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 20 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-17 \u003ca href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2022 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-15 \u003ca href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-30 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eUsing frequently-used Hugo commands by shell.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBeego 安装及配置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-13 \u003ca href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e语义版本控制(SemVer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommit Message Spec\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eelectron 踩坑总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端页面内容加密总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js + GitHub Actions 自动刷新 CDN\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不同系统的换行符的差异\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自定义 ohmyzsh 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-30 \u003ca href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 文件权限\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 上的开发配置总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e📄 The open-source repo for fixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-05 \u003ca href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 配置 ADB\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e重新认识 JavaScript\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-30 \u003ca href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于 CSS 和 Scss 变量运算那些事\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2021\"\u003e\u003cspan\u003e2021\u003c/span\u003e\n \u003ca href=\"#2021\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 19 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGetting Things Done for ios App Reminders and Github issues\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-16 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 添加知乎卡片式链接 Shortcodes\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo I18n 添加中文繁體翻譯\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 友情連結模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 本地管理 Shell 腳本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-03 \u003ca href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e个人博客从 Hexo 迁移至 Hugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Note\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-22 \u003ca href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eless\u0026amp;sass\u0026amp;scss\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLightbox\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2020\u0026amp;2021 總結\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-24 \u003ca href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCreate watermark for webpage and automatic adjust when window resize.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-23 \u003ca href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Watermark\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Review 怎麼做?新手工程師如何提升「程式碼品質」\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-02 \u003ca href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-01 \u003ca href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e你为什么吸烟?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2020\"\u003e\u003cspan\u003e2020\u003c/span\u003e\n \u003ca href=\"#2020\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 8 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 功能介绍与安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 开发记录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 Laravel 7 开发,支持 Markdown 语法的博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Python 刷 csdn 访问量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCron 表达式的基本语法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2019 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSQL 总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2019\"\u003e\u003cspan\u003e2019\u003c/span\u003e\n \u003ca href=\"#2019\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 71 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云为静态页面添加“动态”相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-23 \u003ca href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-14 \u003ca href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRESTful\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 同时主动推送链接到百度,神马等站长平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 按行读取文件信息\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目之,湘也。— 沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-19 \u003ca href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e设置网站运行时间\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003escript 的三种加载方式 (async, defer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime Text3 快捷键大全\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNetBeans IDE 开发设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWeb 开发规则,代码规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单评论模块\u0026ndash;php 表单练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 函数学习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-12 \u003ca href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWAMPServer 自定义网站根目录等设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅱ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅰ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-26 \u003ca href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e判断三角形的黑盒测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHustOJ 基础搭建教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最大公约数(二进制算法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-16 \u003ca href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装 ImgURL 图床\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-11 \u003ca href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实战:模拟 post 请求定时获取后台数据并打包发送至微信\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-10 \u003ca href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 设置程序每天 8 点定时执行任务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-08 \u003ca href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 实现一个单线程的资源下载器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePython 如何操作 Json?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 发送 post 请求进行简单的接口测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-06 \u003ca href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 通过 URL 和 URLConnection 访问网页资源\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-02 \u003ca href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文件加密解密(字节流)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模拟借书系统(java 异常练习)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-27 \u003ca href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-24 \u003ca href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e第一次面试经历\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-22 \u003ca href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 爬取网站图片(图片链接相似)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 玩微信:初探 wxpy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基本 python 实现的爬取微信好友头像,并拼接成大图\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-19 \u003ca href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用记事本编写第一个 java 程序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-18 \u003ca href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 正则表达式练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-14 \u003ca href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 常用类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-12 \u003ca href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU 1009 FatMouse\u0026rsquo; Trade(贪心)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-03 \u003ca href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e本地搭建网站服务器并穿透内网\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端面试题 - HTML+CSS\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e百钱百鸡(枚举法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e大数乘法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evps 配置 ssl 及 https 重定向\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next @modified LRH\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJava 父类子类的对象初始化过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eubuntu + windows 双系统默认启动项设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-19 \u003ca href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宅音乐播放器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eweb 汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-16 \u003ca href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 泛型 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeclipse 的基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e匿名类在可视化界面中的应用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模仿知乎卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewin10,ubuntu 双系统时间不一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-08 \u003ca href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eQQ 强制生成卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e磁盘存储器的管理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 验证码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-01 \u003ca href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e还乡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-31 \u003ca href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElegant and powerful theme for Hexo.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-24 \u003ca href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 继承 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-22 \u003ca href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-18 \u003ca href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eArrays 类及基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在搜索、文章底部、侧栏添加最近文章模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 猜数字小游戏(Math 类)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e面向对象基础知识总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 水仙花数(循环)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 录入数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 标识符\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;主谓一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2018 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2018\"\u003e\u003cspan\u003e2018\u003c/span\u003e\n \u003ca href=\"#2018\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 91 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;形式倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;完全倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-08 \u003ca href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;部分倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 插件及 next 内置样式集\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-17 \u003ca href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e通过 bat 批处理文件自动提交博客代码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-12 \u003ca href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長 app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-11 \u003ca href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaddy-两步搭建超简单云盘\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-09 \u003ca href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003enext 添加支持 pdf\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejs 判断用户设备类型及平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客源码备份\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-30 \u003ca href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 常用指令汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网站备案之旅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eshell 脚本初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e云服务器 CentOS 系统搭建 web 服务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-28 \u003ca href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewindows 上搭建 web 服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Git 上传代码到 github, coding 等仓库\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-23 \u003ca href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003etermux 基本使用教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-17 \u003ca href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ettf 字体压缩\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-15 \u003ca href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 编程初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-09 \u003ca href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e流水线\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e计算机数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页夜间效果\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页离开时改变标题“崩溃欺骗”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-22 \u003ca href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux/centos 下的安装 git\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-21 \u003ca href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e每一个优秀的人,都有一段沉默的时光\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVim 速查表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo next 主题添加字数统计(2018)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-21 \u003ca href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo d 出错\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-20 \u003ca href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 个性化 - next 主题动态显示 subtitle\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e“高逼格”C 语言画心\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-14 \u003ca href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit index.lock\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-11 \u003ca href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Android 上搭建 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e石子阵列(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and Stairs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and WiFi(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe equation-SGU106(扩展欧几里得)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeading and Trailing-lightoj1282(快速幂 + 对数运算)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCodeforces Round 502(Div.1 + Div.2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e欧拉函数\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-06 \u003ca href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客自定义 console log\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最短路入门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客暑假多校第五场\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e食物链-poj1182(带权并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e小希的迷宫-HDU-1272(并查集 or 树性质)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHow Many Answers Are Wrong-hdu3038(带权并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Finding Criminals-Codeforces680B\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Five Cards-Codeforces680A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehow many tables-HDU-1213(并查集求连通域数目)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe-suspects-POJ-1611(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewireless network-POJ-2236(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePiles-with-stones\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e畅通工程-HDU-1232(并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-27 \u003ca href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客练习赛 23\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-26 \u003ca href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线离线算法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-24 \u003ca href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU-1495-非常可乐(bfs 模拟倒水 or 数论)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-2612-Find a way(双 bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePOJ-3278-Catch That Cow(bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-2251-Dungeon Master(三维 bfs 最短路)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1321 棋盘问题(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1426-Find The Multiple(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAdjacent Replacements\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-3984-迷宫问题 (bfs 路径)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 20-染色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e杨辉三角\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-1241-Oil Deposits (dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBFS 求最短路\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEducational Codeforces Round 47 (Rated for Div. 2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e深搜广搜\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTaoTao 要吃鸡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-18 \u003ca href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 18-序列\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-16 \u003ca href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单背包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-15 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛参赛队员代表发言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eF.sorting\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eK.2018\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eB.Higher h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA.Easy h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esort 排序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e位运算\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eC++ with STL\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-07 \u003ca href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e各种 Links 汇总与分享\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e戏子春秋\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-01 \u003ca href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo+github 搭建个人博客及美化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 添加图片,音乐,链接,视频\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e猴子与哪吒\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博客构建档(HTML \u0026amp; Markdown)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHello World\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e"}]} ================================================ FILE: categories/github/index.html ================================================ GitHub - 分类 | 菠菜眾長
================================================ FILE: categories/github/index.xml ================================================ GitHub - 分类 | 菠菜眾長https://lruihao.cn/categories/github/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Thu, 07 May 2026 02:00:50 +0000一个轻量化 Tooltip 组件。https://lruihao.cn/projects/lruihao/cell-tooltip/Fri, 06 Mar 2026 06:58:23 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cell-tooltip/GitHub<h2 class="heading-element" id="cell-tooltip" data-decreased><span>cell-tooltip</span> <a href="#cell-tooltip" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap <code>tooltip.js</code>,保留常用能力并尽量减少体积与依赖。</p> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持触发方式:<code>hover</code> / <code>focus</code> / <code>click</code> / <code>manual</code></li> <li>支持位置:<code>top</code> / <code>bottom</code> / <code>left</code> / <code>right</code> / <code>auto</code></li> <li>支持延迟配置(<code>show</code> / <code>hide</code>)</li> <li>支持 <code>data-ct-*</code> 属性初始化</li> <li>支持实例方法:<code>show</code> / <code>hide</code> / <code>toggle</code> / <code>update</code> / <code>dispose</code></li> <li>内置箭头与基础样式,无第三方依赖</li> </ul> <h2 class="heading-element" id="本地运行"><span>本地运行</span> <a href="#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>pnpm install pnpm dev</code></pre><p>构建库产物:</p>A Christmas Easter Egg by JavaScript.https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/Wed, 24 Dec 2025 03:31:47 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">🎄 Santa Hat | FixIt</h1> <div align="center" class="ignore"> <p>一个 JavaScript 实现的圣诞节小彩蛋。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt="santa-hat"></p> <ul> <li>🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰</li> <li>🎯 自动检测当前日期,无需手动开关</li> <li>💫 轻量级实现,不影响网站性能</li> </ul> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>FixIt v0.4.0 或更高版本。</li> </ul> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方式与 <a href="https://fixit.lruihao.cn/zh-cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。</p>Command line tool for generating a changelog from git tags and commit historyhttps://lruihao.cn/projects/lruihao/auto-changelog-plus/Sat, 30 Aug 2025 15:40:19 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/auto-changelog-plus/GitHub<h2 class="heading-element" id="auto-changelog-plus" data-decreased><span>auto-changelog-plus</span> <a href="#auto-changelog-plus" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>从 git 提交历史自动生成 changelog 的命令行工具。</p> <blockquote> <p>基于 <a href="https://github.com/CookPete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto-changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 <a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="external nofollow noopener noreferrer">约定式提交<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 规范。</p> </blockquote> <p><a href="https://www.npmjs.com/package/auto-changelog-plus" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt="npm version"></a></p> <h2 class="heading-element" id="-安装"><span>📦 安装</span> <a href="#-%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>npm install -g auto-changelog-plus</code></pre><h2 class="heading-element" id="-用法"><span>🚀 用法</span> <a href="#-%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 git 仓库根目录运行 <code>auto-changelog-plus</code> 或者 <code>acp</code>。工具会在后台运行 <code>git log</code> 来解析提交历史。</p>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.https://lruihao.cn/projects/lruihao/caniuse-embed-element/Tue, 22 Jul 2025 03:40:45 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/caniuse-embed-element/GitHub<h2 class="heading-element" id="caniuse-embed-元素" data-decreased><span><code>&lt;caniuse-embed&gt;</code> 元素</span> <a href="#caniuse-embed-%e5%85%83%e7%b4%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/@cell-x/caniuse-embed-element" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt="npm version"></a> <a href="https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt="License"></a></p> <p><a href="https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> | 简体中文</p> <p>一个轻量级、可定制的 Web 组件,用于嵌入 <a href="https://caniuse.com" target="_blank" rel="external nofollow noopener noreferrer">caniuse.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的特定 Web 功能的浏览器兼容性数据。使用 <a href="https://lit.dev/" target="_blank" rel="external nofollow noopener noreferrer">Lit<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 构建,设计为可无缝集成到任何 Web 项目中。</p> <p><a href="https://caniuse-el.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">🌟 <strong>在线演示</strong><i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>A custom element for viewing and interacting with JSON data.https://lruihao.cn/projects/lruihao/json-viewer-element/Sat, 19 Jul 2025 07:05:07 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/json-viewer-element/GitHub<h2 class="heading-element" id="json-viewer-element" data-decreased><span>&lt;json-viewer&gt; Element</span> <a href="#json-viewer-element" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>简体中文 | <a href="https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件</p> </blockquote> <h2 class="heading-element" id="功能特性"><span>功能特性</span> <a href="#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>🌟 <strong>Web 组件</strong>:原生,无框架依赖</li> <li>🎨 <strong>主题</strong>:支持明暗模式</li> <li>📦 <strong>盒装</strong>:可选边框与内边距</li> <li>📋 <strong>可复制</strong>:一键复制 JSON</li> <li>🔑 <strong>排序</strong>:支持键排序</li> <li>🔍 <strong>展开深度</strong>:可控初始展开层级</li> <li>🧩 <strong>自定义复制按钮</strong>:slot 插槽支持</li> <li>🧬 <strong>类型高亮</strong>:多种类型高亮</li> <li>🛠️ <strong>自定义事件</strong>:支持 copy/toggle 事件监听</li> </ul> <h2 class="heading-element" id="使用方法"><span>使用方法</span> <a href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="安装"><span>安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>npm install json-viewer-element</code></pre><h3 class="heading-element" id="引入"><span>引入</span> <a href="#%e5%bc%95%e5%85%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="作为模块"><span>作为模块</span> <a href="#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>import &#39;json-viewer-element&#39;</code></pre><h4 class="heading-element" id="umd-cdn"><span>UMD (CDN)</span> <a href="#umd-cdn" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>&lt;script src=&#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&#34;&gt;&lt;/script&gt;</code></pre><h3 class="heading-element" id="基本用法"><span>基本用法</span> <a href="#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>手动绑定 value:</p>The webfont package for the MMT typeface.https://lruihao.cn/projects/lruihao/mmt-webfont/Thu, 10 Apr 2025 08:35:34 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/mmt-webfont/GitHub<h2 class="heading-element" id="mmt-webfont-package" data-decreased><span>MMT webfont package</span> <a href="#mmt-webfont-package" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The webfont package for the <a href="https://github.com/Lruihao/mmt" target="_blank" rel="external nofollow noopener noreferrer">MMT<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> typeface.</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.github.io/mmt-webfont/" target="_blank" rel="external nofollow noopener noreferrer">MMT typeface online demo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>API proxies powered by Vercel.https://lruihao.cn/projects/lruihao/vercel-proxy/Wed, 09 Apr 2025 02:13:22 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vercel-proxy/GitHub<h2 class="heading-element" id="vercel-api-proxy" data-decreased><span><a href="https://github.com/Lruihao/vercel-proxy" target="_blank" rel="external nofollow noopener noreferrer">Vercel API Proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#vercel-api-proxy" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>API proxies powered by Vercel.</p> </blockquote> <p>[toc]</p> <h2 class="heading-element" id="hosts"><span>Hosts</span> <a href="#hosts" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://api.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">https://api.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://cell-api.vercel.app" target="_blank" rel="external nofollow noopener noreferrer">https://cell-api.vercel.app<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="api-list"><span>API List</span> <a href="#api-list" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Go to the <a href="https://cell-api.vercel.app" target="_blank" rel="external nofollow noopener noreferrer">Vercel API Proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> and select the API you want to use.</p>Generate a list of all hugo-fixit theme components.https://lruihao.cn/projects/hugo-fixit/action-component-list/Tue, 14 Jan 2025 09:10:09 +0000https://lruihao.cn/projects/hugo-fixit/action-component-list/GitHub<h2 class="heading-element" id="action-component-list--fixit" data-decreased><span>action-component-list | FixIt</span> <a href="#action-component-list--fixit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://github.com/super-linter/super-linter" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt="GitHub Super-Linter"></a> <img loading="lazy" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt="CI"> <a href="https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt="Check dist/"></a> <a href="https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt="CodeQL"></a></p> <p>This is a GitHub Action to generate a list of all hugo-fixit theme components.</p> <h2 class="heading-element" id="how-to-use"><span>How to use</span> <a href="#how-to-use" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>You can reference different stable versions of this action. For more information, see <a href="https://github.com/actions/toolkit/blob/master/docs/action-versioning.md" target="_blank" rel="external nofollow noopener noreferrer">Versioning<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> in the GitHub Actions toolkit.</p>A Hugo theme component with asciinema-embed shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/Wed, 08 Jan 2025 09:20:48 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">shortcode-asciinema | FixIt</h1> <div align="center" class="ignore"> <p>一个带有 <code>asciinema-embed</code> shortcode 的 Hugo 主题组件。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://fixit.lruihao.cn/documentation/installation/#cli" target="_blank" rel="external nofollow noopener noreferrer">安装主题#CLI | FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>适用于所有 Hugo 主题。</p>🌐 A component for site automatic translation.https://lruihao.cn/projects/hugo-fixit/cmpt-translate/Mon, 02 Dec 2024 07:29:57 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-translate/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">Auto Translate | FixIt</h1> <p><img loading="lazy" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt="auto-translate" height="293" width="797"></p> <div align="center" class="ignore"> <p>一个基于 <a href="https://github.com/xnx3/translate">translate.js</a> 实现网站自动翻译的组件。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。</p> <ul> <li>多语言 Hugo 站点:<a href="https://fixit.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">fixit.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>单语言 Hugo 站点:<a href="https://lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <p>在网站右上角切换配置的翻译语言,或者在 URL 中添加 <code>?lang=</code> 参数指定任意<a href="https://api.translate.zvo.cn/language.json" target="_blank" rel="external nofollow noopener noreferrer">支持的翻译语言<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。例如:<code>?lang=korean</code>。</p>🐟 A canvas implemented animation effect of small fish swimming.https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/Tue, 05 Nov 2024 08:23:29 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/GitHub<h2 class="heading-element" id="fly-fish" data-decreased><span>Fly Fish</span> <a href="#fly-fish" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 简体中文说明 | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English README<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>一个 canvas 实现的小鱼游动动画效果。</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">https://lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。https://lruihao.cn/projects/lruihao/html-demo/Fri, 13 Sep 2024 02:36:29 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/html-demo/GitHub<h2 class="heading-element" id="html-demos" data-decreased><span>HTML demos</span> <a href="#html-demos" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</p> <h2 class="heading-element" id="文件预览"><span>文件预览</span> <a href="#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>直接浏览器打开 <code>src</code> 目录下的 HTML 文件。</p>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)https://lruihao.cn/projects/hugo-fixit/fixit-releaser/Wed, 04 Sep 2024 18:10:59 +0000https://lruihao.cn/projects/hugo-fixit/fixit-releaser/GitHub<h2 class="heading-element" id="fixit-releaser" data-decreased><span>FixIt Releaser</span> <a href="#fixit-releaser" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/@hugo-fixit/fixit-releaser" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt="NPM version"></a></p> <p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>版本控制、变更日志和发布工具。</p> <div class="alert alert-caution"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z"/></svg>小心</p><p>该工具已停止维护!建议使用 <a href="https://github.com/Lruihao/auto-changelog-plus" target="_blank" rel="external nofollow noopener noreferrer">auto changelog plus<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 或者 <a href="https://github.com/cookpete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 生成日志。</p>Hugo theme component for ATOM feed custom Output Format.https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/Thu, 22 Aug 2024 03:29:22 +0000https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/GitHub<h2 class="heading-element" id="hugo-atom-feed" data-decreased><span>Hugo ATOM Feed</span> <a href="#hugo-atom-feed" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>Hugo 主题组件,用于自定义 ATOM feed 输出格式。</p> </blockquote> <p>该组件为您的站点启用 ATOM feeds。</p> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与<a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:</p>Hugo theme component for JSON feed custom Output Format.https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/Thu, 22 Aug 2024 03:28:23 +0000https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/GitHub<h2 class="heading-element" id="hugo-json-feed" data-decreased><span>Hugo JSON Feed</span> <a href="#hugo-json-feed" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>Hugo 主题组件,用于自定义 JSON feed 输出格式。</p> </blockquote> <p>该组件为您的站点启用 JSON feeds。</p> <h2 class="heading-element" id="演示"><span>演示</span> <a href="#%e6%bc%94%e7%a4%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://lruihao.cn/feed.json" target="_blank" rel="external nofollow noopener noreferrer">主页 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/posts/feed.json" target="_blank" rel="external nofollow noopener noreferrer">文章 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/collections/project/feed.json" target="_blank" rel="external nofollow noopener noreferrer">列表 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与<a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:</p>Mobile devtools component powered by vConsole and eruda.https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/Wed, 07 Aug 2024 05:49:13 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/GitHub<h2 class="heading-element" id="cmpt-mdevtools" data-decreased><span>cmpt-mdevtools</span> <a href="#cmpt-mdevtools" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Mobile devtools component powered by vConsole and eruda.</p> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> v0.4.0 or later.</li> <li><a href="https://github.com/liriliri/eruda" target="_blank" rel="external nofollow noopener noreferrer">eruda<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://github.com/Tencent/vConsole" target="_blank" rel="external nofollow noopener noreferrer">vConsole<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="install-component"><span>Install Component</span> <a href="#install-component" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The installation method is the same as <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">installing a theme<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p>A Hugo theme component with reward-log or sponsor-log shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/Sun, 21 Jul 2024 14:02:29 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/GitHub<h2 class="heading-element" id="shortcode-rewards" data-decreased><span>shortcode-rewards</span> <a href="#shortcode-rewards" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>A Hugo theme component with <code>reward-log</code> or <code>sponsor-log</code> shortcode.</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://fixit.lruihao.cn/contributing/overview/#sponsor" target="_blank" rel="external nofollow noopener noreferrer">FixIt Docs<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/about/#sponsor" target="_blank" rel="external nofollow noopener noreferrer">Lruihao&rsquo;s Blog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>Developed based on the FixIt Timeline plugin.</p>🔖 Embed bookmark of FixIt Docs.https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/Sun, 14 Jul 2024 07:39:56 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/GitHub<h2 class="heading-element" id="fixit-docs-bookmark" data-decreased><span>fixit-docs-bookmark</span> <a href="#fixit-docs-bookmark" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>🔖 Embed bookmark of FixIt Docs.</p> <p><img loading="lazy" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt="preview" height="668" width="1600"></p> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>FixIt v0.4.0 or later.</li> </ul> <h2 class="heading-element" id="install-component"><span>Install Component</span> <a href="#install-component" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The installation method is the same as <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">installing a theme<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p>A Hugo theme component with caniuse shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/Fri, 28 Jun 2024 06:56:32 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/GitHub<h2 class="heading-element" id="hugo-shortcode-for-caniuse" data-decreased><span>Hugo shortcode for CanIUse</span> <a href="#hugo-shortcode-for-caniuse" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 Hugo 中使用 <code>shortcode</code> 方式内嵌 <a href="https://caniuse.com/" target="_blank" rel="external nofollow noopener noreferrer">CanIUse<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 到你的文章中。</p> <p><img loading="lazy" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt="caniuse example"></p> <p><img loading="lazy" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt="baseline example"></p> <h2 class="heading-element" id="依赖"><span>依赖</span> <a href="#%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>FixIt 主题 <code>v0.4.0</code> 及以上版本。</p>Gravatar Proxy powered by Vercel.https://lruihao.cn/projects/lruihao/vercel-gravatar/Wed, 17 Apr 2024 01:37:06 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vercel-gravatar/GitHub<h2 class="heading-element" id="vercel-gravatar" data-decreased><span>Vercel Gravatar</span> <a href="#vercel-gravatar" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="alert alert-note"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z"/></svg>注意</p><p>Superseded by <a href="https://github.com/Lruihao/vercel-proxy" target="_blank" rel="external nofollow noopener noreferrer">Lruihao/vercel-proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p></div><p>Gravatar Proxy powered by Vercel.</p> <p>Go to test Gravatar:</p>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.https://lruihao.cn/projects/hugo-fixit/component-projects/Tue, 09 Apr 2024 21:38:42 +0000https://lruihao.cn/projects/hugo-fixit/component-projects/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">GitHub Projects Embed | FixIt</h1> <p><img loading="lazy" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt="apple-devices-preview" height="1508" width="2880"></p> <div align="center" class="ignore"> <p>在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch">deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese">しろうと</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://fixit.lruihao.cn/zh-cn/ecosystem/" target="_blank" rel="external nofollow noopener noreferrer">生态系统 | FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/projects/" target="_blank" rel="external nofollow noopener noreferrer">Lruihao 的开源项目<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持 GitHub 项目卡片展示(<code>layout</code> 或者 <code>shortcodes</code>)</li> <li>支持根据 README 自动生成博客文章(<code>content adapter</code>)</li> </ul> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://github.com/hugo-fixit" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> v0.4.0 或更高版本</li> </ul> <h2 class="heading-element" id="安装"><span>安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与 <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 相同。有几种安装方法,请选择一种。</p>🛠 Create awesome cover images for your blog posts quickly.https://lruihao.cn/projects/lruihao/coverview/Thu, 28 Mar 2024 06:14:16 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/coverview/GitHub<h2 class="heading-element" id="coverview" data-decreased><span>CoverView</span> <a href="#coverview" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 简体中文说明 | <a href="README.en.md">English README</a></p> <p><a href="https://github.com/Lruihao/CoverView" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/open-source_18217824114769177106.svg' alt="用爱发电"></a></p> <blockquote> <p>该项目基于原始的 <a href="https://github.com/rutikwankhade/CoverView" target="_blank" rel="external nofollow noopener noreferrer">CoverView<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> </blockquote> <p>现在为你的博客创建封面图片变得非常简单。</p> <p><img loading="lazy" src='https://lruihao.cn/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt="cover_169570" height="840" width="1600"></p> <h2 class="heading-element" id="-变更通知"><span>💥 变更通知</span> <a href="#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:</p>强大的脑图可视化工具https://lruihao.cn/projects/lruihao/kityminder-core/Sun, 21 Jan 2024 06:24:42 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/kityminder-core/GitHub<h2 class="heading-element" id="kityminder-core" data-decreased><span>KityMinder Core</span> <a href="#kityminder-core" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="alert alert-note"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z"/></svg>注意</p><p>由于原项目 <a href="https://github.com/fex-team/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">KityMinder Core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 <a href="https://www.npmjs.com/package/@cell-x/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">@cell-x/kityminder-core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>🛠️ A node-based tooling for FixIt site initialization.https://lruihao.cn/projects/hugo-fixit/fixit-cli/Mon, 20 Nov 2023 06:40:09 +0000https://lruihao.cn/projects/hugo-fixit/fixit-cli/GitHub<h2 class="heading-element" id="fixit-cli" data-decreased><span>FixIt CLI</span> <a href="#fixit-cli" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/fixit-cli" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt="NPM version"></a></p> <p>👉 中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>🛠️ 一个基于 Node.js 开发的用于 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 站点初始化的脚手架工具。</p> <p><a href="https://asciinema.org/a/697494" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt="asciicast" height="646" width="940"></a></p> <h2 class="heading-element" id="系统依赖"><span>系统依赖</span> <a href="#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://nodejs.org/" target="_blank" rel="external nofollow noopener noreferrer">Node.js<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> (&gt;= 18)</li> <li><a href="https://git-scm.com/" target="_blank" rel="external nofollow noopener noreferrer">Git<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer">Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 扩展版</li> </ul> <p>如果你使用 <a href="https://gohugo.io/hugo-modules/" target="_blank" rel="external nofollow noopener noreferrer">Hugo 模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能加载主题,你还需要安装 <a href="https://go.dev/dl/" target="_blank" rel="external nofollow noopener noreferrer">Go<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>Vue2 and element-ui related demoshttps://lruihao.cn/projects/lruihao/vue-el-demo/Tue, 08 Aug 2023 01:41:08 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vue-el-demo/GitHub<h2 class="heading-element" id="vue-el-demo" data-decreased><span>vue-el-demo</span> <a href="#vue-el-demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Vue and element-ui related <a href="https://lruihao.github.io/vue-el-demo/" target="_blank" rel="external nofollow noopener noreferrer">demos<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p> <h2 class="heading-element" id="project-setup"><span>Project setup</span> <a href="#project-setup" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn build</code></pre><p>This project is built with <a href="https://rsbuild.dev/" target="_blank" rel="external nofollow noopener noreferrer">Rsbuild<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, a fast build tool powered by Rspack.</p>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.https://lruihao.cn/projects/lruihao/el-table-sticky/Wed, 14 Jun 2023 14:03:49 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/el-table-sticky/GitHub<h2 class="heading-element" id="el-table-sticky" data-decreased><span>el-table-sticky</span> <a href="#el-table-sticky" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.github.io/el-table-sticky/" target="_blank" rel="external nofollow noopener noreferrer">在线示例<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。</p> </blockquote> <h2 class="heading-element" id="背景"><span>背景</span> <a href="#%e8%83%8c%e6%99%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Element UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。</p>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/Tue, 28 Feb 2023 09:12:29 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/GitHub<h2 class="heading-element" id="shortcode-mmt-netease" data-decreased><span>shortcode-mmt-netease</span> <a href="#shortcode-mmt-netease" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt="preview" height="934" width="1754"></p> <p>一个含有网易云随机评论 shortcode 的 Hugo 主题组件。</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.cn/guestbook/" target="_blank" rel="external nofollow noopener noreferrer">https://lruihao.cn/guestbook/<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/Mon, 10 Oct 2022 02:50:53 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/GitHub<h2 class="heading-element" id="vue-minder-editor" data-decreased><span>Vue Minder Editor</span> <a href="#vue-minder-editor" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>基于 <a href="https://github.com/fex-team/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">kityminder-core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 实现的 Vue2 脑图编辑器组件。</p> <h2 class="heading-element" id="install"><span>Install</span> <a href="#install" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>npm install vue-minder-editor-extended --save</code></pre><h2 class="heading-element" id="usage"><span>Usage</span> <a href="#usage" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>注册组件:</p>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/Fri, 30 Sep 2022 09:28:41 +0000https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/GitHub<h2 class="heading-element" id="hugo-fixit-博客模板go" data-decreased><span>Hugo FixIt 博客模板(Go)</span> <a href="#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 中文 | <a href="README.en.md">English</a></p> <p>这是 Hugo 主题 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的快速启动模板。它使用 <a href="https://gohugo.io/hugo-modules/" target="_blank" rel="external nofollow noopener noreferrer">Hugo 模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能加载主题。如果你更熟悉 Git,可以 <a href="https://github.com/hugo-fixit/hugo-fixit-starter1" target="_blank" rel="external nofollow noopener noreferrer">查看这个模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>它提供了基本的主题结构和 <a href="https://gohugo.io/configuration/introduction/#configuration-directory" target="_blank" rel="external nofollow noopener noreferrer">配置目录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。</p> <h2 class="heading-element" id="目录结构"><span>目录结构</span> <a href="#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum</code></pre><h2 class="heading-element" id="快速入门"><span>快速入门</span> <a href="#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>完整的快速入门,请参阅此 <a href="https://fixit.lruihao.cn/documentation/getting-started/" target="_blank" rel="external nofollow noopener noreferrer">页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/Tue, 27 Sep 2022 15:23:38 +0000https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/GitHub<h2 class="heading-element" id="hugo-fixit-博客模板git" data-decreased><span>Hugo FixIt 博客模板(Git)</span> <a href="#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 中文 | <a href="README.en.md">English</a></p> <p>这是 Hugo 主题 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的快速启动模板。它使用 <a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules" target="_blank" rel="external nofollow noopener noreferrer">Git 子模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能来加载主题。如果你更熟悉 Go,可以 <a href="https://github.com/hugo-fixit/hugo-fixit-starter" target="_blank" rel="external nofollow noopener noreferrer">查看这个模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>它提供了基本的主题结构和 <a href="https://gohugo.io/configuration/introduction/#configuration-directory" target="_blank" rel="external nofollow noopener noreferrer">配置目录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。</p> <h2 class="heading-element" id="目录结构"><span>目录结构</span> <a href="#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules</code></pre><h2 class="heading-element" id="快速入门"><span>快速入门</span> <a href="#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>完整的快速入门请参阅此 <a href="https://fixit.lruihao.cn/documentation/getting-started/" target="_blank" rel="external nofollow noopener noreferrer">页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>Using frequently-used Hugo commands by shell.https://lruihao.cn/projects/hugo-fixit/hugo-shell/Sun, 04 Sep 2022 04:18:42 +0000https://lruihao.cn/projects/hugo-fixit/hugo-shell/GitHub<h2 class="heading-element" id="hugo-shell" data-decreased><span>Hugo Shell</span> <a href="#hugo-shell" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Using frequently-used Hugo commands by shell.</p> <h2 class="heading-element" id="download"><span>Download</span> <a href="#download" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Add a submodule for your Hugo blog project.</p>📄 The open-source repo for fixit.lruihao.cnhttps://lruihao.cn/projects/hugo-fixit/docs/Sat, 23 Jul 2022 12:17:06 +0000https://lruihao.cn/projects/hugo-fixit/docs/GitHub<h2 class="heading-element" id="fixit-主题文档" data-decreased><span>FixIt 主题文档</span> <a href="#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://fixit.lruihao.cn/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt="Production environment"></a> <a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt="Hugo"></a></p> <p>👉 中文 | <a href="README.en.md">English</a></p> <p><a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题文档主要分为:<a href="https://fixit.lruihao.cn/zh-cn/documentation/" target="_blank" rel="external nofollow noopener noreferrer">文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://fixit.lruihao.cn/zh-cn/guides/" target="_blank" rel="external nofollow noopener noreferrer">教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 两大板块,欢迎大家发起 PR 完善主题文档。</p> <h2 class="heading-element" id="系统依赖"><span>系统依赖</span> <a href="#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://nodejs.org/" target="_blank" rel="external nofollow noopener noreferrer">Node.js<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>: &gt;= 20.0.0</li> <li><a href="https://go.dev/dl/" target="_blank" rel="external nofollow noopener noreferrer">Go<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://gohugo.io/installation/" target="_blank" rel="external nofollow noopener noreferrer">Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>: &gt;= 0.156.0 (extended version)</li> </ul> <h2 class="heading-element" id="贡献文档"><span>贡献文档</span> <a href="#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>首先,点击 fork 按钮 fork 本仓库。</p>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题https://lruihao.cn/projects/hugo-fixit/fixit/Thu, 16 Dec 2021 03:35:27 +0000https://lruihao.cn/projects/hugo-fixit/fixit/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <p><img loading="lazy" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt="Hugo Theme FixIt" height="1158" width="2007"></p> <div align="center" class="ignore"> <p> FixIt 是一个简洁、优雅且高效的 <a href="https://gohugo.io/">Hugo</a> 博客主题。<br> <em><sub>如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!</sub></em> </p> <a href="https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md">English</a> | 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional">繁體中文</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese">日本語</a> </div> <p><a title="FixIt 官网" href="https://fixit.lruihao.cn/zh-cn/"><img align="right" alt="FixIt logo" width="70" height="70" src="https://avatars.githubusercontent.com/u/110414864?s=200&v=4"></a></p> <h2 class="heading-element" id="fixit" data-decreased><span>FixIt</span> <a href="#fixit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>它的原型基于 <a href="https://github.com/dillonzq/LoveIt" target="_blank" rel="external nofollow noopener noreferrer">LoveIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题,<a href="https://github.com/Fastbyte01/KeepIt" target="_blank" rel="external nofollow noopener noreferrer">KeepIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题和 <a href="https://github.com/liuzc/LeaveIt" target="_blank" rel="external nofollow noopener noreferrer">LeaveIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题。</p>Lruihao's Notehttps://lruihao.cn/projects/lruihao/hugo-blog/Wed, 08 Sep 2021 12:52:53 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/hugo-blog/GitHub<h2 class="heading-element" id="菠菜眾長" data-decreased><span>菠菜眾長</span> <a href="#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt="Hugo"></a> <a href="https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt="Hugo build and deploy"></a> <a href="https://github.com/Lruihao/hugo-blog/commits/main" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt="GitHub commit activity (main)"></a></p> <blockquote> <p>站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。</p> </blockquote> <p><img loading="lazy" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt="blog-preview" height="1508" width="2880"></p> <h2 class="heading-element" id="content"><span>Content</span> <a href="#content" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。</p>Create watermark for webpage and automatic adjust when window resize.https://lruihao.cn/projects/lruihao/watermark/Mon, 24 May 2021 13:05:40 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/watermark/GitHub<h2 class="heading-element" id="watermark" data-decreased><span>Watermark</span> <a href="#watermark" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Create watermark for webpage and automatic adjust when windows resize.</p> <h2 class="heading-element" id="documentation"><span><a href="https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md" target="_blank" rel="external nofollow noopener noreferrer">Documentation<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#documentation" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="usage"><span>Usage</span> <a href="#usage" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="browser"><span>Browser</span> <a href="#browser" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li> <p>Clone source</p>基于 leancloud-storage 实现的无后端记账本https://lruihao.cn/projects/lruihao/bill-note/Sun, 28 Feb 2021 03:44:09 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/bill-note/GitHub<h2 class="heading-element" id="preparation" data-decreased><span>Preparation</span> <a href="#preparation" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:</p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td>pay</td> <td>Number</td> <td>消费金额</td> </tr> <tr> <td>pay_description</td> <td>String</td> <td>消费描述</td> </tr> <tr> <td>pay_type</td> <td>String</td> <td>消费类型</td> </tr> <tr> <td>pay_user</td> <td>String</td> <td>付款人</td> </tr> </tbody> </table> <h2 class="heading-element" id="init" data-decreased><span>Init</span> <a href="#init" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>set for yourself.</p>基于 Laravel 7 开发,支持 Markdown 语法的博客https://lruihao.cn/projects/lruihao/cell-blog/Fri, 17 Apr 2020 08:33:39 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cell-blog/GitHub<h1 align="center" >Cell Blog</h1> <blockquote> <p>基于Laravel7开发,Markdown语法的个人独立博客。</p> </blockquote> <h2 class="heading-element" id="功能"><span>功能</span> <a href="#%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持Markdown,文章实时预览效果</li> <li>支持多种编程语言代码高亮</li> <li>编辑器图片上传</li> <li>后台上传文件管理</li> <li>文章搜索</li> <li>文章分类</li> <li>文章标签</li> <li>热门文章</li> <li>随机格言</li> <li>文章管理(发布,评论开关,排序)</li> <li>自定义导航(显示开关,排序)</li> <li>自定义页面(发布开关)</li> <li>友情链接(显示开关,排序)</li> <li><a href="https://github.com/Lruihao/cos-album" target="_blank" rel="external nofollow noopener noreferrer">COS桶相册<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>丰富的博客配置(方便扩展,支持自定义JS脚本)</li> <li>不蒜子计数</li> <li>Leancloud计数</li> <li>Valine评论插件</li> <li>文章分享插件</li> </ul> <h2 class="heading-element" id="截图"><span>截图</span> <a href="#%e6%88%aa%e5%9b%be" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt="前台首页.png" height="837" width="1383"><br> <img loading="lazy" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt="管理文章.png" height="649" width="1385"><br> <img loading="lazy" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt="编辑文章.png" height="629" width="1385"></p>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面https://lruihao.cn/projects/lruihao/cos-album/Sat, 23 Nov 2019 12:59:05 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cos-album/GitHub<h2 class="heading-element" id="cos-album" data-decreased><span>cos-album</span> <a href="#cos-album" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://github.com/Lruihao/cos-album-demo" target="_blank" rel="external nofollow noopener noreferrer">demo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="step1"><span>Step1</span> <a href="#step1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;cos-album.min.css?v=1.1.6&#34;&gt; &lt;script type=&#34;text/javascript&#34; src=&#34;cos-album.min.js?v=1.1.6&#34;&gt;&lt;/script&gt;</code></pre><h2 class="heading-element" id="step2"><span>Step2</span> <a href="#step2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>&lt;script type=&#34;text/javascript&#34;&gt; new Cosalbum({ &#39;xmlLink&#39;: &#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&#39;, &#39;prependTo&#39;: &#39;.cos-album&#39;, &#39;viewNum&#39;: 8, &#39;copyUrl&#39;: &#39;//img.lruihao.cn&#39; }); &lt;/script&gt;</code></pre><h2 class="heading-element" id="params"><span>Params</span> <a href="#params" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><table> <thead> <tr> <th style="text-align: left">param</th> <th style="text-align: left">type</th> <th style="text-align: left">default</th> <th style="text-align: left">description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">xmlLink</td> <td style="text-align: left">String</td> <td style="text-align: left"></td> <td style="text-align: left">需要解析的騰訊云COS桶XML鏈接</td> </tr> <tr> <td style="text-align: left">prependTo</td> <td style="text-align: left">String</td> <td style="text-align: left">&lsquo;body&rsquo;</td> <td style="text-align: left">可選解析相冊到某個節點</td> </tr> <tr> <td style="text-align: left">viewNum</td> <td style="text-align: left">Number</td> <td style="text-align: left">4</td> <td style="text-align: left">每個相冊顯示的照片數目</td> </tr> <tr> <td style="text-align: left">copyUrl</td> <td style="text-align: left">String</td> <td style="text-align: left">href</td> <td style="text-align: left">CDN 链接,雙擊複製 URL Since: 1.1.6</td> </tr> <tr> <td style="text-align: left">imgType</td> <td style="text-align: left">String</td> <td style="text-align: left">[&lsquo;jpg&rsquo;, &lsquo;jpeg&rsquo;, &lsquo;png&rsquo;, &lsquo;gif&rsquo;, &lsquo;svg&rsquo;]</td> <td style="text-align: left">图片類型 Since: 1.1.6</td> </tr> <tr> <td style="text-align: left">videoType</td> <td style="text-align: left">String</td> <td style="text-align: left">[&lsquo;mp4&rsquo;, &lsquo;mp3&rsquo;, &lsquo;avi&rsquo;, &lsquo;mov&rsquo;, &lsquo;qt&rsquo;]</td> <td style="text-align: left">視頻類型 Since: 1.1.6</td> </tr> </tbody> </table> <blockquote> <p><a href="https://lruihao.cn/posts/cos-album.html" target="_blank" rel="external nofollow noopener noreferrer"><strong>详细说明</strong><i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>沐目之,湘也。— 沐目体https://lruihao.cn/projects/lruihao/mmt/Thu, 26 Sep 2019 12:44:17 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/mmt/GitHub<blockquote> <p><a href="https://lruihao.cn/projects/font-mmt/" target="_blank" rel="external nofollow noopener noreferrer">关于沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>Elegant and powerful theme for Hexo.https://lruihao.cn/projects/lruihao/hexo-theme-next/Thu, 31 Jan 2019 09:57:45 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/hexo-theme-next/GitHub<h1 align=center>hexo-theme-next</h1> <blockquote> <p><strong>如无必要,不再更新!(2019.09.13)</strong><br> 今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将<strong>放弃对next的主题的自定义修改</strong>,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。<br> 我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。<br> 以下仍为当前博客使用主题,lib资源已打包github。</p> </blockquote> <blockquote> <p>基于<a href="https://github.com/theme-next/hexo-theme-next" target="_blank" rel="external nofollow noopener noreferrer">hexo-theme-next 6.0+<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =&gt; <a href="https://theme-next.org" target="_blank" rel="external nofollow noopener noreferrer">https://theme-next.org<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> <br> 记录一下折腾过程,修改内容以<a href="https://lruihao.cn/posts/hexo-theme-next.html" target="_blank" rel="external nofollow noopener noreferrer">博採眾長<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见<a href="https://lruihao.cn/categories/hexo/" target="_blank" rel="external nofollow noopener noreferrer">hexo分类<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。 <strong>主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值</strong></p> </blockquote>博客构建档(HTML & Markdown)https://lruihao.cn/projects/lruihao/lruihao.github.io/Mon, 28 May 2018 12:24:11 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/lruihao.github.io/GitHub<h2 class="heading-element" id="菠菜眾長" data-decreased><span><a href="https://lruihao.cn/" title="主页" target="_blank" rel="external nofollow noopener noreferrer">菠菜眾長<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。</p> </blockquote> <p>共计 297 篇文章 by <a href="https://github.com/Lruihao" target="_blank" rel="external nofollow noopener noreferrer">Lruihao<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p> <h2 class="heading-element" id="2026"><span>2026</span> <a href="#2026" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details open> <summary>共计 1 篇文章</summary> <ul> <li>03-06 <a href="https://lruihao.cn/projects/lruihao/cell-tooltip/" title="2026-03-06 06:58:23" target="_blank" rel="external nofollow noopener noreferrer">一个轻量化 Tooltip 组件。<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2025"><span>2025</span> <a href="#2025" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 14 篇文章</summary> <ul> <li>12-24 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/" title="2025-12-24 03:31:47" target="_blank" rel="external nofollow noopener noreferrer">A Christmas Easter Egg by JavaScript.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-30 <a href="https://lruihao.cn/projects/lruihao/auto-changelog-plus/" title="2025-08-30 15:40:19" target="_blank" rel="external nofollow noopener noreferrer">Command line tool for generating a changelog from git tags and commit history<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-16 <a href="https://lruihao.cn/posts/mermaid-theming/" title="2025-08-16 12:37:49" target="_blank" rel="external nofollow noopener noreferrer">让 Mermaid 图表自动跟随系统深浅色<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-05 <a href="https://lruihao.cn/posts/wc-01-prologue/" title="2025-08-05 11:31:52" target="_blank" rel="external nofollow noopener noreferrer">黑盒出关・三把钥匙定江湖<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-04 <a href="https://lruihao.cn/posts/code-playground/" title="2025-08-04 11:37:24" target="_blank" rel="external nofollow noopener noreferrer">Code Playground<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/projects/lruihao/caniuse-embed-element/" title="2025-07-22 03:40:45" target="_blank" rel="external nofollow noopener noreferrer">A custom web component that embeds caniuse.com browser compatibility data for a specific feature.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-19 <a href="https://lruihao.cn/projects/lruihao/json-viewer-element/" title="2025-07-19 07:05:07" target="_blank" rel="external nofollow noopener noreferrer">A custom element for viewing and interacting with JSON data.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-18 <a href="https://lruihao.cn/posts/at-layer/" title="2025-06-18 10:35:47" target="_blank" rel="external nofollow noopener noreferrer">CSS @layer:构建更高效、更可维护的样式层级<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-11 <a href="https://lruihao.cn/posts/vue-build/" title="2025-06-11 10:05:36" target="_blank" rel="external nofollow noopener noreferrer">Vue.js History 模式下的 NGINX 配置与 API 代理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-10 <a href="https://lruihao.cn/projects/lruihao/mmt-webfont/" title="2025-04-10 08:35:34" target="_blank" rel="external nofollow noopener noreferrer">The webfont package for the MMT typeface.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-09 <a href="https://lruihao.cn/projects/lruihao/vercel-proxy/" title="2025-04-09 02:13:22" target="_blank" rel="external nofollow noopener noreferrer">API proxies powered by Vercel.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-20 <a href="https://lruihao.cn/posts/flexbox/" title="2025-01-20 15:56:38" target="_blank" rel="external nofollow noopener noreferrer">CSS Flexbox 布局指南<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/projects/hugo-fixit/action-component-list/" title="2025-01-14 09:10:09" target="_blank" rel="external nofollow noopener noreferrer">Generate a list of all hugo-fixit theme components.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-08 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/" title="2025-01-08 09:20:48" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with asciinema-embed shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2024"><span>2024</span> <a href="#2024" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 38 篇文章</summary> <ul> <li>12-06 <a href="https://lruihao.cn/posts/css-viewport/" title="2024-12-06 10:32:22" target="_blank" rel="external nofollow noopener noreferrer">震惊!CSS 竟然能获取视口尺寸?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-02 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-translate/" title="2024-12-02 07:29:57" target="_blank" rel="external nofollow noopener noreferrer">🌐 A component for site automatic translation.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-22 <a href="https://lruihao.cn/posts/91db0fa/" title="2024-11-22 14:01:18" target="_blank" rel="external nofollow noopener noreferrer">Amazon 如何让服务器享受着持续集群安全?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-05 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/" title="2024-11-05 08:23:29" target="_blank" rel="external nofollow noopener noreferrer">🐟 A canvas implemented animation effect of small fish swimming.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-06 <a href="https://lruihao.cn/posts/content-adapters/" title="2024-10-06 11:10:22" target="_blank" rel="external nofollow noopener noreferrer">自动获取 GitHub README 内容添加到 Hugo 文章<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-13 <a href="https://lruihao.cn/projects/lruihao/html-demo/" title="2024-09-13 02:36:29" target="_blank" rel="external nofollow noopener noreferrer">不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-04 <a href="https://lruihao.cn/projects/hugo-fixit/fixit-releaser/" title="2024-09-04 18:10:59" target="_blank" rel="external nofollow noopener noreferrer">⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-22 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/" title="2024-08-22 03:29:22" target="_blank" rel="external nofollow noopener noreferrer">Hugo theme component for ATOM feed custom Output Format.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-22 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/" title="2024-08-22 03:28:23" target="_blank" rel="external nofollow noopener noreferrer">Hugo theme component for JSON feed custom Output Format.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/" title="2024-08-07 05:49:13" target="_blank" rel="external nofollow noopener noreferrer">Mobile devtools component powered by vConsole and eruda.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-29 <a href="https://lruihao.cn/posts/css-round/" title="2024-07-29 20:32:39" target="_blank" rel="external nofollow noopener noreferrer">现代 CSS 解决方案:CSS 四舍五入数值单位<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-21 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/" title="2024-07-21 14:02:29" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with reward-log or sponsor-log shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-17 <a href="https://lruihao.cn/posts/git-summary/" title="2024-07-17 16:06:08" target="_blank" rel="external nofollow noopener noreferrer">Git 统计代码量<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-15 <a href="https://lruihao.cn/posts/drop-shadow/" title="2024-07-15 10:40:12" target="_blank" rel="external nofollow noopener noreferrer">现代 CSS 解决方案之异形元素怎么设置阴影?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-14 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/" title="2024-07-14 07:39:56" target="_blank" rel="external nofollow noopener noreferrer">🔖 Embed bookmark of FixIt Docs.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-14 <a href="https://lruihao.cn/posts/fixit-docs-bookmark/" title="2024-07-14 13:03:31" target="_blank" rel="external nofollow noopener noreferrer">CSS 实现时间轴、背景图 loading 和渐变边框<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-07 <a href="https://lruihao.cn/posts/d1fc0c7/" title="2024-07-07 13:54:14" target="_blank" rel="external nofollow noopener noreferrer">探索 Amazon S3 的无限存储潜力<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-28 <a href="https://lruihao.cn/posts/scrollbar-styling/" title="2024-06-28 22:29:03" target="_blank" rel="external nofollow noopener noreferrer">标准滚动条控制规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-28 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/" title="2024-06-28 06:56:32" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with caniuse shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-13 <a href="https://lruihao.cn/posts/aside-toggle-drag/" title="2024-06-13 21:03:12" target="_blank" rel="external nofollow noopener noreferrer">如何实现 VSCode 编辑器窗口边界拖拽类似功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-09 <a href="https://lruihao.cn/posts/design-principles/" title="2024-06-09 02:24:31" target="_blank" rel="external nofollow noopener noreferrer">架构之基:从根儿上了解设计原则<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-06 <a href="https://lruihao.cn/posts/svg-dark-light/" title="2024-06-06 22:13:26" target="_blank" rel="external nofollow noopener noreferrer">怎么生成暗黑模式和明亮模式的 SVG 图片?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-20 <a href="https://lruihao.cn/posts/404d6a2/" title="2024-05-20 11:41:03" target="_blank" rel="external nofollow noopener noreferrer">坐高铁去柳州吃螺狮粉<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/vercel-gravatar/" title="2024-04-17 12:51:35" target="_blank" rel="external nofollow noopener noreferrer">利用 Vercel 反代 Gravatar 实现镜像加速<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/lruihao/vercel-gravatar/" title="2024-04-17 01:37:06" target="_blank" rel="external nofollow noopener noreferrer">Gravatar Proxy powered by Vercel.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-09 <a href="https://lruihao.cn/projects/hugo-fixit/component-projects/" title="2024-04-09 21:38:42" target="_blank" rel="external nofollow noopener noreferrer">🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-04 <a href="https://lruihao.cn/projects/apple-devices-preview/" title="2024-04-04 13:23:37" target="_blank" rel="external nofollow noopener noreferrer">临时决定再写一个小工具 - 网站预览图生成器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-02 <a href="https://lruihao.cn/projects/coverview/" title="2024-04-02 18:05:34" target="_blank" rel="external nofollow noopener noreferrer">用五天时间给自己制作一个封面图生成工具<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/projects/lruihao/coverview/" title="2024-03-28 06:14:16" target="_blank" rel="external nofollow noopener noreferrer">🛠 Create awesome cover images for your blog posts quickly.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-26 <a href="https://lruihao.cn/posts/c6bc2d5/" title="2024-03-26 12:23:44" target="_blank" rel="external nofollow noopener noreferrer">写文档时英文标题什么时候要大写?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-29 <a href="https://lruihao.cn/posts/overflow-tooltip/" title="2024-02-29 16:46:00" target="_blank" rel="external nofollow noopener noreferrer">实现类似于 Element UI 表格的溢出文本提示功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-21 <a href="https://lruihao.cn/posts/auto-sizes/" title="2024-02-21 10:00:13" target="_blank" rel="external nofollow noopener noreferrer">聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-09 <a href="https://lruihao.cn/years/2023/" title="2024-02-09 14:07:24" target="_blank" rel="external nofollow noopener noreferrer">2023 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-21 <a href="https://lruihao.cn/projects/lruihao/kityminder-core/" title="2024-01-21 06:24:42" target="_blank" rel="external nofollow noopener noreferrer">强大的脑图可视化工具<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-17 <a href="https://lruihao.cn/posts/900d5e4/" title="2024-01-17 14:57:48" target="_blank" rel="external nofollow noopener noreferrer">记一次 Debug 第三方包的过程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-17 <a href="https://lruihao.cn/posts/20b75e9/" title="2024-01-17 09:58:58" target="_blank" rel="external nofollow noopener noreferrer">为什么很多教程中都有 foo bar?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-11 <a href="https://lruihao.cn/posts/6550187/" title="2024-01-11 10:30:04" target="_blank" rel="external nofollow noopener noreferrer">git submodule: already exists in the index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-10 <a href="https://lruihao.cn/posts/el-card-collapse/" title="2024-01-10 17:06:54" target="_blank" rel="external nofollow noopener noreferrer">给 el-card 添加折叠功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2023"><span>2023</span> <a href="#2023" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 35 篇文章</summary> <ul> <li>12-22 <a href="https://lruihao.cn/posts/d8ae205/" title="2023-12-22 19:58:47" target="_blank" rel="external nofollow noopener noreferrer">尝试在 Python 中使用 Amazon Titan 文本模型<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-28 <a href="https://lruihao.cn/projects/fixit-cli/" title="2023-11-28 10:48:07" target="_blank" rel="external nofollow noopener noreferrer">用 Node.js 开发一个轻量脚手架<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-20 <a href="https://lruihao.cn/projects/hugo-fixit/fixit-cli/" title="2023-11-20 06:40:09" target="_blank" rel="external nofollow noopener noreferrer">🛠️ A node-based tooling for FixIt site initialization.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-18 <a href="https://lruihao.cn/posts/aws-solution/" title="2023-11-18 12:52:37" target="_blank" rel="external nofollow noopener noreferrer">探索 AWS 云上一站式解决方案免费使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-22 <a href="https://lruihao.cn/posts/ssh-sign/" title="2023-10-22 18:59:31" target="_blank" rel="external nofollow noopener noreferrer">SSH 提交签名验证<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/patch-package/" title="2023-10-12 22:37:56" target="_blank" rel="external nofollow noopener noreferrer">如何给 npm 包打补丁?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashboard-summary/" title="2023-10-12 21:25:18" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘系列总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-widget-usage/" title="2023-10-12 20:07:56" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 组件开发<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-template-usage/" title="2023-10-12 20:07:20" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 模板使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-widget-docs/" title="2023-10-12 19:41:23" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 组件配置文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-template-docs/" title="2023-10-12 19:27:49" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 布局模板文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashboard-analysis/" title="2023-10-12 15:37:30" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 功能需求分析<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-11 <a href="https://lruihao.cn/posts/markdownlint/" title="2023-10-11 14:26:48" target="_blank" rel="external nofollow noopener noreferrer">给你的 Markdown 挑挑刺<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-08 <a href="https://lruihao.cn/posts/cognitive-complexity/" title="2023-10-08 09:52:44" target="_blank" rel="external nofollow noopener noreferrer">认知复杂度(Cognitive Complexity)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/posts/article-structure/" title="2023-09-26 15:17:52" target="_blank" rel="external nofollow noopener noreferrer">写作技巧:如何搭建文章的框架结构?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-25 <a href="https://lruihao.cn/projects/el-table-sticky/" title="2023-09-25 17:49:58" target="_blank" rel="external nofollow noopener noreferrer">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-17 <a href="https://lruihao.cn/posts/vue-fullscreen-toggler/" title="2023-09-17 19:44:07" target="_blank" rel="external nofollow noopener noreferrer">封装 Vue FullScreenToggler 组件<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-15 <a href="https://lruihao.cn/posts/js-fullscreen/" title="2023-09-15 17:29:25" target="_blank" rel="external nofollow noopener noreferrer">JS 实现全屏和退出全屏<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-15 <a href="https://lruihao.cn/posts/translation-guide/" title="2023-09-15 11:07:56" target="_blank" rel="external nofollow noopener noreferrer">中文翻译的常见问题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-14 <a href="https://lruihao.cn/posts/vue-svg-icon/" title="2023-09-14 11:24:48" target="_blank" rel="external nofollow noopener noreferrer">在 Vue 项目中更优雅地使用 icon<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-14 <a href="https://lruihao.cn/posts/vscode-snippets/" title="2023-09-14 11:21:56" target="_blank" rel="external nofollow noopener noreferrer">VSCode 添加用户代码片段,自定义用户代码片段<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-02 <a href="https://lruihao.cn/posts/grid-bg-image/" title="2023-09-02 10:05:44" target="_blank" rel="external nofollow noopener noreferrer">CSS 如何实现网格背景效果?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-26 <a href="https://lruihao.cn/posts/aws-ec2/" title="2023-08-26 17:22:57" target="_blank" rel="external nofollow noopener noreferrer">将 Hugo 博客部署到亚马逊云服务器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/projects/lruihao/vue-el-demo/" title="2023-08-08 01:41:08" target="_blank" rel="external nofollow noopener noreferrer">Vue2 and element-ui related demos<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-20 <a href="https://lruihao.cn/posts/el-backtop-fix/" title="2023-07-20 11:08:18" target="_blank" rel="external nofollow noopener noreferrer">用魔法打败魔法 - ElBacktop Fix<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/projects/lruihao/el-table-sticky/" title="2023-06-14 14:03:49" target="_blank" rel="external nofollow noopener noreferrer">A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/gen-router/" title="2023-06-14 00:11:17" target="_blank" rel="external nofollow noopener noreferrer">使用 Node.js 自动创建 Vue 的路由<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-12 <a href="https://lruihao.cn/posts/sourcetree-husky/" title="2023-06-12 10:58:44" target="_blank" rel="external nofollow noopener noreferrer">解决 SourceTree 提交时候 husky 命令失败问题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-03 <a href="https://lruihao.cn/posts/v2-tailwind/" title="2023-06-03 17:38:44" target="_blank" rel="external nofollow noopener noreferrer">Vue2 + tailwindcss 初始化<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-14 <a href="https://lruihao.cn/posts/vue2-guid/" title="2023-03-14 08:37:59" target="_blank" rel="external nofollow noopener noreferrer">新手向:Vue 2.0 的建议学习顺序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-28 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/" title="2023-02-28 09:12:29" target="_blank" rel="external nofollow noopener noreferrer">🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-12 <a href="https://lruihao.cn/posts/native-img-loading-lazy/" title="2023-02-12 19:40:43" target="_blank" rel="external nofollow noopener noreferrer">浏览器 IMG 图片原生懒加载 loading=&ldquo;lazy&rdquo;<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-05 <a href="https://lruihao.cn/posts/browser-rendering/" title="2023-02-05 21:02:52" target="_blank" rel="external nofollow noopener noreferrer">浏览器渲染原理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-04 <a href="https://lruihao.cn/posts/document-style-guide/" title="2023-02-04 16:04:42" target="_blank" rel="external nofollow noopener noreferrer">中文技术文档的写作规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-11 <a href="https://lruihao.cn/posts/event-loop/" title="2023-01-11 11:16:02" target="_blank" rel="external nofollow noopener noreferrer">浏览器原理 - 事件循环<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2022"><span>2022</span> <a href="#2022" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 20 篇文章</summary> <ul> <li>12-17 <a href="https://lruihao.cn/years/2022/" title="2022-12-17 01:01:30" target="_blank" rel="external nofollow noopener noreferrer">2022 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-15 <a href="https://lruihao.cn/posts/homebrew-npm/" title="2022-12-15 15:33:30" target="_blank" rel="external nofollow noopener noreferrer">安装 Homebrew 后导致系统中原有的 npm 和 npx 失效<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-10 <a href="https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/" title="2022-10-10 02:50:53" target="_blank" rel="external nofollow noopener noreferrer">基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-30 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/" title="2022-09-30 09:28:41" target="_blank" rel="external nofollow noopener noreferrer">🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-27 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/" title="2022-09-27 15:23:38" target="_blank" rel="external nofollow noopener noreferrer">🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-04 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-shell/" title="2022-09-04 04:18:42" target="_blank" rel="external nofollow noopener noreferrer">Using frequently-used Hugo commands by shell.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-31 <a href="https://lruihao.cn/posts/beego-install/" title="2022-08-31 09:32:44" target="_blank" rel="external nofollow noopener noreferrer">Beego 安装及配置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-13 <a href="https://lruihao.cn/posts/semver/" title="2022-08-13 13:32:03" target="_blank" rel="external nofollow noopener noreferrer">语义版本控制(SemVer)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-12 <a href="https://lruihao.cn/posts/commit-spec/" title="2022-08-12 15:37:44" target="_blank" rel="external nofollow noopener noreferrer">Commit Message Spec<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-12 <a href="https://lruihao.cn/posts/electron-summary/" title="2022-08-12 11:22:01" target="_blank" rel="external nofollow noopener noreferrer">electron 踩坑总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/posts/encryption-fe/" title="2022-08-08 13:49:22" target="_blank" rel="external nofollow noopener noreferrer">前端页面内容加密总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/posts/qcloudcdn/" title="2022-08-07 14:40:33" target="_blank" rel="external nofollow noopener noreferrer">Node.js + GitHub Actions 自动刷新 CDN<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/posts/newline/" title="2022-08-07 00:10:30" target="_blank" rel="external nofollow noopener noreferrer">不同系统的换行符的差异<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/ohmyzsh-custom/" title="2022-07-31 13:54:14" target="_blank" rel="external nofollow noopener noreferrer">自定义 ohmyzsh 主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-30 <a href="https://lruihao.cn/posts/linux-permission/" title="2022-07-30 17:15:44" target="_blank" rel="external nofollow noopener noreferrer">linux 文件权限<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-29 <a href="https://lruihao.cn/posts/config4mac/" title="2022-07-29 20:22:44" target="_blank" rel="external nofollow noopener noreferrer">Mac 上的开发配置总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-23 <a href="https://lruihao.cn/projects/hugo-fixit/docs/" title="2022-07-23 12:17:06" target="_blank" rel="external nofollow noopener noreferrer">📄 The open-source repo for fixit.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-05 <a href="https://lruihao.cn/posts/adb-for-mac/" title="2022-07-05 15:39:34" target="_blank" rel="external nofollow noopener noreferrer">Mac 配置 ADB<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-01 <a href="https://lruihao.cn/posts/js-rediscover/" title="2022-05-01 10:59:36" target="_blank" rel="external nofollow noopener noreferrer">重新认识 JavaScript<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-30 <a href="https://lruihao.cn/posts/css-scss-var/" title="2022-04-30 22:04:29" target="_blank" rel="external nofollow noopener noreferrer">关于 CSS 和 Scss 变量运算那些事<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2021"><span>2021</span> <a href="#2021" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 19 篇文章</summary> <ul> <li>12-22 <a href="https://lruihao.cn/posts/gtd/" title="2021-12-22 20:17:42" target="_blank" rel="external nofollow noopener noreferrer">Getting Things Done for ios App Reminders and Github issues<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-16 <a href="https://lruihao.cn/projects/hugo-fixit/fixit/" title="2021-12-16 03:35:27" target="_blank" rel="external nofollow noopener noreferrer">🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/subl_imgpaste2/" title="2021-10-05 21:54:06" target="_blank" rel="external nofollow noopener noreferrer">Sublime 剪贴板图片粘贴插件 —— Markdown 必备<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-cardlink/" title="2021-10-05 19:33:13" target="_blank" rel="external nofollow noopener noreferrer">Hugo 添加知乎卡片式链接 Shortcodes<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-i18n-zh-tw/" title="2021-10-05 19:14:45" target="_blank" rel="external nofollow noopener noreferrer">Hugo I18n 添加中文繁體翻譯<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-friends/" title="2021-10-05 14:14:10" target="_blank" rel="external nofollow noopener noreferrer">Hugo 友情連結模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-04 <a href="https://lruihao.cn/posts/hugo-admin/" title="2021-10-04 23:49:00" target="_blank" rel="external nofollow noopener noreferrer">Hugo 本地管理 Shell 腳本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-04 <a href="https://lruihao.cn/posts/github-actions/" title="2021-10-04 23:46:49" target="_blank" rel="external nofollow noopener noreferrer">Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-03 <a href="https://lruihao.cn/posts/hexo-to-hugo/" title="2021-10-03 15:27:58" target="_blank" rel="external nofollow noopener noreferrer">个人博客从 Hexo 迁移至 Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-08 <a href="https://lruihao.cn/projects/lruihao/hugo-blog/" title="2021-09-08 12:52:53" target="_blank" rel="external nofollow noopener noreferrer">Lruihao&rsquo;s Note<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-22 <a href="https://lruihao.cn/posts/less-sass-scss/" title="2021-06-22 16:39:47" target="_blank" rel="external nofollow noopener noreferrer">less&amp;sass&amp;scss<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/posts/lightbox/" title="2021-06-21 16:18:04" target="_blank" rel="external nofollow noopener noreferrer">Lightbox<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/years/2020-2021/" title="2021-06-21 10:17:38" target="_blank" rel="external nofollow noopener noreferrer">2020&amp;2021 總結<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-24 <a href="https://lruihao.cn/projects/lruihao/watermark/" title="2021-05-24 13:05:40" target="_blank" rel="external nofollow noopener noreferrer">Create watermark for webpage and automatic adjust when window resize.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-23 <a href="https://lruihao.cn/projects/cell-watermark/" title="2021-05-23 17:15:41" target="_blank" rel="external nofollow noopener noreferrer">Cell Watermark<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/codereview/" title="2021-03-04 21:04:18" target="_blank" rel="external nofollow noopener noreferrer">Code Review 怎麼做?新手工程師如何提升「程式碼品質」<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-02 <a href="https://lruihao.cn/projects/bill-note/" title="2021-03-02 21:46:40" target="_blank" rel="external nofollow noopener noreferrer">基于 leancloud-storage 实现的无后端记账本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-01 <a href="https://lruihao.cn/me/whysmoke/" title="2021-03-01 01:27:41" target="_blank" rel="external nofollow noopener noreferrer">你为什么吸烟?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-28 <a href="https://lruihao.cn/projects/lruihao/bill-note/" title="2021-02-28 03:44:09" target="_blank" rel="external nofollow noopener noreferrer">基于 leancloud-storage 实现的无后端记账本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2020"><span>2020</span> <a href="#2020" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 8 篇文章</summary> <ul> <li>07-25 <a href="https://lruihao.cn/projects/cell-blog/" title="2020-07-25 20:51:11" target="_blank" rel="external nofollow noopener noreferrer">cell-blog 功能介绍与安装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-25 <a href="https://lruihao.cn/posts/cell-blog-dev/" title="2020-07-25 20:42:42" target="_blank" rel="external nofollow noopener noreferrer">cell-blog 开发记录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/lruihao/cell-blog/" title="2020-04-17 08:33:39" target="_blank" rel="external nofollow noopener noreferrer">基于 Laravel 7 开发,支持 Markdown 语法的博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-26 <a href="https://lruihao.cn/posts/csdnvisiter/" title="2020-03-26 11:08:38" target="_blank" rel="external nofollow noopener noreferrer">使用 Python 刷 csdn 访问量<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-25 <a href="https://lruihao.cn/posts/cron/" title="2020-03-25 09:19:44" target="_blank" rel="external nofollow noopener noreferrer">Cron 表达式的基本语法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-25 <a href="https://lruihao.cn/posts/daka/" title="2020-03-25 08:22:42" target="_blank" rel="external nofollow noopener noreferrer">新冠疫情未返校未返工第 N 天之“自动打卡”<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/years/2019/" title="2020-01-16 20:01:22" target="_blank" rel="external nofollow noopener noreferrer">2019 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/posts/sql/" title="2020-01-16 19:28:05" target="_blank" rel="external nofollow noopener noreferrer">SQL 总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2019"><span>2019</span> <a href="#2019" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 71 篇文章</summary> <ul> <li>11-24 <a href="https://lruihao.cn/projects/cos-album/" title="2019-11-24 10:52:34" target="_blank" rel="external nofollow noopener noreferrer">利用腾讯云为静态页面添加“动态”相册<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-23 <a href="https://lruihao.cn/projects/lruihao/cos-album/" title="2019-11-23 12:59:05" target="_blank" rel="external nofollow noopener noreferrer">解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-14 <a href="https://lruihao.cn/posts/restful/" title="2019-11-14 19:06:05" target="_blank" rel="external nofollow noopener noreferrer">RESTful<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-28 <a href="https://lruihao.cn/posts/phppushurl/" title="2019-09-28 18:32:42" target="_blank" rel="external nofollow noopener noreferrer">php 同时主动推送链接到百度,神马等站长平台<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-28 <a href="https://lruihao.cn/posts/phpfile/" title="2019-09-28 17:11:17" target="_blank" rel="external nofollow noopener noreferrer">php 按行读取文件信息<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/projects/lruihao/mmt/" title="2019-09-26 12:44:17" target="_blank" rel="external nofollow noopener noreferrer">沐目之,湘也。— 沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-19 <a href="https://lruihao.cn/posts/site-time/" title="2019-09-19 22:03:29" target="_blank" rel="external nofollow noopener noreferrer">设置网站运行时间<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-08 <a href="https://lruihao.cn/posts/async-defer/" title="2019-09-08 11:47:50" target="_blank" rel="external nofollow noopener noreferrer">script 的三种加载方式 (async, defer)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/sublime-text3/" title="2019-08-15 20:59:10" target="_blank" rel="external nofollow noopener noreferrer">Sublime Text3 快捷键大全<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/netbeans/" title="2019-08-15 18:36:15" target="_blank" rel="external nofollow noopener noreferrer">NetBeans IDE 开发设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/dev-rules/" title="2019-08-15 18:30:31" target="_blank" rel="external nofollow noopener noreferrer">Web 开发规则,代码规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-19 <a href="https://lruihao.cn/posts/phpform/" title="2019-07-19 11:38:59" target="_blank" rel="external nofollow noopener noreferrer">简单评论模块&ndash;php 表单练习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-15 <a href="https://lruihao.cn/posts/phpfunc/" title="2019-07-15 11:37:33" target="_blank" rel="external nofollow noopener noreferrer">php 函数学习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-12 <a href="https://lruihao.cn/posts/wamproot/" title="2019-07-12 18:44:36" target="_blank" rel="external nofollow noopener noreferrer">WAMPServer 自定义网站根目录等设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/posts/pysx2/" title="2019-06-21 18:46:41" target="_blank" rel="external nofollow noopener noreferrer">python 实训总结Ⅱ<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-18 <a href="https://lruihao.cn/posts/pysx1/" title="2019-06-18 18:41:00" target="_blank" rel="external nofollow noopener noreferrer">python 实训总结Ⅰ<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-26 <a href="https://lruihao.cn/posts/judgetriangle/" title="2019-05-26 18:50:53" target="_blank" rel="external nofollow noopener noreferrer">判断三角形的黑盒测试<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-17 <a href="https://lruihao.cn/posts/hustoj/" title="2019-05-17 23:08:04" target="_blank" rel="external nofollow noopener noreferrer">HustOJ 基础搭建教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-17 <a href="https://lruihao.cn/posts/gcd-bit/" title="2019-05-17 09:14:16" target="_blank" rel="external nofollow noopener noreferrer">最大公约数(二进制算法)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-16 <a href="https://lruihao.cn/posts/imgurl/" title="2019-05-16 20:31:33" target="_blank" rel="external nofollow noopener noreferrer">宝塔面板安装 ImgURL 图床<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-11 <a href="https://lruihao.cn/posts/mx2wx/" title="2019-05-11 17:02:31" target="_blank" rel="external nofollow noopener noreferrer">python 实战:模拟 post 请求定时获取后台数据并打包发送至微信<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-10 <a href="https://lruihao.cn/posts/ifzhushi/" title="2019-05-10 13:08:27" target="_blank" rel="external nofollow noopener noreferrer">条件注释判断浏览器版本&lt;!&ndash;[if lt IE 9]&gt;;<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-09 <a href="https://lruihao.cn/posts/pysettime/" title="2019-05-09 23:26:54" target="_blank" rel="external nofollow noopener noreferrer">python 设置程序每天 8 点定时执行任务<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-09 <a href="https://lruihao.cn/posts/pyinstallererror/" title="2019-05-09 19:05:01" target="_blank" rel="external nofollow noopener noreferrer">安装 pyinstaller 出错的解决办法及 csdn 工具实例打包<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-08 <a href="https://lruihao.cn/posts/singlethreaddown/" title="2019-05-08 20:55:02" target="_blank" rel="external nofollow noopener noreferrer">java 实现一个单线程的资源下载器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-07 <a href="https://lruihao.cn/posts/jsoninfo/" title="2019-05-07 18:42:47" target="_blank" rel="external nofollow noopener noreferrer">Python 如何操作 Json?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-07 <a href="https://lruihao.cn/posts/posttest/" title="2019-05-07 18:17:05" target="_blank" rel="external nofollow noopener noreferrer">python 发送 post 请求进行简单的接口测试<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-06 <a href="https://lruihao.cn/posts/java-urlreader/" title="2019-05-06 17:41:35" target="_blank" rel="external nofollow noopener noreferrer">java 通过 URL 和 URLConnection 访问网页资源<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-02 <a href="https://lruihao.cn/posts/byteio/" title="2019-05-02 23:04:32" target="_blank" rel="external nofollow noopener noreferrer">文件加密解密(字节流)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-01 <a href="https://lruihao.cn/posts/javaexception/" title="2019-05-01 16:52:21" target="_blank" rel="external nofollow noopener noreferrer">模拟借书系统(java 异常练习)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-27 <a href="https://lruihao.cn/posts/qrcode/" title="2019-04-27 14:16:54" target="_blank" rel="external nofollow noopener noreferrer">用 MyQR 制作专属动态二维码 (py 和 exe 版本)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-24 <a href="https://lruihao.cn/posts/1thintervivew/" title="2019-04-24 21:23:22" target="_blank" rel="external nofollow noopener noreferrer">第一次面试经历<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-22 <a href="https://lruihao.cn/posts/mmtimgpy/" title="2019-04-22 12:46:34" target="_blank" rel="external nofollow noopener noreferrer">python 爬取网站图片(图片链接相似)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-20 <a href="https://lruihao.cn/posts/wxpy1/" title="2019-04-20 15:44:57" target="_blank" rel="external nofollow noopener noreferrer">python 玩微信:初探 wxpy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-20 <a href="https://lruihao.cn/posts/wximgpy/" title="2019-04-20 13:32:58" target="_blank" rel="external nofollow noopener noreferrer">基本 python 实现的爬取微信好友头像,并拼接成大图<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-19 <a href="https://lruihao.cn/posts/hellojava/" title="2019-04-19 19:49:54" target="_blank" rel="external nofollow noopener noreferrer">用记事本编写第一个 java 程序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-18 <a href="https://lruihao.cn/posts/java-regex/" title="2019-04-18 22:04:21" target="_blank" rel="external nofollow noopener noreferrer">java 正则表达式练习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-14 <a href="https://lruihao.cn/posts/stringbuffer/" title="2019-04-14 10:12:44" target="_blank" rel="external nofollow noopener noreferrer">java 常用类<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-12 <a href="https://lruihao.cn/posts/hdu1009/" title="2019-04-12 16:43:19" target="_blank" rel="external nofollow noopener noreferrer">HDU 1009 FatMouse&rsquo; Trade(贪心)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-03 <a href="https://lruihao.cn/posts/ngrok/" title="2019-04-03 19:29:43" target="_blank" rel="external nofollow noopener noreferrer">本地搭建网站服务器并穿透内网<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-30 <a href="https://lruihao.cn/posts/ms-html-css/" title="2019-03-30 22:58:39" target="_blank" rel="external nofollow noopener noreferrer">前端面试题 - HTML+CSS<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-30 <a href="https://lruihao.cn/posts/bqbj/" title="2019-03-30 10:13:33" target="_blank" rel="external nofollow noopener noreferrer">百钱百鸡(枚举法)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/posts/dacheng/" title="2019-03-28 22:50:43" target="_blank" rel="external nofollow noopener noreferrer">大数乘法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/posts/http2https/" title="2019-03-28 19:40:54" target="_blank" rel="external nofollow noopener noreferrer">vps 配置 ssl 及 https 重定向<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/hexo-theme-next/" title="2019-03-21 16:43:19" target="_blank" rel="external nofollow noopener noreferrer">hexo-theme-next @modified LRH<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/substatus/" title="2019-03-21 13:36:25" target="_blank" rel="external nofollow noopener noreferrer">Java 父类子类的对象初始化过程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/windefault/" title="2019-03-21 12:48:30" target="_blank" rel="external nofollow noopener noreferrer">ubuntu + windows 双系统默认启动项设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-19 <a href="https://lruihao.cn/posts/player/" title="2019-03-19 23:32:56" target="_blank" rel="external nofollow noopener noreferrer">宅音乐播放器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-18 <a href="https://lruihao.cn/posts/bt/" title="2019-03-18 21:31:43" target="_blank" rel="external nofollow noopener noreferrer">宝塔面板安装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-18 <a href="https://lruihao.cn/posts/webbiji/" title="2019-03-18 20:40:55" target="_blank" rel="external nofollow noopener noreferrer">web 汇总<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-16 <a href="https://lruihao.cn/posts/fanxing/" title="2019-03-16 13:56:01" target="_blank" rel="external nofollow noopener noreferrer">java 泛型 test<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/eclipseuse/" title="2019-03-15 23:47:24" target="_blank" rel="external nofollow noopener noreferrer">eclipse 的基本使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/qframe/" title="2019-03-15 22:31:28" target="_blank" rel="external nofollow noopener noreferrer">匿名类在可视化界面中的应用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/linkcard/" title="2019-03-15 15:21:39" target="_blank" rel="external nofollow noopener noreferrer">模仿知乎卡片式链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/ubuntutime/" title="2019-03-15 14:28:10" target="_blank" rel="external nofollow noopener noreferrer">win10,ubuntu 双系统时间不一致<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-08 <a href="https://lruihao.cn/posts/qqxml/" title="2019-03-08 16:52:13" target="_blank" rel="external nofollow noopener noreferrer">QQ 强制生成卡片式链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/cipanadmin/" title="2019-03-04 23:08:32" target="_blank" rel="external nofollow noopener noreferrer">磁盘存储器的管理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/js-vcode/" title="2019-03-04 20:53:09" target="_blank" rel="external nofollow noopener noreferrer">JS 验证码<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-01 <a href="https://lruihao.cn/posts/renative/" title="2019-02-01 20:44:40" target="_blank" rel="external nofollow noopener noreferrer">还乡<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-31 <a href="https://lruihao.cn/projects/lruihao/hexo-theme-next/" title="2019-01-31 09:57:45" target="_blank" rel="external nofollow noopener noreferrer">Elegant and powerful theme for Hexo.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-24 <a href="https://lruihao.cn/posts/jicheng/" title="2019-01-24 15:07:50" target="_blank" rel="external nofollow noopener noreferrer">java 继承 test<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-22 <a href="https://lruihao.cn/posts/cos-hexo/" title="2019-01-22 14:57:08" target="_blank" rel="external nofollow noopener noreferrer">利用腾讯云对象存储 COS 桶托管 hexo 博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-18 <a href="https://lruihao.cn/posts/java-arrays/" title="2019-01-18 13:13:10" target="_blank" rel="external nofollow noopener noreferrer">Arrays 类及基本使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/posts/recent-posts/" title="2019-01-16 17:50:52" target="_blank" rel="external nofollow noopener noreferrer">在搜索、文章底部、侧栏添加最近文章模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-15 <a href="https://lruihao.cn/posts/mathclass/" title="2019-01-15 17:33:28" target="_blank" rel="external nofollow noopener noreferrer">java 猜数字小游戏(Math 类)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-15 <a href="https://lruihao.cn/posts/duixiang/" title="2019-01-15 16:07:31" target="_blank" rel="external nofollow noopener noreferrer">面向对象基础知识总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/java-range/" title="2019-01-14 17:30:24" target="_blank" rel="external nofollow noopener noreferrer">java 水仙花数(循环)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/java-input/" title="2019-01-14 15:33:46" target="_blank" rel="external nofollow noopener noreferrer">java 录入数据<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/biaoshi/" title="2019-01-14 15:07:57" target="_blank" rel="external nofollow noopener noreferrer">java 标识符<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-12 <a href="https://lruihao.cn/posts/subject-verb/" title="2019-01-12 13:02:49" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;主谓一致<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-12 <a href="https://lruihao.cn/years/2018/" title="2019-01-12 11:09:52" target="_blank" rel="external nofollow noopener noreferrer">2018 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2018"><span>2018</span> <a href="#2018" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 91 篇文章</summary> <ul> <li>12-10 <a href="https://lruihao.cn/posts/inversion-3/" title="2018-12-10 21:52:30" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;形式倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-10 <a href="https://lruihao.cn/posts/inversion-2/" title="2018-12-10 21:14:51" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;完全倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-08 <a href="https://lruihao.cn/posts/inversion-1/" title="2018-12-08 17:52:39" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;部分倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-24 <a href="https://lruihao.cn/posts/nextplugin/" title="2018-11-24 16:54:09" target="_blank" rel="external nofollow noopener noreferrer">hexo 插件及 next 内置样式集<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-17 <a href="https://lruihao.cn/posts/commit-bat/" title="2018-11-17 14:25:49" target="_blank" rel="external nofollow noopener noreferrer">通过 bat 批处理文件自动提交博客代码<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-12 <a href="https://lruihao.cn/posts/fas-app/" title="2018-11-12 16:04:04" target="_blank" rel="external nofollow noopener noreferrer">博採眾長 app<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-11 <a href="https://lruihao.cn/posts/caddy-file/" title="2018-11-11 13:59:27" target="_blank" rel="external nofollow noopener noreferrer">caddy-两步搭建超简单云盘<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-09 <a href="https://lruihao.cn/posts/next-pdf/" title="2018-11-09 12:51:48" target="_blank" rel="external nofollow noopener noreferrer">next 添加支持 pdf<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-03 <a href="https://lruihao.cn/posts/js-device/" title="2018-11-03 23:35:44" target="_blank" rel="external nofollow noopener noreferrer">js 判断用户设备类型及平台<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-03 <a href="https://lruihao.cn/posts/blog-backup/" title="2018-11-03 12:49:28" target="_blank" rel="external nofollow noopener noreferrer">hexo 博客源码备份<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-30 <a href="https://lruihao.cn/posts/git/" title="2018-10-30 08:59:56" target="_blank" rel="external nofollow noopener noreferrer">Git 常用指令汇总<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/beian/" title="2018-10-29 23:16:26" target="_blank" rel="external nofollow noopener noreferrer">网站备案之旅<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/shell/" title="2018-10-29 11:57:39" target="_blank" rel="external nofollow noopener noreferrer">shell 脚本初体验<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/web-server-yun/" title="2018-10-29 09:15:58" target="_blank" rel="external nofollow noopener noreferrer">云服务器 CentOS 系统搭建 web 服务<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-28 <a href="https://lruihao.cn/posts/href-301/" title="2018-10-28 14:22:00" target="_blank" rel="external nofollow noopener noreferrer">使用 js 准确获取当前页面 url 网址信息及 301 重定向实战<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-26 <a href="https://lruihao.cn/posts/web-server-win/" title="2018-10-26 21:56:18" target="_blank" rel="external nofollow noopener noreferrer">windows 上搭建 web 服务器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-26 <a href="https://lruihao.cn/posts/gituse/" title="2018-10-26 21:11:02" target="_blank" rel="external nofollow noopener noreferrer">使用 Git 上传代码到 github, coding 等仓库<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-23 <a href="https://lruihao.cn/posts/termux1/" title="2018-10-23 22:16:02" target="_blank" rel="external nofollow noopener noreferrer">termux 基本使用教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-17 <a href="https://lruihao.cn/posts/web-font/" title="2018-10-17 21:38:06" target="_blank" rel="external nofollow noopener noreferrer">ttf 字体压缩<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-15 <a href="https://lruihao.cn/posts/linux-hello-c/" title="2018-10-15 21:19:27" target="_blank" rel="external nofollow noopener noreferrer">linux 编程初体验<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/projects/font-mmt/" title="2018-10-12 19:39:19" target="_blank" rel="external nofollow noopener noreferrer">沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-09 <a href="https://lruihao.cn/posts/liushuixian/" title="2018-10-09 16:21:04" target="_blank" rel="external nofollow noopener noreferrer">流水线<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-08 <a href="https://lruihao.cn/posts/data/" title="2018-10-08 23:01:10" target="_blank" rel="external nofollow noopener noreferrer">计算机数据<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-27 <a href="https://lruihao.cn/posts/night/" title="2018-09-27 13:13:31" target="_blank" rel="external nofollow noopener noreferrer">网页夜间效果<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/posts/crash-cheat/" title="2018-09-26 16:36:08" target="_blank" rel="external nofollow noopener noreferrer">网页离开时改变标题“崩溃欺骗”<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-22 <a href="https://lruihao.cn/posts/linux-git/" title="2018-09-22 22:28:45" target="_blank" rel="external nofollow noopener noreferrer">linux/centos 下的安装 git<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-21 <a href="https://lruihao.cn/posts/mood/" title="2018-09-21 21:11:25" target="_blank" rel="external nofollow noopener noreferrer">每一个优秀的人,都有一段沉默的时光<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-31 <a href="https://lruihao.cn/posts/vim/" title="2018-08-31 11:46:39" target="_blank" rel="external nofollow noopener noreferrer">Vim 速查表<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-30 <a href="https://lruihao.cn/posts/hexo-wordcount/" title="2018-08-30 13:15:50" target="_blank" rel="external nofollow noopener noreferrer">hexo next 主题添加字数统计(2018)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-21 <a href="https://lruihao.cn/posts/hexo-d-error/" title="2018-08-21 22:15:01" target="_blank" rel="external nofollow noopener noreferrer">hexo d 出错<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-20 <a href="https://lruihao.cn/posts/dongtaisub/" title="2018-08-20 16:16:40" target="_blank" rel="external nofollow noopener noreferrer">hexo 个性化 - next 主题动态显示 subtitle<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/heart/" title="2018-08-15 16:33:12" target="_blank" rel="external nofollow noopener noreferrer">“高逼格”C 语言画心<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-14 <a href="https://lruihao.cn/posts/git-index-lock/" title="2018-08-14 19:21:23" target="_blank" rel="external nofollow noopener noreferrer">git index.lock<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-11 <a href="https://lruihao.cn/posts/termux/" title="2018-08-11 16:59:05" target="_blank" rel="external nofollow noopener noreferrer">在 Android 上搭建 hexo 博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/nowcoder157a/" title="2018-08-10 22:11:00" target="_blank" rel="external nofollow noopener noreferrer">石子阵列(组合数学)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/codeforces476a/" title="2018-08-10 20:13:08" target="_blank" rel="external nofollow noopener noreferrer">Dreamoon and Stairs<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/codeforces476b/" title="2018-08-10 17:44:47" target="_blank" rel="external nofollow noopener noreferrer">Dreamoon and WiFi(组合数学)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/euclid/" title="2018-08-10 10:32:39" target="_blank" rel="external nofollow noopener noreferrer">The equation-SGU106(扩展欧几里得)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-09 <a href="https://lruihao.cn/posts/lightoj1282/" title="2018-08-09 20:55:26" target="_blank" rel="external nofollow noopener noreferrer">Leading and Trailing-lightoj1282(快速幂 + 对数运算)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-09 <a href="https://lruihao.cn/posts/cfcontest1017/" title="2018-08-09 10:48:00" target="_blank" rel="external nofollow noopener noreferrer">Codeforces Round 502(Div.1 + Div.2)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/posts/euler/" title="2018-08-08 17:10:07" target="_blank" rel="external nofollow noopener noreferrer">欧拉函数<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-06 <a href="https://lruihao.cn/posts/poj1797/" title="2018-08-06 09:42:11" target="_blank" rel="external nofollow noopener noreferrer">Heavy Transportation-poj1797(dijkstra 或最大生成树)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-04 <a href="https://lruihao.cn/posts/console-log/" title="2018-08-04 16:19:06" target="_blank" rel="external nofollow noopener noreferrer">hexo 博客自定义 console log<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-03 <a href="https://lruihao.cn/posts/poj2387/" title="2018-08-03 21:40:33" target="_blank" rel="external nofollow noopener noreferrer">Til the Cows Come Home-poj2387(dijkstra 判断重边)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-03 <a href="https://lruihao.cn/posts/zuiduanlu/" title="2018-08-03 16:27:16" target="_blank" rel="external nofollow noopener noreferrer">最短路入门<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-02 <a href="https://lruihao.cn/posts/nowcodersummer-5th/" title="2018-08-02 21:27:02" target="_blank" rel="external nofollow noopener noreferrer">牛客暑假多校第五场<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-02 <a href="https://lruihao.cn/posts/poj1182/" title="2018-08-02 11:10:37" target="_blank" rel="external nofollow noopener noreferrer">食物链-poj1182(带权并查集经典模板)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-01 <a href="https://lruihao.cn/posts/hdu1272/" title="2018-08-01 21:45:50" target="_blank" rel="external nofollow noopener noreferrer">小希的迷宫-HDU-1272(并查集 or 树性质)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-01 <a href="https://lruihao.cn/posts/hdu3038/" title="2018-08-01 11:45:53" target="_blank" rel="external nofollow noopener noreferrer">How Many Answers Are Wrong-hdu3038(带权并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/codeforces680b/" title="2018-07-31 19:32:21" target="_blank" rel="external nofollow noopener noreferrer">Bear and Finding Criminals-Codeforces680B<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/codeforces680a/" title="2018-07-31 19:22:36" target="_blank" rel="external nofollow noopener noreferrer">Bear and Five Cards-Codeforces680A<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/how-tables/" title="2018-07-31 11:12:10" target="_blank" rel="external nofollow noopener noreferrer">how many tables-HDU-1213(并查集求连通域数目)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/poj-1611/" title="2018-07-31 11:11:31" target="_blank" rel="external nofollow noopener noreferrer">The-suspects-POJ-1611(并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/poj-2236/" title="2018-07-31 11:10:54" target="_blank" rel="external nofollow noopener noreferrer">wireless network-POJ-2236(并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/piles-with-stones/" title="2018-07-31 11:09:31" target="_blank" rel="external nofollow noopener noreferrer">Piles-with-stones<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/" title="2018-07-31 11:08:43" target="_blank" rel="external nofollow noopener noreferrer">畅通工程-HDU-1232(并查集经典模板)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-27 <a href="https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/" title="2018-07-27 21:56:08" target="_blank" rel="external nofollow noopener noreferrer">牛客练习赛 23<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-26 <a href="https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/" title="2018-07-26 09:57:32" target="_blank" rel="external nofollow noopener noreferrer">在线离线算法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-24 <a href="https://lruihao.cn/posts/hdu-1495/" title="2018-07-24 15:34:00" target="_blank" rel="external nofollow noopener noreferrer">HDU-1495-非常可乐(bfs 模拟倒水 or 数论)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-23 <a href="https://lruihao.cn/posts/hdu-2612/" title="2018-07-23 12:34:42" target="_blank" rel="external nofollow noopener noreferrer">hdu-2612-Find a way(双 bfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-3278/" title="2018-07-22 12:10:32" target="_blank" rel="external nofollow noopener noreferrer">POJ-3278-Catch That Cow(bfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-2251/" title="2018-07-22 12:02:32" target="_blank" rel="external nofollow noopener noreferrer">poj-2251-Dungeon Master(三维 bfs 最短路)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-1321/" title="2018-07-22 11:58:14" target="_blank" rel="external nofollow noopener noreferrer">poj-1321 棋盘问题(dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-1426/" title="2018-07-22 11:57:13" target="_blank" rel="external nofollow noopener noreferrer">poj-1426-Find The Multiple(dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/adjacent-replacements/" title="2018-07-22 11:54:14" target="_blank" rel="external nofollow noopener noreferrer">Adjacent Replacements<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-3984/" title="2018-07-22 11:50:20" target="_blank" rel="external nofollow noopener noreferrer">poj-3984-迷宫问题 (bfs 路径)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/wannafly-20/" title="2018-07-22 11:46:25" target="_blank" rel="external nofollow noopener noreferrer">Wannafly 挑战赛 20-染色<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/" title="2018-07-22 11:41:15" target="_blank" rel="external nofollow noopener noreferrer">杨辉三角<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/hdu-1241/" title="2018-07-22 11:37:20" target="_blank" rel="external nofollow noopener noreferrer">hdu-1241-Oil Deposits (dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/" title="2018-07-22 11:31:05" target="_blank" rel="external nofollow noopener noreferrer">BFS 求最短路<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/cf-1009/" title="2018-07-22 11:25:56" target="_blank" rel="external nofollow noopener noreferrer">Educational Codeforces Round 47 (Rated for Div. 2)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/dfs_bfs/" title="2018-07-22 11:25:14" target="_blank" rel="external nofollow noopener noreferrer">深搜广搜<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/" title="2018-07-22 10:55:21" target="_blank" rel="external nofollow noopener noreferrer">TaoTao 要吃鸡<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-18 <a href="https://lruihao.cn/posts/wannafly-18/" title="2018-07-18 08:40:21" target="_blank" rel="external nofollow noopener noreferrer">Wannafly 挑战赛 18-序列<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-16 <a href="https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/" title="2018-06-16 13:18:43" target="_blank" rel="external nofollow noopener noreferrer">简单背包<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-15 <a href="https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/" title="2018-06-15 07:51:21" target="_blank" rel="external nofollow noopener noreferrer">18 湘潭邀请赛参赛队员代表发言<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/" title="2018-06-14 23:32:47" target="_blank" rel="external nofollow noopener noreferrer">18 湘潭邀请赛总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/f-sorting/" title="2018-06-14 22:49:27" target="_blank" rel="external nofollow noopener noreferrer">F.sorting<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/k-2018/" title="2018-06-14 22:48:16" target="_blank" rel="external nofollow noopener noreferrer">K.2018<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/b-higher/" title="2018-06-14 22:47:28" target="_blank" rel="external nofollow noopener noreferrer">B.Higher h-index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/a-easy/" title="2018-06-14 22:36:58" target="_blank" rel="external nofollow noopener noreferrer">A.Easy h-index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/c-sort/" title="2018-06-14 20:23:03" target="_blank" rel="external nofollow noopener noreferrer">sort 排序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/" title="2018-06-14 20:22:21" target="_blank" rel="external nofollow noopener noreferrer">位运算<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/c-with-stl/" title="2018-06-14 20:22:06" target="_blank" rel="external nofollow noopener noreferrer">C++ with STL<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-07 <a href="https://lruihao.cn/posts/links/" title="2018-06-07 00:06:05" target="_blank" rel="external nofollow noopener noreferrer">各种 Links 汇总与分享<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-03 <a href="https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/" title="2018-06-03 19:41:32" target="_blank" rel="external nofollow noopener noreferrer">戏子春秋<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-01 <a href="https://lruihao.cn/posts/hexobuild/" title="2018-06-01 14:34:23" target="_blank" rel="external nofollow noopener noreferrer">hexo+github 搭建个人博客及美化<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-31 <a href="https://lruihao.cn/posts/hexowrite/" title="2018-05-31 23:19:22" target="_blank" rel="external nofollow noopener noreferrer">hexo 添加图片,音乐,链接,视频<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-31 <a href="https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/" title="2018-05-31 10:09:15" target="_blank" rel="external nofollow noopener noreferrer">猴子与哪吒<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-28 <a href="https://lruihao.cn/projects/lruihao/lruihao.github.io/" title="2018-05-28 12:24:11" target="_blank" rel="external nofollow noopener noreferrer">博客构建档(HTML &amp; Markdown)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-28 <a href="https://lruihao.cn/posts/hello-world/" title="2018-05-28 20:01:01" target="_blank" rel="external nofollow noopener noreferrer">Hello World<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> ================================================ FILE: categories/github/page/1/index.html ================================================ https://lruihao.cn/categories/github/ ================================================ FILE: categories/github/page/2/index.html ================================================ GitHub - 分类 | 菠菜眾長
================================================ FILE: categories/github/page/3/index.html ================================================ GitHub - 分类 | 菠菜眾長

GitHub 41

2018

================================================ FILE: categories/go/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Go - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"Beego 安装及配置","date_published":"2022-08-31T09:32:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/beego-install/","url":"https://lruihao.cn/posts/beego-install/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Beego","Go"],"image":"https://lruihao.cn/posts/beego-install/images/featured-image.png","summary":"记录 GO 及 Beego 框架安装及基础配置。\n","content_html":"\u003cp\u003e记录 GO 及 Beego 框架安装及基础配置。\u003c/p\u003e"}]} ================================================ FILE: categories/go/index.html ================================================ Go - 分类 | 菠菜眾長

Go 1

2022

================================================ FILE: categories/go/index.xml ================================================ Go - 分类 | 菠菜眾長https://lruihao.cn/categories/go/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800Beego 安装及配置https://lruihao.cn/posts/beego-install/Wed, 31 Aug 2022 09:32:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/beego-install/Go<p>记录 GO 及 Beego 框架安装及基础配置。</p> ================================================ FILE: categories/go/page/1/index.html ================================================ https://lruihao.cn/categories/go/ ================================================ FILE: categories/grocery/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Grocery - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"Code Playground","date_published":"2025-08-04T11:37:24+08:00","date_modified":"2025-08-27T12:30:22+08:00","id":"https://lruihao.cn/posts/code-playground/","url":"https://lruihao.cn/posts/code-playground/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","npm"],"summary":"以下是常见的在线代码演示和开发环境服务,适合不同场景使用:\n","content_html":"\u003cp\u003e以下是常见的在线代码演示和开发环境服务,适合不同场景使用:\u003c/p\u003e"},{"title":"为什么很多教程中都有 foo bar?","date_published":"2024-01-17T09:58:58+08:00","date_modified":"2024-07-17T17:37:00+08:00","id":"https://lruihao.cn/posts/20b75e9/","url":"https://lruihao.cn/posts/20b75e9/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。\n","content_html":"\u003cp\u003efoo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。\u003c/p\u003e"},{"title":"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效","date_published":"2022-12-15T15:33:30+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/homebrew-npm/","url":"https://lruihao.cn/posts/homebrew-npm/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Homebrew","npm","npx","Mac","nvm","debug"],"summary":" 问题 前面一段时间,安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后,发现虽然 node 版本切换成功,但是 node 版本对应的 npm 和 npx 版本不相符,下面记录一下问题排查过程。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e问题\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e前面一段时间,安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后,发现虽然 node 版本切换成功,但是 node 版本对应的 npm 和 npx 版本不相符,下面记录一下问题排查过程。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"自定义 ohmyzsh 主题","date_published":"2022-07-31T13:54:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ohmyzsh-custom/","url":"https://lruihao.cn/posts/ohmyzsh-custom/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"ohmyzsh 自带了很多主题,也有很多没有收录的扩展主题,我就想要个简约的主题,但是每个都差点意思,干脆改一个主题。\n","content_html":"\u003cp\u003eohmyzsh 自带了很多主题,也有很多没有收录的扩展主题,我就想要个简约的主题,但是每个都差点意思,干脆改一个主题。\u003c/p\u003e"},{"title":"判断三角形的黑盒测试","date_published":"2019-05-26T18:50:53+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/judgetriangle/","url":"https://lruihao.cn/posts/judgetriangle/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["黑盒测试","C"],"summary":" 黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\u003cbr\u003e\n白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宝塔面板安装 ImgURL 图床","date_published":"2019-05-16T20:31:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/imgurl/","url":"https://lruihao.cn/posts/imgurl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ImgURL","宝塔面板"],"image":"/posts/imgurl/images/1.png","summary":" ImgURL 是一个开源、免费的图床程序,ImgURL 2.x 之后对环境要求更高,尤其是 ImageMagick 组件的支持,很多朋友不清楚怎样安装这个组件,这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程(包括 ImgURL 2.x 需要的各种组件) 阅读原文\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eImgURL 是一个开源、免费的图床程序,ImgURL 2.x 之后对环境要求更高,尤其是 ImageMagick 组件的支持,很多朋友不清楚怎样安装这个组件,这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程(包括 ImgURL 2.x 需要的各种组件)\n\u003ca href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e阅读原文\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"条件注释判断浏览器版本\u003c!--[if lt IE 9]\u003e;","date_published":"2019-05-10T13:08:27+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ifzhushi/","url":"https://lruihao.cn/posts/ifzhushi/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","他山之石"],"summary":" \u0026lt;!--[if !IE]\u0026gt;\u0026lt;!--\u0026gt; 除 IE 外都可识别 \u0026lt;!--\u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE]\u0026gt; 所有的 IE 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 6]\u0026gt; 仅 IE6 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if lt IE 6]\u0026gt; IE6 以及 IE6 以下版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if gte IE 6]\u0026gt; IE6 以及 IE6 以上版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 7]\u0026gt; 仅 IE7 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if lt IE 7]\u0026gt; IE7 以及 IE7 以下版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if gte IE 7]\u0026gt; IE7 以及 IE7 以上版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 8]\u0026gt; 仅 IE8 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 9]\u0026gt; 仅 IE9 可识别 \u0026lt;![endif]--\u0026gt;\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cspan\u003e\u0026lt;!--[if !IE]\u0026gt;\u0026lt;!--\u0026gt; 除 IE 外都可识别 \u0026lt;!--\u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE]\u0026gt; 所有的 IE 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 6]\u0026gt; 仅 IE6 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if lt IE 6]\u0026gt; IE6 以及 IE6 以下版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if gte IE 6]\u0026gt; IE6 以及 IE6 以上版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 7]\u0026gt; 仅 IE7 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if lt IE 7]\u0026gt; IE7 以及 IE7 以下版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if gte IE 7]\u0026gt; IE7 以及 IE7 以上版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 8]\u0026gt; 仅 IE8 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 9]\u0026gt; 仅 IE9 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"vps 配置 ssl 及 https 重定向","date_published":"2019-03-28T19:40:54+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/http2https/","url":"https://lruihao.cn/posts/http2https/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SSL","redirect","CDN","JavaScript","server"],"summary":" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"博採眾長 app","date_published":"2018-11-12T16:04:04+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/fas-app/","url":"https://lruihao.cn/posts/fas-app/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["lua","fusion"],"summary":"0.7 介绍 使用 fusion app 对网页进行的封装。\n功能:\n浏览本博客,主页 私人网盘 2048 等小游戏 在线客服,QQ 等 pc 与移动浏览器标识切换 留言,打赏,博主日志等 分享功能,分享到 QQ,微信,浏览器打开等 app 内添加书签,自动记录历史记录,刷新等 配合博客的PWA + quicklink功能可实现离线浏览 ","content_html":"\u003ch3 class=\"heading-element\" id=\"介绍\"\u003e\u003cspan\u003e0.7 介绍\u003c/span\u003e\n \u003ca href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e使用 fusion app 对网页进行的封装。\u003cbr\u003e\n功能:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e浏览本博客,主页\u003c/li\u003e\n\u003cli\u003e私人网盘\u003c/li\u003e\n\u003cli\u003e2048 等小游戏\u003c/li\u003e\n\u003cli\u003e在线客服,QQ 等\u003c/li\u003e\n\u003cli\u003epc 与移动浏览器标识切换\u003c/li\u003e\n\u003cli\u003e留言,打赏,博主日志等\u003c/li\u003e\n\u003cli\u003e分享功能,分享到 QQ,微信,浏览器打开等\u003c/li\u003e\n\u003cli\u003eapp 内添加书签,自动记录历史记录,刷新等\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e配合博客的\u003ccode\u003ePWA + quicklink\u003c/code\u003e功能可实现离线浏览\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"caddy-两步搭建超简单云盘","date_published":"2018-11-11T13:59:27+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/caddy-file/","url":"https://lruihao.cn/posts/caddy-file/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["云盘","caddy","server"],"summary":"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e11 安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003ecd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"编写配置文件\"\u003e\u003cspan\u003e12 编写配置文件\u003c/span\u003e\n \u003ca href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003evim Caddyfile\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e内容如下:\u003c/p\u003e"},{"title":"windows 上搭建 web 服务器","date_published":"2018-10-26T21:56:18+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/web-server-win/","url":"https://lruihao.cn/posts/web-server-win/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["server","windows"],"summary":" 我用的 win10\n0.1 打开控制面板 选择并进入“程序”,双击“启用或关闭 Windows 服务”,在弹出的窗口中选择“Internet Information Services”下面所有地选项,点击确定后,开始更新服务。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我用的 win10\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"打开控制面板\"\u003e\u003cspan\u003e0.1 打开控制面板\u003c/span\u003e\n \u003ca href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e选择并进入“程序”,双击“启用或关闭 Windows 服务”,在弹出的窗口中选择“Internet Information Services”下面所有地选项,点击确定后,开始更新服务。\u003cbr\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"\u003ch2\u003e打开控制面板\u003c/h2\u003e\u003cp\u003e打开控制面板\u003c/p\u003e"},{"title":"流水线","date_published":"2018-10-09T16:21:04+08:00","date_modified":"2018-10-09T16:21:04+08:00","id":"https://lruihao.cn/posts/liushuixian/","url":"https://lruihao.cn/posts/liushuixian/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["流水线","计算机组成与体系结构"],"summary":"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"概念\"\u003e\u003cspan\u003e15 概念\u003c/span\u003e\n \u003ca href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。\u003c/p\u003e"},{"title":"计算机数据","date_published":"2018-10-08T23:01:10+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/data/","url":"https://lruihao.cn/posts/data/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["计算机数据","计算机组成与体系结构"],"summary":"0.1 数据的表示 数据的表示可分为:原码,反码和补码。(二进制)\n原码:符号位 0 为正,1 为负。 反码:符号位 0 为正,1 为负。 正数:反码同原码。 负数:符号位除外其他位按位取反。 补码: 正数:同原码。 负数:符号位除外其他位按位取反再 +1。 移码:补码符号位取反。 0.2 数据表示范围 原码: -(z^n-1 - 1) ~ 2^n-1 - 1 反码: -(z^n-1 - 1) ~ 2^n-1 - 1 补码: -z^n-1 ~ 2^n-1 - 1 (补码正 0 和负 0 相同,少占一数位,就多一个范围) 例: 8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"数据的表示\"\u003e\u003cspan\u003e0.1 数据的表示\u003c/span\u003e\n \u003ca href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e数据的表示可分为:原码,反码和补码。(二进制)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e原码:符号位 0 为正,1 为负。\u003c/li\u003e\n\u003cli\u003e反码:符号位 0 为正,1 为负。\n\u003cul\u003e\n\u003cli\u003e正数:反码同原码。\u003c/li\u003e\n\u003cli\u003e负数:符号位除外其他位按位取反。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e补码:\n\u003cul\u003e\n\u003cli\u003e正数:同原码。\u003c/li\u003e\n\u003cli\u003e负数:符号位除外其他位按位取反再 +1。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e移码:补码符号位取反。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 class=\"heading-element\" id=\"数据表示范围\"\u003e\u003cspan\u003e0.2 数据表示范围\u003c/span\u003e\n \u003ca href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e原码: \u003ccode\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e反码: \u003ccode\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e补码: \u003ccode\u003e-z^n-1 ~ 2^n-1 - 1\u003c/code\u003e (补码正 0 和负 0 相同,少占一数位,就多一个范围)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例:\n8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。\u003c/p\u003e"},{"title":"linux/centos 下的安装 git","date_published":"2018-09-22T22:28:45+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/linux-git/","url":"https://lruihao.cn/posts/linux-git/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","linux"],"summary":"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注: unzip 命令用不了,具体步骤如下:\n","content_html":"\u003ch3 class=\"heading-element\" id=\"下载-git\"\u003e\u003cspan\u003e0.11 下载 git\u003c/span\u003e\n \u003ca href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003ewget https://github.com/git/git/archive/v2.14.1.zip\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"安装依赖\"\u003e\u003cspan\u003e0.12 安装依赖\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"解压-git\"\u003e\u003cspan\u003e0.13 解压 git\u003c/span\u003e\n \u003ca href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003eunzip v2.14.1.zip\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e注:\nunzip 命令用不了,具体步骤如下:\u003c/p\u003e"},{"title":"在线离线算法","date_published":"2018-07-26T09:57:32+08:00","date_modified":"2018-07-26T09:57:32+08:00","id":"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/","url":"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["在线离线算法"],"summary":"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"在线算法\"\u003e\u003cspan\u003e1 \u003ca href=\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线算法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。\u003c/p\u003e"},{"title":"位运算","date_published":"2018-06-14T20:22:21+08:00","date_modified":"2018-06-14T20:22:21+08:00","id":"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/","url":"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["位运算"],"summary":"1 1. \u0026amp;运算 \u0026amp;运算通常用于二进制取位操作,例如一个数 \u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"1-运算\"\u003e\u003cspan\u003e1 1. \u0026amp;运算\u003c/span\u003e\n \u003ca href=\"#1-%e8%bf%90%e7%ae%97\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u0026amp;运算通常用于二进制取位操作,例如一个数 \u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。\u003c/p\u003e"}]} ================================================ FILE: categories/grocery/index.html ================================================ Grocery - 分类 | 菠菜眾長
================================================ FILE: categories/grocery/index.xml ================================================ Grocery - 分类 | 菠菜眾長https://lruihao.cn/categories/grocery/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 27 Aug 2025 12:30:22 +0800Code Playgroundhttps://lruihao.cn/posts/code-playground/Mon, 04 Aug 2025 11:37:24 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/code-playground/Grocery<p>以下是常见的在线代码演示和开发环境服务,适合不同场景使用:</p>为什么很多教程中都有 foo bar?https://lruihao.cn/posts/20b75e9/Wed, 17 Jan 2024 09:58:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/20b75e9/Grocery<p>foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。</p>安装 Homebrew 后导致系统中原有的 npm 和 npx 失效https://lruihao.cn/posts/homebrew-npm/Thu, 15 Dec 2022 15:33:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/homebrew-npm/Grocery<div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>问题<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">前面一段时间,安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后,发现虽然 node 版本切换成功,但是 node 版本对应的 npm 和 npx 版本不相符,下面记录一下问题排查过程。</div> </div> </div>自定义 ohmyzsh 主题https://lruihao.cn/posts/ohmyzsh-custom/Sun, 31 Jul 2022 13:54:14 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ohmyzsh-custom/Grocery<p>ohmyzsh 自带了很多主题,也有很多没有收录的扩展主题,我就想要个简约的主题,但是每个都差点意思,干脆改一个主题。</p>判断三角形的黑盒测试https://lruihao.cn/posts/judgetriangle/Sun, 26 May 2019 18:50:53 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/judgetriangle/Grocery<blockquote> <p>黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。<br> 白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。</p> </blockquote>宝塔面板安装 ImgURL 图床https://lruihao.cn/posts/imgurl/Thu, 16 May 2019 20:31:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/imgurl/Grocery<blockquote> <p>ImgURL 是一个开源、免费的图床程序,ImgURL 2.x 之后对环境要求更高,尤其是 ImageMagick 组件的支持,很多朋友不清楚怎样安装这个组件,这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程(包括 ImgURL 2.x 需要的各种组件) <a href="https://www.xiaoz.me/archives/12081" target="_blank" rel="external nofollow noopener noreferrer">阅读原文<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>条件注释判断浏览器版本<!--[if lt IE 9]>;https://lruihao.cn/posts/ifzhushi/Fri, 10 May 2019 13:08:27 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ifzhushi/Grocery<blockquote> <p><span>&lt;!--[if !IE]&gt;&lt;!--&gt; 除 IE 外都可识别 &lt;!--&lt;![endif]--&gt;</span><br><span>&lt;!--[if IE]&gt; 所有的 IE 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 6]&gt; 仅 IE6 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if lt IE 6]&gt; IE6 以及 IE6 以下版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if gte IE 6]&gt; IE6 以及 IE6 以上版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 7]&gt; 仅 IE7 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if lt IE 7]&gt; IE7 以及 IE7 以下版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if gte IE 7]&gt; IE7 以及 IE7 以上版本可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 8]&gt; 仅 IE8 可识别 &lt;![endif]--&gt;</span><br><span>&lt;!--[if IE 9]&gt; 仅 IE9 可识别 &lt;![endif]--&gt;</span></p> </blockquote>vps 配置 ssl 及 https 重定向https://lruihao.cn/posts/http2https/Thu, 28 Mar 2019 19:40:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/http2https/Grocery<blockquote> <p>记录自己在配置 vps 及博客 SSL 证书时遇到的问题。</p> </blockquote>博採眾長 apphttps://lruihao.cn/posts/fas-app/Mon, 12 Nov 2018 16:04:04 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/fas-app/Grocery<h3 class="heading-element" id="介绍"><span>0.10 介绍</span> <a href="#%e4%bb%8b%e7%bb%8d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>使用 fusion app 对网页进行的封装。<br> 功能:</p> <ul> <li>浏览本博客,主页</li> <li>私人网盘</li> <li>2048 等小游戏</li> <li>在线客服,QQ 等</li> <li>pc 与移动浏览器标识切换</li> <li>留言,打赏,博主日志等</li> <li>分享功能,分享到 QQ,微信,浏览器打开等</li> <li>app 内添加书签,自动记录历史记录,刷新等</li> <li><strong>配合博客的<code>PWA + quicklink</code>功能可实现离线浏览</strong></li> </ul>caddy-两步搭建超简单云盘https://lruihao.cn/posts/caddy-file/Sun, 11 Nov 2018 13:59:27 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/caddy-file/Grocery<h2 class="heading-element" id="安装"><span>16 安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>cd ~ curl https://getcaddy.com | bash -s personal http.filemanager</code></pre><h2 class="heading-element" id="编写配置文件"><span>17 编写配置文件</span> <a href="#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>vim Caddyfile</code></pre><p>内容如下:</p>windows 上搭建 web 服务器https://lruihao.cn/posts/web-server-win/Fri, 26 Oct 2018 21:56:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/web-server-win/Grocery<blockquote> <p>我用的 win10</p> </blockquote> <h3 class="heading-element" id="打开控制面板"><span>0.1 打开控制面板</span> <a href="#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>选择并进入“程序”,双击“启用或关闭 Windows 服务”,在弹出的窗口中选择“Internet Information Services”下面所有地选项,点击确定后,开始更新服务。<br> <figure><a class="lightgallery" target="_blank" href="https://lruihao.cn/posts/web-server-win/images/1.png" title="打开控制面板" data-thumbnail="/posts/web-server-win/images/1.png" data-sub-html="<h2>打开控制面板</h2><p>打开控制面板</p>流水线https://lruihao.cn/posts/liushuixian/Tue, 09 Oct 2018 16:21:04 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/liushuixian/Grocery<h2 class="heading-element" id="概念"><span>22 概念</span> <a href="#%e6%a6%82%e5%bf%b5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。</p>计算机数据https://lruihao.cn/posts/data/Mon, 08 Oct 2018 23:01:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/data/Grocery<h3 class="heading-element" id="数据的表示"><span>0.1 数据的表示</span> <a href="#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><strong>数据的表示可分为:原码,反码和补码。(二进制)</strong></p> <ul> <li>原码:符号位 0 为正,1 为负。</li> <li>反码:符号位 0 为正,1 为负。 <ul> <li>正数:反码同原码。</li> <li>负数:符号位除外其他位按位取反。</li> </ul> </li> <li>补码: <ul> <li>正数:同原码。</li> <li>负数:符号位除外其他位按位取反再 +1。</li> </ul> </li> <li>移码:补码符号位取反。</li> </ul> <h3 class="heading-element" id="数据表示范围"><span>0.2 数据表示范围</span> <a href="#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li>原码: <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li> <li>反码: <code>-(z^n-1 - 1) ~ 2^n-1 - 1</code></li> <li>补码: <code>-z^n-1 ~ 2^n-1 - 1</code> (补码正 0 和负 0 相同,少占一数位,就多一个范围)</li> </ul> <p>例: 8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。</p>linux/centos 下的安装 githttps://lruihao.cn/posts/linux-git/Sat, 22 Sep 2018 22:28:45 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/linux-git/Grocery<h3 class="heading-element" id="下载-git"><span>0.16 下载 git</span> <a href="#%e4%b8%8b%e8%bd%bd-git" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>wget https://github.com/git/git/archive/v2.14.1.zip</code></pre><h3 class="heading-element" id="安装依赖"><span>0.17 安装依赖</span> <a href="#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker</code></pre><h3 class="heading-element" id="解压-git"><span>0.18 解压 git</span> <a href="#%e8%a7%a3%e5%8e%8b-git" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>unzip v2.14.1.zip</code></pre><p>注: unzip 命令用不了,具体步骤如下:</p>在线离线算法https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/Thu, 26 Jul 2018 09:57:32 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/Grocery<h2 class="heading-element" id="在线算法"><span>1 <a href="https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947" target="_blank" rel="external nofollow noopener noreferrer">在线算法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。</p>位运算https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/Thu, 14 Jun 2018 20:22:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/Grocery<h2 class="heading-element" id="1-运算"><span>1 1. &amp;运算</span> <a href="#1-%e8%bf%90%e7%ae%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>&amp;运算通常用于二进制取位操作,例如一个数 &amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。</p> ================================================ FILE: categories/grocery/page/1/index.html ================================================ https://lruihao.cn/categories/grocery/ ================================================ FILE: categories/html/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"HTML - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"黑盒出关・三把钥匙定江湖","date_published":"2025-08-05T11:31:52+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/wc-01-prologue/","url":"https://lruihao.cn/posts/wc-01-prologue/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"image":"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp","summary":"江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\n","content_html":"\u003cp\u003e江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\u003c/p\u003e"},{"title":"聊聊 Chrome 新增的 sizes=\"auto\" 属性","date_published":"2024-02-21T10:00:13+08:00","date_modified":"2024-02-21T11:06:12+08:00","id":"https://lruihao.cn/posts/auto-sizes/","url":"https://lruihao.cn/posts/auto-sizes/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML"],"summary":"聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性。\n","content_html":"\u003cp\u003e聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性。\u003c/p\u003e"},{"title":"Web Components","date_published":"2023-10-12T15:16:48+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/web-components/","url":"https://lruihao.cn/posts/web-components/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"content_html":"Web Component 是一组 Web 平台的标准,允许开发者创建可重用的自定义元素和组件。"},{"title":"浏览器 IMG 图片原生懒加载 loading=\"lazy\"","date_published":"2023-02-12T19:40:43+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/native-img-loading-lazy/","url":"https://lruihao.cn/posts/native-img-loading-lazy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","eager","lazy","loading"],"summary":"记录使用 HTML 原生方案实现图片的懒加载。\n","content_html":"\u003cp\u003e记录使用 HTML 原生方案实现图片的懒加载。\u003c/p\u003e"}]} ================================================ FILE: categories/html/index.html ================================================ HTML - 分类 | 菠菜眾長
================================================ FILE: categories/html/index.xml ================================================ HTML - 分类 | 菠菜眾長https://lruihao.cn/categories/html/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Tue, 05 Aug 2025 15:37:16 +0800黑盒出关・三把钥匙定江湖https://lruihao.cn/posts/wc-01-prologue/Tue, 05 Aug 2025 11:31:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wc-01-prologue/JavaScriptHTML<p>江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!</p>聊聊 Chrome 新增的 sizes="auto" 属性https://lruihao.cn/posts/auto-sizes/Wed, 21 Feb 2024 10:00:13 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/auto-sizes/HTML<p>聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性。</p>Web Componentshttps://lruihao.cn/posts/web-components/Thu, 12 Oct 2023 15:16:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/web-components/JavaScriptHTMLWeb Component 是一组 Web 平台的标准,允许开发者创建可重用的自定义元素和组件。浏览器 IMG 图片原生懒加载 loading="lazy"https://lruihao.cn/posts/native-img-loading-lazy/Sun, 12 Feb 2023 19:40:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/native-img-loading-lazy/HTML<p>记录使用 HTML 原生方案实现图片的懒加载。</p> ================================================ FILE: categories/html/page/1/index.html ================================================ https://lruihao.cn/categories/html/ ================================================ FILE: categories/index.html ================================================ 所有分类 | 菠菜眾長

所有分类 23

================================================ FILE: categories/java/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Java - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"java 实现一个单线程的资源下载器","date_published":"2019-05-08T20:55:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/singlethreaddown/","url":"https://lruihao.cn/posts/singlethreaddown/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GUI","URLConnection","HTTP","Java"],"image":"https://lruihao.cn/posts/singlethreaddown/images/1.png","summary":" 实现一个简单的基于单线程的资源下载器,如图所示,用户可以任意指定下载资源的链接地址,系统根据该地址判断资源是否存在,如果存在,则将该资源下载到本地。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e实现一个简单的基于单线程的资源下载器,如图所示,用户可以任意指定下载资源的链接地址,系统根据该地址判断资源是否存在,如果存在,则将该资源下载到本地。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 通过 URL 和 URLConnection 访问网页资源","date_published":"2019-05-06T17:41:35+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-urlreader/","url":"https://lruihao.cn/posts/java-urlreader/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["URLConnection","Java"],"summary":" 该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"文件加密解密(字节流)","date_published":"2019-05-02T23:04:32+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/byteio/","url":"https://lruihao.cn/posts/byteio/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。\n这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。\u003c/p\u003e\n\u003cp\u003e这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"模拟借书系统(java 异常练习)","date_published":"2019-05-01T16:52:21+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/javaexception/","url":"https://lruihao.cn/posts/javaexception/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"image":"/posts/javaexception/images/1.png","content_html":"模拟借书系统(java 异常练习)"},{"title":"用记事本编写第一个 java 程序","date_published":"2019-04-19T19:49:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/hellojava/","url":"https://lruihao.cn/posts/hellojava/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以.java为后缀的文件;然后将这些源程序用javac编译成.class后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。\njavac java ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以\u003ccode\u003e.java\u003c/code\u003e为后缀的文件;然后将这些源程序用\u003ccode\u003ejavac\u003c/code\u003e编译成\u003ccode\u003e.class\u003c/code\u003e后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\u003cbr\u003e\n由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003ejavac\u003c/li\u003e\n\u003cli\u003ejava\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"java 正则表达式练习","date_published":"2019-04-18T22:04:21+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-regex/","url":"https://lruihao.cn/posts/java-regex/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["regex","Java"],"summary":"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果:\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果:true lruihao.cn 匹配结果:false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果: \"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() \u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";","content_html":"\u003ch2 class=\"heading-element\" id=\"邮箱\"\u003e\u003cspan\u003e7 邮箱\u003c/span\u003e\n \u003ca href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\");\n String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email + \"匹配结果:\" + matcher.matches());\n }\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003eadmin@lruihao.cn 匹配结果:true\nlruihao.cn 匹配结果:false\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"电话\"\u003e\u003cspan\u003e8 电话\u003c/span\u003e\n \u003ca href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epackage base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\");\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum+\"匹配结果: \"+matcher.matches());\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的\n p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的\n if (str.length() \u003e 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"身份证\"\u003e\u003cspan\u003e9 身份证\u003c/span\u003e\n \u003ca href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" +\n \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" +\n \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";\u003c/code\u003e\u003c/pre\u003e"},{"title":"java 常用类","date_published":"2019-04-14T10:12:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/stringbuffer/","url":"https://lruihao.cn/posts/stringbuffer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["StringBuffer","sort","Java"],"summary":"9 StringBuffer/StringBuilder(掌握) 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些,但是不安全。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"\u003e\u003cspan\u003e9 StringBuffer/StringBuilder(掌握)\u003c/span\u003e\n \u003ca href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"\u003e\u003cspan\u003e9.1 StringBuffer 是线程安全的可变字符串\u003c/span\u003e\n \u003ca href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eStringBuilder 是线程不安全的可变字符串。\u003cbr\u003e\n和 StringBuffer 的功能一样。就是效率高一些,但是不安全。\u003c/p\u003e"},{"title":"Java 父类子类的对象初始化过程","date_published":"2019-03-21T13:36:25+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/substatus/","url":"https://lruihao.cn/posts/substatus/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 摘要:Java 基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e摘要:Java 基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 泛型 test","date_published":"2019-03-16T13:56:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/fanxing/","url":"https://lruihao.cn/posts/fanxing/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["泛型","Java"],"summary":" 泛型方法,它在修饰符后,返回值类型前增加了类型参数 (\u0026lt;\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参,注意不是类型形参。 ","content_html":"\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e泛型方法,它在修饰符后,返回值类型前增加了类型参数 (\u0026lt;\u0026gt;)\u003c/li\u003e\n\u003cli\u003e类型通配符一般使用问号\u003ccode\u003e?\u003c/code\u003e代替具体的类型\u003ccode\u003e实\u003c/code\u003e参,注意不是类型形参。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e"},{"title":"匿名类在可视化界面中的应用","date_published":"2019-03-15T22:31:28+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qframe/","url":"https://lruihao.cn/posts/qframe/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GUI","Java"],"summary":" java 中匿名类用的最多的地方就是可视化界面设计中,特别是将事件监听器注册到某个组件上的时候。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ejava 中匿名类用的最多的地方就是可视化界面设计中,特别是将\u003ccode\u003e事件监听器\u003c/code\u003e注册到某个组件上的时候。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 继承 test","date_published":"2019-01-24T15:07:50+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/jicheng/","url":"https://lruihao.cn/posts/jicheng/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 引用 继承的好处:\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系,是多态的前提 继承的弊端:类的耦合性很强\n设计原则:低耦合,高内聚。\n耦合:类与类的关系。 内聚:自己完成事情的能力。 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e引用\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e继承的好处:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e提高了代码的复用性\u003c/li\u003e\n\u003cli\u003e提高了代码的维护性\u003c/li\u003e\n\u003cli\u003e让类与类之间产生了关系,是多态的前提\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e继承的弊端:类的耦合性很强\u003c/p\u003e\n\u003cp\u003e设计原则:低耦合,高内聚。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e耦合:类与类的关系。\u003c/li\u003e\n\u003cli\u003e内聚:自己完成事情的能力。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Arrays 类及基本使用","date_published":"2019-01-18T13:13:10+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-arrays/","url":"https://lruihao.cn/posts/java-arrays/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java","Collator","Comparator"],"summary":"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) ","content_html":"\u003ch2 class=\"heading-element\" id=\"主要方法\"\u003e\u003cspan\u003e7 主要方法\u003c/span\u003e\n \u003ca href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003estatic type[] copyof(type[] original,int length)\u003c/li\u003e\n\u003cli\u003estatic int binarysearch(type[] a,type key)\u003c/li\u003e\n\u003cli\u003estatic boolean equals(type[] a,type[] b)\u003c/li\u003e\n\u003cli\u003estatic void fill(type[] a,type val)\u003c/li\u003e\n\u003cli\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\u003c/li\u003e\n\u003cli\u003estatic void sort(type[] a)\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"java 猜数字小游戏(Math 类)","date_published":"2019-01-15T17:33:28+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mathclass/","url":"https://lruihao.cn/posts/mathclass/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点:没有构造方法,因为它的成员都是静态的 产生随机数: public static double random(): 产生随机数,范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e大一刚学 c 的时候以前写过 \u003ca href=\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ec 语言版\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003col\u003e\n\u003cli\u003eMath: 针对数学进行运算的类\u003c/li\u003e\n\u003cli\u003e特点:没有构造方法,因为它的成员都是静态的\u003c/li\u003e\n\u003cli\u003e产生随机数:\npublic static double random(): 产生随机数,范围 [0.0,1.0)\u003c/li\u003e\n\u003cli\u003e产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;\u003c/li\u003e\n\u003cli\u003e猜数字小游戏案例\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"面向对象基础知识总结","date_published":"2019-01-15T16:07:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/duixiang/","url":"https://lruihao.cn/posts/duixiang/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["面向对象","Java"],"summary":"35 面向对象思想(理解) 面向对象是基于面向过程的一种编程思想 思想特点:\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例:\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象(掌握) 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢? 属性:外在特征\n行为:内在行为 我们学习的是 java 语言,它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类:是一组相关的属性和行为的集合 对象:是该类事物的具体个体。 举例:\n学生 类\n张三 对象 37 类的组成(掌握) 成员变量\n其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。 成员方法\n其实就是方法,只不过不需要 static 了 案例:\n学生类 class Student { String name; int age; public void study() {} }38 类的使用(掌握) 创建对象\n格式:类名 对象名 = new 类名 (); 使用成员\n成员变量:对象名。变量名; 成员方法:对象名。方法名 (\u0026hellip;); 39 成员变量和局部变量的区别(理解) 在类中的位置不同\nA: 成员变量 类中,方法外\nB: 局部变量 方法的形式参数,或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在,随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值,必须先声明,赋值,最后才能使用 40 形式参数问题(理解) 基本类型\n基本类型作为形式参数,需要的是该基本类型的值。 引用类型\n引用类型作为形式参数,需要的是该引用类型的地址值。(对象) 41 匿名对象(理解) 匿名对象:没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法,仅仅只调用一次\nB: 作为实际参数传递 42 封装(掌握) 隐藏实现细节,提供公共的访问方式 好处:\nA: 隐藏实现细节,提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 43 private 关键字(掌握) 是一个权限修饰符 可以修饰类的成员(成员变量和成员方法) 仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法 标准代码: class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字(掌握) this:代表本类的对象 应用场景:\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码: class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是:\"+s.getName()); System.out.println(\"年龄是:\"+s.getAge()); } }45 构造方法(掌握) 作用:对对象的数据进行初始化。 特点:\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法,系统将默认给出无参构造方法\nB: 如果我们写了构造方法,系统将不再给出默认无参构造方法\n建议:我们自己手动给出无参构造方法 给成员变量赋值:\nA: 无参+setXxx()\nB: 带参 一个标准的代码: class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } }46 对象的初始化过程(理解) Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕,把地址赋值给 s 变量 47 static 关键字(掌握) 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点:\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例:饮水机(可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容,可以通过类名调用,也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量,静态成员方法\n简记:静态只能访问静态\n注意:\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。 * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。 * * 在 java 中,用什么来表示成员变量是被共享的呢?static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } }/* static: 静态关键字。 作用: 可以修饰成员变量和成员方法 特点: A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机:可以被静态修饰 水杯:不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象,还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\u0026ensp; } }/* static 的注意事项: A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法: 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法 静态的成员方法: 只能访问静态的成员变量,静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } }48 静态成员变量和普通成员变量的区别(理解) 所属不同\n静态属于类的,称为类变量\n非静态属于对象的,称为对象变量,实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载,随着类的消失而消失\n非静态随着对象的创建而存在,随着对象的消失而消失 调用不同\n静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 49 main 方法是静态的(理解) public static void main(String[] args)public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。\nstatic: 被 jvm 调用,不用创建对象,直接类名访问\nvoid: 被 jvm 调用,不需要给 jvm 返回值\nmain: 一个通用的名称,虽然不是关键字,但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"面向对象思想理解\"\u003e\u003cspan\u003e35 面向对象思想(理解)\u003c/span\u003e\n \u003ca href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e面向对象是基于面向过程的一种编程思想\u003c/li\u003e\n\u003cli\u003e思想特点:\u003cbr\u003e\nA: 是一种更符合我们思考习惯的思想\u003cbr\u003e\nB: 把复杂的问题简单化\u003cbr\u003e\nC: 让我们从执行者变成了指挥者\u003c/li\u003e\n\u003cli\u003e举例:\u003cbr\u003e\nA: 洗衣服\u003cbr\u003e\nB: 吃饭\u003cbr\u003e\nC: 买电脑\u003c/li\u003e\n\u003cli\u003e举例并代码体现\n把大象装进冰箱\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"类与对象掌握\"\u003e\u003cspan\u003e36 类与对象(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\u003c/li\u003e\n\u003cli\u003e现实世界事物是如何表达的呢?\n属性:外在特征\u003cbr\u003e\n行为:内在行为\u003c/li\u003e\n\u003cli\u003e我们学习的是 java 语言,它最基本的单位是类。\u003cbr\u003e\n所以我们要学会用类来体现一个事物。\u003c/li\u003e\n\u003cli\u003e类:是一组相关的属性和行为的集合\u003c/li\u003e\n\u003cli\u003e对象:是该类事物的具体个体。\u003c/li\u003e\n\u003cli\u003e举例:\u003cbr\u003e\n学生 类\u003cbr\u003e\n张三 对象\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"类的组成掌握\"\u003e\u003cspan\u003e37 类的组成(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e成员变量\u003cbr\u003e\n其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。\u003c/li\u003e\n\u003cli\u003e成员方法\u003cbr\u003e\n其实就是方法,只不过不需要 static 了\u003c/li\u003e\n\u003cli\u003e案例:\u003cbr\u003e\n学生类\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003eclass Student {\n String name;\n int age;\n\n public void study() {}\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"类的使用掌握\"\u003e\u003cspan\u003e38 类的使用(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e创建对象\u003cbr\u003e\n格式:类名 对象名 = new 类名 ();\u003c/li\u003e\n\u003cli\u003e使用成员\u003cbr\u003e\n成员变量:对象名。变量名;\n成员方法:对象名。方法名 (\u0026hellip;);\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"\u003e\u003cspan\u003e39 成员变量和局部变量的区别(理解)\u003c/span\u003e\n \u003ca href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e在类中的位置不同\u003cbr\u003e\nA: 成员变量 类中,方法外\u003cbr\u003e\nB: 局部变量 方法的形式参数,或者方法体中\u003c/li\u003e\n\u003cli\u003e在内存中的位置不同\u003cbr\u003e\nA: 成员变量 在堆中\u003cbr\u003e\nB: 局部变量 在栈中\u003c/li\u003e\n\u003cli\u003e生命周期不同\u003cbr\u003e\nA: 成员变量 随着对象的存在而存在,随着对象的消失而消失\u003cbr\u003e\nB: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失\u003c/li\u003e\n\u003cli\u003e初始化值不同\u003cbr\u003e\nA: 成员变量 有默认初始化值\u003cbr\u003e\nB: 局部变量 没有默认值,必须先声明,赋值,最后才能使用\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"形式参数问题理解\"\u003e\u003cspan\u003e40 形式参数问题(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e基本类型\u003cbr\u003e\n基本类型作为形式参数,需要的是该基本类型的值。\u003c/li\u003e\n\u003cli\u003e引用类型\u003cbr\u003e\n引用类型作为形式参数,需要的是该引用类型的地址值。(对象)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"匿名对象理解\"\u003e\u003cspan\u003e41 匿名对象(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e匿名对象:没有名字的对象。是对象的简化书写方式。\u003c/li\u003e\n\u003cli\u003e使用场景\u003cbr\u003e\nA: 调用方法,仅仅只调用一次\u003cbr\u003e\nB: 作为实际参数传递\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"封装掌握\"\u003e\u003cspan\u003e42 封装(掌握)\u003c/span\u003e\n \u003ca href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e隐藏实现细节,提供公共的访问方式\u003c/li\u003e\n\u003cli\u003e好处:\u003cbr\u003e\nA: 隐藏实现细节,提供公共的访问方式\u003cbr\u003e\nB: 提高了代码的复用性\u003cbr\u003e\nC: 提高了代码的安全性\u003c/li\u003e\n\u003cli\u003e使用原则\u003cbr\u003e\nA: 把成员变量隐藏\u003cbr\u003e\nB: 给出该成员变量对应的公共访问方式\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"private-关键字掌握\"\u003e\u003cspan\u003e43 private 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e是一个权限修饰符\u003c/li\u003e\n\u003cli\u003e可以修饰类的成员(成员变量和成员方法)\u003c/li\u003e\n\u003cli\u003e仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法\u003c/li\u003e\n\u003cli\u003e标准代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003eclass Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"this-关键字掌握\"\u003e\u003cspan\u003e44 this 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003ethis:代表本类的对象\u003c/li\u003e\n\u003cli\u003e应用场景:\u003cbr\u003e\n解决了局部变量隐藏成员变量的问题。\u003cbr\u003e\n其他用法和 super 一起讲。\u003c/li\u003e\n\u003cli\u003e标准代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age);\n }\n\n public void study() {\n System.out.println(\"学生爱学习\");\n }\n\n public void eat() {\n System.out.println(\"学生要吃饭\");\n }\n\n public void sleep() {\n System.out.println(\"学生想睡觉\");\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(\"林青霞\");\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(\"姓名是:\"+s.getName());\n System.out.println(\"年龄是:\"+s.getAge());\n }\n }\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"构造方法掌握\"\u003e\u003cspan\u003e45 构造方法(掌握)\u003c/span\u003e\n \u003ca href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e作用:对对象的数据进行初始化。\u003c/li\u003e\n\u003cli\u003e特点:\u003cbr\u003e\nA: 方法名和类名相同\u003cbr\u003e\nB: 没有返回值类型\u003cbr\u003e\nC: 没有返回值\u003c/li\u003e\n\u003cli\u003e注意事项\u003cbr\u003e\nA: 如果我们没写构造方法,系统将默认给出无参构造方法\u003cbr\u003e\nB: 如果我们写了构造方法,系统将不再给出默认无参构造方法\u003cbr\u003e\n建议:我们自己手动给出无参构造方法\u003c/li\u003e\n\u003cli\u003e给成员变量赋值:\u003cbr\u003e\nA: 无参+setXxx()\u003cbr\u003e\nB: 带参\u003c/li\u003e\n\u003cli\u003e一个标准的代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参+setXxx()\n Student s = new Student();\n s.setName(\"林青霞\");\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(\"张曼玉\",20);\n ss.show();\n }\n }\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"对象的初始化过程理解\"\u003e\u003cspan\u003e46 对象的初始化过程(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eStudent s = new Student(); 做了哪些事情\u003cbr\u003e\nA: 加载 Student.class 文件进内存\u003cbr\u003e\nB: 在栈中为 s 开辟空间\u003cbr\u003e\nC: 在堆中为学生对象开辟空间\u003cbr\u003e\nD: 为学生对象的成员变量赋默认值\u003cbr\u003e\nE: 为学生对象的成员变量赋显示值\u003cbr\u003e\nF: 通过构造方法给成员变量赋值\u003cbr\u003e\nG: 对象构造完毕,把地址赋值给 s 变量\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"static-关键字掌握\"\u003e\u003cspan\u003e47 static 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e是一个状态修饰符。静态的意思\u003c/li\u003e\n\u003cli\u003e它可以修饰成员变量和成员方法\u003c/li\u003e\n\u003cli\u003e特点:\u003cbr\u003e\n\u003cstrong\u003eA: 随着类的加载而加载\u003cbr\u003e\nB: 优先于对象存在\u003cbr\u003e\nC: 被所有对象共享\u003c/strong\u003e\u003cbr\u003e\n这也是判断我们是不是该使用静态的条件\u003cbr\u003e\n举例:饮水机(可共享 static) 和水杯例子。\u003cbr\u003e\nD: 可以通过类名调用\u003cbr\u003e\n静态修饰的内容,可以通过类名调用,也可以通过对象名调用\u003c/li\u003e\n\u003cli\u003e方法访问特点\u003cbr\u003e\nA: 普通成员方法\u003cbr\u003e\n可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\u003cbr\u003e\nB: 静态成员方法\u003cbr\u003e\n\u003cstrong\u003e只能访问静态成员变量,静态成员方法\u003cbr\u003e\n简记:静态只能访问静态\u003c/strong\u003e\u003cbr\u003e\n注意:\u003cbr\u003e\n\u003cstrong\u003e静态中是不能有 this 的。\u003cbr\u003e\n先进内存的不能访问后进内存的。反之可以。\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e/**\n * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。\n * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。\n *\n * 在 java 中,用什么来表示成员变量是被共享的呢?static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name+\"---\"+age+\"---\"+classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(\"林青霞\",28,\"20150306\");\n s1.show();\n\n /*\n Student s2 = new Student(\"马云\",35,\"20150306\");\n s2.show();\n\n Student s3 = new Student(\"马化腾\",33,\"20150306\");\n s3.show();\n */\n Student s2 = new Student(\"马云\",35);\n s2.show();\n\n Student s3 = new Student(\"马化腾\",33);\n s3.show();\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/*\n static: 静态关键字。\n\n 作用:\n 可以修饰成员变量和成员方法\n\n 特点:\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机:可以被静态修饰\n 水杯:不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象,还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(\"show\");\n }\n\n public static void show2() {\n System.out.println(\"show2\");\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();\u0026ensp;\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/*\n static 的注意事项:\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法:\n 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\n 静态的成员方法:\n 只能访问静态的成员变量,静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//\u0026ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);\u0026ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(\"林青霞\");\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"\u003e\u003cspan\u003e48 静态成员变量和普通成员变量的区别(理解)\u003c/span\u003e\n \u003ca href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e所属不同\u003cbr\u003e\n静态属于类的,称为类变量\u003cbr\u003e\n非静态属于对象的,称为对象变量,实例变量\u003c/li\u003e\n\u003cli\u003e内存空间不同\u003cbr\u003e\n静态在方法区的静态区\u003cbr\u003e\n非静态在堆内存\u003c/li\u003e\n\u003cli\u003e生命周期不同\u003cbr\u003e\n静态随着类的加载而加载,随着类的消失而消失\u003cbr\u003e\n非静态随着对象的创建而存在,随着对象的消失而消失\u003c/li\u003e\n\u003cli\u003e调用不同\u003cbr\u003e\n静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用\u003cbr\u003e\n非静态只能通过对象名调用\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"main-方法是静态的理解\"\u003e\u003cspan\u003e49 main 方法是静态的(理解)\u003c/span\u003e\n \u003ca href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epublic static void main(String[] args)\u003c/code\u003e\u003c/pre\u003e\u003cp\u003epublic: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。\u003cbr\u003e\nstatic: 被 jvm 调用,不用创建对象,直接类名访问\u003cbr\u003e\nvoid: 被 jvm 调用,不需要给 jvm 返回值\u003cbr\u003e\nmain: 一个通用的名称,虽然不是关键字,但是被 jvm 识别\u003cbr\u003e\nString[] args:\u003cbr\u003e\n早期出现是为了接收键盘录入数据的。\u003c/p\u003e"},{"title":"java 水仙花数(循环)","date_published":"2019-01-14T17:30:24+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-range/","url":"https://lruihao.cn/posts/java-range/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["水仙花数","Java"],"summary":" 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:13 + 53+ 3^3 = 153)。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:1\u003csup\u003e3 + 5\u003c/sup\u003e3+ 3^3 = 153)。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 录入数据","date_published":"2019-01-14T15:33:46+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-input/","url":"https://lruihao.cn/posts/java-input/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":"5 记忆格式 (1) 导包:\nimport java.util.Scanner;\n注意:位置在 class 的上面。\n(2) 创建键盘录入对象:\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习:\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\n","content_html":"\u003ch2 class=\"heading-element\" id=\"记忆格式\"\u003e\u003cspan\u003e5 记忆格式\u003c/span\u003e\n \u003ca href=\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e(1) 导包:\u003cbr\u003e\nimport java.util.Scanner;\u003cbr\u003e\n注意:位置在 class 的上面。\u003cbr\u003e\n(2) 创建键盘录入对象:\u003cbr\u003e\nScanner sc = new Scanner(System.in);\u003cbr\u003e\n(3) 获取数据\u003cbr\u003e\nint i = sc.nextInt();\u003cbr\u003e\n(4) 练习:\u003cbr\u003e\nA: 求两个数据的和\u003cbr\u003e\nB: 获取两个数据中较大的值\u003cbr\u003e\nC: 获取三个数据中较大的值\u003cbr\u003e\nD: 比较两个数是否相等\u003c/p\u003e"},{"title":"java 标识符","date_published":"2019-01-14T15:07:57+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/biaoshi/","url":"https://lruihao.cn/posts/biaoshi/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":"1 标识符 给类,接口,方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\n","content_html":"\u003ch2 class=\"heading-element\" id=\"标识符\"\u003e\u003cspan\u003e1 标识符\u003c/span\u003e\n \u003ca href=\"#%e6%a0%87%e8%af%86%e7%ac%a6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给类,接口,方法或者变量起名字的符号\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"组成规则\"\u003e\u003cspan\u003e2 组成规则\u003c/span\u003e\n \u003ca href=\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eA: 英文字母大小写\u003cbr\u003e\nB: 数字\u003cbr\u003e\nC:_和$\u003c/p\u003e"}]} ================================================ FILE: categories/java/index.html ================================================ Java - 分类 | 菠菜眾長
================================================ FILE: categories/java/index.xml ================================================ Java - 分类 | 菠菜眾長https://lruihao.cn/categories/java/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800java 实现一个单线程的资源下载器https://lruihao.cn/posts/singlethreaddown/Wed, 08 May 2019 20:55:02 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/singlethreaddown/Java<blockquote> <p>实现一个简单的基于单线程的资源下载器,如图所示,用户可以任意指定下载资源的链接地址,系统根据该地址判断资源是否存在,如果存在,则将该资源下载到本地。</p> </blockquote>java 通过 URL 和 URLConnection 访问网页资源https://lruihao.cn/posts/java-urlreader/Mon, 06 May 2019 17:41:35 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/java-urlreader/Java<blockquote> <p>该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。</p> </blockquote>文件加密解密(字节流)https://lruihao.cn/posts/byteio/Thu, 02 May 2019 23:04:32 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/byteio/Java<blockquote> <p>基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。</p> <p>这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。</p> </blockquote>模拟借书系统(java 异常练习)https://lruihao.cn/posts/javaexception/Wed, 01 May 2019 16:52:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/javaexception/Java模拟借书系统(java 异常练习)用记事本编写第一个 java 程序https://lruihao.cn/posts/hellojava/Fri, 19 Apr 2019 19:49:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hellojava/Java<blockquote> <p>之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以<code>.java</code>为后缀的文件;然后将这些源程序用<code>javac</code>编译成<code>.class</code>后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。<br> 由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。</p> </blockquote> <ul> <li>javac</li> <li>java</li> </ul>java 正则表达式练习https://lruihao.cn/posts/java-regex/Thu, 18 Apr 2019 22:04:21 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/java-regex/Java<h2 class="heading-element" id="邮箱"><span>10 邮箱</span> <a href="#%e9%82%ae%e7%ae%b1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(&#34;^[a-zA-Z0-9_!#$%&amp;&#39;*&#43;/=?`{|}~^.-]&#43;@[a-zA-Z0-9.-]&#43;$&#34;); String[] emails = {&#34;admin@lruihao.cn&#34;, &#34;lruihao.cn&#34;}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email &#43; &#34;匹配结果:&#34; &#43; matcher.matches()); } } }</code></pre><pre><code>admin@lruihao.cn 匹配结果:true lruihao.cn 匹配结果:false</code></pre><h2 class="heading-element" id="电话"><span>11 电话</span> <a href="#%e7%94%b5%e8%af%9d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum&#43;&#34;匹配结果: &#34;&#43;matcher.matches()); } }</code></pre><pre><code>/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(&#34;^[1][3,4,5,7,8][0-9]{9}$&#34;); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(&#34;^[0][1-9]{2,3}-[0-9]{5,10}$&#34;); // 验证带区号的 p2 = Pattern.compile(&#34;^[1-9]{1}[0-9]{5,8}$&#34;); // 验证没有区号的 if (str.length() &gt; 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }</code></pre><h2 class="heading-element" id="身份证"><span>12 身份证</span> <a href="#%e8%ba%ab%e4%bb%bd%e8%af%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>/* 身份证正则表达式 16 或 18 */ public static final String IDCARD=&#34;((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})&#34; &#43; &#34;(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}&#34; &#43; &#34;[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))&#34;;</code></pre>java 常用类https://lruihao.cn/posts/stringbuffer/Sun, 14 Apr 2019 10:12:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/stringbuffer/Java<h2 class="heading-element" id="stringbufferstringbuilder掌握"><span>13 StringBuffer/StringBuilder(掌握)</span> <a href="#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="stringbuffer-是线程安全的可变字符串"><span>13.1 StringBuffer 是线程安全的可变字符串</span> <a href="#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>StringBuilder 是线程不安全的可变字符串。<br> 和 StringBuffer 的功能一样。就是效率高一些,但是不安全。</p>Java 父类子类的对象初始化过程https://lruihao.cn/posts/substatus/Thu, 21 Mar 2019 13:36:25 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/substatus/Java<blockquote> <p>摘要:Java 基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。</p> </blockquote>java 泛型 testhttps://lruihao.cn/posts/fanxing/Sat, 16 Mar 2019 13:56:01 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/fanxing/Java<blockquote> <ul> <li>泛型方法,它在修饰符后,返回值类型前增加了类型参数 (&lt;&gt;)</li> <li>类型通配符一般使用问号<code>?</code>代替具体的类型<code>实</code>参,注意不是类型形参。</li> </ul> </blockquote>匿名类在可视化界面中的应用https://lruihao.cn/posts/qframe/Fri, 15 Mar 2019 22:31:28 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qframe/Java<blockquote> <p>java 中匿名类用的最多的地方就是可视化界面设计中,特别是将<code>事件监听器</code>注册到某个组件上的时候。</p> </blockquote>java 继承 testhttps://lruihao.cn/posts/jicheng/Thu, 24 Jan 2019 15:07:50 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/jicheng/Java<div class="details admonition quote open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-quote-right" aria-hidden="true"></i>引用<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>继承的好处:</p> <ol> <li>提高了代码的复用性</li> <li>提高了代码的维护性</li> <li>让类与类之间产生了关系,是多态的前提</li> </ol> <p>继承的弊端:类的耦合性很强</p> <p>设计原则:低耦合,高内聚。</p> <ul> <li>耦合:类与类的关系。</li> <li>内聚:自己完成事情的能力。</li> </ul> </div> </div> </div>Arrays 类及基本使用https://lruihao.cn/posts/java-arrays/Fri, 18 Jan 2019 13:13:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/java-arrays/Java<h2 class="heading-element" id="主要方法"><span>10 主要方法</span> <a href="#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>static type[] copyof(type[] original,int length)</li> <li>static int binarysearch(type[] a,type key)</li> <li>static boolean equals(type[] a,type[] b)</li> <li>static void fill(type[] a,type val)</li> <li>static void fill(type[] a,int fromindex,int toindex,type val)</li> <li>static void sort(type[] a)</li> </ul>java 猜数字小游戏(Math 类)https://lruihao.cn/posts/mathclass/Tue, 15 Jan 2019 17:33:28 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mathclass/Java<blockquote> <p>大一刚学 c 的时候以前写过 <a href="https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B" target="_blank" rel="external nofollow noopener noreferrer">c 语言版<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的。</p> </blockquote> <ol> <li>Math: 针对数学进行运算的类</li> <li>特点:没有构造方法,因为它的成员都是静态的</li> <li>产生随机数: public static double random(): 产生随机数,范围 [0.0,1.0)</li> <li>产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1;</li> <li>猜数字小游戏案例</li> </ol>面向对象基础知识总结https://lruihao.cn/posts/duixiang/Tue, 15 Jan 2019 16:07:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/duixiang/Java<h2 class="heading-element" id="面向对象思想理解"><span>52 面向对象思想(理解)</span> <a href="#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>面向对象是基于面向过程的一种编程思想</li> <li>思想特点:<br> A: 是一种更符合我们思考习惯的思想<br> B: 把复杂的问题简单化<br> C: 让我们从执行者变成了指挥者</li> <li>举例:<br> A: 洗衣服<br> B: 吃饭<br> C: 买电脑</li> <li>举例并代码体现 把大象装进冰箱</li> </ol> <h2 class="heading-element" id="类与对象掌握"><span>53 类与对象(掌握)</span> <a href="#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。</li> <li>现实世界事物是如何表达的呢? 属性:外在特征<br> 行为:内在行为</li> <li>我们学习的是 java 语言,它最基本的单位是类。<br> 所以我们要学会用类来体现一个事物。</li> <li>类:是一组相关的属性和行为的集合</li> <li>对象:是该类事物的具体个体。</li> <li>举例:<br> 学生 类<br> 张三 对象</li> </ol> <h2 class="heading-element" id="类的组成掌握"><span>54 类的组成(掌握)</span> <a href="#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>成员变量<br> 其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。</li> <li>成员方法<br> 其实就是方法,只不过不需要 static 了</li> <li>案例:<br> 学生类</li> </ol> <pre><code>class Student { String name; int age; public void study() {} }</code></pre><h2 class="heading-element" id="类的使用掌握"><span>55 类的使用(掌握)</span> <a href="#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>创建对象<br> 格式:类名 对象名 = new 类名 ();</li> <li>使用成员<br> 成员变量:对象名。变量名; 成员方法:对象名。方法名 (&hellip;);</li> </ol> <h2 class="heading-element" id="成员变量和局部变量的区别理解"><span>56 成员变量和局部变量的区别(理解)</span> <a href="#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>在类中的位置不同<br> A: 成员变量 类中,方法外<br> B: 局部变量 方法的形式参数,或者方法体中</li> <li>在内存中的位置不同<br> A: 成员变量 在堆中<br> B: 局部变量 在栈中</li> <li>生命周期不同<br> A: 成员变量 随着对象的存在而存在,随着对象的消失而消失<br> B: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失</li> <li>初始化值不同<br> A: 成员变量 有默认初始化值<br> B: 局部变量 没有默认值,必须先声明,赋值,最后才能使用</li> </ol> <h2 class="heading-element" id="形式参数问题理解"><span>57 形式参数问题(理解)</span> <a href="#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>基本类型<br> 基本类型作为形式参数,需要的是该基本类型的值。</li> <li>引用类型<br> 引用类型作为形式参数,需要的是该引用类型的地址值。(对象)</li> </ol> <h2 class="heading-element" id="匿名对象理解"><span>58 匿名对象(理解)</span> <a href="#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>匿名对象:没有名字的对象。是对象的简化书写方式。</li> <li>使用场景<br> A: 调用方法,仅仅只调用一次<br> B: 作为实际参数传递</li> </ol> <h2 class="heading-element" id="封装掌握"><span>59 封装(掌握)</span> <a href="#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>隐藏实现细节,提供公共的访问方式</li> <li>好处:<br> A: 隐藏实现细节,提供公共的访问方式<br> B: 提高了代码的复用性<br> C: 提高了代码的安全性</li> <li>使用原则<br> A: 把成员变量隐藏<br> B: 给出该成员变量对应的公共访问方式</li> </ol> <h2 class="heading-element" id="private-关键字掌握"><span>60 private 关键字(掌握)</span> <a href="#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>是一个权限修饰符</li> <li>可以修饰类的成员(成员变量和成员方法)</li> <li>仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法</li> <li>标准代码:</li> </ol> <pre><code>class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }</code></pre><h2 class="heading-element" id="this-关键字掌握"><span>61 this 关键字(掌握)</span> <a href="#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>this:代表本类的对象</li> <li>应用场景:<br> 解决了局部变量隐藏成员变量的问题。<br> 其他用法和 super 一起讲。</li> <li>标准代码:</li> </ol> <pre><code> class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(&#34;姓名是:&#34;&#43;name&#43;&#34;, 年龄是:&#34;&#43;age); } public void study() { System.out.println(&#34;学生爱学习&#34;); } public void eat() { System.out.println(&#34;学生要吃饭&#34;); } public void sleep() { System.out.println(&#34;学生想睡觉&#34;); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(&#34;林青霞&#34;); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(&#34;姓名是:&#34;&#43;s.getName()); System.out.println(&#34;年龄是:&#34;&#43;s.getAge()); } }</code></pre><h2 class="heading-element" id="构造方法掌握"><span>62 构造方法(掌握)</span> <a href="#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>作用:对对象的数据进行初始化。</li> <li>特点:<br> A: 方法名和类名相同<br> B: 没有返回值类型<br> C: 没有返回值</li> <li>注意事项<br> A: 如果我们没写构造方法,系统将默认给出无参构造方法<br> B: 如果我们写了构造方法,系统将不再给出默认无参构造方法<br> 建议:我们自己手动给出无参构造方法</li> <li>给成员变量赋值:<br> A: 无参+setXxx()<br> B: 带参</li> <li>一个标准的代码:</li> </ol> <pre><code> class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(&#34;姓名是:&#34;&#43;name&#43;&#34;, 年龄是:&#34;&#43;age); } } class StudentTest { public static void main(String[] args) { //无参&#43;setXxx() Student s = new Student(); s.setName(&#34;林青霞&#34;); s.setAge(28); s.show(); //带参 Student ss = new Student(&#34;张曼玉&#34;,20); ss.show(); } }</code></pre><h2 class="heading-element" id="对象的初始化过程理解"><span>63 对象的初始化过程(理解)</span> <a href="#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>Student s = new Student(); 做了哪些事情<br> A: 加载 Student.class 文件进内存<br> B: 在栈中为 s 开辟空间<br> C: 在堆中为学生对象开辟空间<br> D: 为学生对象的成员变量赋默认值<br> E: 为学生对象的成员变量赋显示值<br> F: 通过构造方法给成员变量赋值<br> G: 对象构造完毕,把地址赋值给 s 变量</li> </ul> <h2 class="heading-element" id="static-关键字掌握"><span>64 static 关键字(掌握)</span> <a href="#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>是一个状态修饰符。静态的意思</li> <li>它可以修饰成员变量和成员方法</li> <li>特点:<br> <strong>A: 随着类的加载而加载<br> B: 优先于对象存在<br> C: 被所有对象共享</strong><br> 这也是判断我们是不是该使用静态的条件<br> 举例:饮水机(可共享 static) 和水杯例子。<br> D: 可以通过类名调用<br> 静态修饰的内容,可以通过类名调用,也可以通过对象名调用</li> <li>方法访问特点<br> A: 普通成员方法<br> 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法<br> B: 静态成员方法<br> <strong>只能访问静态成员变量,静态成员方法<br> 简记:静态只能访问静态</strong><br> 注意:<br> <strong>静态中是不能有 this 的。<br> 先进内存的不能访问后进内存的。反之可以。</strong></li> </ol> <pre><code>/** * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。 * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。 * * 在 java 中,用什么来表示成员变量是被共享的呢?static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name&#43;&#34;---&#34;&#43;age&#43;&#34;---&#34;&#43;classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(&#34;林青霞&#34;,28,&#34;20150306&#34;); s1.show(); /* Student s2 = new Student(&#34;马云&#34;,35,&#34;20150306&#34;); s2.show(); Student s3 = new Student(&#34;马化腾&#34;,33,&#34;20150306&#34;); s3.show(); */ Student s2 = new Student(&#34;马云&#34;,35); s2.show(); Student s3 = new Student(&#34;马化腾&#34;,33); s3.show(); } }</code></pre><pre><code>/* static: 静态关键字。 作用: 可以修饰成员变量和成员方法 特点: A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机:可以被静态修饰 水杯:不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象,还可以是类名 */ class Student { public void show() { System.out.println(&#34;show&#34;); } public static void show2() { System.out.println(&#34;show2&#34;); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();&amp;ensp; } }</code></pre><pre><code>/* static 的注意事项: A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法: 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法 静态的成员方法: 只能访问静态的成员变量,静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//&amp;ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);&amp;ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(&#34;林青霞&#34;); } }</code></pre><h2 class="heading-element" id="静态成员变量和普通成员变量的区别理解"><span>65 静态成员变量和普通成员变量的区别(理解)</span> <a href="#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ol> <li>所属不同<br> 静态属于类的,称为类变量<br> 非静态属于对象的,称为对象变量,实例变量</li> <li>内存空间不同<br> 静态在方法区的静态区<br> 非静态在堆内存</li> <li>生命周期不同<br> 静态随着类的加载而加载,随着类的消失而消失<br> 非静态随着对象的创建而存在,随着对象的消失而消失</li> <li>调用不同<br> 静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用<br> 非静态只能通过对象名调用</li> </ol> <h2 class="heading-element" id="main-方法是静态的理解"><span>66 main 方法是静态的(理解)</span> <a href="#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>public static void main(String[] args)</code></pre><p>public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。<br> static: 被 jvm 调用,不用创建对象,直接类名访问<br> void: 被 jvm 调用,不需要给 jvm 返回值<br> main: 一个通用的名称,虽然不是关键字,但是被 jvm 识别<br> String[] args:<br> 早期出现是为了接收键盘录入数据的。</p>java 水仙花数(循环)https://lruihao.cn/posts/java-range/Mon, 14 Jan 2019 17:30:24 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/java-range/Java<blockquote> <p>水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:1<sup>3 + 5</sup>3+ 3^3 = 153)。</p> </blockquote>java 录入数据https://lruihao.cn/posts/java-input/Mon, 14 Jan 2019 15:33:46 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/java-input/Java<h2 class="heading-element" id="记忆格式"><span>7 记忆格式</span> <a href="#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>(1) 导包:<br> import java.util.Scanner;<br> 注意:位置在 class 的上面。<br> (2) 创建键盘录入对象:<br> Scanner sc = new Scanner(System.in);<br> (3) 获取数据<br> int i = sc.nextInt();<br> (4) 练习:<br> A: 求两个数据的和<br> B: 获取两个数据中较大的值<br> C: 获取三个数据中较大的值<br> D: 比较两个数是否相等</p>java 标识符https://lruihao.cn/posts/biaoshi/Mon, 14 Jan 2019 15:07:57 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/biaoshi/Java<h2 class="heading-element" id="标识符"><span>1 标识符</span> <a href="#%e6%a0%87%e8%af%86%e7%ac%a6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>给类,接口,方法或者变量起名字的符号</p> <h2 class="heading-element" id="组成规则"><span>2 组成规则</span> <a href="#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>A: 英文字母大小写<br> B: 数字<br> C:_和$</p> ================================================ FILE: categories/java/page/1/index.html ================================================ https://lruihao.cn/categories/java/ ================================================ FILE: categories/javascript/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"JavaScript - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"让 Mermaid 图表自动跟随系统深浅色","date_published":"2025-08-16T12:37:49+08:00","date_modified":"2025-08-16T14:56:28+08:00","id":"https://lruihao.cn/posts/mermaid-theming/","url":"https://lruihao.cn/posts/mermaid-theming/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["invert filter","Mermaid","prefers-color-scheme","FixIt"],"image":"https://lruihao.cn/posts/mermaid-theming/featured-image.webp","summary":"Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\n","content_html":"\u003cp\u003eMermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\u003cbr\u003e\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\u003c/p\u003e"},{"title":"黑盒出关・三把钥匙定江湖","date_published":"2025-08-05T11:31:52+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/wc-01-prologue/","url":"https://lruihao.cn/posts/wc-01-prologue/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"image":"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp","summary":"江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\n","content_html":"\u003cp\u003e江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\u003c/p\u003e"},{"title":"临时决定再写一个小工具 - 网站预览图生成器","date_published":"2024-04-04T13:23:37+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/apple-devices-preview/","url":"https://lruihao.cn/projects/apple-devices-preview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"image":"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp","summary":"开发完 CoverView之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\n","content_html":"\u003cp\u003e开发完 \u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\u003c/p\u003e"},{"title":"实现类似于 Element UI 表格的溢出文本提示功能","date_published":"2024-02-29T16:46:00+08:00","date_modified":"2024-06-12T18:57:53+08:00","id":"https://lruihao.cn/posts/overflow-tooltip/","url":"https://lruihao.cn/posts/overflow-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"在 Element UI 的表格组件中,当表格列的内容过长时,设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\n","content_html":"\u003cp\u003e在 Element UI 的表格组件中,当表格列的内容过长时,设置 \u003ccode\u003eshow-overflow-tooltip\u003c/code\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\u003c/p\u003e"},{"title":"给 el-card 添加折叠功能","date_published":"2024-01-10T17:06:54+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-card-collapse/","url":"https://lruihao.cn/posts/el-card-collapse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":" 出发点 虽然 Element 也有 el-collapse 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,el-card 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e出发点\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e虽然 Element 也有 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-collapse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,\u003ca href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-card\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Web Components","date_published":"2023-10-12T15:16:48+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/web-components/","url":"https://lruihao.cn/posts/web-components/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"content_html":"Web Component 是一组 Web 平台的标准,允许开发者创建可重用的自定义元素和组件。"},{"title":"JS 实现全屏和退出全屏","date_published":"2023-09-15T17:29:25+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-fullscreen/","url":"https://lruihao.cn/posts/js-fullscreen/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":"19 背景 在 Web 开发中,全屏模式可以提供更沉浸式的体验,特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API,我们可以以编程方式控制元素的全屏状态。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"背景\"\u003e\u003cspan\u003e19 背景\u003c/span\u003e\n \u003ca href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Web 开发中,全屏模式可以提供更沉浸式的体验,特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API,我们可以以编程方式控制元素的全屏状态。\u003c/p\u003e"},{"title":"用魔法打败魔法 - ElBacktop Fix","date_published":"2023-07-20T11:08:18+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-backtop-fix/","url":"https://lruihao.cn/posts/el-backtop-fix/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\n","content_html":"\u003cp\u003e这篇文章主要是记录一下继承 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElBacktop\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件并修复了一些 bug 的过程。\u003c/p\u003e"},{"title":"electron 踩坑总结","date_published":"2022-08-12T11:22:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/electron-summary/","url":"https://lruihao.cn/posts/electron-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["electron"],"image":"https://lruihao.cn/posts/electron-summary/images/featured-image.png","summary":"总结一下最近 electron 开发遇到的问题和一些重要知识点。\n","content_html":"\u003cp\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\u003c/p\u003e"},{"title":"前端页面内容加密总结","date_published":"2022-08-08T13:49:22+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/encryption-fe/","url":"https://lruihao.cn/posts/encryption-fe/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","加密"],"image":"https://lruihao.cn/posts/encryption-fe/images/featured-image.png","summary":"记录一下前端实现页面加密的思路。\n","content_html":"\u003cp\u003e记录一下前端实现页面加密的思路。\u003c/p\u003e"},{"title":"Node.js + GitHub Actions 自动刷新 CDN","date_published":"2022-08-07T14:40:33+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qcloudcdn/","url":"https://lruihao.cn/posts/qcloudcdn/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CDN","GitHub Actions","Node.js"],"summary":" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e问题\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"重新认识 JavaScript","date_published":"2022-05-01T10:59:36+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-rediscover/","url":"https://lruihao.cn/posts/js-rediscover/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","ES6"],"summary":" 前言 前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。\n","content_html":"\u003cdiv class=\"details admonition tip open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"\u003e\u003c/i\u003e前言\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。\u003c/p\u003e\n\u003cp\u003e每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Lightbox","date_published":"2021-06-21T16:18:04+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/lightbox/","url":"https://lruihao.cn/posts/lightbox/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Lightbox","JavaScript"],"summary":"7 簡介 Lightbox(燈箱),用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器,用一幅半透明的 png 图片实现渐变阴暗的效果。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"簡介\"\u003e\u003cspan\u003e7 簡介\u003c/span\u003e\n \u003ca href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eLightbox(燈箱),用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器,用一幅半透明的 png 图片实现渐变阴暗的效果。\u003c/p\u003e"},{"title":"Cell Watermark","date_published":"2021-05-23T17:15:41+08:00","date_modified":"2024-12-12T14:56:25+08:00","id":"https://lruihao.cn/projects/cell-watermark/","url":"https://lruihao.cn/projects/cell-watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["watermark","JavaScript"],"summary":"Create watermark for webpage and automatic adjust when window resize.","content_html":"Create watermark for webpage and automatic adjust when window resize."},{"title":"利用腾讯云为静态页面添加“动态”相册","date_published":"2019-11-24T10:52:34+08:00","date_modified":"2019-11-24T10:52:34+08:00","id":"https://lruihao.cn/projects/cos-album/","url":"https://lruihao.cn/projects/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CosAlbum","腾讯云 cos 桶","JavaScript"],"image":"/projects/cos-album/images/view.png","summary":" 信息 cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\n功能虽好,但是还是先友情提示!\n开放 API 是一个很危险的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧! ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003ecos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\u003cbr\u003e\n\u003cstrong\u003e\u003cspan style=\"color: #428bca;\"\u003e功能虽好,但是还是先友情提示!\u003c/span\u003e\u003c/strong\u003e\u003cbr\u003e\n开放 API 是一个\u003cstrong\u003e很危险\u003c/strong\u003e的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"设置网站运行时间","date_published":"2019-09-19T22:03:29+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/site-time/","url":"https://lruihao.cn/posts/site-time/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 使用javascript计算博客等网站的运行时间。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用\u003ccode\u003ejavascript\u003c/code\u003e计算博客等网站的运行时间。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"script 的三种加载方式 (async, defer)","date_published":"2019-09-08T11:47:50+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/async-defer/","url":"https://lruihao.cn/posts/async-defer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","defer","async"],"image":"/posts/async-defer/images/async_vs_defer.svg","summary":" 注意 JS 的加载分为两个部分:下载和执行。\n浏览器在执行 HTML 的时候如果遇到\u0026lt;script\u0026gt;时会停止页面的渲染,去下载和执行 js 的文件直接遇见\u0026lt;/scirpt\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 ","content_html":"\u003cdiv class=\"details admonition note open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"\u003e\u003c/i\u003e注意\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003eJS 的加载分为两个部分:下载和执行。\u003cbr\u003e\n浏览器在执行 HTML 的时候如果遇到\u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e时会停止页面的渲染,去下载和执行 js 的文件直接遇见\u003ccode\u003e\u0026lt;/scirpt\u0026gt;\u003c/code\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"模仿知乎卡片式链接","date_published":"2019-03-15T15:21:39+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/linkcard/","url":"https://lruihao.cn/posts/linkcard/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 模仿知乎的卡片式链接,idea 来自 [兰州小红鸡]\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e模仿知乎的卡片式链接,idea 来自 [兰州小红鸡]\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"QQ 强制生成卡片式链接","date_published":"2019-03-08T16:52:13+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qqxml/","url":"https://lruihao.cn/posts/qqxml/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。\u003cbr\u003e\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \u003ccode\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\u003c/code\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"JS 验证码","date_published":"2019-03-04T20:53:09+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-vcode/","url":"https://lruihao.cn/posts/js-vcode/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 请点击验证码处:↑ ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cstyle type=\"text/css\"\u003e\n\n# code{ \n\n font-family:Arial; \n font-style:italic; \n font-weight:bold; \n border:2px solid #ddd;\n letter-spacing:9px; \n color:blue;\n font-size: 15px;\n}\n\u003c/style\u003e\n\u003cscript type=\"text/javascript\"\u003e\n //设置一个全局的变量,便于保存验证码\n var code;\n function createCode(){\n //首先默认 code 为空字符串\n code = '';\n //设置长度,这里看需求,我这里设置了 4\n var codeLength = 4;\n var codeV = document.getElementById('code');\n //设置随机字符\n var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n //循环 codeLength 我设置的 4 就是循环 4 次\n for(var i = 0; i \u003c codeLength; i++){\n //设置随机数范围,这设置为 0 ~ 36\n var index = Math.floor(Math.random()*35);\n //字符串拼接 将每次随机的字符 进行拼接\n code += random[index];\n }\n //将拼接好的字符串赋值给展示的 Value\n codeV.value = code;\n }\n\n //下面就是判断是否== 的代码,无需解释\n function validate(){\n var Input = document.getElementById('input');\n var oValue = Input.value.toUpperCase();\n if(oValue ==0){\n alert('请输入验证码');\n }else if(oValue != code){\n Input.value = '';\n alert('验证码不正确,请重新输入');\n createCode();\n }else{\n Input.value = '';\n alert('验证码正确!');//window.open('http://lruihao.cn','_self');\n }\n }\n\n //设置此处的原因是每次进入界面展示一个随机的验证码,不设置则为空\n window.onload = function (){\n\n createCode();\n }\n\u003c/script\u003e\n\u003cdiv align=\"center\"\u003e \n \u003cinput type = \"text\" id = \"input\" value=\"\" /\u003e \u003cinput type = \"button\" id=\"code\" onclick=\"createCode()\"/\u003e \u003cinput class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/\u003e\n \u003cbr/\u003e请点击验证码处:↑\n\u003c/div\u003e"},{"title":"js 判断用户设备类型及平台","date_published":"2018-11-03T23:35:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/js-device/","url":"https://lruihao.cn/posts/js-device/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","他山之石"],"summary":"前端开发经常遇到需要判断用户的浏览设备,是 pc 端还是移动端,移动端使用的是什么手机系统?android、ios、ipad、windows phone 等等,有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开,等等一系列判断做一些相应的处理。\n","content_html":"\u003cp\u003e前端开发经常遇到需要判断用户的浏览设备,是 pc 端还是移动端,移动端使用的是什么手机系统?android、ios、ipad、windows phone 等等,有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开,等等一系列判断做一些相应的处理。\u003c/p\u003e"},{"title":"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战","date_published":"2018-10-28T14:22:00+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/href-301/","url":"https://lruihao.cn/posts/href-301/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["redirect","JavaScript","他山之石"],"summary":"0.5 获取链接(转) 传送门\n在 WEB 开发中,时常会用到 javascript 来获取当前页面的 url 网址信息,在这里是我的一些获取 url 信息的小总结。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"获取链接转\"\u003e\u003cspan\u003e0.5 获取链接(转)\u003c/span\u003e\n \u003ca href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003ca href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e传送门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n在 WEB 开发中,时常会用到 javascript 来获取当前页面的 url 网址信息,在这里是我的一些获取 url 信息的小总结。\u003c/p\u003e"},{"title":"网页夜间效果","date_published":"2018-09-27T13:13:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/night/","url":"https://lruihao.cn/posts/night/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 这几天看到别人的博客有开关灯效果,就想给自己的博客也加一个,其实以前就在想了。经过谷歌百度后这样实现了。css+js\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e这几天看到别人的博客有开关灯效果,就想给自己的博客也加一个,其实以前就在想了。经过谷歌百度后这样实现了。\u003ccode\u003ecss+js\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"网页离开时改变标题“崩溃欺骗”","date_published":"2018-09-26T16:36:08+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/crash-cheat/","url":"https://lruihao.cn/posts/crash-cheat/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的,不想再和每个人都说一遍了,耽误时间,索性写一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的,不想再和每个人都说一遍了,耽误时间,索性写一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo 博客自定义 console log","date_published":"2018-08-04T16:19:06+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/console-log/","url":"https://lruihao.cn/posts/console-log/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":"看到知乎,百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具:\nconsole.log() Notepad++ 在线图片转文字工具 ","content_html":"\u003cp\u003e看到知乎,百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\u003cbr\u003e\n我主要用到的工具:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econsole.log()\u003c/li\u003e\n\u003cli\u003eNotepad++\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线图片转文字工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e"}]} ================================================ FILE: categories/javascript/index.html ================================================ JavaScript - 分类 | 菠菜眾長
================================================ FILE: categories/javascript/index.xml ================================================ JavaScript - 分类 | 菠菜眾長https://lruihao.cn/categories/javascript/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Sat, 16 Aug 2025 14:56:28 +0800让 Mermaid 图表自动跟随系统深浅色https://lruihao.cn/posts/mermaid-theming/Sat, 16 Aug 2025 12:37:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mermaid-theming/JavaScriptCSS<p>Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。<br> 不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。</p>黑盒出关・三把钥匙定江湖https://lruihao.cn/posts/wc-01-prologue/Tue, 05 Aug 2025 11:31:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wc-01-prologue/JavaScriptHTML<p>江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!</p>临时决定再写一个小工具 - 网站预览图生成器https://lruihao.cn/projects/apple-devices-preview/Thu, 04 Apr 2024 13:23:37 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/apple-devices-preview/Vue.jsJavaScript<p>开发完 <a href="https://github.com/Lruihao/CoverView" target="_blank" rel="external nofollow noopener noreferrer">CoverView<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。</p>实现类似于 Element UI 表格的溢出文本提示功能https://lruihao.cn/posts/overflow-tooltip/Thu, 29 Feb 2024 16:46:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/overflow-tooltip/Vue.jsJavaScript<p>在 Element UI 的表格组件中,当表格列的内容过长时,设置 <code>show-overflow-tooltip</code> 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?</p>给 el-card 添加折叠功能https://lruihao.cn/posts/el-card-collapse/Wed, 10 Jan 2024 17:06:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/el-card-collapse/Vue.jsJavaScript<div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>出发点<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">虽然 Element 也有 <a href="https://element.eleme.cn/#/zh-CN/component/collapse" target="_blank" rel="external nofollow noopener noreferrer">el-collapse<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,<a href="https://element.eleme.cn/#/zh-CN/component/card" target="_blank" rel="external nofollow noopener noreferrer">el-card<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。</div> </div> </div>Web Componentshttps://lruihao.cn/posts/web-components/Thu, 12 Oct 2023 15:16:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/web-components/JavaScriptHTMLWeb Component 是一组 Web 平台的标准,允许开发者创建可重用的自定义元素和组件。JS 实现全屏和退出全屏https://lruihao.cn/posts/js-fullscreen/Fri, 15 Sep 2023 17:29:25 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/js-fullscreen/JavaScript<h2 class="heading-element" id="背景"><span>28 背景</span> <a href="#%e8%83%8c%e6%99%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 Web 开发中,全屏模式可以提供更沉浸式的体验,特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API,我们可以以编程方式控制元素的全屏状态。</p>用魔法打败魔法 - ElBacktop Fixhttps://lruihao.cn/posts/el-backtop-fix/Thu, 20 Jul 2023 11:08:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/el-backtop-fix/Vue.jsJavaScript<p>这篇文章主要是记录一下继承 <a href="https://element.eleme.cn/#/zh-CN/component/backtop" target="_blank" rel="external nofollow noopener noreferrer">ElBacktop<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件并修复了一些 bug 的过程。</p>electron 踩坑总结https://lruihao.cn/posts/electron-summary/Fri, 12 Aug 2022 11:22:01 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/electron-summary/JavaScript<p>总结一下最近 electron 开发遇到的问题和一些重要知识点。</p>前端页面内容加密总结https://lruihao.cn/posts/encryption-fe/Mon, 08 Aug 2022 13:49:22 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/encryption-fe/JavaScript<p>记录一下前端实现页面加密的思路。</p>Node.js + GitHub Actions 自动刷新 CDNhttps://lruihao.cn/posts/qcloudcdn/Sun, 07 Aug 2022 14:40:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qcloudcdn/Node.jsJavaScript<div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>问题<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。</div> </div> </div>重新认识 JavaScripthttps://lruihao.cn/posts/js-rediscover/Sun, 01 May 2022 10:59:36 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/js-rediscover/JavaScript<div class="details admonition tip open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-lightbulb" aria-hidden="true"></i>前言<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。</p> <p>每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。</p> </div> </div> </div>Lightboxhttps://lruihao.cn/posts/lightbox/Mon, 21 Jun 2021 16:18:04 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/lightbox/JavaScript<h2 class="heading-element" id="簡介"><span>10 簡介</span> <a href="#%e7%b0%a1%e4%bb%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Lightbox(燈箱),用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器,用一幅半透明的 png 图片实现渐变阴暗的效果。</p>Cell Watermarkhttps://lruihao.cn/projects/cell-watermark/Sun, 23 May 2021 17:15:41 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cell-watermark/JavaScriptCreate watermark for webpage and automatic adjust when window resize.利用腾讯云为静态页面添加“动态”相册https://lruihao.cn/projects/cos-album/Sun, 24 Nov 2019 10:52:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cos-album/JavaScript<!-- markdownlint-disable MD033 --> <div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>信息<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],<br> <strong><span style="color: #428bca;">功能虽好,但是还是先友情提示!</span></strong><br> 开放 API 是一个<strong>很危险</strong>的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!</div> </div> </div>设置网站运行时间https://lruihao.cn/posts/site-time/Thu, 19 Sep 2019 22:03:29 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/site-time/JavaScript<blockquote> <p>使用<code>javascript</code>计算博客等网站的运行时间。</p> </blockquote>script 的三种加载方式 (async, defer)https://lruihao.cn/posts/async-defer/Sun, 08 Sep 2019 11:47:50 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/async-defer/JavaScript<div class="details admonition note open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-pencil-alt" aria-hidden="true"></i>注意<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">JS 的加载分为两个部分:下载和执行。<br> 浏览器在执行 HTML 的时候如果遇到<code>&lt;script&gt;</code>时会停止页面的渲染,去下载和执行 js 的文件直接遇见<code>&lt;/scirpt&gt;</code>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。</div> </div> </div>模仿知乎卡片式链接https://lruihao.cn/posts/linkcard/Fri, 15 Mar 2019 15:21:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/linkcard/JavaScript<blockquote> <p>模仿知乎的卡片式链接,idea 来自 [兰州小红鸡]</p> </blockquote>QQ 强制生成卡片式链接https://lruihao.cn/posts/qqxml/Fri, 08 Mar 2019 16:52:13 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qqxml/JavaScript<blockquote> <p>以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。<br> 查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url <code>https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=</code> 于是就有了脚本刷新的想法。简陋的写了一下。</p> </blockquote>JS 验证码https://lruihao.cn/posts/js-vcode/Mon, 04 Mar 2019 20:53:09 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/js-vcode/JavaScript<!-- markdownlint-disable MD033 --> <style type="text/css"> # code{ font-family:Arial; font-style:italic; font-weight:bold; border:2px solid #ddd; letter-spacing:9px; color:blue; font-size: 15px; } </style> <script type="text/javascript"> //设置一个全局的变量,便于保存验证码 var code; function createCode(){ //首先默认 code 为空字符串 code = ''; //设置长度,这里看需求,我这里设置了 4 var codeLength = 4; var codeV = document.getElementById('code'); //设置随机字符 var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁'); //循环 codeLength 我设置的 4 就是循环 4 次 for(var i = 0; i < codeLength; i++){ //设置随机数范围,这设置为 0 ~ 36 var index = Math.floor(Math.random()*35); //字符串拼接 将每次随机的字符 进行拼接 code += random[index]; } //将拼接好的字符串赋值给展示的 Value codeV.value = code; } //下面就是判断是否== 的代码,无需解释 function validate(){ var Input = document.getElementById('input'); var oValue = Input.value.toUpperCase(); if(oValue ==0){ alert('请输入验证码'); }else if(oValue != code){ Input.value = ''; alert('验证码不正确,请重新输入'); createCode(); }else{ Input.value = ''; alert('验证码正确!');//window.open('http://lruihao.cn','_self'); } } //设置此处的原因是每次进入界面展示一个随机的验证码,不设置则为空 window.onload = function (){ createCode(); } </script> <div align="center"> <input type = "text" id = "input" value="" /> <input type = "button" id="code" onclick="createCode()"/> <input class="btn" type = "button" value = "验证" onclick = "validate()"/> <br/>请点击验证码处:↑ </div>js 判断用户设备类型及平台https://lruihao.cn/posts/js-device/Sat, 03 Nov 2018 23:35:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/js-device/JavaScript<p>前端开发经常遇到需要判断用户的浏览设备,是 pc 端还是移动端,移动端使用的是什么手机系统?android、ios、ipad、windows phone 等等,有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开,等等一系列判断做一些相应的处理。</p>使用 js 准确获取当前页面 url 网址信息及 301 重定向实战https://lruihao.cn/posts/href-301/Sun, 28 Oct 2018 14:22:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/href-301/JavaScript<h3 class="heading-element" id="获取链接转"><span>0.7 获取链接(转)</span> <a href="#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><a href="https://www.cnblogs.com/zhabayi/p/6419938.html" target="_blank" rel="external nofollow noopener noreferrer">传送门<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> 在 WEB 开发中,时常会用到 javascript 来获取当前页面的 url 网址信息,在这里是我的一些获取 url 信息的小总结。</p>网页夜间效果https://lruihao.cn/posts/night/Thu, 27 Sep 2018 13:13:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/night/JavaScript<blockquote> <p>这几天看到别人的博客有开关灯效果,就想给自己的博客也加一个,其实以前就在想了。经过谷歌百度后这样实现了。<code>css+js</code></p> </blockquote>网页离开时改变标题“崩溃欺骗”https://lruihao.cn/posts/crash-cheat/Wed, 26 Sep 2018 16:36:08 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/crash-cheat/JavaScript<blockquote> <p>从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的,不想再和每个人都说一遍了,耽误时间,索性写一下。</p> </blockquote>hexo 博客自定义 console loghttps://lruihao.cn/posts/console-log/Sat, 04 Aug 2018 16:19:06 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/console-log/JavaScript<p>看到知乎,百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。<br> 我主要用到的工具:</p> <ul> <li>console.log()</li> <li>Notepad++</li> <li><a href="http://picascii.com" target="_blank" rel="external nofollow noopener noreferrer">在线图片转文字工具<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> ================================================ FILE: categories/javascript/page/1/index.html ================================================ https://lruihao.cn/categories/javascript/ ================================================ FILE: categories/javascript/page/2/index.html ================================================ JavaScript - 分类 | 菠菜眾長
================================================ FILE: categories/memo/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Memo - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"自动获取 GitHub README 内容添加到 Hugo 文章","date_published":"2024-10-06T11:10:22+08:00","date_modified":"2024-10-06T12:21:43+08:00","id":"https://lruihao.cn/posts/content-adapters/","url":"https://lruihao.cn/posts/content-adapters/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","GitHub API"],"image":"https://lruihao.cn/posts/content-adapters/featured-image.webp","summary":"在这个博客中,我经常会写一些关于开源项目的文章,而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步,我希望能够自动获取 GitHub 仓库的 README 内容,然后添加到 Hugo 文章中。这样,我就不用再手动复制粘贴 README 内容了。\n","content_html":"\u003cp\u003e在这个博客中,我经常会写一些关于开源项目的文章,而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步,我希望能够自动获取 GitHub 仓库的 README 内容,然后添加到 Hugo 文章中。这样,我就不用再手动复制粘贴 README 内容了。\u003c/p\u003e"},{"title":"写文档时英文标题什么时候要大写?","date_published":"2024-03-26T12:23:44+08:00","date_modified":"2024-04-02T21:13:59+08:00","id":"https://lruihao.cn/posts/c6bc2d5/","url":"https://lruihao.cn/posts/c6bc2d5/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle,默认情况下,Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。\n经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,“出版物中,英文什么时候要大写? ”。\n","content_html":"\u003cp\u003e对于本文的标题的思考来自于 \u003ca href=\"https://gohugo.io/getting-started/configuration/#titlecasestyle\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 配置文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e中的一个配置 \u003ccode\u003etitleCaseStyle\u003c/code\u003e,默认情况下,Hugo 在创建自动章节标题以及使用 \u003ccode\u003estrings.Title\u003c/code\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\u003c/p\u003e\n\u003cp\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。\u003c/p\u003e\n\u003cp\u003e经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,\u003ca href=\"https://pub.bnu.edu.cn/jzyg1/72203.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e“出版物中,英文什么时候要大写? ”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"写作技巧:如何搭建文章的框架结构?","date_published":"2023-09-26T15:17:52+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/article-structure/","url":"https://lruihao.cn/posts/article-structure/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。\n","content_html":"\u003cp\u003e最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。\u003c/p\u003e"},{"title":"VSCode 添加用户代码片段,自定义用户代码片段","date_published":"2023-09-14T11:21:56+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/vscode-snippets/","url":"https://lruihao.cn/posts/vscode-snippets/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Shortcodes"],"summary":"在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。\n","content_html":"\u003cp\u003e在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。\u003c/p\u003e"},{"title":"Mac 上的开发配置总结","date_published":"2022-07-29T20:22:44+08:00","date_modified":"2025-01-07T10:08:46+08:00","id":"https://lruihao.cn/posts/config4mac/","url":"https://lruihao.cn/posts/config4mac/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","Mac","Node.js","nvm"],"summary":"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\n","content_html":"\u003cp\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\u003c/p\u003e"},{"title":"Mac 配置 ADB","date_published":"2022-07-05T15:39:34+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/adb-for-mac/","url":"https://lruihao.cn/posts/adb-for-mac/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Android","ADB"],"summary":"作为非安卓专业开发,无需下载 Android SDK,\n仅下载 Android SDK 中的 platform-tools 命令行工具即可,并配置好环境变量。\n","content_html":"\u003cp\u003e作为非安卓专业开发,无需下载 Android SDK,\u003cbr\u003e\n仅下载 Android SDK 中的 \u003ca href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eplatform-tools\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 命令行工具即可,并配置好环境变量。\u003c/p\u003e"},{"title":"Getting Things Done for ios App Reminders and Github issues","date_published":"2021-12-22T20:17:42+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/gtd/","url":"https://lruihao.cn/posts/gtd/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GTD"],"image":"/posts/gtd/images/reminders_min.png","summary":" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\u0026rdquo;.\nReference #20 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003equote\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e\u003cstrong\u003eGetting Things Done (GTD)\u003c/strong\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\u0026rdquo;.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Getting_Things_Done\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eReference\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lruihao/hugo-blog/issues/20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e#20\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Sublime 剪贴板图片粘贴插件 —— Markdown 必备","date_published":"2021-10-05T21:54:06+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/subl_imgpaste2/","url":"https://lruihao.cn/posts/subl_imgpaste2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Markdown","Sublime"],"summary":" 插件地址 github.com/robinchenyu/imagepaste ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003ca href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e插件地址\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/robinchenyu/imagepaste\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e"},{"title":"Hugo 添加知乎卡片式链接 Shortcodes","date_published":"2021-10-05T19:33:13+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-cardlink/","url":"https://lruihao.cn/posts/hugo-cardlink/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","Shortcodes"],"summary":" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到,模仿知乎卡片式链接\n和之前的相比,優化之前是后加載,由 JS 在 瀏覽器處理,\n使用 shortcodes 方式后,則是在 GO 構建頁面的時候處理,效能上會好很多。 ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003ca href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e卡片式链接已整合到 FixIt 主题\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/Lruihao/FixIt\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e\n\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e回顧\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e之前在使用 hexo 的時候也有用到,\u003ca href=\"/posts/linkcard/\"\u003e模仿知乎卡片式链接\u003c/a\u003e\u003cbr\u003e\n和之前的相比,優化之前是后加載,由 JS 在 瀏覽器處理,\u003cbr\u003e\n使用 shortcodes 方式后,則是在 GO 構建頁面的時候處理,效能上會好很多。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Hugo I18n 添加中文繁體翻譯","date_published":"2021-10-05T19:14:45+08:00","date_modified":"2021-12-19T20:01:45+08:00","id":"https://lruihao.cn/posts/hugo-i18n-zh-tw/","url":"https://lruihao.cn/posts/hugo-i18n-zh-tw/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["FixIt","hugo","I18n"],"summary":" 工作上一直常用繁體,最近臨帖也都寫的繁體,所以博客的語言也想換成繁體,但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e工作上一直常用繁體,最近臨帖也都寫的繁體,所以博客的語言也想換成繁體,但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Hugo 友情連結模板","date_published":"2021-10-05T14:14:10+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-friends/","url":"https://lruihao.cn/posts/hugo-friends/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo"],"summary":" 過程 以前的 hexo 博客是自己寫的友鏈模板,換到 hugo 後想著在網上隨便找一個範本用著就好,然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的,代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e過程\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e以前的 hexo 博客是自己寫的友鏈模板,換到 hugo 後想著在網上隨便找一個範本用著就好,然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的,代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e\n\u003ca href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e友情鏈接模板已整合到 FixIt 主題\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/Lruihao/FixIt\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e"},{"title":"Hugo 本地管理 Shell 腳本","date_published":"2021-10-04T23:49:00+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-admin/","url":"https://lruihao.cn/posts/hugo-admin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","shell"],"image":"/posts/hugo-admin/images/hugo-admin1.png","summary":" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。\n自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。 ","content_html":"\u003cdiv class=\"details admonition abstract open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"\u003e\u003c/i\u003e摘要\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。\u003cbr\u003e\n自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶","date_published":"2021-10-04T23:46:49+08:00","date_modified":"2024-12-17T18:09:03+08:00","id":"https://lruihao.cn/posts/github-actions/","url":"https://lruihao.cn/posts/github-actions/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","GitHub Actions","hugo","腾讯云 cos 桶"],"summary":" 解決痛點 Github Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e解決痛點\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003eGithub Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\u003cbr\u003e\n也就是説實現了在線寫靜態博客的需求。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"个人博客从 Hexo 迁移至 Hugo","date_published":"2021-10-03T15:27:58+08:00","date_modified":"2024-11-06T19:42:55+08:00","id":"https://lruihao.cn/posts/hexo-to-hugo/","url":"https://lruihao.cn/posts/hexo-to-hugo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["FixIt","Hexo","hugo"],"summary":" 电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Code Review 怎麼做?新手工程師如何提升「程式碼品質」","date_published":"2021-03-04T21:04:18+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codereview/","url":"https://lruihao.cn/posts/codereview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["codereview"],"summary":"1 程式碼的持續優化 對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"程式碼的持續優化\"\u003e\u003cspan\u003e1 程式碼的持續優化\u003c/span\u003e\n \u003ca href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:\u003c/p\u003e"},{"title":"cell-blog 开发记录","date_published":"2020-07-25T20:42:42+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cell-blog-dev/","url":"https://lruihao.cn/posts/cell-blog-dev/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","Laravel","Markdown"],"summary":" Cell Blog 开发记录,项目地址\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eCell Blog 开发记录,\u003ca href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e项目地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Sublime Text3 快捷键大全","date_published":"2019-08-15T20:59:10+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/sublime-text3/","url":"https://lruihao.cn/posts/sublime-text3/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Sublime","他山之石"],"summary":"Sublime Text3 快捷键一览表\n","content_html":"\u003cp\u003eSublime Text3 快捷键一览表\u003c/p\u003e"},{"title":"NetBeans IDE 开发设置","date_published":"2019-08-15T18:36:15+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/netbeans/","url":"https://lruihao.cn/posts/netbeans/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["NetBeans","PHP"],"summary":"7 安裝 官方下載點\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件(方便) 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"安裝\"\u003e\u003cspan\u003e7 安裝\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方下載點\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"擴充功能\"\u003e\u003cspan\u003e8 擴充功能\u003c/span\u003e\n \u003ca href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"安裝擴充功能\"\u003e\u003cspan\u003e8.1 安裝擴充功能\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e下載擴充套件包\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方套件庫\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e或者在 NetBeans IDE 裏面下載插件(方便)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\u003c/li\u003e\n\u003cli\u003e選擇要安裝的擴充套件包\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"\u003e\u003cspan\u003e8.2 啟用已安裝的擴充功能\u003c/span\u003e\n \u003ca href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Plugins→Installed\u003c/li\u003e\n\u003cli\u003e選擇要啟用的套件 (*.npm)\u003c/li\u003e\n\u003cli\u003e點擊 Activate\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"匯入設定\"\u003e\u003cspan\u003e8.3 匯入設定\u003c/span\u003e\n \u003ca href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Options\u003c/li\u003e\n\u003cli\u003e點擊 Import 匯入設定\u003c/li\u003e\n\u003cli\u003e選擇要匯入的套件包 (*.zip)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"常用設定\"\u003e\u003cspan\u003e9 常用設定\u003c/span\u003e\n \u003ca href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"程式碼排版\"\u003e\u003cspan\u003e9.1 程式碼排版\u003c/span\u003e\n \u003ca href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cblockquote\u003e\n\u003cp\u003e在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。\u003c/p\u003e"},{"title":"WAMPServer 自定义网站根目录等设置","date_published":"2019-07-12T18:44:36+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/wamproot/","url":"https://lruihao.cn/posts/wamproot/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["WAMP","PHP","windows","server"],"summary":" 使用 WAMPServer 时自定义网站根目录。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用 WAMPServer 时自定义网站根目录。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"HustOJ 基础搭建教程","date_published":"2019-05-17T23:08:04+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/hustoj/","url":"https://lruihao.cn/posts/hustoj/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hustoj","ACM","ubuntu","linux"],"summary":" 目前 HustOj 在 GitHUb 地址是:https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本,没条件的可以在自己 ubuntu 上尝试,或者虚拟机上(关注公众号回复ubuntu16.04获取 iso 镜像文件),也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e目前 HustOj 在 GitHUb 地址是:\u003ca href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://github.com/zhblue/hustoj\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n\u003cstrong\u003e安装时注意 ubuntu 版本\u003c/strong\u003e,没条件的可以在自己 ubuntu 上尝试,或者虚拟机上(关注公众号回复\u003ccode\u003eubuntu16.04\u003c/code\u003e获取 iso 镜像文件),也可以在云实验室的云服务器上做做实验。\u003cbr\u003e\n更多说明及 ACM/NOIP 题库下载见官网博客 \u003ca href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e代码的那些事 | 程序员回忆录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"前端面试题 - HTML+CSS","date_published":"2019-03-30T22:58:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/ms-html-css/","url":"https://lruihao.cn/posts/ms-html-css/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","CSS"],"summary":" 原文链接\n“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e原文链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过\u003c/p\u003e"},{"title":"hexo-theme-next @modified LRH","date_published":"2019-03-21T16:43:19+08:00","date_modified":"2019-09-13T16:43:19+08:00","id":"https://lruihao.cn/posts/hexo-theme-next/","url":"https://lruihao.cn/posts/hexo-theme-next/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js","他山之石"],"image":"/posts/hexo-theme-next/images/next.png","summary":" 危险 如无必要,不再更新!(2019.09.13)\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\n以下仍为当前博客使用主题,lib 资源已打包 github。 ","content_html":"\u003c!-- markdownlint-disable-file --\u003e\n\u003cdiv class=\"details admonition danger open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"\u003e\u003c/i\u003e危险\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cspan style=\"color: #d9534f;font-size: 1.2em;\"\u003e\u003cstrong\u003e如无必要,不再更新!(2019.09.13)\u003c/strong\u003e\u003c/span\u003e\u003cbr\u003e\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将\u003cstrong\u003e放弃对 next 的主题的自定义修改\u003c/strong\u003e,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。\u003cbr\u003e\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\u003cbr\u003e\n以下仍为当前博客使用主题,lib 资源已打包 github。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"web 汇总","date_published":"2019-03-18T20:40:55+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/webbiji/","url":"https://lruihao.cn/posts/webbiji/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 下面一些 web 开发的一些总结,还有一些常用到的代码,脚本等!\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e下面一些 web 开发的一些总结,还有一些常用到的代码,脚本等!\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"eclipse 的基本使用","date_published":"2019-03-15T23:47:24+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/eclipseuse/","url":"https://lruihao.cn/posts/eclipseuse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["eclipse","Java"],"summary":"9 基本使用 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例(代码以项目为基本单位) a: 创建项目(工程) *File -- New -- Java Project *在左边空白处,直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译,在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置(如果你的 Eclipse 启动没有问题,就不要配置了) B: 去掉默认注释(可以不用改) C: 行号的显示和隐藏 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers 即可。 隐藏:把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了,怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击)12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...","content_html":"\u003ch2 class=\"heading-element\" id=\"基本使用\"\u003e\u003cspan\u003e9 基本使用\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例(代码以项目为基本单位)\n a: 创建项目(工程)\n *File -- New -- Java Project\n *在左边空白处,直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译,在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"eclipse-的基本设置\"\u003e\u003cspan\u003e10 Eclipse 的基本设置\u003c/span\u003e\n \u003ca href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 程序的编译和运行的环境配置(如果你的 Eclipse 启动没有问题,就不要配置了)\nB: 去掉默认注释(可以不用改)\nC: 行号的显示和隐藏\n 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers 即可。\n 隐藏:把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色:\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了,怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快捷键的使用\"\u003e\u003cspan\u003e11 快捷键的使用\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 内容辅助键\n Alt+/ 起提示作用\n main+alt+/,syso+alt+/, 给出其他提示\nB: 快捷键\n 格式化 ctrl+shift+f\n 导入包 ctrl+shift+o\n 注释 ctrl+/\n ctrl+shift+/,ctrl+shift+\\\n 代码上下移动 选中代码 alt+上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击)\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"\u003e\u003cspan\u003e12 Eclipse 中如何提高开发效率\u003c/span\u003e\n \u003ca href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...\u003c/code\u003e\u003c/pre\u003e"},{"title":"利用腾讯云对象存储 COS 桶托管 hexo 博客","date_published":"2019-01-22T14:57:08+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/cos-hexo/","url":"https://lruihao.cn/posts/cos-hexo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","hugo","对象存储","腾讯云 cos 桶"],"summary":" 本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。\u003cbr\u003e\n适用于 hexo, hugo 等静态博客的部署。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"在搜索、文章底部、侧栏添加最近文章模块","date_published":"2019-01-16T17:50:52+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/recent-posts/","url":"https://lruihao.cn/posts/recent-posts/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 首先在主题配置文件添加以下关键字\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e首先在主题配置文件添加以下关键字\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre\u003e\u003ccode\u003erecent_posts:\n enable: true\n search: true\n post: false\n sidebar: false\n icon: history\n title: 近期文章\n layout: block\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"侧栏\"\u003e\u003cspan\u003e9 侧栏\u003c/span\u003e\n \u003ca href=\"#%e4%be%a7%e6%a0%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 \u003ccode\u003enext/layout/_macro/sidebar.swig\u003c/code\u003e 中的 \u003ccode\u003eif theme.links\u003c/code\u003e 对应的 \u003ccode\u003eendif\u003c/code\u003e 后面。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n \u003cdiv class=\"links-of-blogroll motion-element {{ \"links-of-blogroll-\" + theme.recent_posts.layout }}\"\u003e\n \u003cdiv class=\"links-of-blogroll-title\"\u003e\n \u003ci class=\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\" aria-hidden=\"true\"\u003e\u003c/i\u003e\n {{ theme.recent_posts.title }}\n \u003c/div\u003e\n \u003cul class=\"links-of-blogroll-list\"\u003e\n {% set posts = site.posts.sort('-date') %}\n {% for post in posts.slice('0', '3') %}\n \u003cli\u003e\n \u003ca href=\"{{ url_for(post.path) }}\" title=\"{{ post.title }}\" target=\"_blank\"\u003e{{ post.title }}\u003c/a\u003e\n \u003c/li\u003e\n {% endfor %}\n \u003c/ul\u003e\n \u003c/div\u003e\n{% endif %}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"搜索结果处添加\"\u003e\u003cspan\u003e10 搜索结果处添加\u003c/span\u003e\n \u003ca href=\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e找到路径\u003ccode\u003eH:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search\u003c/code\u003e下\u003ccode\u003elocalsearch.swig\u003c/code\u003e文件\u003cbr\u003e\n把\u003ccode\u003e\u0026lt;div id=\u0026quot;local-search-result\u0026quot;\u0026gt;\u0026lt;/div\u0026gt;\u003c/code\u003e修改成以下内容(这里显示 15 篇)\u003c/p\u003e"},{"title":"英语语法--主谓一致","date_published":"2019-01-12T13:02:49+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/subject-verb/","url":"https://lruihao.cn/posts/subject-verb/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 1 常见情况 1.1 由 and 或 both and 连接的并列主语,谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时,谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后,所以谓语动词用复数 1.3 当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数 比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ch2 class=\"heading-element\" id=\"常见情况\"\u003e\u003cspan\u003e1 常见情况\u003c/span\u003e\n \u003ca href=\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\"\u003e\u003cspan\u003e1.1 由 and 或 both and 连接的并列主语,谓语动词一般用复数\u003c/span\u003e\n \u003ca href=\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003eEnglish \u003cu\u003eand\u003c/u\u003e chinese are two quite different languages.\u003c/li\u003e\n\u003cli\u003e\u003cu\u003eBoth\u003c/u\u003e brother \u003cu\u003eand\u003c/u\u003e sister tire of city life.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\"\u003e\u003cspan\u003e1.2 一但主语前被 no,every,each 所修饰时,谓语动词用单数\u003c/span\u003e\n \u003ca href=\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\u003cu\u003eNo\u003c/u\u003e desk \u003cu\u003eand\u003c/u\u003e (no) chair is seen in the hall.\u003c/li\u003e\n\u003cli\u003eAll work \u003cu\u003eand\u003c/u\u003e \u003cu\u003eno\u003c/u\u003e play makes Jack a dull boy.\u003c/li\u003e\n\u003cli\u003eThey each have been to the Forbidden city.\neach 位于主语后,所以谓语动词用复数\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"\u003e\u003cspan\u003e1.3 当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数\u003c/span\u003e\n \u003ca href=\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\u003c/p\u003e"},{"title":"英语语法--形式倒装","date_published":"2018-12-10T21:52:30+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-3/","url":"https://lruihao.cn/posts/inversion-3/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 形式倒装,句子本不是本来的语序。\n0.1 may 位于句首,标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.(毛主席万古长青) 0.2 whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前 例句\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e形式倒装,句子本不是本来的语序。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"may-位于句首标祝愿\"\u003e\u003cspan\u003e0.1 may 位于句首,标祝愿\u003c/span\u003e\n \u003ca href=\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eMay you succeed.\u003c/li\u003e\n\u003cli\u003eMay you have a happy holiday.\u003c/li\u003e\n\u003cli\u003eLong live chairman Mao.(毛主席万古长青)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"\u003e\u003cspan\u003e0.2 whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前\u003c/span\u003e\n \u003ca href=\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e"},{"title":"英语语法--完全倒装","date_published":"2018-12-10T21:14:51+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-2/","url":"https://lruihao.cn/posts/inversion-2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 完全倒装:把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e完全倒装:把整个谓语动词放到主语前。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"表方位或时间的副词-adv表地点的介词短语位于句首时\"\u003e\u003cspan\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\u003c/span\u003e\n \u003ca href=\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eHere comes the bus.\u003c/li\u003e\n\u003cli\u003eIn the lecture hall of a university sits a professor.\u003c/li\u003e\n\u003cli\u003eOut rushed the children.\u003c/li\u003e\n\u003cli\u003eNow comes your turn.\u003c/li\u003e\n\u003cli\u003eUp jumped the cat and caught the mouse.\u003c/li\u003e\n\u003cli\u003e\u003cu\u003eDown\u003c/u\u003e came the rain and \u003cu\u003eup\u003c/u\u003e went the umbrellas.\u003c/li\u003e\n\u003cli\u003eAmong the people stood his friend,Jim.\u003c/li\u003e\n\u003cli\u003e(To be) South of the river lies a small factory.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e但主语为表示人称的代词时无需倒装\u003c/p\u003e"},{"title":"英语语法--部分倒装","date_published":"2018-12-08T17:52:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-1/","url":"https://lruihao.cn/posts/inversion-1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。以下内容纯手打!! 先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。\u003cstrong\u003e以下内容纯手打!!\u003c/strong\u003e\n先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo 插件及 next 内置样式集","date_published":"2018-11-24T16:54:09+08:00","date_modified":"2021-10-02T15:27:58+08:00","id":"https://lruihao.cn/posts/nextplugin/","url":"https://lruihao.cn/posts/nextplugin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用,已删除。\n让文章写的好看又简洁又好用的插件!hexo 完整的标签列表,next 插件列表\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2021/10/2 更新\u003cbr\u003e\n博客已迁移至 Hugo, 插件演示不适用,已删除。\u003cbr\u003e\n让文章写的好看又简洁又好用的插件!\u003ca href=\"https://hexo.io/zh-cn/docs/tag-plugins.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 完整的标签列表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://theme-next.org/docs/tag-plugins/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003enext 插件列表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"next 添加支持 pdf","date_published":"2018-11-09T12:51:48+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/next-pdf/","url":"https://lruihao.cn/posts/next-pdf/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 最新的 next 主题已经更新了支持 PDF 功能,写法也和链接写法一样,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。\n7 iframe(推荐) 8 模板自带 今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件) 但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e最新的 next 主题已经更新了支持 PDF 功能,\u003cdel\u003e写法也和链接写法一样\u003c/del\u003e,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"iframe推荐\"\u003e\u003cspan\u003e7 iframe(推荐)\u003c/span\u003e\n \u003ca href=\"#iframe%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003ciframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"\u003e\u003c/iframe\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"模板自带\"\u003e\u003cspan\u003e8 模板自带\u003c/span\u003e\n \u003ca href=\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件)\n但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\u003c/p\u003e"},{"title":"hexo 博客源码备份","date_published":"2018-11-03T12:49:28+08:00","date_modified":"2018-11-03T12:49:28+08:00","id":"https://lruihao.cn/posts/blog-backup/","url":"https://lruihao.cn/posts/blog-backup/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","Hexo","Node.js"],"image":"/posts/blog-backup/images/1.png","summary":"5 备份 hexo 博客 //如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好,即搭建完成\n","content_html":"\u003ch2 class=\"heading-element\" id=\"备份-hexo-博客\"\u003e\u003cspan\u003e5 备份 hexo 博客\u003c/span\u003e\n \u003ca href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e//如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m \"blog hexo\"\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"\u003e\u003cspan\u003e6 在其他终端克隆和更新 hexo 博客\u003c/span\u003e\n \u003ca href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003enodejs,git,hexo 已经安装好,即搭建完成\u003c/p\u003e"},{"title":"termux 基本使用教程","date_published":"2018-10-23T22:16:02+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/termux1/","url":"https://lruihao.cn/posts/termux1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","linux","termux"],"summary":" 前面有一篇文章写到一些,在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙,可前往国光第三方博客诸如 csdn 等。备用\n17 初始化 下载并初始化 termux\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e前面有一篇文章写到一些,\u003ca href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Android 上搭建 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\n\u003cstrong\u003e本文当初摘要自 \u003ca href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e国光个人博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\n如若作者博客 IP 被墙,可前往国光第三方博客诸如 csdn 等。\u003ca href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e备用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"初始化\"\u003e\u003cspan\u003e17 初始化\u003c/span\u003e\n \u003ca href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e下载并初始化 termux\u003c/p\u003e"},{"title":"Vim 速查表","date_published":"2018-08-31T11:46:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/vim/","url":"https://lruihao.cn/posts/vim/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["vim","他山之石"],"summary":"Vim 速查表 - 帮你提高 N 倍效率\n","content_html":"\u003cp\u003eVim 速查表 - 帮你提高 N 倍效率\u003c/p\u003e"},{"title":"hexo next 主题添加字数统计(2018)","date_published":"2018-08-30T13:15:50+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexo-wordcount/","url":"https://lruihao.cn/posts/hexo-wordcount/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","字数统计"],"summary":" 警告 2018/11/1 说明 next 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!\n最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)\n","content_html":"\u003cdiv class=\"details admonition warning open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"\u003e\u003c/i\u003e警告\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e\u003cstrong\u003e2018/11/1 说明\nnext 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"hexo d 出错","date_published":"2018-08-21T22:15:01+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexo-d-error/","url":"https://lruihao.cn/posts/hexo-d-error/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":"搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录,防止以后出错用。\n错误如下\n","content_html":"\u003cp\u003e搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\u003cbr\u003e\n现在做一下记录,防止以后出错用。\u003cbr\u003e\n错误如下\u003c/p\u003e"},{"title":"hexo 个性化 - next 主题动态显示 subtitle","date_published":"2018-08-20T16:16:40+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/dongtaisub/","url":"https://lruihao.cn/posts/dongtaisub/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 本文适合我这种纯小白。 目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门(关键词:js, 后加载)\n但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e本文适合我这种纯小白。\n目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\u003ca href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e传送门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(关键词:js, 后加载)\u003cbr\u003e\n但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"在 Android 上搭建 hexo 博客","date_published":"2018-08-11T16:59:05+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/termux/","url":"https://lruihao.cn/posts/termux/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js","termux"],"summary":" 暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**部署后的效果**\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**\u003ca href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e部署后的效果\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e**\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"各种 Links 汇总与分享","date_published":"2018-06-07T00:06:05+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/links/","url":"https://lruihao.cn/posts/links/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM"],"summary":" 2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2021/10/1 更新\u003cbr\u003e\n使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。\u003c/p\u003e\n\u003cp\u003e我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo+github 搭建个人博客及美化","date_published":"2018-06-01T14:34:23+08:00","date_modified":"2021-10-03T15:27:58+08:00","id":"https://lruihao.cn/posts/hexobuild/","url":"https://lruihao.cn/posts/hexobuild/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js"],"summary":"更多关于 hexo\n17 首先 官方文档 是我们的第一手资料,也是最好的。 安装 Hexo 相当简单。然而在安装前,你必须检查电脑中是否已安装下列应用程序:\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"/categories/hexo/\"\u003e更多关于 hexo\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"首先\"\u003e\u003cspan\u003e17 首先\u003c/span\u003e\n \u003ca href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 是我们的第一手资料,也是最好的。\n安装 Hexo 相当简单。然而在安装前,你必须检查电脑中是否已安装下列应用程序:\u003c/p\u003e"},{"title":"hexo 添加图片,音乐,链接,视频","date_published":"2018-05-31T23:19:22+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexowrite/","url":"https://lruihao.cn/posts/hexowrite/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 如果实在搞得头晕直接去 简书 写文章,再把简书生成的 md 文章复制过来就好了(简书是个不错的 Markdown 在线编辑器),还可以去 马克飞象,专为印象笔记打造的 Markdown 编辑器,typora 也是不错的,突然发现 csdn 也支持 Markdown 编译器了\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e如果实在搞得头晕直接去 \u003ca href=\"https://www.jianshu.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简书\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 写文章,再把简书生成的 md 文章复制过来就好了(简书是个不错的 Markdown 在线编辑器),还可以去 \u003ca href=\"https://maxiang.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e马克飞象,专为印象笔记打造的 Markdown 编辑器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://www.typora.io/#\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003etypora 也是不错的\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,突然发现 \u003ca href=\"https://www.csdn.net/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecsdn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 也支持 Markdown 编译器了\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/memo/index.html ================================================ Memo - 分类 | 菠菜眾長
================================================ FILE: categories/memo/index.xml ================================================ Memo - 分类 | 菠菜眾長https://lruihao.cn/categories/memo/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Tue, 07 Jan 2025 10:08:46 +0800自动获取 GitHub README 内容添加到 Hugo 文章https://lruihao.cn/posts/content-adapters/Sun, 06 Oct 2024 11:10:22 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/content-adapters/Memo<p>在这个博客中,我经常会写一些关于开源项目的文章,而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步,我希望能够自动获取 GitHub 仓库的 README 内容,然后添加到 Hugo 文章中。这样,我就不用再手动复制粘贴 README 内容了。</p>写文档时英文标题什么时候要大写?https://lruihao.cn/posts/c6bc2d5/Tue, 26 Mar 2024 12:23:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/c6bc2d5/Memo<p>对于本文的标题的思考来自于 <a href="https://gohugo.io/getting-started/configuration/#titlecasestyle" target="_blank" rel="external nofollow noopener noreferrer">Hugo 配置文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>中的一个配置 <code>titleCaseStyle</code>,默认情况下,Hugo 在创建自动章节标题以及使用 <code>strings.Title</code> 函数转换字符串时遵循美联社样本中发布的大小写规则。</p> <p>但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。</p> <p>经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,<a href="https://pub.bnu.edu.cn/jzyg1/72203.html" target="_blank" rel="external nofollow noopener noreferrer">“出版物中,英文什么时候要大写? ”<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>写作技巧:如何搭建文章的框架结构?https://lruihao.cn/posts/article-structure/Tue, 26 Sep 2023 15:17:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/article-structure/Memo<p>最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。</p>VSCode 添加用户代码片段,自定义用户代码片段https://lruihao.cn/posts/vscode-snippets/Thu, 14 Sep 2023 11:21:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vscode-snippets/Memo<p>在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。</p>Mac 上的开发配置总结https://lruihao.cn/posts/config4mac/Fri, 29 Jul 2022 20:22:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/config4mac/Memo<p>记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。</p>Mac 配置 ADBhttps://lruihao.cn/posts/adb-for-mac/Tue, 05 Jul 2022 15:39:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/adb-for-mac/Memo<p>作为非安卓专业开发,无需下载 Android SDK,<br> 仅下载 Android SDK 中的 <a href="https://developer.android.com/studio/releases/platform-tools?hl=zh-cn" target="_blank" rel="external nofollow noopener noreferrer">platform-tools<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 命令行工具即可,并配置好环境变量。</p>Getting Things Done for ios App Reminders and Github issueshttps://lruihao.cn/posts/gtd/Wed, 22 Dec 2021 20:17:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/gtd/Memo<div class="details admonition quote open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-quote-right" aria-hidden="true"></i>quote<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p><strong>Getting Things Done (GTD)</strong> is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states &ldquo;there is an inverse relationship between things on your mind and those things getting done&rdquo;.</p> <ul> <li><a href="https://en.wikipedia.org/wiki/Getting_Things_Done" target="_blank" rel="external nofollow noopener noreferrer">Reference<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://github.com/Lruihao/hugo-blog/issues/20" target="_blank" rel="external nofollow noopener noreferrer">#20<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul></div> </div> </div>Sublime 剪贴板图片粘贴插件 —— Markdown 必备https://lruihao.cn/posts/subl_imgpaste2/Tue, 05 Oct 2021 21:54:06 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/subl_imgpaste2/Memo<!-- markdownlint-disable MD034 --> <a href="https://github.com/robinchenyu/imagepaste" title="插件地址" target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop"></span> <span class="cl-content"> <span class="cl-text"> <span class="cl-title">插件地址</span> <span class="cl-meta"> <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg> <span class="cl-url">github.com/robinchenyu/imagepaste</span> </span> </span><img src="https://lruihao.cn/images/remote/github_14075797050460861398.png" alt="card image" class="cl-shortcut-image"></span></a>Hugo 添加知乎卡片式链接 Shortcodeshttps://lruihao.cn/posts/hugo-cardlink/Tue, 05 Oct 2021 19:33:13 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hugo-cardlink/Memo<!-- markdownlint-disable MD034 --> <a href="https://github.com/Lruihao/FixIt" target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop"></span> <span class="cl-content"> <span class="cl-text"> <span class="cl-title">卡片式链接已整合到 FixIt 主题</span> <span class="cl-meta"> <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg> <span class="cl-url">github.com/Lruihao/FixIt</span> </span> </span><img src="https://lruihao.cn/images/remote/github_14075797050460861398.png" alt="card image" class="cl-shortcut-image"></span></a> <div class="details admonition quote open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-quote-right" aria-hidden="true"></i>回顧<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">之前在使用 hexo 的時候也有用到,<a href="https://lruihao.cn/posts/linkcard/">模仿知乎卡片式链接</a><br> 和之前的相比,優化之前是后加載,由 JS 在 瀏覽器處理,<br> 使用 shortcodes 方式后,則是在 GO 構建頁面的時候處理,效能上會好很多。</div> </div> </div>Hugo I18n 添加中文繁體翻譯https://lruihao.cn/posts/hugo-i18n-zh-tw/Tue, 05 Oct 2021 19:14:45 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hugo-i18n-zh-tw/Memo<blockquote> <p>工作上一直常用繁體,最近臨帖也都寫的繁體,所以博客的語言也想換成繁體,但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。</p> </blockquote>Hugo 友情連結模板https://lruihao.cn/posts/hugo-friends/Tue, 05 Oct 2021 14:14:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hugo-friends/Memo<!-- markdownlint-disable MD034 --> <div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>過程<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">以前的 hexo 博客是自己寫的友鏈模板,換到 hugo 後想著在網上隨便找一個範本用著就好,然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的,代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。</div> </div> </div> <a href="https://github.com/Lruihao/FixIt" target="_blank" rel="external nofollow noopener noreferrer" class="card-link"><span class="cl-backdrop"></span> <span class="cl-content"> <span class="cl-text"> <span class="cl-title">友情鏈接模板已整合到 FixIt 主題</span> <span class="cl-meta"> <svg class="cl-icon-link" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z" fill="#a9a9b3"></path><path d="M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z" fill="#a9a9b3"></path></svg> <span class="cl-url">github.com/Lruihao/FixIt</span> </span> </span><img src="https://lruihao.cn/images/remote/github_14075797050460861398.png" alt="card image" class="cl-shortcut-image"></span></a>Hugo 本地管理 Shell 腳本https://lruihao.cn/posts/hugo-admin/Mon, 04 Oct 2021 23:49:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hugo-admin/Memo<div class="details admonition abstract open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-clipboard-list" aria-hidden="true"></i>摘要<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。<br> 自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。</div> </div> </div>Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶https://lruihao.cn/posts/github-actions/Mon, 04 Oct 2021 23:46:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/github-actions/MemoGit<div class="details admonition quote open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-quote-right" aria-hidden="true"></i>解決痛點<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">Github Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。<br> 也就是説實現了在線寫靜態博客的需求。</div> </div> </div>个人博客从 Hexo 迁移至 Hugohttps://lruihao.cn/posts/hexo-to-hugo/Sun, 03 Oct 2021 15:27:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexo-to-hugo/Memo<blockquote> <p>电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。</p> </blockquote>Code Review 怎麼做?新手工程師如何提升「程式碼品質」https://lruihao.cn/posts/codereview/Thu, 04 Mar 2021 21:04:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/codereview/Memo<h2 class="heading-element" id="程式碼的持續優化"><span>1 程式碼的持續優化</span> <a href="#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:</p>cell-blog 开发记录https://lruihao.cn/posts/cell-blog-dev/Sat, 25 Jul 2020 20:42:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cell-blog-dev/Memo<blockquote> <p>Cell Blog 开发记录,<a href="https://github.com/Lruihao/cell-blog" target="_blank" rel="external nofollow noopener noreferrer">项目地址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>Sublime Text3 快捷键大全https://lruihao.cn/posts/sublime-text3/Thu, 15 Aug 2019 20:59:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/sublime-text3/Memo<p>Sublime Text3 快捷键一览表</p>NetBeans IDE 开发设置https://lruihao.cn/posts/netbeans/Thu, 15 Aug 2019 18:36:15 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/netbeans/Memo<h2 class="heading-element" id="安裝"><span>10 安裝</span> <a href="#%e5%ae%89%e8%a3%9d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://netbeans.org/" target="_blank" rel="external nofollow noopener noreferrer">官方下載點<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="擴充功能"><span>11 擴充功能</span> <a href="#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="安裝擴充功能"><span>11.1 安裝擴充功能</span> <a href="#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li>下載擴充套件包 <ul> <li><a href="http://plugins.netbeans.org/PluginPortal/" target="_blank" rel="external nofollow noopener noreferrer">官方套件庫<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>或者在 NetBeans IDE 裏面下載插件(方便)</li> </ul> </li> <li>開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins</li> <li>選擇要安裝的擴充套件包</li> </ol> <h3 class="heading-element" id="啟用已安裝的擴充功能"><span>11.2 啟用已安裝的擴充功能</span> <a href="#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li>開啟 NetBeans→Tools→Plugins→Installed</li> <li>選擇要啟用的套件 (*.npm)</li> <li>點擊 Activate</li> </ol> <h3 class="heading-element" id="匯入設定"><span>11.3 匯入設定</span> <a href="#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li>開啟 NetBeans→Tools→Options</li> <li>點擊 Import 匯入設定</li> <li>選擇要匯入的套件包 (*.zip)</li> </ol> <h2 class="heading-element" id="常用設定"><span>12 常用設定</span> <a href="#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="程式碼排版"><span>12.1 程式碼排版</span> <a href="#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><blockquote> <p>在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。</p>WAMPServer 自定义网站根目录等设置https://lruihao.cn/posts/wamproot/Fri, 12 Jul 2019 18:44:36 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wamproot/Memo<blockquote> <p>使用 WAMPServer 时自定义网站根目录。</p> </blockquote>HustOJ 基础搭建教程https://lruihao.cn/posts/hustoj/Fri, 17 May 2019 23:08:04 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hustoj/Memo<blockquote> <p>目前 HustOj 在 GitHUb 地址是:<a href="https://github.com/zhblue/hustoj" target="_blank" rel="external nofollow noopener noreferrer">https://github.com/zhblue/hustoj<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> <strong>安装时注意 ubuntu 版本</strong>,没条件的可以在自己 ubuntu 上尝试,或者虚拟机上(关注公众号回复<code>ubuntu16.04</code>获取 iso 镜像文件),也可以在云实验室的云服务器上做做实验。<br> 更多说明及 ACM/NOIP 题库下载见官网博客 <a href="http://www.hustoj.com/" target="_blank" rel="external nofollow noopener noreferrer">代码的那些事 | 程序员回忆录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>前端面试题 - HTML+CSShttps://lruihao.cn/posts/ms-html-css/Sat, 30 Mar 2019 22:58:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ms-html-css/Memo<blockquote> <p><a href="https://github.com/ltadpoles/web-document/tree/master/Other" target="_blank" rel="external nofollow noopener noreferrer">原文链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><br> “卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。</p> </blockquote> <p>如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过</p>hexo-theme-next @modified LRHhttps://lruihao.cn/posts/hexo-theme-next/Thu, 21 Mar 2019 16:43:19 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexo-theme-next/Memo<!-- markdownlint-disable-file --> <div class="details admonition danger open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-bolt" aria-hidden="true"></i>危险<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><span style="color: #d9534f;font-size: 1.2em;"><strong>如无必要,不再更新!(2019.09.13)</strong></span><br> 今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将<strong>放弃对 next 的主题的自定义修改</strong>,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。<br> 我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。<br> 以下仍为当前博客使用主题,lib 资源已打包 github。</div> </div> </div>web 汇总https://lruihao.cn/posts/webbiji/Mon, 18 Mar 2019 20:40:55 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/webbiji/Memo<blockquote> <p>下面一些 web 开发的一些总结,还有一些常用到的代码,脚本等!</p> </blockquote>eclipse 的基本使用https://lruihao.cn/posts/eclipseuse/Fri, 15 Mar 2019 23:47:24 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/eclipseuse/Memo<h2 class="heading-element" id="基本使用"><span>13 基本使用</span> <a href="#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>A: 选择一个工作空间 D:\develop\eclipse-SDK-3.7.2-win64\workspace B: 如何写一个 HelloWorld 案例(代码以项目为基本单位) a: 创建项目(工程) *File -- New -- Java Project *在左边空白处,直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译,在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容</code></pre><h2 class="heading-element" id="eclipse-的基本设置"><span>14 Eclipse 的基本设置</span> <a href="#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>A: 程序的编译和运行的环境配置(如果你的 Eclipse 启动没有问题,就不要配置了) B: 去掉默认注释(可以不用改) C: 行号的显示和隐藏 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers 即可。 隐藏:把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了,怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console</code></pre><h2 class="heading-element" id="快捷键的使用"><span>15 快捷键的使用</span> <a href="#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>A: 内容辅助键 Alt&#43;/ 起提示作用 main&#43;alt&#43;/,syso&#43;alt&#43;/, 给出其他提示 B: 快捷键 格式化 ctrl&#43;shift&#43;f 导入包 ctrl&#43;shift&#43;o 注释 ctrl&#43;/ ctrl&#43;shift&#43;/,ctrl&#43;shift&#43;\ 代码上下移动 选中代码 alt&#43;上/下箭头 查看源码 选中类名 (F3 或者 Ctrl&#43;鼠标点击)</code></pre><h2 class="heading-element" id="eclipse-中如何提高开发效率"><span>16 Eclipse 中如何提高开发效率</span> <a href="#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...</code></pre>利用腾讯云对象存储 COS 桶托管 hexo 博客https://lruihao.cn/posts/cos-hexo/Tue, 22 Jan 2019 14:57:08 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cos-hexo/Memo<blockquote> <p>本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。<br> 适用于 hexo, hugo 等静态博客的部署。</p> </blockquote>在搜索、文章底部、侧栏添加最近文章模块https://lruihao.cn/posts/recent-posts/Wed, 16 Jan 2019 17:50:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/recent-posts/Memo<blockquote> <p>首先在主题配置文件添加以下关键字</p> </blockquote> <pre><code>recent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block</code></pre><h2 class="heading-element" id="侧栏"><span>13 侧栏</span> <a href="#%e4%be%a7%e6%a0%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 <code>next/layout/_macro/sidebar.swig</code> 中的 <code>if theme.links</code> 对应的 <code>endif</code> 后面。</p> <pre><code>{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} &lt;div class=&#34;links-of-blogroll motion-element {{ &#34;links-of-blogroll-&#34; &#43; theme.recent_posts.layout }}&#34;&gt; &lt;div class=&#34;links-of-blogroll-title&#34;&gt; &lt;i class=&#34;fa fa-history fa-{{ theme.recent_posts.icon | lower }}&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt; {{ theme.recent_posts.title }} &lt;/div&gt; &lt;ul class=&#34;links-of-blogroll-list&#34;&gt; {% set posts = site.posts.sort(&#39;-date&#39;) %} {% for post in posts.slice(&#39;0&#39;, &#39;3&#39;) %} &lt;li&gt; &lt;a href=&#34;{{ url_for(post.path) }}&#34; title=&#34;{{ post.title }}&#34; target=&#34;_blank&#34;&gt;{{ post.title }}&lt;/a&gt; &lt;/li&gt; {% endfor %} &lt;/ul&gt; &lt;/div&gt; {% endif %}</code></pre><h2 class="heading-element" id="搜索结果处添加"><span>14 搜索结果处添加</span> <a href="#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>找到路径<code>H:\hexo\themes\hexo-theme-next\layout\_partials\search</code>下<code>localsearch.swig</code>文件<br> 把<code>&lt;div id=&quot;local-search-result&quot;&gt;&lt;/div&gt;</code>修改成以下内容(这里显示 15 篇)</p>英语语法--主谓一致https://lruihao.cn/posts/subject-verb/Sat, 12 Jan 2019 13:02:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/subject-verb/Memo<!-- markdownlint-disable MD033 --> <h2 class="heading-element" id="常见情况"><span>1 常见情况</span> <a href="#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="由-and-或-both-and-连接的并列主语谓语动词一般用复数"><span>1.1 由 and 或 both and 连接的并列主语,谓语动词一般用复数</span> <a href="#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li>English <u>and</u> chinese are two quite different languages.</li> <li><u>Both</u> brother <u>and</u> sister tire of city life.</li> </ol> <h3 class="heading-element" id="一但主语前被-noeveryeach-所修饰时谓语动词用单数"><span>1.2 一但主语前被 no,every,each 所修饰时,谓语动词用单数</span> <a href="#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li><u>No</u> desk <u>and</u> (no) chair is seen in the hall.</li> <li>All work <u>and</u> <u>no</u> play makes Jack a dull boy.</li> <li>They each have been to the Forbidden city. each 位于主语后,所以谓语动词用复数</li> </ol> <h3 class="heading-element" id="当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数"><span>1.3 当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数</span> <a href="#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread</p>英语语法--形式倒装https://lruihao.cn/posts/inversion-3/Mon, 10 Dec 2018 21:52:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/inversion-3/Memo<blockquote> <p>形式倒装,句子本不是本来的语序。</p> </blockquote> <h3 class="heading-element" id="may-位于句首标祝愿"><span>0.1 may 位于句首,标祝愿</span> <a href="#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><strong>例句</strong></p> <ol> <li>May you succeed.</li> <li>May you have a happy holiday.</li> <li>Long live chairman Mao.(毛主席万古长青)</li> </ol> <h3 class="heading-element" id="whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前"><span>0.2 whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前</span> <a href="#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><strong>例句</strong></p>英语语法--完全倒装https://lruihao.cn/posts/inversion-2/Mon, 10 Dec 2018 21:14:51 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/inversion-2/Memo<blockquote> <p>完全倒装:把整个谓语动词放到主语前。</p> </blockquote> <h3 class="heading-element" id="表方位或时间的副词-adv表地点的介词短语位于句首时"><span>0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时</span> <a href="#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><strong>例句</strong></p> <ol> <li>Here comes the bus.</li> <li>In the lecture hall of a university sits a professor.</li> <li>Out rushed the children.</li> <li>Now comes your turn.</li> <li>Up jumped the cat and caught the mouse.</li> <li><u>Down</u> came the rain and <u>up</u> went the umbrellas.</li> <li>Among the people stood his friend,Jim.</li> <li>(To be) South of the river lies a small factory.</li> </ol> <p>但主语为表示人称的代词时无需倒装</p>英语语法--部分倒装https://lruihao.cn/posts/inversion-1/Sat, 08 Dec 2018 17:52:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/inversion-1/Memo<blockquote> <p>虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。<strong>以下内容纯手打!!</strong> 先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。</p> </blockquote>hexo 插件及 next 内置样式集https://lruihao.cn/posts/nextplugin/Sat, 24 Nov 2018 16:54:09 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/nextplugin/Memo<blockquote> <p>2021/10/2 更新<br> 博客已迁移至 Hugo, 插件演示不适用,已删除。<br> 让文章写的好看又简洁又好用的插件!<a href="https://hexo.io/zh-cn/docs/tag-plugins.html" target="_blank" rel="external nofollow noopener noreferrer">hexo 完整的标签列表<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,<a href="https://theme-next.org/docs/tag-plugins/" target="_blank" rel="external nofollow noopener noreferrer">next 插件列表<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>next 添加支持 pdfhttps://lruihao.cn/posts/next-pdf/Fri, 09 Nov 2018 12:51:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/next-pdf/Memo<blockquote> <p>最新的 next 主题已经更新了支持 PDF 功能,<del>写法也和链接写法一样</del>,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。</p> </blockquote> <h2 class="heading-element" id="iframe推荐"><span>10 iframe(推荐)</span> <a href="#iframe%e6%8e%a8%e8%8d%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>&lt;iframe src=&#34;/posts/next-pdf/1.pdf&#34; style=&#34;width: 100%;height: 800px;&#34;&gt;&lt;/iframe&gt;</code></pre><h2 class="heading-element" id="模板自带"><span>11 模板自带</span> <a href="#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件) 但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。</p>hexo 博客源码备份https://lruihao.cn/posts/blog-backup/Sat, 03 Nov 2018 12:49:28 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/blog-backup/Memo<h2 class="heading-element" id="备份-hexo-博客"><span>7 备份 hexo 博客</span> <a href="#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>//如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m &#34;blog hexo&#34; git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上</code></pre><h2 class="heading-element" id="在其他终端克隆和更新-hexo-博客"><span>8 在其他终端克隆和更新 hexo 博客</span> <a href="#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>nodejs,git,hexo 已经安装好,即搭建完成</p>termux 基本使用教程https://lruihao.cn/posts/termux1/Tue, 23 Oct 2018 22:16:02 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/termux1/Memo<blockquote> <p>前面有一篇文章写到一些,<a href="https://lruihao.cn/posts/termux/" target="_blank" rel="external nofollow noopener noreferrer">在 Android 上搭建 hexo 博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> <strong>本文当初摘要自 <a href="https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879" target="_blank" rel="external nofollow noopener noreferrer">国光个人博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></strong> 如若作者博客 IP 被墙,可前往国光第三方博客诸如 csdn 等。<a href="https://www.freebuf.com/geek/170510.html" target="_blank" rel="external nofollow noopener noreferrer">备用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote> <h2 class="heading-element" id="初始化"><span>25 初始化</span> <a href="#%e5%88%9d%e5%a7%8b%e5%8c%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>下载并初始化 termux</p>Vim 速查表https://lruihao.cn/posts/vim/Fri, 31 Aug 2018 11:46:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vim/Memo<p>Vim 速查表 - 帮你提高 N 倍效率</p>hexo next 主题添加字数统计(2018)https://lruihao.cn/posts/hexo-wordcount/Thu, 30 Aug 2018 13:15:50 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexo-wordcount/Memo<div class="details admonition warning open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-exclamation-triangle" aria-hidden="true"></i>警告<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p><strong>2018/11/1 说明 next 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!</strong></p> <p>最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)</p> </div> </div> </div>hexo d 出错https://lruihao.cn/posts/hexo-d-error/Tue, 21 Aug 2018 22:15:01 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexo-d-error/Memo<p>搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。<br> 现在做一下记录,防止以后出错用。<br> 错误如下</p>hexo 个性化 - next 主题动态显示 subtitlehttps://lruihao.cn/posts/dongtaisub/Mon, 20 Aug 2018 16:16:40 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dongtaisub/Memo<blockquote> <p>本文适合我这种纯小白。 目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。<a href="https://www.jianshu.com/p/df2c844eeabf" target="_blank" rel="external nofollow noopener noreferrer">传送门<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>(关键词:js, 后加载)<br> 但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:</p> </blockquote>在 Android 上搭建 hexo 博客https://lruihao.cn/posts/termux/Sat, 11 Aug 2018 16:59:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/termux/Memo<blockquote> <p>暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**<a href="https://lruihao.gitee.io" target="_blank" rel="external nofollow noopener noreferrer">部署后的效果<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>**</p> </blockquote>各种 Links 汇总与分享https://lruihao.cn/posts/links/Thu, 07 Jun 2018 00:06:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/links/Memo<blockquote> <p>2021/10/1 更新<br> 使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。</p> <p>我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,</p> </blockquote>hexo+github 搭建个人博客及美化https://lruihao.cn/posts/hexobuild/Fri, 01 Jun 2018 14:34:23 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexobuild/Memo<p><strong><a href="https://lruihao.cn/categories/hexo/">更多关于 hexo</a></strong></p> <h2 class="heading-element" id="首先"><span>25 首先</span> <a href="#%e9%a6%96%e5%85%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://hexo.io/zh-cn/docs/index.html" target="_blank" rel="external nofollow noopener noreferrer">官方文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 是我们的第一手资料,也是最好的。 安装 Hexo 相当简单。然而在安装前,你必须检查电脑中是否已安装下列应用程序:</p>hexo 添加图片,音乐,链接,视频https://lruihao.cn/posts/hexowrite/Thu, 31 May 2018 23:19:22 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hexowrite/Memo<blockquote> <p><strong>如果实在搞得头晕直接去 <a href="https://www.jianshu.com/" target="_blank" rel="external nofollow noopener noreferrer">简书<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 写文章,再把简书生成的 md 文章复制过来就好了(简书是个不错的 Markdown 在线编辑器),还可以去 <a href="https://maxiang.io/" target="_blank" rel="external nofollow noopener noreferrer">马克飞象,专为印象笔记打造的 Markdown 编辑器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,<a href="https://www.typora.io/#" target="_blank" rel="external nofollow noopener noreferrer">typora 也是不错的<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,突然发现 <a href="https://www.csdn.net/" target="_blank" rel="external nofollow noopener noreferrer">csdn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 也支持 Markdown 编译器了</strong></p> </blockquote> ================================================ FILE: categories/memo/page/1/index.html ================================================ https://lruihao.cn/categories/memo/ ================================================ FILE: categories/memo/page/2/index.html ================================================ Memo - 分类 | 菠菜眾長
================================================ FILE: categories/memo/page/3/index.html ================================================ Memo - 分类 | 菠菜眾長
================================================ FILE: categories/mysql/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"MySQL - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"SQL 总结","date_published":"2020-01-16T19:28:05+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/sql/","url":"https://lruihao.cn/posts/sql/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["MySQL"],"summary":" SQL 增删改查 (CRUD) 语句与常用函数总结。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/mysql/index.html ================================================ MySQL - 分类 | 菠菜眾長

MySQL 1

2020

================================================ FILE: categories/mysql/index.xml ================================================ MySQL - 分类 | 菠菜眾長https://lruihao.cn/categories/mysql/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800SQL 总结https://lruihao.cn/posts/sql/Thu, 16 Jan 2020 19:28:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/sql/MySQL<blockquote> <p>SQL 增删改查 (CRUD) 语句与常用函数总结。</p> </blockquote> ================================================ FILE: categories/mysql/page/1/index.html ================================================ https://lruihao.cn/categories/mysql/ ================================================ FILE: categories/node.js/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Node.js - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"用 Node.js 开发一个轻量脚手架","date_published":"2023-11-28T10:48:07+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/fixit-cli/","url":"https://lruihao.cn/projects/fixit-cli/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["脚手架","FixIt"],"image":"https://lruihao.cn/projects/fixit-cli/images/featured-image.png","summary":"本文将介绍如何用 Node.js 开发一个轻量脚手架,以 fixit-cli 为例。\n","content_html":"\u003cp\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架,以 \u003ca href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit-cli\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 为例。\u003c/p\u003e"},{"title":"如何给 npm 包打补丁?","date_published":"2023-10-12T22:37:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/patch-package/","url":"https://lruihao.cn/posts/patch-package/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["debug","npm","JavaScript"],"image":"https://lruihao.cn/posts/patch-package/images/featured-image.png","summary":"本文将介绍如何给 npm 包打补丁。","content_html":"本文将介绍如何给 npm 包打补丁。"},{"title":"使用 Node.js 自动创建 Vue 的路由","date_published":"2023-06-14T00:11:17+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/gen-router/","url":"https://lruihao.cn/posts/gen-router/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","Node.js","Vue2"],"summary":"最近在写一个 Vue 插件,需要在项目中创建一些测试页面,由于都是些静态路由,就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的,于是就借鉴过来改了一下。\n","content_html":"\u003cp\u003e最近在写一个 Vue 插件,需要在项目中创建一些测试页面,由于都是些静态路由,就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的,于是就借鉴过来改了一下。\u003c/p\u003e"},{"title":"解决 SourceTree 提交时候 husky 命令失败问题","date_published":"2023-06-12T10:58:44+08:00","date_modified":"2024-08-06T14:11:51+08:00","id":"https://lruihao.cn/posts/sourcetree-husky/","url":"https://lruihao.cn/posts/sourcetree-husky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","husky","Mac","nvm"],"summary":"7 问题描述 在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"问题描述\"\u003e\u003cspan\u003e7 问题描述\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示:\u003c/p\u003e\n\u003cp\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"\u003ch2\u003e问题截图\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"Node.js + GitHub Actions 自动刷新 CDN","date_published":"2022-08-07T14:40:33+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qcloudcdn/","url":"https://lruihao.cn/posts/qcloudcdn/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CDN","GitHub Actions","Node.js"],"summary":" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e问题\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"ttf 字体压缩","date_published":"2018-10-17T21:38:06+08:00","date_modified":"2024-08-16T16:43:36+08:00","id":"https://lruihao.cn/posts/web-font/","url":"https://lruihao.cn/posts/web-font/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","字体压缩"],"summary":"HTML 网页引用中文字体,文件过大,加载缓慢的解决办法。\n","content_html":"\u003cp\u003eHTML 网页引用中文字体,文件过大,加载缓慢的解决办法。\u003c/p\u003e"}]} ================================================ FILE: categories/node.js/index.html ================================================ Node.js - 分类 | 菠菜眾長
================================================ FILE: categories/node.js/index.xml ================================================ Node.js - 分类 | 菠菜眾長https://lruihao.cn/categories/node.js/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 20 Nov 2024 12:50:07 +0800用 Node.js 开发一个轻量脚手架https://lruihao.cn/projects/fixit-cli/Tue, 28 Nov 2023 10:48:07 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/fixit-cli/Node.js<p>本文将介绍如何用 Node.js 开发一个轻量脚手架,以 <a href="https://github.com/hugo-fixit/fixit-cli" target="_blank" rel="external nofollow noopener noreferrer">fixit-cli<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 为例。</p>如何给 npm 包打补丁?https://lruihao.cn/posts/patch-package/Thu, 12 Oct 2023 22:37:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/patch-package/Node.js本文将介绍如何给 npm 包打补丁。使用 Node.js 自动创建 Vue 的路由https://lruihao.cn/posts/gen-router/Wed, 14 Jun 2023 00:11:17 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/gen-router/Node.js<p>最近在写一个 Vue 插件,需要在项目中创建一些测试页面,由于都是些静态路由,就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的,于是就借鉴过来改了一下。</p>解决 SourceTree 提交时候 husky 命令失败问题https://lruihao.cn/posts/sourcetree-husky/Mon, 12 Jun 2023 10:58:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/sourcetree-husky/Node.js<h2 class="heading-element" id="问题描述"><span>10 问题描述</span> <a href="#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示:</p> <p><a class="lightgallery" target="_blank" href="https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png" title="问题截图" data-thumbnail="/posts/sourcetree-husky/images/23_1686538807.png" data-sub-html="<h2>问题截图</h2>"><img loading="lazy" src='https://lruihao.cn/posts/sourcetree-husky/images/23_1686538807.png' alt="问题截图" height="856" width="1252"></a></p>Node.js + GitHub Actions 自动刷新 CDNhttps://lruihao.cn/posts/qcloudcdn/Sun, 07 Aug 2022 14:40:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qcloudcdn/Node.jsJavaScript<div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>问题<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。</div> </div> </div>ttf 字体压缩https://lruihao.cn/posts/web-font/Wed, 17 Oct 2018 21:38:06 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/web-font/Node.js<p>HTML 网页引用中文字体,文件过大,加载缓慢的解决办法。</p> ================================================ FILE: categories/node.js/page/1/index.html ================================================ https://lruihao.cn/categories/node.js/ ================================================ FILE: categories/os/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"OS - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"不同系统的换行符的差异","date_published":"2022-08-07T00:10:30+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/newline/","url":"https://lruihao.cn/posts/newline/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["newline"],"summary":"换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。\n","content_html":"\u003cp\u003e换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。\u003c/p\u003e"},{"title":"linux 文件权限","date_published":"2022-07-30T17:15:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/linux-permission/","url":"https://lruihao.cn/posts/linux-permission/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","Mac","他山之石"],"summary":"记录 linux 系统下文件权限相关的内容,Mac OS 下类似。\n","content_html":"\u003cp\u003e记录 linux 系统下文件权限相关的内容,Mac OS 下类似。\u003c/p\u003e"},{"title":"Cron 表达式的基本语法","date_published":"2020-03-25T09:19:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/cron/","url":"https://lruihao.cn/posts/cron/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","shell","Cron"],"summary":"9 基本语法 \u0026lt;秒\u0026gt; \u0026lt;分钟\u0026gt; \u0026lt;小时\u0026gt; \u0026lt;日期 day-of-month\u0026gt; \u0026lt;月份\u0026gt; \u0026lt;星期 day-of-week\u0026gt;\nCron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"基本语法\"\u003e\u003cspan\u003e9 基本语法\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;秒\u0026gt; \u0026lt;分钟\u0026gt; \u0026lt;小时\u0026gt; \u0026lt;日期 day-of-month\u0026gt; \u0026lt;月份\u0026gt; \u0026lt;星期 day-of-week\u0026gt;\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eCron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 \u003ccode\u003eX X X X X X\u003c/code\u003e。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。\u003c/p\u003e"},{"title":"本地搭建网站服务器并穿透内网","date_published":"2019-04-03T19:29:43+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ngrok/","url":"https://lruihao.cn/posts/ngrok/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ngrok","linux","宝塔面板","server","ubuntu"],"summary":" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器,今天终于简单实现了。还有很多知识需要学习,简单记录一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器,今天终于简单实现了。还有很多知识需要学习,简单记录一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"ubuntu + windows 双系统默认启动项设置","date_published":"2019-03-21T12:48:30+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/windefault/","url":"https://lruihao.cn/posts/windefault/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","windows","ubuntu"],"image":"/posts/windefault/images/1.png","summary":" 双系统默认启动项是 Ubuntu,而日常使用最多的还是 Windows,所以说很不方便,一不小心就开机到 Ubuntu 去了。今天来设置一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e双系统默认启动项是 Ubuntu,而日常使用最多的还是 Windows,所以说很不方便,一不小心就开机到 Ubuntu 去了。今天来设置一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宝塔面板安装","date_published":"2019-03-18T21:31:43+08:00","date_modified":"2019-03-18T21:31:43+08:00","id":"https://lruihao.cn/posts/bt/","url":"https://lruihao.cn/posts/bt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","server","宝塔面板"],"image":"/posts/bt/images/1.png","summary":"极速方便的一键配置与管理,免除繁琐的命令行操作,通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境,可创建及管理网站,可创建及管理数据库,可创建及管理 FTP 等等。宝塔官网介绍\n","content_html":"\u003cp\u003e极速方便的一键配置与管理,免除繁琐的命令行操作,通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境,可创建及管理网站,可创建及管理数据库,可创建及管理 FTP 等等。\u003ca href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔官网介绍\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"win10,ubuntu 双系统时间不一致","date_published":"2019-03-15T14:28:10+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ubuntutime/","url":"https://lruihao.cn/posts/ubuntutime/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ubuntu","linux","windows"],"summary":" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"磁盘存储器的管理","date_published":"2019-03-04T23:08:32+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/cipanadmin/","url":"https://lruihao.cn/posts/cipanadmin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["OS","磁盘"],"summary":"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\n","content_html":"\u003ch2 class=\"heading-element\" id=\"外存的组织方式\"\u003e\u003cspan\u003e1 外存的组织方式\u003c/span\u003e\n \u003ca href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"连续组织方式\"\u003e\u003cspan\u003e1.1 连续组织方式\u003c/span\u003e\n \u003ca href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e连续组织方式的优点\u003c/p\u003e"},{"title":"通过 bat 批处理文件自动提交博客代码","date_published":"2018-11-17T14:25:49+08:00","date_modified":"2018-11-17T14:25:49+08:00","id":"https://lruihao.cn/posts/commit-bat/","url":"https://lruihao.cn/posts/commit-bat/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["bat"],"summary":" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * (添加需要提交的文件,这里全选) git commit -m \u0026ldquo;提交信息\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egit add * (添加需要提交的文件,这里全选)\u003c/li\u003e\n\u003cli\u003egit commit -m \u0026ldquo;提交信息\u0026rdquo;\u003c/li\u003e\n\u003cli\u003egit push\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"shell 脚本初体验","date_published":"2018-10-29T11:57:39+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/shell/","url":"https://lruihao.cn/posts/shell/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["shell","linux"],"summary":"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\n","content_html":"\u003cp\u003e今天上机学了几个小命令\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eread\u003c/li\u003e\n\u003cli\u003eecho\u003c/li\u003e\n\u003cli\u003eif\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e然后自己写了一个小脚本觉得还挺有趣的\u003c/p\u003e"},{"title":"云服务器 CentOS 系统搭建 web 服务","date_published":"2018-10-29T09:15:58+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/web-server-yun/","url":"https://lruihao.cn/posts/web-server-yun/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["server","linux","他山之石"],"summary":"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录,可通过 cd 命令切换。\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败,可通过 systemctl status httpd.service 查看错误原因。\n启动成功,证明 http 服务已经可以使用,发现还需要把本地文件传到服务器。\n默认根目录/var/www/html/\n","content_html":"\u003ch3 class=\"heading-element\" id=\"搭建-apache-web-服务\"\u003e\u003cspan\u003e0.7 搭建 Apache web 服务\u003c/span\u003e\n \u003ca href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e[root@VM_0_6_centos /]# yum install -y httpd\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e注意安装目录,可通过 cd 命令切换。\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e启动 HTTP 服务\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e如果启动失败,可通过 systemctl status httpd.service 查看错误原因。\u003cbr\u003e\n启动成功,证明 http 服务已经可以使用,发现还需要把本地文件传到服务器。\u003cbr\u003e\n默认根目录\u003ccode\u003e/var/www/html/\u003c/code\u003e\u003c/p\u003e"},{"title":"linux 编程初体验","date_published":"2018-10-15T21:19:27+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/linux-hello-c/","url":"https://lruihao.cn/posts/linux-hello-c/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","C"],"summary":" 在 Linux 上编译 c 语言文件。\n0.7 打开 vim 编辑器 (没有就用 vi, 或者先安装 vimsudo apt-get install vim)\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e在 Linux 上编译 c 语言文件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"打开-vim-编辑器\"\u003e\u003cspan\u003e0.7 打开 vim 编辑器\u003c/span\u003e\n \u003ca href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e(没有就用 vi, 或者先安装 vim\u003ccode\u003esudo apt-get install vim\u003c/code\u003e)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evim\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"编辑文件\"\u003e\u003cspan\u003e0.8 编辑文件\u003c/span\u003e\n \u003ca href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e打开文件编辑器之后编辑文件\n\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"\u003ch2\u003eedit\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"\u003e\u003c/a\u003e\u003c/p\u003e"}]} ================================================ FILE: categories/os/index.html ================================================ OS - 分类 | 菠菜眾長
================================================ FILE: categories/os/index.xml ================================================ OS - 分类 | 菠菜眾長https://lruihao.cn/categories/os/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800不同系统的换行符的差异https://lruihao.cn/posts/newline/Sun, 07 Aug 2022 00:10:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/newline/OS<p>换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。</p>linux 文件权限https://lruihao.cn/posts/linux-permission/Sat, 30 Jul 2022 17:15:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/linux-permission/OS<p>记录 linux 系统下文件权限相关的内容,Mac OS 下类似。</p>Cron 表达式的基本语法https://lruihao.cn/posts/cron/Wed, 25 Mar 2020 09:19:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cron/OS<h2 class="heading-element" id="基本语法"><span>13 基本语法</span> <a href="#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p><code>&lt;秒&gt; &lt;分钟&gt; &lt;小时&gt; &lt;日期 day-of-month&gt; &lt;月份&gt; &lt;星期 day-of-week&gt;</code></p> </blockquote> <p>Cron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 <code>X X X X X X</code>。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。</p>本地搭建网站服务器并穿透内网https://lruihao.cn/posts/ngrok/Wed, 03 Apr 2019 19:29:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ngrok/OS<blockquote> <p>一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器,今天终于简单实现了。还有很多知识需要学习,简单记录一下。</p> </blockquote>ubuntu + windows 双系统默认启动项设置https://lruihao.cn/posts/windefault/Thu, 21 Mar 2019 12:48:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/windefault/OS<blockquote> <p>双系统默认启动项是 Ubuntu,而日常使用最多的还是 Windows,所以说很不方便,一不小心就开机到 Ubuntu 去了。今天来设置一下。</p> </blockquote>宝塔面板安装https://lruihao.cn/posts/bt/Mon, 18 Mar 2019 21:31:43 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/bt/OS<p>极速方便的一键配置与管理,免除繁琐的命令行操作,通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境,可创建及管理网站,可创建及管理数据库,可创建及管理 FTP 等等。<a href="https://www.bt.cn/?invite_code=MV9sYXJnZHI=" target="_blank" rel="external nofollow noopener noreferrer">宝塔官网介绍<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>win10,ubuntu 双系统时间不一致https://lruihao.cn/posts/ubuntutime/Fri, 15 Mar 2019 14:28:10 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/ubuntutime/OS<blockquote> <p>我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。</p> </blockquote>磁盘存储器的管理https://lruihao.cn/posts/cipanadmin/Mon, 04 Mar 2019 23:08:32 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cipanadmin/OS<h2 class="heading-element" id="外存的组织方式"><span>1 外存的组织方式</span> <a href="#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="连续组织方式"><span>1.1 连续组织方式</span> <a href="#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li> <p>连续组织方式的优点</p>通过 bat 批处理文件自动提交博客代码https://lruihao.cn/posts/commit-bat/Sat, 17 Nov 2018 14:25:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/commit-bat/OS<blockquote> <p>前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤</p> <ul> <li>git add * (添加需要提交的文件,这里全选)</li> <li>git commit -m &ldquo;提交信息&rdquo;</li> <li>git push</li> </ul> <p>但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!</p> </blockquote>shell 脚本初体验https://lruihao.cn/posts/shell/Mon, 29 Oct 2018 11:57:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/shell/OS<p>今天上机学了几个小命令</p> <ul> <li>read</li> <li>echo</li> <li>if</li> </ul> <p>然后自己写了一个小脚本觉得还挺有趣的</p>云服务器 CentOS 系统搭建 web 服务https://lruihao.cn/posts/web-server-yun/Mon, 29 Oct 2018 09:15:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/web-server-yun/OS<h3 class="heading-element" id="搭建-apache-web-服务"><span>0.10 搭建 Apache web 服务</span> <a href="#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li>安装 Apache 超文本传输协议 (HTTP) 服务器的主程序</li> </ol> <pre><code>[root@VM_0_6_centos /]# yum install -y httpd</code></pre><p>注意安装目录,可通过 cd 命令切换。</p> <ol start="2"> <li>启动 HTTP 服务</li> </ol> <pre><code>[root@VM_0_6_centos /]# systemctl start httpd.service</code></pre><p>如果启动失败,可通过 systemctl status httpd.service 查看错误原因。<br> 启动成功,证明 http 服务已经可以使用,发现还需要把本地文件传到服务器。<br> 默认根目录<code>/var/www/html/</code></p>linux 编程初体验https://lruihao.cn/posts/linux-hello-c/Mon, 15 Oct 2018 21:19:27 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/linux-hello-c/OS<blockquote> <p>在 Linux 上编译 c 语言文件。</p> </blockquote> <h3 class="heading-element" id="打开-vim-编辑器"><span>0.10 打开 vim 编辑器</span> <a href="#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>(没有就用 vi, 或者先安装 vim<code>sudo apt-get install vim</code>)</p> <pre><code>vim</code></pre><h3 class="heading-element" id="编辑文件"><span>0.11 编辑文件</span> <a href="#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>打开文件编辑器之后编辑文件 <a class="lightgallery" target="_blank" href="https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png" title="edit" data-thumbnail="/posts/linux-hello-c/images/ubuntu.png" data-sub-html="<h2>edit</h2>"><img loading="lazy" src='https://lruihao.cn/posts/linux-hello-c/images/ubuntu.png' alt="edit" height="725" width="1191"></a></p> ================================================ FILE: categories/os/page/1/index.html ================================================ https://lruihao.cn/categories/os/ ================================================ FILE: categories/php/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"PHP - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"cell-blog 功能介绍与安装","date_published":"2020-07-25T20:51:11+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/cell-blog/","url":"https://lruihao.cn/projects/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","Laravel","Markdown"],"image":"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png","summary":" 基于 Laravel7 开发,Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品,目前已開源。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e基于 Laravel7 开发,Markdown 语法的个人独立博客。\u003ca href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, 也是我的毕业设计作品,目前已開源。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 同时主动推送链接到百度,神马等站长平台","date_published":"2019-09-28T18:32:42+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phppushurl/","url":"https://lruihao.cn/posts/phppushurl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" php 主动推送站点链接到百度站长,神马站长进行 SEO。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ephp 主动推送站点链接到百度站长,神马站长进行 SEO。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 按行读取文件信息","date_published":"2019-09-28T17:11:17+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpfile/","url":"https://lruihao.cn/posts/phpfile/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":"7 普通方法 首先采用fopen()函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。feof()判断是否到最后一行,fgets()读取一行文本。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"普通方法\"\u003e\u003cspan\u003e7 普通方法\u003c/span\u003e\n \u003ca href=\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先采用\u003ccode\u003efopen()\u003c/code\u003e函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。\u003ccode\u003efeof()\u003c/code\u003e判断是否到最后一行,\u003ccode\u003efgets()\u003c/code\u003e读取一行文本。\u003c/p\u003e"},{"title":"简单评论模块--php 表单练习","date_published":"2019-07-19T11:38:59+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpform/","url":"https://lruihao.cn/posts/phpform/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" 简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,\nPHP 表单安全性的重要提示\n$_SERVER[\u0026quot;PHP_SELF\u0026quot;]变量能够被黑客利用!\n如果页面中使用了PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。\n比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。\n跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,\u003cbr\u003e\n\u003cstrong\u003ePHP 表单安全性的重要提示\u003c/strong\u003e\u003cbr\u003e\n\u003ccode\u003e$_SERVER[\u0026quot;PHP_SELF\u0026quot;]\u003c/code\u003e变量能够被黑客利用!\u003cbr\u003e\n如果页面中使用了\u003ccode\u003ePHP_SELF\u003c/code\u003e,用户能够输入下划线然后执行跨站点脚本(XSS)。\u003cbr\u003e\n比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e跨站点脚本(Cross-site scripting,XSS)\u003c/code\u003e是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 函数学习","date_published":"2019-07-15T11:37:33+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpfunc/","url":"https://lruihao.cn/posts/phpfunc/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" 练习 php 函数的基本使用。\n注:\n必选参数在可选参数的前面。\n可在函数中定义函数,需要先调用外层函数才能调用内层函数。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e练习 php 函数的基本使用。\u003cbr\u003e\n注:\u003cbr\u003e\n必选参数在可选参数的前面。\u003cbr\u003e\n可在函数中定义函数,需要先调用外层函数才能调用内层函数。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宅音乐播放器","date_published":"2019-03-19T23:32:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/player/","url":"https://lruihao.cn/posts/player/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","ThinkPHP","Layui","MySQL"],"image":"/posts/player/images/index.png","summary":" 宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\n原项目 由 IT 技术宅 开源,使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库,也是相当于备份源码。\n注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\u003cbr\u003e\n\u003ca href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e原项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 由 \u003ca href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eIT 技术宅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 开源,使用 thinkPHP 开发后台。 \u003ca href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efork 地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 是我个人学习模仿的库,也是相当于备份源码。\u003cbr\u003e\n\u003cem\u003e注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/php/index.html ================================================ PHP - 分类 | 菠菜眾長
================================================ FILE: categories/php/index.xml ================================================ PHP - 分类 | 菠菜眾長https://lruihao.cn/categories/php/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 20 Nov 2024 12:50:07 +0800cell-blog 功能介绍与安装https://lruihao.cn/projects/cell-blog/Sat, 25 Jul 2020 20:51:11 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cell-blog/PHP<blockquote> <p>基于 Laravel7 开发,Markdown 语法的个人独立博客。<a href="https://github.com/Lruihao/cell-blog" target="_blank" rel="external nofollow noopener noreferrer">Cell Blog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, 也是我的毕业设计作品,目前已開源。</p> </blockquote>php 同时主动推送链接到百度,神马等站长平台https://lruihao.cn/posts/phppushurl/Sat, 28 Sep 2019 18:32:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/phppushurl/PHP<blockquote> <p>php 主动推送站点链接到百度站长,神马站长进行 SEO。</p> </blockquote>php 按行读取文件信息https://lruihao.cn/posts/phpfile/Sat, 28 Sep 2019 17:11:17 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/phpfile/PHP<h2 class="heading-element" id="普通方法"><span>10 普通方法</span> <a href="#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>首先采用<code>fopen()</code>函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。<code>feof()</code>判断是否到最后一行,<code>fgets()</code>读取一行文本。</p>简单评论模块--php 表单练习https://lruihao.cn/posts/phpform/Fri, 19 Jul 2019 11:38:59 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/phpform/PHP<blockquote> <p>简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,<br> <strong>PHP 表单安全性的重要提示</strong><br> <code>$_SERVER[&quot;PHP_SELF&quot;]</code>变量能够被黑客利用!<br> 如果页面中使用了<code>PHP_SELF</code>,用户能够输入下划线然后执行跨站点脚本(XSS)。<br> 比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。</p> <p><code>跨站点脚本(Cross-site scripting,XSS)</code>是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。</p> </blockquote>php 函数学习https://lruihao.cn/posts/phpfunc/Mon, 15 Jul 2019 11:37:33 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/phpfunc/PHP<blockquote> <p>练习 php 函数的基本使用。<br> 注:<br> 必选参数在可选参数的前面。<br> 可在函数中定义函数,需要先调用外层函数才能调用内层函数。</p> </blockquote>宅音乐播放器https://lruihao.cn/posts/player/Tue, 19 Mar 2019 23:32:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/player/瞎折腾PHP<blockquote> <p>宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~<br> <a href="https://github.com/lzx8589561/zhai-music" target="_blank" rel="external nofollow noopener noreferrer">原项目<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 由 <a href="https://www.ilt.me" target="_blank" rel="external nofollow noopener noreferrer">IT 技术宅<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 开源,使用 thinkPHP 开发后台。 <a href="https://github.com/Lruihao/zhai-music" target="_blank" rel="external nofollow noopener noreferrer">fork 地址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 是我个人学习模仿的库,也是相当于备份源码。<br> <em>注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。</em></p> </blockquote> ================================================ FILE: categories/php/page/1/index.html ================================================ https://lruihao.cn/categories/php/ ================================================ FILE: categories/python/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Python - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"使用 Python 刷 csdn 访问量","date_published":"2020-03-26T11:08:38+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/csdnvisiter/","url":"https://lruihao.cn/posts/csdnvisiter/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"新冠疫情未返校未返工第 N 天之“自动打卡”","date_published":"2020-03-25T08:22:42+08:00","date_modified":"2020-03-25T08:22:42+08:00","id":"https://lruihao.cn/posts/daka/","url":"https://lruihao.cn/posts/daka/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","HTTP"],"image":"https://lruihao.cn/posts/daka/images/result.png","summary":" 信息 这件事还得从一只蝙蝠说起 \u0026hellip;\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\n我和潇 X 巴哥确定思路后兵分两路:\n他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库; 我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个); ","content_html":"\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e这件事还得从一只蝙蝠说起 \u0026hellip;\u003cbr\u003e\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\u003cbr\u003e\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\u003cbr\u003e\n我和潇 X 巴哥确定思路后兵分两路:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;\u003c/li\u003e\n\u003cli\u003e我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);\u003c/li\u003e\n\u003c/ol\u003e\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"python 实训总结Ⅱ","date_published":"2019-06-21T18:46:41+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysx2/","url":"https://lruihao.cn/posts/pysx2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 后面几天讲的有点杂,简单记录一下知识点。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e后面几天讲的有点杂,简单记录一下知识点。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 实训总结Ⅰ","date_published":"2019-06-18T18:41:00+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysx1/","url":"https://lruihao.cn/posts/pysx1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","turtle"],"summary":" 以前和前一段时间自己也学习了一下 python,也写了几个小爬虫; 这次正好又课程安排了为期两周的综合实训,主要是“用 python 做量化交易” 进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以前和前一段时间自己也学习了一下 python,也写了几个小爬虫;\n这次正好又课程安排了为期两周的综合实训,主要是“\u003cstrong\u003e用 python 做量化交易\u003c/strong\u003e”\n进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 实战:模拟 post 请求定时获取后台数据并打包发送至微信","date_published":"2019-05-11T17:02:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mx2wx/","url":"https://lruihao.cn/posts/mx2wx/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","wxpy","pyinstaller","HTTP","JSON","Cron"],"summary":" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据,再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据,再打包发送至指定的微信群或者好友。\u003cbr\u003e\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 设置程序每天 8 点定时执行任务","date_published":"2019-05-09T23:26:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysettime/","url":"https://lruihao.cn/posts/pysettime/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","Cron"],"summary":" 第一次运行根据程序执行时间,判断程序休眠的时间,尽最大可能休眠,节省系统资源。\n第二次运行后直接休眠一天,到每天早上 8 点执行任务。\n(该程序需要一直挂着,保持网络不断)\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e第一次运行根据程序执行时间,判断程序休眠的时间,尽最大可能休眠,节省系统资源。\u003cbr\u003e\n第二次运行后直接休眠一天,到每天早上 8 点执行任务。\u003cbr\u003e\n(该程序需要一直挂着,保持网络不断)\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包","date_published":"2019-05-09T19:05:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pyinstallererror/","url":"https://lruihao.cn/posts/pyinstallererror/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","pyinstaller"],"image":"/posts/pyinstallererror/images/1.png","summary":" 用过命令pip install pyinstaller安装失败,此包依赖于 pywin32,安装前需要先pip install pywin32, 我安装了还是出错,稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的,记录一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e用过命令\u003ccode\u003epip install pyinstaller\u003c/code\u003e安装失败,此包依赖于 pywin32,安装前需要先\u003ccode\u003epip install pywin32\u003c/code\u003e, 我安装了还是出错,稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的,记录一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Python 如何操作 Json?","date_published":"2019-05-07T18:42:47+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/jsoninfo/","url":"https://lruihao.cn/posts/jsoninfo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","JSON","他山之石"],"image":"/posts/jsoninfo/images/1.jpg","summary":" Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eJson(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 发送 post 请求进行简单的接口测试","date_published":"2019-05-07T18:17:05+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/posttest/","url":"https://lruihao.cn/posts/posttest/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","HTTP"],"summary":" 通过 requests 可以向某个地址发送请求,可以用来做一些接口的测试;主要有两个方法:\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求,需要把后台数据定期打包发送到微信群,麻小科技涛哥给了我一个接口,post 访问。 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e通过 requests 可以向某个地址发送请求,可以用来做一些接口的测试;主要有两个方法:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003erequests.get()\u003c/li\u003e\n\u003cli\u003erequests.post()\u003cbr\u003e\n最近帮朋友的项目做一个小需求,需要把后台数据定期打包发送到微信群,麻小科技涛哥给了我一个接口,post 访问。\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"用 MyQR 制作专属动态二维码 (py 和 exe 版本)","date_published":"2019-04-27T14:16:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qrcode/","url":"https://lruihao.cn/posts/qrcode/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["pillow","numpy","imageio","Python"],"summary":" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 sylnsfar/qrcode,本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载,公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003ePython 二维码生成器\u003c/strong\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 \u003ca href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esylnsfar/qrcode\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,本文主要介绍记录一下 python 版本使用。exe 可以去 \u003ca href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e项目开源地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 下载,公众号文章后台回复关键词“qrcode”获取链接。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e可生成_普通二维码_、\u003cem\u003e带图片的艺术二维码(黑白与彩色)\u003c/em\u003e、\u003cem\u003e动态二维码(黑白与彩色)\u003c/em\u003e。\u003c/p\u003e"},{"title":"python 爬取网站图片(图片链接相似)","date_published":"2019-04-22T12:46:34+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mmtimgpy/","url":"https://lruihao.cn/posts/mmtimgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 以下程序对 该网址 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。字体效果查看\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下程序对 \u003ca href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\u0026amp;a=fontshowPics\u0026amp;u=qbfRl8gPF2s-\u0026amp;z=Kqz%2FRroVGYc-\u0026amp;share=1\u0026amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e该网址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。\u003ca href=\"/projects/font-mmt/\"\u003e字体效果查看\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 玩微信:初探 wxpy","date_published":"2019-04-20T15:44:57+08:00","date_modified":"2019-04-20T15:44:57+08:00","id":"https://lruihao.cn/posts/wxpy1/","url":"https://lruihao.cn/posts/wxpy1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","wxpy","pyecharts","jieba","他山之石"],"image":"/posts/wxpy1/images/1.png","summary":" 文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e查看微信好友男女比例\u003c/li\u003e\n\u003cli\u003e查看好友地区分布\u003c/li\u003e\n\u003cli\u003e群性别统计\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e"},{"title":"基本 python 实现的爬取微信好友头像,并拼接成大图","date_published":"2019-04-20T13:32:58+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/wximgpy/","url":"https://lruihao.cn/posts/wximgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["wxpy","pillow","Python"],"image":"/posts/wximgpy/images/1.jpg","summary":" Python 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\n文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ePython 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\u003cbr\u003e\n\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003cbr\u003e\n\u003cstrong\u003e文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/python/index.html ================================================ Python - 分类 | 菠菜眾長
================================================ FILE: categories/python/index.xml ================================================ Python - 分类 | 菠菜眾長https://lruihao.cn/categories/python/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 08 Dec 2023 20:26:13 +0800使用 Python 刷 csdn 访问量https://lruihao.cn/posts/csdnvisiter/Thu, 26 Mar 2020 11:08:38 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/csdnvisiter/瞎折腾Python<blockquote> <p>使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~</p> </blockquote>新冠疫情未返校未返工第 N 天之“自动打卡”https://lruihao.cn/posts/daka/Wed, 25 Mar 2020 08:22:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/daka/瞎折腾Python<div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>信息<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>这件事还得从一只蝙蝠说起 &hellip;<br> 算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &hellip;<br> 哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 &hellip;<br> 我和潇 X 巴哥确定思路后兵分两路:</p> <ol> <li>他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;</li> <li>我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);</li> </ol></div> </div> </div>python 实训总结Ⅱhttps://lruihao.cn/posts/pysx2/Fri, 21 Jun 2019 18:46:41 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/pysx2/Python<blockquote> <p>后面几天讲的有点杂,简单记录一下知识点。</p> </blockquote>python 实训总结Ⅰhttps://lruihao.cn/posts/pysx1/Tue, 18 Jun 2019 18:41:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/pysx1/Python<blockquote> <p>以前和前一段时间自己也学习了一下 python,也写了几个小爬虫; 这次正好又课程安排了为期两周的综合实训,主要是“<strong>用 python 做量化交易</strong>” 进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。</p> </blockquote>python 实战:模拟 post 请求定时获取后台数据并打包发送至微信https://lruihao.cn/posts/mx2wx/Sat, 11 May 2019 17:02:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mx2wx/Python<blockquote> <p>用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据,再打包发送至指定的微信群或者好友。<br> 要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。</p> </blockquote>python 设置程序每天 8 点定时执行任务https://lruihao.cn/posts/pysettime/Thu, 09 May 2019 23:26:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/pysettime/Python<blockquote> <p>第一次运行根据程序执行时间,判断程序休眠的时间,尽最大可能休眠,节省系统资源。<br> 第二次运行后直接休眠一天,到每天早上 8 点执行任务。<br> (该程序需要一直挂着,保持网络不断)</p> </blockquote>安装 pyinstaller 出错的解决办法及 csdn 工具实例打包https://lruihao.cn/posts/pyinstallererror/Thu, 09 May 2019 19:05:01 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/pyinstallererror/Python<blockquote> <p>用过命令<code>pip install pyinstaller</code>安装失败,此包依赖于 pywin32,安装前需要先<code>pip install pywin32</code>, 我安装了还是出错,稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的,记录一下。</p> </blockquote>Python 如何操作 Json?https://lruihao.cn/posts/jsoninfo/Tue, 07 May 2019 18:42:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/jsoninfo/Python<blockquote> <p>Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。</p> </blockquote>python 发送 post 请求进行简单的接口测试https://lruihao.cn/posts/posttest/Tue, 07 May 2019 18:17:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/posttest/Python<blockquote> <p>通过 requests 可以向某个地址发送请求,可以用来做一些接口的测试;主要有两个方法:</p> </blockquote> <ul> <li>requests.get()</li> <li>requests.post()<br> 最近帮朋友的项目做一个小需求,需要把后台数据定期打包发送到微信群,麻小科技涛哥给了我一个接口,post 访问。</li> </ul>用 MyQR 制作专属动态二维码 (py 和 exe 版本)https://lruihao.cn/posts/qrcode/Sat, 27 Apr 2019 14:16:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qrcode/瞎折腾Python<blockquote> <p><strong>Python 二维码生成器</strong>是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 <a href="https://github.com/sylnsfar/qrcode/" target="_blank" rel="external nofollow noopener noreferrer">sylnsfar/qrcode<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,本文主要介绍记录一下 python 版本使用。exe 可以去 <a href="https://github.com/sylnsfar/qrcode_win" target="_blank" rel="external nofollow noopener noreferrer">项目开源地址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 下载,公众号文章后台回复关键词“qrcode”获取链接。</p> </blockquote> <p>可生成_普通二维码_、<em>带图片的艺术二维码(黑白与彩色)</em>、<em>动态二维码(黑白与彩色)</em>。</p>python 爬取网站图片(图片链接相似)https://lruihao.cn/posts/mmtimgpy/Mon, 22 Apr 2019 12:46:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mmtimgpy/瞎折腾Python<blockquote> <p>以下程序对 <a href="https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-&amp;share=1&amp;from=singlemessage" target="_blank" rel="external nofollow noopener noreferrer">该网址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。<a href="https://lruihao.cn/projects/font-mmt/">字体效果查看</a></p> </blockquote>python 玩微信:初探 wxpyhttps://lruihao.cn/posts/wxpy1/Sat, 20 Apr 2019 15:44:57 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wxpy1/瞎折腾Python<blockquote> <p><strong><em>文中涉及的图片涉及个人隐私,仅做举例,请勿传播</em></strong></p> <ul> <li>查看微信好友男女比例</li> <li>查看好友地区分布</li> <li>群性别统计</li> </ul> </blockquote>基本 python 实现的爬取微信好友头像,并拼接成大图https://lruihao.cn/posts/wximgpy/Sat, 20 Apr 2019 13:32:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wximgpy/瞎折腾Python<blockquote> <p>Python 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)<br> <strong><em>文中涉及的图片涉及个人隐私,仅做举例,请勿传播</em></strong><br> <strong>文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删</strong></p> </blockquote> ================================================ FILE: categories/python/page/1/index.html ================================================ https://lruihao.cn/categories/python/ ================================================ FILE: categories/react/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"React - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"用五天时间给自己制作一个封面图生成工具","date_published":"2024-04-02T18:05:34+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/coverview/","url":"https://lruihao.cn/projects/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CoverView","React"],"image":"https://lruihao.cn/projects/coverview/images/cover.webp","summary":" Cool! 苦封面图久矣,今日终有所成。 ","content_html":"\u003cdiv class=\"details admonition success open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-check\" aria-hidden=\"true\"\u003e\u003c/i\u003eCool!\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e苦封面图久矣,今日终有所成。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"}]} ================================================ FILE: categories/react/index.html ================================================ React - 分类 | 菠菜眾長
================================================ FILE: categories/react/index.xml ================================================ React - 分类 | 菠菜眾長https://lruihao.cn/categories/react/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 20 Nov 2024 12:50:07 +0800用五天时间给自己制作一个封面图生成工具https://lruihao.cn/projects/coverview/Tue, 02 Apr 2024 18:05:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/coverview/React<div class="details admonition success open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-check" aria-hidden="true"></i>Cool!<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">苦封面图久矣,今日终有所成。</div> </div> </div> ================================================ FILE: categories/react/page/1/index.html ================================================ https://lruihao.cn/categories/react/ ================================================ FILE: categories/spec/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"程序猿的自我修养 - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"架构之基:从根儿上了解设计原则","date_published":"2024-06-09T02:24:31+08:00","date_modified":"2024-06-09T02:57:55+08:00","id":"https://lruihao.cn/posts/design-principles/","url":"https://lruihao.cn/posts/design-principles/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Design Patterns","Java"],"summary":"设计模式不是必须的,但是如果你的代码是“非一次性的”,那么它就是必须的。","content_html":"设计模式不是必须的,但是如果你的代码是“非一次性的”,那么它就是必须的。"},{"title":"给你的 Markdown 挑挑刺","date_published":"2023-10-11T14:26:48+08:00","date_modified":"2024-08-06T14:11:51+08:00","id":"https://lruihao.cn/posts/markdownlint/","url":"https://lruihao.cn/posts/markdownlint/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Markdown","markdownlint","pangu.js","AutoCorrect"],"summary":"会写 Markdown 的人很多,但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」,检查文件中的 Markdown 语法和风格,并且提出解决方案、自动修复问题,甚至自动补齐中英文之间的「盘古之白」呢?本文介绍的 Markdown 语法检查器就能做到。\n","content_html":"\u003cp\u003e会写 Markdown 的人很多,但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」,检查文件中的 Markdown 语法和风格,并且提出解决方案、自动修复问题,甚至自动补齐中英文之间的「盘古之白」呢?本文介绍的 Markdown 语法检查器就能做到。\u003c/p\u003e"},{"title":"认知复杂度(Cognitive Complexity)","date_published":"2023-10-08T09:52:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cognitive-complexity/","url":"https://lruihao.cn/posts/cognitive-complexity/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"image":"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png","summary":"27 摘要 循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n27.1 术语说明 虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"摘要\"\u003e\u003cspan\u003e27 摘要\u003c/span\u003e\n \u003ca href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"术语说明\"\u003e\u003cspan\u003e27.1 术语说明\u003c/span\u003e\n \u003ca href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\u003c/p\u003e\n\u003chr\u003e"},{"title":"中文翻译的常见问题","date_published":"2023-09-15T11:07:56+08:00","date_modified":"2023-11-17T20:45:09+08:00","id":"https://lruihao.cn/posts/translation-guide/","url":"https://lruihao.cn/posts/translation-guide/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["他山之石"],"summary":" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范,更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下内容截取自 \u003ca href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e针对 MDN 文档的本地化指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的中文翻译的常见问题小节。\u003c/p\u003e\n\u003cp\u003e其中翻译的规范也是中文写作的规范,更多详见之前写的 \u003ca href=\"/posts/document-style-guide/\"\u003e中文技术文档的写作规范\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\u003c/p\u003e"},{"title":"中文技术文档的写作规范","date_published":"2023-02-04T16:04:42+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/document-style-guide/","url":"https://lruihao.cn/posts/document-style-guide/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":" 以下参考来源:阮一峰的 中文技术文档的写作规范\n英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等(维基百科有一份完整的清单)。中文的也有不少,但都不令人满意,要么太简单,要么不太适用。\n对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。\n对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。\n参考上面的规范,于是有了下面一份中文技术文档的写作规范。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下参考来源:阮一峰的 \u003ca href=\"https://github.com/ruanyf/document-style-guide\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文技术文档的写作规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如\u003ca href=\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e微软\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"http://styleguide.mailchimp.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMailChimp\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eApple\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8\u0026amp;btkr=1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eYahoo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://docs.docker.com/opensource/doc-style/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edocker\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://struts.apache.org/docs/documentation-style-guide.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eStruts\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 等等(维基百科有一份完整的\u003ca href=\"https://en.wikipedia.org/wiki/List_of_style_guides\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e清单\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e)。\u003ca href=\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文的\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e也有不少,但都不令人满意,要么太简单,要么不太适用。\u003c/p\u003e\n\u003cp\u003e对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。\u003c/p\u003e\n\u003cp\u003e对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。\u003c/p\u003e\n\u003cp\u003e参考上面的规范,于是有了下面一份中文技术文档的写作规范。\u003c/p\u003e"},{"title":"语义版本控制(SemVer)","date_published":"2022-08-13T13:32:03+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/semver/","url":"https://lruihao.cn/posts/semver/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SemVer"],"image":"https://lruihao.cn/posts/semver/images/featured-image.png","summary":" 摘要 版本格式:MAJOR.MINOR.PATCH,版本号递增规则如下:\nMAJOR: 主版本号,当你做了不兼容的 API 修改 MINOR: 次版本号,当你做了向下兼容的功能性新增 PATCH: 修订号,当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面,作为延伸。\n","content_html":"\u003cdiv class=\"details admonition tip open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"\u003e\u003c/i\u003e摘要\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e版本格式:\u003ccode\u003eMAJOR.MINOR.PATCH\u003c/code\u003e,版本号递增规则如下:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eMAJOR\u003c/code\u003e: \u003cstrong\u003e主版本号\u003c/strong\u003e,当你做了不兼容的 API 修改\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMINOR\u003c/code\u003e: \u003cstrong\u003e次版本号\u003c/strong\u003e,当你做了向下兼容的功能性新增\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePATCH\u003c/code\u003e: \u003cstrong\u003e修订号\u003c/strong\u003e,当你做了向下兼容的问题修正\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e先行版本号及版本编译信息可以加到 \u003ccode\u003eMAJOR.MINOR.PATCH\u003c/code\u003e 的后面,作为延伸。\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Commit Message Spec","date_published":"2022-08-12T15:37:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/commit-spec/","url":"https://lruihao.cn/posts/commit-spec/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cp\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eConventional Commits\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e specification based on the \u003ca href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAngular convention\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\u003c/p\u003e"},{"title":"RESTful","date_published":"2019-11-14T19:06:05+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/restful/","url":"https://lruihao.cn/posts/restful/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["REST","HTTP"],"summary":" RESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 RFC5789\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 \u003ca href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRFC5789\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Web 开发规则,代码规范","date_published":"2019-08-15T18:30:31+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/dev-rules/","url":"https://lruihao.cn/posts/dev-rules/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Git","HTML","Java","JavaScript","PHP","Python","REST","Scss"],"summary":"31 精神 绝不写死代码,硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零,为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可,eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data,e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\n","content_html":"\u003ch2 class=\"heading-element\" id=\"精神\"\u003e\u003cspan\u003e31 精神\u003c/span\u003e\n \u003ca href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e绝不写死代码,硬编码\u003c/li\u003e\n\u003cli\u003e不留不要用的、垃圾代码\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"git\"\u003e\u003cspan\u003e32 Git\u003c/span\u003e\n \u003ca href=\"#git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eMaster 的 BUG 必须最少且趋近于零,为最稳定的版本\u003c/li\u003e\n\u003cli\u003e每次 Commit 信息应该准确填写。不可模棱两可,eg: 修复 BUG、增加功能\u003c/li\u003e\n\u003cli\u003e禁止 Commit IDE 的 project data,e.g: .vscode\u003c/li\u003e\n\u003cli\u003e禁止上传垃圾代码\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e更多规则详见文档 \u003ca href=\"/posts/commit-spec/\"\u003eCommit 规范\u003c/a\u003e\u003c/p\u003e"}]} ================================================ FILE: categories/spec/index.html ================================================ 程序猿的自我修养 - 分类 | 菠菜眾長
================================================ FILE: categories/spec/index.xml ================================================ 程序猿的自我修养 - 分类 | 菠菜眾長https://lruihao.cn/categories/spec/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Tue, 06 Aug 2024 14:11:51 +0800架构之基:从根儿上了解设计原则https://lruihao.cn/posts/design-principles/Sun, 09 Jun 2024 02:24:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/design-principles/程序猿的自我修养设计模式不是必须的,但是如果你的代码是“非一次性的”,那么它就是必须的。给你的 Markdown 挑挑刺https://lruihao.cn/posts/markdownlint/Wed, 11 Oct 2023 14:26:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/markdownlint/程序猿的自我修养<p>会写 Markdown 的人很多,但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」,检查文件中的 Markdown 语法和风格,并且提出解决方案、自动修复问题,甚至自动补齐中英文之间的「盘古之白」呢?本文介绍的 Markdown 语法检查器就能做到。</p>认知复杂度(Cognitive Complexity)https://lruihao.cn/posts/cognitive-complexity/Sun, 08 Oct 2023 09:52:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cognitive-complexity/程序猿的自我修养翻译<h2 class="heading-element" id="摘要"><span>40 摘要</span> <a href="#%e6%91%98%e8%a6%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。</p> <h3 class="heading-element" id="术语说明"><span>40.1 术语说明</span> <a href="#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。</p> <hr>中文翻译的常见问题https://lruihao.cn/posts/translation-guide/Fri, 15 Sep 2023 11:07:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/translation-guide/程序猿的自我修养翻译<blockquote> <p>以下内容截取自 <a href="https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md" target="_blank" rel="external nofollow noopener noreferrer">针对 MDN 文档的本地化指南<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的中文翻译的常见问题小节。</p> <p>其中翻译的规范也是中文写作的规范,更多详见之前写的 <a href="https://lruihao.cn/posts/document-style-guide/">中文技术文档的写作规范</a>。</p> </blockquote> <p>为保证简体中文文档格式的一致性,翻译指南列出了部分规范。</p>中文技术文档的写作规范https://lruihao.cn/posts/document-style-guide/Sat, 04 Feb 2023 16:04:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/document-style-guide/程序猿的自我修养<blockquote> <p>以下参考来源:阮一峰的 <a href="https://github.com/ruanyf/document-style-guide" target="_blank" rel="external nofollow noopener noreferrer">中文技术文档的写作规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote> <p>英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如<a href="https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715" target="_blank" rel="external nofollow noopener noreferrer">微软<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="http://styleguide.mailchimp.com/" target="_blank" rel="external nofollow noopener noreferrer">MailChimp<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://help.apple.com/asg/mac/2013/ASG_2013.pdf" target="_blank" rel="external nofollow noopener noreferrer">Apple<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8&amp;btkr=1" target="_blank" rel="external nofollow noopener noreferrer">Yahoo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://docs.docker.com/opensource/doc-style/" target="_blank" rel="external nofollow noopener noreferrer">docker<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://struts.apache.org/docs/documentation-style-guide.html" target="_blank" rel="external nofollow noopener noreferrer">Struts<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 等等(维基百科有一份完整的<a href="https://en.wikipedia.org/wiki/List_of_style_guides" target="_blank" rel="external nofollow noopener noreferrer">清单<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>)。<a href="https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md" target="_blank" rel="external nofollow noopener noreferrer">中文的<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>也有不少,但都不令人满意,要么太简单,要么不太适用。</p> <p>对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。</p> <p>对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。</p> <p>参考上面的规范,于是有了下面一份中文技术文档的写作规范。</p>语义版本控制(SemVer)https://lruihao.cn/posts/semver/Sat, 13 Aug 2022 13:32:03 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/semver/程序猿的自我修养<div class="details admonition tip open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-lightbulb" aria-hidden="true"></i>摘要<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>版本格式:<code>MAJOR.MINOR.PATCH</code>,版本号递增规则如下:</p> <ol> <li><code>MAJOR</code>: <strong>主版本号</strong>,当你做了不兼容的 API 修改</li> <li><code>MINOR</code>: <strong>次版本号</strong>,当你做了向下兼容的功能性新增</li> <li><code>PATCH</code>: <strong>修订号</strong>,当你做了向下兼容的问题修正</li> </ol> <p>先行版本号及版本编译信息可以加到 <code>MAJOR.MINOR.PATCH</code> 的后面,作为延伸。</p> </div> </div> </div>Commit Message Spechttps://lruihao.cn/posts/commit-spec/Fri, 12 Aug 2022 15:37:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/commit-spec/程序猿的自我修养Git<!-- markdownlint-disable MD033 --> <p>Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the <a href="https://www.conventionalcommits.org/en/v1.0.0-beta.4/" target="_blank" rel="external nofollow noopener noreferrer">Conventional Commits<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> specification based on the <a href="https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit" target="_blank" rel="external nofollow noopener noreferrer">Angular convention<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.</p>RESTfulhttps://lruihao.cn/posts/restful/Thu, 14 Nov 2019 19:06:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/restful/程序猿的自我修养计算机网络<blockquote> <p>RESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 <a href="https://www.rfc-editor.org/rfc/rfc5789" target="_blank" rel="external nofollow noopener noreferrer">RFC5789<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>Web 开发规则,代码规范https://lruihao.cn/posts/dev-rules/Thu, 15 Aug 2019 18:30:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dev-rules/程序猿的自我修养<h2 class="heading-element" id="精神"><span>46 精神</span> <a href="#%e7%b2%be%e7%a5%9e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>绝不写死代码,硬编码</li> <li>不留不要用的、垃圾代码</li> </ul> <h2 class="heading-element" id="git"><span>47 Git</span> <a href="#git" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>Master 的 BUG 必须最少且趋近于零,为最稳定的版本</li> <li>每次 Commit 信息应该准确填写。不可模棱两可,eg: 修复 BUG、增加功能</li> <li>禁止 Commit IDE 的 project data,e.g: .vscode</li> <li>禁止上传垃圾代码</li> </ul> <blockquote> <p>更多规则详见文档 <a href="https://lruihao.cn/posts/commit-spec/">Commit 规范</a></p> ================================================ FILE: categories/spec/page/1/index.html ================================================ https://lruihao.cn/categories/spec/ ================================================ FILE: categories/thoughts/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"有所思 - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"2023 年度总结","date_published":"2024-02-09T14:07:24+08:00","date_modified":"2024-02-09T14:07:24+08:00","id":"https://lruihao.cn/years/2023/","url":"https://lruihao.cn/years/2023/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["总结"],"summary":"与其说是年度总结,不如说是一年中难得的一次和自己对话的机会。\n","content_html":"\u003cp\u003e与其说是年度总结,不如说是一年中难得的一次和自己对话的机会。\u003c/p\u003e"},{"title":"第一次面试经历","date_published":"2019-04-24T21:23:22+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/1thintervivew/","url":"https://lruihao.cn/posts/1thintervivew/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["面试"],"summary":" 时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"还乡","date_published":"2019-02-01T20:44:40+08:00","date_modified":"2019-02-01T20:44:40+08:00","id":"https://lruihao.cn/posts/renative/","url":"https://lruihao.cn/posts/renative/","authors":[{"name":"杨灿","url":"mailto:1845280636@qq.com"}],"tags":["随笔","他山之石"],"summary":" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"网站备案之旅","date_published":"2018-10-29T23:16:26+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/beian/","url":"https://lruihao.cn/posts/beian/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔","网站备案"],"summary":" 备案 经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz ","content_html":"\u003cdiv class=\"details admonition success open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-check\" aria-hidden=\"true\"\u003e\u003c/i\u003e备案\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。\u003cbr\u003e\n备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"每一个优秀的人,都有一段沉默的时光","date_published":"2018-09-21T21:11:25+08:00","date_modified":"2018-09-21T21:11:25+08:00","id":"https://lruihao.cn/posts/mood/","url":"https://lruihao.cn/posts/mood/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"summary":" 手机便签里保存的一段话,也记不得在哪看到的了。\n每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。\n什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。\n人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。\n自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e手机便签里保存的一段话,也记不得在哪看到的了。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。\u003cbr\u003e\n什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。\u003c/p\u003e\n\u003cp\u003e人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。\u003cbr\u003e\n自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。\u003c/p\u003e"},{"title":"18 湘潭邀请赛总结","date_published":"2018-06-14T23:32:47+08:00","date_modified":"2018-06-14T23:32:47+08:00","id":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/","url":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","总结"],"summary":"题目链接(hdu 复赛)\n2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(hdu 复赛)\u003c/p\u003e\n\u003cp\u003e2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。\u003c/p\u003e"},{"title":"戏子春秋","date_published":"2018-06-03T19:41:32+08:00","date_modified":"2018-06-03T19:41:32+08:00","id":"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/","url":"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/","authors":[{"name":"杨灿","url":"mailto:1845280636@qq.com"}],"tags":["随笔"],"summary":" 从此故乡只有冬夏,再无春秋。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e从此故乡只有冬夏,再无春秋。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"猴子与哪吒","date_published":"2018-05-31T10:09:15+08:00","date_modified":"2018-05-31T10:09:15+08:00","id":"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/","url":"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"image":"/posts/猴子与哪吒/images/hznz.jpg","summary":"一直觉得中国古代神话\n能称得上传奇的只有两个人物:\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\n","content_html":"\u003cp\u003e一直觉得中国古代神话\u003c/p\u003e\n\u003cp\u003e能称得上传奇的只有两个人物:\u003c/p\u003e\n\u003cp\u003e一是猴子\u003c/p\u003e\n\u003cp\u003e一是哪吒\u003c/p\u003e\n\u003cp\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\u003c/p\u003e\n\u003cp\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\u003c/p\u003e\n\u003cp\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\u003c/p\u003e\n\u003cp\u003e但称得上悲剧的 约摸也只有这两个\u003c/p\u003e\n\u003cp\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\u003c/p\u003e\n\u003cp\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\u003c/p\u003e"},{"title":"Hello World","date_published":"2018-05-28T20:01:01+08:00","date_modified":"2024-07-28T22:39:47+08:00","id":"https://lruihao.cn/posts/hello-world/","url":"https://lruihao.cn/posts/hello-world/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"image":"/posts/hello-world/images/lunyu.jpg","summary":" “每天早晨叫醒你的不是鬧鐘,而是你的夢想。”\n我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,\n其實也不重要了,還望披荊斬棘,不改初心。\n不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!\n從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e“每天早晨叫醒你的不是鬧鐘,而是你的夢想。”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,\u003cbr\u003e\n其實也不重要了,還望披荊斬棘,不改初心。\u003c/p\u003e\n\u003cp\u003e不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!\u003c/p\u003e\n\u003cp\u003e從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。\u003c/p\u003e"}]} ================================================ FILE: categories/thoughts/index.html ================================================ 有所思 - 分类 | 菠菜眾長
================================================ FILE: categories/thoughts/index.xml ================================================ 有所思 - 分类 | 菠菜眾長https://lruihao.cn/categories/thoughts/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Sun, 28 Jul 2024 22:39:47 +08002023 年度总结https://lruihao.cn/years/2023/Fri, 09 Feb 2024 14:07:24 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/years/2023/有所思<p>与其说是年度总结,不如说是一年中难得的一次和自己对话的机会。</p>第一次面试经历https://lruihao.cn/posts/1thintervivew/Wed, 24 Apr 2019 21:23:22 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/1thintervivew/有所思<blockquote> <p>时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。</p> </blockquote>还乡https://lruihao.cn/posts/renative/Fri, 01 Feb 2019 20:44:40 +0800https://lruihao.cn/posts/renative/有所思<blockquote> <p>这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。</p> </blockquote>网站备案之旅https://lruihao.cn/posts/beian/Mon, 29 Oct 2018 23:16:26 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/beian/有所思<div class="details admonition success open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-check" aria-hidden="true"></i>备案<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。<br> 备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz</div> </div> </div>每一个优秀的人,都有一段沉默的时光https://lruihao.cn/posts/mood/Fri, 21 Sep 2018 21:11:25 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mood/有所思<blockquote> <p>手机便签里保存的一段话,也记不得在哪看到的了。</p> </blockquote> <p>每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。<br> 什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。</p> <p>人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。<br> 自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。</p>18 湘潭邀请赛总结https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/Thu, 14 Jun 2018 23:32:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/有所思<p><a href="http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf" target="_blank" rel="external nofollow noopener noreferrer">题目链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>(hdu 复赛)</p> <p>2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。</p>戏子春秋https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/Sun, 03 Jun 2018 19:41:32 +0800https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/有所思<blockquote> <p>从此故乡只有冬夏,再无春秋。</p> </blockquote>猴子与哪吒https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/Thu, 31 May 2018 10:09:15 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/有所思<p>一直觉得中国古代神话</p> <p>能称得上传奇的只有两个人物:</p> <p>一是猴子</p> <p>一是哪吒</p> <p>百世蕴灵育出只石猴 大闹天宫腾云驾雾</p> <p>三年怀胎生了个哪吒 东海屠龙翻江倒海</p> <p>可以说 除了这两人 没人再能当得起离经放纵四个字的</p> <p>但称得上悲剧的 约摸也只有这两个</p> <p>一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空</p> <p>一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子</p>Hello Worldhttps://lruihao.cn/posts/hello-world/Mon, 28 May 2018 20:01:01 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/hello-world/有所思<blockquote> <p>“每天早晨叫醒你的不是鬧鐘,而是你的夢想。”</p> </blockquote> <p>我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,<br> 其實也不重要了,還望披荊斬棘,不改初心。</p> <p>不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!</p> <p>從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。</p> ================================================ FILE: categories/thoughts/page/1/index.html ================================================ https://lruihao.cn/categories/thoughts/ ================================================ FILE: categories/vue.js/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Vue.js - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"Vue.js History 模式下的 NGINX 配置与 API 代理","date_published":"2025-06-11T10:05:36+08:00","date_modified":"2025-06-11T10:15:18+08:00","id":"https://lruihao.cn/posts/vue-build/","url":"https://lruihao.cn/posts/vue-build/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["nginx","Vue3","proxy"],"summary":" 在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。\n","content_html":"\u003c!-- 本文由 Poe AI 提供 --\u003e\n\u003cp\u003e在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。\u003c/p\u003e"},{"title":"如何实现 VSCode 编辑器窗口边界拖拽类似功能","date_published":"2024-06-13T21:03:12+08:00","date_modified":"2024-06-17T18:08:34+08:00","id":"https://lruihao.cn/posts/aside-toggle-drag/","url":"https://lruihao.cn/posts/aside-toggle-drag/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","CSS","JavaScript"],"summary":"边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。\n","content_html":"\u003cp\u003e边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。\u003c/p\u003e"},{"title":"临时决定再写一个小工具 - 网站预览图生成器","date_published":"2024-04-04T13:23:37+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/apple-devices-preview/","url":"https://lruihao.cn/projects/apple-devices-preview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"image":"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp","summary":"开发完 CoverView之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\n","content_html":"\u003cp\u003e开发完 \u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\u003c/p\u003e"},{"title":"实现类似于 Element UI 表格的溢出文本提示功能","date_published":"2024-02-29T16:46:00+08:00","date_modified":"2024-06-12T18:57:53+08:00","id":"https://lruihao.cn/posts/overflow-tooltip/","url":"https://lruihao.cn/posts/overflow-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"在 Element UI 的表格组件中,当表格列的内容过长时,设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\n","content_html":"\u003cp\u003e在 Element UI 的表格组件中,当表格列的内容过长时,设置 \u003ccode\u003eshow-overflow-tooltip\u003c/code\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\u003c/p\u003e"},{"title":"记一次 Debug 第三方包的过程","date_published":"2024-01-17T14:57:48+08:00","date_modified":"2024-01-18T12:59:43+08:00","id":"https://lruihao.cn/posts/900d5e4/","url":"https://lruihao.cn/posts/900d5e4/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["debug","Vue2","Vue3","TypeScript"],"image":"https://lruihao.cn/posts/900d5e4/images/featured-image.png","summary":"在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 code diff demo。\n","content_html":"\u003cp\u003e在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 \u003ca href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecode diff demo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"给 el-card 添加折叠功能","date_published":"2024-01-10T17:06:54+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-card-collapse/","url":"https://lruihao.cn/posts/el-card-collapse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":" 出发点 虽然 Element 也有 el-collapse 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,el-card 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e出发点\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e虽然 Element 也有 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-collapse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,\u003ca href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-card\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"拖拽式仪表盘系列总结","date_published":"2023-10-12T21:25:18+08:00","date_modified":"2024-01-17T16:39:29+08:00","id":"https://lruihao.cn/posts/dashboard-summary/","url":"https://lruihao.cn/posts/dashboard-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2","总结"],"summary":"当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\n","content_html":"\u003cp\u003e当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特点和功能\"\u003e\u003cspan\u003e1 特点和功能\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件开发","date_published":"2023-10-12T20:07:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-usage/","url":"https://lruihao.cn/posts/dashborad-widget-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\n","content_html":"\u003cp\u003e本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 模板使用","date_published":"2023-10-12T20:07:20+08:00","date_modified":"2024-04-25T13:29:53+08:00","id":"https://lruihao.cn/posts/dashborad-template-usage/","url":"https://lruihao.cn/posts/dashborad-template-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"image":"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png","summary":"本文将通过一个简单的例子,介绍如何使用仪表盘模板。\n","content_html":"\u003cp\u003e本文将通过一个简单的例子,介绍如何使用仪表盘模板。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件配置文档","date_published":"2023-10-12T19:41:23+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-docs/","url":"https://lruihao.cn/posts/dashborad-widget-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文将对 Dashboard 组件的使用方法进行介绍。\n","content_html":"\u003cp\u003e本文将对 Dashboard 组件的使用方法进行介绍。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 布局模板文档","date_published":"2023-10-12T19:27:49+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-template-docs/","url":"https://lruihao.cn/posts/dashborad-template-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"summary":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。","content_html":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。"},{"title":"拖拽式仪表盘 - 功能需求分析","date_published":"2023-10-12T15:37:30+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashboard-analysis/","url":"https://lruihao.cn/posts/dashboard-analysis/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2","需求分析"],"summary":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。","content_html":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。"},{"title":"拖拽式仪表盘的设计与开发","date_published":"2023-10-12T15:16:48+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/draggable-dashboard/","url":"https://lruihao.cn/posts/draggable-dashboard/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"content_html":"关于拖拽式仪表盘的设计与开发系列文章。"},{"title":"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?","date_published":"2023-09-25T17:49:58+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/el-table-sticky/","url":"https://lruihao.cn/projects/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\n","content_html":"\u003cp\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\u003c/p\u003e"},{"title":"封装 Vue FullScreenToggler 组件","date_published":"2023-09-17T19:44:07+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/vue-fullscreen-toggler/","url":"https://lruihao.cn/posts/vue-fullscreen-toggler/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","JavaScript"],"summary":"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\n","content_html":"\u003cp\u003e基于 \u003ca href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evue-fullscreen\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\u003c/p\u003e"},{"title":"在 Vue 项目中更优雅地使用 icon","date_published":"2023-09-14T11:24:48+08:00","date_modified":"2024-06-06T23:01:28+08:00","id":"https://lruihao.cn/posts/vue-svg-icon/","url":"https://lruihao.cn/posts/vue-svg-icon/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SVG","Vue2"],"summary":"19 前言 在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"前言\"\u003e\u003cspan\u003e19 前言\u003c/span\u003e\n \u003ca href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、\u003ca href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFont Awesome\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eIconfont\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 等等。\u003c/p\u003e\n\u003cp\u003e随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\u003c/p\u003e"},{"title":"用魔法打败魔法 - ElBacktop Fix","date_published":"2023-07-20T11:08:18+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-backtop-fix/","url":"https://lruihao.cn/posts/el-backtop-fix/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\n","content_html":"\u003cp\u003e这篇文章主要是记录一下继承 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElBacktop\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件并修复了一些 bug 的过程。\u003c/p\u003e"},{"title":"Vue2 + tailwindcss 初始化","date_published":"2023-06-03T17:38:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/v2-tailwind/","url":"https://lruihao.cn/posts/v2-tailwind/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["tailwindcss","Vue2","CSS","eslint"],"summary":"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目:\nvue create vue2-tailwind根据需要选择其他的功能插件,例如:Babel, Router, Vuex, CSS Pre-processors, Linter。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"新建-vue2-项目\"\u003e\u003cspan\u003e7 新建 Vue2 项目\u003c/span\u003e\n \u003ca href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e通过 \u003ccode\u003evue-cli\u003c/code\u003e 创建一个叫 \u003ccode\u003ev2-tailwind\u003c/code\u003e 的项目:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evue create vue2-tailwind\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e根据需要选择其他的功能插件,例如:\u003ccode\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\u003c/code\u003e。\u003c/p\u003e"},{"title":"新手向:Vue 2.0 的建议学习顺序","date_published":"2023-03-14T08:37:59+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/vue2-guid/","url":"https://lruihao.cn/posts/vue2-guid/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","他山之石"],"summary":" 注:2.0 已经有中文文档 。如果对自己英文有信心,也可以直接阅读英文文档。\n此指南仅供参考,请根据自身实际情况灵活调整。\n转载自: 尤雨溪,新手向:Vue 2.0 的建议学习顺序,2017-08-04 14:51\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e注:2.0 已经有\u003ca href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 。如果对自己英文有信心,也可以直接阅读\u003ca href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英文文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003cbr\u003e\n此指南仅供参考,请根据自身实际情况灵活调整。\u003cbr\u003e\n转载自: \u003ca href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e尤雨溪\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新手向:Vue 2.0 的建议学习顺序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,2017-08-04 14:51\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/vue.js/index.html ================================================ Vue.js - 分类 | 菠菜眾長
================================================ FILE: categories/vue.js/index.xml ================================================ Vue.js - 分类 | 菠菜眾長https://lruihao.cn/categories/vue.js/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 11 Jun 2025 10:15:18 +0800Vue.js History 模式下的 NGINX 配置与 API 代理https://lruihao.cn/posts/vue-build/Wed, 11 Jun 2025 10:05:36 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vue-build/Vue.js<!-- 本文由 Poe AI 提供 --> <p>在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。</p>如何实现 VSCode 编辑器窗口边界拖拽类似功能https://lruihao.cn/posts/aside-toggle-drag/Thu, 13 Jun 2024 21:03:12 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/aside-toggle-drag/Vue.js<p>边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。</p>临时决定再写一个小工具 - 网站预览图生成器https://lruihao.cn/projects/apple-devices-preview/Thu, 04 Apr 2024 13:23:37 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/apple-devices-preview/Vue.jsJavaScript<p>开发完 <a href="https://github.com/Lruihao/CoverView" target="_blank" rel="external nofollow noopener noreferrer">CoverView<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。</p>实现类似于 Element UI 表格的溢出文本提示功能https://lruihao.cn/posts/overflow-tooltip/Thu, 29 Feb 2024 16:46:00 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/overflow-tooltip/Vue.jsJavaScript<p>在 Element UI 的表格组件中,当表格列的内容过长时,设置 <code>show-overflow-tooltip</code> 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?</p>记一次 Debug 第三方包的过程https://lruihao.cn/posts/900d5e4/Wed, 17 Jan 2024 14:57:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/900d5e4/Vue.js<p>在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 <a href="https://lruihao.github.io/vue-el-demo/#/code-diff" target="_blank" rel="external nofollow noopener noreferrer">code diff demo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>给 el-card 添加折叠功能https://lruihao.cn/posts/el-card-collapse/Wed, 10 Jan 2024 17:06:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/el-card-collapse/Vue.jsJavaScript<div class="details admonition question open"> <div class="details-summary admonition-title"><i class="icon fa-regular fa-circle-question" aria-hidden="true"></i>出发点<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">虽然 Element 也有 <a href="https://element.eleme.cn/#/zh-CN/component/collapse" target="_blank" rel="external nofollow noopener noreferrer">el-collapse<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,<a href="https://element.eleme.cn/#/zh-CN/component/card" target="_blank" rel="external nofollow noopener noreferrer">el-card<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。</div> </div> </div>拖拽式仪表盘系列总结https://lruihao.cn/posts/dashboard-summary/Thu, 12 Oct 2023 21:25:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashboard-summary/Vue.js<p>当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。</p> <h2 class="heading-element" id="特点和功能"><span>1 特点和功能</span> <a href="#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:</p>拖拽式仪表盘 - 组件开发https://lruihao.cn/posts/dashborad-widget-usage/Thu, 12 Oct 2023 20:07:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-widget-usage/Vue.js<p>本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。</p>拖拽式仪表盘 - 模板使用https://lruihao.cn/posts/dashborad-template-usage/Thu, 12 Oct 2023 20:07:20 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-template-usage/Vue.js<p>本文将通过一个简单的例子,介绍如何使用仪表盘模板。</p>拖拽式仪表盘 - 组件配置文档https://lruihao.cn/posts/dashborad-widget-docs/Thu, 12 Oct 2023 19:41:23 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-widget-docs/Vue.js<p>本文将对 Dashboard 组件的使用方法进行介绍。</p>拖拽式仪表盘 - 布局模板文档https://lruihao.cn/posts/dashborad-template-docs/Thu, 12 Oct 2023 19:27:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-template-docs/Vue.jsDashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。拖拽式仪表盘 - 功能需求分析https://lruihao.cn/posts/dashboard-analysis/Thu, 12 Oct 2023 15:37:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashboard-analysis/Vue.js本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。拖拽式仪表盘的设计与开发https://lruihao.cn/posts/draggable-dashboard/Thu, 12 Oct 2023 15:16:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/draggable-dashboard/Vue.js关于拖拽式仪表盘的设计与开发系列文章。如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?https://lruihao.cn/projects/el-table-sticky/Mon, 25 Sep 2023 17:49:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/el-table-sticky/Vue.js<p>本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。</p>封装 Vue FullScreenToggler 组件https://lruihao.cn/posts/vue-fullscreen-toggler/Sun, 17 Sep 2023 19:44:07 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vue-fullscreen-toggler/Vue.js<p>基于 <a href="https://github.com/mirari/vue-fullscreen" target="_blank" rel="external nofollow noopener noreferrer">vue-fullscreen<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 封装一个的 Vue 全屏/退出全屏切换组件。</p>在 Vue 项目中更优雅地使用 iconhttps://lruihao.cn/posts/vue-svg-icon/Thu, 14 Sep 2023 11:24:48 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vue-svg-icon/Vue.js<h2 class="heading-element" id="前言"><span>28 前言</span> <a href="#%e5%89%8d%e8%a8%80" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、<a href="https://fontawesome.com/" target="_blank" rel="external nofollow noopener noreferrer">Font Awesome<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://www.iconfont.cn/" target="_blank" rel="external nofollow noopener noreferrer">Iconfont<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 等等。</p> <p>随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。</p>用魔法打败魔法 - ElBacktop Fixhttps://lruihao.cn/posts/el-backtop-fix/Thu, 20 Jul 2023 11:08:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/el-backtop-fix/Vue.jsJavaScript<p>这篇文章主要是记录一下继承 <a href="https://element.eleme.cn/#/zh-CN/component/backtop" target="_blank" rel="external nofollow noopener noreferrer">ElBacktop<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 组件并修复了一些 bug 的过程。</p>Vue2 + tailwindcss 初始化https://lruihao.cn/posts/v2-tailwind/Sat, 03 Jun 2023 17:38:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/v2-tailwind/Vue.js<h2 class="heading-element" id="新建-vue2-项目"><span>10 新建 Vue2 项目</span> <a href="#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>通过 <code>vue-cli</code> 创建一个叫 <code>v2-tailwind</code> 的项目:</p> <pre><code>vue create vue2-tailwind</code></pre><p>根据需要选择其他的功能插件,例如:<code>Babel, Router, Vuex, CSS Pre-processors, Linter</code>。</p>新手向:Vue 2.0 的建议学习顺序https://lruihao.cn/posts/vue2-guid/Tue, 14 Mar 2023 08:37:59 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vue2-guid/Vue.js<blockquote> <p>注:2.0 已经有<a href="https://v2.cn.vuejs.org/" target="_blank" rel="external nofollow noopener noreferrer">中文文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 。如果对自己英文有信心,也可以直接阅读<a href="https://v2.vuejs.org/" target="_blank" rel="external nofollow noopener noreferrer">英文文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。<br> 此指南仅供参考,请根据自身实际情况灵活调整。<br> 转载自: <a href="https://www.zhihu.com/people/evanyou" target="_blank" rel="external nofollow noopener noreferrer">尤雨溪<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,<a href="https://zhuanlan.zhihu.com/p/23134551" target="_blank" rel="external nofollow noopener noreferrer">新手向:Vue 2.0 的建议学习顺序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,2017-08-04 14:51</p> </blockquote> ================================================ FILE: categories/vue.js/page/1/index.html ================================================ https://lruihao.cn/categories/vue.js/ ================================================ FILE: categories/瞎折腾/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"瞎折腾 - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"利用 Vercel 反代 Gravatar 实现镜像加速","date_published":"2024-04-17T12:51:35+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/vercel-gravatar/","url":"https://lruihao.cn/projects/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vercel","Gravatar"],"summary":"在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\n","content_html":"\u003cp\u003e在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\u003c/p\u003e"},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-03-02T21:46:40+08:00","date_modified":"2021-03-02T21:46:40+08:00","id":"https://lruihao.cn/projects/bill-note/","url":"https://lruihao.cn/projects/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","Vue2","leancloud"],"summary":"9 起因 起因 事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\n自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (AB, AC, BC, ABC)。好麻煩啊!!!\n","content_html":"\u003ch2 class=\"heading-element\" id=\"起因\"\u003e\u003cspan\u003e9 起因\u003c/span\u003e\n \u003ca href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e起因\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\u003c/p\u003e\n\u003cp\u003e自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\u003cbr\u003e\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (\u003ccode\u003eAB, AC, BC, ABC\u003c/code\u003e)。好麻煩啊!!!\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"使用 Python 刷 csdn 访问量","date_published":"2020-03-26T11:08:38+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/csdnvisiter/","url":"https://lruihao.cn/posts/csdnvisiter/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"新冠疫情未返校未返工第 N 天之“自动打卡”","date_published":"2020-03-25T08:22:42+08:00","date_modified":"2020-03-25T08:22:42+08:00","id":"https://lruihao.cn/posts/daka/","url":"https://lruihao.cn/posts/daka/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","HTTP"],"image":"https://lruihao.cn/posts/daka/images/result.png","summary":" 信息 这件事还得从一只蝙蝠说起 \u0026hellip;\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\n我和潇 X 巴哥确定思路后兵分两路:\n他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库; 我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个); ","content_html":"\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e这件事还得从一只蝙蝠说起 \u0026hellip;\u003cbr\u003e\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\u003cbr\u003e\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\u003cbr\u003e\n我和潇 X 巴哥确定思路后兵分两路:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;\u003c/li\u003e\n\u003cli\u003e我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);\u003c/li\u003e\n\u003c/ol\u003e\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"用 MyQR 制作专属动态二维码 (py 和 exe 版本)","date_published":"2019-04-27T14:16:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qrcode/","url":"https://lruihao.cn/posts/qrcode/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["pillow","numpy","imageio","Python"],"summary":" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 sylnsfar/qrcode,本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载,公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003ePython 二维码生成器\u003c/strong\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 \u003ca href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esylnsfar/qrcode\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,本文主要介绍记录一下 python 版本使用。exe 可以去 \u003ca href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e项目开源地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 下载,公众号文章后台回复关键词“qrcode”获取链接。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e可生成_普通二维码_、\u003cem\u003e带图片的艺术二维码(黑白与彩色)\u003c/em\u003e、\u003cem\u003e动态二维码(黑白与彩色)\u003c/em\u003e。\u003c/p\u003e"},{"title":"python 爬取网站图片(图片链接相似)","date_published":"2019-04-22T12:46:34+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mmtimgpy/","url":"https://lruihao.cn/posts/mmtimgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 以下程序对 该网址 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。字体效果查看\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下程序对 \u003ca href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\u0026amp;a=fontshowPics\u0026amp;u=qbfRl8gPF2s-\u0026amp;z=Kqz%2FRroVGYc-\u0026amp;share=1\u0026amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e该网址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。\u003ca href=\"/projects/font-mmt/\"\u003e字体效果查看\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 玩微信:初探 wxpy","date_published":"2019-04-20T15:44:57+08:00","date_modified":"2019-04-20T15:44:57+08:00","id":"https://lruihao.cn/posts/wxpy1/","url":"https://lruihao.cn/posts/wxpy1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","wxpy","pyecharts","jieba","他山之石"],"image":"/posts/wxpy1/images/1.png","summary":" 文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e查看微信好友男女比例\u003c/li\u003e\n\u003cli\u003e查看好友地区分布\u003c/li\u003e\n\u003cli\u003e群性别统计\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e"},{"title":"基本 python 实现的爬取微信好友头像,并拼接成大图","date_published":"2019-04-20T13:32:58+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/wximgpy/","url":"https://lruihao.cn/posts/wximgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["wxpy","pillow","Python"],"image":"/posts/wximgpy/images/1.jpg","summary":" Python 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\n文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ePython 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\u003cbr\u003e\n\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003cbr\u003e\n\u003cstrong\u003e文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宅音乐播放器","date_published":"2019-03-19T23:32:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/player/","url":"https://lruihao.cn/posts/player/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","ThinkPHP","Layui","MySQL"],"image":"/posts/player/images/index.png","summary":" 宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\n原项目 由 IT 技术宅 开源,使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库,也是相当于备份源码。\n注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\u003cbr\u003e\n\u003ca href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e原项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 由 \u003ca href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eIT 技术宅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 开源,使用 thinkPHP 开发后台。 \u003ca href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efork 地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 是我个人学习模仿的库,也是相当于备份源码。\u003cbr\u003e\n\u003cem\u003e注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"“高逼格”C 语言画心","date_published":"2018-08-15T16:33:12+08:00","date_modified":"2018-08-15T16:33:12+08:00","id":"https://lruihao.cn/posts/heart/","url":"https://lruihao.cn/posts/heart/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["C"],"summary":"七夕又快到了,分享一个曾经玩过的代码,用 C 语言画一个跳动的心,很有逼格有木有。\n大一在机房拍的图 ","content_html":"\u003cp\u003e七夕又快到了,分享一个曾经玩过的代码,用 C 语言画一个跳动的心,很有逼格有木有。\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" title=\"大一在机房拍的图\" data-thumbnail=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" data-sub-html=\"\u003ch2\u003e截图\u003c/h2\u003e\u003cp\u003e大一在机房拍的图\u003c/p\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\"截图\" height=\"210\" width=\"210\"\u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e大一在机房拍的图\u003c/figcaption\u003e\n \u003c/figure\u003e\u003c/p\u003e"}]} ================================================ FILE: categories/瞎折腾/index.html ================================================ 瞎折腾 - 分类 | 菠菜眾長
================================================ FILE: categories/瞎折腾/index.xml ================================================ 瞎折腾 - 分类 | 菠菜眾長https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Wed, 20 Nov 2024 12:50:07 +0800利用 Vercel 反代 Gravatar 实现镜像加速https://lruihao.cn/projects/vercel-gravatar/Wed, 17 Apr 2024 12:51:35 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/vercel-gravatar/瞎折腾<p>在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。</p>基于 leancloud-storage 实现的无后端记账本https://lruihao.cn/projects/bill-note/Tue, 02 Mar 2021 21:46:40 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/bill-note/瞎折腾<h2 class="heading-element" id="起因"><span>13 起因</span> <a href="#%e8%b5%b7%e5%9b%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>起因<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!</p> <p>自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;<br> 三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (<code>AB, AC, BC, ABC</code>)。好麻煩啊!!!</p> </div> </div> </div>使用 Python 刷 csdn 访问量https://lruihao.cn/posts/csdnvisiter/Thu, 26 Mar 2020 11:08:38 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/csdnvisiter/瞎折腾Python<blockquote> <p>使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~</p> </blockquote>新冠疫情未返校未返工第 N 天之“自动打卡”https://lruihao.cn/posts/daka/Wed, 25 Mar 2020 08:22:42 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/daka/瞎折腾Python<div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>信息<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>这件事还得从一只蝙蝠说起 &hellip;<br> 算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 &hellip;<br> 哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 &hellip;<br> 我和潇 X 巴哥确定思路后兵分两路:</p> <ol> <li>他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;</li> <li>我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);</li> </ol></div> </div> </div>用 MyQR 制作专属动态二维码 (py 和 exe 版本)https://lruihao.cn/posts/qrcode/Sat, 27 Apr 2019 14:16:54 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/qrcode/瞎折腾Python<blockquote> <p><strong>Python 二维码生成器</strong>是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 <a href="https://github.com/sylnsfar/qrcode/" target="_blank" rel="external nofollow noopener noreferrer">sylnsfar/qrcode<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>,本文主要介绍记录一下 python 版本使用。exe 可以去 <a href="https://github.com/sylnsfar/qrcode_win" target="_blank" rel="external nofollow noopener noreferrer">项目开源地址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 下载,公众号文章后台回复关键词“qrcode”获取链接。</p> </blockquote> <p>可生成_普通二维码_、<em>带图片的艺术二维码(黑白与彩色)</em>、<em>动态二维码(黑白与彩色)</em>。</p>python 爬取网站图片(图片链接相似)https://lruihao.cn/posts/mmtimgpy/Mon, 22 Apr 2019 12:46:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mmtimgpy/瞎折腾Python<blockquote> <p>以下程序对 <a href="https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&amp;a=fontshowPics&amp;u=qbfRl8gPF2s-&amp;z=Kqz%2FRroVGYc-&amp;share=1&amp;from=singlemessage" target="_blank" rel="external nofollow noopener noreferrer">该网址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。<a href="https://lruihao.cn/projects/font-mmt/">字体效果查看</a></p> </blockquote>python 玩微信:初探 wxpyhttps://lruihao.cn/posts/wxpy1/Sat, 20 Apr 2019 15:44:57 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wxpy1/瞎折腾Python<blockquote> <p><strong><em>文中涉及的图片涉及个人隐私,仅做举例,请勿传播</em></strong></p> <ul> <li>查看微信好友男女比例</li> <li>查看好友地区分布</li> <li>群性别统计</li> </ul> </blockquote>基本 python 实现的爬取微信好友头像,并拼接成大图https://lruihao.cn/posts/wximgpy/Sat, 20 Apr 2019 13:32:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wximgpy/瞎折腾Python<blockquote> <p>Python 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)<br> <strong><em>文中涉及的图片涉及个人隐私,仅做举例,请勿传播</em></strong><br> <strong>文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删</strong></p> </blockquote>宅音乐播放器https://lruihao.cn/posts/player/Tue, 19 Mar 2019 23:32:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/player/瞎折腾PHP<blockquote> <p>宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~<br> <a href="https://github.com/lzx8589561/zhai-music" target="_blank" rel="external nofollow noopener noreferrer">原项目<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 由 <a href="https://www.ilt.me" target="_blank" rel="external nofollow noopener noreferrer">IT 技术宅<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 开源,使用 thinkPHP 开发后台。 <a href="https://github.com/Lruihao/zhai-music" target="_blank" rel="external nofollow noopener noreferrer">fork 地址<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 是我个人学习模仿的库,也是相当于备份源码。<br> <em>注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。</em></p> </blockquote>“高逼格”C 语言画心https://lruihao.cn/posts/heart/Wed, 15 Aug 2018 16:33:12 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/heart/瞎折腾<p>七夕又快到了,分享一个曾经玩过的代码,用 C 语言画一个跳动的心,很有逼格有木有。</p> <p><figure><a class="lightgallery" target="_blank" href="https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif" title="大一在机房拍的图" data-thumbnail="/images/remote/5b8680e407e09_14695341072961183661.gif" data-sub-html="<h2>截图</h2><p>大一在机房拍的图</p>"><img loading="lazy" src='https://lruihao.cn/images/remote/5b8680e407e09_14695341072961183661.gif' alt="截图" height="210" width="210"></a><figcaption class="image-caption">大一在机房拍的图</figcaption> </figure></p> ================================================ FILE: categories/瞎折腾/page/1/index.html ================================================ https://lruihao.cn/categories/%E7%9E%8E%E6%8A%98%E8%85%BE/ ================================================ FILE: categories/翻译/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"翻译 - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"认知复杂度(Cognitive Complexity)","date_published":"2023-10-08T09:52:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cognitive-complexity/","url":"https://lruihao.cn/posts/cognitive-complexity/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"image":"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png","summary":"27 摘要 循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n27.1 术语说明 虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"摘要\"\u003e\u003cspan\u003e27 摘要\u003c/span\u003e\n \u003ca href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"术语说明\"\u003e\u003cspan\u003e27.1 术语说明\u003c/span\u003e\n \u003ca href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\u003c/p\u003e\n\u003chr\u003e"},{"title":"中文翻译的常见问题","date_published":"2023-09-15T11:07:56+08:00","date_modified":"2023-11-17T20:45:09+08:00","id":"https://lruihao.cn/posts/translation-guide/","url":"https://lruihao.cn/posts/translation-guide/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["他山之石"],"summary":" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范,更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下内容截取自 \u003ca href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e针对 MDN 文档的本地化指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的中文翻译的常见问题小节。\u003c/p\u003e\n\u003cp\u003e其中翻译的规范也是中文写作的规范,更多详见之前写的 \u003ca href=\"/posts/document-style-guide/\"\u003e中文技术文档的写作规范\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\u003c/p\u003e"}]} ================================================ FILE: categories/翻译/index.html ================================================ 翻译 - 分类 | 菠菜眾長
================================================ FILE: categories/翻译/index.xml ================================================ 翻译 - 分类 | 菠菜眾長https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Fri, 17 Nov 2023 20:45:09 +0800认知复杂度(Cognitive Complexity)https://lruihao.cn/posts/cognitive-complexity/Sun, 08 Oct 2023 09:52:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/cognitive-complexity/程序猿的自我修养翻译<h2 class="heading-element" id="摘要"><span>40 摘要</span> <a href="#%e6%91%98%e8%a6%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。</p> <h3 class="heading-element" id="术语说明"><span>40.1 术语说明</span> <a href="#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。</p> <hr>中文翻译的常见问题https://lruihao.cn/posts/translation-guide/Fri, 15 Sep 2023 11:07:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/translation-guide/程序猿的自我修养翻译<blockquote> <p>以下内容截取自 <a href="https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md" target="_blank" rel="external nofollow noopener noreferrer">针对 MDN 文档的本地化指南<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的中文翻译的常见问题小节。</p> <p>其中翻译的规范也是中文写作的规范,更多详见之前写的 <a href="https://lruihao.cn/posts/document-style-guide/">中文技术文档的写作规范</a>。</p> </blockquote> <p>为保证简体中文文档格式的一致性,翻译指南列出了部分规范。</p> ================================================ FILE: categories/翻译/page/1/index.html ================================================ https://lruihao.cn/categories/%E7%BF%BB%E8%AF%91/ ================================================ FILE: categories/计算机网络/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"计算机网络 - 分类 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"RESTful","date_published":"2019-11-14T19:06:05+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/restful/","url":"https://lruihao.cn/posts/restful/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["REST","HTTP"],"summary":" RESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 RFC5789\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 \u003ca href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRFC5789\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"}]} ================================================ FILE: categories/计算机网络/index.html ================================================ 计算机网络 - 分类 | 菠菜眾長

计算机网络 1

2019

================================================ FILE: categories/计算机网络/index.xml ================================================ 计算机网络 - 分类 | 菠菜眾長https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Thu, 30 Nov 2023 23:35:38 +0800RESTfulhttps://lruihao.cn/posts/restful/Thu, 14 Nov 2019 19:06:05 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/restful/程序猿的自我修养计算机网络<blockquote> <p>RESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 <a href="https://www.rfc-editor.org/rfc/rfc5789" target="_blank" rel="external nofollow noopener noreferrer">RFC5789<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote> ================================================ FILE: categories/计算机网络/page/1/index.html ================================================ https://lruihao.cn/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/ ================================================ FILE: collections/aws/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"AWS - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[]} ================================================ FILE: collections/aws/index.html ================================================ AWS - 合集 | 菠菜眾長
================================================ FILE: collections/aws/index.xml ================================================ AWS - 合集 | 菠菜眾長https://lruihao.cn/collections/aws/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。 ================================================ FILE: collections/aws/page/1/index.html ================================================ https://lruihao.cn/collections/aws/ ================================================ FILE: collections/css-奇技淫巧/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"CSS 奇技淫巧 - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"CSS 实现时间轴、背景图 loading 和渐变边框","date_published":"2024-07-14T13:03:31+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/fixit-docs-bookmark/","url":"https://lruihao.cn/posts/fixit-docs-bookmark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"image":"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp","summary":"本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\n","content_html":"\u003cp\u003e本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\u003c/p\u003e"}]} ================================================ FILE: collections/css-奇技淫巧/index.html ================================================ CSS 奇技淫巧 - 合集 | 菠菜眾長
================================================ FILE: collections/css-奇技淫巧/index.xml ================================================ CSS 奇技淫巧 - 合集 | 菠菜眾長https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Sun, 28 Jul 2024 17:12:48 +0800CSS 实现时间轴、背景图 loading 和渐变边框https://lruihao.cn/posts/fixit-docs-bookmark/Sun, 14 Jul 2024 13:03:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/fixit-docs-bookmark/CSS<p>本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。</p> ================================================ FILE: collections/css-奇技淫巧/page/1/index.html ================================================ https://lruihao.cn/collections/css-%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/ ================================================ FILE: collections/index.html ================================================ 所有合集 | 菠菜眾長
================================================ FILE: collections/modern-css/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"现代 CSS 解决方案 - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"现代 CSS 解决方案:CSS 四舍五入数值单位","date_published":"2024-07-29T20:32:39+08:00","date_modified":"2024-10-13T12:28:31+08:00","id":"https://lruihao.cn/posts/css-round/","url":"https://lruihao.cn/posts/css-round/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","round"],"summary":"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\n","content_html":"\u003cp\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \u003ccode\u003eround()\u003c/code\u003e 及其实际应用场景。\u003c/p\u003e"},{"title":"现代 CSS 解决方案之异形元素怎么设置阴影?","date_published":"2024-07-15T10:40:12+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/drop-shadow/","url":"https://lruihao.cn/posts/drop-shadow/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","drop-shadow","box-shadow"],"summary":"今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\n","content_html":"\u003cp\u003e今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\u003c/p\u003e"},{"title":"CSS 实现时间轴、背景图 loading 和渐变边框","date_published":"2024-07-14T13:03:31+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/fixit-docs-bookmark/","url":"https://lruihao.cn/posts/fixit-docs-bookmark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"image":"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp","summary":"本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\n","content_html":"\u003cp\u003e本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\u003c/p\u003e"},{"title":"标准滚动条控制规范","date_published":"2024-06-28T22:29:03+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/scrollbar-styling/","url":"https://lruihao.cn/posts/scrollbar-styling/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","scrollbar-styling"],"summary":"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\n","content_html":"\u003cp\u003e使用 \u003ccode\u003escrollbar-width\u003c/code\u003e 和 \u003ccode\u003escrollbar-color\u003c/code\u003e 属性设置滚动条的样式。\u003c/p\u003e"},{"title":"CSS 如何实现网格背景效果?","date_published":"2023-09-02T10:05:44+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/grid-bg-image/","url":"https://lruihao.cn/posts/grid-bg-image/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS"],"summary":"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n15 前言 最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\n","content_html":"\u003cp\u003e本文将介绍如何使用 \u003ccode\u003elinear-gradient\u003c/code\u003e 、\u003ccode\u003ebackground-size\u003c/code\u003e 等属性来实现网格背景效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"前言\"\u003e\u003cspan\u003e15 前言\u003c/span\u003e\n \u003ca href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\u003c/p\u003e"}]} ================================================ FILE: collections/modern-css/index.html ================================================ 现代 CSS 解决方案 - 合集 | 菠菜眾長
================================================ FILE: collections/modern-css/index.xml ================================================ 现代 CSS 解决方案 - 合集 | 菠菜眾長https://lruihao.cn/collections/modern-css/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Sun, 13 Oct 2024 12:28:31 +0800现代 CSS 解决方案:CSS 四舍五入数值单位https://lruihao.cn/posts/css-round/Mon, 29 Jul 2024 20:32:39 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/css-round/CSS<p>本文将介绍另外一个非常实用的 CSS 数学函数 - <code>round()</code> 及其实际应用场景。</p>现代 CSS 解决方案之异形元素怎么设置阴影?https://lruihao.cn/posts/drop-shadow/Mon, 15 Jul 2024 10:40:12 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/drop-shadow/CSS<p>今天记录一个 CSS 小知识点,如何给异形元素设置阴影。</p>CSS 实现时间轴、背景图 loading 和渐变边框https://lruihao.cn/posts/fixit-docs-bookmark/Sun, 14 Jul 2024 13:03:31 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/fixit-docs-bookmark/CSS<p>本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。</p>标准滚动条控制规范https://lruihao.cn/posts/scrollbar-styling/Fri, 28 Jun 2024 22:29:03 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/scrollbar-styling/CSS<p>使用 <code>scrollbar-width</code> 和 <code>scrollbar-color</code> 属性设置滚动条的样式。</p>CSS 如何实现网格背景效果?https://lruihao.cn/posts/grid-bg-image/Sat, 02 Sep 2023 10:05:44 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/grid-bg-image/CSS<p>本文将介绍如何使用 <code>linear-gradient</code> 、<code>background-size</code> 等属性来实现网格背景效果。</p> <h2 class="heading-element" id="前言"><span>22 前言</span> <a href="#%e5%89%8d%e8%a8%80" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。</p> ================================================ FILE: collections/modern-css/page/1/index.html ================================================ https://lruihao.cn/collections/modern-css/ ================================================ FILE: collections/project/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"开源项目 - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"一个轻量化 Tooltip 组件。","date_published":"2026-03-06T06:58:23Z","date_modified":"2026-03-30T06:51:12Z","id":"https://lruihao.cn/projects/lruihao/cell-tooltip/","url":"https://lruihao.cn/projects/lruihao/cell-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap tooltip.js,保留常用能力并尽量减少体积与依赖。\n特性 支持触发方式:hover / focus / click / manual 支持位置:top / bottom / left / right / auto 支持延迟配置(show / hide) 支持 data-ct-* 属性初始化 支持实例方法:show / hide / toggle / update / dispose 内置箭头与基础样式,无第三方依赖 本地运行 pnpm install pnpm dev构建库产物:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased\u003e\u003cspan\u003ecell-tooltip\u003c/span\u003e\n \u003ca href=\"#cell-tooltip\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap \u003ccode\u003etooltip.js\u003c/code\u003e,保留常用能力并尽量减少体积与依赖。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持触发方式:\u003ccode\u003ehover\u003c/code\u003e / \u003ccode\u003efocus\u003c/code\u003e / \u003ccode\u003eclick\u003c/code\u003e / \u003ccode\u003emanual\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持位置:\u003ccode\u003etop\u003c/code\u003e / \u003ccode\u003ebottom\u003c/code\u003e / \u003ccode\u003eleft\u003c/code\u003e / \u003ccode\u003eright\u003c/code\u003e / \u003ccode\u003eauto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持延迟配置(\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持 \u003ccode\u003edata-ct-*\u003c/code\u003e 属性初始化\u003c/li\u003e\n\u003cli\u003e支持实例方法:\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e / \u003ccode\u003etoggle\u003c/code\u003e / \u003ccode\u003eupdate\u003c/code\u003e / \u003ccode\u003edispose\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e内置箭头与基础样式,无第三方依赖\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"本地运行\"\u003e\u003cspan\u003e本地运行\u003c/span\u003e\n \u003ca href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epnpm install\npnpm dev\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e构建库产物:\u003c/p\u003e"},{"title":"A Christmas Easter Egg by JavaScript.","date_published":"2025-12-24T03:31:47Z","date_modified":"2026-05-04T16:54:23Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","theme-component"],"summary":" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期,无需手动开关 💫 轻量级实现,不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003e🎄 Santa Hat | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个 JavaScript 实现的圣诞节小彩蛋。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰\u003c/li\u003e\n\u003cli\u003e🎯 自动检测当前日期,无需手动开关\u003c/li\u003e\n\u003cli\u003e💫 轻量级实现,不影响网站性能\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 或更高版本。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方式与 \u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\u003c/p\u003e"},{"title":"Command line tool for generating a changelog from git tags and commit history","date_published":"2025-08-30T15:40:19Z","date_modified":"2025-11-19T04:35:56Z","id":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","url":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["auto-changelog","conventional-changelog","conventional-commits","semver"],"summary":"auto-changelog-plus 中文 | English\n从 git 提交历史自动生成 changelog 的命令行工具。\n基于 auto-changelog 和 约定式提交 规范。\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased\u003e\u003cspan\u003eauto-changelog-plus\u003c/span\u003e\n \u003ca href=\"#auto-changelog-plus\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e从 git 提交历史自动生成 changelog 的命令行工具。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于 \u003ca href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto-changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 和 \u003ca href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e约定式提交\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 规范。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-安装\"\u003e\u003cspan\u003e📦 安装\u003c/span\u003e\n \u003ca href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install -g auto-changelog-plus\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"-用法\"\u003e\u003cspan\u003e🚀 用法\u003c/span\u003e\n \u003ca href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 git 仓库根目录运行 \u003ccode\u003eauto-changelog-plus\u003c/code\u003e 或者 \u003ccode\u003eacp\u003c/code\u003e。工具会在后台运行 \u003ccode\u003egit log\u003c/code\u003e 来解析提交历史。\u003c/p\u003e"},{"title":"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.","date_published":"2025-07-22T03:40:45Z","date_modified":"2026-04-08T08:41:40Z","id":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","url":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["caniuse","caniuse-embed","custom-elements","web-components"],"summary":"\u0026lt;caniuse-embed\u0026gt; 元素 English | 简体中文\n一个轻量级、可定制的 Web 组件,用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建,设计为可无缝集成到任何 Web 项目中。\n🌟 在线演示\n","content_html":"\u003ch2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased\u003e\u003cspan\u003e\u003ccode\u003e\u0026lt;caniuse-embed\u0026gt;\u003c/code\u003e 元素\u003c/span\u003e\n \u003ca href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e | 简体中文\u003c/p\u003e\n\u003cp\u003e一个轻量级、可定制的 Web 组件,用于嵌入 \u003ca href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaniuse.com\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \u003ca href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 构建,设计为可无缝集成到任何 Web 项目中。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌟 \u003cstrong\u003e在线演示\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"A custom element for viewing and interacting with JSON data.","date_published":"2025-07-19T07:05:07Z","date_modified":"2026-04-08T08:42:59Z","id":"https://lruihao.cn/projects/lruihao/json-viewer-element/","url":"https://lruihao.cn/projects/lruihao/json-viewer-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"\u0026lt;json-viewer\u0026gt; Element 简体中文 | English\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\n功能特性 🌟 Web 组件:原生,无框架依赖 🎨 主题:支持明暗模式 📦 盒装:可选边框与内边距 📋 可复制:一键复制 JSON 🔑 排序:支持键排序 🔍 展开深度:可控初始展开层级 🧩 自定义复制按钮:slot 插槽支持 🧬 类型高亮:多种类型高亮 🛠️ 自定义事件:支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased\u003e\u003cspan\u003e\u0026lt;json-viewer\u0026gt; Element\u003c/span\u003e\n \u003ca href=\"#json-viewer-element\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e简体中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能特性\"\u003e\u003cspan\u003e功能特性\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e🌟 \u003cstrong\u003eWeb 组件\u003c/strong\u003e:原生,无框架依赖\u003c/li\u003e\n\u003cli\u003e🎨 \u003cstrong\u003e主题\u003c/strong\u003e:支持明暗模式\u003c/li\u003e\n\u003cli\u003e📦 \u003cstrong\u003e盒装\u003c/strong\u003e:可选边框与内边距\u003c/li\u003e\n\u003cli\u003e📋 \u003cstrong\u003e可复制\u003c/strong\u003e:一键复制 JSON\u003c/li\u003e\n\u003cli\u003e🔑 \u003cstrong\u003e排序\u003c/strong\u003e:支持键排序\u003c/li\u003e\n\u003cli\u003e🔍 \u003cstrong\u003e展开深度\u003c/strong\u003e:可控初始展开层级\u003c/li\u003e\n\u003cli\u003e🧩 \u003cstrong\u003e自定义复制按钮\u003c/strong\u003e:slot 插槽支持\u003c/li\u003e\n\u003cli\u003e🧬 \u003cstrong\u003e类型高亮\u003c/strong\u003e:多种类型高亮\u003c/li\u003e\n\u003cli\u003e🛠️ \u003cstrong\u003e自定义事件\u003c/strong\u003e:支持 copy/toggle 事件监听\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"使用方法\"\u003e\u003cspan\u003e使用方法\u003c/span\u003e\n \u003ca href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003enpm install json-viewer-element\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"引入\"\u003e\u003cspan\u003e引入\u003c/span\u003e\n \u003ca href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003ch4 class=\"heading-element\" id=\"作为模块\"\u003e\u003cspan\u003e作为模块\u003c/span\u003e\n \u003ca href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003eimport 'json-viewer-element'\u003c/code\u003e\u003c/pre\u003e\u003ch4 class=\"heading-element\" id=\"umd-cdn\"\u003e\u003cspan\u003eUMD (CDN)\u003c/span\u003e\n \u003ca href=\"#umd-cdn\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript src=\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"基本用法\"\u003e\u003cspan\u003e基本用法\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e手动绑定 value:\u003c/p\u003e"},{"title":"The webfont package for the MMT typeface.","date_published":"2025-04-10T08:35:34Z","date_modified":"2026-01-05T07:25:04Z","id":"https://lruihao.cn/projects/lruihao/mmt-webfont/","url":"https://lruihao.cn/projects/lruihao/mmt-webfont/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cjk","mmt","vue3","webfont"],"summary":"MMT webfont package The webfont package for the MMT typeface.\nDemo MMT typeface online demo\n","content_html":"\u003ch2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased\u003e\u003cspan\u003eMMT webfont package\u003c/span\u003e\n \u003ca href=\"#mmt-webfont-package\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe webfont package for the \u003ca href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e typeface.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT typeface online demo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"API proxies powered by Vercel.","date_published":"2025-04-09T02:13:22Z","date_modified":"2026-03-10T07:05:02Z","id":"https://lruihao.cn/projects/lruihao/vercel-proxy/","url":"https://lruihao.cn/projects/lruihao/vercel-proxy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel API Proxy API proxies powered by Vercel.\n[toc]\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#vercel-api-proxy\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eAPI proxies powered by Vercel.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e[toc]\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"hosts\"\u003e\u003cspan\u003eHosts\u003c/span\u003e\n \u003ca href=\"#hosts\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://api.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://cell-api.vercel.app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"api-list\"\u003e\u003cspan\u003eAPI List\u003c/span\u003e\n \u003ca href=\"#api-list\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eGo to the \u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e and select the API you want to use.\u003c/p\u003e"},{"title":"Generate a list of all hugo-fixit theme components.","date_published":"2025-01-14T09:10:09Z","date_modified":"2026-05-06T03:13:04Z","id":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","url":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["github-actions"],"summary":"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased\u003e\u003cspan\u003eaction-component-list | FixIt\u003c/span\u003e\n \u003ca href=\"#action-component-list--fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"\u003e\u003c/a\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/badge_12862037500024650352.svg' alt=\"CI\"\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"how-to-use\"\u003e\u003cspan\u003eHow to use\u003c/span\u003e\n \u003ca href=\"#how-to-use\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eYou can reference different stable versions of this action. For more\ninformation, see\n\u003ca href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVersioning\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\nin the GitHub Actions toolkit.\u003c/p\u003e"},{"title":"A Hugo theme component with asciinema-embed shortcode.","date_published":"2025-01-08T09:20:48Z","date_modified":"2026-04-20T07:20:15Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["asciinema","hugo","shortcodes","theme-component"],"summary":" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\n要求 适用于所有 Hugo 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eshortcode-asciinema | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个带有 \u003ccode\u003easciinema-embed\u003c/code\u003e shortcode 的 Hugo 主题组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题#CLI | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e适用于所有 Hugo 主题。\u003c/p\u003e"},{"title":"🌐 A component for site automatic translation.","date_published":"2024-12-02T07:29:57Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","i18n","theme-component","translatejs"],"summary":" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\n多语言 Hugo 站点:fixit.lruihao.cn 单语言 Hugo 站点:lruihao.cn 在网站右上角切换配置的翻译语言,或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如:?lang=korean。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eAuto Translate | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个基于 \u003ca href=\"https://github.com/xnx3/translate\"\u003etranslate.js\u003c/a\u003e 实现网站自动翻译的组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e多语言 Hugo 站点:\u003ca href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e单语言 Hugo 站点:\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e在网站右上角切换配置的翻译语言,或者在 URL 中添加 \u003ccode\u003e?lang=\u003c/code\u003e 参数指定任意\u003ca href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e支持的翻译语言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。例如:\u003ccode\u003e?lang=korean\u003c/code\u003e。\u003c/p\u003e"},{"title":"🐟 A canvas implemented animation effect of small fish swimming.","date_published":"2024-11-05T08:23:29Z","date_modified":"2025-12-27T08:05:18Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["canvas","hugo","hugo-fixit","theme-component"],"summary":"Fly Fish 👉 简体中文说明 | English README\n一个 canvas 实现的小鱼游动动画效果。\nDemo https://lruihao.cn\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fly-fish\" data-decreased\u003e\u003cspan\u003eFly Fish\u003c/span\u003e\n \u003ca href=\"#fly-fish\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish README\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e一个 canvas 实现的小鱼游动动画效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。","date_published":"2024-09-13T02:36:29Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/lruihao/html-demo/","url":"https://lruihao.cn/projects/lruihao/html-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["html-css-javascript"],"summary":"HTML demos 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"html-demos\" data-decreased\u003e\u003cspan\u003eHTML demos\u003c/span\u003e\n \u003ca href=\"#html-demos\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"文件预览\"\u003e\u003cspan\u003e文件预览\u003c/span\u003e\n \u003ca href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e直接浏览器打开 \u003ccode\u003esrc\u003c/code\u003e 目录下的 HTML 文件。\u003c/p\u003e"},{"title":"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)","date_published":"2024-09-04T18:10:59Z","date_modified":"2025-12-10T03:29:52Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["auto-changelog","changelog","continuous-integration","conventional-changelog","conventional-commits","hugo-fixit","nodejs","rolldown","semver"],"summary":"FixIt Releaser 中文 | English\n版本控制、变更日志和发布工具。\n小心\n该工具已停止维护!建议使用 auto changelog plus 或者 auto changelog 生成日志。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased\u003e\u003cspan\u003eFixIt Releaser\u003c/span\u003e\n \u003ca href=\"#fixit-releaser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e版本控制、变更日志和发布工具。\u003c/p\u003e\n\u003cdiv class=\"alert alert-caution\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e小心\u003c/p\u003e\u003cp\u003e该工具已停止维护!建议使用 \u003ca href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog plus\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 或者 \u003ca href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 生成日志。\u003c/p\u003e"},{"title":"Hugo theme component for ATOM feed custom Output Format.","date_published":"2024-08-22T03:29:22Z","date_modified":"2025-12-20T06:45:59Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["atom","feed","hugo","theme-component"],"summary":"Hugo ATOM Feed 中文 | English\nHugo 主题组件,用于自定义 ATOM feed 输出格式。\n该组件为您的站点启用 ATOM feeds。\n安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased\u003e\u003cspan\u003eHugo ATOM Feed\u003c/span\u003e\n \u003ca href=\"#hugo-atom-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 ATOM feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 ATOM feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Hugo theme component for JSON feed custom Output Format.","date_published":"2024-08-22T03:28:23Z","date_modified":"2025-12-20T06:44:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","json-feed","theme-component"],"summary":"Hugo JSON Feed 中文 | English\nHugo 主题组件,用于自定义 JSON feed 输出格式。\n该组件为您的站点启用 JSON feeds。\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased\u003e\u003cspan\u003eHugo JSON Feed\u003c/span\u003e\n \u003ca href=\"#hugo-json-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 JSON feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 JSON feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"演示\"\u003e\u003cspan\u003e演示\u003c/span\u003e\n \u003ca href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e主页 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文章 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e列表 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Mobile devtools component powered by vConsole and eruda.","date_published":"2024-08-07T05:49:13Z","date_modified":"2025-07-04T02:38:28Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["eruda","hugo","theme-component","vconsole"],"summary":"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased\u003e\u003cspan\u003ecmpt-mdevtools\u003c/span\u003e\n \u003ca href=\"#cmpt-mdevtools\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eMobile devtools component powered by vConsole and eruda.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 or later.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeruda\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evConsole\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"A Hugo theme component with reward-log or sponsor-log shortcode.","date_published":"2024-07-21T14:02:29Z","date_modified":"2025-11-08T18:49:59Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","reward-log","shortcodes","theme-component"],"summary":"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\nDemo FixIt Docs Lruihao\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased\u003e\u003cspan\u003eshortcode-rewards\u003c/span\u003e\n \u003ca href=\"#shortcode-rewards\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eA Hugo theme component with \u003ccode\u003ereward-log\u003c/code\u003e or \u003ccode\u003esponsor-log\u003c/code\u003e shortcode.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt Docs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eDeveloped based on the FixIt Timeline plugin.\u003c/p\u003e"},{"title":"🔖 Embed bookmark of FixIt Docs.","date_published":"2024-07-14T07:39:56Z","date_modified":"2025-12-27T08:36:41Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-docs-bookmark","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased\u003e\u003cspan\u003efixit-docs-bookmark\u003c/span\u003e\n \u003ca href=\"#fixit-docs-bookmark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e🔖 Embed bookmark of FixIt Docs.\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"A Hugo theme component with caniuse shortcode.","date_published":"2024-06-28T06:56:32Z","date_modified":"2026-05-06T03:02:29Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["caniuse-embed","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\n依赖 FixIt 主题 v0.4.0 及以上版本。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased\u003e\u003cspan\u003eHugo shortcode for CanIUse\u003c/span\u003e\n \u003ca href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Hugo 中使用 \u003ccode\u003eshortcode\u003c/code\u003e 方式内嵌 \u003ca href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCanIUse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 到你的文章中。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"依赖\"\u003e\u003cspan\u003e依赖\u003c/span\u003e\n \u003ca href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eFixIt 主题 \u003ccode\u003ev0.4.0\u003c/code\u003e 及以上版本。\u003c/p\u003e"},{"title":"利用 Vercel 反代 Gravatar 实现镜像加速","date_published":"2024-04-17T12:51:35+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/vercel-gravatar/","url":"https://lruihao.cn/projects/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vercel","Gravatar"],"summary":"在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\n","content_html":"\u003cp\u003e在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\u003c/p\u003e"},{"title":"Gravatar Proxy powered by Vercel.","date_published":"2024-04-17T01:37:06Z","date_modified":"2025-08-18T17:42:18Z","id":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","url":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel Gravatar 注意\nSuperseded by Lruihao/vercel-proxy.\nGravatar Proxy powered by Vercel.\nGo to test Gravatar:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased\u003e\u003cspan\u003eVercel Gravatar\u003c/span\u003e\n \u003ca href=\"#vercel-gravatar\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003eSuperseded by \u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao/vercel-proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/div\u003e\u003cp\u003eGravatar Proxy powered by Vercel.\u003c/p\u003e\n\u003cp\u003eGo to test Gravatar:\u003c/p\u003e"},{"title":"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.","date_published":"2024-04-09T21:38:42Z","date_modified":"2026-05-06T03:02:26Z","id":"https://lruihao.cn/projects/hugo-fixit/component-projects/","url":"https://lruihao.cn/projects/hugo-fixit/component-projects/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","shortcodes","theme-component"],"summary":" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示(layout 或者 shortcodes) 支持根据 README 自动生成博客文章(content adapter) 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法,请选择一种。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eGitHub Projects Embed | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"\u003edeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"\u003eしろうと\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e生态系统 | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao 的开源项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持 GitHub 项目卡片展示(\u003ccode\u003elayout\u003c/code\u003e 或者 \u003ccode\u003eshortcodes\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持根据 README 自动生成博客文章(\u003ccode\u003econtent adapter\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 或更高版本\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与 \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同。有几种安装方法,请选择一种。\u003c/p\u003e"},{"title":"临时决定再写一个小工具 - 网站预览图生成器","date_published":"2024-04-04T13:23:37+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/apple-devices-preview/","url":"https://lruihao.cn/projects/apple-devices-preview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"image":"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp","summary":"开发完 CoverView之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\n","content_html":"\u003cp\u003e开发完 \u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\u003c/p\u003e"},{"title":"用五天时间给自己制作一个封面图生成工具","date_published":"2024-04-02T18:05:34+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/coverview/","url":"https://lruihao.cn/projects/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CoverView","React"],"image":"https://lruihao.cn/projects/coverview/images/cover.webp","summary":" Cool! 苦封面图久矣,今日终有所成。 ","content_html":"\u003cdiv class=\"details admonition success open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-check\" aria-hidden=\"true\"\u003e\u003c/i\u003eCool!\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e苦封面图久矣,今日终有所成。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"🛠 Create awesome cover images for your blog posts quickly.","date_published":"2024-03-28T06:14:16Z","date_modified":"2026-05-06T03:02:25Z","id":"https://lruihao.cn/projects/lruihao/coverview/","url":"https://lruihao.cn/projects/lruihao/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"CoverView 👉 简体中文说明 | English README\n该项目基于原始的 CoverView。\n现在为你的博客创建封面图片变得非常简单。\n💥 变更通知 自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"coverview\" data-decreased\u003e\u003cspan\u003eCoverView\u003c/span\u003e\n \u003ca href=\"#coverview\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"README.en.md\"\u003eEnglish README\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e该项目基于原始的 \u003ca href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e现在为你的博客创建封面图片变得非常简单。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-变更通知\"\u003e\u003cspan\u003e💥 变更通知\u003c/span\u003e\n \u003ca href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\u003c/p\u003e"},{"title":"强大的脑图可视化工具","date_published":"2024-01-21T06:24:42Z","date_modified":"2024-07-07T02:44:14Z","id":"https://lruihao.cn/projects/lruihao/kityminder-core/","url":"https://lruihao.cn/projects/lruihao/kityminder-core/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"KityMinder Core 注意\n由于原项目 KityMinder Core 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 @cell-x/kityminder-core。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"kityminder-core\" data-decreased\u003e\u003cspan\u003eKityMinder Core\u003c/span\u003e\n \u003ca href=\"#kityminder-core\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003e由于原项目 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKityMinder Core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 \u003ca href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e@cell-x/kityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"用 Node.js 开发一个轻量脚手架","date_published":"2023-11-28T10:48:07+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/fixit-cli/","url":"https://lruihao.cn/projects/fixit-cli/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["脚手架","FixIt"],"image":"https://lruihao.cn/projects/fixit-cli/images/featured-image.png","summary":"本文将介绍如何用 Node.js 开发一个轻量脚手架,以 fixit-cli 为例。\n","content_html":"\u003cp\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架,以 \u003ca href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit-cli\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 为例。\u003c/p\u003e"},{"title":"🛠️ A node-based tooling for FixIt site initialization.","date_published":"2023-11-20T06:40:09Z","date_modified":"2026-05-06T03:02:22Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-cli","hugo","hugo-fixit","nodejs","scaffolding-tool"],"summary":"FixIt CLI 👉 中文 | English\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\n系统依赖 Node.js (\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题,你还需要安装 Go。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-cli\" data-decreased\u003e\u003cspan\u003eFixIt CLI\u003c/span\u003e\n \u003ca href=\"#fixit-cli\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🛠️ 一个基于 Node.js 开发的用于 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 站点初始化的脚手架工具。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e (\u0026gt;= 18)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 扩展版\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e如果你使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题,你还需要安装 \u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?","date_published":"2023-09-25T17:49:58+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/el-table-sticky/","url":"https://lruihao.cn/projects/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\n","content_html":"\u003cp\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\u003c/p\u003e"},{"title":"Vue2 and element-ui related demos","date_published":"2023-08-08T01:41:08Z","date_modified":"2026-05-06T03:02:21Z","id":"https://lruihao.cn/projects/lruihao/vue-el-demo/","url":"https://lruihao.cn/projects/lruihao/vue-el-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["element-ui","vue","vue2"],"summary":"vue-el-demo Vue and element-ui related demos.\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased\u003e\u003cspan\u003evue-el-demo\u003c/span\u003e\n \u003ca href=\"#vue-el-demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eVue and element-ui related \u003ca href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"project-setup\"\u003e\u003cspan\u003eProject setup\u003c/span\u003e\n \u003ca href=\"#project-setup\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eyarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis project is built with \u003ca href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRsbuild\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, a fast build tool powered by Rspack.\u003c/p\u003e"},{"title":"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.","date_published":"2023-06-14T14:03:49Z","date_modified":"2026-05-06T03:02:19Z","id":"https://lruihao.cn/projects/lruihao/el-table-sticky/","url":"https://lruihao.cn/projects/lruihao/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["el-table","el-table-sticky","element-ui","v-height-adaptive","v-sticky-footer","v-sticky-h-scroll","v-sticky-header","vue","vue-directive","vue2"],"summary":"el-table-sticky 在线示例\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\n背景 Element UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased\u003e\u003cspan\u003eel-table-sticky\u003c/span\u003e\n \u003ca href=\"#el-table-sticky\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线示例\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"背景\"\u003e\u003cspan\u003e背景\u003c/span\u003e\n \u003ca href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eElement UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\u003c/p\u003e"},{"title":"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.","date_published":"2023-02-28T09:12:29Z","date_modified":"2025-07-02T07:28:07Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","netease-cloud-music","shortcodes","theme-component"],"summary":"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\nDemo https://lruihao.cn/guestbook/\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased\u003e\u003cspan\u003eshortcode-mmt-netease\u003c/span\u003e\n \u003ca href=\"#shortcode-mmt-netease\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"\u003e\u003c/p\u003e\n\u003cp\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn/guestbook/\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件","date_published":"2022-10-10T02:50:53Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","url":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["editor","minder","vue"],"summary":"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased\u003e\u003cspan\u003eVue Minder Editor\u003c/span\u003e\n \u003ca href=\"#vue-minder-editor\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e基于 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ekityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 实现的 Vue2 脑图编辑器组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"install\"\u003e\u003cspan\u003eInstall\u003c/span\u003e\n \u003ca href=\"#install\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install vue-minder-editor-extended --save\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e注册组件:\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.","date_published":"2022-09-30T09:28:41Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Go) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门,请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Go)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题。如果你更熟悉 Git,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门,请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.","date_published":"2022-09-27T15:23:38Z","date_modified":"2026-05-06T02:33:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Git) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Git)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 子模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能来加载主题。如果你更熟悉 Go,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"Using frequently-used Hugo commands by shell.","date_published":"2022-09-04T04:18:42Z","date_modified":"2025-09-12T09:38:50Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo"],"summary":"Hugo Shell Using frequently-used Hugo commands by shell.\nDownload Add a submodule for your Hugo blog project.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shell\" data-decreased\u003e\u003cspan\u003eHugo Shell\u003c/span\u003e\n \u003ca href=\"#hugo-shell\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eUsing frequently-used Hugo commands by shell.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"download\"\u003e\u003cspan\u003eDownload\u003c/span\u003e\n \u003ca href=\"#download\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eAdd a submodule for your Hugo blog project.\u003c/p\u003e"},{"title":"📄 The open-source repo for fixit.lruihao.cn","date_published":"2022-07-23T12:17:06Z","date_modified":"2026-05-06T14:32:49Z","id":"https://lruihao.cn/projects/hugo-fixit/docs/","url":"https://lruihao.cn/projects/hugo-fixit/docs/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["documentation","hugo","hugo-blog","hugo-fixit"],"summary":"FixIt 主题文档 👉 中文 | English\nFixIt 主题文档主要分为:文档、教程 两大板块,欢迎大家发起 PR 完善主题文档。\n系统依赖 Node.js: \u0026gt;= 20.0.0 Go Hugo: \u0026gt;= 0.156.0 (extended version) 贡献文档 首先,点击 fork 按钮 fork 本仓库。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased\u003e\u003cspan\u003eFixIt 主题文档\u003c/span\u003e\n \u003ca href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题文档主要分为:\u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 两大板块,欢迎大家发起 PR 完善主题文档。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 20.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 0.156.0 (extended version)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"贡献文档\"\u003e\u003cspan\u003e贡献文档\u003c/span\u003e\n \u003ca href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先,点击 fork 按钮 fork 本仓库。\u003c/p\u003e"},{"title":"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题","date_published":"2021-12-16T03:35:27Z","date_modified":"2026-05-06T03:08:15Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit/","url":"https://lruihao.cn/projects/hugo-fixit/fixit/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["algolia","blog","giscus","hugo","hugo-blog","hugo-blog-theme","hugo-fixit","hugo-theme","pwa","pwa-app"],"summary":" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\n如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢! English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题,KeepIt 主题和 LeaveIt 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e\n FixIt 是一个简洁、优雅且高效的 \u003ca href=\"https://gohugo.io/\"\u003eHugo\u003c/a\u003e 博客主题。\u003cbr\u003e\n \u003cem\u003e\u003csub\u003e如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!\u003c/sub\u003e\u003c/em\u003e\n \u003c/p\u003e\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"\u003eEnglish\u003c/a\u003e |\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"\u003e\u003cimg align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200\u0026v=4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"fixit\" data-decreased\u003e\u003cspan\u003eFixIt\u003c/span\u003e\n \u003ca href=\"#fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e它的原型基于 \u003ca href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLoveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题,\u003ca href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKeepIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题和 \u003ca href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeaveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题。\u003c/p\u003e"},{"title":"Lruihao's Note","date_published":"2021-09-08T12:52:53Z","date_modified":"2026-05-06T03:02:13Z","id":"https://lruihao.cn/projects/lruihao/hugo-blog/","url":"https://lruihao.cn/projects/lruihao/hugo-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","front-end","hugo","hugo-blog","hugo-fixit","hugo-site"],"summary":"菠菜眾長 站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\nContent 博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e菠菜眾長\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"content\"\u003e\u003cspan\u003eContent\u003c/span\u003e\n \u003ca href=\"#content\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\u003c/p\u003e"},{"title":"Create watermark for webpage and automatic adjust when window resize.","date_published":"2021-05-24T13:05:40Z","date_modified":"2026-05-06T03:02:12Z","id":"https://lruihao.cn/projects/lruihao/watermark/","url":"https://lruihao.cn/projects/lruihao/watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cell-watermark","watermark"],"summary":"Watermark Create watermark for webpage and automatic adjust when windows resize.\nDocumentation Usage Browser Clone source\n","content_html":"\u003ch2 class=\"heading-element\" id=\"watermark\" data-decreased\u003e\u003cspan\u003eWatermark\u003c/span\u003e\n \u003ca href=\"#watermark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eCreate watermark for webpage and automatic adjust when windows resize.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"documentation\"\u003e\u003cspan\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDocumentation\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#documentation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"browser\"\u003e\u003cspan\u003eBrowser\u003c/span\u003e\n \u003ca href=\"#browser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eClone source\u003c/p\u003e"},{"title":"Cell Watermark","date_published":"2021-05-23T17:15:41+08:00","date_modified":"2024-12-12T14:56:25+08:00","id":"https://lruihao.cn/projects/cell-watermark/","url":"https://lruihao.cn/projects/cell-watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["watermark","JavaScript"],"summary":"Create watermark for webpage and automatic adjust when window resize.","content_html":"Create watermark for webpage and automatic adjust when window resize."},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-03-02T21:46:40+08:00","date_modified":"2021-03-02T21:46:40+08:00","id":"https://lruihao.cn/projects/bill-note/","url":"https://lruihao.cn/projects/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","Vue2","leancloud"],"summary":"9 起因 起因 事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\n自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (AB, AC, BC, ABC)。好麻煩啊!!!\n","content_html":"\u003ch2 class=\"heading-element\" id=\"起因\"\u003e\u003cspan\u003e9 起因\u003c/span\u003e\n \u003ca href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e起因\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\u003c/p\u003e\n\u003cp\u003e自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\u003cbr\u003e\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (\u003ccode\u003eAB, AC, BC, ABC\u003c/code\u003e)。好麻煩啊!!!\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-02-28T03:44:09Z","date_modified":"2025-01-16T02:53:15Z","id":"https://lruihao.cn/projects/lruihao/bill-note/","url":"https://lruihao.cn/projects/lruihao/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["vue"],"summary":"Preparation 去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"preparation\" data-decreased\u003e\u003cspan\u003ePreparation\u003c/span\u003e\n \u003ca href=\"#preparation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\u003c/p\u003e\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003ename\u003c/th\u003e\n \u003cth\u003etype\u003c/th\u003e\n \u003cth\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003epay\u003c/td\u003e\n \u003ctd\u003eNumber\u003c/td\u003e\n \u003ctd\u003e消费金额\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_description\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费描述\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_type\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费类型\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_user\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e付款人\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 class=\"heading-element\" id=\"init\" data-decreased\u003e\u003cspan\u003eInit\u003c/span\u003e\n \u003ca href=\"#init\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eset for yourself.\u003c/p\u003e"},{"title":"cell-blog 功能介绍与安装","date_published":"2020-07-25T20:51:11+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/cell-blog/","url":"https://lruihao.cn/projects/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","Laravel","Markdown"],"image":"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png","summary":" 基于 Laravel7 开发,Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品,目前已開源。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e基于 Laravel7 开发,Markdown 语法的个人独立博客。\u003ca href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, 也是我的毕业设计作品,目前已開源。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"基于 Laravel 7 开发,支持 Markdown 语法的博客","date_published":"2020-04-17T08:33:39Z","date_modified":"2025-04-12T07:30:24Z","id":"https://lruihao.cn/projects/lruihao/cell-blog/","url":"https://lruihao.cn/projects/lruihao/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","laravel","laravel-blog"],"summary":"Cell Blog 基于Laravel7开发,Markdown语法的个人独立博客。\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布,评论开关,排序) 自定义导航(显示开关,排序) 自定义页面(发布开关) 友情链接(显示开关,排序) COS桶相册 丰富的博客配置(方便扩展,支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 ","content_html":"\u003ch1 align=\"center\" \u003eCell Blog\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于Laravel7开发,Markdown语法的个人独立博客。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能\"\u003e\u003cspan\u003e功能\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持Markdown,文章实时预览效果\u003c/li\u003e\n\u003cli\u003e支持多种编程语言代码高亮\u003c/li\u003e\n\u003cli\u003e编辑器图片上传\u003c/li\u003e\n\u003cli\u003e后台上传文件管理\u003c/li\u003e\n\u003cli\u003e文章搜索\u003c/li\u003e\n\u003cli\u003e文章分类\u003c/li\u003e\n\u003cli\u003e文章标签\u003c/li\u003e\n\u003cli\u003e热门文章\u003c/li\u003e\n\u003cli\u003e随机格言\u003c/li\u003e\n\u003cli\u003e文章管理(发布,评论开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义导航(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义页面(发布开关)\u003c/li\u003e\n\u003cli\u003e友情链接(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCOS桶相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e丰富的博客配置(方便扩展,支持自定义JS脚本)\u003c/li\u003e\n\u003cli\u003e不蒜子计数\u003c/li\u003e\n\u003cli\u003eLeancloud计数\u003c/li\u003e\n\u003cli\u003eValine评论插件\u003c/li\u003e\n\u003cli\u003e文章分享插件\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"截图\"\u003e\u003cspan\u003e截图\u003c/span\u003e\n \u003ca href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"\u003e\u003c/p\u003e"},{"title":"利用腾讯云为静态页面添加“动态”相册","date_published":"2019-11-24T10:52:34+08:00","date_modified":"2019-11-24T10:52:34+08:00","id":"https://lruihao.cn/projects/cos-album/","url":"https://lruihao.cn/projects/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CosAlbum","腾讯云 cos 桶","JavaScript"],"image":"/projects/cos-album/images/view.png","summary":" 信息 cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\n功能虽好,但是还是先友情提示!\n开放 API 是一个很危险的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧! ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003ecos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\u003cbr\u003e\n\u003cstrong\u003e\u003cspan style=\"color: #428bca;\"\u003e功能虽好,但是还是先友情提示!\u003c/span\u003e\u003c/strong\u003e\u003cbr\u003e\n开放 API 是一个\u003cstrong\u003e很危险\u003c/strong\u003e的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面","date_published":"2019-11-23T12:59:05Z","date_modified":"2023-02-16T04:56:55Z","id":"https://lruihao.cn/projects/lruihao/cos-album/","url":"https://lruihao.cn/projects/lruihao/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cos-album","cos-bucket"],"summary":"cos-album demo\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \u0026lsquo;body\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cos-album\" data-decreased\u003e\u003cspan\u003ecos-album\u003c/span\u003e\n \u003ca href=\"#cos-album\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"step1\"\u003e\u003cspan\u003eStep1\u003c/span\u003e\n \u003ca href=\"#step1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.min.css?v=1.1.6\"\u003e\n\u003cscript type=\"text/javascript\" src=\"cos-album.min.js?v=1.1.6\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"step2\"\u003e\u003cspan\u003eStep2\u003c/span\u003e\n \u003ca href=\"#step2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript type=\"text/javascript\"\u003e\n new Cosalbum({\n 'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n 'prependTo': '.cos-album',\n 'viewNum': 8,\n 'copyUrl': '//img.lruihao.cn'\n });\n\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"params\"\u003e\u003cspan\u003eParams\u003c/span\u003e\n \u003ca href=\"#params\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth style=\"text-align: left\"\u003eparam\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003etype\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edefault\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003exmlLink\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e需要解析的騰訊云COS桶XML鏈接\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eprependTo\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u0026lsquo;body\u0026rsquo;\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e可選解析相冊到某個節點\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eviewNum\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eNumber\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e4\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e每個相冊顯示的照片數目\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003ecopyUrl\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003ehref\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eimgType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e图片類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003evideoType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e視頻類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cstrong\u003e详细说明\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"沐目之,湘也。— 沐目体","date_published":"2019-09-26T12:44:17Z","date_modified":"2025-08-06T09:23:14Z","id":"https://lruihao.cn/projects/lruihao/mmt/","url":"https://lruihao.cn/projects/lruihao/mmt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["font","mmt"],"summary":" 关于沐目体\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Elegant and powerful theme for Hexo.","date_published":"2019-01-31T09:57:45Z","date_modified":"2023-12-21T02:39:42Z","id":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","url":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"hexo-theme-next 如无必要,不再更新!(2019.09.13)\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\n以下仍为当前博客使用主题,lib资源已打包github。\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; https://theme-next.org 记录一下折腾过程,修改内容以博採眾長为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\n","content_html":"\u003ch1 align=center\u003ehexo-theme-next\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e如无必要,不再更新!(2019.09.13)\u003c/strong\u003e\u003cbr\u003e\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将\u003cstrong\u003e放弃对next的主题的自定义修改\u003c/strong\u003e,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\u003cbr\u003e\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\u003cbr\u003e\n以下仍为当前博客使用主题,lib资源已打包github。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于\u003ca href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next 6.0+\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; \u003ca href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://theme-next.org\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e \u003cbr\u003e\n记录一下折腾过程,修改内容以\u003ca href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见\u003ca href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo分类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\n\u003cstrong\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"沐目体","date_published":"2018-10-12T19:39:19+08:00","date_modified":"2018-10-12T19:39:19+08:00","id":"https://lruihao.cn/projects/font-mmt/","url":"https://lruihao.cn/projects/font-mmt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["沐目体"],"summary":" ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ciframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\u0026a=fontshowPics\u0026u=qbfRl8gPF2s-\u0026z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e"},{"title":"博客构建档(HTML \u0026 Markdown)","date_published":"2018-05-28T12:24:11Z","date_modified":"2026-05-07T02:00:50Z","id":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","url":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["acm","backend","blog","frontend","hexo","hexo-theme-next","hugo","hugo-fixit","java","javascript","php","python","study-notes","summary","web-development"],"summary":"菠菜眾長 Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\n共计 297 篇文章 by Lruihao.\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer:构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊!CSS 竟然能获取视口尺寸? 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全? 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案:CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影? 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基:从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片? 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写? 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar? 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁? 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度(Cognitive Complexity) 09-26 写作技巧:如何搭建文章的框架结构? 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定? 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段,自定义用户代码片段 09-02 CSS 如何实现网格背景效果? 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向:Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制(SemVer) 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\u0026rsquo;s Note 06-22 less\u0026amp;sass\u0026amp;scss 06-21 Lightbox 06-21 2020\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做?新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟? 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发,支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度,神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之,湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则,代码规范 07-19 简单评论模块\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数(二进制算法) 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战:模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json? 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密(字节流) 05-01 模拟借书系统(java 异常练习) 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本) 04-24 第一次面试经历 04-22 python 爬取网站图片(图片链接相似) 04-20 python 玩微信:初探 wxpy 04-20 基本 python 实现的爬取微信好友头像,并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\u0026rsquo; Trade(贪心) 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡(枚举法) 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏(Math 类) 01-15 面向对象基础知识总结 01-14 java 水仙花数(循环) 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\u0026ndash;形式倒装 12-10 英语语法\u0026ndash;完全倒装 12-08 英语语法\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人,都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计(2018) 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列(组合数学) 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi(组合数学) 08-10 The equation-SGU106(扩展欧几里得) 08-09 Leading and Trailing-lightoj1282(快速幂 + 对数运算) 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树) 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边) 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182(带权并查集经典模板) 08-01 小希的迷宫-HDU-1272(并查集 or 树性质) 08-01 How Many Answers Are Wrong-hdu3038(带权并查集) 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213(并查集求连通域数目) 07-31 The-suspects-POJ-1611(并查集) 07-31 wireless network-POJ-2236(并查集) 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232(并查集经典模板) 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐(bfs 模拟倒水 or 数论) 07-23 hdu-2612-Find a way(双 bfs) 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master(三维 bfs 最短路) 07-22 poj-1321 棋盘问题(dfs) 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径) 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片,音乐,链接,视频 05-31 猴子与哪吒 05-28 博客构建档(HTML \u0026amp; Markdown) 05-28 Hello World ","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e菠菜眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eHugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e共计 297 篇文章 by \u003ca href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"2026\"\u003e\u003cspan\u003e2026\u003c/span\u003e\n \u003ca href=\"#2026\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails open\u003e\n\u003csummary\u003e共计 1 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e03-06 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e一个轻量化 Tooltip 组件。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2025\"\u003e\u003cspan\u003e2025\u003c/span\u003e\n \u003ca href=\"#2025\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 14 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-24 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Christmas Easter Egg by JavaScript.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommand line tool for generating a changelog from git tags and commit history\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-16 \u003ca href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e让 Mermaid 图表自动跟随系统深浅色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-05 \u003ca href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e黑盒出关・三把钥匙定江湖\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Playground\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom element for viewing and interacting with JSON data.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS @layer:构建更高效、更可维护的样式层级\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-11 \u003ca href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue.js History 模式下的 NGINX 配置与 API 代理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe webfont package for the MMT typeface.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAPI proxies powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-20 \u003ca href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS Flexbox 布局指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGenerate a list of all hugo-fixit theme components.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-08 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with asciinema-embed shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2024\"\u003e\u003cspan\u003e2024\u003c/span\u003e\n \u003ca href=\"#2024\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 38 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-06 \u003ca href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e震惊!CSS 竟然能获取视口尺寸?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-02 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌐 A component for site automatic translation.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-22 \u003ca href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAmazon 如何让服务器享受着持续集群安全?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-05 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐟 A canvas implemented animation effect of small fish swimming.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-06 \u003ca href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自动获取 GitHub README 内容添加到 Hugo 文章\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-13 \u003ca href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for ATOM feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for JSON feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMobile devtools component powered by vConsole and eruda.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案:CSS 四舍五入数值单位\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-21 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-17 \u003ca href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 统计代码量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案之异形元素怎么设置阴影?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔖 Embed bookmark of FixIt Docs.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 实现时间轴、背景图 loading 和渐变边框\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-07 \u003ca href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 Amazon S3 的无限存储潜力\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e标准滚动条控制规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with caniuse shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-13 \u003ca href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-09 \u003ca href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e架构之基:从根儿上了解设计原则\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-06 \u003ca href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e怎么生成暗黑模式和明亮模式的 SVG 图片?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-20 \u003ca href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e坐高铁去柳州吃螺狮粉\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用 Vercel 反代 Gravatar 实现镜像加速\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGravatar Proxy powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-04 \u003ca href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e临时决定再写一个小工具 - 网站预览图生成器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-02 \u003ca href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用五天时间给自己制作一个封面图生成工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠 Create awesome cover images for your blog posts quickly.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写文档时英文标题什么时候要大写?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-29 \u003ca href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e实现类似于 Element UI 表格的溢出文本提示功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-21 \u003ca href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-09 \u003ca href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2023 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-21 \u003ca href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e强大的脑图可视化工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e记一次 Debug 第三方包的过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e为什么很多教程中都有 foo bar?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit submodule: already exists in the index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-10 \u003ca href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给 el-card 添加折叠功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2023\"\u003e\u003cspan\u003e2023\u003c/span\u003e\n \u003ca href=\"#2023\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 35 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e尝试在 Python 中使用 Amazon Titan 文本模型\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-28 \u003ca href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 Node.js 开发一个轻量脚手架\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-20 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠️ A node-based tooling for FixIt site initialization.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-18 \u003ca href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 AWS 云上一站式解决方案免费使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-22 \u003ca href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSSH 提交签名验证\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何给 npm 包打补丁?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘系列总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件开发\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 模板使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件配置文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 布局模板文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 功能需求分析\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-11 \u003ca href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给你的 Markdown 挑挑刺\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e认知复杂度(Cognitive Complexity)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写作技巧:如何搭建文章的框架结构?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-25 \u003ca href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-17 \u003ca href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e封装 Vue FullScreenToggler 组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 实现全屏和退出全屏\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文翻译的常见问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Vue 项目中更优雅地使用 icon\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVSCode 添加用户代码片段,自定义用户代码片段\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-02 \u003ca href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 如何实现网格背景效果?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-26 \u003ca href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e将 Hugo 博客部署到亚马逊云服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 and element-ui related demos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-20 \u003ca href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用魔法打败魔法 - ElBacktop Fix\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Node.js 自动创建 Vue 的路由\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-12 \u003ca href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解决 SourceTree 提交时候 husky 命令失败问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 + tailwindcss 初始化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-14 \u003ca href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新手向:Vue 2.0 的建议学习顺序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-12 \u003ca href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-05 \u003ca href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器渲染原理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-04 \u003ca href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文技术文档的写作规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器原理 - 事件循环\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2022\"\u003e\u003cspan\u003e2022\u003c/span\u003e\n \u003ca href=\"#2022\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 20 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-17 \u003ca href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2022 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-15 \u003ca href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-30 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eUsing frequently-used Hugo commands by shell.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBeego 安装及配置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-13 \u003ca href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e语义版本控制(SemVer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommit Message Spec\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eelectron 踩坑总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端页面内容加密总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js + GitHub Actions 自动刷新 CDN\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不同系统的换行符的差异\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自定义 ohmyzsh 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-30 \u003ca href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 文件权限\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 上的开发配置总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e📄 The open-source repo for fixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-05 \u003ca href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 配置 ADB\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e重新认识 JavaScript\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-30 \u003ca href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于 CSS 和 Scss 变量运算那些事\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2021\"\u003e\u003cspan\u003e2021\u003c/span\u003e\n \u003ca href=\"#2021\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 19 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGetting Things Done for ios App Reminders and Github issues\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-16 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 添加知乎卡片式链接 Shortcodes\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo I18n 添加中文繁體翻譯\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 友情連結模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 本地管理 Shell 腳本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-03 \u003ca href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e个人博客从 Hexo 迁移至 Hugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Note\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-22 \u003ca href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eless\u0026amp;sass\u0026amp;scss\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLightbox\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2020\u0026amp;2021 總結\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-24 \u003ca href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCreate watermark for webpage and automatic adjust when window resize.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-23 \u003ca href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Watermark\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Review 怎麼做?新手工程師如何提升「程式碼品質」\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-02 \u003ca href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-01 \u003ca href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e你为什么吸烟?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2020\"\u003e\u003cspan\u003e2020\u003c/span\u003e\n \u003ca href=\"#2020\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 8 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 功能介绍与安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 开发记录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 Laravel 7 开发,支持 Markdown 语法的博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Python 刷 csdn 访问量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCron 表达式的基本语法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2019 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSQL 总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2019\"\u003e\u003cspan\u003e2019\u003c/span\u003e\n \u003ca href=\"#2019\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 71 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云为静态页面添加“动态”相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-23 \u003ca href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-14 \u003ca href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRESTful\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 同时主动推送链接到百度,神马等站长平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 按行读取文件信息\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目之,湘也。— 沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-19 \u003ca href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e设置网站运行时间\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003escript 的三种加载方式 (async, defer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime Text3 快捷键大全\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNetBeans IDE 开发设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWeb 开发规则,代码规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单评论模块\u0026ndash;php 表单练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 函数学习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-12 \u003ca href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWAMPServer 自定义网站根目录等设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅱ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅰ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-26 \u003ca href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e判断三角形的黑盒测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHustOJ 基础搭建教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最大公约数(二进制算法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-16 \u003ca href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装 ImgURL 图床\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-11 \u003ca href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实战:模拟 post 请求定时获取后台数据并打包发送至微信\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-10 \u003ca href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 设置程序每天 8 点定时执行任务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-08 \u003ca href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 实现一个单线程的资源下载器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePython 如何操作 Json?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 发送 post 请求进行简单的接口测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-06 \u003ca href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 通过 URL 和 URLConnection 访问网页资源\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-02 \u003ca href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文件加密解密(字节流)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模拟借书系统(java 异常练习)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-27 \u003ca href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-24 \u003ca href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e第一次面试经历\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-22 \u003ca href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 爬取网站图片(图片链接相似)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 玩微信:初探 wxpy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基本 python 实现的爬取微信好友头像,并拼接成大图\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-19 \u003ca href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用记事本编写第一个 java 程序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-18 \u003ca href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 正则表达式练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-14 \u003ca href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 常用类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-12 \u003ca href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU 1009 FatMouse\u0026rsquo; Trade(贪心)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-03 \u003ca href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e本地搭建网站服务器并穿透内网\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端面试题 - HTML+CSS\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e百钱百鸡(枚举法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e大数乘法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evps 配置 ssl 及 https 重定向\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next @modified LRH\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJava 父类子类的对象初始化过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eubuntu + windows 双系统默认启动项设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-19 \u003ca href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宅音乐播放器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eweb 汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-16 \u003ca href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 泛型 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeclipse 的基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e匿名类在可视化界面中的应用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模仿知乎卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewin10,ubuntu 双系统时间不一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-08 \u003ca href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eQQ 强制生成卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e磁盘存储器的管理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 验证码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-01 \u003ca href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e还乡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-31 \u003ca href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElegant and powerful theme for Hexo.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-24 \u003ca href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 继承 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-22 \u003ca href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-18 \u003ca href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eArrays 类及基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在搜索、文章底部、侧栏添加最近文章模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 猜数字小游戏(Math 类)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e面向对象基础知识总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 水仙花数(循环)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 录入数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 标识符\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;主谓一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2018 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2018\"\u003e\u003cspan\u003e2018\u003c/span\u003e\n \u003ca href=\"#2018\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 91 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;形式倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;完全倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-08 \u003ca href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;部分倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 插件及 next 内置样式集\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-17 \u003ca href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e通过 bat 批处理文件自动提交博客代码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-12 \u003ca href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長 app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-11 \u003ca href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaddy-两步搭建超简单云盘\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-09 \u003ca href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003enext 添加支持 pdf\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejs 判断用户设备类型及平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客源码备份\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-30 \u003ca href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 常用指令汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网站备案之旅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eshell 脚本初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e云服务器 CentOS 系统搭建 web 服务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-28 \u003ca href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewindows 上搭建 web 服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Git 上传代码到 github, coding 等仓库\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-23 \u003ca href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003etermux 基本使用教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-17 \u003ca href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ettf 字体压缩\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-15 \u003ca href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 编程初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-09 \u003ca href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e流水线\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e计算机数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页夜间效果\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页离开时改变标题“崩溃欺骗”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-22 \u003ca href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux/centos 下的安装 git\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-21 \u003ca href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e每一个优秀的人,都有一段沉默的时光\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVim 速查表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo next 主题添加字数统计(2018)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-21 \u003ca href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo d 出错\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-20 \u003ca href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 个性化 - next 主题动态显示 subtitle\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e“高逼格”C 语言画心\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-14 \u003ca href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit index.lock\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-11 \u003ca href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Android 上搭建 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e石子阵列(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and Stairs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and WiFi(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe equation-SGU106(扩展欧几里得)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeading and Trailing-lightoj1282(快速幂 + 对数运算)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCodeforces Round 502(Div.1 + Div.2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e欧拉函数\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-06 \u003ca href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客自定义 console log\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最短路入门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客暑假多校第五场\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e食物链-poj1182(带权并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e小希的迷宫-HDU-1272(并查集 or 树性质)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHow Many Answers Are Wrong-hdu3038(带权并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Finding Criminals-Codeforces680B\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Five Cards-Codeforces680A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehow many tables-HDU-1213(并查集求连通域数目)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe-suspects-POJ-1611(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewireless network-POJ-2236(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePiles-with-stones\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e畅通工程-HDU-1232(并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-27 \u003ca href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客练习赛 23\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-26 \u003ca href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线离线算法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-24 \u003ca href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU-1495-非常可乐(bfs 模拟倒水 or 数论)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-2612-Find a way(双 bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePOJ-3278-Catch That Cow(bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-2251-Dungeon Master(三维 bfs 最短路)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1321 棋盘问题(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1426-Find The Multiple(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAdjacent Replacements\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-3984-迷宫问题 (bfs 路径)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 20-染色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e杨辉三角\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-1241-Oil Deposits (dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBFS 求最短路\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEducational Codeforces Round 47 (Rated for Div. 2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e深搜广搜\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTaoTao 要吃鸡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-18 \u003ca href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 18-序列\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-16 \u003ca href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单背包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-15 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛参赛队员代表发言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eF.sorting\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eK.2018\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eB.Higher h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA.Easy h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esort 排序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e位运算\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eC++ with STL\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-07 \u003ca href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e各种 Links 汇总与分享\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e戏子春秋\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-01 \u003ca href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo+github 搭建个人博客及美化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 添加图片,音乐,链接,视频\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e猴子与哪吒\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博客构建档(HTML \u0026amp; Markdown)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHello World\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e"}]} ================================================ FILE: collections/project/index.html ================================================ 开源项目 - 合集 | 菠菜眾長
================================================ FILE: collections/project/index.xml ================================================ 开源项目 - 合集 | 菠菜眾長https://lruihao.cn/collections/project/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Thu, 07 May 2026 02:00:50 +0000一个轻量化 Tooltip 组件。https://lruihao.cn/projects/lruihao/cell-tooltip/Fri, 06 Mar 2026 06:58:23 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cell-tooltip/GitHub<h2 class="heading-element" id="cell-tooltip" data-decreased><span>cell-tooltip</span> <a href="#cell-tooltip" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap <code>tooltip.js</code>,保留常用能力并尽量减少体积与依赖。</p> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持触发方式:<code>hover</code> / <code>focus</code> / <code>click</code> / <code>manual</code></li> <li>支持位置:<code>top</code> / <code>bottom</code> / <code>left</code> / <code>right</code> / <code>auto</code></li> <li>支持延迟配置(<code>show</code> / <code>hide</code>)</li> <li>支持 <code>data-ct-*</code> 属性初始化</li> <li>支持实例方法:<code>show</code> / <code>hide</code> / <code>toggle</code> / <code>update</code> / <code>dispose</code></li> <li>内置箭头与基础样式,无第三方依赖</li> </ul> <h2 class="heading-element" id="本地运行"><span>本地运行</span> <a href="#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>pnpm install pnpm dev</code></pre><p>构建库产物:</p>A Christmas Easter Egg by JavaScript.https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/Wed, 24 Dec 2025 03:31:47 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">🎄 Santa Hat | FixIt</h1> <div align="center" class="ignore"> <p>一个 JavaScript 实现的圣诞节小彩蛋。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt="santa-hat"></p> <ul> <li>🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰</li> <li>🎯 自动检测当前日期,无需手动开关</li> <li>💫 轻量级实现,不影响网站性能</li> </ul> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>FixIt v0.4.0 或更高版本。</li> </ul> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方式与 <a href="https://fixit.lruihao.cn/zh-cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。</p>Command line tool for generating a changelog from git tags and commit historyhttps://lruihao.cn/projects/lruihao/auto-changelog-plus/Sat, 30 Aug 2025 15:40:19 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/auto-changelog-plus/GitHub<h2 class="heading-element" id="auto-changelog-plus" data-decreased><span>auto-changelog-plus</span> <a href="#auto-changelog-plus" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>从 git 提交历史自动生成 changelog 的命令行工具。</p> <blockquote> <p>基于 <a href="https://github.com/CookPete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto-changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 <a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="external nofollow noopener noreferrer">约定式提交<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 规范。</p> </blockquote> <p><a href="https://www.npmjs.com/package/auto-changelog-plus" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt="npm version"></a></p> <h2 class="heading-element" id="-安装"><span>📦 安装</span> <a href="#-%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>npm install -g auto-changelog-plus</code></pre><h2 class="heading-element" id="-用法"><span>🚀 用法</span> <a href="#-%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 git 仓库根目录运行 <code>auto-changelog-plus</code> 或者 <code>acp</code>。工具会在后台运行 <code>git log</code> 来解析提交历史。</p>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.https://lruihao.cn/projects/lruihao/caniuse-embed-element/Tue, 22 Jul 2025 03:40:45 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/caniuse-embed-element/GitHub<h2 class="heading-element" id="caniuse-embed-元素" data-decreased><span><code>&lt;caniuse-embed&gt;</code> 元素</span> <a href="#caniuse-embed-%e5%85%83%e7%b4%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/@cell-x/caniuse-embed-element" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt="npm version"></a> <a href="https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt="License"></a></p> <p><a href="https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> | 简体中文</p> <p>一个轻量级、可定制的 Web 组件,用于嵌入 <a href="https://caniuse.com" target="_blank" rel="external nofollow noopener noreferrer">caniuse.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的特定 Web 功能的浏览器兼容性数据。使用 <a href="https://lit.dev/" target="_blank" rel="external nofollow noopener noreferrer">Lit<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 构建,设计为可无缝集成到任何 Web 项目中。</p> <p><a href="https://caniuse-el.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">🌟 <strong>在线演示</strong><i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>A custom element for viewing and interacting with JSON data.https://lruihao.cn/projects/lruihao/json-viewer-element/Sat, 19 Jul 2025 07:05:07 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/json-viewer-element/GitHub<h2 class="heading-element" id="json-viewer-element" data-decreased><span>&lt;json-viewer&gt; Element</span> <a href="#json-viewer-element" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>简体中文 | <a href="https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件</p> </blockquote> <h2 class="heading-element" id="功能特性"><span>功能特性</span> <a href="#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>🌟 <strong>Web 组件</strong>:原生,无框架依赖</li> <li>🎨 <strong>主题</strong>:支持明暗模式</li> <li>📦 <strong>盒装</strong>:可选边框与内边距</li> <li>📋 <strong>可复制</strong>:一键复制 JSON</li> <li>🔑 <strong>排序</strong>:支持键排序</li> <li>🔍 <strong>展开深度</strong>:可控初始展开层级</li> <li>🧩 <strong>自定义复制按钮</strong>:slot 插槽支持</li> <li>🧬 <strong>类型高亮</strong>:多种类型高亮</li> <li>🛠️ <strong>自定义事件</strong>:支持 copy/toggle 事件监听</li> </ul> <h2 class="heading-element" id="使用方法"><span>使用方法</span> <a href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="安装"><span>安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>npm install json-viewer-element</code></pre><h3 class="heading-element" id="引入"><span>引入</span> <a href="#%e5%bc%95%e5%85%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="作为模块"><span>作为模块</span> <a href="#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>import &#39;json-viewer-element&#39;</code></pre><h4 class="heading-element" id="umd-cdn"><span>UMD (CDN)</span> <a href="#umd-cdn" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>&lt;script src=&#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&#34;&gt;&lt;/script&gt;</code></pre><h3 class="heading-element" id="基本用法"><span>基本用法</span> <a href="#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>手动绑定 value:</p>The webfont package for the MMT typeface.https://lruihao.cn/projects/lruihao/mmt-webfont/Thu, 10 Apr 2025 08:35:34 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/mmt-webfont/GitHub<h2 class="heading-element" id="mmt-webfont-package" data-decreased><span>MMT webfont package</span> <a href="#mmt-webfont-package" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The webfont package for the <a href="https://github.com/Lruihao/mmt" target="_blank" rel="external nofollow noopener noreferrer">MMT<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> typeface.</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.github.io/mmt-webfont/" target="_blank" rel="external nofollow noopener noreferrer">MMT typeface online demo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>API proxies powered by Vercel.https://lruihao.cn/projects/lruihao/vercel-proxy/Wed, 09 Apr 2025 02:13:22 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vercel-proxy/GitHub<h2 class="heading-element" id="vercel-api-proxy" data-decreased><span><a href="https://github.com/Lruihao/vercel-proxy" target="_blank" rel="external nofollow noopener noreferrer">Vercel API Proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#vercel-api-proxy" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>API proxies powered by Vercel.</p> </blockquote> <p>[toc]</p> <h2 class="heading-element" id="hosts"><span>Hosts</span> <a href="#hosts" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://api.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">https://api.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://cell-api.vercel.app" target="_blank" rel="external nofollow noopener noreferrer">https://cell-api.vercel.app<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="api-list"><span>API List</span> <a href="#api-list" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Go to the <a href="https://cell-api.vercel.app" target="_blank" rel="external nofollow noopener noreferrer">Vercel API Proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> and select the API you want to use.</p>Generate a list of all hugo-fixit theme components.https://lruihao.cn/projects/hugo-fixit/action-component-list/Tue, 14 Jan 2025 09:10:09 +0000https://lruihao.cn/projects/hugo-fixit/action-component-list/GitHub<h2 class="heading-element" id="action-component-list--fixit" data-decreased><span>action-component-list | FixIt</span> <a href="#action-component-list--fixit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://github.com/super-linter/super-linter" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_14033786788092036044.svg' alt="GitHub Super-Linter"></a> <img loading="lazy" src='https://lruihao.cn/images/remote/badge_12862037500024650352.svg' alt="CI"> <a href="https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_17453161718063467893.svg' alt="Check dist/"></a> <a href="https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_9366593515159455299.svg' alt="CodeQL"></a></p> <p>This is a GitHub Action to generate a list of all hugo-fixit theme components.</p> <h2 class="heading-element" id="how-to-use"><span>How to use</span> <a href="#how-to-use" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>You can reference different stable versions of this action. For more information, see <a href="https://github.com/actions/toolkit/blob/master/docs/action-versioning.md" target="_blank" rel="external nofollow noopener noreferrer">Versioning<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> in the GitHub Actions toolkit.</p>A Hugo theme component with asciinema-embed shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/Wed, 08 Jan 2025 09:20:48 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">shortcode-asciinema | FixIt</h1> <div align="center" class="ignore"> <p>一个带有 <code>asciinema-embed</code> shortcode 的 Hugo 主题组件。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://fixit.lruihao.cn/documentation/installation/#cli" target="_blank" rel="external nofollow noopener noreferrer">安装主题#CLI | FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>适用于所有 Hugo 主题。</p>🌐 A component for site automatic translation.https://lruihao.cn/projects/hugo-fixit/cmpt-translate/Mon, 02 Dec 2024 07:29:57 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-translate/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">Auto Translate | FixIt</h1> <p><img loading="lazy" src='https://lruihao.cn/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt="auto-translate" height="293" width="797"></p> <div align="center" class="ignore"> <p>一个基于 <a href="https://github.com/xnx3/translate">translate.js</a> 实现网站自动翻译的组件。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。</p> <ul> <li>多语言 Hugo 站点:<a href="https://fixit.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">fixit.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>单语言 Hugo 站点:<a href="https://lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <p>在网站右上角切换配置的翻译语言,或者在 URL 中添加 <code>?lang=</code> 参数指定任意<a href="https://api.translate.zvo.cn/language.json" target="_blank" rel="external nofollow noopener noreferrer">支持的翻译语言<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。例如:<code>?lang=korean</code>。</p>🐟 A canvas implemented animation effect of small fish swimming.https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/Tue, 05 Nov 2024 08:23:29 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/GitHub<h2 class="heading-element" id="fly-fish" data-decreased><span>Fly Fish</span> <a href="#fly-fish" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 简体中文说明 | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English README<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>一个 canvas 实现的小鱼游动动画效果。</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">https://lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。https://lruihao.cn/projects/lruihao/html-demo/Fri, 13 Sep 2024 02:36:29 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/html-demo/GitHub<h2 class="heading-element" id="html-demos" data-decreased><span>HTML demos</span> <a href="#html-demos" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。</p> <h2 class="heading-element" id="文件预览"><span>文件预览</span> <a href="#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>直接浏览器打开 <code>src</code> 目录下的 HTML 文件。</p>⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)https://lruihao.cn/projects/hugo-fixit/fixit-releaser/Wed, 04 Sep 2024 18:10:59 +0000https://lruihao.cn/projects/hugo-fixit/fixit-releaser/GitHub<h2 class="heading-element" id="fixit-releaser" data-decreased><span>FixIt Releaser</span> <a href="#fixit-releaser" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/@hugo-fixit/fixit-releaser" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-releaser_6796436360881312506.svg' alt="NPM version"></a></p> <p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>版本控制、变更日志和发布工具。</p> <div class="alert alert-caution"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z"/></svg>小心</p><p>该工具已停止维护!建议使用 <a href="https://github.com/Lruihao/auto-changelog-plus" target="_blank" rel="external nofollow noopener noreferrer">auto changelog plus<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 或者 <a href="https://github.com/cookpete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 生成日志。</p>Hugo theme component for ATOM feed custom Output Format.https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/Thu, 22 Aug 2024 03:29:22 +0000https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/GitHub<h2 class="heading-element" id="hugo-atom-feed" data-decreased><span>Hugo ATOM Feed</span> <a href="#hugo-atom-feed" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>Hugo 主题组件,用于自定义 ATOM feed 输出格式。</p> </blockquote> <p>该组件为您的站点启用 ATOM feeds。</p> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与<a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:</p>Hugo theme component for JSON feed custom Output Format.https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/Thu, 22 Aug 2024 03:28:23 +0000https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/GitHub<h2 class="heading-element" id="hugo-json-feed" data-decreased><span>Hugo JSON Feed</span> <a href="#hugo-json-feed" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>Hugo 主题组件,用于自定义 JSON feed 输出格式。</p> </blockquote> <p>该组件为您的站点启用 JSON feeds。</p> <h2 class="heading-element" id="演示"><span>演示</span> <a href="#%e6%bc%94%e7%a4%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://lruihao.cn/feed.json" target="_blank" rel="external nofollow noopener noreferrer">主页 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/posts/feed.json" target="_blank" rel="external nofollow noopener noreferrer">文章 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/collections/project/feed.json" target="_blank" rel="external nofollow noopener noreferrer">列表 Feed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与<a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:</p>Mobile devtools component powered by vConsole and eruda.https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/Wed, 07 Aug 2024 05:49:13 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/GitHub<h2 class="heading-element" id="cmpt-mdevtools" data-decreased><span>cmpt-mdevtools</span> <a href="#cmpt-mdevtools" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Mobile devtools component powered by vConsole and eruda.</p> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> v0.4.0 or later.</li> <li><a href="https://github.com/liriliri/eruda" target="_blank" rel="external nofollow noopener noreferrer">eruda<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://github.com/Tencent/vConsole" target="_blank" rel="external nofollow noopener noreferrer">vConsole<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="install-component"><span>Install Component</span> <a href="#install-component" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The installation method is the same as <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">installing a theme<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p>A Hugo theme component with reward-log or sponsor-log shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/Sun, 21 Jul 2024 14:02:29 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/GitHub<h2 class="heading-element" id="shortcode-rewards" data-decreased><span>shortcode-rewards</span> <a href="#shortcode-rewards" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>A Hugo theme component with <code>reward-log</code> or <code>sponsor-log</code> shortcode.</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://fixit.lruihao.cn/contributing/overview/#sponsor" target="_blank" rel="external nofollow noopener noreferrer">FixIt Docs<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/about/#sponsor" target="_blank" rel="external nofollow noopener noreferrer">Lruihao&rsquo;s Blog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>Developed based on the FixIt Timeline plugin.</p>🔖 Embed bookmark of FixIt Docs.https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/Sun, 14 Jul 2024 07:39:56 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/GitHub<h2 class="heading-element" id="fixit-docs-bookmark" data-decreased><span>fixit-docs-bookmark</span> <a href="#fixit-docs-bookmark" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>🔖 Embed bookmark of FixIt Docs.</p> <p><img loading="lazy" src='https://lruihao.cn/images/remote/featured-image_6457757536129463297.webp' alt="preview" height="668" width="1600"></p> <h2 class="heading-element" id="requirements"><span>Requirements</span> <a href="#requirements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>FixIt v0.4.0 or later.</li> </ul> <h2 class="heading-element" id="install-component"><span>Install Component</span> <a href="#install-component" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>The installation method is the same as <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">installing a theme<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>. There are several ways to install, choose one, for example, install through Hugo Modules:</p>A Hugo theme component with caniuse shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/Fri, 28 Jun 2024 06:56:32 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/GitHub<h2 class="heading-element" id="hugo-shortcode-for-caniuse" data-decreased><span>Hugo shortcode for CanIUse</span> <a href="#hugo-shortcode-for-caniuse" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 Hugo 中使用 <code>shortcode</code> 方式内嵌 <a href="https://caniuse.com/" target="_blank" rel="external nofollow noopener noreferrer">CanIUse<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 到你的文章中。</p> <p><img loading="lazy" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt="caniuse example"></p> <p><img loading="lazy" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt="baseline example"></p> <h2 class="heading-element" id="依赖"><span>依赖</span> <a href="#%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>FixIt 主题 <code>v0.4.0</code> 及以上版本。</p>利用 Vercel 反代 Gravatar 实现镜像加速https://lruihao.cn/projects/vercel-gravatar/Wed, 17 Apr 2024 12:51:35 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/vercel-gravatar/瞎折腾<p>在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。</p>Gravatar Proxy powered by Vercel.https://lruihao.cn/projects/lruihao/vercel-gravatar/Wed, 17 Apr 2024 01:37:06 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vercel-gravatar/GitHub<h2 class="heading-element" id="vercel-gravatar" data-decreased><span>Vercel Gravatar</span> <a href="#vercel-gravatar" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="alert alert-note"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z"/></svg>注意</p><p>Superseded by <a href="https://github.com/Lruihao/vercel-proxy" target="_blank" rel="external nofollow noopener noreferrer">Lruihao/vercel-proxy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p></div><p>Gravatar Proxy powered by Vercel.</p> <p>Go to test Gravatar:</p>🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.https://lruihao.cn/projects/hugo-fixit/component-projects/Tue, 09 Apr 2024 21:38:42 +0000https://lruihao.cn/projects/hugo-fixit/component-projects/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">GitHub Projects Embed | FixIt</h1> <p><img loading="lazy" src='https://lruihao.cn/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt="apple-devices-preview" height="1508" width="2880"></p> <div align="center" class="ignore"> <p>在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch">deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese">しろうと</a> </div> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://fixit.lruihao.cn/zh-cn/ecosystem/" target="_blank" rel="external nofollow noopener noreferrer">生态系统 | FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://lruihao.cn/projects/" target="_blank" rel="external nofollow noopener noreferrer">Lruihao 的开源项目<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持 GitHub 项目卡片展示(<code>layout</code> 或者 <code>shortcodes</code>)</li> <li>支持根据 README 自动生成博客文章(<code>content adapter</code>)</li> </ul> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://github.com/hugo-fixit" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> v0.4.0 或更高版本</li> </ul> <h2 class="heading-element" id="安装"><span>安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方法与 <a href="https://fixit.lruihao.cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 相同。有几种安装方法,请选择一种。</p>临时决定再写一个小工具 - 网站预览图生成器https://lruihao.cn/projects/apple-devices-preview/Thu, 04 Apr 2024 13:23:37 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/apple-devices-preview/Vue.jsJavaScript<p>开发完 <a href="https://github.com/Lruihao/CoverView" target="_blank" rel="external nofollow noopener noreferrer">CoverView<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。</p>用五天时间给自己制作一个封面图生成工具https://lruihao.cn/projects/coverview/Tue, 02 Apr 2024 18:05:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/coverview/React<div class="details admonition success open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-check" aria-hidden="true"></i>Cool!<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">苦封面图久矣,今日终有所成。</div> </div> </div>🛠 Create awesome cover images for your blog posts quickly.https://lruihao.cn/projects/lruihao/coverview/Thu, 28 Mar 2024 06:14:16 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/coverview/GitHub<h2 class="heading-element" id="coverview" data-decreased><span>CoverView</span> <a href="#coverview" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 简体中文说明 | <a href="README.en.md">English README</a></p> <p><a href="https://github.com/Lruihao/CoverView" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/open-source_18217824114769177106.svg' alt="用爱发电"></a></p> <blockquote> <p>该项目基于原始的 <a href="https://github.com/rutikwankhade/CoverView" target="_blank" rel="external nofollow noopener noreferrer">CoverView<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> </blockquote> <p>现在为你的博客创建封面图片变得非常简单。</p> <p><img loading="lazy" src='https://lruihao.cn/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt="cover_169570" height="840" width="1600"></p> <h2 class="heading-element" id="-变更通知"><span>💥 变更通知</span> <a href="#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:</p>强大的脑图可视化工具https://lruihao.cn/projects/lruihao/kityminder-core/Sun, 21 Jan 2024 06:24:42 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/kityminder-core/GitHub<h2 class="heading-element" id="kityminder-core" data-decreased><span>KityMinder Core</span> <a href="#kityminder-core" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="alert alert-note"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z"/></svg>注意</p><p>由于原项目 <a href="https://github.com/fex-team/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">KityMinder Core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 <a href="https://www.npmjs.com/package/@cell-x/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">@cell-x/kityminder-core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>用 Node.js 开发一个轻量脚手架https://lruihao.cn/projects/fixit-cli/Tue, 28 Nov 2023 10:48:07 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/fixit-cli/Node.js<p>本文将介绍如何用 Node.js 开发一个轻量脚手架,以 <a href="https://github.com/hugo-fixit/fixit-cli" target="_blank" rel="external nofollow noopener noreferrer">fixit-cli<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 为例。</p>🛠️ A node-based tooling for FixIt site initialization.https://lruihao.cn/projects/hugo-fixit/fixit-cli/Mon, 20 Nov 2023 06:40:09 +0000https://lruihao.cn/projects/hugo-fixit/fixit-cli/GitHub<h2 class="heading-element" id="fixit-cli" data-decreased><span>FixIt CLI</span> <a href="#fixit-cli" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/fixit-cli" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-cli_10155792500185738668.svg' alt="NPM version"></a></p> <p>👉 中文 | <a href="https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>🛠️ 一个基于 Node.js 开发的用于 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 站点初始化的脚手架工具。</p> <p><a href="https://asciinema.org/a/697494" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/fixit-cli_5868606310889221449.gif' alt="asciicast" height="646" width="940"></a></p> <h2 class="heading-element" id="系统依赖"><span>系统依赖</span> <a href="#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://nodejs.org/" target="_blank" rel="external nofollow noopener noreferrer">Node.js<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> (&gt;= 18)</li> <li><a href="https://git-scm.com/" target="_blank" rel="external nofollow noopener noreferrer">Git<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer">Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 扩展版</li> </ul> <p>如果你使用 <a href="https://gohugo.io/hugo-modules/" target="_blank" rel="external nofollow noopener noreferrer">Hugo 模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能加载主题,你还需要安装 <a href="https://go.dev/dl/" target="_blank" rel="external nofollow noopener noreferrer">Go<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?https://lruihao.cn/projects/el-table-sticky/Mon, 25 Sep 2023 17:49:58 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/el-table-sticky/Vue.js<p>本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。</p>Vue2 and element-ui related demoshttps://lruihao.cn/projects/lruihao/vue-el-demo/Tue, 08 Aug 2023 01:41:08 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vue-el-demo/GitHub<h2 class="heading-element" id="vue-el-demo" data-decreased><span>vue-el-demo</span> <a href="#vue-el-demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Vue and element-ui related <a href="https://lruihao.github.io/vue-el-demo/" target="_blank" rel="external nofollow noopener noreferrer">demos<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p> <h2 class="heading-element" id="project-setup"><span>Project setup</span> <a href="#project-setup" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn build</code></pre><p>This project is built with <a href="https://rsbuild.dev/" target="_blank" rel="external nofollow noopener noreferrer">Rsbuild<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, a fast build tool powered by Rspack.</p>A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.https://lruihao.cn/projects/lruihao/el-table-sticky/Wed, 14 Jun 2023 14:03:49 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/el-table-sticky/GitHub<h2 class="heading-element" id="el-table-sticky" data-decreased><span>el-table-sticky</span> <a href="#el-table-sticky" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.github.io/el-table-sticky/" target="_blank" rel="external nofollow noopener noreferrer">在线示例<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。</p> </blockquote> <h2 class="heading-element" id="背景"><span>背景</span> <a href="#%e8%83%8c%e6%99%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Element UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。</p>🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/Tue, 28 Feb 2023 09:12:29 +0000https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/GitHub<h2 class="heading-element" id="shortcode-mmt-netease" data-decreased><span>shortcode-mmt-netease</span> <a href="#shortcode-mmt-netease" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://lruihao.cn/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt="preview" height="934" width="1754"></p> <p>一个含有网易云随机评论 shortcode 的 Hugo 主题组件。</p> <h2 class="heading-element" id="demo"><span>Demo</span> <a href="#demo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://lruihao.cn/guestbook/" target="_blank" rel="external nofollow noopener noreferrer">https://lruihao.cn/guestbook/<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/Mon, 10 Oct 2022 02:50:53 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/GitHub<h2 class="heading-element" id="vue-minder-editor" data-decreased><span>Vue Minder Editor</span> <a href="#vue-minder-editor" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>基于 <a href="https://github.com/fex-team/kityminder-core" target="_blank" rel="external nofollow noopener noreferrer">kityminder-core<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 实现的 Vue2 脑图编辑器组件。</p> <h2 class="heading-element" id="install"><span>Install</span> <a href="#install" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>npm install vue-minder-editor-extended --save</code></pre><h2 class="heading-element" id="usage"><span>Usage</span> <a href="#usage" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>注册组件:</p>🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/Fri, 30 Sep 2022 09:28:41 +0000https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/GitHub<h2 class="heading-element" id="hugo-fixit-博客模板go" data-decreased><span>Hugo FixIt 博客模板(Go)</span> <a href="#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 中文 | <a href="README.en.md">English</a></p> <p>这是 Hugo 主题 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的快速启动模板。它使用 <a href="https://gohugo.io/hugo-modules/" target="_blank" rel="external nofollow noopener noreferrer">Hugo 模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能加载主题。如果你更熟悉 Git,可以 <a href="https://github.com/hugo-fixit/hugo-fixit-starter1" target="_blank" rel="external nofollow noopener noreferrer">查看这个模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>它提供了基本的主题结构和 <a href="https://gohugo.io/configuration/introduction/#configuration-directory" target="_blank" rel="external nofollow noopener noreferrer">配置目录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。</p> <h2 class="heading-element" id="目录结构"><span>目录结构</span> <a href="#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum</code></pre><h2 class="heading-element" id="快速入门"><span>快速入门</span> <a href="#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>完整的快速入门,请参阅此 <a href="https://fixit.lruihao.cn/documentation/getting-started/" target="_blank" rel="external nofollow noopener noreferrer">页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/Tue, 27 Sep 2022 15:23:38 +0000https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/GitHub<h2 class="heading-element" id="hugo-fixit-博客模板git" data-decreased><span>Hugo FixIt 博客模板(Git)</span> <a href="#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>👉 中文 | <a href="README.en.md">English</a></p> <p>这是 Hugo 主题 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的快速启动模板。它使用 <a href="https://git-scm.com/book/en/v2/Git-Tools-Submodules" target="_blank" rel="external nofollow noopener noreferrer">Git 子模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 功能来加载主题。如果你更熟悉 Go,可以 <a href="https://github.com/hugo-fixit/hugo-fixit-starter" target="_blank" rel="external nofollow noopener noreferrer">查看这个模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>它提供了基本的主题结构和 <a href="https://gohugo.io/configuration/introduction/#configuration-directory" target="_blank" rel="external nofollow noopener noreferrer">配置目录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。</p> <h2 class="heading-element" id="目录结构"><span>目录结构</span> <a href="#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules</code></pre><h2 class="heading-element" id="快速入门"><span>快速入门</span> <a href="#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>完整的快速入门请参阅此 <a href="https://fixit.lruihao.cn/documentation/getting-started/" target="_blank" rel="external nofollow noopener noreferrer">页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p>Using frequently-used Hugo commands by shell.https://lruihao.cn/projects/hugo-fixit/hugo-shell/Sun, 04 Sep 2022 04:18:42 +0000https://lruihao.cn/projects/hugo-fixit/hugo-shell/GitHub<h2 class="heading-element" id="hugo-shell" data-decreased><span>Hugo Shell</span> <a href="#hugo-shell" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Using frequently-used Hugo commands by shell.</p> <h2 class="heading-element" id="download"><span>Download</span> <a href="#download" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Add a submodule for your Hugo blog project.</p>📄 The open-source repo for fixit.lruihao.cnhttps://lruihao.cn/projects/hugo-fixit/docs/Sat, 23 Jul 2022 12:17:06 +0000https://lruihao.cn/projects/hugo-fixit/docs/GitHub<h2 class="heading-element" id="fixit-主题文档" data-decreased><span>FixIt 主题文档</span> <a href="#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://fixit.lruihao.cn/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Production_8233419177081912330.svg' alt="Production environment"></a> <a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt="Hugo"></a></p> <p>👉 中文 | <a href="README.en.md">English</a></p> <p><a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题文档主要分为:<a href="https://fixit.lruihao.cn/zh-cn/documentation/" target="_blank" rel="external nofollow noopener noreferrer">文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>、<a href="https://fixit.lruihao.cn/zh-cn/guides/" target="_blank" rel="external nofollow noopener noreferrer">教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 两大板块,欢迎大家发起 PR 完善主题文档。</p> <h2 class="heading-element" id="系统依赖"><span>系统依赖</span> <a href="#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://nodejs.org/" target="_blank" rel="external nofollow noopener noreferrer">Node.js<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>: &gt;= 20.0.0</li> <li><a href="https://go.dev/dl/" target="_blank" rel="external nofollow noopener noreferrer">Go<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://gohugo.io/installation/" target="_blank" rel="external nofollow noopener noreferrer">Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>: &gt;= 0.156.0 (extended version)</li> </ul> <h2 class="heading-element" id="贡献文档"><span>贡献文档</span> <a href="#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>首先,点击 fork 按钮 fork 本仓库。</p>🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题https://lruihao.cn/projects/hugo-fixit/fixit/Thu, 16 Dec 2021 03:35:27 +0000https://lruihao.cn/projects/hugo-fixit/fixit/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <p><img loading="lazy" src='https://lruihao.cn/images/remote/apple-devices-preview_2924900667091928771.png' alt="Hugo Theme FixIt" height="1158" width="2007"></p> <div align="center" class="ignore"> <p> FixIt 是一个简洁、优雅且高效的 <a href="https://gohugo.io/">Hugo</a> 博客主题。<br> <em><sub>如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!</sub></em> </p> <a href="https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md">English</a> | 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional">繁體中文</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese">日本語</a> </div> <p><a title="FixIt 官网" href="https://fixit.lruihao.cn/zh-cn/"><img align="right" alt="FixIt logo" width="70" height="70" src="https://avatars.githubusercontent.com/u/110414864?s=200&v=4"></a></p> <h2 class="heading-element" id="fixit" data-decreased><span>FixIt</span> <a href="#fixit" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>它的原型基于 <a href="https://github.com/dillonzq/LoveIt" target="_blank" rel="external nofollow noopener noreferrer">LoveIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题,<a href="https://github.com/Fastbyte01/KeepIt" target="_blank" rel="external nofollow noopener noreferrer">KeepIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题和 <a href="https://github.com/liuzc/LeaveIt" target="_blank" rel="external nofollow noopener noreferrer">LeaveIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 主题。</p>Lruihao's Notehttps://lruihao.cn/projects/lruihao/hugo-blog/Wed, 08 Sep 2021 12:52:53 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/hugo-blog/GitHub<h2 class="heading-element" id="菠菜眾長" data-decreased><span>菠菜眾長</span> <a href="#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt="Hugo"></a> <a href="https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/badge_1895496655215000366.svg' alt="Hugo build and deploy"></a> <a href="https://github.com/Lruihao/hugo-blog/commits/main" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/main_9310684978766761497.svg' alt="GitHub commit activity (main)"></a></p> <blockquote> <p>站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。</p> </blockquote> <p><img loading="lazy" src='https://lruihao.cn/images/remote/apple-devices-preview_9292544820184326555.webp' alt="blog-preview" height="1508" width="2880"></p> <h2 class="heading-element" id="content"><span>Content</span> <a href="#content" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。</p>Create watermark for webpage and automatic adjust when window resize.https://lruihao.cn/projects/lruihao/watermark/Mon, 24 May 2021 13:05:40 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/watermark/GitHub<h2 class="heading-element" id="watermark" data-decreased><span>Watermark</span> <a href="#watermark" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>Create watermark for webpage and automatic adjust when windows resize.</p> <h2 class="heading-element" id="documentation"><span><a href="https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md" target="_blank" rel="external nofollow noopener noreferrer">Documentation<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#documentation" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h2 class="heading-element" id="usage"><span>Usage</span> <a href="#usage" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="browser"><span>Browser</span> <a href="#browser" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li> <p>Clone source</p>Cell Watermarkhttps://lruihao.cn/projects/cell-watermark/Sun, 23 May 2021 17:15:41 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cell-watermark/JavaScriptCreate watermark for webpage and automatic adjust when window resize.基于 leancloud-storage 实现的无后端记账本https://lruihao.cn/projects/bill-note/Tue, 02 Mar 2021 21:46:40 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/bill-note/瞎折腾<h2 class="heading-element" id="起因"><span>13 起因</span> <a href="#%e8%b5%b7%e5%9b%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>起因<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content"><p>事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!</p> <p>自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;<br> 三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (<code>AB, AC, BC, ABC</code>)。好麻煩啊!!!</p> </div> </div> </div>基于 leancloud-storage 实现的无后端记账本https://lruihao.cn/projects/lruihao/bill-note/Sun, 28 Feb 2021 03:44:09 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/bill-note/GitHub<h2 class="heading-element" id="preparation" data-decreased><span>Preparation</span> <a href="#preparation" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:</p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td>pay</td> <td>Number</td> <td>消费金额</td> </tr> <tr> <td>pay_description</td> <td>String</td> <td>消费描述</td> </tr> <tr> <td>pay_type</td> <td>String</td> <td>消费类型</td> </tr> <tr> <td>pay_user</td> <td>String</td> <td>付款人</td> </tr> </tbody> </table> <h2 class="heading-element" id="init" data-decreased><span>Init</span> <a href="#init" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>set for yourself.</p>cell-blog 功能介绍与安装https://lruihao.cn/projects/cell-blog/Sat, 25 Jul 2020 20:51:11 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cell-blog/PHP<blockquote> <p>基于 Laravel7 开发,Markdown 语法的个人独立博客。<a href="https://github.com/Lruihao/cell-blog" target="_blank" rel="external nofollow noopener noreferrer">Cell Blog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>, 也是我的毕业设计作品,目前已開源。</p> </blockquote>基于 Laravel 7 开发,支持 Markdown 语法的博客https://lruihao.cn/projects/lruihao/cell-blog/Fri, 17 Apr 2020 08:33:39 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cell-blog/GitHub<h1 align="center" >Cell Blog</h1> <blockquote> <p>基于Laravel7开发,Markdown语法的个人独立博客。</p> </blockquote> <h2 class="heading-element" id="功能"><span>功能</span> <a href="#%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持Markdown,文章实时预览效果</li> <li>支持多种编程语言代码高亮</li> <li>编辑器图片上传</li> <li>后台上传文件管理</li> <li>文章搜索</li> <li>文章分类</li> <li>文章标签</li> <li>热门文章</li> <li>随机格言</li> <li>文章管理(发布,评论开关,排序)</li> <li>自定义导航(显示开关,排序)</li> <li>自定义页面(发布开关)</li> <li>友情链接(显示开关,排序)</li> <li><a href="https://github.com/Lruihao/cos-album" target="_blank" rel="external nofollow noopener noreferrer">COS桶相册<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>丰富的博客配置(方便扩展,支持自定义JS脚本)</li> <li>不蒜子计数</li> <li>Leancloud计数</li> <li>Valine评论插件</li> <li>文章分享插件</li> </ul> <h2 class="heading-element" id="截图"><span>截图</span> <a href="#%e6%88%aa%e5%9b%be" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://lruihao.cn/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt="前台首页.png" height="837" width="1383"><br> <img loading="lazy" src='https://lruihao.cn/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt="管理文章.png" height="649" width="1385"><br> <img loading="lazy" src='https://lruihao.cn/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt="编辑文章.png" height="629" width="1385"></p>利用腾讯云为静态页面添加“动态”相册https://lruihao.cn/projects/cos-album/Sun, 24 Nov 2019 10:52:34 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/cos-album/JavaScript<!-- markdownlint-disable MD033 --> <div class="details admonition info open"> <div class="details-summary admonition-title"><i class="icon fa-solid fa-circle-info" aria-hidden="true"></i>信息<i class="details-icon fa-solid fa-angle-right" aria-hidden="true"></i></div><div class="details-content"> <div class="admonition-content">cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],<br> <strong><span style="color: #428bca;">功能虽好,但是还是先友情提示!</span></strong><br> 开放 API 是一个<strong>很危险</strong>的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!</div> </div> </div>解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面https://lruihao.cn/projects/lruihao/cos-album/Sat, 23 Nov 2019 12:59:05 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cos-album/GitHub<h2 class="heading-element" id="cos-album" data-decreased><span>cos-album</span> <a href="#cos-album" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://github.com/Lruihao/cos-album-demo" target="_blank" rel="external nofollow noopener noreferrer">demo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <h2 class="heading-element" id="step1"><span>Step1</span> <a href="#step1" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>&lt;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;cos-album.min.css?v=1.1.6&#34;&gt; &lt;script type=&#34;text/javascript&#34; src=&#34;cos-album.min.js?v=1.1.6&#34;&gt;&lt;/script&gt;</code></pre><h2 class="heading-element" id="step2"><span>Step2</span> <a href="#step2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>&lt;script type=&#34;text/javascript&#34;&gt; new Cosalbum({ &#39;xmlLink&#39;: &#39;https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com&#39;, &#39;prependTo&#39;: &#39;.cos-album&#39;, &#39;viewNum&#39;: 8, &#39;copyUrl&#39;: &#39;//img.lruihao.cn&#39; }); &lt;/script&gt;</code></pre><h2 class="heading-element" id="params"><span>Params</span> <a href="#params" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><table> <thead> <tr> <th style="text-align: left">param</th> <th style="text-align: left">type</th> <th style="text-align: left">default</th> <th style="text-align: left">description</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">xmlLink</td> <td style="text-align: left">String</td> <td style="text-align: left"></td> <td style="text-align: left">需要解析的騰訊云COS桶XML鏈接</td> </tr> <tr> <td style="text-align: left">prependTo</td> <td style="text-align: left">String</td> <td style="text-align: left">&lsquo;body&rsquo;</td> <td style="text-align: left">可選解析相冊到某個節點</td> </tr> <tr> <td style="text-align: left">viewNum</td> <td style="text-align: left">Number</td> <td style="text-align: left">4</td> <td style="text-align: left">每個相冊顯示的照片數目</td> </tr> <tr> <td style="text-align: left">copyUrl</td> <td style="text-align: left">String</td> <td style="text-align: left">href</td> <td style="text-align: left">CDN 链接,雙擊複製 URL Since: 1.1.6</td> </tr> <tr> <td style="text-align: left">imgType</td> <td style="text-align: left">String</td> <td style="text-align: left">[&lsquo;jpg&rsquo;, &lsquo;jpeg&rsquo;, &lsquo;png&rsquo;, &lsquo;gif&rsquo;, &lsquo;svg&rsquo;]</td> <td style="text-align: left">图片類型 Since: 1.1.6</td> </tr> <tr> <td style="text-align: left">videoType</td> <td style="text-align: left">String</td> <td style="text-align: left">[&lsquo;mp4&rsquo;, &lsquo;mp3&rsquo;, &lsquo;avi&rsquo;, &lsquo;mov&rsquo;, &lsquo;qt&rsquo;]</td> <td style="text-align: left">視頻類型 Since: 1.1.6</td> </tr> </tbody> </table> <blockquote> <p><a href="https://lruihao.cn/posts/cos-album.html" target="_blank" rel="external nofollow noopener noreferrer"><strong>详细说明</strong><i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>沐目之,湘也。— 沐目体https://lruihao.cn/projects/lruihao/mmt/Thu, 26 Sep 2019 12:44:17 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/mmt/GitHub<blockquote> <p><a href="https://lruihao.cn/projects/font-mmt/" target="_blank" rel="external nofollow noopener noreferrer">关于沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> </blockquote>Elegant and powerful theme for Hexo.https://lruihao.cn/projects/lruihao/hexo-theme-next/Thu, 31 Jan 2019 09:57:45 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/hexo-theme-next/GitHub<h1 align=center>hexo-theme-next</h1> <blockquote> <p><strong>如无必要,不再更新!(2019.09.13)</strong><br> 今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将<strong>放弃对next的主题的自定义修改</strong>,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。<br> 我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。<br> 以下仍为当前博客使用主题,lib资源已打包github。</p> </blockquote> <blockquote> <p>基于<a href="https://github.com/theme-next/hexo-theme-next" target="_blank" rel="external nofollow noopener noreferrer">hexo-theme-next 6.0+<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =&gt; <a href="https://theme-next.org" target="_blank" rel="external nofollow noopener noreferrer">https://theme-next.org<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> <br> 记录一下折腾过程,修改内容以<a href="https://lruihao.cn/posts/hexo-theme-next.html" target="_blank" rel="external nofollow noopener noreferrer">博採眾長<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见<a href="https://lruihao.cn/categories/hexo/" target="_blank" rel="external nofollow noopener noreferrer">hexo分类<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。 <strong>主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值</strong></p> </blockquote>沐目体https://lruihao.cn/projects/font-mmt/Fri, 12 Oct 2018 19:39:19 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/font-mmt/<!-- markdownlint-disable MD033 --> <iframe class="manuscript" src="https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader&a=fontshowPics&u=qbfRl8gPF2s-&z=Kqz%2FRroVGYc-" style="width: 100%;height: 370px;margin-top: .25rem;" frameborder="0" allowfullscreen></iframe>博客构建档(HTML & Markdown)https://lruihao.cn/projects/lruihao/lruihao.github.io/Mon, 28 May 2018 12:24:11 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/lruihao.github.io/GitHub<h2 class="heading-element" id="菠菜眾長" data-decreased><span><a href="https://lruihao.cn/" title="主页" target="_blank" rel="external nofollow noopener noreferrer">菠菜眾長<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></span> <a href="#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。</p> </blockquote> <p>共计 297 篇文章 by <a href="https://github.com/Lruihao" target="_blank" rel="external nofollow noopener noreferrer">Lruihao<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>.</p> <h2 class="heading-element" id="2026"><span>2026</span> <a href="#2026" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details open> <summary>共计 1 篇文章</summary> <ul> <li>03-06 <a href="https://lruihao.cn/projects/lruihao/cell-tooltip/" title="2026-03-06 06:58:23" target="_blank" rel="external nofollow noopener noreferrer">一个轻量化 Tooltip 组件。<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2025"><span>2025</span> <a href="#2025" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 14 篇文章</summary> <ul> <li>12-24 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/" title="2025-12-24 03:31:47" target="_blank" rel="external nofollow noopener noreferrer">A Christmas Easter Egg by JavaScript.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-30 <a href="https://lruihao.cn/projects/lruihao/auto-changelog-plus/" title="2025-08-30 15:40:19" target="_blank" rel="external nofollow noopener noreferrer">Command line tool for generating a changelog from git tags and commit history<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-16 <a href="https://lruihao.cn/posts/mermaid-theming/" title="2025-08-16 12:37:49" target="_blank" rel="external nofollow noopener noreferrer">让 Mermaid 图表自动跟随系统深浅色<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-05 <a href="https://lruihao.cn/posts/wc-01-prologue/" title="2025-08-05 11:31:52" target="_blank" rel="external nofollow noopener noreferrer">黑盒出关・三把钥匙定江湖<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-04 <a href="https://lruihao.cn/posts/code-playground/" title="2025-08-04 11:37:24" target="_blank" rel="external nofollow noopener noreferrer">Code Playground<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/projects/lruihao/caniuse-embed-element/" title="2025-07-22 03:40:45" target="_blank" rel="external nofollow noopener noreferrer">A custom web component that embeds caniuse.com browser compatibility data for a specific feature.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-19 <a href="https://lruihao.cn/projects/lruihao/json-viewer-element/" title="2025-07-19 07:05:07" target="_blank" rel="external nofollow noopener noreferrer">A custom element for viewing and interacting with JSON data.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-18 <a href="https://lruihao.cn/posts/at-layer/" title="2025-06-18 10:35:47" target="_blank" rel="external nofollow noopener noreferrer">CSS @layer:构建更高效、更可维护的样式层级<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-11 <a href="https://lruihao.cn/posts/vue-build/" title="2025-06-11 10:05:36" target="_blank" rel="external nofollow noopener noreferrer">Vue.js History 模式下的 NGINX 配置与 API 代理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-10 <a href="https://lruihao.cn/projects/lruihao/mmt-webfont/" title="2025-04-10 08:35:34" target="_blank" rel="external nofollow noopener noreferrer">The webfont package for the MMT typeface.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-09 <a href="https://lruihao.cn/projects/lruihao/vercel-proxy/" title="2025-04-09 02:13:22" target="_blank" rel="external nofollow noopener noreferrer">API proxies powered by Vercel.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-20 <a href="https://lruihao.cn/posts/flexbox/" title="2025-01-20 15:56:38" target="_blank" rel="external nofollow noopener noreferrer">CSS Flexbox 布局指南<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/projects/hugo-fixit/action-component-list/" title="2025-01-14 09:10:09" target="_blank" rel="external nofollow noopener noreferrer">Generate a list of all hugo-fixit theme components.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-08 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/" title="2025-01-08 09:20:48" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with asciinema-embed shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2024"><span>2024</span> <a href="#2024" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 38 篇文章</summary> <ul> <li>12-06 <a href="https://lruihao.cn/posts/css-viewport/" title="2024-12-06 10:32:22" target="_blank" rel="external nofollow noopener noreferrer">震惊!CSS 竟然能获取视口尺寸?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-02 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-translate/" title="2024-12-02 07:29:57" target="_blank" rel="external nofollow noopener noreferrer">🌐 A component for site automatic translation.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-22 <a href="https://lruihao.cn/posts/91db0fa/" title="2024-11-22 14:01:18" target="_blank" rel="external nofollow noopener noreferrer">Amazon 如何让服务器享受着持续集群安全?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-05 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/" title="2024-11-05 08:23:29" target="_blank" rel="external nofollow noopener noreferrer">🐟 A canvas implemented animation effect of small fish swimming.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-06 <a href="https://lruihao.cn/posts/content-adapters/" title="2024-10-06 11:10:22" target="_blank" rel="external nofollow noopener noreferrer">自动获取 GitHub README 内容添加到 Hugo 文章<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-13 <a href="https://lruihao.cn/projects/lruihao/html-demo/" title="2024-09-13 02:36:29" target="_blank" rel="external nofollow noopener noreferrer">不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-04 <a href="https://lruihao.cn/projects/hugo-fixit/fixit-releaser/" title="2024-09-04 18:10:59" target="_blank" rel="external nofollow noopener noreferrer">⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-22 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/" title="2024-08-22 03:29:22" target="_blank" rel="external nofollow noopener noreferrer">Hugo theme component for ATOM feed custom Output Format.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-22 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/" title="2024-08-22 03:28:23" target="_blank" rel="external nofollow noopener noreferrer">Hugo theme component for JSON feed custom Output Format.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/" title="2024-08-07 05:49:13" target="_blank" rel="external nofollow noopener noreferrer">Mobile devtools component powered by vConsole and eruda.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-29 <a href="https://lruihao.cn/posts/css-round/" title="2024-07-29 20:32:39" target="_blank" rel="external nofollow noopener noreferrer">现代 CSS 解决方案:CSS 四舍五入数值单位<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-21 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/" title="2024-07-21 14:02:29" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with reward-log or sponsor-log shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-17 <a href="https://lruihao.cn/posts/git-summary/" title="2024-07-17 16:06:08" target="_blank" rel="external nofollow noopener noreferrer">Git 统计代码量<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-15 <a href="https://lruihao.cn/posts/drop-shadow/" title="2024-07-15 10:40:12" target="_blank" rel="external nofollow noopener noreferrer">现代 CSS 解决方案之异形元素怎么设置阴影?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-14 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/" title="2024-07-14 07:39:56" target="_blank" rel="external nofollow noopener noreferrer">🔖 Embed bookmark of FixIt Docs.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-14 <a href="https://lruihao.cn/posts/fixit-docs-bookmark/" title="2024-07-14 13:03:31" target="_blank" rel="external nofollow noopener noreferrer">CSS 实现时间轴、背景图 loading 和渐变边框<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-07 <a href="https://lruihao.cn/posts/d1fc0c7/" title="2024-07-07 13:54:14" target="_blank" rel="external nofollow noopener noreferrer">探索 Amazon S3 的无限存储潜力<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-28 <a href="https://lruihao.cn/posts/scrollbar-styling/" title="2024-06-28 22:29:03" target="_blank" rel="external nofollow noopener noreferrer">标准滚动条控制规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-28 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/" title="2024-06-28 06:56:32" target="_blank" rel="external nofollow noopener noreferrer">A Hugo theme component with caniuse shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-13 <a href="https://lruihao.cn/posts/aside-toggle-drag/" title="2024-06-13 21:03:12" target="_blank" rel="external nofollow noopener noreferrer">如何实现 VSCode 编辑器窗口边界拖拽类似功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-09 <a href="https://lruihao.cn/posts/design-principles/" title="2024-06-09 02:24:31" target="_blank" rel="external nofollow noopener noreferrer">架构之基:从根儿上了解设计原则<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-06 <a href="https://lruihao.cn/posts/svg-dark-light/" title="2024-06-06 22:13:26" target="_blank" rel="external nofollow noopener noreferrer">怎么生成暗黑模式和明亮模式的 SVG 图片?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-20 <a href="https://lruihao.cn/posts/404d6a2/" title="2024-05-20 11:41:03" target="_blank" rel="external nofollow noopener noreferrer">坐高铁去柳州吃螺狮粉<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/vercel-gravatar/" title="2024-04-17 12:51:35" target="_blank" rel="external nofollow noopener noreferrer">利用 Vercel 反代 Gravatar 实现镜像加速<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/lruihao/vercel-gravatar/" title="2024-04-17 01:37:06" target="_blank" rel="external nofollow noopener noreferrer">Gravatar Proxy powered by Vercel.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-09 <a href="https://lruihao.cn/projects/hugo-fixit/component-projects/" title="2024-04-09 21:38:42" target="_blank" rel="external nofollow noopener noreferrer">🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-04 <a href="https://lruihao.cn/projects/apple-devices-preview/" title="2024-04-04 13:23:37" target="_blank" rel="external nofollow noopener noreferrer">临时决定再写一个小工具 - 网站预览图生成器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-02 <a href="https://lruihao.cn/projects/coverview/" title="2024-04-02 18:05:34" target="_blank" rel="external nofollow noopener noreferrer">用五天时间给自己制作一个封面图生成工具<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/projects/lruihao/coverview/" title="2024-03-28 06:14:16" target="_blank" rel="external nofollow noopener noreferrer">🛠 Create awesome cover images for your blog posts quickly.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-26 <a href="https://lruihao.cn/posts/c6bc2d5/" title="2024-03-26 12:23:44" target="_blank" rel="external nofollow noopener noreferrer">写文档时英文标题什么时候要大写?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-29 <a href="https://lruihao.cn/posts/overflow-tooltip/" title="2024-02-29 16:46:00" target="_blank" rel="external nofollow noopener noreferrer">实现类似于 Element UI 表格的溢出文本提示功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-21 <a href="https://lruihao.cn/posts/auto-sizes/" title="2024-02-21 10:00:13" target="_blank" rel="external nofollow noopener noreferrer">聊聊 Chrome 新增的 sizes=&ldquo;auto&rdquo; 属性<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-09 <a href="https://lruihao.cn/years/2023/" title="2024-02-09 14:07:24" target="_blank" rel="external nofollow noopener noreferrer">2023 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-21 <a href="https://lruihao.cn/projects/lruihao/kityminder-core/" title="2024-01-21 06:24:42" target="_blank" rel="external nofollow noopener noreferrer">强大的脑图可视化工具<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-17 <a href="https://lruihao.cn/posts/900d5e4/" title="2024-01-17 14:57:48" target="_blank" rel="external nofollow noopener noreferrer">记一次 Debug 第三方包的过程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-17 <a href="https://lruihao.cn/posts/20b75e9/" title="2024-01-17 09:58:58" target="_blank" rel="external nofollow noopener noreferrer">为什么很多教程中都有 foo bar?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-11 <a href="https://lruihao.cn/posts/6550187/" title="2024-01-11 10:30:04" target="_blank" rel="external nofollow noopener noreferrer">git submodule: already exists in the index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-10 <a href="https://lruihao.cn/posts/el-card-collapse/" title="2024-01-10 17:06:54" target="_blank" rel="external nofollow noopener noreferrer">给 el-card 添加折叠功能<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2023"><span>2023</span> <a href="#2023" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 35 篇文章</summary> <ul> <li>12-22 <a href="https://lruihao.cn/posts/d8ae205/" title="2023-12-22 19:58:47" target="_blank" rel="external nofollow noopener noreferrer">尝试在 Python 中使用 Amazon Titan 文本模型<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-28 <a href="https://lruihao.cn/projects/fixit-cli/" title="2023-11-28 10:48:07" target="_blank" rel="external nofollow noopener noreferrer">用 Node.js 开发一个轻量脚手架<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-20 <a href="https://lruihao.cn/projects/hugo-fixit/fixit-cli/" title="2023-11-20 06:40:09" target="_blank" rel="external nofollow noopener noreferrer">🛠️ A node-based tooling for FixIt site initialization.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-18 <a href="https://lruihao.cn/posts/aws-solution/" title="2023-11-18 12:52:37" target="_blank" rel="external nofollow noopener noreferrer">探索 AWS 云上一站式解决方案免费使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-22 <a href="https://lruihao.cn/posts/ssh-sign/" title="2023-10-22 18:59:31" target="_blank" rel="external nofollow noopener noreferrer">SSH 提交签名验证<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/patch-package/" title="2023-10-12 22:37:56" target="_blank" rel="external nofollow noopener noreferrer">如何给 npm 包打补丁?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashboard-summary/" title="2023-10-12 21:25:18" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘系列总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-widget-usage/" title="2023-10-12 20:07:56" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 组件开发<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-template-usage/" title="2023-10-12 20:07:20" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 模板使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-widget-docs/" title="2023-10-12 19:41:23" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 组件配置文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashborad-template-docs/" title="2023-10-12 19:27:49" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 布局模板文档<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/posts/dashboard-analysis/" title="2023-10-12 15:37:30" target="_blank" rel="external nofollow noopener noreferrer">拖拽式仪表盘 - 功能需求分析<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-11 <a href="https://lruihao.cn/posts/markdownlint/" title="2023-10-11 14:26:48" target="_blank" rel="external nofollow noopener noreferrer">给你的 Markdown 挑挑刺<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-08 <a href="https://lruihao.cn/posts/cognitive-complexity/" title="2023-10-08 09:52:44" target="_blank" rel="external nofollow noopener noreferrer">认知复杂度(Cognitive Complexity)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/posts/article-structure/" title="2023-09-26 15:17:52" target="_blank" rel="external nofollow noopener noreferrer">写作技巧:如何搭建文章的框架结构?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-25 <a href="https://lruihao.cn/projects/el-table-sticky/" title="2023-09-25 17:49:58" target="_blank" rel="external nofollow noopener noreferrer">如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-17 <a href="https://lruihao.cn/posts/vue-fullscreen-toggler/" title="2023-09-17 19:44:07" target="_blank" rel="external nofollow noopener noreferrer">封装 Vue FullScreenToggler 组件<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-15 <a href="https://lruihao.cn/posts/js-fullscreen/" title="2023-09-15 17:29:25" target="_blank" rel="external nofollow noopener noreferrer">JS 实现全屏和退出全屏<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-15 <a href="https://lruihao.cn/posts/translation-guide/" title="2023-09-15 11:07:56" target="_blank" rel="external nofollow noopener noreferrer">中文翻译的常见问题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-14 <a href="https://lruihao.cn/posts/vue-svg-icon/" title="2023-09-14 11:24:48" target="_blank" rel="external nofollow noopener noreferrer">在 Vue 项目中更优雅地使用 icon<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-14 <a href="https://lruihao.cn/posts/vscode-snippets/" title="2023-09-14 11:21:56" target="_blank" rel="external nofollow noopener noreferrer">VSCode 添加用户代码片段,自定义用户代码片段<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-02 <a href="https://lruihao.cn/posts/grid-bg-image/" title="2023-09-02 10:05:44" target="_blank" rel="external nofollow noopener noreferrer">CSS 如何实现网格背景效果?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-26 <a href="https://lruihao.cn/posts/aws-ec2/" title="2023-08-26 17:22:57" target="_blank" rel="external nofollow noopener noreferrer">将 Hugo 博客部署到亚马逊云服务器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/projects/lruihao/vue-el-demo/" title="2023-08-08 01:41:08" target="_blank" rel="external nofollow noopener noreferrer">Vue2 and element-ui related demos<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-20 <a href="https://lruihao.cn/posts/el-backtop-fix/" title="2023-07-20 11:08:18" target="_blank" rel="external nofollow noopener noreferrer">用魔法打败魔法 - ElBacktop Fix<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/projects/lruihao/el-table-sticky/" title="2023-06-14 14:03:49" target="_blank" rel="external nofollow noopener noreferrer">A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/gen-router/" title="2023-06-14 00:11:17" target="_blank" rel="external nofollow noopener noreferrer">使用 Node.js 自动创建 Vue 的路由<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-12 <a href="https://lruihao.cn/posts/sourcetree-husky/" title="2023-06-12 10:58:44" target="_blank" rel="external nofollow noopener noreferrer">解决 SourceTree 提交时候 husky 命令失败问题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-03 <a href="https://lruihao.cn/posts/v2-tailwind/" title="2023-06-03 17:38:44" target="_blank" rel="external nofollow noopener noreferrer">Vue2 + tailwindcss 初始化<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-14 <a href="https://lruihao.cn/posts/vue2-guid/" title="2023-03-14 08:37:59" target="_blank" rel="external nofollow noopener noreferrer">新手向:Vue 2.0 的建议学习顺序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-28 <a href="https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/" title="2023-02-28 09:12:29" target="_blank" rel="external nofollow noopener noreferrer">🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-12 <a href="https://lruihao.cn/posts/native-img-loading-lazy/" title="2023-02-12 19:40:43" target="_blank" rel="external nofollow noopener noreferrer">浏览器 IMG 图片原生懒加载 loading=&ldquo;lazy&rdquo;<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-05 <a href="https://lruihao.cn/posts/browser-rendering/" title="2023-02-05 21:02:52" target="_blank" rel="external nofollow noopener noreferrer">浏览器渲染原理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-04 <a href="https://lruihao.cn/posts/document-style-guide/" title="2023-02-04 16:04:42" target="_blank" rel="external nofollow noopener noreferrer">中文技术文档的写作规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-11 <a href="https://lruihao.cn/posts/event-loop/" title="2023-01-11 11:16:02" target="_blank" rel="external nofollow noopener noreferrer">浏览器原理 - 事件循环<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2022"><span>2022</span> <a href="#2022" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 20 篇文章</summary> <ul> <li>12-17 <a href="https://lruihao.cn/years/2022/" title="2022-12-17 01:01:30" target="_blank" rel="external nofollow noopener noreferrer">2022 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-15 <a href="https://lruihao.cn/posts/homebrew-npm/" title="2022-12-15 15:33:30" target="_blank" rel="external nofollow noopener noreferrer">安装 Homebrew 后导致系统中原有的 npm 和 npx 失效<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-10 <a href="https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/" title="2022-10-10 02:50:53" target="_blank" rel="external nofollow noopener noreferrer">基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-30 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/" title="2022-09-30 09:28:41" target="_blank" rel="external nofollow noopener noreferrer">🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-27 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/" title="2022-09-27 15:23:38" target="_blank" rel="external nofollow noopener noreferrer">🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-04 <a href="https://lruihao.cn/projects/hugo-fixit/hugo-shell/" title="2022-09-04 04:18:42" target="_blank" rel="external nofollow noopener noreferrer">Using frequently-used Hugo commands by shell.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-31 <a href="https://lruihao.cn/posts/beego-install/" title="2022-08-31 09:32:44" target="_blank" rel="external nofollow noopener noreferrer">Beego 安装及配置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-13 <a href="https://lruihao.cn/posts/semver/" title="2022-08-13 13:32:03" target="_blank" rel="external nofollow noopener noreferrer">语义版本控制(SemVer)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-12 <a href="https://lruihao.cn/posts/commit-spec/" title="2022-08-12 15:37:44" target="_blank" rel="external nofollow noopener noreferrer">Commit Message Spec<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-12 <a href="https://lruihao.cn/posts/electron-summary/" title="2022-08-12 11:22:01" target="_blank" rel="external nofollow noopener noreferrer">electron 踩坑总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/posts/encryption-fe/" title="2022-08-08 13:49:22" target="_blank" rel="external nofollow noopener noreferrer">前端页面内容加密总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/posts/qcloudcdn/" title="2022-08-07 14:40:33" target="_blank" rel="external nofollow noopener noreferrer">Node.js + GitHub Actions 自动刷新 CDN<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-07 <a href="https://lruihao.cn/posts/newline/" title="2022-08-07 00:10:30" target="_blank" rel="external nofollow noopener noreferrer">不同系统的换行符的差异<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/ohmyzsh-custom/" title="2022-07-31 13:54:14" target="_blank" rel="external nofollow noopener noreferrer">自定义 ohmyzsh 主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-30 <a href="https://lruihao.cn/posts/linux-permission/" title="2022-07-30 17:15:44" target="_blank" rel="external nofollow noopener noreferrer">linux 文件权限<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-29 <a href="https://lruihao.cn/posts/config4mac/" title="2022-07-29 20:22:44" target="_blank" rel="external nofollow noopener noreferrer">Mac 上的开发配置总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-23 <a href="https://lruihao.cn/projects/hugo-fixit/docs/" title="2022-07-23 12:17:06" target="_blank" rel="external nofollow noopener noreferrer">📄 The open-source repo for fixit.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-05 <a href="https://lruihao.cn/posts/adb-for-mac/" title="2022-07-05 15:39:34" target="_blank" rel="external nofollow noopener noreferrer">Mac 配置 ADB<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-01 <a href="https://lruihao.cn/posts/js-rediscover/" title="2022-05-01 10:59:36" target="_blank" rel="external nofollow noopener noreferrer">重新认识 JavaScript<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-30 <a href="https://lruihao.cn/posts/css-scss-var/" title="2022-04-30 22:04:29" target="_blank" rel="external nofollow noopener noreferrer">关于 CSS 和 Scss 变量运算那些事<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2021"><span>2021</span> <a href="#2021" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 19 篇文章</summary> <ul> <li>12-22 <a href="https://lruihao.cn/posts/gtd/" title="2021-12-22 20:17:42" target="_blank" rel="external nofollow noopener noreferrer">Getting Things Done for ios App Reminders and Github issues<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-16 <a href="https://lruihao.cn/projects/hugo-fixit/fixit/" title="2021-12-16 03:35:27" target="_blank" rel="external nofollow noopener noreferrer">🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/subl_imgpaste2/" title="2021-10-05 21:54:06" target="_blank" rel="external nofollow noopener noreferrer">Sublime 剪贴板图片粘贴插件 —— Markdown 必备<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-cardlink/" title="2021-10-05 19:33:13" target="_blank" rel="external nofollow noopener noreferrer">Hugo 添加知乎卡片式链接 Shortcodes<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-i18n-zh-tw/" title="2021-10-05 19:14:45" target="_blank" rel="external nofollow noopener noreferrer">Hugo I18n 添加中文繁體翻譯<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-05 <a href="https://lruihao.cn/posts/hugo-friends/" title="2021-10-05 14:14:10" target="_blank" rel="external nofollow noopener noreferrer">Hugo 友情連結模板<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-04 <a href="https://lruihao.cn/posts/hugo-admin/" title="2021-10-04 23:49:00" target="_blank" rel="external nofollow noopener noreferrer">Hugo 本地管理 Shell 腳本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-04 <a href="https://lruihao.cn/posts/github-actions/" title="2021-10-04 23:46:49" target="_blank" rel="external nofollow noopener noreferrer">Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-03 <a href="https://lruihao.cn/posts/hexo-to-hugo/" title="2021-10-03 15:27:58" target="_blank" rel="external nofollow noopener noreferrer">个人博客从 Hexo 迁移至 Hugo<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-08 <a href="https://lruihao.cn/projects/lruihao/hugo-blog/" title="2021-09-08 12:52:53" target="_blank" rel="external nofollow noopener noreferrer">Lruihao&rsquo;s Note<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-22 <a href="https://lruihao.cn/posts/less-sass-scss/" title="2021-06-22 16:39:47" target="_blank" rel="external nofollow noopener noreferrer">less&amp;sass&amp;scss<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/posts/lightbox/" title="2021-06-21 16:18:04" target="_blank" rel="external nofollow noopener noreferrer">Lightbox<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/years/2020-2021/" title="2021-06-21 10:17:38" target="_blank" rel="external nofollow noopener noreferrer">2020&amp;2021 總結<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-24 <a href="https://lruihao.cn/projects/lruihao/watermark/" title="2021-05-24 13:05:40" target="_blank" rel="external nofollow noopener noreferrer">Create watermark for webpage and automatic adjust when window resize.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-23 <a href="https://lruihao.cn/projects/cell-watermark/" title="2021-05-23 17:15:41" target="_blank" rel="external nofollow noopener noreferrer">Cell Watermark<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/codereview/" title="2021-03-04 21:04:18" target="_blank" rel="external nofollow noopener noreferrer">Code Review 怎麼做?新手工程師如何提升「程式碼品質」<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-02 <a href="https://lruihao.cn/projects/bill-note/" title="2021-03-02 21:46:40" target="_blank" rel="external nofollow noopener noreferrer">基于 leancloud-storage 实现的无后端记账本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-01 <a href="https://lruihao.cn/me/whysmoke/" title="2021-03-01 01:27:41" target="_blank" rel="external nofollow noopener noreferrer">你为什么吸烟?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-28 <a href="https://lruihao.cn/projects/lruihao/bill-note/" title="2021-02-28 03:44:09" target="_blank" rel="external nofollow noopener noreferrer">基于 leancloud-storage 实现的无后端记账本<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2020"><span>2020</span> <a href="#2020" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 8 篇文章</summary> <ul> <li>07-25 <a href="https://lruihao.cn/projects/cell-blog/" title="2020-07-25 20:51:11" target="_blank" rel="external nofollow noopener noreferrer">cell-blog 功能介绍与安装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-25 <a href="https://lruihao.cn/posts/cell-blog-dev/" title="2020-07-25 20:42:42" target="_blank" rel="external nofollow noopener noreferrer">cell-blog 开发记录<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-17 <a href="https://lruihao.cn/projects/lruihao/cell-blog/" title="2020-04-17 08:33:39" target="_blank" rel="external nofollow noopener noreferrer">基于 Laravel 7 开发,支持 Markdown 语法的博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-26 <a href="https://lruihao.cn/posts/csdnvisiter/" title="2020-03-26 11:08:38" target="_blank" rel="external nofollow noopener noreferrer">使用 Python 刷 csdn 访问量<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-25 <a href="https://lruihao.cn/posts/cron/" title="2020-03-25 09:19:44" target="_blank" rel="external nofollow noopener noreferrer">Cron 表达式的基本语法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-25 <a href="https://lruihao.cn/posts/daka/" title="2020-03-25 08:22:42" target="_blank" rel="external nofollow noopener noreferrer">新冠疫情未返校未返工第 N 天之“自动打卡”<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/years/2019/" title="2020-01-16 20:01:22" target="_blank" rel="external nofollow noopener noreferrer">2019 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/posts/sql/" title="2020-01-16 19:28:05" target="_blank" rel="external nofollow noopener noreferrer">SQL 总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2019"><span>2019</span> <a href="#2019" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 71 篇文章</summary> <ul> <li>11-24 <a href="https://lruihao.cn/projects/cos-album/" title="2019-11-24 10:52:34" target="_blank" rel="external nofollow noopener noreferrer">利用腾讯云为静态页面添加“动态”相册<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-23 <a href="https://lruihao.cn/projects/lruihao/cos-album/" title="2019-11-23 12:59:05" target="_blank" rel="external nofollow noopener noreferrer">解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-14 <a href="https://lruihao.cn/posts/restful/" title="2019-11-14 19:06:05" target="_blank" rel="external nofollow noopener noreferrer">RESTful<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-28 <a href="https://lruihao.cn/posts/phppushurl/" title="2019-09-28 18:32:42" target="_blank" rel="external nofollow noopener noreferrer">php 同时主动推送链接到百度,神马等站长平台<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-28 <a href="https://lruihao.cn/posts/phpfile/" title="2019-09-28 17:11:17" target="_blank" rel="external nofollow noopener noreferrer">php 按行读取文件信息<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/projects/lruihao/mmt/" title="2019-09-26 12:44:17" target="_blank" rel="external nofollow noopener noreferrer">沐目之,湘也。— 沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-19 <a href="https://lruihao.cn/posts/site-time/" title="2019-09-19 22:03:29" target="_blank" rel="external nofollow noopener noreferrer">设置网站运行时间<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-08 <a href="https://lruihao.cn/posts/async-defer/" title="2019-09-08 11:47:50" target="_blank" rel="external nofollow noopener noreferrer">script 的三种加载方式 (async, defer)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/sublime-text3/" title="2019-08-15 20:59:10" target="_blank" rel="external nofollow noopener noreferrer">Sublime Text3 快捷键大全<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/netbeans/" title="2019-08-15 18:36:15" target="_blank" rel="external nofollow noopener noreferrer">NetBeans IDE 开发设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/dev-rules/" title="2019-08-15 18:30:31" target="_blank" rel="external nofollow noopener noreferrer">Web 开发规则,代码规范<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-19 <a href="https://lruihao.cn/posts/phpform/" title="2019-07-19 11:38:59" target="_blank" rel="external nofollow noopener noreferrer">简单评论模块&ndash;php 表单练习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-15 <a href="https://lruihao.cn/posts/phpfunc/" title="2019-07-15 11:37:33" target="_blank" rel="external nofollow noopener noreferrer">php 函数学习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-12 <a href="https://lruihao.cn/posts/wamproot/" title="2019-07-12 18:44:36" target="_blank" rel="external nofollow noopener noreferrer">WAMPServer 自定义网站根目录等设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-21 <a href="https://lruihao.cn/posts/pysx2/" title="2019-06-21 18:46:41" target="_blank" rel="external nofollow noopener noreferrer">python 实训总结Ⅱ<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-18 <a href="https://lruihao.cn/posts/pysx1/" title="2019-06-18 18:41:00" target="_blank" rel="external nofollow noopener noreferrer">python 实训总结Ⅰ<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-26 <a href="https://lruihao.cn/posts/judgetriangle/" title="2019-05-26 18:50:53" target="_blank" rel="external nofollow noopener noreferrer">判断三角形的黑盒测试<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-17 <a href="https://lruihao.cn/posts/hustoj/" title="2019-05-17 23:08:04" target="_blank" rel="external nofollow noopener noreferrer">HustOJ 基础搭建教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-17 <a href="https://lruihao.cn/posts/gcd-bit/" title="2019-05-17 09:14:16" target="_blank" rel="external nofollow noopener noreferrer">最大公约数(二进制算法)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-16 <a href="https://lruihao.cn/posts/imgurl/" title="2019-05-16 20:31:33" target="_blank" rel="external nofollow noopener noreferrer">宝塔面板安装 ImgURL 图床<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-11 <a href="https://lruihao.cn/posts/mx2wx/" title="2019-05-11 17:02:31" target="_blank" rel="external nofollow noopener noreferrer">python 实战:模拟 post 请求定时获取后台数据并打包发送至微信<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-10 <a href="https://lruihao.cn/posts/ifzhushi/" title="2019-05-10 13:08:27" target="_blank" rel="external nofollow noopener noreferrer">条件注释判断浏览器版本&lt;!&ndash;[if lt IE 9]&gt;;<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-09 <a href="https://lruihao.cn/posts/pysettime/" title="2019-05-09 23:26:54" target="_blank" rel="external nofollow noopener noreferrer">python 设置程序每天 8 点定时执行任务<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-09 <a href="https://lruihao.cn/posts/pyinstallererror/" title="2019-05-09 19:05:01" target="_blank" rel="external nofollow noopener noreferrer">安装 pyinstaller 出错的解决办法及 csdn 工具实例打包<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-08 <a href="https://lruihao.cn/posts/singlethreaddown/" title="2019-05-08 20:55:02" target="_blank" rel="external nofollow noopener noreferrer">java 实现一个单线程的资源下载器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-07 <a href="https://lruihao.cn/posts/jsoninfo/" title="2019-05-07 18:42:47" target="_blank" rel="external nofollow noopener noreferrer">Python 如何操作 Json?<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-07 <a href="https://lruihao.cn/posts/posttest/" title="2019-05-07 18:17:05" target="_blank" rel="external nofollow noopener noreferrer">python 发送 post 请求进行简单的接口测试<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-06 <a href="https://lruihao.cn/posts/java-urlreader/" title="2019-05-06 17:41:35" target="_blank" rel="external nofollow noopener noreferrer">java 通过 URL 和 URLConnection 访问网页资源<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-02 <a href="https://lruihao.cn/posts/byteio/" title="2019-05-02 23:04:32" target="_blank" rel="external nofollow noopener noreferrer">文件加密解密(字节流)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-01 <a href="https://lruihao.cn/posts/javaexception/" title="2019-05-01 16:52:21" target="_blank" rel="external nofollow noopener noreferrer">模拟借书系统(java 异常练习)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-27 <a href="https://lruihao.cn/posts/qrcode/" title="2019-04-27 14:16:54" target="_blank" rel="external nofollow noopener noreferrer">用 MyQR 制作专属动态二维码 (py 和 exe 版本)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-24 <a href="https://lruihao.cn/posts/1thintervivew/" title="2019-04-24 21:23:22" target="_blank" rel="external nofollow noopener noreferrer">第一次面试经历<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-22 <a href="https://lruihao.cn/posts/mmtimgpy/" title="2019-04-22 12:46:34" target="_blank" rel="external nofollow noopener noreferrer">python 爬取网站图片(图片链接相似)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-20 <a href="https://lruihao.cn/posts/wxpy1/" title="2019-04-20 15:44:57" target="_blank" rel="external nofollow noopener noreferrer">python 玩微信:初探 wxpy<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-20 <a href="https://lruihao.cn/posts/wximgpy/" title="2019-04-20 13:32:58" target="_blank" rel="external nofollow noopener noreferrer">基本 python 实现的爬取微信好友头像,并拼接成大图<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-19 <a href="https://lruihao.cn/posts/hellojava/" title="2019-04-19 19:49:54" target="_blank" rel="external nofollow noopener noreferrer">用记事本编写第一个 java 程序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-18 <a href="https://lruihao.cn/posts/java-regex/" title="2019-04-18 22:04:21" target="_blank" rel="external nofollow noopener noreferrer">java 正则表达式练习<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-14 <a href="https://lruihao.cn/posts/stringbuffer/" title="2019-04-14 10:12:44" target="_blank" rel="external nofollow noopener noreferrer">java 常用类<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-12 <a href="https://lruihao.cn/posts/hdu1009/" title="2019-04-12 16:43:19" target="_blank" rel="external nofollow noopener noreferrer">HDU 1009 FatMouse&rsquo; Trade(贪心)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>04-03 <a href="https://lruihao.cn/posts/ngrok/" title="2019-04-03 19:29:43" target="_blank" rel="external nofollow noopener noreferrer">本地搭建网站服务器并穿透内网<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-30 <a href="https://lruihao.cn/posts/ms-html-css/" title="2019-03-30 22:58:39" target="_blank" rel="external nofollow noopener noreferrer">前端面试题 - HTML+CSS<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-30 <a href="https://lruihao.cn/posts/bqbj/" title="2019-03-30 10:13:33" target="_blank" rel="external nofollow noopener noreferrer">百钱百鸡(枚举法)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/posts/dacheng/" title="2019-03-28 22:50:43" target="_blank" rel="external nofollow noopener noreferrer">大数乘法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-28 <a href="https://lruihao.cn/posts/http2https/" title="2019-03-28 19:40:54" target="_blank" rel="external nofollow noopener noreferrer">vps 配置 ssl 及 https 重定向<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/hexo-theme-next/" title="2019-03-21 16:43:19" target="_blank" rel="external nofollow noopener noreferrer">hexo-theme-next @modified LRH<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/substatus/" title="2019-03-21 13:36:25" target="_blank" rel="external nofollow noopener noreferrer">Java 父类子类的对象初始化过程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-21 <a href="https://lruihao.cn/posts/windefault/" title="2019-03-21 12:48:30" target="_blank" rel="external nofollow noopener noreferrer">ubuntu + windows 双系统默认启动项设置<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-19 <a href="https://lruihao.cn/posts/player/" title="2019-03-19 23:32:56" target="_blank" rel="external nofollow noopener noreferrer">宅音乐播放器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-18 <a href="https://lruihao.cn/posts/bt/" title="2019-03-18 21:31:43" target="_blank" rel="external nofollow noopener noreferrer">宝塔面板安装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-18 <a href="https://lruihao.cn/posts/webbiji/" title="2019-03-18 20:40:55" target="_blank" rel="external nofollow noopener noreferrer">web 汇总<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-16 <a href="https://lruihao.cn/posts/fanxing/" title="2019-03-16 13:56:01" target="_blank" rel="external nofollow noopener noreferrer">java 泛型 test<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/eclipseuse/" title="2019-03-15 23:47:24" target="_blank" rel="external nofollow noopener noreferrer">eclipse 的基本使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/qframe/" title="2019-03-15 22:31:28" target="_blank" rel="external nofollow noopener noreferrer">匿名类在可视化界面中的应用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/linkcard/" title="2019-03-15 15:21:39" target="_blank" rel="external nofollow noopener noreferrer">模仿知乎卡片式链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-15 <a href="https://lruihao.cn/posts/ubuntutime/" title="2019-03-15 14:28:10" target="_blank" rel="external nofollow noopener noreferrer">win10,ubuntu 双系统时间不一致<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-08 <a href="https://lruihao.cn/posts/qqxml/" title="2019-03-08 16:52:13" target="_blank" rel="external nofollow noopener noreferrer">QQ 强制生成卡片式链接<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/cipanadmin/" title="2019-03-04 23:08:32" target="_blank" rel="external nofollow noopener noreferrer">磁盘存储器的管理<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>03-04 <a href="https://lruihao.cn/posts/js-vcode/" title="2019-03-04 20:53:09" target="_blank" rel="external nofollow noopener noreferrer">JS 验证码<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>02-01 <a href="https://lruihao.cn/posts/renative/" title="2019-02-01 20:44:40" target="_blank" rel="external nofollow noopener noreferrer">还乡<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-31 <a href="https://lruihao.cn/projects/lruihao/hexo-theme-next/" title="2019-01-31 09:57:45" target="_blank" rel="external nofollow noopener noreferrer">Elegant and powerful theme for Hexo.<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-24 <a href="https://lruihao.cn/posts/jicheng/" title="2019-01-24 15:07:50" target="_blank" rel="external nofollow noopener noreferrer">java 继承 test<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-22 <a href="https://lruihao.cn/posts/cos-hexo/" title="2019-01-22 14:57:08" target="_blank" rel="external nofollow noopener noreferrer">利用腾讯云对象存储 COS 桶托管 hexo 博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-18 <a href="https://lruihao.cn/posts/java-arrays/" title="2019-01-18 13:13:10" target="_blank" rel="external nofollow noopener noreferrer">Arrays 类及基本使用<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-16 <a href="https://lruihao.cn/posts/recent-posts/" title="2019-01-16 17:50:52" target="_blank" rel="external nofollow noopener noreferrer">在搜索、文章底部、侧栏添加最近文章模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-15 <a href="https://lruihao.cn/posts/mathclass/" title="2019-01-15 17:33:28" target="_blank" rel="external nofollow noopener noreferrer">java 猜数字小游戏(Math 类)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-15 <a href="https://lruihao.cn/posts/duixiang/" title="2019-01-15 16:07:31" target="_blank" rel="external nofollow noopener noreferrer">面向对象基础知识总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/java-range/" title="2019-01-14 17:30:24" target="_blank" rel="external nofollow noopener noreferrer">java 水仙花数(循环)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/java-input/" title="2019-01-14 15:33:46" target="_blank" rel="external nofollow noopener noreferrer">java 录入数据<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-14 <a href="https://lruihao.cn/posts/biaoshi/" title="2019-01-14 15:07:57" target="_blank" rel="external nofollow noopener noreferrer">java 标识符<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-12 <a href="https://lruihao.cn/posts/subject-verb/" title="2019-01-12 13:02:49" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;主谓一致<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>01-12 <a href="https://lruihao.cn/years/2018/" title="2019-01-12 11:09:52" target="_blank" rel="external nofollow noopener noreferrer">2018 年度总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> <h2 class="heading-element" id="2018"><span>2018</span> <a href="#2018" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><details> <summary>共计 91 篇文章</summary> <ul> <li>12-10 <a href="https://lruihao.cn/posts/inversion-3/" title="2018-12-10 21:52:30" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;形式倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-10 <a href="https://lruihao.cn/posts/inversion-2/" title="2018-12-10 21:14:51" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;完全倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>12-08 <a href="https://lruihao.cn/posts/inversion-1/" title="2018-12-08 17:52:39" target="_blank" rel="external nofollow noopener noreferrer">英语语法&ndash;部分倒装<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-24 <a href="https://lruihao.cn/posts/nextplugin/" title="2018-11-24 16:54:09" target="_blank" rel="external nofollow noopener noreferrer">hexo 插件及 next 内置样式集<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-17 <a href="https://lruihao.cn/posts/commit-bat/" title="2018-11-17 14:25:49" target="_blank" rel="external nofollow noopener noreferrer">通过 bat 批处理文件自动提交博客代码<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-12 <a href="https://lruihao.cn/posts/fas-app/" title="2018-11-12 16:04:04" target="_blank" rel="external nofollow noopener noreferrer">博採眾長 app<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-11 <a href="https://lruihao.cn/posts/caddy-file/" title="2018-11-11 13:59:27" target="_blank" rel="external nofollow noopener noreferrer">caddy-两步搭建超简单云盘<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-09 <a href="https://lruihao.cn/posts/next-pdf/" title="2018-11-09 12:51:48" target="_blank" rel="external nofollow noopener noreferrer">next 添加支持 pdf<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-03 <a href="https://lruihao.cn/posts/js-device/" title="2018-11-03 23:35:44" target="_blank" rel="external nofollow noopener noreferrer">js 判断用户设备类型及平台<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>11-03 <a href="https://lruihao.cn/posts/blog-backup/" title="2018-11-03 12:49:28" target="_blank" rel="external nofollow noopener noreferrer">hexo 博客源码备份<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-30 <a href="https://lruihao.cn/posts/git/" title="2018-10-30 08:59:56" target="_blank" rel="external nofollow noopener noreferrer">Git 常用指令汇总<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/beian/" title="2018-10-29 23:16:26" target="_blank" rel="external nofollow noopener noreferrer">网站备案之旅<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/shell/" title="2018-10-29 11:57:39" target="_blank" rel="external nofollow noopener noreferrer">shell 脚本初体验<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-29 <a href="https://lruihao.cn/posts/web-server-yun/" title="2018-10-29 09:15:58" target="_blank" rel="external nofollow noopener noreferrer">云服务器 CentOS 系统搭建 web 服务<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-28 <a href="https://lruihao.cn/posts/href-301/" title="2018-10-28 14:22:00" target="_blank" rel="external nofollow noopener noreferrer">使用 js 准确获取当前页面 url 网址信息及 301 重定向实战<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-26 <a href="https://lruihao.cn/posts/web-server-win/" title="2018-10-26 21:56:18" target="_blank" rel="external nofollow noopener noreferrer">windows 上搭建 web 服务器<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-26 <a href="https://lruihao.cn/posts/gituse/" title="2018-10-26 21:11:02" target="_blank" rel="external nofollow noopener noreferrer">使用 Git 上传代码到 github, coding 等仓库<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-23 <a href="https://lruihao.cn/posts/termux1/" title="2018-10-23 22:16:02" target="_blank" rel="external nofollow noopener noreferrer">termux 基本使用教程<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-17 <a href="https://lruihao.cn/posts/web-font/" title="2018-10-17 21:38:06" target="_blank" rel="external nofollow noopener noreferrer">ttf 字体压缩<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-15 <a href="https://lruihao.cn/posts/linux-hello-c/" title="2018-10-15 21:19:27" target="_blank" rel="external nofollow noopener noreferrer">linux 编程初体验<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-12 <a href="https://lruihao.cn/projects/font-mmt/" title="2018-10-12 19:39:19" target="_blank" rel="external nofollow noopener noreferrer">沐目体<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-09 <a href="https://lruihao.cn/posts/liushuixian/" title="2018-10-09 16:21:04" target="_blank" rel="external nofollow noopener noreferrer">流水线<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>10-08 <a href="https://lruihao.cn/posts/data/" title="2018-10-08 23:01:10" target="_blank" rel="external nofollow noopener noreferrer">计算机数据<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-27 <a href="https://lruihao.cn/posts/night/" title="2018-09-27 13:13:31" target="_blank" rel="external nofollow noopener noreferrer">网页夜间效果<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-26 <a href="https://lruihao.cn/posts/crash-cheat/" title="2018-09-26 16:36:08" target="_blank" rel="external nofollow noopener noreferrer">网页离开时改变标题“崩溃欺骗”<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-22 <a href="https://lruihao.cn/posts/linux-git/" title="2018-09-22 22:28:45" target="_blank" rel="external nofollow noopener noreferrer">linux/centos 下的安装 git<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>09-21 <a href="https://lruihao.cn/posts/mood/" title="2018-09-21 21:11:25" target="_blank" rel="external nofollow noopener noreferrer">每一个优秀的人,都有一段沉默的时光<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-31 <a href="https://lruihao.cn/posts/vim/" title="2018-08-31 11:46:39" target="_blank" rel="external nofollow noopener noreferrer">Vim 速查表<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-30 <a href="https://lruihao.cn/posts/hexo-wordcount/" title="2018-08-30 13:15:50" target="_blank" rel="external nofollow noopener noreferrer">hexo next 主题添加字数统计(2018)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-21 <a href="https://lruihao.cn/posts/hexo-d-error/" title="2018-08-21 22:15:01" target="_blank" rel="external nofollow noopener noreferrer">hexo d 出错<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-20 <a href="https://lruihao.cn/posts/dongtaisub/" title="2018-08-20 16:16:40" target="_blank" rel="external nofollow noopener noreferrer">hexo 个性化 - next 主题动态显示 subtitle<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-15 <a href="https://lruihao.cn/posts/heart/" title="2018-08-15 16:33:12" target="_blank" rel="external nofollow noopener noreferrer">“高逼格”C 语言画心<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-14 <a href="https://lruihao.cn/posts/git-index-lock/" title="2018-08-14 19:21:23" target="_blank" rel="external nofollow noopener noreferrer">git index.lock<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-11 <a href="https://lruihao.cn/posts/termux/" title="2018-08-11 16:59:05" target="_blank" rel="external nofollow noopener noreferrer">在 Android 上搭建 hexo 博客<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/nowcoder157a/" title="2018-08-10 22:11:00" target="_blank" rel="external nofollow noopener noreferrer">石子阵列(组合数学)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/codeforces476a/" title="2018-08-10 20:13:08" target="_blank" rel="external nofollow noopener noreferrer">Dreamoon and Stairs<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/codeforces476b/" title="2018-08-10 17:44:47" target="_blank" rel="external nofollow noopener noreferrer">Dreamoon and WiFi(组合数学)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-10 <a href="https://lruihao.cn/posts/euclid/" title="2018-08-10 10:32:39" target="_blank" rel="external nofollow noopener noreferrer">The equation-SGU106(扩展欧几里得)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-09 <a href="https://lruihao.cn/posts/lightoj1282/" title="2018-08-09 20:55:26" target="_blank" rel="external nofollow noopener noreferrer">Leading and Trailing-lightoj1282(快速幂 + 对数运算)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-09 <a href="https://lruihao.cn/posts/cfcontest1017/" title="2018-08-09 10:48:00" target="_blank" rel="external nofollow noopener noreferrer">Codeforces Round 502(Div.1 + Div.2)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-08 <a href="https://lruihao.cn/posts/euler/" title="2018-08-08 17:10:07" target="_blank" rel="external nofollow noopener noreferrer">欧拉函数<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-06 <a href="https://lruihao.cn/posts/poj1797/" title="2018-08-06 09:42:11" target="_blank" rel="external nofollow noopener noreferrer">Heavy Transportation-poj1797(dijkstra 或最大生成树)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-04 <a href="https://lruihao.cn/posts/console-log/" title="2018-08-04 16:19:06" target="_blank" rel="external nofollow noopener noreferrer">hexo 博客自定义 console log<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-03 <a href="https://lruihao.cn/posts/poj2387/" title="2018-08-03 21:40:33" target="_blank" rel="external nofollow noopener noreferrer">Til the Cows Come Home-poj2387(dijkstra 判断重边)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-03 <a href="https://lruihao.cn/posts/zuiduanlu/" title="2018-08-03 16:27:16" target="_blank" rel="external nofollow noopener noreferrer">最短路入门<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-02 <a href="https://lruihao.cn/posts/nowcodersummer-5th/" title="2018-08-02 21:27:02" target="_blank" rel="external nofollow noopener noreferrer">牛客暑假多校第五场<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-02 <a href="https://lruihao.cn/posts/poj1182/" title="2018-08-02 11:10:37" target="_blank" rel="external nofollow noopener noreferrer">食物链-poj1182(带权并查集经典模板)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-01 <a href="https://lruihao.cn/posts/hdu1272/" title="2018-08-01 21:45:50" target="_blank" rel="external nofollow noopener noreferrer">小希的迷宫-HDU-1272(并查集 or 树性质)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>08-01 <a href="https://lruihao.cn/posts/hdu3038/" title="2018-08-01 11:45:53" target="_blank" rel="external nofollow noopener noreferrer">How Many Answers Are Wrong-hdu3038(带权并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/codeforces680b/" title="2018-07-31 19:32:21" target="_blank" rel="external nofollow noopener noreferrer">Bear and Finding Criminals-Codeforces680B<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/codeforces680a/" title="2018-07-31 19:22:36" target="_blank" rel="external nofollow noopener noreferrer">Bear and Five Cards-Codeforces680A<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/how-tables/" title="2018-07-31 11:12:10" target="_blank" rel="external nofollow noopener noreferrer">how many tables-HDU-1213(并查集求连通域数目)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/poj-1611/" title="2018-07-31 11:11:31" target="_blank" rel="external nofollow noopener noreferrer">The-suspects-POJ-1611(并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/poj-2236/" title="2018-07-31 11:10:54" target="_blank" rel="external nofollow noopener noreferrer">wireless network-POJ-2236(并查集)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/piles-with-stones/" title="2018-07-31 11:09:31" target="_blank" rel="external nofollow noopener noreferrer">Piles-with-stones<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-31 <a href="https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/" title="2018-07-31 11:08:43" target="_blank" rel="external nofollow noopener noreferrer">畅通工程-HDU-1232(并查集经典模板)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-27 <a href="https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/" title="2018-07-27 21:56:08" target="_blank" rel="external nofollow noopener noreferrer">牛客练习赛 23<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-26 <a href="https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/" title="2018-07-26 09:57:32" target="_blank" rel="external nofollow noopener noreferrer">在线离线算法<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-24 <a href="https://lruihao.cn/posts/hdu-1495/" title="2018-07-24 15:34:00" target="_blank" rel="external nofollow noopener noreferrer">HDU-1495-非常可乐(bfs 模拟倒水 or 数论)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-23 <a href="https://lruihao.cn/posts/hdu-2612/" title="2018-07-23 12:34:42" target="_blank" rel="external nofollow noopener noreferrer">hdu-2612-Find a way(双 bfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-3278/" title="2018-07-22 12:10:32" target="_blank" rel="external nofollow noopener noreferrer">POJ-3278-Catch That Cow(bfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-2251/" title="2018-07-22 12:02:32" target="_blank" rel="external nofollow noopener noreferrer">poj-2251-Dungeon Master(三维 bfs 最短路)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-1321/" title="2018-07-22 11:58:14" target="_blank" rel="external nofollow noopener noreferrer">poj-1321 棋盘问题(dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-1426/" title="2018-07-22 11:57:13" target="_blank" rel="external nofollow noopener noreferrer">poj-1426-Find The Multiple(dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/adjacent-replacements/" title="2018-07-22 11:54:14" target="_blank" rel="external nofollow noopener noreferrer">Adjacent Replacements<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/poj-3984/" title="2018-07-22 11:50:20" target="_blank" rel="external nofollow noopener noreferrer">poj-3984-迷宫问题 (bfs 路径)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/wannafly-20/" title="2018-07-22 11:46:25" target="_blank" rel="external nofollow noopener noreferrer">Wannafly 挑战赛 20-染色<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/" title="2018-07-22 11:41:15" target="_blank" rel="external nofollow noopener noreferrer">杨辉三角<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/hdu-1241/" title="2018-07-22 11:37:20" target="_blank" rel="external nofollow noopener noreferrer">hdu-1241-Oil Deposits (dfs)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/" title="2018-07-22 11:31:05" target="_blank" rel="external nofollow noopener noreferrer">BFS 求最短路<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/cf-1009/" title="2018-07-22 11:25:56" target="_blank" rel="external nofollow noopener noreferrer">Educational Codeforces Round 47 (Rated for Div. 2)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/dfs_bfs/" title="2018-07-22 11:25:14" target="_blank" rel="external nofollow noopener noreferrer">深搜广搜<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-22 <a href="https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/" title="2018-07-22 10:55:21" target="_blank" rel="external nofollow noopener noreferrer">TaoTao 要吃鸡<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>07-18 <a href="https://lruihao.cn/posts/wannafly-18/" title="2018-07-18 08:40:21" target="_blank" rel="external nofollow noopener noreferrer">Wannafly 挑战赛 18-序列<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-16 <a href="https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/" title="2018-06-16 13:18:43" target="_blank" rel="external nofollow noopener noreferrer">简单背包<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-15 <a href="https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/" title="2018-06-15 07:51:21" target="_blank" rel="external nofollow noopener noreferrer">18 湘潭邀请赛参赛队员代表发言<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/" title="2018-06-14 23:32:47" target="_blank" rel="external nofollow noopener noreferrer">18 湘潭邀请赛总结<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/f-sorting/" title="2018-06-14 22:49:27" target="_blank" rel="external nofollow noopener noreferrer">F.sorting<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/k-2018/" title="2018-06-14 22:48:16" target="_blank" rel="external nofollow noopener noreferrer">K.2018<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/b-higher/" title="2018-06-14 22:47:28" target="_blank" rel="external nofollow noopener noreferrer">B.Higher h-index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/a-easy/" title="2018-06-14 22:36:58" target="_blank" rel="external nofollow noopener noreferrer">A.Easy h-index<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/c-sort/" title="2018-06-14 20:23:03" target="_blank" rel="external nofollow noopener noreferrer">sort 排序<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/" title="2018-06-14 20:22:21" target="_blank" rel="external nofollow noopener noreferrer">位运算<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-14 <a href="https://lruihao.cn/posts/c-with-stl/" title="2018-06-14 20:22:06" target="_blank" rel="external nofollow noopener noreferrer">C++ with STL<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-07 <a href="https://lruihao.cn/posts/links/" title="2018-06-07 00:06:05" target="_blank" rel="external nofollow noopener noreferrer">各种 Links 汇总与分享<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-03 <a href="https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/" title="2018-06-03 19:41:32" target="_blank" rel="external nofollow noopener noreferrer">戏子春秋<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>06-01 <a href="https://lruihao.cn/posts/hexobuild/" title="2018-06-01 14:34:23" target="_blank" rel="external nofollow noopener noreferrer">hexo+github 搭建个人博客及美化<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-31 <a href="https://lruihao.cn/posts/hexowrite/" title="2018-05-31 23:19:22" target="_blank" rel="external nofollow noopener noreferrer">hexo 添加图片,音乐,链接,视频<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-31 <a href="https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/" title="2018-05-31 10:09:15" target="_blank" rel="external nofollow noopener noreferrer">猴子与哪吒<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-28 <a href="https://lruihao.cn/projects/lruihao/lruihao.github.io/" title="2018-05-28 12:24:11" target="_blank" rel="external nofollow noopener noreferrer">博客构建档(HTML &amp; Markdown)<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li>05-28 <a href="https://lruihao.cn/posts/hello-world/" title="2018-05-28 20:01:01" target="_blank" rel="external nofollow noopener noreferrer">Hello World<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul> </details> ================================================ FILE: collections/project/page/1/index.html ================================================ https://lruihao.cn/collections/project/ ================================================ FILE: collections/project/page/2/index.html ================================================ 开源项目 - 合集 | 菠菜眾長
================================================ FILE: collections/project/page/3/index.html ================================================ 开源项目 - 合集 | 菠菜眾長
================================================ FILE: collections/web-components/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"Web Components - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"黑盒出关・三把钥匙定江湖","date_published":"2025-08-05T11:31:52+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/wc-01-prologue/","url":"https://lruihao.cn/posts/wc-01-prologue/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"image":"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp","summary":"江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\n","content_html":"\u003cp\u003e江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\u003c/p\u003e"}]} ================================================ FILE: collections/web-components/index.html ================================================ Web Components - 合集 | 菠菜眾長

Web Components 1

2025

================================================ FILE: collections/web-components/index.xml ================================================ Web Components - 合集 | 菠菜眾長https://lruihao.cn/collections/web-components/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Tue, 05 Aug 2025 15:37:16 +0800黑盒出关・三把钥匙定江湖https://lruihao.cn/posts/wc-01-prologue/Tue, 05 Aug 2025 11:31:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wc-01-prologue/JavaScriptHTML<p>江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!</p> ================================================ FILE: collections/web-components/page/1/index.html ================================================ https://lruihao.cn/collections/web-components/ ================================================ FILE: collections/拖拽式仪表盘系列/feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"拖拽式仪表盘系列 - 合集 | 菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"拖拽式仪表盘系列总结","date_published":"2023-10-12T21:25:18+08:00","date_modified":"2024-01-17T16:39:29+08:00","id":"https://lruihao.cn/posts/dashboard-summary/","url":"https://lruihao.cn/posts/dashboard-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2","总结"],"summary":"当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\n","content_html":"\u003cp\u003e当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特点和功能\"\u003e\u003cspan\u003e1 特点和功能\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件开发","date_published":"2023-10-12T20:07:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-usage/","url":"https://lruihao.cn/posts/dashborad-widget-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\n","content_html":"\u003cp\u003e本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 模板使用","date_published":"2023-10-12T20:07:20+08:00","date_modified":"2024-04-25T13:29:53+08:00","id":"https://lruihao.cn/posts/dashborad-template-usage/","url":"https://lruihao.cn/posts/dashborad-template-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"image":"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png","summary":"本文将通过一个简单的例子,介绍如何使用仪表盘模板。\n","content_html":"\u003cp\u003e本文将通过一个简单的例子,介绍如何使用仪表盘模板。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件配置文档","date_published":"2023-10-12T19:41:23+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-docs/","url":"https://lruihao.cn/posts/dashborad-widget-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文将对 Dashboard 组件的使用方法进行介绍。\n","content_html":"\u003cp\u003e本文将对 Dashboard 组件的使用方法进行介绍。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 布局模板文档","date_published":"2023-10-12T19:27:49+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-template-docs/","url":"https://lruihao.cn/posts/dashborad-template-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"summary":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。","content_html":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。"},{"title":"拖拽式仪表盘 - 功能需求分析","date_published":"2023-10-12T15:37:30+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashboard-analysis/","url":"https://lruihao.cn/posts/dashboard-analysis/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2","需求分析"],"summary":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。","content_html":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。"}]} ================================================ FILE: collections/拖拽式仪表盘系列/index.html ================================================ 拖拽式仪表盘系列 - 合集 | 菠菜眾長
================================================ FILE: collections/拖拽式仪表盘系列/index.xml ================================================ 拖拽式仪表盘系列 - 合集 | 菠菜眾長https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Thu, 25 Apr 2024 13:29:53 +0800拖拽式仪表盘系列总结https://lruihao.cn/posts/dashboard-summary/Thu, 12 Oct 2023 21:25:18 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashboard-summary/Vue.js<p>当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。</p> <h2 class="heading-element" id="特点和功能"><span>1 特点和功能</span> <a href="#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:</p>拖拽式仪表盘 - 组件开发https://lruihao.cn/posts/dashborad-widget-usage/Thu, 12 Oct 2023 20:07:56 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-widget-usage/Vue.js<p>本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。</p>拖拽式仪表盘 - 模板使用https://lruihao.cn/posts/dashborad-template-usage/Thu, 12 Oct 2023 20:07:20 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-template-usage/Vue.js<p>本文将通过一个简单的例子,介绍如何使用仪表盘模板。</p>拖拽式仪表盘 - 组件配置文档https://lruihao.cn/posts/dashborad-widget-docs/Thu, 12 Oct 2023 19:41:23 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-widget-docs/Vue.js<p>本文将对 Dashboard 组件的使用方法进行介绍。</p>拖拽式仪表盘 - 布局模板文档https://lruihao.cn/posts/dashborad-template-docs/Thu, 12 Oct 2023 19:27:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashborad-template-docs/Vue.jsDashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。拖拽式仪表盘 - 功能需求分析https://lruihao.cn/posts/dashboard-analysis/Thu, 12 Oct 2023 15:37:30 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/dashboard-analysis/Vue.js本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。 ================================================ FILE: collections/拖拽式仪表盘系列/page/1/index.html ================================================ https://lruihao.cn/collections/%E6%8B%96%E6%8B%BD%E5%BC%8F%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%B3%BB%E5%88%97/ ================================================ FILE: css/post-preview.min.22d63f1349092686958bf9ba46b00946e523fb9d80595009f595315374d747e2.css ================================================ /** * Map of code identifiers/languages to Chroma supported languages. * * @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js */ :root { --pp-crop: { { .cropTopPx } } px; } .tippy-popper[data-theme~="pp"] { max-width: none !important; z-index: 99999; } .tippy-tooltip.pp-theme { background: transparent; padding: 0; } .tippy-tooltip.pp-theme .tippy-content { padding: 0; } .tippy-arrow { display: none !important; } .pp-box { --pp-bg: #ffffff; --pp-text: #161209; --pp-text-soft: #4d545c; --pp-border: #e3e3e3; --pp-link: #2376b7; --pp-link-hover: #ea517f; --pp-chip: rgba(227, 227, 227, 0.55); --pp-head-bg: rgba(255, 255, 255, 0.75); width: 420px; max-width: calc(100vw - 24px); height: 30vh; max-height: 680px; min-width: 320px; min-height: 240px; border-radius: 14px; border: 1px solid var(--pp-border); background: var(--pp-bg); box-shadow: var(--pp-shadow); overflow: hidden; color: var(--pp-text); filter: drop-shadow(0 0 0.75rem rgba(0, 0, 0, 0.1)); } .pp-box.pp--dark { --pp-bg: #292a2e; --pp-text: #b1b1ba; --pp-text-soft: #d0d4d8; --pp-border: #454545; --pp-link: #1781b5; --pp-link-hover: #cc5595; --pp-chip: rgba(69, 69, 69, 0.55); --pp-head-bg: rgba(41, 42, 46, 0.55); } [data-theme='dark'] .pp-box { filter: drop-shadow(0 0 0.25rem rgba(0, 0, 0, 0.6)); } .pp-head { display: flex; align-items: center; gap: .6rem; padding: .25rem .75rem; border-bottom: 1px solid var(--pp-border); background: var(--pp-head-bg); } .pp-path { display: flex; align-items: center; gap: .35rem; min-width: 0; flex: 1; } .pp-seg { display: inline-flex; min-width: 0; color: var(--pp-text-soft); text-decoration: none; white-space: nowrap; } .pp-seg:hover { color: var(--pp-text); } .pp-seg__chip { display: inline-flex; align-items: center; height: 22px; padding: 0 .55rem; border-radius: 999px; border: 1px solid var(--pp-chip); font-size: 12px; line-height: 1; max-width: 160px; overflow: hidden; text-overflow: ellipsis; } .pp-sep { color: var(--pp-text-soft); opacity: .8; user-select: none; } .pp-url { display: inline-flex; align-items: center; height: 22px; padding: 0 .55rem; border-radius: 999px; border: 1px solid var(--pp-chip); color: var(--pp-text-soft); text-decoration: none; font-size: 12px; line-height: 1; white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; } .pp-url:hover { color: var(--pp-link-hover); border-color: var(--pp-link-hover); } .pp-close { width: 30px; height: 30px; padding: 0; border: 1px solid var(--pp-chip); background: transparent; color: var(--pp-text); opacity: .85; border-radius: 100%; display: grid; place-items: center; cursor: pointer; } .pp-close:hover { opacity: 1; color: var(--pp-link-hover); border-color: var(--pp-link-hover); } .pp-close__icon { width: 16px; height: 16px; stroke: var(--pp-text); stroke-width: 2.25; stroke-linecap: round; fill: none; display: block; } .pp-body { height: calc(100% - 50px); overflow: auto; content-visibility: auto; contain: content; -webkit-overflow-scrolling: touch; } .pp-doc { padding: .75rem; } .pp-doc__inner { transform: translateY(calc(-1 * var(--pp-crop))); padding-top: var(--pp-crop); } .pp-doc__inner article { width: 99% !important; } .pp-doc__inner .archive { width: 90% !important; } .pp-doc__inner .single-title { padding: 0 !important; font-size: 1.3rem; } .pp-doc img { max-width: 100%; height: auto; border-radius: 10px; } .pp-doc a { color: var(--pp-link); text-decoration-thickness: .08em; } .pp-doc a:hover { color: var(--pp-link-hover); } ================================================ FILE: feed.json ================================================ {"version":"https://jsonfeed.org/version/1.1","title":"菠菜眾長","description":"Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。","home_page_url":"https://lruihao.cn/","language":"zh-CN","icon":"https://lruihao.cn/apple-touch-icon.png","favicon":"https://lruihao.cn/favicon.ico","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://lruihao.cn/images/avatar.jpg"}],"items":[{"title":"一个轻量化 Tooltip 组件。","date_published":"2026-03-06T06:58:23Z","date_modified":"2026-03-30T06:51:12Z","id":"https://lruihao.cn/projects/lruihao/cell-tooltip/","url":"https://lruihao.cn/projects/lruihao/cell-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"cell-tooltip 一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap tooltip.js,保留常用能力并尽量减少体积与依赖。\n特性 支持触发方式:hover / focus / click / manual 支持位置:top / bottom / left / right / auto 支持延迟配置(show / hide) 支持 data-ct-* 属性初始化 支持实例方法:show / hide / toggle / update / dispose 内置箭头与基础样式,无第三方依赖 本地运行 pnpm install pnpm dev构建库产物:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cell-tooltip\" data-decreased\u003e\u003cspan\u003ecell-tooltip\u003c/span\u003e\n \u003ca href=\"#cell-tooltip\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap \u003ccode\u003etooltip.js\u003c/code\u003e,保留常用能力并尽量减少体积与依赖。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持触发方式:\u003ccode\u003ehover\u003c/code\u003e / \u003ccode\u003efocus\u003c/code\u003e / \u003ccode\u003eclick\u003c/code\u003e / \u003ccode\u003emanual\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持位置:\u003ccode\u003etop\u003c/code\u003e / \u003ccode\u003ebottom\u003c/code\u003e / \u003ccode\u003eleft\u003c/code\u003e / \u003ccode\u003eright\u003c/code\u003e / \u003ccode\u003eauto\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e支持延迟配置(\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持 \u003ccode\u003edata-ct-*\u003c/code\u003e 属性初始化\u003c/li\u003e\n\u003cli\u003e支持实例方法:\u003ccode\u003eshow\u003c/code\u003e / \u003ccode\u003ehide\u003c/code\u003e / \u003ccode\u003etoggle\u003c/code\u003e / \u003ccode\u003eupdate\u003c/code\u003e / \u003ccode\u003edispose\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e内置箭头与基础样式,无第三方依赖\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"本地运行\"\u003e\u003cspan\u003e本地运行\u003c/span\u003e\n \u003ca href=\"#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epnpm install\npnpm dev\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e构建库产物:\u003c/p\u003e"},{"title":"A Christmas Easter Egg by JavaScript.","date_published":"2025-12-24T03:31:47Z","date_modified":"2026-05-04T16:54:23Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","theme-component"],"summary":" 🎄 Santa Hat | FixIt 一个 JavaScript 实现的圣诞节小彩蛋。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 特性 🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰 🎯 自动检测当前日期,无需手动开关 💫 轻量级实现,不影响网站性能 要求 FixIt v0.4.0 或更高版本。 安装组件 安装方式与 安装主题 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003e🎄 Santa Hat | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个 JavaScript 实现的圣诞节小彩蛋。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt=\"santa-hat\"\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰\u003c/li\u003e\n\u003cli\u003e🎯 自动检测当前日期,无需手动开关\u003c/li\u003e\n\u003cli\u003e💫 轻量级实现,不影响网站性能\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 或更高版本。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方式与 \u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。\u003c/p\u003e"},{"title":"Command line tool for generating a changelog from git tags and commit history","date_published":"2025-08-30T15:40:19Z","date_modified":"2025-11-19T04:35:56Z","id":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","url":"https://lruihao.cn/projects/lruihao/auto-changelog-plus/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["auto-changelog","conventional-changelog","conventional-commits","semver"],"summary":"auto-changelog-plus 中文 | English\n从 git 提交历史自动生成 changelog 的命令行工具。\n基于 auto-changelog 和 约定式提交 规范。\n📦 安装 npm install -g auto-changelog-plus🚀 用法 在 git 仓库根目录运行 auto-changelog-plus 或者 acp。工具会在后台运行 git log 来解析提交历史。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"auto-changelog-plus\" data-decreased\u003e\u003cspan\u003eauto-changelog-plus\u003c/span\u003e\n \u003ca href=\"#auto-changelog-plus\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e从 git 提交历史自动生成 changelog 的命令行工具。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于 \u003ca href=\"https://github.com/CookPete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto-changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 和 \u003ca href=\"https://www.conventionalcommits.org/zh-hans/v1.0.0/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e约定式提交\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 规范。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/auto-changelog-plus_7979101328369740159.svg' alt=\"npm version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-安装\"\u003e\u003cspan\u003e📦 安装\u003c/span\u003e\n \u003ca href=\"#-%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install -g auto-changelog-plus\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"-用法\"\u003e\u003cspan\u003e🚀 用法\u003c/span\u003e\n \u003ca href=\"#-%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 git 仓库根目录运行 \u003ccode\u003eauto-changelog-plus\u003c/code\u003e 或者 \u003ccode\u003eacp\u003c/code\u003e。工具会在后台运行 \u003ccode\u003egit log\u003c/code\u003e 来解析提交历史。\u003c/p\u003e"},{"title":"让 Mermaid 图表自动跟随系统深浅色","date_published":"2025-08-16T12:37:49+08:00","date_modified":"2025-08-16T14:56:28+08:00","id":"https://lruihao.cn/posts/mermaid-theming/","url":"https://lruihao.cn/posts/mermaid-theming/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["invert filter","Mermaid","prefers-color-scheme","FixIt"],"image":"https://lruihao.cn/posts/mermaid-theming/featured-image.webp","summary":"Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\n","content_html":"\u003cp\u003eMermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。\u003cbr\u003e\n不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。\u003c/p\u003e"},{"title":"黑盒出关・三把钥匙定江湖","date_published":"2025-08-05T11:31:52+08:00","date_modified":"2025-08-05T15:37:16+08:00","id":"https://lruihao.cn/posts/wc-01-prologue/","url":"https://lruihao.cn/posts/wc-01-prologue/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Custom element","Shadow DOM","template","slot"],"image":"https://lruihao.cn/posts/wc-01-prologue/featured-image.webp","summary":"江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\n","content_html":"\u003cp\u003e江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!\u003c/p\u003e"},{"title":"Code Playground","date_published":"2025-08-04T11:37:24+08:00","date_modified":"2025-08-27T12:30:22+08:00","id":"https://lruihao.cn/posts/code-playground/","url":"https://lruihao.cn/posts/code-playground/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","npm"],"summary":"以下是常见的在线代码演示和开发环境服务,适合不同场景使用:\n","content_html":"\u003cp\u003e以下是常见的在线代码演示和开发环境服务,适合不同场景使用:\u003c/p\u003e"},{"title":"A custom web component that embeds caniuse.com browser compatibility data for a specific feature.","date_published":"2025-07-22T03:40:45Z","date_modified":"2026-04-08T08:41:40Z","id":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","url":"https://lruihao.cn/projects/lruihao/caniuse-embed-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["caniuse","caniuse-embed","custom-elements","web-components"],"summary":"\u0026lt;caniuse-embed\u0026gt; 元素 English | 简体中文\n一个轻量级、可定制的 Web 组件,用于嵌入 caniuse.com 的特定 Web 功能的浏览器兼容性数据。使用 Lit 构建,设计为可无缝集成到任何 Web 项目中。\n🌟 在线演示\n","content_html":"\u003ch2 class=\"heading-element\" id=\"caniuse-embed-元素\" data-decreased\u003e\u003cspan\u003e\u003ccode\u003e\u0026lt;caniuse-embed\u0026gt;\u003c/code\u003e 元素\u003c/span\u003e\n \u003ca href=\"#caniuse-embed-%e5%85%83%e7%b4%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@cell-x/caniuse-embed-element\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_12896476513186770746.svg' alt=\"npm version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/caniuse-embed-element_10890580896062364980.svg' alt=\"License\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e | 简体中文\u003c/p\u003e\n\u003cp\u003e一个轻量级、可定制的 Web 组件,用于嵌入 \u003ca href=\"https://caniuse.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaniuse.com\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的特定 Web 功能的浏览器兼容性数据。使用 \u003ca href=\"https://lit.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 构建,设计为可无缝集成到任何 Web 项目中。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://caniuse-el.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌟 \u003cstrong\u003e在线演示\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"A custom element for viewing and interacting with JSON data.","date_published":"2025-07-19T07:05:07Z","date_modified":"2026-04-08T08:42:59Z","id":"https://lruihao.cn/projects/lruihao/json-viewer-element/","url":"https://lruihao.cn/projects/lruihao/json-viewer-element/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"\u0026lt;json-viewer\u0026gt; Element 简体中文 | English\n🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\n功能特性 🌟 Web 组件:原生,无框架依赖 🎨 主题:支持明暗模式 📦 盒装:可选边框与内边距 📋 可复制:一键复制 JSON 🔑 排序:支持键排序 🔍 展开深度:可控初始展开层级 🧩 自定义复制按钮:slot 插槽支持 🧬 类型高亮:多种类型高亮 🛠️ 自定义事件:支持 copy/toggle 事件监听 使用方法 安装 npm install json-viewer-element引入 作为模块 import 'json-viewer-element'UMD (CDN) 基本用法 手动绑定 value:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"json-viewer-element\" data-decreased\u003e\u003cspan\u003e\u0026lt;json-viewer\u0026gt; Element\u003c/span\u003e\n \u003ca href=\"#json-viewer-element\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e简体中文 | \u003ca href=\"https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能特性\"\u003e\u003cspan\u003e功能特性\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e🌟 \u003cstrong\u003eWeb 组件\u003c/strong\u003e:原生,无框架依赖\u003c/li\u003e\n\u003cli\u003e🎨 \u003cstrong\u003e主题\u003c/strong\u003e:支持明暗模式\u003c/li\u003e\n\u003cli\u003e📦 \u003cstrong\u003e盒装\u003c/strong\u003e:可选边框与内边距\u003c/li\u003e\n\u003cli\u003e📋 \u003cstrong\u003e可复制\u003c/strong\u003e:一键复制 JSON\u003c/li\u003e\n\u003cli\u003e🔑 \u003cstrong\u003e排序\u003c/strong\u003e:支持键排序\u003c/li\u003e\n\u003cli\u003e🔍 \u003cstrong\u003e展开深度\u003c/strong\u003e:可控初始展开层级\u003c/li\u003e\n\u003cli\u003e🧩 \u003cstrong\u003e自定义复制按钮\u003c/strong\u003e:slot 插槽支持\u003c/li\u003e\n\u003cli\u003e🧬 \u003cstrong\u003e类型高亮\u003c/strong\u003e:多种类型高亮\u003c/li\u003e\n\u003cli\u003e🛠️ \u003cstrong\u003e自定义事件\u003c/strong\u003e:支持 copy/toggle 事件监听\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"使用方法\"\u003e\u003cspan\u003e使用方法\u003c/span\u003e\n \u003ca href=\"#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003enpm install json-viewer-element\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"引入\"\u003e\u003cspan\u003e引入\u003c/span\u003e\n \u003ca href=\"#%e5%bc%95%e5%85%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003ch4 class=\"heading-element\" id=\"作为模块\"\u003e\u003cspan\u003e作为模块\u003c/span\u003e\n \u003ca href=\"#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003eimport 'json-viewer-element'\u003c/code\u003e\u003c/pre\u003e\u003ch4 class=\"heading-element\" id=\"umd-cdn\"\u003e\u003cspan\u003eUMD (CDN)\u003c/span\u003e\n \u003ca href=\"#umd-cdn\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h4\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript src=\"https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"基本用法\"\u003e\u003cspan\u003e基本用法\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e手动绑定 value:\u003c/p\u003e"},{"title":"CSS @layer:构建更高效、更可维护的样式层级","date_published":"2025-06-18T10:35:47+08:00","date_modified":"2025-06-18T12:41:26+08:00","id":"https://lruihao.cn/posts/at-layer/","url":"https://lruihao.cn/posts/at-layer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","@layer"],"summary":"在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 @layer 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法,带你一探究竟。\n","content_html":"\u003cp\u003e在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 \u003ccode\u003e@layer\u003c/code\u003e 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 \u003ccode\u003e@layer\u003c/code\u003e 的背景、作用以及语法,带你一探究竟。\u003c/p\u003e"},{"title":"Vue.js History 模式下的 NGINX 配置与 API 代理","date_published":"2025-06-11T10:05:36+08:00","date_modified":"2025-06-11T10:15:18+08:00","id":"https://lruihao.cn/posts/vue-build/","url":"https://lruihao.cn/posts/vue-build/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["nginx","Vue3","proxy"],"summary":" 在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。\n","content_html":"\u003c!-- 本文由 Poe AI 提供 --\u003e\n\u003cp\u003e在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。\u003c/p\u003e"},{"title":"The webfont package for the MMT typeface.","date_published":"2025-04-10T08:35:34Z","date_modified":"2026-01-05T07:25:04Z","id":"https://lruihao.cn/projects/lruihao/mmt-webfont/","url":"https://lruihao.cn/projects/lruihao/mmt-webfont/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cjk","mmt","vue3","webfont"],"summary":"MMT webfont package The webfont package for the MMT typeface.\nDemo MMT typeface online demo\n","content_html":"\u003ch2 class=\"heading-element\" id=\"mmt-webfont-package\" data-decreased\u003e\u003cspan\u003eMMT webfont package\u003c/span\u003e\n \u003ca href=\"#mmt-webfont-package\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe webfont package for the \u003ca href=\"https://github.com/Lruihao/mmt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e typeface.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/mmt-webfont/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMMT typeface online demo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"API proxies powered by Vercel.","date_published":"2025-04-09T02:13:22Z","date_modified":"2026-03-10T07:05:02Z","id":"https://lruihao.cn/projects/lruihao/vercel-proxy/","url":"https://lruihao.cn/projects/lruihao/vercel-proxy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel API Proxy API proxies powered by Vercel.\n[toc]\nHosts https://api.lruihao.cn https://cell-api.vercel.app API List Go to the Vercel API Proxy and select the API you want to use.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-api-proxy\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#vercel-api-proxy\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eAPI proxies powered by Vercel.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e[toc]\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"hosts\"\u003e\u003cspan\u003eHosts\u003c/span\u003e\n \u003ca href=\"#hosts\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://api.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://api.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://cell-api.vercel.app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"api-list\"\u003e\u003cspan\u003eAPI List\u003c/span\u003e\n \u003ca href=\"#api-list\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eGo to the \u003ca href=\"https://cell-api.vercel.app\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVercel API Proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e and select the API you want to use.\u003c/p\u003e"},{"title":"CSS Flexbox 布局指南","date_published":"2025-01-20T15:56:38+08:00","date_modified":"2025-01-20T17:49:35+08:00","id":"https://lruihao.cn/posts/flexbox/","url":"https://lruihao.cn/posts/flexbox/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Flexbox"],"image":"https://lruihao.cn/posts/flexbox/images/featured-image.webp","summary":"本指南完整解释了弹性盒子(Flexible Box)的所有内容,重点介绍了父元素(弹性容器)和子元素(弹性项目)的所有不同可能属性。\n","content_html":"\u003cp\u003e本指南完整解释了弹性盒子(Flexible Box)的所有内容,重点介绍了父元素(弹性容器)和子元素(弹性项目)的所有不同可能属性。\u003c/p\u003e"},{"title":"Generate a list of all hugo-fixit theme components.","date_published":"2025-01-14T09:10:09Z","date_modified":"2026-05-06T03:13:04Z","id":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","url":"https://lruihao.cn/projects/hugo-fixit/action-component-list/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["github-actions"],"summary":"action-component-list | FixIt This is a GitHub Action to generate a list of all hugo-fixit theme components.\nHow to use You can reference different stable versions of this action. For more information, see Versioning in the GitHub Actions toolkit.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"action-component-list--fixit\" data-decreased\u003e\u003cspan\u003eaction-component-list | FixIt\u003c/span\u003e\n \u003ca href=\"#action-component-list--fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/super-linter/super-linter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_14033786788092036044.svg' alt=\"GitHub Super-Linter\"\u003e\u003c/a\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/badge_12862037500024650352.svg' alt=\"CI\"\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/check-dist.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_17453161718063467893.svg' alt=\"Check dist/\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/hugo-fixit/action-component-list/actions/workflows/codeql-analysis.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_9366593515159455299.svg' alt=\"CodeQL\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is a GitHub Action to generate a list of all hugo-fixit theme components.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"how-to-use\"\u003e\u003cspan\u003eHow to use\u003c/span\u003e\n \u003ca href=\"#how-to-use\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eYou can reference different stable versions of this action. For more\ninformation, see\n\u003ca href=\"https://github.com/actions/toolkit/blob/master/docs/action-versioning.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVersioning\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\nin the GitHub Actions toolkit.\u003c/p\u003e"},{"title":"A Hugo theme component with asciinema-embed shortcode.","date_published":"2025-01-08T09:20:48Z","date_modified":"2026-04-20T07:20:15Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["asciinema","hugo","shortcodes","theme-component"],"summary":" shortcode-asciinema | FixIt 一个带有 asciinema-embed shortcode 的 Hugo 主题组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 安装主题#CLI | FixIt\n要求 适用于所有 Hugo 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eshortcode-asciinema | FixIt\u003c/h1\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个带有 \u003ccode\u003easciinema-embed\u003c/code\u003e shortcode 的 Hugo 主题组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/shortcode-asciinema/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/shortcode-asciinema/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/#cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题#CLI | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e适用于所有 Hugo 主题。\u003c/p\u003e"},{"title":"震惊!CSS 竟然能获取视口尺寸?","date_published":"2024-12-06T10:32:22+08:00","date_modified":"2024-12-06T11:51:15+08:00","id":"https://lruihao.cn/posts/css-viewport/","url":"https://lruihao.cn/posts/css-viewport/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS"],"summary":"在这篇文章中,我们将探讨如何使用 CSS 获取视口尺寸,并展示一个简单的实现示例。\n","content_html":"\u003cp\u003e在这篇文章中,我们将探讨如何使用 CSS 获取视口尺寸,并展示一个简单的实现示例。\u003c/p\u003e"},{"title":"🌐 A component for site automatic translation.","date_published":"2024-12-02T07:29:57Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","i18n","theme-component","translatejs"],"summary":" Auto Translate | FixIt 一个基于 translate.js 实现网站自动翻译的组件。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 Demo 无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\n多语言 Hugo 站点:fixit.lruihao.cn 单语言 Hugo 站点:lruihao.cn 在网站右上角切换配置的翻译语言,或者在 URL 中添加 ?lang= 参数指定任意支持的翻译语言。例如:?lang=korean。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eAuto Translate | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/10ab49bb-973f-4630-9a79-9639783bab06_16060524988079966765.gif' alt=\"auto-translate\" height=\"293\" width=\"797\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e一个基于 \u003ca href=\"https://github.com/xnx3/translate\"\u003etranslate.js\u003c/a\u003e 实现网站自动翻译的组件。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-translate/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-translate/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-translate/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e无论原站点是多语言还是单语言,都可以通过此组件额外增加自动翻译功能。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e多语言 Hugo 站点:\u003ca href=\"https://fixit.lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e单语言 Hugo 站点:\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e在网站右上角切换配置的翻译语言,或者在 URL 中添加 \u003ccode\u003e?lang=\u003c/code\u003e 参数指定任意\u003ca href=\"https://api.translate.zvo.cn/language.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e支持的翻译语言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。例如:\u003ccode\u003e?lang=korean\u003c/code\u003e。\u003c/p\u003e"},{"title":"🐟 A canvas implemented animation effect of small fish swimming.","date_published":"2024-11-05T08:23:29Z","date_modified":"2025-12-27T08:05:18Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["canvas","hugo","hugo-fixit","theme-component"],"summary":"Fly Fish 👉 简体中文说明 | English README\n一个 canvas 实现的小鱼游动动画效果。\nDemo https://lruihao.cn\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fly-fish\" data-decreased\u003e\u003cspan\u003eFly Fish\u003c/span\u003e\n \u003ca href=\"#fly-fish\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/cmpt-flyfish/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish README\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e一个 canvas 实现的小鱼游动动画效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"自动获取 GitHub README 内容添加到 Hugo 文章","date_published":"2024-10-06T11:10:22+08:00","date_modified":"2024-10-06T12:21:43+08:00","id":"https://lruihao.cn/posts/content-adapters/","url":"https://lruihao.cn/posts/content-adapters/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","GitHub API"],"image":"https://lruihao.cn/posts/content-adapters/featured-image.webp","summary":"在这个博客中,我经常会写一些关于开源项目的文章,而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步,我希望能够自动获取 GitHub 仓库的 README 内容,然后添加到 Hugo 文章中。这样,我就不用再手动复制粘贴 README 内容了。\n","content_html":"\u003cp\u003e在这个博客中,我经常会写一些关于开源项目的文章,而这些开源项目通常都是托管在 GitHub 上的。为了方便内容同步,我希望能够自动获取 GitHub 仓库的 README 内容,然后添加到 Hugo 文章中。这样,我就不用再手动复制粘贴 README 内容了。\u003c/p\u003e"},{"title":"不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。","date_published":"2024-09-13T02:36:29Z","date_modified":"2026-05-06T03:02:30Z","id":"https://lruihao.cn/projects/lruihao/html-demo/","url":"https://lruihao.cn/projects/lruihao/html-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["html-css-javascript"],"summary":"HTML demos 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\n文件预览 直接浏览器打开 src 目录下的 HTML 文件。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"html-demos\" data-decreased\u003e\u003cspan\u003eHTML demos\u003c/span\u003e\n \u003ca href=\"#html-demos\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"文件预览\"\u003e\u003cspan\u003e文件预览\u003c/span\u003e\n \u003ca href=\"#%e6%96%87%e4%bb%b6%e9%a2%84%e8%a7%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e直接浏览器打开 \u003ccode\u003esrc\u003c/code\u003e 目录下的 HTML 文件。\u003c/p\u003e"},{"title":"⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)","date_published":"2024-09-04T18:10:59Z","date_modified":"2025-12-10T03:29:52Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["auto-changelog","changelog","continuous-integration","conventional-changelog","conventional-commits","hugo-fixit","nodejs","rolldown","semver"],"summary":"FixIt Releaser 中文 | English\n版本控制、变更日志和发布工具。\n小心\n该工具已停止维护!建议使用 auto changelog plus 或者 auto changelog 生成日志。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-releaser\" data-decreased\u003e\u003cspan\u003eFixIt Releaser\u003c/span\u003e\n \u003ca href=\"#fixit-releaser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/@hugo-fixit/fixit-releaser\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-releaser_6796436360881312506.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-releaser/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e版本控制、变更日志和发布工具。\u003c/p\u003e\n\u003cdiv class=\"alert alert-caution\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M4.47.22A.749.749.0 015 0h6c.199.0.389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749.0 01-.22.53l-4.25 4.25A.749.749.0 0111 16H5a.749.749.0 01-.53-.22L.22 11.53A.749.749.0 010 11V5c0-.199.079-.389.22-.53zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5zM8 4a.75.75.0 01.75.75v3.5a.75.75.0 01-1.5.0v-3.5A.75.75.0 018 4zm0 8a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e小心\u003c/p\u003e\u003cp\u003e该工具已停止维护!建议使用 \u003ca href=\"https://github.com/Lruihao/auto-changelog-plus\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog plus\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 或者 \u003ca href=\"https://github.com/cookpete/auto-changelog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eauto changelog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 生成日志。\u003c/p\u003e"},{"title":"Hugo theme component for ATOM feed custom Output Format.","date_published":"2024-08-22T03:29:22Z","date_modified":"2025-12-20T06:45:59Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["atom","feed","hugo","theme-component"],"summary":"Hugo ATOM Feed 中文 | English\nHugo 主题组件,用于自定义 ATOM feed 输出格式。\n该组件为您的站点启用 ATOM feeds。\n安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-atom-feed\" data-decreased\u003e\u003cspan\u003eHugo ATOM Feed\u003c/span\u003e\n \u003ca href=\"#hugo-atom-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-atom-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 ATOM feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 ATOM feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Hugo theme component for JSON feed custom Output Format.","date_published":"2024-08-22T03:28:23Z","date_modified":"2025-12-20T06:44:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","json-feed","theme-component"],"summary":"Hugo JSON Feed 中文 | English\nHugo 主题组件,用于自定义 JSON feed 输出格式。\n该组件为您的站点启用 JSON feeds。\n演示 主页 Feed 文章 Feed 列表 Feed 安装组件 安装方法与安装主题相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-json-feed\" data-decreased\u003e\u003cspan\u003eHugo JSON Feed\u003c/span\u003e\n \u003ca href=\"#hugo-json-feed\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/hugo-json-feed/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHugo 主题组件,用于自定义 JSON feed 输出格式。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e该组件为您的站点启用 JSON feeds。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"演示\"\u003e\u003cspan\u003e演示\u003c/span\u003e\n \u003ca href=\"#%e6%bc%94%e7%a4%ba\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e主页 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/posts/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文章 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/collections/project/feed.json\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e列表 Feed\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装组件\"\u003e\u003cspan\u003e安装组件\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与\u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e相同。有几种安装方式,选择一种,例如通过 Hugo Modules 安装:\u003c/p\u003e"},{"title":"Mobile devtools component powered by vConsole and eruda.","date_published":"2024-08-07T05:49:13Z","date_modified":"2025-07-04T02:38:28Z","id":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","url":"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["eruda","hugo","theme-component","vconsole"],"summary":"cmpt-mdevtools Mobile devtools component powered by vConsole and eruda.\nRequirements FixIt v0.4.0 or later. eruda vConsole Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cmpt-mdevtools\" data-decreased\u003e\u003cspan\u003ecmpt-mdevtools\u003c/span\u003e\n \u003ca href=\"#cmpt-mdevtools\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eMobile devtools component powered by vConsole and eruda.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 or later.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/liriliri/eruda\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeruda\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Tencent/vConsole\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evConsole\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"现代 CSS 解决方案:CSS 四舍五入数值单位","date_published":"2024-07-29T20:32:39+08:00","date_modified":"2024-10-13T12:28:31+08:00","id":"https://lruihao.cn/posts/css-round/","url":"https://lruihao.cn/posts/css-round/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","round"],"summary":"本文将介绍另外一个非常实用的 CSS 数学函数 - round() 及其实际应用场景。\n","content_html":"\u003cp\u003e本文将介绍另外一个非常实用的 CSS 数学函数 - \u003ccode\u003eround()\u003c/code\u003e 及其实际应用场景。\u003c/p\u003e"},{"title":"A Hugo theme component with reward-log or sponsor-log shortcode.","date_published":"2024-07-21T14:02:29Z","date_modified":"2025-11-08T18:49:59Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","reward-log","shortcodes","theme-component"],"summary":"shortcode-rewards A Hugo theme component with reward-log or sponsor-log shortcode.\nDemo FixIt Docs Lruihao\u0026rsquo;s Blog Requirements Developed based on the FixIt Timeline plugin.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-rewards\" data-decreased\u003e\u003cspan\u003eshortcode-rewards\u003c/span\u003e\n \u003ca href=\"#shortcode-rewards\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eA Hugo theme component with \u003ccode\u003ereward-log\u003c/code\u003e or \u003ccode\u003esponsor-log\u003c/code\u003e shortcode.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/contributing/overview/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt Docs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/about/#sponsor\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eDeveloped based on the FixIt Timeline plugin.\u003c/p\u003e"},{"title":"Git 统计代码量","date_published":"2024-07-17T16:06:08+08:00","date_modified":"2024-07-17T18:34:56+08:00","id":"https://lruihao.cn/posts/git-summary/","url":"https://lruihao.cn/posts/git-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"使用 Git 命令统计在某段时间内项目中的代码量。\n","content_html":"\u003cp\u003e使用 Git 命令统计在某段时间内项目中的代码量。\u003c/p\u003e"},{"title":"现代 CSS 解决方案之异形元素怎么设置阴影?","date_published":"2024-07-15T10:40:12+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/drop-shadow/","url":"https://lruihao.cn/posts/drop-shadow/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","drop-shadow","box-shadow"],"summary":"今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\n","content_html":"\u003cp\u003e今天记录一个 CSS 小知识点,如何给异形元素设置阴影。\u003c/p\u003e"},{"title":"🔖 Embed bookmark of FixIt Docs.","date_published":"2024-07-14T07:39:56Z","date_modified":"2025-12-27T08:36:41Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-docs-bookmark","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"fixit-docs-bookmark 🔖 Embed bookmark of FixIt Docs.\nRequirements FixIt v0.4.0 or later. Install Component The installation method is the same as installing a theme. There are several ways to install, choose one, for example, install through Hugo Modules:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-docs-bookmark\" data-decreased\u003e\u003cspan\u003efixit-docs-bookmark\u003c/span\u003e\n \u003ca href=\"#fixit-docs-bookmark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e🔖 Embed bookmark of FixIt Docs.\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/featured-image_6457757536129463297.webp' alt=\"preview\" height=\"668\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"requirements\"\u003e\u003cspan\u003eRequirements\u003c/span\u003e\n \u003ca href=\"#requirements\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eFixIt v0.4.0 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"install-component\"\u003e\u003cspan\u003eInstall Component\u003c/span\u003e\n \u003ca href=\"#install-component\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe installation method is the same as \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003einstalling a theme\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e. There are several ways to install, choose one, for example, install through Hugo Modules:\u003c/p\u003e"},{"title":"CSS 实现时间轴、背景图 loading 和渐变边框","date_published":"2024-07-14T13:03:31+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/fixit-docs-bookmark/","url":"https://lruihao.cn/posts/fixit-docs-bookmark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"image":"https://lruihao.cn/posts/fixit-docs-bookmark/images/featured-image.webp","summary":"本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\n","content_html":"\u003cp\u003e本文将通过一个实际应用场景,展示如何使用现代 CSS 实现时间轴、背景图 loading 效果、渐变边框等效果。\u003c/p\u003e"},{"title":"标准滚动条控制规范","date_published":"2024-06-28T22:29:03+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/scrollbar-styling/","url":"https://lruihao.cn/posts/scrollbar-styling/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","scrollbar-styling"],"summary":"使用 scrollbar-width 和 scrollbar-color 属性设置滚动条的样式。\n","content_html":"\u003cp\u003e使用 \u003ccode\u003escrollbar-width\u003c/code\u003e 和 \u003ccode\u003escrollbar-color\u003c/code\u003e 属性设置滚动条的样式。\u003c/p\u003e"},{"title":"A Hugo theme component with caniuse shortcode.","date_published":"2024-06-28T06:56:32Z","date_modified":"2026-05-06T03:02:29Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["caniuse-embed","hugo","hugo-fixit","shortcodes","theme-component"],"summary":"Hugo shortcode for CanIUse 在 Hugo 中使用 shortcode 方式内嵌 CanIUse 到你的文章中。\n依赖 FixIt 主题 v0.4.0 及以上版本。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shortcode-for-caniuse\" data-decreased\u003e\u003cspan\u003eHugo shortcode for CanIUse\u003c/span\u003e\n \u003ca href=\"#hugo-shortcode-for-caniuse\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Hugo 中使用 \u003ccode\u003eshortcode\u003c/code\u003e 方式内嵌 \u003ca href=\"https://caniuse.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCanIUse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 到你的文章中。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/caniuse.webp' alt=\"caniuse example\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='https://raw.githubusercontent.com/hugo-fixit/shortcode-caniuse/refs/heads/main./preview/baseline.png' alt=\"baseline example\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"依赖\"\u003e\u003cspan\u003e依赖\u003c/span\u003e\n \u003ca href=\"#%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eFixIt 主题 \u003ccode\u003ev0.4.0\u003c/code\u003e 及以上版本。\u003c/p\u003e"},{"title":"如何实现 VSCode 编辑器窗口边界拖拽类似功能","date_published":"2024-06-13T21:03:12+08:00","date_modified":"2024-06-17T18:08:34+08:00","id":"https://lruihao.cn/posts/aside-toggle-drag/","url":"https://lruihao.cn/posts/aside-toggle-drag/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","CSS","JavaScript"],"summary":"边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。\n","content_html":"\u003cp\u003e边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。\u003c/p\u003e"},{"title":"架构之基:从根儿上了解设计原则","date_published":"2024-06-09T02:24:31+08:00","date_modified":"2024-06-09T02:57:55+08:00","id":"https://lruihao.cn/posts/design-principles/","url":"https://lruihao.cn/posts/design-principles/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Design Patterns","Java"],"summary":"设计模式不是必须的,但是如果你的代码是“非一次性的”,那么它就是必须的。","content_html":"设计模式不是必须的,但是如果你的代码是“非一次性的”,那么它就是必须的。"},{"title":"怎么生成暗黑模式和明亮模式的 SVG 图片?","date_published":"2024-06-06T22:13:26+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/svg-dark-light/","url":"https://lruihao.cn/posts/svg-dark-light/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","SVG","hugo"],"summary":"在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。\n","content_html":"\u003cp\u003e在做博客顶部栏下落奶油图的时候,就在想怎么适配暗黑模式和明亮模式呢?本文将记录两个思路。\u003c/p\u003e"},{"title":"利用 Vercel 反代 Gravatar 实现镜像加速","date_published":"2024-04-17T12:51:35+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/vercel-gravatar/","url":"https://lruihao.cn/projects/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vercel","Gravatar"],"summary":"在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\n","content_html":"\u003cp\u003e在开发和部署网站时,经常会遇到加载外部资源较慢的问题。其中之一就是加载 Gravatar 头像图片时可能会受到网络延迟的影响。为了解决这个问题,我们可以利用 Vercel 平台的反向代理功能来实现镜像加速。\u003c/p\u003e"},{"title":"Gravatar Proxy powered by Vercel.","date_published":"2024-04-17T01:37:06Z","date_modified":"2025-08-18T17:42:18Z","id":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","url":"https://lruihao.cn/projects/lruihao/vercel-gravatar/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["gravatar","vercel"],"summary":"Vercel Gravatar 注意\nSuperseded by Lruihao/vercel-proxy.\nGravatar Proxy powered by Vercel.\nGo to test Gravatar:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vercel-gravatar\" data-decreased\u003e\u003cspan\u003eVercel Gravatar\u003c/span\u003e\n \u003ca href=\"#vercel-gravatar\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003eSuperseded by \u003ca href=\"https://github.com/Lruihao/vercel-proxy\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao/vercel-proxy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/div\u003e\u003cp\u003eGravatar Proxy powered by Vercel.\u003c/p\u003e\n\u003cp\u003eGo to test Gravatar:\u003c/p\u003e"},{"title":"🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.","date_published":"2024-04-09T21:38:42Z","date_modified":"2026-05-06T03:02:26Z","id":"https://lruihao.cn/projects/hugo-fixit/component-projects/","url":"https://lruihao.cn/projects/hugo-fixit/component-projects/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","shortcodes","theme-component"],"summary":" GitHub Projects Embed | FixIt 在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\n简体中文 | 繁體中文 | English | Français | Русский язык | Español | हिन्दी | deutsch | 한국어 | しろうと Demo 生态系统 | FixIt Lruihao 的开源项目 特性 支持 GitHub 项目卡片展示(layout 或者 shortcodes) 支持根据 README 自动生成博客文章(content adapter) 要求 FixIt v0.4.0 或更高版本 安装 安装方法与 安装主题 相同。有几种安装方法,请选择一种。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003ch1 align=\"center\"\u003eGitHub Projects Embed | FixIt\u003c/h1\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/3f75bd94-90df-4057-bee5-cbe2a61422f1_4807919575866086364.png' alt=\"apple-devices-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e在 FixIt 主题中展示你的 GitHub 项目并根据 README 自动生成博客文章。\u003c/p\u003e\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/component-projects/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/component-projects/refs/heads/main/README.en.md\"\u003eEnglish\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=deutsch\"\u003edeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/component-projects/?lang=japanese\"\u003eしろうと\u003c/a\u003e\n\u003c/div\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e生态系统 | FixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://lruihao.cn/projects/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao 的开源项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"特性\"\u003e\u003cspan\u003e特性\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%80%a7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持 GitHub 项目卡片展示(\u003ccode\u003elayout\u003c/code\u003e 或者 \u003ccode\u003eshortcodes\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e支持根据 README 自动生成博客文章(\u003ccode\u003econtent adapter\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"要求\"\u003e\u003cspan\u003e要求\u003c/span\u003e\n \u003ca href=\"#%e8%a6%81%e6%b1%82\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-fixit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e v0.4.0 或更高版本\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e安装方法与 \u003ca href=\"https://fixit.lruihao.cn/documentation/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 相同。有几种安装方法,请选择一种。\u003c/p\u003e"},{"title":"临时决定再写一个小工具 - 网站预览图生成器","date_published":"2024-04-04T13:23:37+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/apple-devices-preview/","url":"https://lruihao.cn/projects/apple-devices-preview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"image":"https://lruihao.cn/projects/apple-devices-preview/images/cover.webp","summary":"开发完 CoverView之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\n","content_html":"\u003cp\u003e开发完 \u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e之后,在调整博客文章封面图的时候,我发现首页的多端缩略图还是只能自己 P 图诶,于是我又决定再写一个小工具,用来生成网站预览图。。\u003c/p\u003e"},{"title":"用五天时间给自己制作一个封面图生成工具","date_published":"2024-04-02T18:05:34+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/coverview/","url":"https://lruihao.cn/projects/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CoverView","React"],"image":"https://lruihao.cn/projects/coverview/images/cover.webp","summary":" Cool! 苦封面图久矣,今日终有所成。 ","content_html":"\u003cdiv class=\"details admonition success open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-check\" aria-hidden=\"true\"\u003e\u003c/i\u003eCool!\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e苦封面图久矣,今日终有所成。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"🛠 Create awesome cover images for your blog posts quickly.","date_published":"2024-03-28T06:14:16Z","date_modified":"2026-05-06T03:02:25Z","id":"https://lruihao.cn/projects/lruihao/coverview/","url":"https://lruihao.cn/projects/lruihao/coverview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"CoverView 👉 简体中文说明 | English README\n该项目基于原始的 CoverView。\n现在为你的博客创建封面图片变得非常简单。\n💥 变更通知 自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"coverview\" data-decreased\u003e\u003cspan\u003eCoverView\u003c/span\u003e\n \u003ca href=\"#coverview\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 简体中文说明 | \u003ca href=\"README.en.md\"\u003eEnglish README\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/open-source_18217824114769177106.svg' alt=\"用爱发电\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e该项目基于原始的 \u003ca href=\"https://github.com/rutikwankhade/CoverView\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCoverView\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e现在为你的博客创建封面图片变得非常简单。\u003c/p\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/8032fecb-4ae4-45b9-9af7-dbed801651d1_14510645966235844141.png' alt=\"cover_169570\" height=\"840\" width=\"1600\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"-变更通知\"\u003e\u003cspan\u003e💥 变更通知\u003c/span\u003e\n \u003ca href=\"#-%e5%8f%98%e6%9b%b4%e9%80%9a%e7%9f%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e自 2024 年 03 月 28 日起,已将原始的 CoverView 复刻到我的存储库,并进行了以下更改和增强:\u003c/p\u003e"},{"title":"写文档时英文标题什么时候要大写?","date_published":"2024-03-26T12:23:44+08:00","date_modified":"2024-04-02T21:13:59+08:00","id":"https://lruihao.cn/posts/c6bc2d5/","url":"https://lruihao.cn/posts/c6bc2d5/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":"对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle,默认情况下,Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。\n但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。\n经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,“出版物中,英文什么时候要大写? ”。\n","content_html":"\u003cp\u003e对于本文的标题的思考来自于 \u003ca href=\"https://gohugo.io/getting-started/configuration/#titlecasestyle\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 配置文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e中的一个配置 \u003ccode\u003etitleCaseStyle\u003c/code\u003e,默认情况下,Hugo 在创建自动章节标题以及使用 \u003ccode\u003estrings.Title\u003c/code\u003e 函数转换字符串时遵循美联社样本中发布的大小写规则。\u003c/p\u003e\n\u003cp\u003e但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。\u003c/p\u003e\n\u003cp\u003e经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,\u003ca href=\"https://pub.bnu.edu.cn/jzyg1/72203.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e“出版物中,英文什么时候要大写? ”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"实现类似于 Element UI 表格的溢出文本提示功能","date_published":"2024-02-29T16:46:00+08:00","date_modified":"2024-06-12T18:57:53+08:00","id":"https://lruihao.cn/posts/overflow-tooltip/","url":"https://lruihao.cn/posts/overflow-tooltip/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"在 Element UI 的表格组件中,当表格列的内容过长时,设置 show-overflow-tooltip 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\n","content_html":"\u003cp\u003e在 Element UI 的表格组件中,当表格列的内容过长时,设置 \u003ccode\u003eshow-overflow-tooltip\u003c/code\u003e 会自动显示一个 tooltip 来展示完整的内容。这个功能在实际项目中也是非常常见的,那么我们该如何实现这个功能呢?\u003c/p\u003e"},{"title":"聊聊 Chrome 新增的 sizes=\"auto\" 属性","date_published":"2024-02-21T10:00:13+08:00","date_modified":"2024-02-21T11:06:12+08:00","id":"https://lruihao.cn/posts/auto-sizes/","url":"https://lruihao.cn/posts/auto-sizes/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML"],"summary":"聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性。\n","content_html":"\u003cp\u003e聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性。\u003c/p\u003e"},{"title":"2023 年度总结","date_published":"2024-02-09T14:07:24+08:00","date_modified":"2024-02-09T14:07:24+08:00","id":"https://lruihao.cn/years/2023/","url":"https://lruihao.cn/years/2023/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["总结"],"summary":"与其说是年度总结,不如说是一年中难得的一次和自己对话的机会。\n","content_html":"\u003cp\u003e与其说是年度总结,不如说是一年中难得的一次和自己对话的机会。\u003c/p\u003e"},{"title":"强大的脑图可视化工具","date_published":"2024-01-21T06:24:42Z","date_modified":"2024-07-07T02:44:14Z","id":"https://lruihao.cn/projects/lruihao/kityminder-core/","url":"https://lruihao.cn/projects/lruihao/kityminder-core/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"KityMinder Core 注意\n由于原项目 KityMinder Core 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 @cell-x/kityminder-core。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"kityminder-core\" data-decreased\u003e\u003cspan\u003eKityMinder Core\u003c/span\u003e\n \u003ca href=\"#kityminder-core\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"alert alert-note\"\u003e\u003cp class=\"alert-title\"\u003e\u003csvg class=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z\"/\u003e\u003c/svg\u003e注意\u003c/p\u003e\u003cp\u003e由于原项目 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKityMinder Core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 年久失修,存在一些 bug,所以 fork 了一份,进行了一些修复,并重新发布了 npm 包 \u003ca href=\"https://www.npmjs.com/package/@cell-x/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e@cell-x/kityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"记一次 Debug 第三方包的过程","date_published":"2024-01-17T14:57:48+08:00","date_modified":"2024-01-18T12:59:43+08:00","id":"https://lruihao.cn/posts/900d5e4/","url":"https://lruihao.cn/posts/900d5e4/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["debug","Vue2","Vue3","TypeScript"],"image":"https://lruihao.cn/posts/900d5e4/images/featured-image.png","summary":"在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 code diff demo。\n","content_html":"\u003cp\u003e在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 \u003ca href=\"https://lruihao.github.io/vue-el-demo/#/code-diff\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecode diff demo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"为什么很多教程中都有 foo bar?","date_published":"2024-01-17T09:58:58+08:00","date_modified":"2024-07-17T17:37:00+08:00","id":"https://lruihao.cn/posts/20b75e9/","url":"https://lruihao.cn/posts/20b75e9/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。\n","content_html":"\u003cp\u003efoo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。\u003c/p\u003e"},{"title":"git submodule: already exists in the index","date_published":"2024-01-11T10:30:04+08:00","date_modified":"2024-01-11T10:39:56+08:00","id":"https://lruihao.cn/posts/6550187/","url":"https://lruihao.cn/posts/6550187/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"Git 报错 \u0026ldquo;git submodule: already exists in the index\u0026rdquo; 的解决方法。\n","content_html":"\u003cp\u003eGit 报错 \u0026ldquo;git submodule: already exists in the index\u0026rdquo; 的解决方法。\u003c/p\u003e"},{"title":"给 el-card 添加折叠功能","date_published":"2024-01-10T17:06:54+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-card-collapse/","url":"https://lruihao.cn/posts/el-card-collapse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":" 出发点 虽然 Element 也有 el-collapse 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,el-card 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e出发点\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e虽然 Element 也有 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/collapse\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-collapse\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件,但是当我只想写一个折叠面板时,它的写法就略显繁琐了,\u003ca href=\"https://element.eleme.cn/#/zh-CN/component/card\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eel-card\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件的样式也更符合我的需求,所以我就想着给 el-card 添加折叠功能。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"用 Node.js 开发一个轻量脚手架","date_published":"2023-11-28T10:48:07+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/fixit-cli/","url":"https://lruihao.cn/projects/fixit-cli/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["脚手架","FixIt"],"image":"https://lruihao.cn/projects/fixit-cli/images/featured-image.png","summary":"本文将介绍如何用 Node.js 开发一个轻量脚手架,以 fixit-cli 为例。\n","content_html":"\u003cp\u003e本文将介绍如何用 Node.js 开发一个轻量脚手架,以 \u003ca href=\"https://github.com/hugo-fixit/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efixit-cli\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 为例。\u003c/p\u003e"},{"title":"🛠️ A node-based tooling for FixIt site initialization.","date_published":"2023-11-20T06:40:09Z","date_modified":"2026-05-06T03:02:22Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","url":"https://lruihao.cn/projects/hugo-fixit/fixit-cli/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["fixit-cli","hugo","hugo-fixit","nodejs","scaffolding-tool"],"summary":"FixIt CLI 👉 中文 | English\n🛠️ 一个基于 Node.js 开发的用于 FixIt 站点初始化的脚手架工具。\n系统依赖 Node.js (\u0026gt;= 18) Git Hugo 扩展版 如果你使用 Hugo 模块 功能加载主题,你还需要安装 Go。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-cli\" data-decreased\u003e\u003cspan\u003eFixIt CLI\u003c/span\u003e\n \u003ca href=\"#fixit-cli\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://www.npmjs.com/package/fixit-cli\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_10155792500185738668.svg' alt=\"NPM version\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/fixit-cli/refs/heads/main/README.en.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEnglish\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e🛠️ 一个基于 Node.js 开发的用于 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 站点初始化的脚手架工具。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://asciinema.org/a/697494\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/fixit-cli_5868606310889221449.gif' alt=\"asciicast\" height=\"646\" width=\"940\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e (\u0026gt;= 18)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 扩展版\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e如果你使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题,你还需要安装 \u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"SSH 提交签名验证","date_published":"2023-10-22T18:59:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/ssh-sign/","url":"https://lruihao.cn/posts/ssh-sign/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","SSH"],"summary":"Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。\n","content_html":"\u003cp\u003eGit 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。\u003c/p\u003e"},{"title":"如何给 npm 包打补丁?","date_published":"2023-10-12T22:37:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/patch-package/","url":"https://lruihao.cn/posts/patch-package/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["debug","npm","JavaScript"],"image":"https://lruihao.cn/posts/patch-package/images/featured-image.png","summary":"本文将介绍如何给 npm 包打补丁。","content_html":"本文将介绍如何给 npm 包打补丁。"},{"title":"拖拽式仪表盘系列总结","date_published":"2023-10-12T21:25:18+08:00","date_modified":"2024-01-17T16:39:29+08:00","id":"https://lruihao.cn/posts/dashboard-summary/","url":"https://lruihao.cn/posts/dashboard-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2","总结"],"summary":"当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\n1 特点和功能 拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\n","content_html":"\u003cp\u003e当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"特点和功能\"\u003e\u003cspan\u003e1 特点和功能\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e7%82%b9%e5%92%8c%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件开发","date_published":"2023-10-12T20:07:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-usage/","url":"https://lruihao.cn/posts/dashborad-widget-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\n","content_html":"\u003cp\u003e本文介绍将如何开发一个仪表盘组件,以及组件开发的灵感来源。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 模板使用","date_published":"2023-10-12T20:07:20+08:00","date_modified":"2024-04-25T13:29:53+08:00","id":"https://lruihao.cn/posts/dashborad-template-usage/","url":"https://lruihao.cn/posts/dashborad-template-usage/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"image":"https://lruihao.cn/posts/dashborad-template-usage/images/featured-image.png","summary":"本文将通过一个简单的例子,介绍如何使用仪表盘模板。\n","content_html":"\u003cp\u003e本文将通过一个简单的例子,介绍如何使用仪表盘模板。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 组件配置文档","date_published":"2023-10-12T19:41:23+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-widget-docs/","url":"https://lruihao.cn/posts/dashborad-widget-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","widget","Vue2"],"summary":"本文将对 Dashboard 组件的使用方法进行介绍。\n","content_html":"\u003cp\u003e本文将对 Dashboard 组件的使用方法进行介绍。\u003c/p\u003e"},{"title":"拖拽式仪表盘 - 布局模板文档","date_published":"2023-10-12T19:27:49+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashborad-template-docs/","url":"https://lruihao.cn/posts/dashborad-template-docs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2"],"summary":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。","content_html":"Dashboard 组件是一个公共模板组件,用于快速创建 Dashboard 页面,本文将对 Dashboard 组件的使用方法进行介绍。"},{"title":"拖拽式仪表盘 - 功能需求分析","date_published":"2023-10-12T15:37:30+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/dashboard-analysis/","url":"https://lruihao.cn/posts/dashboard-analysis/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["拖拽式仪表盘","dashboard","Vue2","需求分析"],"summary":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。","content_html":"本文将对拖拽式仪表盘的功能需求进行分析,了解需要考虑的关键要素,以便于后续的设计和开发。"},{"title":"给你的 Markdown 挑挑刺","date_published":"2023-10-11T14:26:48+08:00","date_modified":"2024-08-06T14:11:51+08:00","id":"https://lruihao.cn/posts/markdownlint/","url":"https://lruihao.cn/posts/markdownlint/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Markdown","markdownlint","pangu.js","AutoCorrect"],"summary":"会写 Markdown 的人很多,但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」,检查文件中的 Markdown 语法和风格,并且提出解决方案、自动修复问题,甚至自动补齐中英文之间的「盘古之白」呢?本文介绍的 Markdown 语法检查器就能做到。\n","content_html":"\u003cp\u003e会写 Markdown 的人很多,但写得好 Markdown 的人却很少。有没有什么工具能充当「秘书」,检查文件中的 Markdown 语法和风格,并且提出解决方案、自动修复问题,甚至自动补齐中英文之间的「盘古之白」呢?本文介绍的 Markdown 语法检查器就能做到。\u003c/p\u003e"},{"title":"认知复杂度(Cognitive Complexity)","date_published":"2023-10-08T09:52:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cognitive-complexity/","url":"https://lruihao.cn/posts/cognitive-complexity/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"image":"https://lruihao.cn/posts/cognitive-complexity/images/featured-image.png","summary":"27 摘要 循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\n27.1 术语说明 虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"摘要\"\u003e\u003cspan\u003e27 摘要\u003c/span\u003e\n \u003ca href=\"#%e6%91%98%e8%a6%81\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"术语说明\"\u003e\u003cspan\u003e27.1 术语说明\u003c/span\u003e\n \u003ca href=\"#%e6%9c%af%e8%af%ad%e8%af%b4%e6%98%8e\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。\u003c/p\u003e\n\u003chr\u003e"},{"title":"写作技巧:如何搭建文章的框架结构?","date_published":"2023-09-26T15:17:52+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/article-structure/","url":"https://lruihao.cn/posts/article-structure/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。\n","content_html":"\u003cp\u003e最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。\u003c/p\u003e"},{"title":"如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?","date_published":"2023-09-25T17:49:58+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/el-table-sticky/","url":"https://lruihao.cn/projects/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\n","content_html":"\u003cp\u003e本文将介绍如何通过自定义指令的方式实现 Element UI 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能。\u003c/p\u003e"},{"title":"封装 Vue FullScreenToggler 组件","date_published":"2023-09-17T19:44:07+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/vue-fullscreen-toggler/","url":"https://lruihao.cn/posts/vue-fullscreen-toggler/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","JavaScript"],"summary":"基于 vue-fullscreen 封装一个的 Vue 全屏/退出全屏切换组件。\n","content_html":"\u003cp\u003e基于 \u003ca href=\"https://github.com/mirari/vue-fullscreen\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evue-fullscreen\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 封装一个的 Vue 全屏/退出全屏切换组件。\u003c/p\u003e"},{"title":"JS 实现全屏和退出全屏","date_published":"2023-09-15T17:29:25+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-fullscreen/","url":"https://lruihao.cn/posts/js-fullscreen/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":"19 背景 在 Web 开发中,全屏模式可以提供更沉浸式的体验,特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API,我们可以以编程方式控制元素的全屏状态。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"背景\"\u003e\u003cspan\u003e19 背景\u003c/span\u003e\n \u003ca href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Web 开发中,全屏模式可以提供更沉浸式的体验,特别适用于视频播放、游戏展示和演示等场景。通过 JavaScript 的 Fullscreen API,我们可以以编程方式控制元素的全屏状态。\u003c/p\u003e"},{"title":"中文翻译的常见问题","date_published":"2023-09-15T11:07:56+08:00","date_modified":"2023-11-17T20:45:09+08:00","id":"https://lruihao.cn/posts/translation-guide/","url":"https://lruihao.cn/posts/translation-guide/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["他山之石"],"summary":" 以下内容截取自 针对 MDN 文档的本地化指南 的中文翻译的常见问题小节。\n其中翻译的规范也是中文写作的规范,更多详见之前写的 中文技术文档的写作规范。\n为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下内容截取自 \u003ca href=\"https://github.com/mdn/translated-content/blob/main/docs/zh-cn/translation-guide.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e针对 MDN 文档的本地化指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的中文翻译的常见问题小节。\u003c/p\u003e\n\u003cp\u003e其中翻译的规范也是中文写作的规范,更多详见之前写的 \u003ca href=\"/posts/document-style-guide/\"\u003e中文技术文档的写作规范\u003c/a\u003e。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e为保证简体中文文档格式的一致性,翻译指南列出了部分规范。\u003c/p\u003e"},{"title":"在 Vue 项目中更优雅地使用 icon","date_published":"2023-09-14T11:24:48+08:00","date_modified":"2024-06-06T23:01:28+08:00","id":"https://lruihao.cn/posts/vue-svg-icon/","url":"https://lruihao.cn/posts/vue-svg-icon/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SVG","Vue2"],"summary":"19 前言 在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、Font Awesome、Iconfont 等等。\n随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"前言\"\u003e\u003cspan\u003e19 前言\u003c/span\u003e\n \u003ca href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、\u003ca href=\"https://fontawesome.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFont Awesome\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://www.iconfont.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eIconfont\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 等等。\u003c/p\u003e\n\u003cp\u003e随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。\u003c/p\u003e"},{"title":"VSCode 添加用户代码片段,自定义用户代码片段","date_published":"2023-09-14T11:21:56+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/vscode-snippets/","url":"https://lruihao.cn/posts/vscode-snippets/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Shortcodes"],"summary":"在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。\n","content_html":"\u003cp\u003e在使用 VScode 开发中经常会有一些重复使用的代码块,复制粘贴也很麻烦,这时可以在 VScode 中添加用户代码片段,输入简写即可快捷输入。\u003c/p\u003e"},{"title":"CSS 如何实现网格背景效果?","date_published":"2023-09-02T10:05:44+08:00","date_modified":"2024-07-28T17:12:48+08:00","id":"https://lruihao.cn/posts/grid-bg-image/","url":"https://lruihao.cn/posts/grid-bg-image/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS"],"summary":"本文将介绍如何使用 linear-gradient 、background-size 等属性来实现网格背景效果。\n15 前言 最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\n","content_html":"\u003cp\u003e本文将介绍如何使用 \u003ccode\u003elinear-gradient\u003c/code\u003e 、\u003ccode\u003ebackground-size\u003c/code\u003e 等属性来实现网格背景效果。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"前言\"\u003e\u003cspan\u003e15 前言\u003c/span\u003e\n \u003ca href=\"#%e5%89%8d%e8%a8%80\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e最近在开发一个拖拽式仪表盘时,需要在拖拽组件时添加网格辅助标线来帮助布局和对齐元素。\u003c/p\u003e"},{"title":"Vue2 and element-ui related demos","date_published":"2023-08-08T01:41:08Z","date_modified":"2026-05-06T03:02:21Z","id":"https://lruihao.cn/projects/lruihao/vue-el-demo/","url":"https://lruihao.cn/projects/lruihao/vue-el-demo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["element-ui","vue","vue2"],"summary":"vue-el-demo Vue and element-ui related demos.\nProject setup yarn install # Compiles and hot-reloads for development yarn dev # Compiles and minifies for production yarn buildThis project is built with Rsbuild, a fast build tool powered by Rspack.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-el-demo\" data-decreased\u003e\u003cspan\u003evue-el-demo\u003c/span\u003e\n \u003ca href=\"#vue-el-demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eVue and element-ui related \u003ca href=\"https://lruihao.github.io/vue-el-demo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"project-setup\"\u003e\u003cspan\u003eProject setup\u003c/span\u003e\n \u003ca href=\"#project-setup\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eyarn install\n# Compiles and hot-reloads for development\nyarn dev\n# Compiles and minifies for production\nyarn build\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis project is built with \u003ca href=\"https://rsbuild.dev/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRsbuild\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, a fast build tool powered by Rspack.\u003c/p\u003e"},{"title":"用魔法打败魔法 - ElBacktop Fix","date_published":"2023-07-20T11:08:18+08:00","date_modified":"2024-01-10T17:39:54+08:00","id":"https://lruihao.cn/posts/el-backtop-fix/","url":"https://lruihao.cn/posts/el-backtop-fix/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2"],"summary":"这篇文章主要是记录一下继承 ElBacktop 组件并修复了一些 bug 的过程。\n","content_html":"\u003cp\u003e这篇文章主要是记录一下继承 \u003ca href=\"https://element.eleme.cn/#/zh-CN/component/backtop\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElBacktop\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 组件并修复了一些 bug 的过程。\u003c/p\u003e"},{"title":"A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.","date_published":"2023-06-14T14:03:49Z","date_modified":"2026-05-06T03:02:19Z","id":"https://lruihao.cn/projects/lruihao/el-table-sticky/","url":"https://lruihao.cn/projects/lruihao/el-table-sticky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["el-table","el-table-sticky","element-ui","v-height-adaptive","v-sticky-footer","v-sticky-h-scroll","v-sticky-header","vue","vue-directive","vue2"],"summary":"el-table-sticky 在线示例\n一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\n背景 Element UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"el-table-sticky\" data-decreased\u003e\u003cspan\u003eel-table-sticky\u003c/span\u003e\n \u003ca href=\"#el-table-sticky\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.github.io/el-table-sticky/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线示例\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e一个用于实现 Element UI (Vue 2) 表格的表头吸顶、表尾吸底、滚动条吸底以及高度自适应功能的指令集插件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"背景\"\u003e\u003cspan\u003e背景\u003c/span\u003e\n \u003ca href=\"#%e8%83%8c%e6%99%af\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eElement UI 的表格组件在使用时,如果表格内容过多,表格会出现滚动条,但是表头不会吸顶,表尾合计行也不会吸底,这样在表格内容过多时,表头和表尾合计行就会被遮挡,如果有横向滚动条,每次想滚动必须滑动到最底下,这一系列痛点,非常影响用户体验。\u003c/p\u003e"},{"title":"使用 Node.js 自动创建 Vue 的路由","date_published":"2023-06-14T00:11:17+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/gen-router/","url":"https://lruihao.cn/posts/gen-router/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","Node.js","Vue2"],"summary":"最近在写一个 Vue 插件,需要在项目中创建一些测试页面,由于都是些静态路由,就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的,于是就借鉴过来改了一下。\n","content_html":"\u003cp\u003e最近在写一个 Vue 插件,需要在项目中创建一些测试页面,由于都是些静态路由,就想到之前看到过的一个项目就是用 Node.js 来自动生成路由的,于是就借鉴过来改了一下。\u003c/p\u003e"},{"title":"解决 SourceTree 提交时候 husky 命令失败问题","date_published":"2023-06-12T10:58:44+08:00","date_modified":"2024-08-06T14:11:51+08:00","id":"https://lruihao.cn/posts/sourcetree-husky/","url":"https://lruihao.cn/posts/sourcetree-husky/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","husky","Mac","nvm"],"summary":"7 问题描述 在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"问题描述\"\u003e\u003cspan\u003e7 问题描述\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在使用 SourceTree 提交代码的时候,会出现 husky 命令失败的问题(通过命令行提交代码没有问题),如下图所示:\u003c/p\u003e\n\u003cp\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/sourcetree-husky/images/23_1686538807.png\" title=\"问题截图\" data-thumbnail=\"/posts/sourcetree-husky/images/23_1686538807.png\" data-sub-html=\"\u003ch2\u003e问题截图\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/posts/sourcetree-husky/images/23_1686538807.png' alt=\"问题截图\" height=\"856\" width=\"1252\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"Vue2 + tailwindcss 初始化","date_published":"2023-06-03T17:38:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/v2-tailwind/","url":"https://lruihao.cn/posts/v2-tailwind/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["tailwindcss","Vue2","CSS","eslint"],"summary":"7 新建 Vue2 项目 通过 vue-cli 创建一个叫 v2-tailwind 的项目:\nvue create vue2-tailwind根据需要选择其他的功能插件,例如:Babel, Router, Vuex, CSS Pre-processors, Linter。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"新建-vue2-项目\"\u003e\u003cspan\u003e7 新建 Vue2 项目\u003c/span\u003e\n \u003ca href=\"#%e6%96%b0%e5%bb%ba-vue2-%e9%a1%b9%e7%9b%ae\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e通过 \u003ccode\u003evue-cli\u003c/code\u003e 创建一个叫 \u003ccode\u003ev2-tailwind\u003c/code\u003e 的项目:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evue create vue2-tailwind\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e根据需要选择其他的功能插件,例如:\u003ccode\u003eBabel, Router, Vuex, CSS Pre-processors, Linter\u003c/code\u003e。\u003c/p\u003e"},{"title":"新手向:Vue 2.0 的建议学习顺序","date_published":"2023-03-14T08:37:59+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/vue2-guid/","url":"https://lruihao.cn/posts/vue2-guid/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Vue2","他山之石"],"summary":" 注:2.0 已经有中文文档 。如果对自己英文有信心,也可以直接阅读英文文档。\n此指南仅供参考,请根据自身实际情况灵活调整。\n转载自: 尤雨溪,新手向:Vue 2.0 的建议学习顺序,2017-08-04 14:51\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e注:2.0 已经有\u003ca href=\"https://v2.cn.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 。如果对自己英文有信心,也可以直接阅读\u003ca href=\"https://v2.vuejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英文文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003cbr\u003e\n此指南仅供参考,请根据自身实际情况灵活调整。\u003cbr\u003e\n转载自: \u003ca href=\"https://www.zhihu.com/people/evanyou\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e尤雨溪\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://zhuanlan.zhihu.com/p/23134551\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新手向:Vue 2.0 的建议学习顺序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,2017-08-04 14:51\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.","date_published":"2023-02-28T09:12:29Z","date_modified":"2025-07-02T07:28:07Z","id":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","url":"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo","hugo-fixit","netease-cloud-music","shortcodes","theme-component"],"summary":"shortcode-mmt-netease 一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\nDemo https://lruihao.cn/guestbook/\n","content_html":"\u003ch2 class=\"heading-element\" id=\"shortcode-mmt-netease\" data-decreased\u003e\u003cspan\u003eshortcode-mmt-netease\u003c/span\u003e\n \u003ca href=\"#shortcode-mmt-netease\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/221810055-bf78de27-8f5d-4ffa-bf02-f60c0939f169_12374978942414875039.png' alt=\"preview\" height=\"934\" width=\"1754\"\u003e\u003c/p\u003e\n\u003cp\u003e一个含有网易云随机评论 shortcode 的 Hugo 主题组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"demo\"\u003e\u003cspan\u003eDemo\u003c/span\u003e\n \u003ca href=\"#demo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://lruihao.cn/guestbook/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://lruihao.cn/guestbook/\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"浏览器 IMG 图片原生懒加载 loading=\"lazy\"","date_published":"2023-02-12T19:40:43+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/native-img-loading-lazy/","url":"https://lruihao.cn/posts/native-img-loading-lazy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","eager","lazy","loading"],"summary":"记录使用 HTML 原生方案实现图片的懒加载。\n","content_html":"\u003cp\u003e记录使用 HTML 原生方案实现图片的懒加载。\u003c/p\u003e"},{"title":"浏览器渲染原理","date_published":"2023-02-05T21:02:52+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/browser-rendering/","url":"https://lruihao.cn/posts/browser-rendering/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Browser","JavaScript","HTML","CSS"],"summary":" 1 浏览器是如何渲染页面的? 当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。\n在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。\n","content_html":"\u003ciframe src=\"files/browser-rendering.pdf\" width=\"100%\" height=\"550\"\u003e\u003c/iframe\u003e\n\u003ch2 class=\"heading-element\" id=\"浏览器是如何渲染页面的\"\u003e\u003cspan\u003e1 浏览器是如何渲染页面的?\u003c/span\u003e\n \u003ca href=\"#%e6%b5%8f%e8%a7%88%e5%99%a8%e6%98%af%e5%a6%82%e4%bd%95%e6%b8%b2%e6%9f%93%e9%a1%b5%e9%9d%a2%e7%9a%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。\u003c/p\u003e\n\u003cp\u003e在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。\u003c/p\u003e"},{"title":"中文技术文档的写作规范","date_published":"2023-02-04T16:04:42+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/document-style-guide/","url":"https://lruihao.cn/posts/document-style-guide/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":" 以下参考来源:阮一峰的 中文技术文档的写作规范\n英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软、MailChimp、Apple、Yahoo、docker、Struts 等等(维基百科有一份完整的清单)。中文的也有不少,但都不令人满意,要么太简单,要么不太适用。\n对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。\n对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。\n参考上面的规范,于是有了下面一份中文技术文档的写作规范。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下参考来源:阮一峰的 \u003ca href=\"https://github.com/ruanyf/document-style-guide\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文技术文档的写作规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如\u003ca href=\"https://www.microsoftpressstore.com/store/microsoft-manual-of-style-9780735648715\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e微软\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"http://styleguide.mailchimp.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMailChimp\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://help.apple.com/asg/mac/2013/ASG_2013.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eApple\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://www.amazon.com/dp/B003P8QDFU/ref=dp-kindle-redirect?_encoding=UTF8\u0026amp;btkr=1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eYahoo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://docs.docker.com/opensource/doc-style/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edocker\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://struts.apache.org/docs/documentation-style-guide.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eStruts\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 等等(维基百科有一份完整的\u003ca href=\"https://en.wikipedia.org/wiki/List_of_style_guides\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e清单\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e)。\u003ca href=\"https://github.com/ruanyf/document-style-guide/blob/master/docs/reference.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文的\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e也有不少,但都不令人满意,要么太简单,要么不太适用。\u003c/p\u003e\n\u003cp\u003e对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。\u003c/p\u003e\n\u003cp\u003e对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。\u003c/p\u003e\n\u003cp\u003e参考上面的规范,于是有了下面一份中文技术文档的写作规范。\u003c/p\u003e"},{"title":"浏览器原理 - 事件循环","date_published":"2023-01-11T11:16:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/event-loop/","url":"https://lruihao.cn/posts/event-loop/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Browser","JavaScript"],"image":"https://lruihao.cn/posts/event-loop/images/202208092131410.png","summary":"最近在抖音上刷到很多次 袁进老师 的前端视频,然后就听了一下他的前端大师课,感觉了解一些浏览器原理后,原来工作中的一些疑问也自然解开了。\n","content_html":"\u003cp\u003e最近在抖音上刷到很多次 \u003ca href=\"http://yuanjin.tech/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e袁进老师\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的前端视频,然后就听了一下他的前端大师课,感觉了解一些浏览器原理后,原来工作中的一些疑问也自然解开了。\u003c/p\u003e"},{"title":"安装 Homebrew 后导致系统中原有的 npm 和 npx 失效","date_published":"2022-12-15T15:33:30+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/homebrew-npm/","url":"https://lruihao.cn/posts/homebrew-npm/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Homebrew","npm","npx","Mac","nvm","debug"],"summary":" 问题 前面一段时间,安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后,发现虽然 node 版本切换成功,但是 node 版本对应的 npm 和 npx 版本不相符,下面记录一下问题排查过程。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e问题\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e前面一段时间,安装了 Homebrew, 但是今天切换 node 版本到 system version (8.10.0) 后,发现虽然 node 版本切换成功,但是 node 版本对应的 npm 和 npx 版本不相符,下面记录一下问题排查过程。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件","date_published":"2022-10-10T02:50:53Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","url":"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["editor","minder","vue"],"summary":"Vue Minder Editor 基于 kityminder-core 实现的 Vue2 脑图编辑器组件。\nInstall npm install vue-minder-editor-extended --saveUsage 注册组件:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"vue-minder-editor\" data-decreased\u003e\u003cspan\u003eVue Minder Editor\u003c/span\u003e\n \u003ca href=\"#vue-minder-editor\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e基于 \u003ca href=\"https://github.com/fex-team/kityminder-core\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ekityminder-core\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 实现的 Vue2 脑图编辑器组件。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"install\"\u003e\u003cspan\u003eInstall\u003c/span\u003e\n \u003ca href=\"#install\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003enpm install vue-minder-editor-extended --save\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e注册组件:\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.","date_published":"2022-09-30T09:28:41Z","date_modified":"2026-05-06T03:02:16Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Go) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Hugo 模块 功能加载主题。如果你更熟悉 Git,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules ▸ go.mod ▸ go.sum快速入门 完整的快速入门,请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板go\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Go)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgo\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://gohugo.io/hugo-modules/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能加载主题。如果你更熟悉 Git,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter1\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每天自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\n▸ go.mod\n▸ go.sum\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门,请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.","date_published":"2022-09-27T15:23:38Z","date_modified":"2026-05-06T02:33:31Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["blog","hugo-blog","hugo-blog-template","hugo-fixit","hugo-fixit-starter"],"summary":"Hugo FixIt 博客模板(Git) 👉 中文 | English\n这是 Hugo 主题 FixIt 的快速启动模板。它使用 Git 子模块 功能来加载主题。如果你更熟悉 Go,可以 查看这个模板。\n它提供了基本的主题结构和 配置目录1。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\n目录结构 ▸ .github/ # GitHub configuration ▸ archetypes/ # page archetypes (like scaffolds of archetypes) ▸ assets/ # css, js, third-party libraries etc. ▸ config/ # configuration files ▸ content/ # markdown files for hugo project ▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml ▸ public/ # build directory ▸ static/ # static files, e.g. favicon.ico ▸ themes/ # theme submodules快速入门 完整的快速入门请参阅此 页面。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-fixit-博客模板git\" data-decreased\u003e\u003cspan\u003eHugo FixIt 博客模板(Git)\u003c/span\u003e\n \u003ca href=\"#hugo-fixit-%e5%8d%9a%e5%ae%a2%e6%a8%a1%e6%9d%bfgit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这是 Hugo 主题 \u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的快速启动模板。它使用 \u003ca href=\"https://git-scm.com/book/en/v2/Git-Tools-Submodules\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 子模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 功能来加载主题。如果你更熟悉 Go,可以 \u003ca href=\"https://github.com/hugo-fixit/hugo-fixit-starter\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e查看这个模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e\n\u003cp\u003e它提供了基本的主题结构和 \u003ca href=\"https://gohugo.io/configuration/introduction/#configuration-directory\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e配置目录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003csup id=\"fnref:1\"\u003e\u003ca href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\"\u003e1\u003c/a\u003e\u003c/sup\u003e。已经设置了 GitHub Actions,可以自动部署博客到 GitHub Pages。此外,还有一个定时任务,每周周日 00:00 自动更新主题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"目录结构\"\u003e\u003cspan\u003e目录结构\u003c/span\u003e\n \u003ca href=\"#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e▸ .github/ # GitHub configuration\n▸ archetypes/ # page archetypes (like scaffolds of archetypes)\n▸ assets/ # css, js, third-party libraries etc.\n▸ config/ # configuration files\n▸ content/ # markdown files for hugo project\n▸ data/ # blog data (allow: yaml, json, toml), e.g. friends.yml\n▸ public/ # build directory\n▸ static/ # static files, e.g. favicon.ico\n▸ themes/ # theme submodules\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快速入门\"\u003e\u003cspan\u003e快速入门\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e完整的快速入门请参阅此 \u003ca href=\"https://fixit.lruihao.cn/documentation/getting-started/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\u003c/p\u003e"},{"title":"Using frequently-used Hugo commands by shell.","date_published":"2022-09-04T04:18:42Z","date_modified":"2025-09-12T09:38:50Z","id":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","url":"https://lruihao.cn/projects/hugo-fixit/hugo-shell/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["hugo"],"summary":"Hugo Shell Using frequently-used Hugo commands by shell.\nDownload Add a submodule for your Hugo blog project.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"hugo-shell\" data-decreased\u003e\u003cspan\u003eHugo Shell\u003c/span\u003e\n \u003ca href=\"#hugo-shell\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eUsing frequently-used Hugo commands by shell.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"download\"\u003e\u003cspan\u003eDownload\u003c/span\u003e\n \u003ca href=\"#download\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eAdd a submodule for your Hugo blog project.\u003c/p\u003e"},{"title":"Beego 安装及配置","date_published":"2022-08-31T09:32:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/beego-install/","url":"https://lruihao.cn/posts/beego-install/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Beego","Go"],"image":"https://lruihao.cn/posts/beego-install/images/featured-image.png","summary":"记录 GO 及 Beego 框架安装及基础配置。\n","content_html":"\u003cp\u003e记录 GO 及 Beego 框架安装及基础配置。\u003c/p\u003e"},{"title":"语义版本控制(SemVer)","date_published":"2022-08-13T13:32:03+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/semver/","url":"https://lruihao.cn/posts/semver/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SemVer"],"image":"https://lruihao.cn/posts/semver/images/featured-image.png","summary":" 摘要 版本格式:MAJOR.MINOR.PATCH,版本号递增规则如下:\nMAJOR: 主版本号,当你做了不兼容的 API 修改 MINOR: 次版本号,当你做了向下兼容的功能性新增 PATCH: 修订号,当你做了向下兼容的问题修正 先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面,作为延伸。\n","content_html":"\u003cdiv class=\"details admonition tip open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"\u003e\u003c/i\u003e摘要\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e版本格式:\u003ccode\u003eMAJOR.MINOR.PATCH\u003c/code\u003e,版本号递增规则如下:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ccode\u003eMAJOR\u003c/code\u003e: \u003cstrong\u003e主版本号\u003c/strong\u003e,当你做了不兼容的 API 修改\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eMINOR\u003c/code\u003e: \u003cstrong\u003e次版本号\u003c/strong\u003e,当你做了向下兼容的功能性新增\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePATCH\u003c/code\u003e: \u003cstrong\u003e修订号\u003c/strong\u003e,当你做了向下兼容的问题修正\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e先行版本号及版本编译信息可以加到 \u003ccode\u003eMAJOR.MINOR.PATCH\u003c/code\u003e 的后面,作为延伸。\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Commit Message Spec","date_published":"2022-08-12T15:37:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/commit-spec/","url":"https://lruihao.cn/posts/commit-spec/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":" Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cp\u003eCommit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0-beta.4/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eConventional Commits\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e specification based on the \u003ca href=\"https://github.com/angular/angular/blob/68a6a07/CONTRIBUTING.md#commit\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAngular convention\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.\u003c/p\u003e"},{"title":"electron 踩坑总结","date_published":"2022-08-12T11:22:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/electron-summary/","url":"https://lruihao.cn/posts/electron-summary/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["electron"],"image":"https://lruihao.cn/posts/electron-summary/images/featured-image.png","summary":"总结一下最近 electron 开发遇到的问题和一些重要知识点。\n","content_html":"\u003cp\u003e总结一下最近 electron 开发遇到的问题和一些重要知识点。\u003c/p\u003e"},{"title":"前端页面内容加密总结","date_published":"2022-08-08T13:49:22+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/encryption-fe/","url":"https://lruihao.cn/posts/encryption-fe/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","加密"],"image":"https://lruihao.cn/posts/encryption-fe/images/featured-image.png","summary":"记录一下前端实现页面加密的思路。\n","content_html":"\u003cp\u003e记录一下前端实现页面加密的思路。\u003c/p\u003e"},{"title":"Node.js + GitHub Actions 自动刷新 CDN","date_published":"2022-08-07T14:40:33+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qcloudcdn/","url":"https://lruihao.cn/posts/qcloudcdn/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CDN","GitHub Actions","Node.js"],"summary":" 问题 腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。 使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。 ","content_html":"\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e问题\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e腾讯云云函数从 2022 年 6 月 1 日开始收费了,差不多每个月 12 块,对于可能几个月都用不上一次云函数刷新缓存的人来说,有点太贵了。\n使用 Node.js 和 GitHub Actions 刷新 CDN 的方式,可以节省不少钱。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"不同系统的换行符的差异","date_published":"2022-08-07T00:10:30+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/newline/","url":"https://lruihao.cn/posts/newline/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["newline"],"summary":"换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。\n","content_html":"\u003cp\u003e换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。\u003c/p\u003e"},{"title":"自定义 ohmyzsh 主题","date_published":"2022-07-31T13:54:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ohmyzsh-custom/","url":"https://lruihao.cn/posts/ohmyzsh-custom/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"ohmyzsh 自带了很多主题,也有很多没有收录的扩展主题,我就想要个简约的主题,但是每个都差点意思,干脆改一个主题。\n","content_html":"\u003cp\u003eohmyzsh 自带了很多主题,也有很多没有收录的扩展主题,我就想要个简约的主题,但是每个都差点意思,干脆改一个主题。\u003c/p\u003e"},{"title":"linux 文件权限","date_published":"2022-07-30T17:15:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/linux-permission/","url":"https://lruihao.cn/posts/linux-permission/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","Mac","他山之石"],"summary":"记录 linux 系统下文件权限相关的内容,Mac OS 下类似。\n","content_html":"\u003cp\u003e记录 linux 系统下文件权限相关的内容,Mac OS 下类似。\u003c/p\u003e"},{"title":"Mac 上的开发配置总结","date_published":"2022-07-29T20:22:44+08:00","date_modified":"2025-01-07T10:08:46+08:00","id":"https://lruihao.cn/posts/config4mac/","url":"https://lruihao.cn/posts/config4mac/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","Mac","Node.js","nvm"],"summary":"记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\n","content_html":"\u003cp\u003e记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。\u003c/p\u003e"},{"title":"📄 The open-source repo for fixit.lruihao.cn","date_published":"2022-07-23T12:17:06Z","date_modified":"2026-05-06T14:32:49Z","id":"https://lruihao.cn/projects/hugo-fixit/docs/","url":"https://lruihao.cn/projects/hugo-fixit/docs/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["documentation","hugo","hugo-blog","hugo-fixit"],"summary":"FixIt 主题文档 👉 中文 | English\nFixIt 主题文档主要分为:文档、教程 两大板块,欢迎大家发起 PR 完善主题文档。\n系统依赖 Node.js: \u0026gt;= 20.0.0 Go Hugo: \u0026gt;= 0.156.0 (extended version) 贡献文档 首先,点击 fork 按钮 fork 本仓库。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"fixit-主题文档\" data-decreased\u003e\u003cspan\u003eFixIt 主题文档\u003c/span\u003e\n \u003ca href=\"#fixit-%e4%b8%bb%e9%a2%98%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://fixit.lruihao.cn/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Production_8233419177081912330.svg' alt=\"Production environment\"\u003e\u003c/a\u003e\n\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.156_9344247532829321537.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e👉 中文 | \u003ca href=\"README.en.md\"\u003eEnglish\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/hugo-fixit/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFixIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题文档主要分为:\u003ca href=\"https://fixit.lruihao.cn/zh-cn/documentation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e、\u003ca href=\"https://fixit.lruihao.cn/zh-cn/guides/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 两大板块,欢迎大家发起 PR 完善主题文档。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"系统依赖\"\u003e\u003cspan\u003e系统依赖\u003c/span\u003e\n \u003ca href=\"#%e7%b3%bb%e7%bb%9f%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://nodejs.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 20.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://go.dev/dl/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://gohugo.io/installation/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e: \u0026gt;= 0.156.0 (extended version)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"贡献文档\"\u003e\u003cspan\u003e贡献文档\u003c/span\u003e\n \u003ca href=\"#%e8%b4%a1%e7%8c%ae%e6%96%87%e6%a1%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先,点击 fork 按钮 fork 本仓库。\u003c/p\u003e"},{"title":"Mac 配置 ADB","date_published":"2022-07-05T15:39:34+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/adb-for-mac/","url":"https://lruihao.cn/posts/adb-for-mac/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Android","ADB"],"summary":"作为非安卓专业开发,无需下载 Android SDK,\n仅下载 Android SDK 中的 platform-tools 命令行工具即可,并配置好环境变量。\n","content_html":"\u003cp\u003e作为非安卓专业开发,无需下载 Android SDK,\u003cbr\u003e\n仅下载 Android SDK 中的 \u003ca href=\"https://developer.android.com/studio/releases/platform-tools?hl=zh-cn\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eplatform-tools\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 命令行工具即可,并配置好环境变量。\u003c/p\u003e"},{"title":"重新认识 JavaScript","date_published":"2022-05-01T10:59:36+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-rediscover/","url":"https://lruihao.cn/posts/js-rediscover/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","ES6"],"summary":" 前言 前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。\n每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。\n","content_html":"\u003cdiv class=\"details admonition tip open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-lightbulb\" aria-hidden=\"true\"\u003e\u003c/i\u003e前言\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。\u003c/p\u003e\n\u003cp\u003e每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"关于 CSS 和 Scss 变量运算那些事","date_published":"2022-04-30T22:04:29+08:00","date_modified":"2024-07-14T17:09:39+08:00","id":"https://lruihao.cn/posts/css-scss-var/","url":"https://lruihao.cn/posts/css-scss-var/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Scss"],"summary":"7 问题分析 昨天在开发 FixIt 的时候,在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了,但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。\n造成这一问题的原因是,在 Scss 中,也实现了 max 和 min 函数,但是在 Scss 中,不同单位的变量是不能进行运算的,所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)\n知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"问题分析\"\u003e\u003cspan\u003e7 问题分析\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e昨天在开发 FixIt 的时候,在 Scss 中写 \u003ccode\u003emax(foo, bar)\u003c/code\u003e 函数比较不同的单位变量时报错了,但是在 CSS 中使用 \u003ccode\u003emax\u003c/code\u003e 或者 \u003ccode\u003emin\u003c/code\u003e 函数函数比较不同的单位变量是没有问题的。\u003c/p\u003e\n\u003cp\u003e造成这一问题的原因是,在 Scss 中,也实现了 \u003ccode\u003emax\u003c/code\u003e 和 \u003ccode\u003emin\u003c/code\u003e 函数,但是在 Scss 中,\u003cstrong\u003e不同单位的变量是不能进行运算的\u003c/strong\u003e,所以使得在 Scss 中直接使用 \u003ccode\u003emax\u003c/code\u003e 或者 \u003ccode\u003emin\u003c/code\u003e 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)\u003c/p\u003e\n\u003cp\u003e知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。\u003c/p\u003e"},{"title":"Getting Things Done for ios App Reminders and Github issues","date_published":"2021-12-22T20:17:42+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/gtd/","url":"https://lruihao.cn/posts/gtd/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GTD"],"image":"/posts/gtd/images/reminders_min.png","summary":" quote Getting Things Done (GTD) is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\u0026rdquo;.\nReference #20 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003equote\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e\u003cstrong\u003eGetting Things Done (GTD)\u003c/strong\u003e is a personal productivity system developed by David Allen and published in a book of the same name. GTD is described as a time management system. Allen states \u0026ldquo;there is an inverse relationship between things on your mind and those things getting done\u0026rdquo;.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Getting_Things_Done\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eReference\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lruihao/hugo-blog/issues/20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e#20\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题","date_published":"2021-12-16T03:35:27Z","date_modified":"2026-05-06T03:08:15Z","id":"https://lruihao.cn/projects/hugo-fixit/fixit/","url":"https://lruihao.cn/projects/hugo-fixit/fixit/","authors":[{"name":"hugo-fixit","url":"https://github.com/hugo-fixit","avatar":"https://avatars.githubusercontent.com/u/110414864?v=4"}],"tags":["algolia","blog","giscus","hugo","hugo-blog","hugo-blog-theme","hugo-fixit","hugo-theme","pwa","pwa-app"],"summary":" FixIt 是一个简洁、优雅且高效的 Hugo 博客主题。\n如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢! English | 简体中文 | 繁體中文 | Français | Русский язык | Español | हिन्दी | Deutsch | 한국어 | 日本語 FixIt 它的原型基于 LoveIt 主题,KeepIt 主题和 LeaveIt 主题。\n","content_html":"\u003c!-- markdownlint-disable-file MD033 MD041 --\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_2924900667091928771.png' alt=\"Hugo Theme FixIt\" height=\"1158\" width=\"2007\"\u003e\u003c/p\u003e\n\u003cdiv align=\"center\" class=\"ignore\"\u003e\n \u003cp\u003e\n FixIt 是一个简洁、优雅且高效的 \u003ca href=\"https://gohugo.io/\"\u003eHugo\u003c/a\u003e 博客主题。\u003cbr\u003e\n \u003cem\u003e\u003csub\u003e如果你喜欢这个主题,别忘了留下一颗 ⭐️ 哦,谢谢!\u003c/sub\u003e\u003c/em\u003e\n \u003c/p\u003e\n \u003ca href=\"https://raw.githubusercontent.com/hugo-fixit/FixIt/refs/heads/main/README.md\"\u003eEnglish\u003c/a\u003e |\n 简体中文 |\n \u003ca href=\"https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/fixit/?lang=chinese_traditional\"\u003e繁體中文\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=french\"\u003eFrançais\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=russian\"\u003eРусский язык\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=spanish\"\u003eEspañol\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=hindi\"\u003eहिन्दी\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=deutsch\"\u003eDeutsch\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=korean\"\u003e한국어\u003c/a\u003e |\n \u003ca href=\"https://fixit.lruihao.cn/ecosystem/hugo-fixit/fixit/?lang=japanese\"\u003e日本語\u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca title=\"FixIt 官网\" href=\"https://fixit.lruihao.cn/zh-cn/\"\u003e\u003cimg align=\"right\" alt=\"FixIt logo\" width=\"70\" height=\"70\" src=\"https://avatars.githubusercontent.com/u/110414864?s=200\u0026v=4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"fixit\" data-decreased\u003e\u003cspan\u003eFixIt\u003c/span\u003e\n \u003ca href=\"#fixit\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e它的原型基于 \u003ca href=\"https://github.com/dillonzq/LoveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLoveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题,\u003ca href=\"https://github.com/Fastbyte01/KeepIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eKeepIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题和 \u003ca href=\"https://github.com/liuzc/LeaveIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeaveIt\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 主题。\u003c/p\u003e"},{"title":"Sublime 剪贴板图片粘贴插件 —— Markdown 必备","date_published":"2021-10-05T21:54:06+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/subl_imgpaste2/","url":"https://lruihao.cn/posts/subl_imgpaste2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Markdown","Sublime"],"summary":" 插件地址 github.com/robinchenyu/imagepaste ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003ca href=\"https://github.com/robinchenyu/imagepaste\" title=\"插件地址\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e插件地址\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/robinchenyu/imagepaste\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e"},{"title":"Hugo 添加知乎卡片式链接 Shortcodes","date_published":"2021-10-05T19:33:13+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-cardlink/","url":"https://lruihao.cn/posts/hugo-cardlink/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","Shortcodes"],"summary":" 卡片式链接已整合到 FixIt 主题 github.com/Lruihao/FixIt 回顧 之前在使用 hexo 的時候也有用到,模仿知乎卡片式链接\n和之前的相比,優化之前是后加載,由 JS 在 瀏覽器處理,\n使用 shortcodes 方式后,則是在 GO 構建頁面的時候處理,效能上會好很多。 ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003ca href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e卡片式链接已整合到 FixIt 主题\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/Lruihao/FixIt\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e\n\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e回顧\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e之前在使用 hexo 的時候也有用到,\u003ca href=\"/posts/linkcard/\"\u003e模仿知乎卡片式链接\u003c/a\u003e\u003cbr\u003e\n和之前的相比,優化之前是后加載,由 JS 在 瀏覽器處理,\u003cbr\u003e\n使用 shortcodes 方式后,則是在 GO 構建頁面的時候處理,效能上會好很多。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Hugo I18n 添加中文繁體翻譯","date_published":"2021-10-05T19:14:45+08:00","date_modified":"2021-12-19T20:01:45+08:00","id":"https://lruihao.cn/posts/hugo-i18n-zh-tw/","url":"https://lruihao.cn/posts/hugo-i18n-zh-tw/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["FixIt","hugo","I18n"],"summary":" 工作上一直常用繁體,最近臨帖也都寫的繁體,所以博客的語言也想換成繁體,但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e工作上一直常用繁體,最近臨帖也都寫的繁體,所以博客的語言也想換成繁體,但是 LoveIt 主題沒有支持中文繁體。就只好自己添加了。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Hugo 友情連結模板","date_published":"2021-10-05T14:14:10+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-friends/","url":"https://lruihao.cn/posts/hugo-friends/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo"],"summary":" 過程 以前的 hexo 博客是自己寫的友鏈模板,換到 hugo 後想著在網上隨便找一個範本用著就好,然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的,代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。 友情鏈接模板已整合到 FixIt 主題 github.com/Lruihao/FixIt ","content_html":"\u003c!-- markdownlint-disable MD034 --\u003e\n\u003cdiv class=\"details admonition question open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-regular fa-circle-question\" aria-hidden=\"true\"\u003e\u003c/i\u003e過程\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e以前的 hexo 博客是自己寫的友鏈模板,換到 hugo 後想著在網上隨便找一個範本用著就好,然而並沒有自己想要的 layout, 幾乎都是使用 shortcodes 的,代碼風格有點問題且 shortcodes 作為友鏈添加的方式是真的麻煩。就只好自己寫羅。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e\n\u003ca href=\"https://github.com/Lruihao/FixIt\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\" class=\"card-link\"\u003e\u003cspan class=\"cl-backdrop\"\u003e\u003c/span\u003e\n \u003cspan class=\"cl-content\"\u003e\n \u003cspan class=\"cl-text\"\u003e\n \u003cspan class=\"cl-title\"\u003e友情鏈接模板已整合到 FixIt 主題\u003c/span\u003e\n \u003cspan class=\"cl-meta\"\u003e\n \u003csvg class=\"cl-icon-link\" viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\u003e\u003cpath d=\"M574 665.4c-3.1-3.1-8.2-3.1-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8c-3.1-3.1-8.2-3.1-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zM832.6 191.4c-84.6-84.6-221.5-84.6-306 0L410.3 307.6c-3.1 3.1-3.1 8.2 0 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6c-3.1 3.1-3.1 8.2 0 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003cpath d=\"M610.1 372.3c-3.1-3.1-8.2-3.1-11.3 0L372.3 598.7c-3.1 3.1-3.1 8.2 0 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" fill=\"#a9a9b3\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003cspan class=\"cl-url\"\u003egithub.com/Lruihao/FixIt\u003c/span\u003e\n \u003c/span\u003e\n \u003c/span\u003e\u003cimg src=\"/images/remote/github_14075797050460861398.png\" alt=\"card image\" class=\"cl-shortcut-image\"\u003e\u003c/span\u003e\u003c/a\u003e"},{"title":"Hugo 本地管理 Shell 腳本","date_published":"2021-10-04T23:49:00+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/hugo-admin/","url":"https://lruihao.cn/posts/hugo-admin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hugo","shell"],"image":"/posts/hugo-admin/images/hugo-admin1.png","summary":" 摘要 在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。\n自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。 ","content_html":"\u003cdiv class=\"details admonition abstract open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-clipboard-list\" aria-hidden=\"true\"\u003e\u003c/i\u003e摘要\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。\u003cbr\u003e\n自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶","date_published":"2021-10-04T23:46:49+08:00","date_modified":"2024-12-17T18:09:03+08:00","id":"https://lruihao.cn/posts/github-actions/","url":"https://lruihao.cn/posts/github-actions/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","GitHub Actions","hugo","腾讯云 cos 桶"],"summary":" 解決痛點 Github Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\n也就是説實現了在線寫靜態博客的需求。 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e解決痛點\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003eGithub Actions 真是靜態博客的福音,有了它 hugo, hexo 等博客構建過程可以丟給 Github 的服務器幫我們做了。\u003cbr\u003e\n也就是説實現了在線寫靜態博客的需求。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"个人博客从 Hexo 迁移至 Hugo","date_published":"2021-10-03T15:27:58+08:00","date_modified":"2024-11-06T19:42:55+08:00","id":"https://lruihao.cn/posts/hexo-to-hugo/","url":"https://lruihao.cn/posts/hexo-to-hugo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["FixIt","Hexo","hugo"],"summary":" 电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Lruihao's Note","date_published":"2021-09-08T12:52:53Z","date_modified":"2026-05-06T03:02:13Z","id":"https://lruihao.cn/projects/lruihao/hugo-blog/","url":"https://lruihao.cn/projects/lruihao/hugo-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","front-end","hugo","hugo-blog","hugo-fixit","hugo-site"],"summary":"菠菜眾長 站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\nContent 博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e菠菜眾長\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://gohugo.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/Hugo-%5E0.147_10197451430892069269.svg' alt=\"Hugo\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/actions/workflows/deploy.yml\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/badge_1895496655215000366.svg' alt=\"Hugo build and deploy\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Lruihao/hugo-blog/commits/main\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/main_9310684978766761497.svg' alt=\"GitHub commit activity (main)\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e站名“菠菜眾長”,取“兼收並蓄,博採眾長”之意。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/apple-devices-preview_9292544820184326555.webp' alt=\"blog-preview\" height=\"1508\" width=\"2880\"\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"content\"\u003e\u003cspan\u003eContent\u003c/span\u003e\n \u003ca href=\"#content\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e博客内容主要以 Web 前端开发方向为主,分享一些有趣程序、技巧、开发教程、心情和学习记录等。\u003c/p\u003e"},{"title":"less\u0026sass\u0026scss","date_published":"2021-06-22T16:39:47+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/less-sass-scss/","url":"https://lruihao.cn/posts/less-sass-scss/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Less","Sass","Scss"],"summary":" Sass 和 Less 都屬於 CSS 前置處理器,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。\n轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eSass 和 Less 都屬於 \u003cstrong\u003eCSS 前置處理器\u003c/strong\u003e,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。\u003cbr\u003e\n轉化成通俗易懂的話來說就是 \u003cstrong\u003e“用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Lightbox","date_published":"2021-06-21T16:18:04+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/lightbox/","url":"https://lruihao.cn/posts/lightbox/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Lightbox","JavaScript"],"summary":"7 簡介 Lightbox(燈箱),用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器,用一幅半透明的 png 图片实现渐变阴暗的效果。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"簡介\"\u003e\u003cspan\u003e7 簡介\u003c/span\u003e\n \u003ca href=\"#%e7%b0%a1%e4%bb%8b\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eLightbox(燈箱),用来放大显示图片覆盖于当前页面之上。其是用 CSS 来定义图片容器,用一幅半透明的 png 图片实现渐变阴暗的效果。\u003c/p\u003e"},{"title":"Create watermark for webpage and automatic adjust when window resize.","date_published":"2021-05-24T13:05:40Z","date_modified":"2026-05-06T03:02:12Z","id":"https://lruihao.cn/projects/lruihao/watermark/","url":"https://lruihao.cn/projects/lruihao/watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cell-watermark","watermark"],"summary":"Watermark Create watermark for webpage and automatic adjust when windows resize.\nDocumentation Usage Browser Clone source\n","content_html":"\u003ch2 class=\"heading-element\" id=\"watermark\" data-decreased\u003e\u003cspan\u003eWatermark\u003c/span\u003e\n \u003ca href=\"#watermark\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eCreate watermark for webpage and automatic adjust when windows resize.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"documentation\"\u003e\u003cspan\u003e\u003ca href=\"https://raw.githubusercontent.com/Lruihao/watermark/refs/heads/main/docs/README.md\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDocumentation\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#documentation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"usage\"\u003e\u003cspan\u003eUsage\u003c/span\u003e\n \u003ca href=\"#usage\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"browser\"\u003e\u003cspan\u003eBrowser\u003c/span\u003e\n \u003ca href=\"#browser\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eClone source\u003c/p\u003e"},{"title":"Cell Watermark","date_published":"2021-05-23T17:15:41+08:00","date_modified":"2024-12-12T14:56:25+08:00","id":"https://lruihao.cn/projects/cell-watermark/","url":"https://lruihao.cn/projects/cell-watermark/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["watermark","JavaScript"],"summary":"Create watermark for webpage and automatic adjust when window resize.","content_html":"Create watermark for webpage and automatic adjust when window resize."},{"title":"Code Review 怎麼做?新手工程師如何提升「程式碼品質」","date_published":"2021-03-04T21:04:18+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codereview/","url":"https://lruihao.cn/posts/codereview/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["codereview"],"summary":"1 程式碼的持續優化 對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"程式碼的持續優化\"\u003e\u003cspan\u003e1 程式碼的持續優化\u003c/span\u003e\n \u003ca href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e7%9a%84%e6%8c%81%e7%ba%8c%e5%84%aa%e5%8c%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:\u003c/p\u003e"},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-03-02T21:46:40+08:00","date_modified":"2021-03-02T21:46:40+08:00","id":"https://lruihao.cn/projects/bill-note/","url":"https://lruihao.cn/projects/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","Vue2","leancloud"],"summary":"9 起因 起因 事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\n自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (AB, AC, BC, ABC)。好麻煩啊!!!\n","content_html":"\u003ch2 class=\"heading-element\" id=\"起因\"\u003e\u003cspan\u003e9 起因\u003c/span\u003e\n \u003ca href=\"#%e8%b5%b7%e5%9b%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e起因\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!\u003c/p\u003e\n\u003cp\u003e自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;\u003cbr\u003e\n三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (\u003ccode\u003eAB, AC, BC, ABC\u003c/code\u003e)。好麻煩啊!!!\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"基于 leancloud-storage 实现的无后端记账本","date_published":"2021-02-28T03:44:09Z","date_modified":"2025-01-16T02:53:15Z","id":"https://lruihao.cn/projects/lruihao/bill-note/","url":"https://lruihao.cn/projects/lruihao/bill-note/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["vue"],"summary":"Preparation 去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\nname type description pay Number 消费金额 pay_description String 消费描述 pay_type String 消费类型 pay_user String 付款人 Init set for yourself.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"preparation\" data-decreased\u003e\u003cspan\u003ePreparation\u003c/span\u003e\n \u003ca href=\"#preparation\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e去 leancloud 创建一个应用,再新增一个 Bill Class, 补充一下字段:\u003c/p\u003e\n\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003ename\u003c/th\u003e\n \u003cth\u003etype\u003c/th\u003e\n \u003cth\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003epay\u003c/td\u003e\n \u003ctd\u003eNumber\u003c/td\u003e\n \u003ctd\u003e消费金额\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_description\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费描述\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_type\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e消费类型\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd\u003epay_user\u003c/td\u003e\n \u003ctd\u003eString\u003c/td\u003e\n \u003ctd\u003e付款人\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 class=\"heading-element\" id=\"init\" data-decreased\u003e\u003cspan\u003eInit\u003c/span\u003e\n \u003ca href=\"#init\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eset for yourself.\u003c/p\u003e"},{"title":"cell-blog 功能介绍与安装","date_published":"2020-07-25T20:51:11+08:00","date_modified":"2024-11-20T12:50:07+08:00","id":"https://lruihao.cn/projects/cell-blog/","url":"https://lruihao.cn/projects/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","Laravel","Markdown"],"image":"https://i.loli.net/2020/05/11/vHeNRG4Qi7ljrM8.png","summary":" 基于 Laravel7 开发,Markdown 语法的个人独立博客。Cell Blog, 也是我的毕业设计作品,目前已開源。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e基于 Laravel7 开发,Markdown 语法的个人独立博客。\u003ca href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Blog\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e, 也是我的毕业设计作品,目前已開源。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"cell-blog 开发记录","date_published":"2020-07-25T20:42:42+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cell-blog-dev/","url":"https://lruihao.cn/posts/cell-blog-dev/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","Laravel","Markdown"],"summary":" Cell Blog 开发记录,项目地址\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eCell Blog 开发记录,\u003ca href=\"https://github.com/Lruihao/cell-blog\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e项目地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"基于 Laravel 7 开发,支持 Markdown 语法的博客","date_published":"2020-04-17T08:33:39Z","date_modified":"2025-04-12T07:30:24Z","id":"https://lruihao.cn/projects/lruihao/cell-blog/","url":"https://lruihao.cn/projects/lruihao/cell-blog/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["blog","laravel","laravel-blog"],"summary":"Cell Blog 基于Laravel7开发,Markdown语法的个人独立博客。\n功能 支持Markdown,文章实时预览效果 支持多种编程语言代码高亮 编辑器图片上传 后台上传文件管理 文章搜索 文章分类 文章标签 热门文章 随机格言 文章管理(发布,评论开关,排序) 自定义导航(显示开关,排序) 自定义页面(发布开关) 友情链接(显示开关,排序) COS桶相册 丰富的博客配置(方便扩展,支持自定义JS脚本) 不蒜子计数 Leancloud计数 Valine评论插件 文章分享插件 截图 ","content_html":"\u003ch1 align=\"center\" \u003eCell Blog\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于Laravel7开发,Markdown语法的个人独立博客。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"功能\"\u003e\u003cspan\u003e功能\u003c/span\u003e\n \u003ca href=\"#%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e支持Markdown,文章实时预览效果\u003c/li\u003e\n\u003cli\u003e支持多种编程语言代码高亮\u003c/li\u003e\n\u003cli\u003e编辑器图片上传\u003c/li\u003e\n\u003cli\u003e后台上传文件管理\u003c/li\u003e\n\u003cli\u003e文章搜索\u003c/li\u003e\n\u003cli\u003e文章分类\u003c/li\u003e\n\u003cli\u003e文章标签\u003c/li\u003e\n\u003cli\u003e热门文章\u003c/li\u003e\n\u003cli\u003e随机格言\u003c/li\u003e\n\u003cli\u003e文章管理(发布,评论开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义导航(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e自定义页面(发布开关)\u003c/li\u003e\n\u003cli\u003e友情链接(显示开关,排序)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Lruihao/cos-album\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCOS桶相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e丰富的博客配置(方便扩展,支持自定义JS脚本)\u003c/li\u003e\n\u003cli\u003e不蒜子计数\u003c/li\u003e\n\u003cli\u003eLeancloud计数\u003c/li\u003e\n\u003cli\u003eValine评论插件\u003c/li\u003e\n\u003cli\u003e文章分享插件\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"截图\"\u003e\u003cspan\u003e截图\u003c/span\u003e\n \u003ca href=\"#%e6%88%aa%e5%9b%be\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003cimg loading=\"lazy\" src='/images/remote/vHeNRG4Qi7ljrM8_9579722258636665610.png' alt=\"前台首页.png\" height=\"837\" width=\"1383\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/tMEQe7WvYmw3jd4_2885877723514623630.png' alt=\"管理文章.png\" height=\"649\" width=\"1385\"\u003e\u003cbr\u003e\n\u003cimg loading=\"lazy\" src='/images/remote/DeOWyJ3zluLKvBn_12174777021468273629.png' alt=\"编辑文章.png\" height=\"629\" width=\"1385\"\u003e\u003c/p\u003e"},{"title":"使用 Python 刷 csdn 访问量","date_published":"2020-03-26T11:08:38+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/csdnvisiter/","url":"https://lruihao.cn/posts/csdnvisiter/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用 python 模拟浏览器行为刷 csdn 访问量,脚本仅做学习,请勿滥用~\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Cron 表达式的基本语法","date_published":"2020-03-25T09:19:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/cron/","url":"https://lruihao.cn/posts/cron/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","shell","Cron"],"summary":"9 基本语法 \u0026lt;秒\u0026gt; \u0026lt;分钟\u0026gt; \u0026lt;小时\u0026gt; \u0026lt;日期 day-of-month\u0026gt; \u0026lt;月份\u0026gt; \u0026lt;星期 day-of-week\u0026gt;\nCron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"基本语法\"\u003e\u003cspan\u003e9 基本语法\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e\u003ccode\u003e\u0026lt;秒\u0026gt; \u0026lt;分钟\u0026gt; \u0026lt;小时\u0026gt; \u0026lt;日期 day-of-month\u0026gt; \u0026lt;月份\u0026gt; \u0026lt;星期 day-of-week\u0026gt;\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eCron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 \u003ccode\u003eX X X X X X\u003c/code\u003e。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。\u003c/p\u003e"},{"title":"新冠疫情未返校未返工第 N 天之“自动打卡”","date_published":"2020-03-25T08:22:42+08:00","date_modified":"2020-03-25T08:22:42+08:00","id":"https://lruihao.cn/posts/daka/","url":"https://lruihao.cn/posts/daka/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","HTTP"],"image":"https://lruihao.cn/posts/daka/images/result.png","summary":" 信息 这件事还得从一只蝙蝠说起 \u0026hellip;\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\n我和潇 X 巴哥确定思路后兵分两路:\n他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库; 我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个); ","content_html":"\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e这件事还得从一只蝙蝠说起 \u0026hellip;\u003cbr\u003e\n算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 \u0026hellip;\u003cbr\u003e\n哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 \u0026hellip;\u003cbr\u003e\n我和潇 X 巴哥确定思路后兵分两路:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;\u003c/li\u003e\n\u003cli\u003e我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);\u003c/li\u003e\n\u003c/ol\u003e\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"SQL 总结","date_published":"2020-01-16T19:28:05+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/sql/","url":"https://lruihao.cn/posts/sql/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["MySQL"],"summary":" SQL 增删改查 (CRUD) 语句与常用函数总结。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eSQL 增删改查 (CRUD) 语句与常用函数总结。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"利用腾讯云为静态页面添加“动态”相册","date_published":"2019-11-24T10:52:34+08:00","date_modified":"2019-11-24T10:52:34+08:00","id":"https://lruihao.cn/projects/cos-album/","url":"https://lruihao.cn/projects/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CosAlbum","腾讯云 cos 桶","JavaScript"],"image":"/projects/cos-album/images/view.png","summary":" 信息 cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\n功能虽好,但是还是先友情提示!\n开放 API 是一个很危险的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧! ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cdiv class=\"details admonition info open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-circle-info\" aria-hidden=\"true\"\u003e\u003c/i\u003e信息\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003ecos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],\u003cbr\u003e\n\u003cstrong\u003e\u003cspan style=\"color: #428bca;\"\u003e功能虽好,但是还是先友情提示!\u003c/span\u003e\u003c/strong\u003e\u003cbr\u003e\n开放 API 是一个\u003cstrong\u003e很危险\u003c/strong\u003e的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面","date_published":"2019-11-23T12:59:05Z","date_modified":"2023-02-16T04:56:55Z","id":"https://lruihao.cn/projects/lruihao/cos-album/","url":"https://lruihao.cn/projects/lruihao/cos-album/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["cos-album","cos-bucket"],"summary":"cos-album demo\nStep1 Step2 Params param type default description xmlLink String 需要解析的騰訊云COS桶XML鏈接 prependTo String \u0026lsquo;body\u0026rsquo; 可選解析相冊到某個節點 viewNum Number 4 每個相冊顯示的照片數目 copyUrl String href CDN 链接,雙擊複製 URL Since: 1.1.6 imgType String [\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;] 图片類型 Since: 1.1.6 videoType String [\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;] 視頻類型 Since: 1.1.6 详细说明\n","content_html":"\u003ch2 class=\"heading-element\" id=\"cos-album\" data-decreased\u003e\u003cspan\u003ecos-album\u003c/span\u003e\n \u003ca href=\"#cos-album\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://github.com/Lruihao/cos-album-demo\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003edemo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"step1\"\u003e\u003cspan\u003eStep1\u003c/span\u003e\n \u003ca href=\"#step1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"cos-album.min.css?v=1.1.6\"\u003e\n\u003cscript type=\"text/javascript\" src=\"cos-album.min.js?v=1.1.6\"\u003e\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"step2\"\u003e\u003cspan\u003eStep2\u003c/span\u003e\n \u003ca href=\"#step2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003cscript type=\"text/javascript\"\u003e\n new Cosalbum({\n 'xmlLink': 'https://img-xxxxxxxxxx.cos.ap-chengdu.myqcloud.com',\n 'prependTo': '.cos-album',\n 'viewNum': 8,\n 'copyUrl': '//img.lruihao.cn'\n });\n\u003c/script\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"params\"\u003e\u003cspan\u003eParams\u003c/span\u003e\n \u003ca href=\"#params\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ctable\u003e\n \u003cthead\u003e\n \u003ctr\u003e\n \u003cth style=\"text-align: left\"\u003eparam\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003etype\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edefault\u003c/th\u003e\n \u003cth style=\"text-align: left\"\u003edescription\u003c/th\u003e\n \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003exmlLink\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e需要解析的騰訊云COS桶XML鏈接\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eprependTo\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e\u0026lsquo;body\u0026rsquo;\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e可選解析相冊到某個節點\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eviewNum\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eNumber\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e4\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e每個相冊顯示的照片數目\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003ecopyUrl\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003ehref\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eCDN 链接,雙擊複製 URL Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003eimgType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;jpg\u0026rsquo;, \u0026lsquo;jpeg\u0026rsquo;, \u0026lsquo;png\u0026rsquo;, \u0026lsquo;gif\u0026rsquo;, \u0026lsquo;svg\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e图片類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd style=\"text-align: left\"\u003evideoType\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003eString\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e[\u0026lsquo;mp4\u0026rsquo;, \u0026lsquo;mp3\u0026rsquo;, \u0026lsquo;avi\u0026rsquo;, \u0026lsquo;mov\u0026rsquo;, \u0026lsquo;qt\u0026rsquo;]\u003c/td\u003e\n \u003ctd style=\"text-align: left\"\u003e視頻類型 Since: 1.1.6\u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/posts/cos-album.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e\u003cstrong\u003e详细说明\u003c/strong\u003e\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"RESTful","date_published":"2019-11-14T19:06:05+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/restful/","url":"https://lruihao.cn/posts/restful/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["REST","HTTP"],"summary":" RESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 RFC5789\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eRESTful 是一种系统开发设计风格、原则。可视情况调整,以下参考来源 \u003ca href=\"https://www.rfc-editor.org/rfc/rfc5789\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRFC5789\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 同时主动推送链接到百度,神马等站长平台","date_published":"2019-09-28T18:32:42+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phppushurl/","url":"https://lruihao.cn/posts/phppushurl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" php 主动推送站点链接到百度站长,神马站长进行 SEO。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ephp 主动推送站点链接到百度站长,神马站长进行 SEO。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 按行读取文件信息","date_published":"2019-09-28T17:11:17+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpfile/","url":"https://lruihao.cn/posts/phpfile/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":"7 普通方法 首先采用fopen()函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。feof()判断是否到最后一行,fgets()读取一行文本。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"普通方法\"\u003e\u003cspan\u003e7 普通方法\u003c/span\u003e\n \u003ca href=\"#%e6%99%ae%e9%80%9a%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先采用\u003ccode\u003efopen()\u003c/code\u003e函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。\u003ccode\u003efeof()\u003c/code\u003e判断是否到最后一行,\u003ccode\u003efgets()\u003c/code\u003e读取一行文本。\u003c/p\u003e"},{"title":"沐目之,湘也。— 沐目体","date_published":"2019-09-26T12:44:17Z","date_modified":"2025-08-06T09:23:14Z","id":"https://lruihao.cn/projects/lruihao/mmt/","url":"https://lruihao.cn/projects/lruihao/mmt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["font","mmt"],"summary":" 关于沐目体\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://lruihao.cn/projects/font-mmt/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"设置网站运行时间","date_published":"2019-09-19T22:03:29+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/site-time/","url":"https://lruihao.cn/posts/site-time/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 使用javascript计算博客等网站的运行时间。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用\u003ccode\u003ejavascript\u003c/code\u003e计算博客等网站的运行时间。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"script 的三种加载方式 (async, defer)","date_published":"2019-09-08T11:47:50+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/async-defer/","url":"https://lruihao.cn/posts/async-defer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","defer","async"],"image":"/posts/async-defer/images/async_vs_defer.svg","summary":" 注意 JS 的加载分为两个部分:下载和执行。\n浏览器在执行 HTML 的时候如果遇到\u0026lt;script\u0026gt;时会停止页面的渲染,去下载和执行 js 的文件直接遇见\u0026lt;/scirpt\u0026gt;会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。 ","content_html":"\u003cdiv class=\"details admonition note open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-pencil-alt\" aria-hidden=\"true\"\u003e\u003c/i\u003e注意\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003eJS 的加载分为两个部分:下载和执行。\u003cbr\u003e\n浏览器在执行 HTML 的时候如果遇到\u003ccode\u003e\u0026lt;script\u0026gt;\u003c/code\u003e时会停止页面的渲染,去下载和执行 js 的文件直接遇见\u003ccode\u003e\u0026lt;/scirpt\u0026gt;\u003c/code\u003e会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Sublime Text3 快捷键大全","date_published":"2019-08-15T20:59:10+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/sublime-text3/","url":"https://lruihao.cn/posts/sublime-text3/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Sublime","他山之石"],"summary":"Sublime Text3 快捷键一览表\n","content_html":"\u003cp\u003eSublime Text3 快捷键一览表\u003c/p\u003e"},{"title":"NetBeans IDE 开发设置","date_published":"2019-08-15T18:36:15+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/netbeans/","url":"https://lruihao.cn/posts/netbeans/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["NetBeans","PHP"],"summary":"7 安裝 官方下載點\n8 擴充功能 8.1 安裝擴充功能 下載擴充套件包 官方套件庫 或者在 NetBeans IDE 裏面下載插件(方便) 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins 選擇要安裝的擴充套件包 8.2 啟用已安裝的擴充功能 開啟 NetBeans→Tools→Plugins→Installed 選擇要啟用的套件 (*.npm) 點擊 Activate 8.3 匯入設定 開啟 NetBeans→Tools→Options 點擊 Import 匯入設定 選擇要匯入的套件包 (*.zip) 9 常用設定 9.1 程式碼排版 在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"安裝\"\u003e\u003cspan\u003e7 安裝\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%9d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://netbeans.org/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方下載點\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"擴充功能\"\u003e\u003cspan\u003e8 擴充功能\u003c/span\u003e\n \u003ca href=\"#%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"安裝擴充功能\"\u003e\u003cspan\u003e8.1 安裝擴充功能\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%9d%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e下載擴充套件包\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://plugins.netbeans.org/PluginPortal/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方套件庫\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e或者在 NetBeans IDE 裏面下載插件(方便)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins\u003c/li\u003e\n\u003cli\u003e選擇要安裝的擴充套件包\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"啟用已安裝的擴充功能\"\u003e\u003cspan\u003e8.2 啟用已安裝的擴充功能\u003c/span\u003e\n \u003ca href=\"#%e5%95%9f%e7%94%a8%e5%b7%b2%e5%ae%89%e8%a3%9d%e7%9a%84%e6%93%b4%e5%85%85%e5%8a%9f%e8%83%bd\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Plugins→Installed\u003c/li\u003e\n\u003cli\u003e選擇要啟用的套件 (*.npm)\u003c/li\u003e\n\u003cli\u003e點擊 Activate\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"匯入設定\"\u003e\u003cspan\u003e8.3 匯入設定\u003c/span\u003e\n \u003ca href=\"#%e5%8c%af%e5%85%a5%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e開啟 NetBeans→Tools→Options\u003c/li\u003e\n\u003cli\u003e點擊 Import 匯入設定\u003c/li\u003e\n\u003cli\u003e選擇要匯入的套件包 (*.zip)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"常用設定\"\u003e\u003cspan\u003e9 常用設定\u003c/span\u003e\n \u003ca href=\"#%e5%b8%b8%e7%94%a8%e8%a8%ad%e5%ae%9a\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"程式碼排版\"\u003e\u003cspan\u003e9.1 程式碼排版\u003c/span\u003e\n \u003ca href=\"#%e7%a8%8b%e5%bc%8f%e7%a2%bc%e6%8e%92%e7%89%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cblockquote\u003e\n\u003cp\u003e在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。\u003c/p\u003e"},{"title":"Web 开发规则,代码规范","date_published":"2019-08-15T18:30:31+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/dev-rules/","url":"https://lruihao.cn/posts/dev-rules/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["CSS","Git","HTML","Java","JavaScript","PHP","Python","REST","Scss"],"summary":"31 精神 绝不写死代码,硬编码 不留不要用的、垃圾代码 32 Git Master 的 BUG 必须最少且趋近于零,为最稳定的版本 每次 Commit 信息应该准确填写。不可模棱两可,eg: 修复 BUG、增加功能 禁止 Commit IDE 的 project data,e.g: .vscode 禁止上传垃圾代码 更多规则详见文档 Commit 规范\n","content_html":"\u003ch2 class=\"heading-element\" id=\"精神\"\u003e\u003cspan\u003e31 精神\u003c/span\u003e\n \u003ca href=\"#%e7%b2%be%e7%a5%9e\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e绝不写死代码,硬编码\u003c/li\u003e\n\u003cli\u003e不留不要用的、垃圾代码\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"git\"\u003e\u003cspan\u003e32 Git\u003c/span\u003e\n \u003ca href=\"#git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eMaster 的 BUG 必须最少且趋近于零,为最稳定的版本\u003c/li\u003e\n\u003cli\u003e每次 Commit 信息应该准确填写。不可模棱两可,eg: 修复 BUG、增加功能\u003c/li\u003e\n\u003cli\u003e禁止 Commit IDE 的 project data,e.g: .vscode\u003c/li\u003e\n\u003cli\u003e禁止上传垃圾代码\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e更多规则详见文档 \u003ca href=\"/posts/commit-spec/\"\u003eCommit 规范\u003c/a\u003e\u003c/p\u003e"},{"title":"简单评论模块--php 表单练习","date_published":"2019-07-19T11:38:59+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpform/","url":"https://lruihao.cn/posts/phpform/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" 简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,\nPHP 表单安全性的重要提示\n$_SERVER[\u0026quot;PHP_SELF\u0026quot;]变量能够被黑客利用!\n如果页面中使用了PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。\n比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。\n跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,\u003cbr\u003e\n\u003cstrong\u003ePHP 表单安全性的重要提示\u003c/strong\u003e\u003cbr\u003e\n\u003ccode\u003e$_SERVER[\u0026quot;PHP_SELF\u0026quot;]\u003c/code\u003e变量能够被黑客利用!\u003cbr\u003e\n如果页面中使用了\u003ccode\u003ePHP_SELF\u003c/code\u003e,用户能够输入下划线然后执行跨站点脚本(XSS)。\u003cbr\u003e\n比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003e跨站点脚本(Cross-site scripting,XSS)\u003c/code\u003e是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"php 函数学习","date_published":"2019-07-15T11:37:33+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/phpfunc/","url":"https://lruihao.cn/posts/phpfunc/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP"],"summary":" 练习 php 函数的基本使用。\n注:\n必选参数在可选参数的前面。\n可在函数中定义函数,需要先调用外层函数才能调用内层函数。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e练习 php 函数的基本使用。\u003cbr\u003e\n注:\u003cbr\u003e\n必选参数在可选参数的前面。\u003cbr\u003e\n可在函数中定义函数,需要先调用外层函数才能调用内层函数。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"WAMPServer 自定义网站根目录等设置","date_published":"2019-07-12T18:44:36+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/wamproot/","url":"https://lruihao.cn/posts/wamproot/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["WAMP","PHP","windows","server"],"summary":" 使用 WAMPServer 时自定义网站根目录。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e使用 WAMPServer 时自定义网站根目录。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 实训总结Ⅱ","date_published":"2019-06-21T18:46:41+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysx2/","url":"https://lruihao.cn/posts/pysx2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 后面几天讲的有点杂,简单记录一下知识点。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e后面几天讲的有点杂,简单记录一下知识点。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 实训总结Ⅰ","date_published":"2019-06-18T18:41:00+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysx1/","url":"https://lruihao.cn/posts/pysx1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","turtle"],"summary":" 以前和前一段时间自己也学习了一下 python,也写了几个小爬虫; 这次正好又课程安排了为期两周的综合实训,主要是“用 python 做量化交易” 进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以前和前一段时间自己也学习了一下 python,也写了几个小爬虫;\n这次正好又课程安排了为期两周的综合实训,主要是“\u003cstrong\u003e用 python 做量化交易\u003c/strong\u003e”\n进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"判断三角形的黑盒测试","date_published":"2019-05-26T18:50:53+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/judgetriangle/","url":"https://lruihao.cn/posts/judgetriangle/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["黑盒测试","C"],"summary":" 黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\n白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。\u003cbr\u003e\n白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"HustOJ 基础搭建教程","date_published":"2019-05-17T23:08:04+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/hustoj/","url":"https://lruihao.cn/posts/hustoj/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["hustoj","ACM","ubuntu","linux"],"summary":" 目前 HustOj 在 GitHUb 地址是:https://github.com/zhblue/hustoj\n安装时注意 ubuntu 版本,没条件的可以在自己 ubuntu 上尝试,或者虚拟机上(关注公众号回复ubuntu16.04获取 iso 镜像文件),也可以在云实验室的云服务器上做做实验。\n更多说明及 ACM/NOIP 题库下载见官网博客 代码的那些事 | 程序员回忆录\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e目前 HustOj 在 GitHUb 地址是:\u003ca href=\"https://github.com/zhblue/hustoj\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://github.com/zhblue/hustoj\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n\u003cstrong\u003e安装时注意 ubuntu 版本\u003c/strong\u003e,没条件的可以在自己 ubuntu 上尝试,或者虚拟机上(关注公众号回复\u003ccode\u003eubuntu16.04\u003c/code\u003e获取 iso 镜像文件),也可以在云实验室的云服务器上做做实验。\u003cbr\u003e\n更多说明及 ACM/NOIP 题库下载见官网博客 \u003ca href=\"http://www.hustoj.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e代码的那些事 | 程序员回忆录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"最大公约数(二进制算法)","date_published":"2019-05-17T09:14:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/gcd-bit/","url":"https://lruihao.cn/posts/gcd-bit/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["欧几里得","数学","数论","C"],"summary":" 二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e二进制最大公约数算法避免了欧几里得算法(辗转相除法)的大量取模操作,有效减少了时间消耗,且更为方便。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宝塔面板安装 ImgURL 图床","date_published":"2019-05-16T20:31:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/imgurl/","url":"https://lruihao.cn/posts/imgurl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ImgURL","宝塔面板"],"image":"/posts/imgurl/images/1.png","summary":" ImgURL 是一个开源、免费的图床程序,ImgURL 2.x 之后对环境要求更高,尤其是 ImageMagick 组件的支持,很多朋友不清楚怎样安装这个组件,这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程(包括 ImgURL 2.x 需要的各种组件) 阅读原文\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eImgURL 是一个开源、免费的图床程序,ImgURL 2.x 之后对环境要求更高,尤其是 ImageMagick 组件的支持,很多朋友不清楚怎样安装这个组件,这篇文章分享宝塔面板安装 ImgURL 2.x 图床的过程(包括 ImgURL 2.x 需要的各种组件)\n\u003ca href=\"https://www.xiaoz.me/archives/12081\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e阅读原文\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 实战:模拟 post 请求定时获取后台数据并打包发送至微信","date_published":"2019-05-11T17:02:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mx2wx/","url":"https://lruihao.cn/posts/mx2wx/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","wxpy","pyinstaller","HTTP","JSON","Cron"],"summary":" 用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据,再打包发送至指定的微信群或者好友。\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e用 python 模拟 post 请求获取“麻小科技”示例酒店后台的数据,再打包发送至指定的微信群或者好友。\u003cbr\u003e\n要求每天早上 8 点定时把每个酒店的数据发送至每个酒店的微信工作群。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"条件注释判断浏览器版本\u003c!--[if lt IE 9]\u003e;","date_published":"2019-05-10T13:08:27+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ifzhushi/","url":"https://lruihao.cn/posts/ifzhushi/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","他山之石"],"summary":" \u0026lt;!--[if !IE]\u0026gt;\u0026lt;!--\u0026gt; 除 IE 外都可识别 \u0026lt;!--\u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE]\u0026gt; 所有的 IE 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 6]\u0026gt; 仅 IE6 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if lt IE 6]\u0026gt; IE6 以及 IE6 以下版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if gte IE 6]\u0026gt; IE6 以及 IE6 以上版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 7]\u0026gt; 仅 IE7 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if lt IE 7]\u0026gt; IE7 以及 IE7 以下版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if gte IE 7]\u0026gt; IE7 以及 IE7 以上版本可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 8]\u0026gt; 仅 IE8 可识别 \u0026lt;![endif]--\u0026gt;\n\u0026lt;!--[if IE 9]\u0026gt; 仅 IE9 可识别 \u0026lt;![endif]--\u0026gt;\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cspan\u003e\u0026lt;!--[if !IE]\u0026gt;\u0026lt;!--\u0026gt; 除 IE 外都可识别 \u0026lt;!--\u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE]\u0026gt; 所有的 IE 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 6]\u0026gt; 仅 IE6 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if lt IE 6]\u0026gt; IE6 以及 IE6 以下版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if gte IE 6]\u0026gt; IE6 以及 IE6 以上版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 7]\u0026gt; 仅 IE7 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if lt IE 7]\u0026gt; IE7 以及 IE7 以下版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if gte IE 7]\u0026gt; IE7 以及 IE7 以上版本可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 8]\u0026gt; 仅 IE8 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003cbr\u003e\u003cspan\u003e\u0026lt;!--[if IE 9]\u0026gt; 仅 IE9 可识别 \u0026lt;![endif]--\u0026gt;\u003c/span\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 设置程序每天 8 点定时执行任务","date_published":"2019-05-09T23:26:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pysettime/","url":"https://lruihao.cn/posts/pysettime/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","Cron"],"summary":" 第一次运行根据程序执行时间,判断程序休眠的时间,尽最大可能休眠,节省系统资源。\n第二次运行后直接休眠一天,到每天早上 8 点执行任务。\n(该程序需要一直挂着,保持网络不断)\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e第一次运行根据程序执行时间,判断程序休眠的时间,尽最大可能休眠,节省系统资源。\u003cbr\u003e\n第二次运行后直接休眠一天,到每天早上 8 点执行任务。\u003cbr\u003e\n(该程序需要一直挂着,保持网络不断)\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"安装 pyinstaller 出错的解决办法及 csdn 工具实例打包","date_published":"2019-05-09T19:05:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/pyinstallererror/","url":"https://lruihao.cn/posts/pyinstallererror/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","pyinstaller"],"image":"/posts/pyinstallererror/images/1.png","summary":" 用过命令pip install pyinstaller安装失败,此包依赖于 pywin32,安装前需要先pip install pywin32, 我安装了还是出错,稍微百度了一下也没有看到解决办法。 这里通过手动下载安装解决的,记录一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e用过命令\u003ccode\u003epip install pyinstaller\u003c/code\u003e安装失败,此包依赖于 pywin32,安装前需要先\u003ccode\u003epip install pywin32\u003c/code\u003e, 我安装了还是出错,稍微百度了一下也没有看到解决办法。\n这里通过手动下载安装解决的,记录一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 实现一个单线程的资源下载器","date_published":"2019-05-08T20:55:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/singlethreaddown/","url":"https://lruihao.cn/posts/singlethreaddown/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GUI","URLConnection","HTTP","Java"],"image":"https://lruihao.cn/posts/singlethreaddown/images/1.png","summary":" 实现一个简单的基于单线程的资源下载器,如图所示,用户可以任意指定下载资源的链接地址,系统根据该地址判断资源是否存在,如果存在,则将该资源下载到本地。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e实现一个简单的基于单线程的资源下载器,如图所示,用户可以任意指定下载资源的链接地址,系统根据该地址判断资源是否存在,如果存在,则将该资源下载到本地。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Python 如何操作 Json?","date_published":"2019-05-07T18:42:47+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/jsoninfo/","url":"https://lruihao.cn/posts/jsoninfo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","JSON","他山之石"],"image":"/posts/jsoninfo/images/1.jpg","summary":" Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003eJson(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 发送 post 请求进行简单的接口测试","date_published":"2019-05-07T18:17:05+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/posttest/","url":"https://lruihao.cn/posts/posttest/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","HTTP"],"summary":" 通过 requests 可以向某个地址发送请求,可以用来做一些接口的测试;主要有两个方法:\nrequests.get() requests.post()\n最近帮朋友的项目做一个小需求,需要把后台数据定期打包发送到微信群,麻小科技涛哥给了我一个接口,post 访问。 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e通过 requests 可以向某个地址发送请求,可以用来做一些接口的测试;主要有两个方法:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003erequests.get()\u003c/li\u003e\n\u003cli\u003erequests.post()\u003cbr\u003e\n最近帮朋友的项目做一个小需求,需要把后台数据定期打包发送到微信群,麻小科技涛哥给了我一个接口,post 访问。\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"java 通过 URL 和 URLConnection 访问网页资源","date_published":"2019-05-06T17:41:35+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-urlreader/","url":"https://lruihao.cn/posts/java-urlreader/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["URLConnection","Java"],"summary":" 该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"文件加密解密(字节流)","date_published":"2019-05-02T23:04:32+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/byteio/","url":"https://lruihao.cn/posts/byteio/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。\n这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。\u003c/p\u003e\n\u003cp\u003e这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"模拟借书系统(java 异常练习)","date_published":"2019-05-01T16:52:21+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/javaexception/","url":"https://lruihao.cn/posts/javaexception/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"image":"/posts/javaexception/images/1.png","content_html":"模拟借书系统(java 异常练习)"},{"title":"用 MyQR 制作专属动态二维码 (py 和 exe 版本)","date_published":"2019-04-27T14:16:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qrcode/","url":"https://lruihao.cn/posts/qrcode/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["pillow","numpy","imageio","Python"],"summary":" Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 sylnsfar/qrcode,本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载,公众号文章后台回复关键词“qrcode”获取链接。\n可生成_普通二维码_、带图片的艺术二维码(黑白与彩色)、动态二维码(黑白与彩色)。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003ePython 二维码生成器\u003c/strong\u003e是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 \u003ca href=\"https://github.com/sylnsfar/qrcode/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esylnsfar/qrcode\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,本文主要介绍记录一下 python 版本使用。exe 可以去 \u003ca href=\"https://github.com/sylnsfar/qrcode_win\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e项目开源地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 下载,公众号文章后台回复关键词“qrcode”获取链接。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e可生成_普通二维码_、\u003cem\u003e带图片的艺术二维码(黑白与彩色)\u003c/em\u003e、\u003cem\u003e动态二维码(黑白与彩色)\u003c/em\u003e。\u003c/p\u003e"},{"title":"第一次面试经历","date_published":"2019-04-24T21:23:22+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/1thintervivew/","url":"https://lruihao.cn/posts/1thintervivew/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["面试"],"summary":" 时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 爬取网站图片(图片链接相似)","date_published":"2019-04-22T12:46:34+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mmtimgpy/","url":"https://lruihao.cn/posts/mmtimgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python"],"summary":" 以下程序对 该网址 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。字体效果查看\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以下程序对 \u003ca href=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\u0026amp;a=fontshowPics\u0026amp;u=qbfRl8gPF2s-\u0026amp;z=Kqz%2FRroVGYc-\u0026amp;share=1\u0026amp;from=singlemessage\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e该网址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 内的手写体图片进行爬取!这个手写体是我在手机上通过《手迹造字》app 书写的,大概 6886 个字符,历时两年多,目前仍在修改中。\u003ca href=\"/projects/font-mmt/\"\u003e字体效果查看\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"python 玩微信:初探 wxpy","date_published":"2019-04-20T15:44:57+08:00","date_modified":"2019-04-20T15:44:57+08:00","id":"https://lruihao.cn/posts/wxpy1/","url":"https://lruihao.cn/posts/wxpy1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Python","wxpy","pyecharts","jieba","他山之石"],"image":"/posts/wxpy1/images/1.png","summary":" 文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n查看微信好友男女比例 查看好友地区分布 群性别统计 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e查看微信好友男女比例\u003c/li\u003e\n\u003cli\u003e查看好友地区分布\u003c/li\u003e\n\u003cli\u003e群性别统计\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e"},{"title":"基本 python 实现的爬取微信好友头像,并拼接成大图","date_published":"2019-04-20T13:32:58+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/wximgpy/","url":"https://lruihao.cn/posts/wximgpy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["wxpy","pillow","Python"],"image":"/posts/wximgpy/images/1.jpg","summary":" Python 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\n文中涉及的图片涉及个人隐私,仅做举例,请勿传播\n文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ePython 通过 wxpy 登录微信网页版,爬取好友所有头像并拼接成一张大图。然后删除所有子图。(注释相关代码可以不删除)\u003cbr\u003e\n\u003cstrong\u003e\u003cem\u003e文中涉及的图片涉及个人隐私,仅做举例,请勿传播\u003c/em\u003e\u003c/strong\u003e\u003cbr\u003e\n\u003cstrong\u003e文中编码由 Sunbelife 提供,来自他的同名微信公众号,本博仅用于学习,侵删\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"用记事本编写第一个 java 程序","date_published":"2019-04-19T19:49:54+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/hellojava/","url":"https://lruihao.cn/posts/hellojava/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以.java为后缀的文件;然后将这些源程序用javac编译成.class后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\n由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。\njavac java ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以\u003ccode\u003e.java\u003c/code\u003e为后缀的文件;然后将这些源程序用\u003ccode\u003ejavac\u003c/code\u003e编译成\u003ccode\u003e.class\u003c/code\u003e后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。\u003cbr\u003e\n由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003ejavac\u003c/li\u003e\n\u003cli\u003ejava\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"java 正则表达式练习","date_published":"2019-04-18T22:04:21+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-regex/","url":"https://lruihao.cn/posts/java-regex/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["regex","Java"],"summary":"7 邮箱 import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexDemo { public static void main(String[] args) { // Pattern 类 正则表达式的编译表示。 Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\"); String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"}; for (String email : emails) { //Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎 Matcher matcher = pattern.matcher(email); System.out.println(email + \"匹配结果:\" + matcher.matches()); } } }admin@lruihao.cn 匹配结果:true lruihao.cn 匹配结果:false8 电话 package base; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest { public static void main(String[] args) { Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); Scanner sc=new Scanner(System.in); String telnum=sc.nextLine(); sc.close(); Matcher matcher=patter.matcher(telnum); System.out.println(telnum+\"匹配结果: \"+matcher.matches()); } }/** * 获取当前的 httpSession * @return */ public static HttpSession getSession() { return getRequest().getSession(); } /** * 手机号验证 * @param str * @return 验证通过返回 true */ public static boolean isMobile(final String str) { Pattern p = null; Matcher m = null; boolean b = false; p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号 m = p.matcher(str); b = m.matches(); return b; } /** * 电话号码验证 * @param str * @return 验证通过返回 true */ public static boolean isPhone(final String str) { Pattern p1 = null, p2 = null; Matcher m = null; boolean b = false; p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的 p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的 if (str.length() \u003e 9) { m = p1.matcher(str); b = m.matches(); } else { m = p2.matcher(str); b = m.matches(); } return b; }9 身份证 /* 身份证正则表达式 16 或 18 */ public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" + \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" + \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";","content_html":"\u003ch2 class=\"heading-element\" id=\"邮箱\"\u003e\u003cspan\u003e7 邮箱\u003c/span\u003e\n \u003ca href=\"#%e9%82%ae%e7%ae%b1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexDemo {\n public static void main(String[] args) {\n// Pattern 类 正则表达式的编译表示。\n Pattern pattern = Pattern.compile(\"^[a-zA-Z0-9_!#$%\u0026'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$\");\n String[] emails = {\"admin@lruihao.cn\", \"lruihao.cn\"};\n for (String email :\n emails) {\n//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎\n Matcher matcher = pattern.matcher(email);\n System.out.println(email + \"匹配结果:\" + matcher.matches());\n }\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003eadmin@lruihao.cn 匹配结果:true\nlruihao.cn 匹配结果:false\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"电话\"\u003e\u003cspan\u003e8 电话\u003c/span\u003e\n \u003ca href=\"#%e7%94%b5%e8%af%9d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epackage base;\n\nimport java.util.Scanner;\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\n\npublic class RegexTest {\n public static void main(String[] args) {\n Pattern patter=Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\");\n Scanner sc=new Scanner(System.in);\n String telnum=sc.nextLine();\n sc.close();\n Matcher matcher=patter.matcher(telnum);\n System.out.println(telnum+\"匹配结果: \"+matcher.matches());\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/**\n * 获取当前的 httpSession\n * @return\n */\npublic static HttpSession getSession() {\n return getRequest().getSession();\n}\n/**\n * 手机号验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isMobile(final String str) {\n Pattern p = null;\n Matcher m = null;\n boolean b = false;\n p = Pattern.compile(\"^[1][3,4,5,7,8][0-9]{9}$\"); // 验证手机号\n m = p.matcher(str);\n b = m.matches();\n return b;\n}\n/**\n * 电话号码验证\n * @param str\n * @return 验证通过返回 true\n */\npublic static boolean isPhone(final String str) {\n Pattern p1 = null, p2 = null;\n Matcher m = null;\n boolean b = false;\n p1 = Pattern.compile(\"^[0][1-9]{2,3}-[0-9]{5,10}$\"); // 验证带区号的\n p2 = Pattern.compile(\"^[1-9]{1}[0-9]{5,8}$\"); // 验证没有区号的\n if (str.length() \u003e 9) {\n m = p1.matcher(str);\n b = m.matches();\n } else {\n m = p2.matcher(str);\n b = m.matches();\n }\n return b;\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"身份证\"\u003e\u003cspan\u003e9 身份证\u003c/span\u003e\n \u003ca href=\"#%e8%ba%ab%e4%bb%bd%e8%af%81\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e/* 身份证正则表达式 16 或 18 */\n public static final String IDCARD=\"((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})\" +\n \"(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}\" +\n \"[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))\";\u003c/code\u003e\u003c/pre\u003e"},{"title":"java 常用类","date_published":"2019-04-14T10:12:44+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/stringbuffer/","url":"https://lruihao.cn/posts/stringbuffer/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["StringBuffer","sort","Java"],"summary":"9 StringBuffer/StringBuilder(掌握) 9.1 StringBuffer 是线程安全的可变字符串 StringBuilder 是线程不安全的可变字符串。\n和 StringBuffer 的功能一样。就是效率高一些,但是不安全。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"stringbufferstringbuilder掌握\"\u003e\u003cspan\u003e9 StringBuffer/StringBuilder(掌握)\u003c/span\u003e\n \u003ca href=\"#stringbufferstringbuilder%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"stringbuffer-是线程安全的可变字符串\"\u003e\u003cspan\u003e9.1 StringBuffer 是线程安全的可变字符串\u003c/span\u003e\n \u003ca href=\"#stringbuffer-%e6%98%af%e7%ba%bf%e7%a8%8b%e5%ae%89%e5%85%a8%e7%9a%84%e5%8f%af%e5%8f%98%e5%ad%97%e7%ac%a6%e4%b8%b2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eStringBuilder 是线程不安全的可变字符串。\u003cbr\u003e\n和 StringBuffer 的功能一样。就是效率高一些,但是不安全。\u003c/p\u003e"},{"title":"HDU 1009 FatMouse' Trade(贪心)","date_published":"2019-04-12T16:43:19+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/hdu1009/","url":"https://lruihao.cn/posts/hdu1009/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","贪心","HDU"],"summary":"5 题目大意 题目链接\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e5 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1009\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。\u003c/p\u003e"},{"title":"本地搭建网站服务器并穿透内网","date_published":"2019-04-03T19:29:43+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ngrok/","url":"https://lruihao.cn/posts/ngrok/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ngrok","linux","宝塔面板","server","ubuntu"],"summary":" 一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器,今天终于简单实现了。还有很多知识需要学习,简单记录一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e一直都想在自己电脑上搭建一个网站或者把自己的电脑做成服务器,今天终于简单实现了。还有很多知识需要学习,简单记录一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"前端面试题 - HTML+CSS","date_published":"2019-03-30T22:58:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/ms-html-css/","url":"https://lruihao.cn/posts/ms-html-css/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["HTML","CSS"],"summary":" 原文链接\n“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。\n如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ltadpoles/web-document/tree/master/Other\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e原文链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过\u003c/p\u003e"},{"title":"百钱百鸡(枚举法)","date_published":"2019-03-30T10:13:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/bqbj/","url":"https://lruihao.cn/posts/bqbj/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM"],"summary":" 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"大数乘法","date_published":"2019-03-28T22:50:43+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/dacheng/","url":"https://lruihao.cn/posts/dacheng/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","大数运算","ACM","C"],"summary":" 大数乘法 c 版 (基础写法)\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e大数乘法 c 版 (基础写法)\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"vps 配置 ssl 及 https 重定向","date_published":"2019-03-28T19:40:54+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/http2https/","url":"https://lruihao.cn/posts/http2https/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["SSL","redirect","CDN","JavaScript","server"],"summary":" 记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e记录自己在配置 vps 及博客 SSL 证书时遇到的问题。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo-theme-next @modified LRH","date_published":"2019-03-21T16:43:19+08:00","date_modified":"2019-09-13T16:43:19+08:00","id":"https://lruihao.cn/posts/hexo-theme-next/","url":"https://lruihao.cn/posts/hexo-theme-next/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js","他山之石"],"image":"/posts/hexo-theme-next/images/next.png","summary":" 危险 如无必要,不再更新!(2019.09.13)\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\n以下仍为当前博客使用主题,lib 资源已打包 github。 ","content_html":"\u003c!-- markdownlint-disable-file --\u003e\n\u003cdiv class=\"details admonition danger open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-bolt\" aria-hidden=\"true\"\u003e\u003c/i\u003e危险\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cspan style=\"color: #d9534f;font-size: 1.2em;\"\u003e\u003cstrong\u003e如无必要,不再更新!(2019.09.13)\u003c/strong\u003e\u003c/span\u003e\u003cbr\u003e\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将\u003cstrong\u003e放弃对 next 的主题的自定义修改\u003c/strong\u003e,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。\u003cbr\u003e\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\u003cbr\u003e\n以下仍为当前博客使用主题,lib 资源已打包 github。\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"Java 父类子类的对象初始化过程","date_published":"2019-03-21T13:36:25+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/substatus/","url":"https://lruihao.cn/posts/substatus/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 摘要:Java 基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e摘要:Java 基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"ubuntu + windows 双系统默认启动项设置","date_published":"2019-03-21T12:48:30+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/windefault/","url":"https://lruihao.cn/posts/windefault/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","windows","ubuntu"],"image":"/posts/windefault/images/1.png","summary":" 双系统默认启动项是 Ubuntu,而日常使用最多的还是 Windows,所以说很不方便,一不小心就开机到 Ubuntu 去了。今天来设置一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e双系统默认启动项是 Ubuntu,而日常使用最多的还是 Windows,所以说很不方便,一不小心就开机到 Ubuntu 去了。今天来设置一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宅音乐播放器","date_published":"2019-03-19T23:32:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/player/","url":"https://lruihao.cn/posts/player/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["PHP","ThinkPHP","Layui","MySQL"],"image":"/posts/player/images/index.png","summary":" 宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\n原项目 由 IT 技术宅 开源,使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库,也是相当于备份源码。\n注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~\u003cbr\u003e\n\u003ca href=\"https://github.com/lzx8589561/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e原项目\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 由 \u003ca href=\"https://www.ilt.me\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eIT 技术宅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 开源,使用 thinkPHP 开发后台。 \u003ca href=\"https://github.com/Lruihao/zhai-music\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003efork 地址\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 是我个人学习模仿的库,也是相当于备份源码。\u003cbr\u003e\n\u003cem\u003e注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。\u003c/em\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"宝塔面板安装","date_published":"2019-03-18T21:31:43+08:00","date_modified":"2019-03-18T21:31:43+08:00","id":"https://lruihao.cn/posts/bt/","url":"https://lruihao.cn/posts/bt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","server","宝塔面板"],"image":"/posts/bt/images/1.png","summary":"极速方便的一键配置与管理,免除繁琐的命令行操作,通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境,可创建及管理网站,可创建及管理数据库,可创建及管理 FTP 等等。宝塔官网介绍\n","content_html":"\u003cp\u003e极速方便的一键配置与管理,免除繁琐的命令行操作,通过 Web 面板一键即可操作实现。可选择安装 lamp 或者 lnmp 环境,可创建及管理网站,可创建及管理数据库,可创建及管理 FTP 等等。\u003ca href=\"https://www.bt.cn/?invite_code=MV9sYXJnZHI=\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔官网介绍\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"web 汇总","date_published":"2019-03-18T20:40:55+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/webbiji/","url":"https://lruihao.cn/posts/webbiji/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 下面一些 web 开发的一些总结,还有一些常用到的代码,脚本等!\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e下面一些 web 开发的一些总结,还有一些常用到的代码,脚本等!\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 泛型 test","date_published":"2019-03-16T13:56:01+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/fanxing/","url":"https://lruihao.cn/posts/fanxing/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["泛型","Java"],"summary":" 泛型方法,它在修饰符后,返回值类型前增加了类型参数 (\u0026lt;\u0026gt;) 类型通配符一般使用问号?代替具体的类型实参,注意不是类型形参。 ","content_html":"\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003e泛型方法,它在修饰符后,返回值类型前增加了类型参数 (\u0026lt;\u0026gt;)\u003c/li\u003e\n\u003cli\u003e类型通配符一般使用问号\u003ccode\u003e?\u003c/code\u003e代替具体的类型\u003ccode\u003e实\u003c/code\u003e参,注意不是类型形参。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e"},{"title":"eclipse 的基本使用","date_published":"2019-03-15T23:47:24+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/eclipseuse/","url":"https://lruihao.cn/posts/eclipseuse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["eclipse","Java"],"summary":"9 基本使用 A: 选择一个工作空间 D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace B: 如何写一个 HelloWorld 案例(代码以项目为基本单位) a: 创建项目(工程) *File -- New -- Java Project *在左边空白处,直接右键 -- New -- Java Project 键入项目名称后直接 Finish。 b: 所有的 java 文件必须写到 src 下面才有效 c: 创建一个包 cn.lruihao d: 在包下创建一个类 HelloWorld 同时让它帮我们写好了 main 方法。 e: 在 main 方法中写内容即可 f: 编译程序 自动编译,在保存的那一刻帮你做好了 g: 运行程序 选择要运行的文件或者在要运行的文件内容中 右键 -- Run as - Java Application 即可 h: 内容显示 在 Console 控制台显示内容10 Eclipse 的基本设置 A: 程序的编译和运行的环境配置(如果你的 Eclipse 启动没有问题,就不要配置了) B: 去掉默认注释(可以不用改) C: 行号的显示和隐藏 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers 即可。 隐藏:把上面的动作再做一次。 D: 字体大小及颜色 a:Java 代码区域的字体大小和颜色: window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font b: 控制台 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font c: 其他文件 window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font E: 窗体给弄乱了,怎么办 window -- Reset Perspective F: 控制台找不到了 Window--Show View—Console11 快捷键的使用 A: 内容辅助键 Alt+/ 起提示作用 main+alt+/,syso+alt+/, 给出其他提示 B: 快捷键 格式化 ctrl+shift+f 导入包 ctrl+shift+o 注释 ctrl+/ ctrl+shift+/,ctrl+shift+\\ 代码上下移动 选中代码 alt+上/下箭头 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击)12 Eclipse 中如何提高开发效率 A: 自动生成构造方法 a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish B: 自动生成 get/set 方法 在代码区域右键--source--Generate Getters and Setters...","content_html":"\u003ch2 class=\"heading-element\" id=\"基本使用\"\u003e\u003cspan\u003e9 基本使用\u003c/span\u003e\n \u003ca href=\"#%e5%9f%ba%e6%9c%ac%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 选择一个工作空间\n D:\\develop\\eclipse-SDK-3.7.2-win64\\workspace\nB: 如何写一个 HelloWorld 案例(代码以项目为基本单位)\n a: 创建项目(工程)\n *File -- New -- Java Project\n *在左边空白处,直接右键 -- New -- Java Project\n\n 键入项目名称后直接 Finish。\n b: 所有的 java 文件必须写到 src 下面才有效\n c: 创建一个包\n cn.lruihao\n d: 在包下创建一个类\n HelloWorld\n\n 同时让它帮我们写好了 main 方法。\n e: 在 main 方法中写内容即可\n f: 编译程序\n 自动编译,在保存的那一刻帮你做好了\n g: 运行程序\n 选择要运行的文件或者在要运行的文件内容中\n 右键 -- Run as - Java Application 即可\n h: 内容显示\n 在 Console 控制台显示内容\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"eclipse-的基本设置\"\u003e\u003cspan\u003e10 Eclipse 的基本设置\u003c/span\u003e\n \u003ca href=\"#eclipse-%e7%9a%84%e5%9f%ba%e6%9c%ac%e8%ae%be%e7%bd%ae\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 程序的编译和运行的环境配置(如果你的 Eclipse 启动没有问题,就不要配置了)\nB: 去掉默认注释(可以不用改)\nC: 行号的显示和隐藏\n 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers 即可。\n 隐藏:把上面的动作再做一次。\nD: 字体大小及颜色\n a:Java 代码区域的字体大小和颜色:\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font\n b: 控制台\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font\n c: 其他文件\n window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font\nE: 窗体给弄乱了,怎么办\n window -- Reset Perspective\nF: 控制台找不到了\n Window--Show View—Console\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"快捷键的使用\"\u003e\u003cspan\u003e11 快捷键的使用\u003c/span\u003e\n \u003ca href=\"#%e5%bf%ab%e6%8d%b7%e9%94%ae%e7%9a%84%e4%bd%bf%e7%94%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 内容辅助键\n Alt+/ 起提示作用\n main+alt+/,syso+alt+/, 给出其他提示\nB: 快捷键\n 格式化 ctrl+shift+f\n 导入包 ctrl+shift+o\n 注释 ctrl+/\n ctrl+shift+/,ctrl+shift+\\\n 代码上下移动 选中代码 alt+上/下箭头\n 查看源码 选中类名 (F3 或者 Ctrl+鼠标点击)\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"eclipse-中如何提高开发效率\"\u003e\u003cspan\u003e12 Eclipse 中如何提高开发效率\u003c/span\u003e\n \u003ca href=\"#eclipse-%e4%b8%ad%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%bc%80%e5%8f%91%e6%95%88%e7%8e%87\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003eA: 自动生成构造方法\n a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass\n b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish\nB: 自动生成 get/set 方法\n 在代码区域右键--source--Generate Getters and Setters...\u003c/code\u003e\u003c/pre\u003e"},{"title":"匿名类在可视化界面中的应用","date_published":"2019-03-15T22:31:28+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qframe/","url":"https://lruihao.cn/posts/qframe/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["GUI","Java"],"summary":" java 中匿名类用的最多的地方就是可视化界面设计中,特别是将事件监听器注册到某个组件上的时候。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003ejava 中匿名类用的最多的地方就是可视化界面设计中,特别是将\u003ccode\u003e事件监听器\u003c/code\u003e注册到某个组件上的时候。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"模仿知乎卡片式链接","date_published":"2019-03-15T15:21:39+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/linkcard/","url":"https://lruihao.cn/posts/linkcard/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 模仿知乎的卡片式链接,idea 来自 [兰州小红鸡]\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e模仿知乎的卡片式链接,idea 来自 [兰州小红鸡]\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"win10,ubuntu 双系统时间不一致","date_published":"2019-03-15T14:28:10+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/ubuntutime/","url":"https://lruihao.cn/posts/ubuntutime/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ubuntu","linux","windows"],"summary":" 我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"QQ 强制生成卡片式链接","date_published":"2019-03-08T16:52:13+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/qqxml/","url":"https://lruihao.cn/posts/qqxml/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。\u003cbr\u003e\n查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url \u003ccode\u003ehttps://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url=\u003c/code\u003e 于是就有了脚本刷新的想法。简陋的写了一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"磁盘存储器的管理","date_published":"2019-03-04T23:08:32+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/cipanadmin/","url":"https://lruihao.cn/posts/cipanadmin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["OS","磁盘"],"summary":"1 外存的组织方式 1.1 连续组织方式 连续组织方式的优点\n","content_html":"\u003ch2 class=\"heading-element\" id=\"外存的组织方式\"\u003e\u003cspan\u003e1 外存的组织方式\u003c/span\u003e\n \u003ca href=\"#%e5%a4%96%e5%ad%98%e7%9a%84%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"连续组织方式\"\u003e\u003cspan\u003e1.1 连续组织方式\u003c/span\u003e\n \u003ca href=\"#%e8%bf%9e%e7%bb%ad%e7%bb%84%e7%bb%87%e6%96%b9%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e连续组织方式的优点\u003c/p\u003e"},{"title":"JS 验证码","date_published":"2019-03-04T20:53:09+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/js-vcode/","url":"https://lruihao.cn/posts/js-vcode/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 请点击验证码处:↑ ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003cstyle type=\"text/css\"\u003e\n\n# code{ \n\n font-family:Arial; \n font-style:italic; \n font-weight:bold; \n border:2px solid #ddd;\n letter-spacing:9px; \n color:blue;\n font-size: 15px;\n}\n\u003c/style\u003e\n\u003cscript type=\"text/javascript\"\u003e\n //设置一个全局的变量,便于保存验证码\n var code;\n function createCode(){\n //首先默认 code 为空字符串\n code = '';\n //设置长度,这里看需求,我这里设置了 4\n var codeLength = 4;\n var codeV = document.getElementById('code');\n //设置随机字符\n var random = new Array('人','徒','知','枯','坐','息','思','为','进','德','之','功','殊','不','知','上','达','之', '士','圆','通','定','慧','体','用','双','修','即','动','而','静','虽','撄','而','宁');\n //循环 codeLength 我设置的 4 就是循环 4 次\n for(var i = 0; i \u003c codeLength; i++){\n //设置随机数范围,这设置为 0 ~ 36\n var index = Math.floor(Math.random()*35);\n //字符串拼接 将每次随机的字符 进行拼接\n code += random[index];\n }\n //将拼接好的字符串赋值给展示的 Value\n codeV.value = code;\n }\n\n //下面就是判断是否== 的代码,无需解释\n function validate(){\n var Input = document.getElementById('input');\n var oValue = Input.value.toUpperCase();\n if(oValue ==0){\n alert('请输入验证码');\n }else if(oValue != code){\n Input.value = '';\n alert('验证码不正确,请重新输入');\n createCode();\n }else{\n Input.value = '';\n alert('验证码正确!');//window.open('http://lruihao.cn','_self');\n }\n }\n\n //设置此处的原因是每次进入界面展示一个随机的验证码,不设置则为空\n window.onload = function (){\n\n createCode();\n }\n\u003c/script\u003e\n\u003cdiv align=\"center\"\u003e \n \u003cinput type = \"text\" id = \"input\" value=\"\" /\u003e \u003cinput type = \"button\" id=\"code\" onclick=\"createCode()\"/\u003e \u003cinput class=\"btn\" type = \"button\" value = \"验证\" onclick = \"validate()\"/\u003e\n \u003cbr/\u003e请点击验证码处:↑\n\u003c/div\u003e"},{"title":"还乡","date_published":"2019-02-01T20:44:40+08:00","date_modified":"2019-02-01T20:44:40+08:00","id":"https://lruihao.cn/posts/renative/","url":"https://lruihao.cn/posts/renative/","authors":[{"name":"杨灿","url":"mailto:1845280636@qq.com"}],"tags":["随笔","他山之石"],"summary":" 这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e这不是英国作家哈代的《The Return of Native》, 而是我们这辈的父母所经历的常态。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Elegant and powerful theme for Hexo.","date_published":"2019-01-31T09:57:45Z","date_modified":"2023-12-21T02:39:42Z","id":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","url":"https://lruihao.cn/projects/lruihao/hexo-theme-next/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"summary":"hexo-theme-next 如无必要,不再更新!(2019.09.13)\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对next的主题的自定义修改,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\n以下仍为当前博客使用主题,lib资源已打包github。\n基于hexo-theme-next 6.0+的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; https://theme-next.org 记录一下折腾过程,修改内容以博採眾長为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见hexo分类。 主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\n","content_html":"\u003ch1 align=center\u003ehexo-theme-next\u003c/h1\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e如无必要,不再更新!(2019.09.13)\u003c/strong\u003e\u003cbr\u003e\n今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将\u003cstrong\u003e放弃对next的主题的自定义修改\u003c/strong\u003e,next主题官方已经更新到了7.0+的版本,喜欢next主题风格的朋友可以在github更新。\u003cbr\u003e\n我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。\u003cbr\u003e\n以下仍为当前博客使用主题,lib资源已打包github。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e基于\u003ca href=\"https://github.com/theme-next/hexo-theme-next\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next 6.0+\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e的Pisces模板做的DIY扩展性设计。主要是一些custom stlye还有一些第三方的js。修改的地方太多也有点小乱就不提PR了。 官方Demo =\u0026gt; \u003ca href=\"https://theme-next.org\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://theme-next.org\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e \u003cbr\u003e\n记录一下折腾过程,修改内容以\u003ca href=\"https://lruihao.cn/posts/hexo-theme-next.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e为准,以后备份恢复博客也好方便自己。本文之前的美化修改请见\u003ca href=\"https://lruihao.cn/categories/hexo/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo分类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e。\n\u003cstrong\u003e主题中若有遗漏第三方插件或应用的key及id值等请修改为自己对应的值\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 继承 test","date_published":"2019-01-24T15:07:50+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/jicheng/","url":"https://lruihao.cn/posts/jicheng/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 引用 继承的好处:\n提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系,是多态的前提 继承的弊端:类的耦合性很强\n设计原则:低耦合,高内聚。\n耦合:类与类的关系。 内聚:自己完成事情的能力。 ","content_html":"\u003cdiv class=\"details admonition quote open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-quote-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e引用\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e继承的好处:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e提高了代码的复用性\u003c/li\u003e\n\u003cli\u003e提高了代码的维护性\u003c/li\u003e\n\u003cli\u003e让类与类之间产生了关系,是多态的前提\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e继承的弊端:类的耦合性很强\u003c/p\u003e\n\u003cp\u003e设计原则:低耦合,高内聚。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e耦合:类与类的关系。\u003c/li\u003e\n\u003cli\u003e内聚:自己完成事情的能力。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"利用腾讯云对象存储 COS 桶托管 hexo 博客","date_published":"2019-01-22T14:57:08+08:00","date_modified":"2024-10-06T10:24:30+08:00","id":"https://lruihao.cn/posts/cos-hexo/","url":"https://lruihao.cn/posts/cos-hexo/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","hugo","对象存储","腾讯云 cos 桶"],"summary":" 本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。\n适用于 hexo, hugo 等静态博客的部署。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。\u003cbr\u003e\n适用于 hexo, hugo 等静态博客的部署。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"Arrays 类及基本使用","date_published":"2019-01-18T13:13:10+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-arrays/","url":"https://lruihao.cn/posts/java-arrays/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java","Collator","Comparator"],"summary":"7 主要方法 static type[] copyof(type[] original,int length) static int binarysearch(type[] a,type key) static boolean equals(type[] a,type[] b) static void fill(type[] a,type val) static void fill(type[] a,int fromindex,int toindex,type val) static void sort(type[] a) ","content_html":"\u003ch2 class=\"heading-element\" id=\"主要方法\"\u003e\u003cspan\u003e7 主要方法\u003c/span\u003e\n \u003ca href=\"#%e4%b8%bb%e8%a6%81%e6%96%b9%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003estatic type[] copyof(type[] original,int length)\u003c/li\u003e\n\u003cli\u003estatic int binarysearch(type[] a,type key)\u003c/li\u003e\n\u003cli\u003estatic boolean equals(type[] a,type[] b)\u003c/li\u003e\n\u003cli\u003estatic void fill(type[] a,type val)\u003c/li\u003e\n\u003cli\u003estatic void fill(type[] a,int fromindex,int toindex,type val)\u003c/li\u003e\n\u003cli\u003estatic void sort(type[] a)\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"在搜索、文章底部、侧栏添加最近文章模块","date_published":"2019-01-16T17:50:52+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/recent-posts/","url":"https://lruihao.cn/posts/recent-posts/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 首先在主题配置文件添加以下关键字\nrecent_posts: enable: true search: true post: false sidebar: false icon: history title: 近期文章 layout: block9 侧栏 在 next/layout/_macro/sidebar.swig 中的 if theme.links 对应的 endif 后面。\n{% if theme.recent_posts.enable and theme.recent_posts.sidebar %} ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e首先在主题配置文件添加以下关键字\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre\u003e\u003ccode\u003erecent_posts:\n enable: true\n search: true\n post: false\n sidebar: false\n icon: history\n title: 近期文章\n layout: block\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"侧栏\"\u003e\u003cspan\u003e9 侧栏\u003c/span\u003e\n \u003ca href=\"#%e4%be%a7%e6%a0%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在 \u003ccode\u003enext/layout/_macro/sidebar.swig\u003c/code\u003e 中的 \u003ccode\u003eif theme.links\u003c/code\u003e 对应的 \u003ccode\u003eendif\u003c/code\u003e 后面。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e{% if theme.recent_posts.enable and theme.recent_posts.sidebar %}\n \u003cdiv class=\"links-of-blogroll motion-element {{ \"links-of-blogroll-\" + theme.recent_posts.layout }}\"\u003e\n \u003cdiv class=\"links-of-blogroll-title\"\u003e\n \u003ci class=\"fa fa-history fa-{{ theme.recent_posts.icon | lower }}\" aria-hidden=\"true\"\u003e\u003c/i\u003e\n {{ theme.recent_posts.title }}\n \u003c/div\u003e\n \u003cul class=\"links-of-blogroll-list\"\u003e\n {% set posts = site.posts.sort('-date') %}\n {% for post in posts.slice('0', '3') %}\n \u003cli\u003e\n \u003ca href=\"{{ url_for(post.path) }}\" title=\"{{ post.title }}\" target=\"_blank\"\u003e{{ post.title }}\u003c/a\u003e\n \u003c/li\u003e\n {% endfor %}\n \u003c/ul\u003e\n \u003c/div\u003e\n{% endif %}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"搜索结果处添加\"\u003e\u003cspan\u003e10 搜索结果处添加\u003c/span\u003e\n \u003ca href=\"#%e6%90%9c%e7%b4%a2%e7%bb%93%e6%9e%9c%e5%a4%84%e6%b7%bb%e5%8a%a0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e找到路径\u003ccode\u003eH:\\hexo\\themes\\hexo-theme-next\\layout\\_partials\\search\u003c/code\u003e下\u003ccode\u003elocalsearch.swig\u003c/code\u003e文件\u003cbr\u003e\n把\u003ccode\u003e\u0026lt;div id=\u0026quot;local-search-result\u0026quot;\u0026gt;\u0026lt;/div\u0026gt;\u003c/code\u003e修改成以下内容(这里显示 15 篇)\u003c/p\u003e"},{"title":"java 猜数字小游戏(Math 类)","date_published":"2019-01-15T17:33:28+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/mathclass/","url":"https://lruihao.cn/posts/mathclass/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":" 大一刚学 c 的时候以前写过 c 语言版 的。\nMath: 针对数学进行运算的类 特点:没有构造方法,因为它的成员都是静态的 产生随机数: public static double random(): 产生随机数,范围 [0.0,1.0) 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1; 猜数字小游戏案例 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e大一刚学 c 的时候以前写过 \u003ca href=\"https://github.com/Lruihao/Grocery/tree/master/C%26C%2B%2B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ec 语言版\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003col\u003e\n\u003cli\u003eMath: 针对数学进行运算的类\u003c/li\u003e\n\u003cli\u003e特点:没有构造方法,因为它的成员都是静态的\u003c/li\u003e\n\u003cli\u003e产生随机数:\npublic static double random(): 产生随机数,范围 [0.0,1.0)\u003c/li\u003e\n\u003cli\u003e产生 1-100 之间的随机数\nint number = (int)(Math.random()*100)+1;\u003c/li\u003e\n\u003cli\u003e猜数字小游戏案例\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"面向对象基础知识总结","date_published":"2019-01-15T16:07:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/duixiang/","url":"https://lruihao.cn/posts/duixiang/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["面向对象","Java"],"summary":"35 面向对象思想(理解) 面向对象是基于面向过程的一种编程思想 思想特点:\nA: 是一种更符合我们思考习惯的思想\nB: 把复杂的问题简单化\nC: 让我们从执行者变成了指挥者 举例:\nA: 洗衣服\nB: 吃饭\nC: 买电脑 举例并代码体现 把大象装进冰箱 36 类与对象(掌握) 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。 现实世界事物是如何表达的呢? 属性:外在特征\n行为:内在行为 我们学习的是 java 语言,它最基本的单位是类。\n所以我们要学会用类来体现一个事物。 类:是一组相关的属性和行为的集合 对象:是该类事物的具体个体。 举例:\n学生 类\n张三 对象 37 类的组成(掌握) 成员变量\n其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。 成员方法\n其实就是方法,只不过不需要 static 了 案例:\n学生类 class Student { String name; int age; public void study() {} }38 类的使用(掌握) 创建对象\n格式:类名 对象名 = new 类名 (); 使用成员\n成员变量:对象名。变量名; 成员方法:对象名。方法名 (\u0026hellip;); 39 成员变量和局部变量的区别(理解) 在类中的位置不同\nA: 成员变量 类中,方法外\nB: 局部变量 方法的形式参数,或者方法体中 在内存中的位置不同\nA: 成员变量 在堆中\nB: 局部变量 在栈中 生命周期不同\nA: 成员变量 随着对象的存在而存在,随着对象的消失而消失\nB: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失 初始化值不同\nA: 成员变量 有默认初始化值\nB: 局部变量 没有默认值,必须先声明,赋值,最后才能使用 40 形式参数问题(理解) 基本类型\n基本类型作为形式参数,需要的是该基本类型的值。 引用类型\n引用类型作为形式参数,需要的是该引用类型的地址值。(对象) 41 匿名对象(理解) 匿名对象:没有名字的对象。是对象的简化书写方式。 使用场景\nA: 调用方法,仅仅只调用一次\nB: 作为实际参数传递 42 封装(掌握) 隐藏实现细节,提供公共的访问方式 好处:\nA: 隐藏实现细节,提供公共的访问方式\nB: 提高了代码的复用性\nC: 提高了代码的安全性 使用原则\nA: 把成员变量隐藏\nB: 给出该成员变量对应的公共访问方式 43 private 关键字(掌握) 是一个权限修饰符 可以修饰类的成员(成员变量和成员方法) 仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法 标准代码: class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} }44 this 关键字(掌握) this:代表本类的对象 应用场景:\n解决了局部变量隐藏成员变量的问题。\n其他用法和 super 一起讲。 标准代码: class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age); } public void study() { System.out.println(\"学生爱学习\"); } public void eat() { System.out.println(\"学生要吃饭\"); } public void sleep() { System.out.println(\"学生想睡觉\"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println(\"姓名是:\"+s.getName()); System.out.println(\"年龄是:\"+s.getAge()); } }45 构造方法(掌握) 作用:对对象的数据进行初始化。 特点:\nA: 方法名和类名相同\nB: 没有返回值类型\nC: 没有返回值 注意事项\nA: 如果我们没写构造方法,系统将默认给出无参构造方法\nB: 如果我们写了构造方法,系统将不再给出默认无参构造方法\n建议:我们自己手动给出无参构造方法 给成员变量赋值:\nA: 无参+setXxx()\nB: 带参 一个标准的代码: class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName(\"林青霞\"); s.setAge(28); s.show(); //带参 Student ss = new Student(\"张曼玉\",20); ss.show(); } }46 对象的初始化过程(理解) Student s = new Student(); 做了哪些事情\nA: 加载 Student.class 文件进内存\nB: 在栈中为 s 开辟空间\nC: 在堆中为学生对象开辟空间\nD: 为学生对象的成员变量赋默认值\nE: 为学生对象的成员变量赋显示值\nF: 通过构造方法给成员变量赋值\nG: 对象构造完毕,把地址赋值给 s 变量 47 static 关键字(掌握) 是一个状态修饰符。静态的意思 它可以修饰成员变量和成员方法 特点:\nA: 随着类的加载而加载\nB: 优先于对象存在\nC: 被所有对象共享\n这也是判断我们是不是该使用静态的条件\n举例:饮水机(可共享 static) 和水杯例子。\nD: 可以通过类名调用\n静态修饰的内容,可以通过类名调用,也可以通过对象名调用 方法访问特点\nA: 普通成员方法\n可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\nB: 静态成员方法\n只能访问静态成员变量,静态成员方法\n简记:静态只能访问静态\n注意:\n静态中是不能有 this 的。\n先进内存的不能访问后进内存的。反之可以。 /** * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。 * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。 * * 在 java 中,用什么来表示成员变量是被共享的呢?static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+\"---\"+age+\"---\"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student(\"林青霞\",28,\"20150306\"); s1.show(); /* Student s2 = new Student(\"马云\",35,\"20150306\"); s2.show(); Student s3 = new Student(\"马化腾\",33,\"20150306\"); s3.show(); */ Student s2 = new Student(\"马云\",35); s2.show(); Student s3 = new Student(\"马化腾\",33); s3.show(); } }/* static: 静态关键字。 作用: 可以修饰成员变量和成员方法 特点: A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机:可以被静态修饰 水杯:不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象,还可以是类名 */ class Student { public void show() { System.out.println(\"show\"); } public static void show2() { System.out.println(\"show2\"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();\u0026ensp; } }/* static 的注意事项: A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法: 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法 静态的成员方法: 只能访问静态的成员变量,静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//\u0026ensp; 静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);\u0026ensp; System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName(\"林青霞\"); } }48 静态成员变量和普通成员变量的区别(理解) 所属不同\n静态属于类的,称为类变量\n非静态属于对象的,称为对象变量,实例变量 内存空间不同\n静态在方法区的静态区\n非静态在堆内存 生命周期不同\n静态随着类的加载而加载,随着类的消失而消失\n非静态随着对象的创建而存在,随着对象的消失而消失 调用不同\n静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用\n非静态只能通过对象名调用 49 main 方法是静态的(理解) public static void main(String[] args)public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。\nstatic: 被 jvm 调用,不用创建对象,直接类名访问\nvoid: 被 jvm 调用,不需要给 jvm 返回值\nmain: 一个通用的名称,虽然不是关键字,但是被 jvm 识别\nString[] args:\n早期出现是为了接收键盘录入数据的。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"面向对象思想理解\"\u003e\u003cspan\u003e35 面向对象思想(理解)\u003c/span\u003e\n \u003ca href=\"#%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e6%80%9d%e6%83%b3%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e面向对象是基于面向过程的一种编程思想\u003c/li\u003e\n\u003cli\u003e思想特点:\u003cbr\u003e\nA: 是一种更符合我们思考习惯的思想\u003cbr\u003e\nB: 把复杂的问题简单化\u003cbr\u003e\nC: 让我们从执行者变成了指挥者\u003c/li\u003e\n\u003cli\u003e举例:\u003cbr\u003e\nA: 洗衣服\u003cbr\u003e\nB: 吃饭\u003cbr\u003e\nC: 买电脑\u003c/li\u003e\n\u003cli\u003e举例并代码体现\n把大象装进冰箱\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"类与对象掌握\"\u003e\u003cspan\u003e36 类与对象(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e4%b8%8e%e5%af%b9%e8%b1%a1%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。\u003c/li\u003e\n\u003cli\u003e现实世界事物是如何表达的呢?\n属性:外在特征\u003cbr\u003e\n行为:内在行为\u003c/li\u003e\n\u003cli\u003e我们学习的是 java 语言,它最基本的单位是类。\u003cbr\u003e\n所以我们要学会用类来体现一个事物。\u003c/li\u003e\n\u003cli\u003e类:是一组相关的属性和行为的集合\u003c/li\u003e\n\u003cli\u003e对象:是该类事物的具体个体。\u003c/li\u003e\n\u003cli\u003e举例:\u003cbr\u003e\n学生 类\u003cbr\u003e\n张三 对象\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"类的组成掌握\"\u003e\u003cspan\u003e37 类的组成(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e7%9a%84%e7%bb%84%e6%88%90%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e成员变量\u003cbr\u003e\n其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。\u003c/li\u003e\n\u003cli\u003e成员方法\u003cbr\u003e\n其实就是方法,只不过不需要 static 了\u003c/li\u003e\n\u003cli\u003e案例:\u003cbr\u003e\n学生类\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003eclass Student {\n String name;\n int age;\n\n public void study() {}\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"类的使用掌握\"\u003e\u003cspan\u003e38 类的使用(掌握)\u003c/span\u003e\n \u003ca href=\"#%e7%b1%bb%e7%9a%84%e4%bd%bf%e7%94%a8%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e创建对象\u003cbr\u003e\n格式:类名 对象名 = new 类名 ();\u003c/li\u003e\n\u003cli\u003e使用成员\u003cbr\u003e\n成员变量:对象名。变量名;\n成员方法:对象名。方法名 (\u0026hellip;);\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"成员变量和局部变量的区别理解\"\u003e\u003cspan\u003e39 成员变量和局部变量的区别(理解)\u003c/span\u003e\n \u003ca href=\"#%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e5%b1%80%e9%83%a8%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e在类中的位置不同\u003cbr\u003e\nA: 成员变量 类中,方法外\u003cbr\u003e\nB: 局部变量 方法的形式参数,或者方法体中\u003c/li\u003e\n\u003cli\u003e在内存中的位置不同\u003cbr\u003e\nA: 成员变量 在堆中\u003cbr\u003e\nB: 局部变量 在栈中\u003c/li\u003e\n\u003cli\u003e生命周期不同\u003cbr\u003e\nA: 成员变量 随着对象的存在而存在,随着对象的消失而消失\u003cbr\u003e\nB: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失\u003c/li\u003e\n\u003cli\u003e初始化值不同\u003cbr\u003e\nA: 成员变量 有默认初始化值\u003cbr\u003e\nB: 局部变量 没有默认值,必须先声明,赋值,最后才能使用\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"形式参数问题理解\"\u003e\u003cspan\u003e40 形式参数问题(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%bd%a2%e5%bc%8f%e5%8f%82%e6%95%b0%e9%97%ae%e9%a2%98%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e基本类型\u003cbr\u003e\n基本类型作为形式参数,需要的是该基本类型的值。\u003c/li\u003e\n\u003cli\u003e引用类型\u003cbr\u003e\n引用类型作为形式参数,需要的是该引用类型的地址值。(对象)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"匿名对象理解\"\u003e\u003cspan\u003e41 匿名对象(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%8c%bf%e5%90%8d%e5%af%b9%e8%b1%a1%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e匿名对象:没有名字的对象。是对象的简化书写方式。\u003c/li\u003e\n\u003cli\u003e使用场景\u003cbr\u003e\nA: 调用方法,仅仅只调用一次\u003cbr\u003e\nB: 作为实际参数传递\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"封装掌握\"\u003e\u003cspan\u003e42 封装(掌握)\u003c/span\u003e\n \u003ca href=\"#%e5%b0%81%e8%a3%85%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e隐藏实现细节,提供公共的访问方式\u003c/li\u003e\n\u003cli\u003e好处:\u003cbr\u003e\nA: 隐藏实现细节,提供公共的访问方式\u003cbr\u003e\nB: 提高了代码的复用性\u003cbr\u003e\nC: 提高了代码的安全性\u003c/li\u003e\n\u003cli\u003e使用原则\u003cbr\u003e\nA: 把成员变量隐藏\u003cbr\u003e\nB: 给出该成员变量对应的公共访问方式\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"private-关键字掌握\"\u003e\u003cspan\u003e43 private 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#private-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e是一个权限修饰符\u003c/li\u003e\n\u003cli\u003e可以修饰类的成员(成员变量和成员方法)\u003c/li\u003e\n\u003cli\u003e仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法\u003c/li\u003e\n\u003cli\u003e标准代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003eclass Student {\n private String name;\n private int age;\n\n public void setName(String n) {\n name = n;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int a) {\n age = a;\n }\n\n public int getAge() {\n return age;\n }\n\n public void study() {}\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"this-关键字掌握\"\u003e\u003cspan\u003e44 this 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#this-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003ethis:代表本类的对象\u003c/li\u003e\n\u003cli\u003e应用场景:\u003cbr\u003e\n解决了局部变量隐藏成员变量的问题。\u003cbr\u003e\n其他用法和 super 一起讲。\u003c/li\u003e\n\u003cli\u003e标准代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e class Student {\n private String name;\n private int age;\n\n public void setName(String name) {//局部变量\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age);\n }\n\n public void study() {\n System.out.println(\"学生爱学习\");\n }\n\n public void eat() {\n System.out.println(\"学生要吃饭\");\n }\n\n public void sleep() {\n System.out.println(\"学生想睡觉\");\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n Student s = new Student();\n\n s.setName(\"林青霞\");\n s.setAge(28);\n\n s.show();\n s.study();\n s.eat();\n s.sleep();\n\n System.out.println(\"姓名是:\"+s.getName());\n System.out.println(\"年龄是:\"+s.getAge());\n }\n }\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"构造方法掌握\"\u003e\u003cspan\u003e45 构造方法(掌握)\u003c/span\u003e\n \u003ca href=\"#%e6%9e%84%e9%80%a0%e6%96%b9%e6%b3%95%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e作用:对对象的数据进行初始化。\u003c/li\u003e\n\u003cli\u003e特点:\u003cbr\u003e\nA: 方法名和类名相同\u003cbr\u003e\nB: 没有返回值类型\u003cbr\u003e\nC: 没有返回值\u003c/li\u003e\n\u003cli\u003e注意事项\u003cbr\u003e\nA: 如果我们没写构造方法,系统将默认给出无参构造方法\u003cbr\u003e\nB: 如果我们写了构造方法,系统将不再给出默认无参构造方法\u003cbr\u003e\n建议:我们自己手动给出无参构造方法\u003c/li\u003e\n\u003cli\u003e给成员变量赋值:\u003cbr\u003e\nA: 无参+setXxx()\u003cbr\u003e\nB: 带参\u003c/li\u003e\n\u003cli\u003e一个标准的代码:\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e class Student {\n private String name;\n private int age;\n\n public Student() {}\n\n public Student(String name,int age) {//构造方法\n this.name = name;\n this.age = age;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public String getName() {\n return name;\n }\n\n public void setAge(int age) {\n this.age = age;\n }\n\n public int getAge() {\n return age;\n }\n\n public void show() {\n System.out.println(\"姓名是:\"+name+\", 年龄是:\"+age);\n }\n }\n\n class StudentTest {\n public static void main(String[] args) {\n //无参+setXxx()\n Student s = new Student();\n s.setName(\"林青霞\");\n s.setAge(28);\n s.show();\n\n //带参\n Student ss = new Student(\"张曼玉\",20);\n ss.show();\n }\n }\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"对象的初始化过程理解\"\u003e\u003cspan\u003e46 对象的初始化过程(理解)\u003c/span\u003e\n \u003ca href=\"#%e5%af%b9%e8%b1%a1%e7%9a%84%e5%88%9d%e5%a7%8b%e5%8c%96%e8%bf%87%e7%a8%8b%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003eStudent s = new Student(); 做了哪些事情\u003cbr\u003e\nA: 加载 Student.class 文件进内存\u003cbr\u003e\nB: 在栈中为 s 开辟空间\u003cbr\u003e\nC: 在堆中为学生对象开辟空间\u003cbr\u003e\nD: 为学生对象的成员变量赋默认值\u003cbr\u003e\nE: 为学生对象的成员变量赋显示值\u003cbr\u003e\nF: 通过构造方法给成员变量赋值\u003cbr\u003e\nG: 对象构造完毕,把地址赋值给 s 变量\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 class=\"heading-element\" id=\"static-关键字掌握\"\u003e\u003cspan\u003e47 static 关键字(掌握)\u003c/span\u003e\n \u003ca href=\"#static-%e5%85%b3%e9%94%ae%e5%ad%97%e6%8e%8c%e6%8f%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e是一个状态修饰符。静态的意思\u003c/li\u003e\n\u003cli\u003e它可以修饰成员变量和成员方法\u003c/li\u003e\n\u003cli\u003e特点:\u003cbr\u003e\n\u003cstrong\u003eA: 随着类的加载而加载\u003cbr\u003e\nB: 优先于对象存在\u003cbr\u003e\nC: 被所有对象共享\u003c/strong\u003e\u003cbr\u003e\n这也是判断我们是不是该使用静态的条件\u003cbr\u003e\n举例:饮水机(可共享 static) 和水杯例子。\u003cbr\u003e\nD: 可以通过类名调用\u003cbr\u003e\n静态修饰的内容,可以通过类名调用,也可以通过对象名调用\u003c/li\u003e\n\u003cli\u003e方法访问特点\u003cbr\u003e\nA: 普通成员方法\u003cbr\u003e\n可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\u003cbr\u003e\nB: 静态成员方法\u003cbr\u003e\n\u003cstrong\u003e只能访问静态成员变量,静态成员方法\u003cbr\u003e\n简记:静态只能访问静态\u003c/strong\u003e\u003cbr\u003e\n注意:\u003cbr\u003e\n\u003cstrong\u003e静态中是不能有 this 的。\u003cbr\u003e\n先进内存的不能访问后进内存的。反之可以。\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e/**\n * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。\n * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。\n *\n * 在 java 中,用什么来表示成员变量是被共享的呢?static\n */\nclass Student {\n //姓名\n String name;\n //年龄\n int age;\n //班级编号\n //String classNumber;\n static String classNumber;\n\n public Student(String name,int age) {\n this.name = name;\n this.age = age;\n }\n\n public Student(String name,int age,String classNumber) {\n this.name = name;\n this.age = age;\n this.classNumber = classNumber;\n }\n\n public void show() {\n System.out.println(name+\"---\"+age+\"---\"+classNumber);\n }\n}\n\nclass StudentDemo {\n public static void main(String[] args) {\n //创建学生对象\n Student s1 = new Student(\"林青霞\",28,\"20150306\");\n s1.show();\n\n /*\n Student s2 = new Student(\"马云\",35,\"20150306\");\n s2.show();\n\n Student s3 = new Student(\"马化腾\",33,\"20150306\");\n s3.show();\n */\n Student s2 = new Student(\"马云\",35);\n s2.show();\n\n Student s3 = new Student(\"马化腾\",33);\n s3.show();\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/*\n static: 静态关键字。\n\n 作用:\n 可以修饰成员变量和成员方法\n\n 特点:\n A: 随着类的加载而加载\n B: 优先于对象存在\n C: 被类的所有对象共享\n 这也是我们判断是否使用静态关键字的条件\n\n 饮水机:可以被静态修饰\n 水杯:不可以被静态修饰\n D: 可以通过类名调用\n 我们的调用既可以是对象,还可以是类名\n*/\nclass Student {\n public void show() {\n System.out.println(\"show\");\n }\n\n public static void show2() {\n System.out.println(\"show2\");\n }\n}\n\nclass StudentDemo2 {\n public static void main(String[] args) {\n Student s = new Student();\n s.show();\n s.show2();\n\n Student.show2();\n //Student.show();\u0026ensp;\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003cpre\u003e\u003ccode\u003e/*\n static 的注意事项:\n A: 在静态方法中是没有 this 关键字的\n 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。\n 先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。\n B: 静态只能访问静态。\n 非静态的成员方法:\n 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法\n 静态的成员方法:\n 只能访问静态的成员变量,静态的成员方法\n*/\n/*\nclass Student {\n private String name;\n\n public static void setName(String name) {//\u0026ensp; 静态方法不能用 this\n this.name = name;\n }\n\n public void show() {\n System.out.println(name);\n }\n}*/\n\nclass Demo {\n int x = 10;\n static int y = 20;\n\n public void show() {\n System.out.println(x);\n System.out.println(y);\n }\n\n public static void show2() {\n //System.out.println(x);\u0026ensp;\n System.out.println(y);//√\n }\n\n public void show3() {\n show();\n show2();\n }\n\n public static void show4() {\n //show(); 只能访问静态的成员方法\n show2();\n }\n}\n\nclass StudentDemo3 {\n public static void main(String[] args) {\n //Student.setName(\"林青霞\");\n }\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"静态成员变量和普通成员变量的区别理解\"\u003e\u003cspan\u003e48 静态成员变量和普通成员变量的区别(理解)\u003c/span\u003e\n \u003ca href=\"#%e9%9d%99%e6%80%81%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e5%92%8c%e6%99%ae%e9%80%9a%e6%88%90%e5%91%98%e5%8f%98%e9%87%8f%e7%9a%84%e5%8c%ba%e5%88%ab%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e所属不同\u003cbr\u003e\n静态属于类的,称为类变量\u003cbr\u003e\n非静态属于对象的,称为对象变量,实例变量\u003c/li\u003e\n\u003cli\u003e内存空间不同\u003cbr\u003e\n静态在方法区的静态区\u003cbr\u003e\n非静态在堆内存\u003c/li\u003e\n\u003cli\u003e生命周期不同\u003cbr\u003e\n静态随着类的加载而加载,随着类的消失而消失\u003cbr\u003e\n非静态随着对象的创建而存在,随着对象的消失而消失\u003c/li\u003e\n\u003cli\u003e调用不同\u003cbr\u003e\n静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用\u003cbr\u003e\n非静态只能通过对象名调用\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"main-方法是静态的理解\"\u003e\u003cspan\u003e49 main 方法是静态的(理解)\u003c/span\u003e\n \u003ca href=\"#main-%e6%96%b9%e6%b3%95%e6%98%af%e9%9d%99%e6%80%81%e7%9a%84%e7%90%86%e8%a7%a3\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003epublic static void main(String[] args)\u003c/code\u003e\u003c/pre\u003e\u003cp\u003epublic: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。\u003cbr\u003e\nstatic: 被 jvm 调用,不用创建对象,直接类名访问\u003cbr\u003e\nvoid: 被 jvm 调用,不需要给 jvm 返回值\u003cbr\u003e\nmain: 一个通用的名称,虽然不是关键字,但是被 jvm 识别\u003cbr\u003e\nString[] args:\u003cbr\u003e\n早期出现是为了接收键盘录入数据的。\u003c/p\u003e"},{"title":"java 水仙花数(循环)","date_published":"2019-01-14T17:30:24+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-range/","url":"https://lruihao.cn/posts/java-range/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["水仙花数","Java"],"summary":" 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:13 + 53+ 3^3 = 153)。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:1\u003csup\u003e3 + 5\u003c/sup\u003e3+ 3^3 = 153)。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"java 录入数据","date_published":"2019-01-14T15:33:46+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/java-input/","url":"https://lruihao.cn/posts/java-input/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":"5 记忆格式 (1) 导包:\nimport java.util.Scanner;\n注意:位置在 class 的上面。\n(2) 创建键盘录入对象:\nScanner sc = new Scanner(System.in);\n(3) 获取数据\nint i = sc.nextInt();\n(4) 练习:\nA: 求两个数据的和\nB: 获取两个数据中较大的值\nC: 获取三个数据中较大的值\nD: 比较两个数是否相等\n","content_html":"\u003ch2 class=\"heading-element\" id=\"记忆格式\"\u003e\u003cspan\u003e5 记忆格式\u003c/span\u003e\n \u003ca href=\"#%e8%ae%b0%e5%bf%86%e6%a0%bc%e5%bc%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e(1) 导包:\u003cbr\u003e\nimport java.util.Scanner;\u003cbr\u003e\n注意:位置在 class 的上面。\u003cbr\u003e\n(2) 创建键盘录入对象:\u003cbr\u003e\nScanner sc = new Scanner(System.in);\u003cbr\u003e\n(3) 获取数据\u003cbr\u003e\nint i = sc.nextInt();\u003cbr\u003e\n(4) 练习:\u003cbr\u003e\nA: 求两个数据的和\u003cbr\u003e\nB: 获取两个数据中较大的值\u003cbr\u003e\nC: 获取三个数据中较大的值\u003cbr\u003e\nD: 比较两个数是否相等\u003c/p\u003e"},{"title":"java 标识符","date_published":"2019-01-14T15:07:57+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/biaoshi/","url":"https://lruihao.cn/posts/biaoshi/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Java"],"summary":"1 标识符 给类,接口,方法或者变量起名字的符号\n2 组成规则 A: 英文字母大小写\nB: 数字\nC:_和$\n","content_html":"\u003ch2 class=\"heading-element\" id=\"标识符\"\u003e\u003cspan\u003e1 标识符\u003c/span\u003e\n \u003ca href=\"#%e6%a0%87%e8%af%86%e7%ac%a6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给类,接口,方法或者变量起名字的符号\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"组成规则\"\u003e\u003cspan\u003e2 组成规则\u003c/span\u003e\n \u003ca href=\"#%e7%bb%84%e6%88%90%e8%a7%84%e5%88%99\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eA: 英文字母大小写\u003cbr\u003e\nB: 数字\u003cbr\u003e\nC:_和$\u003c/p\u003e"},{"title":"英语语法--主谓一致","date_published":"2019-01-12T13:02:49+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/subject-verb/","url":"https://lruihao.cn/posts/subject-verb/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 1 常见情况 1.1 由 and 或 both and 连接的并列主语,谓语动词一般用复数 English and chinese are two quite different languages. Both brother and sister tire of city life. 1.2 一但主语前被 no,every,each 所修饰时,谓语动词用单数 No desk and (no) chair is seen in the hall. All work and no play makes Jack a dull boy. They each have been to the Forbidden city. each 位于主语后,所以谓语动词用复数 1.3 当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数 比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ch2 class=\"heading-element\" id=\"常见情况\"\u003e\u003cspan\u003e1 常见情况\u003c/span\u003e\n \u003ca href=\"#%e5%b8%b8%e8%a7%81%e6%83%85%e5%86%b5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"由-and-或-both-and-连接的并列主语谓语动词一般用复数\"\u003e\u003cspan\u003e1.1 由 and 或 both and 连接的并列主语,谓语动词一般用复数\u003c/span\u003e\n \u003ca href=\"#%e7%94%b1-and-%e6%88%96-both-and-%e8%bf%9e%e6%8e%a5%e7%9a%84%e5%b9%b6%e5%88%97%e4%b8%bb%e8%af%ad%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e4%b8%80%e8%88%ac%e7%94%a8%e5%a4%8d%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003eEnglish \u003cu\u003eand\u003c/u\u003e chinese are two quite different languages.\u003c/li\u003e\n\u003cli\u003e\u003cu\u003eBoth\u003c/u\u003e brother \u003cu\u003eand\u003c/u\u003e sister tire of city life.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"一但主语前被-noeveryeach-所修饰时谓语动词用单数\"\u003e\u003cspan\u003e1.2 一但主语前被 no,every,each 所修饰时,谓语动词用单数\u003c/span\u003e\n \u003ca href=\"#%e4%b8%80%e4%bd%86%e4%b8%bb%e8%af%ad%e5%89%8d%e8%a2%ab-noeveryeach-%e6%89%80%e4%bf%ae%e9%a5%b0%e6%97%b6%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e\u003cu\u003eNo\u003c/u\u003e desk \u003cu\u003eand\u003c/u\u003e (no) chair is seen in the hall.\u003c/li\u003e\n\u003cli\u003eAll work \u003cu\u003eand\u003c/u\u003e \u003cu\u003eno\u003c/u\u003e play makes Jack a dull boy.\u003c/li\u003e\n\u003cli\u003eThey each have been to the Forbidden city.\neach 位于主语后,所以谓语动词用复数\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"当主语表示同一事物的两个部分同一个人的两个身份第二个名词前无冠词谓语动词用单数\"\u003e\u003cspan\u003e1.3 当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数\u003c/span\u003e\n \u003ca href=\"#%e5%bd%93%e4%b8%bb%e8%af%ad%e8%a1%a8%e7%a4%ba%e5%90%8c%e4%b8%80%e4%ba%8b%e7%89%a9%e7%9a%84%e4%b8%a4%e4%b8%aa%e9%83%a8%e5%88%86%e5%90%8c%e4%b8%80%e4%b8%aa%e4%ba%ba%e7%9a%84%e4%b8%a4%e4%b8%aa%e8%ba%ab%e4%bb%bd%e7%ac%ac%e4%ba%8c%e4%b8%aa%e5%90%8d%e8%af%8d%e5%89%8d%e6%97%a0%e5%86%a0%e8%af%8d%e8%b0%93%e8%af%ad%e5%8a%a8%e8%af%8d%e7%94%a8%e5%8d%95%e6%95%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread\u003c/p\u003e"},{"title":"英语语法--形式倒装","date_published":"2018-12-10T21:52:30+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-3/","url":"https://lruihao.cn/posts/inversion-3/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 形式倒装,句子本不是本来的语序。\n0.1 may 位于句首,标祝愿 例句\nMay you succeed. May you have a happy holiday. Long live chairman Mao.(毛主席万古长青) 0.2 whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前 例句\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e形式倒装,句子本不是本来的语序。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"may-位于句首标祝愿\"\u003e\u003cspan\u003e0.1 may 位于句首,标祝愿\u003c/span\u003e\n \u003ca href=\"#may-%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%a0%87%e7%a5%9d%e6%84%bf\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eMay you succeed.\u003c/li\u003e\n\u003cli\u003eMay you have a happy holiday.\u003c/li\u003e\n\u003cli\u003eLong live chairman Mao.(毛主席万古长青)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 class=\"heading-element\" id=\"whatever-直接做成分或放在名词之前however-放在-advadj-之前或-manymuch-等词之前\"\u003e\u003cspan\u003e0.2 whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前\u003c/span\u003e\n \u003ca href=\"#whatever-%e7%9b%b4%e6%8e%a5%e5%81%9a%e6%88%90%e5%88%86%e6%88%96%e6%94%be%e5%9c%a8%e5%90%8d%e8%af%8d%e4%b9%8b%e5%89%8dhowever-%e6%94%be%e5%9c%a8-advadj-%e4%b9%8b%e5%89%8d%e6%88%96-manymuch-%e7%ad%89%e8%af%8d%e4%b9%8b%e5%89%8d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e"},{"title":"英语语法--完全倒装","date_published":"2018-12-10T21:14:51+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-2/","url":"https://lruihao.cn/posts/inversion-2/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 完全倒装:把整个谓语动词放到主语前。\n0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时 例句\nHere comes the bus. In the lecture hall of a university sits a professor. Out rushed the children. Now comes your turn. Up jumped the cat and caught the mouse. Down came the rain and up went the umbrellas. Among the people stood his friend,Jim. (To be) South of the river lies a small factory. 但主语为表示人称的代词时无需倒装\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e完全倒装:把整个谓语动词放到主语前。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"表方位或时间的副词-adv表地点的介词短语位于句首时\"\u003e\u003cspan\u003e0.1 表方位或时间的副词 (adv)、表地点的介词短语位于句首时\u003c/span\u003e\n \u003ca href=\"#%e8%a1%a8%e6%96%b9%e4%bd%8d%e6%88%96%e6%97%b6%e9%97%b4%e7%9a%84%e5%89%af%e8%af%8d-adv%e8%a1%a8%e5%9c%b0%e7%82%b9%e7%9a%84%e4%bb%8b%e8%af%8d%e7%9f%ad%e8%af%ad%e4%bd%8d%e4%ba%8e%e5%8f%a5%e9%a6%96%e6%97%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e例句\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eHere comes the bus.\u003c/li\u003e\n\u003cli\u003eIn the lecture hall of a university sits a professor.\u003c/li\u003e\n\u003cli\u003eOut rushed the children.\u003c/li\u003e\n\u003cli\u003eNow comes your turn.\u003c/li\u003e\n\u003cli\u003eUp jumped the cat and caught the mouse.\u003c/li\u003e\n\u003cli\u003e\u003cu\u003eDown\u003c/u\u003e came the rain and \u003cu\u003eup\u003c/u\u003e went the umbrellas.\u003c/li\u003e\n\u003cli\u003eAmong the people stood his friend,Jim.\u003c/li\u003e\n\u003cli\u003e(To be) South of the river lies a small factory.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e但主语为表示人称的代词时无需倒装\u003c/p\u003e"},{"title":"英语语法--部分倒装","date_published":"2018-12-08T17:52:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/inversion-1/","url":"https://lruihao.cn/posts/inversion-1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["English"],"summary":" 虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。以下内容纯手打!! 先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。\u003cstrong\u003e以下内容纯手打!!\u003c/strong\u003e\n先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo 插件及 next 内置样式集","date_published":"2018-11-24T16:54:09+08:00","date_modified":"2021-10-02T15:27:58+08:00","id":"https://lruihao.cn/posts/nextplugin/","url":"https://lruihao.cn/posts/nextplugin/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 2021/10/2 更新\n博客已迁移至 Hugo, 插件演示不适用,已删除。\n让文章写的好看又简洁又好用的插件!hexo 完整的标签列表,next 插件列表\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2021/10/2 更新\u003cbr\u003e\n博客已迁移至 Hugo, 插件演示不适用,已删除。\u003cbr\u003e\n让文章写的好看又简洁又好用的插件!\u003ca href=\"https://hexo.io/zh-cn/docs/tag-plugins.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 完整的标签列表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://theme-next.org/docs/tag-plugins/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003enext 插件列表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"通过 bat 批处理文件自动提交博客代码","date_published":"2018-11-17T14:25:49+08:00","date_modified":"2018-11-17T14:25:49+08:00","id":"https://lruihao.cn/posts/commit-bat/","url":"https://lruihao.cn/posts/commit-bat/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["bat"],"summary":" 前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\ngit add * (添加需要提交的文件,这里全选) git commit -m \u0026ldquo;提交信息\u0026rdquo; git push 但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egit add * (添加需要提交的文件,这里全选)\u003c/li\u003e\n\u003cli\u003egit commit -m \u0026ldquo;提交信息\u0026rdquo;\u003c/li\u003e\n\u003cli\u003egit push\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。\n这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"博採眾長 app","date_published":"2018-11-12T16:04:04+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/fas-app/","url":"https://lruihao.cn/posts/fas-app/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["lua","fusion"],"summary":"0.7 介绍 使用 fusion app 对网页进行的封装。\n功能:\n浏览本博客,主页 私人网盘 2048 等小游戏 在线客服,QQ 等 pc 与移动浏览器标识切换 留言,打赏,博主日志等 分享功能,分享到 QQ,微信,浏览器打开等 app 内添加书签,自动记录历史记录,刷新等 配合博客的PWA + quicklink功能可实现离线浏览 ","content_html":"\u003ch3 class=\"heading-element\" id=\"介绍\"\u003e\u003cspan\u003e0.7 介绍\u003c/span\u003e\n \u003ca href=\"#%e4%bb%8b%e7%bb%8d\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e使用 fusion app 对网页进行的封装。\u003cbr\u003e\n功能:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e浏览本博客,主页\u003c/li\u003e\n\u003cli\u003e私人网盘\u003c/li\u003e\n\u003cli\u003e2048 等小游戏\u003c/li\u003e\n\u003cli\u003e在线客服,QQ 等\u003c/li\u003e\n\u003cli\u003epc 与移动浏览器标识切换\u003c/li\u003e\n\u003cli\u003e留言,打赏,博主日志等\u003c/li\u003e\n\u003cli\u003e分享功能,分享到 QQ,微信,浏览器打开等\u003c/li\u003e\n\u003cli\u003eapp 内添加书签,自动记录历史记录,刷新等\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e配合博客的\u003ccode\u003ePWA + quicklink\u003c/code\u003e功能可实现离线浏览\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"caddy-两步搭建超简单云盘","date_published":"2018-11-11T13:59:27+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/caddy-file/","url":"https://lruihao.cn/posts/caddy-file/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["云盘","caddy","server"],"summary":"11 安装 cd ~ curl https://getcaddy.com | bash -s personal http.filemanager12 编写配置文件 vim Caddyfile内容如下:\n","content_html":"\u003ch2 class=\"heading-element\" id=\"安装\"\u003e\u003cspan\u003e11 安装\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003ecd ~\ncurl https://getcaddy.com | bash -s personal http.filemanager\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"编写配置文件\"\u003e\u003cspan\u003e12 编写配置文件\u003c/span\u003e\n \u003ca href=\"#%e7%bc%96%e5%86%99%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003evim Caddyfile\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e内容如下:\u003c/p\u003e"},{"title":"next 添加支持 pdf","date_published":"2018-11-09T12:51:48+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/next-pdf/","url":"https://lruihao.cn/posts/next-pdf/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 最新的 next 主题已经更新了支持 PDF 功能,写法也和链接写法一样,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。\n7 iframe(推荐) 8 模板自带 今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件) 但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e最新的 next 主题已经更新了支持 PDF 功能,\u003cdel\u003e写法也和链接写法一样\u003c/del\u003e,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"iframe推荐\"\u003e\u003cspan\u003e7 iframe(推荐)\u003c/span\u003e\n \u003ca href=\"#iframe%e6%8e%a8%e8%8d%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e\u003ciframe src=\"/posts/next-pdf/1.pdf\" style=\"width: 100%;height: 800px;\"\u003e\u003c/iframe\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"模板自带\"\u003e\u003cspan\u003e8 模板自带\u003c/span\u003e\n \u003ca href=\"#%e6%a8%a1%e6%9d%bf%e8%87%aa%e5%b8%a6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003e今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件)\n但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。\u003c/p\u003e"},{"title":"js 判断用户设备类型及平台","date_published":"2018-11-03T23:35:44+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/js-device/","url":"https://lruihao.cn/posts/js-device/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript","他山之石"],"summary":"前端开发经常遇到需要判断用户的浏览设备,是 pc 端还是移动端,移动端使用的是什么手机系统?android、ios、ipad、windows phone 等等,有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开,等等一系列判断做一些相应的处理。\n","content_html":"\u003cp\u003e前端开发经常遇到需要判断用户的浏览设备,是 pc 端还是移动端,移动端使用的是什么手机系统?android、ios、ipad、windows phone 等等,有时候还需要知道用户浏览页面是在微信中打开还是在移动端浏览器中打开,等等一系列判断做一些相应的处理。\u003c/p\u003e"},{"title":"hexo 博客源码备份","date_published":"2018-11-03T12:49:28+08:00","date_modified":"2018-11-03T12:49:28+08:00","id":"https://lruihao.cn/posts/blog-backup/","url":"https://lruihao.cn/posts/blog-backup/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","Hexo","Node.js"],"image":"/posts/blog-backup/images/1.png","summary":"5 备份 hexo 博客 //如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。 cd hexo git init //初始化本地仓库 git add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加 git commit -m \"blog hexo\" git branch hexo //新建 hexo 分支 git checkout hexo //切换到 hexo 分支上 git remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接 git push origin hexo //push 到 Github 项目的 hexo 分支上6 在其他终端克隆和更新 hexo 博客 nodejs,git,hexo 已经安装好,即搭建完成\n","content_html":"\u003ch2 class=\"heading-element\" id=\"备份-hexo-博客\"\u003e\u003cspan\u003e5 备份 hexo 博客\u003c/span\u003e\n \u003ca href=\"#%e5%a4%87%e4%bb%bd-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e//如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。\ncd hexo\ngit init //初始化本地仓库\ngit add source themes scaffolds _config.yml package.json package-lock.json //将必要的文件依次添加\ngit commit -m \"blog hexo\"\ngit branch hexo //新建 hexo 分支\ngit checkout hexo //切换到 hexo 分支上\ngit remote add origin git@github.com:username/username.github.io.git //将本地与 Github 项目对接\ngit push origin hexo //push 到 Github 项目的 hexo 分支上\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"在其他终端克隆和更新-hexo-博客\"\u003e\u003cspan\u003e6 在其他终端克隆和更新 hexo 博客\u003c/span\u003e\n \u003ca href=\"#%e5%9c%a8%e5%85%b6%e4%bb%96%e7%bb%88%e7%ab%af%e5%85%8b%e9%9a%86%e5%92%8c%e6%9b%b4%e6%96%b0-hexo-%e5%8d%9a%e5%ae%a2\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003enodejs,git,hexo 已经安装好,即搭建完成\u003c/p\u003e"},{"title":"Git 常用指令汇总","date_published":"2018-10-30T08:59:56+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/git/","url":"https://lruihao.cn/posts/git/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"image":"/posts/git/images/relation-1.png","summary":" 工作区:就是你在电脑里能看到的目录。 暂存区:英文叫 stage, 或 index。一般存放在 \u0026ldquo;.git 目录下\u0026rdquo; 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。 ","content_html":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e工作区\u003c/strong\u003e:就是你在电脑里能看到的目录。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e暂存区\u003c/strong\u003e:英文叫 stage, 或 index。一般存放在 \u0026ldquo;.git 目录下\u0026rdquo; 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e版本库\u003c/strong\u003e:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"网站备案之旅","date_published":"2018-10-29T23:16:26+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/beian/","url":"https://lruihao.cn/posts/beian/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔","网站备案"],"summary":" 备案 经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。\n备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz ","content_html":"\u003cdiv class=\"details admonition success open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-check\" aria-hidden=\"true\"\u003e\u003c/i\u003e备案\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。\u003cbr\u003e\n备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"shell 脚本初体验","date_published":"2018-10-29T11:57:39+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/shell/","url":"https://lruihao.cn/posts/shell/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["shell","linux"],"summary":"今天上机学了几个小命令\nread echo if 然后自己写了一个小脚本觉得还挺有趣的\n","content_html":"\u003cp\u003e今天上机学了几个小命令\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eread\u003c/li\u003e\n\u003cli\u003eecho\u003c/li\u003e\n\u003cli\u003eif\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e然后自己写了一个小脚本觉得还挺有趣的\u003c/p\u003e"},{"title":"云服务器 CentOS 系统搭建 web 服务","date_published":"2018-10-29T09:15:58+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/web-server-yun/","url":"https://lruihao.cn/posts/web-server-yun/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["server","linux","他山之石"],"summary":"0.7 搭建 Apache web 服务 安装 Apache 超文本传输协议 (HTTP) 服务器的主程序 [root@VM_0_6_centos /]# yum install -y httpd注意安装目录,可通过 cd 命令切换。\n启动 HTTP 服务 [root@VM_0_6_centos /]# systemctl start httpd.service如果启动失败,可通过 systemctl status httpd.service 查看错误原因。\n启动成功,证明 http 服务已经可以使用,发现还需要把本地文件传到服务器。\n默认根目录/var/www/html/\n","content_html":"\u003ch3 class=\"heading-element\" id=\"搭建-apache-web-服务\"\u003e\u003cspan\u003e0.7 搭建 Apache web 服务\u003c/span\u003e\n \u003ca href=\"#%e6%90%ad%e5%bb%ba-apache-web-%e6%9c%8d%e5%8a%a1\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003col\u003e\n\u003cli\u003e安装 Apache 超文本传输协议 (HTTP) 服务器的主程序\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e[root@VM_0_6_centos /]# yum install -y httpd\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e注意安装目录,可通过 cd 命令切换。\u003c/p\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003e启动 HTTP 服务\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre\u003e\u003ccode\u003e[root@VM_0_6_centos /]# systemctl start httpd.service\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e如果启动失败,可通过 systemctl status httpd.service 查看错误原因。\u003cbr\u003e\n启动成功,证明 http 服务已经可以使用,发现还需要把本地文件传到服务器。\u003cbr\u003e\n默认根目录\u003ccode\u003e/var/www/html/\u003c/code\u003e\u003c/p\u003e"},{"title":"使用 js 准确获取当前页面 url 网址信息及 301 重定向实战","date_published":"2018-10-28T14:22:00+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/href-301/","url":"https://lruihao.cn/posts/href-301/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["redirect","JavaScript","他山之石"],"summary":"0.5 获取链接(转) 传送门\n在 WEB 开发中,时常会用到 javascript 来获取当前页面的 url 网址信息,在这里是我的一些获取 url 信息的小总结。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"获取链接转\"\u003e\u003cspan\u003e0.5 获取链接(转)\u003c/span\u003e\n \u003ca href=\"#%e8%8e%b7%e5%8f%96%e9%93%be%e6%8e%a5%e8%bd%ac\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003ca href=\"https://www.cnblogs.com/zhabayi/p/6419938.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e传送门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n在 WEB 开发中,时常会用到 javascript 来获取当前页面的 url 网址信息,在这里是我的一些获取 url 信息的小总结。\u003c/p\u003e"},{"title":"windows 上搭建 web 服务器","date_published":"2018-10-26T21:56:18+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/web-server-win/","url":"https://lruihao.cn/posts/web-server-win/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["server","windows"],"summary":" 我用的 win10\n0.1 打开控制面板 选择并进入“程序”,双击“启用或关闭 Windows 服务”,在弹出的窗口中选择“Internet Information Services”下面所有地选项,点击确定后,开始更新服务。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e我用的 win10\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"打开控制面板\"\u003e\u003cspan\u003e0.1 打开控制面板\u003c/span\u003e\n \u003ca href=\"#%e6%89%93%e5%bc%80%e6%8e%a7%e5%88%b6%e9%9d%a2%e6%9d%bf\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e选择并进入“程序”,双击“启用或关闭 Windows 服务”,在弹出的窗口中选择“Internet Information Services”下面所有地选项,点击确定后,开始更新服务。\u003cbr\u003e\n\u003cfigure\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/web-server-win/images/1.png\" title=\"打开控制面板\" data-thumbnail=\"/posts/web-server-win/images/1.png\" data-sub-html=\"\u003ch2\u003e打开控制面板\u003c/h2\u003e\u003cp\u003e打开控制面板\u003c/p\u003e"},{"title":"使用 Git 上传代码到 github, coding 等仓库","date_published":"2018-10-26T21:11:02+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/gituse/","url":"https://lruihao.cn/posts/gituse/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"0.9 config git config --global user.name \"Your Name\" git config --global user.email \"email@example.com\" 第一次使用 git 的时候需要设置提交者信息。\n注意:\n如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。\n如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"config\"\u003e\u003cspan\u003e0.9 config\u003c/span\u003e\n \u003ca href=\"#config\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003egit config --global user.name \"Your Name\"\ngit config --global user.email \"email@example.com\"\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e第一次使用 git 的时候需要设置提交者信息。\u003cbr\u003e\n注意:\u003cbr\u003e\n如果用了 \u003ccode\u003e--global\u003c/code\u003e 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。\u003cbr\u003e\n如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 \u003ccode\u003e--global\u003c/code\u003e 选项重新配置即可,新的设定保存在当前项目的 \u003ccode\u003e.git/config\u003c/code\u003e 文件里。\u003c/p\u003e"},{"title":"termux 基本使用教程","date_published":"2018-10-23T22:16:02+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/termux1/","url":"https://lruihao.cn/posts/termux1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","linux","termux"],"summary":" 前面有一篇文章写到一些,在 Android 上搭建 hexo 博客 本文当初摘要自 国光个人博客 如若作者博客 IP 被墙,可前往国光第三方博客诸如 csdn 等。备用\n17 初始化 下载并初始化 termux\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e前面有一篇文章写到一些,\u003ca href=\"https://lruihao.cn/posts/termux/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Android 上搭建 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\n\u003cstrong\u003e本文当初摘要自 \u003ca href=\"https://www.sqlsec.com/2018/05/termux.html?yyue=a21bo.50862.201879\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e国光个人博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\n如若作者博客 IP 被墙,可前往国光第三方博客诸如 csdn 等。\u003ca href=\"https://www.freebuf.com/geek/170510.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e备用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"初始化\"\u003e\u003cspan\u003e17 初始化\u003c/span\u003e\n \u003ca href=\"#%e5%88%9d%e5%a7%8b%e5%8c%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e下载并初始化 termux\u003c/p\u003e"},{"title":"ttf 字体压缩","date_published":"2018-10-17T21:38:06+08:00","date_modified":"2024-08-16T16:43:36+08:00","id":"https://lruihao.cn/posts/web-font/","url":"https://lruihao.cn/posts/web-font/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Node.js","字体压缩"],"summary":"HTML 网页引用中文字体,文件过大,加载缓慢的解决办法。\n","content_html":"\u003cp\u003eHTML 网页引用中文字体,文件过大,加载缓慢的解决办法。\u003c/p\u003e"},{"title":"linux 编程初体验","date_published":"2018-10-15T21:19:27+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/linux-hello-c/","url":"https://lruihao.cn/posts/linux-hello-c/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["linux","C"],"summary":" 在 Linux 上编译 c 语言文件。\n0.7 打开 vim 编辑器 (没有就用 vi, 或者先安装 vimsudo apt-get install vim)\nvim0.8 编辑文件 打开文件编辑器之后编辑文件 ","content_html":"\u003cblockquote\u003e\n\u003cp\u003e在 Linux 上编译 c 语言文件。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 class=\"heading-element\" id=\"打开-vim-编辑器\"\u003e\u003cspan\u003e0.7 打开 vim 编辑器\u003c/span\u003e\n \u003ca href=\"#%e6%89%93%e5%bc%80-vim-%e7%bc%96%e8%be%91%e5%99%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e(没有就用 vi, 或者先安装 vim\u003ccode\u003esudo apt-get install vim\u003c/code\u003e)\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evim\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"编辑文件\"\u003e\u003cspan\u003e0.8 编辑文件\u003c/span\u003e\n \u003ca href=\"#%e7%bc%96%e8%be%91%e6%96%87%e4%bb%b6\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e打开文件编辑器之后编辑文件\n\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/posts/linux-hello-c/images/ubuntu.png\" title=\"edit\" data-thumbnail=\"/posts/linux-hello-c/images/ubuntu.png\" data-sub-html=\"\u003ch2\u003eedit\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/posts/linux-hello-c/images/ubuntu.png' alt=\"edit\" height=\"725\" width=\"1191\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"沐目体","date_published":"2018-10-12T19:39:19+08:00","date_modified":"2018-10-12T19:39:19+08:00","id":"https://lruihao.cn/projects/font-mmt/","url":"https://lruihao.cn/projects/font-mmt/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["沐目体"],"summary":" ","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ciframe class=\"manuscript\" src=\"https://hw.xiezixiansheng.com/mobile.php?c=Grzkreader\u0026a=fontshowPics\u0026u=qbfRl8gPF2s-\u0026z=Kqz%2FRroVGYc-\" style=\"width: 100%;height: 370px;margin-top: .25rem;\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e"},{"title":"流水线","date_published":"2018-10-09T16:21:04+08:00","date_modified":"2018-10-09T16:21:04+08:00","id":"https://lruihao.cn/posts/liushuixian/","url":"https://lruihao.cn/posts/liushuixian/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["流水线","计算机组成与体系结构"],"summary":"15 概念 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"概念\"\u003e\u003cspan\u003e15 概念\u003c/span\u003e\n \u003ca href=\"#%e6%a6%82%e5%bf%b5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。\u003c/p\u003e"},{"title":"计算机数据","date_published":"2018-10-08T23:01:10+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/data/","url":"https://lruihao.cn/posts/data/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["计算机数据","计算机组成与体系结构"],"summary":"0.1 数据的表示 数据的表示可分为:原码,反码和补码。(二进制)\n原码:符号位 0 为正,1 为负。 反码:符号位 0 为正,1 为负。 正数:反码同原码。 负数:符号位除外其他位按位取反。 补码: 正数:同原码。 负数:符号位除外其他位按位取反再 +1。 移码:补码符号位取反。 0.2 数据表示范围 原码: -(z^n-1 - 1) ~ 2^n-1 - 1 反码: -(z^n-1 - 1) ~ 2^n-1 - 1 补码: -z^n-1 ~ 2^n-1 - 1 (补码正 0 和负 0 相同,少占一数位,就多一个范围) 例: 8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"数据的表示\"\u003e\u003cspan\u003e0.1 数据的表示\u003c/span\u003e\n \u003ca href=\"#%e6%95%b0%e6%8d%ae%e7%9a%84%e8%a1%a8%e7%a4%ba\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e\u003cstrong\u003e数据的表示可分为:原码,反码和补码。(二进制)\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e原码:符号位 0 为正,1 为负。\u003c/li\u003e\n\u003cli\u003e反码:符号位 0 为正,1 为负。\n\u003cul\u003e\n\u003cli\u003e正数:反码同原码。\u003c/li\u003e\n\u003cli\u003e负数:符号位除外其他位按位取反。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e补码:\n\u003cul\u003e\n\u003cli\u003e正数:同原码。\u003c/li\u003e\n\u003cli\u003e负数:符号位除外其他位按位取反再 +1。\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e移码:补码符号位取反。\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 class=\"heading-element\" id=\"数据表示范围\"\u003e\u003cspan\u003e0.2 数据表示范围\u003c/span\u003e\n \u003ca href=\"#%e6%95%b0%e6%8d%ae%e8%a1%a8%e7%a4%ba%e8%8c%83%e5%9b%b4\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cul\u003e\n\u003cli\u003e原码: \u003ccode\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e反码: \u003ccode\u003e-(z^n-1 - 1) ~ 2^n-1 - 1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e补码: \u003ccode\u003e-z^n-1 ~ 2^n-1 - 1\u003c/code\u003e (补码正 0 和负 0 相同,少占一数位,就多一个范围)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e例:\n8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。\u003c/p\u003e"},{"title":"网页夜间效果","date_published":"2018-09-27T13:13:31+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/night/","url":"https://lruihao.cn/posts/night/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["JavaScript"],"summary":" 这几天看到别人的博客有开关灯效果,就想给自己的博客也加一个,其实以前就在想了。经过谷歌百度后这样实现了。css+js\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e这几天看到别人的博客有开关灯效果,就想给自己的博客也加一个,其实以前就在想了。经过谷歌百度后这样实现了。\u003ccode\u003ecss+js\u003c/code\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"网页离开时改变标题“崩溃欺骗”","date_published":"2018-09-26T16:36:08+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/crash-cheat/","url":"https://lruihao.cn/posts/crash-cheat/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的,不想再和每个人都说一遍了,耽误时间,索性写一下。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e从暑假到现在有好几个小伙伴问我博客的标题怎么变来变去的,不想再和每个人都说一遍了,耽误时间,索性写一下。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"linux/centos 下的安装 git","date_published":"2018-09-22T22:28:45+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/linux-git/","url":"https://lruihao.cn/posts/linux-git/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git","linux"],"summary":"0.11 下载 git wget https://github.com/git/git/archive/v2.14.1.zip0.12 安装依赖 sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker0.13 解压 git unzip v2.14.1.zip注: unzip 命令用不了,具体步骤如下:\n","content_html":"\u003ch3 class=\"heading-element\" id=\"下载-git\"\u003e\u003cspan\u003e0.11 下载 git\u003c/span\u003e\n \u003ca href=\"#%e4%b8%8b%e8%bd%bd-git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003ewget https://github.com/git/git/archive/v2.14.1.zip\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"安装依赖\"\u003e\u003cspan\u003e0.12 安装依赖\u003c/span\u003e\n \u003ca href=\"#%e5%ae%89%e8%a3%85%e4%be%9d%e8%b5%96\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003esudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker\u003c/code\u003e\u003c/pre\u003e\u003ch3 class=\"heading-element\" id=\"解压-git\"\u003e\u003cspan\u003e0.13 解压 git\u003c/span\u003e\n \u003ca href=\"#%e8%a7%a3%e5%8e%8b-git\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cpre\u003e\u003ccode\u003eunzip v2.14.1.zip\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e注:\nunzip 命令用不了,具体步骤如下:\u003c/p\u003e"},{"title":"每一个优秀的人,都有一段沉默的时光","date_published":"2018-09-21T21:11:25+08:00","date_modified":"2018-09-21T21:11:25+08:00","id":"https://lruihao.cn/posts/mood/","url":"https://lruihao.cn/posts/mood/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"summary":" 手机便签里保存的一段话,也记不得在哪看到的了。\n每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。\n什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。\n人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。\n自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e手机便签里保存的一段话,也记不得在哪看到的了。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。\u003cbr\u003e\n什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。\u003c/p\u003e\n\u003cp\u003e人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。\u003cbr\u003e\n自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。\u003c/p\u003e"},{"title":"Vim 速查表","date_published":"2018-08-31T11:46:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/vim/","url":"https://lruihao.cn/posts/vim/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["vim","他山之石"],"summary":"Vim 速查表 - 帮你提高 N 倍效率\n","content_html":"\u003cp\u003eVim 速查表 - 帮你提高 N 倍效率\u003c/p\u003e"},{"title":"hexo next 主题添加字数统计(2018)","date_published":"2018-08-30T13:15:50+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexo-wordcount/","url":"https://lruihao.cn/posts/hexo-wordcount/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","字数统计"],"summary":" 警告 2018/11/1 说明 next 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!\n最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)\n","content_html":"\u003cdiv class=\"details admonition warning open\"\u003e\n \u003cdiv class=\"details-summary admonition-title\"\u003e\u003ci class=\"icon fa-solid fa-exclamation-triangle\" aria-hidden=\"true\"\u003e\u003c/i\u003e警告\u003ci class=\"details-icon fa-solid fa-angle-right\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/div\u003e\u003cdiv class=\"details-content\"\u003e\n \u003cdiv class=\"admonition-content\"\u003e\u003cp\u003e\u003cstrong\u003e2018/11/1 说明\nnext 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)\u003c/p\u003e\n\u003c/div\u003e\n \u003c/div\u003e\n\u003c/div\u003e"},{"title":"hexo d 出错","date_published":"2018-08-21T22:15:01+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexo-d-error/","url":"https://lruihao.cn/posts/hexo-d-error/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":"搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\n现在做一下记录,防止以后出错用。\n错误如下\n","content_html":"\u003cp\u003e搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。\u003cbr\u003e\n现在做一下记录,防止以后出错用。\u003cbr\u003e\n错误如下\u003c/p\u003e"},{"title":"hexo 个性化 - next 主题动态显示 subtitle","date_published":"2018-08-20T16:16:40+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/dongtaisub/","url":"https://lruihao.cn/posts/dongtaisub/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":" 本文适合我这种纯小白。 目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门(关键词:js, 后加载)\n但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e本文适合我这种纯小白。\n目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。\u003ca href=\"https://www.jianshu.com/p/df2c844eeabf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e传送门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(关键词:js, 后加载)\u003cbr\u003e\n但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"“高逼格”C 语言画心","date_published":"2018-08-15T16:33:12+08:00","date_modified":"2018-08-15T16:33:12+08:00","id":"https://lruihao.cn/posts/heart/","url":"https://lruihao.cn/posts/heart/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["C"],"summary":"七夕又快到了,分享一个曾经玩过的代码,用 C 语言画一个跳动的心,很有逼格有木有。\n大一在机房拍的图 ","content_html":"\u003cp\u003e七夕又快到了,分享一个曾经玩过的代码,用 C 语言画一个跳动的心,很有逼格有木有。\u003c/p\u003e\n\u003cp\u003e\u003cfigure\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" title=\"大一在机房拍的图\" data-thumbnail=\"/images/remote/5b8680e407e09_14695341072961183661.gif\" data-sub-html=\"\u003ch2\u003e截图\u003c/h2\u003e\u003cp\u003e大一在机房拍的图\u003c/p\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b8680e407e09_14695341072961183661.gif' alt=\"截图\" height=\"210\" width=\"210\"\u003e\u003c/a\u003e\u003cfigcaption class=\"image-caption\"\u003e大一在机房拍的图\u003c/figcaption\u003e\n \u003c/figure\u003e\u003c/p\u003e"},{"title":"git index.lock","date_published":"2018-08-14T19:21:23+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/git-index-lock/","url":"https://lruihao.cn/posts/git-index-lock/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Git"],"summary":"在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。\nfatal: Unable to create '/xxx/xx/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。\n有时强制关闭进行中的 git 操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除,进入。git 文件中删除,打开显示隐藏文件。如果没有看见。git 文件夹,可以直接用命令 rm -f ./.git/index.lock 。之后就可以正常使用。\n","content_html":"\u003cp\u003e在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003efatal: Unable to create '/xxx/xx/.git/index.lock': File exists.\n\nIf no other git process is currently running, this probably means a\ngit process crashed in this repository earlier. Make sure no other git\nprocess is running and remove the file manually to continue.\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。\u003c/p\u003e\n\u003cp\u003e有时强制关闭进行中的 git 操作,这个文件没有被自动删除,之后你就无法进行其他操作,必须手动删除,进入。git 文件中删除,打开显示隐藏文件。如果没有看见。git 文件夹,可以直接用命令 \u003ccode\u003erm -f ./.git/index.lock\u003c/code\u003e 。之后就可以正常使用。\u003c/p\u003e"},{"title":"在 Android 上搭建 hexo 博客","date_published":"2018-08-11T16:59:05+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/termux/","url":"https://lruihao.cn/posts/termux/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js","termux"],"summary":" 暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**部署后的效果**\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**\u003ca href=\"https://lruihao.gitee.io\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e部署后的效果\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e**\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"石子阵列(组合数学)","date_published":"2018-08-10T22:11:00+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/nowcoder157a/","url":"https://lruihao.cn/posts/nowcoder157a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","组合数学","ACM","Nowcoder","C++"],"summary":"链接:https://www.nowcoder.com/acm/contest/157/A\n来源:牛客网\n15 题目描述 xb 有 m 种石子,每种无限个,Ta 想从这些石子中取出 n 个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb 想知道有多少种排列的方法。\n","content_html":"\u003cp\u003e链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/157/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/157/A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e15 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003exb 有 m 种石子,每种无限个,Ta 想从这些石子中取出 n 个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb 想知道有多少种排列的方法。\u003c/p\u003e"},{"title":"Dreamoon and Stairs","date_published":"2018-08-10T20:13:08+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces476a/","url":"https://lruihao.cn/posts/codeforces476a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","数学","C++","C"],"summary":"题目链接\nDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\nWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\n7 Input The single line contains two space separated integers n, m (0 \u0026lt; n ≤ 10000, 1 \u0026lt; m ≤ 10).\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://codeforces.com/contest/476/problem/a\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eDreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.\u003c/p\u003e\n\u003cp\u003eWhat is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"input\"\u003e\u003cspan\u003e7 Input\u003c/span\u003e\n \u003ca href=\"#input\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe single line contains two space separated integers n, m (0 \u0026lt; n ≤ 10000, 1 \u0026lt; m ≤ 10).\u003c/p\u003e"},{"title":"Dreamoon and WiFi(组合数学)","date_published":"2018-08-10T17:44:47+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/codeforces476b/","url":"https://lruihao.cn/posts/codeforces476b/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["组合数学","Codeforces","ACM","数学","C++","C"],"summary":"题目链接\n7 题目大意 就是给定两个字符串,第一个字符串由\u0026quot;+\u0026quot;,\u0026quot;-\u0026ldquo;组成,第二个字符串由\u0026rdquo;+\u0026quot;,\u0026quot;-\u0026quot;,\u0026quot;?\u0026ldquo;组成,“+”代表加 1,\u0026rdquo;-\u0026ldquo;代表减一,“?\u0026ldquo;代表可取正也可取负,问第二个字符串的位置和第一个字符串相等的概率是多少。\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"https://codeforces.com/contest/476/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e7 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e就是给定两个字符串,第一个字符串由\u0026quot;+\u0026quot;,\u0026quot;-\u0026ldquo;组成,第二个字符串由\u0026rdquo;+\u0026quot;,\u0026quot;-\u0026quot;,\u0026quot;?\u0026ldquo;组成,“+”代表加 1,\u0026rdquo;-\u0026ldquo;代表减一,“?\u0026ldquo;代表可取正也可取负,问第二个字符串的位置和第一个字符串相等的概率是多少。\u003c/p\u003e"},{"title":"The equation-SGU106(扩展欧几里得)","date_published":"2018-08-10T10:32:39+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/euclid/","url":"https://lruihao.cn/posts/euclid/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","数论","ACM","欧几里得","他山之石","C++","C"],"summary":"7 题意 给出 a,b,c,x1,x2,y1,y2,求满足 ax+by+c=0,且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题意\"\u003e\u003cspan\u003e7 题意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给出 a,b,c,x1,x2,y1,y2,求满足 ax+by+c=0,且 x∈[x1,x2],y∈[y1,y2] 的整数解个数。\u003c/p\u003e"},{"title":"Leading and Trailing-lightoj1282(快速幂 + 对数运算)","date_published":"2018-08-09T20:55:26+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/lightoj1282/","url":"https://lruihao.cn/posts/lightoj1282/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数论","数学","快速幂","ACM","C"],"summary":"9 题目链接 10 题目大意 给定两个数 n,k 求 n^k 的前三位和最后三位。\n11 分析 求后三位的话:直接快速幂,对 1000 取模就好了。\n求前三位,对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数,则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分,对于 t=nk 这个数,它的位数由 (10x) 决定,它的位数上的值则有 (10y) 决定,因此我们要求 t 的前三位,只需要将 10y 求出,在乘以 100,就得到了它的前三位。\n分析完,我们再整体看,设 nk=10^z; 那么z=k*log10(n)\nfmod(z,1)可以求出 x 的小数部分。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接\"\u003e\u003cspan\u003e9 \u003ca href=\"https://vjudge.net/contest/238979#problem/E\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题目大意\"\u003e\u003cspan\u003e10 题目大意\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e5%a4%a7%e6%84%8f\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e给定两个数 n,k 求 n^k 的前三位和最后三位。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"分析\"\u003e\u003cspan\u003e11 分析\u003c/span\u003e\n \u003ca href=\"#%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e求后三位的话:直接快速幂,对 1000 取模就好了。\u003cbr\u003e\n求前三位,对于给定的一个数 n, 它可以写成 n=10\u003csup\u003ea, 其中这个 a 为浮点数,则\u003ccode\u003et=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);\u003c/code\u003e其中 x,y 分别是\u003ccode\u003ea*k\u003c/code\u003e的整数部分和小数部分,对于 t=n\u003c/sup\u003ek 这个数,它的位数由 (10\u003csup\u003ex) 决定,它的位数上的值则有 (10\u003c/sup\u003ey) 决定,因此我们要求 t 的前三位,只需要将 10\u003csup\u003ey 求出,在乘以 100,就得到了它的前三位。\u003cbr\u003e\n分析完,我们再整体看,设 n\u003c/sup\u003ek=10^z; 那么\u003ccode\u003ez=k*log10(n)\u003c/code\u003e\u003cbr\u003e\n\u003ccode\u003efmod(z,1)\u003c/code\u003e可以求出 x 的小数部分。\u003c/p\u003e"},{"title":"Codeforces Round 502(Div.1 + Div.2)","date_published":"2018-08-09T10:48:00+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/cfcontest1017/","url":"https://lruihao.cn/posts/cfcontest1017/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Codeforces","组合数学","C++"],"summary":"0.5 A. The Rank 题目大意:\n给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排;\n开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"a-the-rank\"\u003e\u003cspan\u003e0.5 \u003ca href=\"https://codeforces.com/contest/1017/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. The Rank\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#a-the-rank\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e题目大意:\u003cbr\u003e\n给出 n 个学生的成绩,Thomas Smith 的成绩是第一行,然后要按总成绩进行排序,总分相同的按编号从小到大排;\u003cbr\u003e\n开始看还以为要写 sort 的 cmp 函数进行多条件排序,敲完才发现其实只要按总分就可以了,因为托马斯的 id 是一,必然会排在前面。\u003c/p\u003e"},{"title":"欧拉函数","date_published":"2018-08-08T17:10:07+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/euler/","url":"https://lruihao.cn/posts/euler/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","数论","euler","C"],"summary":"11 欧拉函数是求小于 x 并且和 x互质 的数的个数 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\n其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数\nφ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=223】\n12 定理 若 n 是素数 p 的 k 次幂,φ(n)=pk-p(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n) 13 特殊性质 当 n 为奇数时,φ(2n)=φ(n) p 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值 若 a 为素数,b mod a=0,φ(a*b)=φ(b)*a ","content_html":"\u003ch2 class=\"heading-element\" id=\"欧拉函数是求小于-x-并且和-x\"\u003e\u003cspan\u003e11 \u003cstrong\u003e\u003cem\u003e欧拉函数是求小于 x 并且和 x\u003ca href=\"https://baike.baidu.com/item/%E4%BA%92%E8%B4%A8/577412?fr=aladdin\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e互质\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 的数的个数\u003c/em\u003e\u003c/strong\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%ac%a7%e6%8b%89%e5%87%bd%e6%95%b0%e6%98%af%e6%b1%82%e5%b0%8f%e4%ba%8e-x-%e5%b9%b6%e4%b8%94%e5%92%8c-x\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)\u003cbr\u003e\n\u003cstrong\u003e其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数\u003c/strong\u003e\u003cbr\u003e\nφ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=2\u003cem\u003e2\u003c/em\u003e3】\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"定理\"\u003e\u003cspan\u003e12 定理\u003c/span\u003e\n \u003ca href=\"#%e5%ae%9a%e7%90%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e若 n 是素数 p 的 k 次幂,φ(n)=p\u003csup\u003ek-p\u003c/sup\u003e(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 \u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" title=\"IMG_20180808_170807.jpg\" data-thumbnail=\"/images/remote/5b6ab31239225_7187742310856122931.jpg\" data-sub-html=\"\u003ch2\u003eIMG_20180808_170807.jpg\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b6ab31239225_7187742310856122931.jpg' alt=\"IMG_20180808_170807.jpg\" height=\"1797\" width=\"4160\"\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n)\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 class=\"heading-element\" id=\"特殊性质\"\u003e\u003cspan\u003e13 特殊性质\u003c/span\u003e\n \u003ca href=\"#%e7%89%b9%e6%ae%8a%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003col\u003e\n\u003cli\u003e当 n 为奇数时,φ(2n)=φ(n)\u003c/li\u003e\n\u003cli\u003ep 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值\u003c/li\u003e\n\u003cli\u003e若 a 为素数,b mod a=0,\u003ccode\u003eφ(a*b)=φ(b)*a\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"Heavy Transportation-poj1797(dijkstra 或最大生成树)","date_published":"2018-08-06T09:42:11+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj1797/","url":"https://lruihao.cn/posts/poj1797/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","POJ","最短路","C++"],"summary":"题目链接\n大意:\n要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。\n其实题意很简单,就是找一条 1\u0026ndash;\u0026gt;N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边; ","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=1797\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大意:\u003cbr\u003e\n要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。\u003cbr\u003e\n其实题意很简单,就是找一条 1\u0026ndash;\u0026gt;N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边;\n\u003ca class=\"lightgallery\" target=\"_blank\" href=\"images/update.jpg\" title=\"更新\" data-thumbnail=\"images/update.jpg\" data-sub-html=\"\u003ch2\u003e更新\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='images/update.jpg' alt=\"更新\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"hexo 博客自定义 console log","date_published":"2018-08-04T16:19:06+08:00","date_modified":"2023-12-08T20:26:13+08:00","id":"https://lruihao.cn/posts/console-log/","url":"https://lruihao.cn/posts/console-log/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","JavaScript"],"summary":"看到知乎,百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\n我主要用到的工具:\nconsole.log() Notepad++ 在线图片转文字工具 ","content_html":"\u003cp\u003e看到知乎,百度的页面 F12 检查后都会有一些有趣的招聘信息。于是乎我也想给我的博客加一个。\u003cbr\u003e\n我主要用到的工具:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003econsole.log()\u003c/li\u003e\n\u003cli\u003eNotepad++\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://picascii.com\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线图片转文字工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e"},{"title":"Til the Cows Come Home-poj2387(dijkstra 判断重边)","date_published":"2018-08-03T21:40:33+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj2387/","url":"https://lruihao.cn/posts/poj2387/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","最短路","C++","C"],"summary":"题目链接\n题目大意:\n说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。\n两个点可能有多条路,选择最短的。\n#include #include #include using namespace std; const int INF=99999999; //设为无穷大 int maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路 int n; void Dijkstra(int s,int t) { int i,j,k,mini; for(i=1;i\u003c=n;i++) d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大 d[s]=0; for(i=1;i\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点 { mini=INF; k=-1; for(j=1;j\u003c=n;j++) //在所有未标记点中 选 d 值最小的点 if(!v[j] \u0026\u0026 d[j]","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=2387\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e题目大意:\u003cbr\u003e\n说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。\u003c/p\u003e\n\u003cp\u003e两个点可能有多条路,选择最短的。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e#include\u003cstdio.h\u003e\n#include\u003cstring.h\u003e\n#include\u003calgorithm\u003e\nusing namespace std;\n\nconst int INF=99999999; //设为无穷大\nint maps[1005][1005],v[1005],d[1005]; //v 表示是否已经过遍历 d 表示从源到点当前最短路\nint n;\n\nvoid Dijkstra(int s,int t)\n{\n int i,j,k,mini;\n for(i=1;i\u003c=n;i++)\n d[i]=INF; //除源点设为 0 距离外 其他先设为无穷大\n d[s]=0;\n for(i=1;i\u003c=n;i++) //n 点循环 n 次 , 找出 n 个 k, 找 n 个点\n {\n mini=INF;\n k=-1;\n for(j=1;j\u003c=n;j++) //在所有未标记点中 选 d 值最小的点\n if(!v[j] \u0026\u0026 d[j]\u003cmini)\n mini=d[k=j];\n\n v[k]=1; //标记节点\n if(k==t)\n {\n printf(\"%d\\n\",d[t]);\n return;\n }\n for(j=1;j\u003c=n;j++)\n if(!v[j] \u0026\u0026 (d[k]+maps[k][j])\u003cd[j]) //表示从 k 出发的点,对于所有边,更新相连点\n d[j]=d[k]+maps[k][j];\n }\n}\n\nint main()\n{\n int T,i,j,x,y,D;\n while(scanf(\"%d %d\",\u0026T,\u0026n)!=EOF)\n {\n memset(v,0,sizeof(v)); //清除标记\n for(i=1;i\u003c=n;i++)\n for(j=1;j\u003c=n;j++)\n maps[i][j]=INF;\n\n for(i=1;i\u003c=T;i++){\n scanf(\"%d%d%d\",\u0026x,\u0026y,\u0026D);\n if(maps[x][y]\u003eD) //可能有多条路,只记录最短的\n maps[x][y]=D,maps[y][x]=D;\n }\n Dijkstra(1,n);\n }\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e"},{"title":"最短路入门","date_published":"2018-08-03T16:27:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/zuiduanlu/","url":"https://lruihao.cn/posts/zuiduanlu/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["最短路","ACM"],"summary":" 1 Dijkstra 算法 1.1 1. 定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。\n","content_html":"\u003c!-- markdownlint-disable MD033 --\u003e\n\u003ch2 class=\"heading-element\" id=\"dijkstra-算法\"\u003e\u003cspan\u003e1 Dijkstra 算法\u003c/span\u003e\n \u003ca href=\"#dijkstra-%e7%ae%97%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch3 class=\"heading-element\" id=\"1-定义概览\"\u003e\u003cspan\u003e1.1 1. 定义概览\u003c/span\u003e\n \u003ca href=\"#1-%e5%ae%9a%e4%b9%89%e6%a6%82%e8%a7%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eDijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。\u003c/p\u003e"},{"title":"牛客暑假多校第五场","date_published":"2018-08-02T21:27:02+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/nowcodersummer-5th/","url":"https://lruihao.cn/posts/nowcodersummer-5th/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Nowcoder","ACM","C++"],"summary":"题目链接 密码:l9sn\n终于不爆零了,但是还是 wa 了无数次,有时候代码感觉都差不多\n","content_html":"\u003cp\u003e\u003ca href=\"https://pan.baidu.com/s/1VP9Wn0OF4SVaqEVwpNralA\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接 密码:l9sn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n终于不爆零了,但是还是 wa 了无数次,有时候代码感觉都差不多\u003c/p\u003e"},{"title":"食物链-poj1182(带权并查集经典模板)","date_published":"2018-08-02T11:10:37+08:00","date_modified":"2024-10-02T13:35:30+08:00","id":"https://lruihao.cn/posts/poj1182/","url":"https://lruihao.cn/posts/poj1182/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","POJ","C++","C"],"summary":"题目链接\n思路参考 1,思路参考 2(没看懂)\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=1182\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n\u003ca href=\"https://blog.csdn.net/freezhanacmore/article/details/8767413\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e思路参考 1\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://blog.csdn.net/niushuai666/article/details/6981689\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e思路参考 2\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(没看懂)\u003c/p\u003e"},{"title":"小希的迷宫-HDU-1272(并查集 or 树性质)","date_published":"2018-08-01T21:45:50+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu1272/","url":"https://lruihao.cn/posts/hdu1272/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","HDU","C++","C"],"summary":"7 题目链接:小希的迷宫 8 并查集 无回路 单连通 并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成回路,则可以判定 No,交了一发错了。\n想了一下没有考虑到多个连通域的情况,该题必须只有一个连通域\n9 树的性质 既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接小希的迷宫\"\u003e\u003cspan\u003e7 题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1272\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e小希的迷宫\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e5%b0%8f%e5%b8%8c%e7%9a%84%e8%bf%b7%e5%ae%ab\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"并查集\"\u003e\u003cspan\u003e8 并查集\u003c/span\u003e\n \u003ca href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cul\u003e\n\u003cli\u003e无回路\u003c/li\u003e\n\u003cli\u003e单连通\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成\u003cstrong\u003e回路\u003c/strong\u003e,则可以判定 No,交了一发错了。\u003cbr\u003e\n想了一下没有考虑到多个连通域的情况,该题必须只有\u003cstrong\u003e一个连通域\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"树的性质\"\u003e\u003cspan\u003e9 树的性质\u003c/span\u003e\n \u003ca href=\"#%e6%a0%91%e7%9a%84%e6%80%a7%e8%b4%a8\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;\u003c/p\u003e"},{"title":"How Many Answers Are Wrong-hdu3038(带权并查集)","date_published":"2018-08-01T11:45:53+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu3038/","url":"https://lruihao.cn/posts/hdu3038/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","ACM","HDU","C++"],"summary":"题目链接:How Many Answers Are Wrong\n思路参考:本题直接参考,图文解释\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=3038\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHow Many Answers Are Wrong\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n思路参考:\u003ca href=\"https://blog.csdn.net/duan_1998/article/details/70196576\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e本题直接参考\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://blog.csdn.net/dextrad_ihacker/article/details/51016017\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e图文解释\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"Bear and Finding Criminals-Codeforces680B","date_published":"2018-07-31T19:32:21+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces680b/","url":"https://lruihao.cn/posts/codeforces680b/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"题目链接:Bear and Finding Criminals\n大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里一定有罪犯。\n一定能确定该城市有小偷的几种情况:\n警察所住城市有罪犯,则一定能检测到\n警察所住城市的左边和右边位置若都不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)\n警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"https://codeforces.com/problemset/problem/680/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Finding Criminals\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里\u003cstrong\u003e一定\u003c/strong\u003e有罪犯。\u003c/p\u003e\n\u003cp\u003e一定能确定该城市有小偷的几种情况:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e警察所住城市有罪犯,则一定能检测到\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e警察所住城市的左边和右边位置若\u003cstrong\u003e都\u003c/strong\u003e不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e"},{"title":"Bear and Five Cards-Codeforces680A","date_published":"2018-07-31T19:22:36+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/codeforces680a/","url":"https://lruihao.cn/posts/codeforces680a/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"题目链接:Bear and Five Cards\n大致题意就是小熊有 5 张卡片,每张卡片有对应的分数,他可以选择丢弃 2 张相同的或者 3 张相同的卡片,没有相同的就无法丢弃,问小熊剩下的分数最少是多少。\n","content_html":"\u003cp\u003e题目链接:\u003ca href=\"https://codeforces.com/problemset/problem/680/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Five Cards\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大致题意就是小熊有 5 张卡片,每张卡片有对应的分数,他可以选择丢弃 2 张相同的或者 3 张相同的卡片,没有相同的就无法丢弃,问小熊剩下的分数最少是多少。\u003c/p\u003e"},{"title":"how many tables-HDU-1213(并查集求连通域数目)","date_published":"2018-07-31T11:12:10+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/how-tables/","url":"https://lruihao.cn/posts/how-tables/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","HDU","C++","ACM"],"summary":"并查集求连通域数目,初始化 sum=n; 题目链接: how many tables\n","content_html":"\u003cp\u003e并查集求连通域数目,初始化 sum=n;\n题目链接: \u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1213\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehow many tables\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"The-suspects-POJ-1611(并查集)","date_published":"2018-07-31T11:11:31+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-1611/","url":"https://lruihao.cn/posts/poj-1611/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","POJ","ACM","C","C++"],"summary":"5 题目链接:The-suspects 6 翻译 警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0 号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯?\n","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接the-suspects\"\u003e\u003cspan\u003e5 题目链接:\u003ca href=\"http://poj.org/problem?id=1611\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe-suspects\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5the-suspects\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"翻译\"\u003e\u003cspan\u003e6 翻译\u003c/span\u003e\n \u003ca href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e警察抓贩毒集团。有不同类型的犯罪集团,人员可能重复,集团内的人会相互接触。现在警察在其中一人(0 号)身上搜出毒品,认为与这个人直接接触或通过其他人有间接接触的人都是嫌疑犯。问包括 0 号犯人共有多少嫌疑犯?\u003c/p\u003e"},{"title":"wireless network-POJ-2236(并查集)","date_published":"2018-07-31T11:10:54+08:00","date_modified":"2024-07-07T14:04:22+08:00","id":"https://lruihao.cn/posts/poj-2236/","url":"https://lruihao.cn/posts/poj-2236/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["并查集","ACM","POJ","C++","C"],"summary":"5 题目链接:wireless network 6 翻译 ","content_html":"\u003ch2 class=\"heading-element\" id=\"题目链接wireless-network\"\u003e\u003cspan\u003e5 题目链接:\u003ca href=\"http://poj.org/problem?id=2236\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewireless network\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5wireless-network\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"翻译\"\u003e\u003cspan\u003e6 翻译\u003c/span\u003e\n \u003ca href=\"#%e7%bf%bb%e8%af%91\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e"},{"title":"Piles-with-stones","date_published":"2018-07-31T11:09:31+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/piles-with-stones/","url":"https://lruihao.cn/posts/piles-with-stones/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Codeforces","C++"],"summary":"Codeforces Round #500 (Div. 2)\n题目链接:Piles With Stones\n","content_html":"\u003cp\u003eCodeforces Round #500 (Div. 2)\u003cbr\u003e\n题目链接:\u003ca href=\"https://codeforces.com/contest/1013/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePiles With Stones\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"畅通工程-HDU-1232(并查集经典模板)","date_published":"2018-07-31T11:08:43+08:00","date_modified":"2018-07-31T11:08:43+08:00","id":"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/","url":"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","并查集","HDU","C++","C"],"summary":"9 并查集入门推荐:超有爱的并查集~ 10 题目链接:畅通工程 11 题意分析 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"并查集入门推荐超有爱的并查集\"\u003e\u003cspan\u003e9 并查集入门推荐:\u003ca href=\"https://blog.csdn.net/iteye_10189/article/details/82103035\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e超有爱的并查集~\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e5%b9%b6%e6%9f%a5%e9%9b%86%e5%85%a5%e9%97%a8%e6%8e%a8%e8%8d%90%e8%b6%85%e6%9c%89%e7%88%b1%e7%9a%84%e5%b9%b6%e6%9f%a5%e9%9b%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题目链接畅通工程\"\u003e\u003cspan\u003e10 题目链接:\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1232\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e畅通工程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e9%93%be%e6%8e%a5%e7%95%85%e9%80%9a%e5%b7%a5%e7%a8%8b\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"题意分析\"\u003e\u003cspan\u003e11 题意分析\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e6%84%8f%e5%88%86%e6%9e%90\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。\u003c/p\u003e"},{"title":"牛客练习赛 23","date_published":"2018-07-27T21:56:08+08:00","date_modified":"2018-07-27T21:56:08+08:00","id":"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/","url":"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Nowcoder","ACM","C++","C"],"summary":"两题水过,暴力,找规律。\n9 托米的赌球 10 托米的划分 ","content_html":"\u003cp\u003e两题水过,暴力,找规律。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"托米的赌球\"\u003e\u003cspan\u003e9 \u003ca href=\"https://www.nowcoder.com/acm/contest/156/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e托米的赌球\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e8%b5%8c%e7%90%83\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003ch2 class=\"heading-element\" id=\"托米的划分\"\u003e\u003cspan\u003e10 \u003ca href=\"https://www.nowcoder.com/acm/contest/156/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e托米的划分\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e6%89%98%e7%b1%b3%e7%9a%84%e5%88%92%e5%88%86\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e"},{"title":"在线离线算法","date_published":"2018-07-26T09:57:32+08:00","date_modified":"2018-07-26T09:57:32+08:00","id":"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/","url":"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["在线离线算法"],"summary":"1 在线算法 在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"在线算法\"\u003e\u003cspan\u003e1 \u003ca href=\"https://baike.baidu.com/item/%E5%9C%A8%E7%BA%BF%E7%AE%97%E6%B3%95/4449947\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线算法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e5%9c%a8%e7%ba%bf%e7%ae%97%e6%b3%95\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入。\u003c/p\u003e"},{"title":"HDU-1495-非常可乐(bfs 模拟倒水 or 数论)","date_published":"2018-07-24T15:34:00+08:00","date_modified":"2018-07-24T15:34:00+08:00","id":"https://lruihao.cn/posts/hdu-1495/","url":"https://lruihao.cn/posts/hdu-1495/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","HDU","搜索","C++"],"summary":"非常可乐\n大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S\u0026lt;101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出\u0026quot;NO\u0026quot;。\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1495\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e非常可乐\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S\u0026lt;101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出\u0026quot;NO\u0026quot;。\u003c/p\u003e"},{"title":"hdu-2612-Find a way(双 bfs)","date_published":"2018-07-23T12:34:42+08:00","date_modified":"2018-07-23T12:34:42+08:00","id":"https://lruihao.cn/posts/hdu-2612/","url":"https://lruihao.cn/posts/hdu-2612/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","HDU","搜索","C++"],"summary":"Find a way\n圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) \u0026hellip;\u0026hellip;.. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=2612\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eFind a way\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) \u0026hellip;\u0026hellip;.. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)\u003c/p\u003e"},{"title":"POJ-3278-Catch That Cow(bfs)","date_published":"2018-07-22T12:10:32+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-3278/","url":"https://lruihao.cn/posts/poj-3278/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","搜索","POJ","C++"],"summary":"Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\nWalking: FJ can move from any point X to the points X\u0026quot;,\u0026ldquo;1 or X + 1 in a single minute Teleporting: FJ can move from any point X to the point 2 × X in a single minute. If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\n13 Input Line 1: Two space-separated integers: N and K\n","content_html":"\u003cp\u003eFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWalking: FJ can move from any point X to the points X\u0026quot;,\u0026ldquo;1 or X + 1 in a single minute\u003c/li\u003e\n\u003cli\u003eTeleporting: FJ can move from any point X to the point 2 × X in a single minute.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"input\"\u003e\u003cspan\u003e13 Input\u003c/span\u003e\n \u003ca href=\"#input\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eLine 1: Two space-separated integers: N and K\u003c/p\u003e"},{"title":"poj-2251-Dungeon Master(三维 bfs 最短路)","date_published":"2018-07-22T12:02:32+08:00","date_modified":"2018-07-22T12:02:32+08:00","id":"https://lruihao.cn/posts/poj-2251/","url":"https://lruihao.cn/posts/poj-2251/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","搜索","POJ","C++","C"],"summary":"英文原题链接\n11 Description - 题目描述 你被困在一个三维的空间中,现在要寻找最短路径逃生!\n空间由立方体单位构成\n你每次向上下前后左右移动一个单位需要一分钟\n你不能对角线移动并且四周封闭\n是否存在逃出生天的可能性?如果存在,则需要多少时间?\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=2251\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英文原题链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description---题目描述\"\u003e\u003cspan\u003e11 Description - 题目描述\u003c/span\u003e\n \u003ca href=\"#description---%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e你被困在一个三维的空间中,现在要寻找最短路径逃生!\u003cbr\u003e\n空间由立方体单位构成\u003cbr\u003e\n你每次向上下前后左右移动一个单位需要一分钟\u003cbr\u003e\n你不能对角线移动并且四周封闭\u003cbr\u003e\n是否存在逃出生天的可能性?如果存在,则需要多少时间?\u003c/p\u003e"},{"title":"poj-1321 棋盘问题(dfs)","date_published":"2018-07-22T11:58:14+08:00","date_modified":"2018-07-22T11:58:14+08:00","id":"https://lruihao.cn/posts/poj-1321/","url":"https://lruihao.cn/posts/poj-1321/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","ACM","搜索","POJ","C++"],"summary":"Time Limit: 1000MS\nMemory Limit: 10000K\nTotal Submissions: 63659\nAccepted: 30423\n17 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。\n","content_html":"\u003cp\u003eTime Limit: 1000MS\u003cbr\u003e\nMemory Limit: 10000K\u003cbr\u003e\nTotal Submissions: 63659\u003cbr\u003e\nAccepted: 30423\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e17 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。\u003c/p\u003e"},{"title":"poj-1426-Find The Multiple(dfs)","date_published":"2018-07-22T11:57:13+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/poj-1426/","url":"https://lruihao.cn/posts/poj-1426/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","ACM","搜索","POJ","C++"],"summary":"3 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K\nTotal Submissions: 40713 Accepted: 17088 Special Judge\n3.1 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"find-the-multiple\"\u003e\u003cspan\u003e3 Find The Multiple\u003c/span\u003e\n \u003ca href=\"#find-the-multiple\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eTime Limit: 1000MS Memory Limit: 10000K\u003cbr\u003e\nTotal Submissions: 40713 Accepted: 17088 Special Judge\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e3.1 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.\u003c/p\u003e"},{"title":"Adjacent Replacements","date_published":"2018-07-22T11:54:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/adjacent-replacements/","url":"https://lruihao.cn/posts/adjacent-replacements/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++"],"summary":"A. Adjacent Replacements\n第一次打 cf 就做出一道这样的找规律的题,打到自闭。\n#include using namespace std; int main(){ int n,a[1001]; cin\u003e\u003en; int i; int flag=0; for(i=0;i\u003ea[i]; if(!(a[i]\u00261)) a[i]--; if(!flag) {cout\u003c","content_html":"\u003cp\u003e\u003ca href=\"https://codeforces.com/contest/1006/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. Adjacent Replacements\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e第一次打 cf 就做出一道这样的找规律的题,打到自闭。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e#include\u003cbits/stdc++.h\u003e\nusing namespace std;\n\nint main(){\n int n,a[1001];\n cin\u003e\u003en;\n int i;\n int flag=0;\n for(i=0;i\u003cn;i++){\n cin\u003e\u003ea[i];\n if(!(a[i]\u00261)) a[i]--;\n if(!flag) {cout\u003c\u003ca[i];flag=1;}\n else cout\u003c\u003c\" \"\u003c\u003ca[i];\n }\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e"},{"title":"poj-3984-迷宫问题 (bfs 路径)","date_published":"2018-07-22T11:50:20+08:00","date_modified":"2018-07-22T11:50:20+08:00","id":"https://lruihao.cn/posts/poj-3984/","url":"https://lruihao.cn/posts/poj-3984/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","ACM","POJ","C++","C"],"summary":"迷宫问题\nTime Limit: 1000MS Memory Limit: 65536K\nTotal Submissions: 32323 Accepted: 18471\n13 Description 定义一个二维数组:\nint maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。\n","content_html":"\u003cp\u003e\u003ca href=\"http://poj.org/problem?id=3984\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e迷宫问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eTime Limit: 1000MS Memory Limit: 65536K\u003cbr\u003e\nTotal Submissions: 32323 Accepted: 18471\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"description\"\u003e\u003cspan\u003e13 Description\u003c/span\u003e\n \u003ca href=\"#description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e定义一个二维数组:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eint maze[5][5] = {\n 0, 1, 0, 0, 0,\n 0, 1, 0, 1, 0,\n 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 0,\n 0, 0, 0, 1, 0,\n};\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。\u003c/p\u003e"},{"title":"Wannafly 挑战赛 20-染色","date_published":"2018-07-22T11:46:25+08:00","date_modified":"2018-07-22T11:46:25+08:00","id":"https://lruihao.cn/posts/wannafly-20/","url":"https://lruihao.cn/posts/wannafly-20/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","Nowcoder","C++","C"],"summary":"链接:https://www.nowcoder.com/acm/contest/133/A\n来源:牛客网\n9 题目描述 现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,\n现在,Applese 的钱要用来买书 (game),所以他想要最小化代价\n","content_html":"\u003cp\u003e链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/133/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/133/A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e9 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,\u003cbr\u003e\n现在,Applese 的钱要用来买书 (game),所以他想要最小化代价\u003c/p\u003e"},{"title":"杨辉三角","date_published":"2018-07-22T11:41:15+08:00","date_modified":"2021-09-26T12:04:42+08:00","id":"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/","url":"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["数学","杨辉三角"],"summary":"百度知道 1\n1 1\n1 2 1\n1 3 3 1\n1 4 6 4 1\n1 5 10 10 5 1\n1 6 15 20 15 6 1\n","content_html":"\u003cp\u003e\u003ca href=\"https://zhidao.baidu.com/question/367384574464313844.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e百度知道\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\n1\u003c/p\u003e\n\u003cp\u003e1 1\u003c/p\u003e\n\u003cp\u003e1 2 1\u003c/p\u003e\n\u003cp\u003e1 3 3 1\u003c/p\u003e\n\u003cp\u003e1 4 6 4 1\u003c/p\u003e\n\u003cp\u003e1 5 10 10 5 1\u003c/p\u003e\n\u003cp\u003e1 6 15 20 15 6 1\u003c/p\u003e\n\u003chr\u003e"},{"title":"hdu-1241-Oil Deposits (dfs)","date_published":"2018-07-22T11:37:20+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/hdu-1241/","url":"https://lruihao.cn/posts/hdu-1241/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["DFS","搜索","HDU","ACM","C++"],"summary":"5 Oil Deposits 翻译\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\nTotal Submission(s): 41406 Accepted Submission(s): 23977\n5.1 Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"oil-deposits\"\u003e\u003cspan\u003e5 \u003ca href=\"http://acm.hdu.edu.cn/showproblem.php?pid=1241\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eOil Deposits\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#oil-deposits\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://vjudge.net/contest/238973#problem/L\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e翻译\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\nTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)\u003cbr\u003e\nTotal Submission(s): 41406 Accepted Submission(s): 23977\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"problem-description\"\u003e\u003cspan\u003e5.1 Problem Description\u003c/span\u003e\n \u003ca href=\"#problem-description\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003eThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.\u003c/p\u003e"},{"title":"BFS 求最短路","date_published":"2018-07-22T11:31:05+08:00","date_modified":"2018-07-22T11:31:05+08:00","id":"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/","url":"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["BFS","搜索","C++"],"summary":"假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).\n如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\n","content_html":"\u003cp\u003e假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).\u003cbr\u003e\n如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,\u003cbr\u003e\n以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。\u003c/p\u003e"},{"title":"Educational Codeforces Round 47 (Rated for Div. 2)","date_published":"2018-07-22T11:25:56+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/cf-1009/","url":"https://lruihao.cn/posts/cf-1009/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Codeforces","ACM","C++","C"],"summary":"那天晚上报名了没打,第二天早上打的,也只出了两题。\n5 A. Game Shopping #include using namespace std; int main(){ int n,m,s=0; cin\u003e\u003en\u003e\u003em; int i,j; int c[1000],a[1000]; for(i=0;i\u003ec[i]; for(i=0;i\u003ea[i]; for(i=0,j=0;i","content_html":"\u003cp\u003e那天晚上报名了没打,第二天早上打的,也只出了两题。\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"a-game-shopping\"\u003e\u003cspan\u003e5 \u003ca href=\"https://codeforces.com/contest/1009/problem/A\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA. Game Shopping\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#a-game-shopping\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e#include\u003ciostream\u003e\nusing namespace std;\n\nint main(){\n int n,m,s=0;\n cin\u003e\u003en\u003e\u003em;\n int i,j;\n int c[1000],a[1000];\n for(i=0;i\u003cn;i++)\n cin\u003e\u003ec[i];\n for(i=0;i\u003cm;i++)\n cin\u003e\u003ea[i];\n for(i=0,j=0;i\u003cn;){\n if(j==m)\n break;\n if(c[i]\u003c=a[j]){\n s++;\n j++;\n i++;\n }\n else i++;\n }\n if(i==n\u0026\u0026s==0)\n cout\u003c\u003c\"0\\n\";\n else cout\u003c\u003cs\u003c\u003cendl;\n return 0;\n}\u003c/code\u003e\u003c/pre\u003e\u003ch2 class=\"heading-element\" id=\"b-minimum-ternary-string\"\u003e\u003cspan\u003e6 \u003ca href=\"https://codeforces.com/contest/1009/problem/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eB. Minimum Ternary String\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#b-minimum-ternary-string\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cpre\u003e\u003ccode\u003e#include \u003cbits/stdc++.h\u003e\nusing namespace std;\n\nstring s, ans;\n\nint main(){\n cin \u003e\u003e s;\n int one = 0;\n for (int i = 0; i \u003c s.size(); i++){\n if (s[i] == '0') ans += \"0\";\n if (s[i] == '1') one++;\n if (s[i] == '2') ans += \"2\";\n }\n bool flag = false;\n for (int i = 0; i \u003c ans.size(); i++){\n if (ans[i] == '2' \u0026\u0026 !flag) flag = true, cout \u003c\u003c string(one, '1');\n cout \u003c\u003c ans[i];\n }\n if (!flag) cout \u003c\u003c string(one, '1');\n return 0;\n}\n\n/*\n\n100210\n\n11222121\n\n20\n\n2001\n\n020201\n\n2012101\n\n111\n\n000\n\n*/\u003c/code\u003e\u003c/pre\u003e"},{"title":"深搜广搜","date_published":"2018-07-22T11:25:14+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/dfs_bfs/","url":"https://lruihao.cn/posts/dfs_bfs/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","BFS","DFS","搜索","C","C++"],"summary":"0.5 广度优先搜索(BFS) 广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。\n0.6 深度优先搜索(DFS) 深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。\n","content_html":"\u003ch3 class=\"heading-element\" id=\"广度优先搜索bfs\"\u003e\u003cspan\u003e0.5 广度优先搜索(BFS)\u003c/span\u003e\n \u003ca href=\"#%e5%b9%bf%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2bfs\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。\u003c/p\u003e\n\u003ch3 class=\"heading-element\" id=\"深度优先搜索dfs\"\u003e\u003cspan\u003e0.6 深度优先搜索(DFS)\u003c/span\u003e\n \u003ca href=\"#%e6%b7%b1%e5%ba%a6%e4%bc%98%e5%85%88%e6%90%9c%e7%b4%a2dfs\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h3\u003e\u003cp\u003e深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。\u003c/p\u003e"},{"title":"TaoTao 要吃鸡","date_published":"2018-07-22T10:55:21+08:00","date_modified":"2018-07-22T10:55:21+08:00","id":"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/","url":"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["背包问题","Nowcoder","C++"],"summary":" 2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)\n链接:https://www.nowcoder.com/acm/contest/74/B\n来源:牛客网\n11 题目描述 Taotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)\u003cbr\u003e\n链接:\u003ca href=\"https://www.nowcoder.com/acm/contest/74/B\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehttps://www.nowcoder.com/acm/contest/74/B\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003cbr\u003e\n来源:牛客网\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e11 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eTaotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。\u003c/p\u003e"},{"title":"Wannafly 挑战赛 18-序列","date_published":"2018-07-18T08:40:21+08:00","date_modified":"2018-07-18T08:40:21+08:00","id":"https://lruihao.cn/posts/wannafly-18/","url":"https://lruihao.cn/posts/wannafly-18/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["组合数学","ACM","Nowcoder","C++","C"],"summary":"时间限制:C/C++ 1 秒,其他语言 2 秒\n空间限制:C/C++ 262144K,其他语言 524288K\n64bit IO Format: %lld\n9 题目描述 有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 \u0026lt;= x \u0026lt;= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。\n两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。\n","content_html":"\u003cp\u003e时间限制:C/C++ 1 秒,其他语言 2 秒\u003cbr\u003e\n空间限制:C/C++ 262144K,其他语言 524288K\u003cbr\u003e\n64bit IO Format: %lld\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"题目描述\"\u003e\u003cspan\u003e9 题目描述\u003c/span\u003e\n \u003ca href=\"#%e9%a2%98%e7%9b%ae%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 \u0026lt;= x \u0026lt;= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。\u003cbr\u003e\n两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。\u003c/p\u003e"},{"title":"简单背包","date_published":"2018-06-16T13:18:43+08:00","date_modified":"2018-06-16T13:18:43+08:00","id":"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/","url":"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["背包问题","C"],"summary":"弱鸡还是弱鸡啊最简单的背包问题——。——!\n5 问题描述 假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。\n","content_html":"\u003cp\u003e\u003ccode\u003e弱鸡还是弱鸡啊最简单的背包问题——。——!\u003c/code\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"问题描述\"\u003e\u003cspan\u003e5 问题描述\u003c/span\u003e\n \u003ca href=\"#%e9%97%ae%e9%a2%98%e6%8f%8f%e8%bf%b0\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。\u003c/p\u003e"},{"title":"18 湘潭邀请赛参赛队员代表发言","date_published":"2018-06-15T07:51:21+08:00","date_modified":"2018-06-15T07:51:21+08:00","id":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/","url":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","2018 湘潭邀请赛"],"summary":" 来自一位大佬的演讲\n尊敬的领导、教练,亲爱的参赛选手们:\n大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。\n刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。\n在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。\n为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\n三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。\n最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e来自一位大佬的演讲\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e尊敬的领导、教练,亲爱的参赛选手们:\u003cbr\u003e\n大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。\u003cbr\u003e\n刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。\u003cbr\u003e\n在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。\u003cbr\u003e\n为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。\u003cbr\u003e\n三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。\u003cbr\u003e\n最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。\u003c/p\u003e"},{"title":"18 湘潭邀请赛总结","date_published":"2018-06-14T23:32:47+08:00","date_modified":"2018-06-14T23:32:47+08:00","id":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/","url":"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","总结"],"summary":"题目链接(hdu 复赛)\n2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。\n","content_html":"\u003cp\u003e\u003ca href=\"http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e题目链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e(hdu 复赛)\u003c/p\u003e\n\u003cp\u003e2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。\u003c/p\u003e"},{"title":"F.sorting","date_published":"2018-06-14T22:49:27+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/f-sorting/","url":"https://lruihao.cn/posts/f-sorting/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM"],"summary":"\n","content_html":"\u003cp\u003e\u003ca class=\"lightgallery\" target=\"_blank\" href=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" title=\"sorting.png\" data-thumbnail=\"/images/remote/5b2286fcec6fc_5173814137014719346.png\" data-sub-html=\"\u003ch2\u003esorting.png\u003c/h2\u003e\"\u003e\u003cimg loading=\"lazy\" src='/images/remote/5b2286fcec6fc_5173814137014719346.png' alt=\"sorting.png\" height=\"697\" width=\"1049\"\u003e\u003c/a\u003e\u003c/p\u003e"},{"title":"K.2018","date_published":"2018-06-14T22:48:16+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/k-2018/","url":"https://lruihao.cn/posts/k-2018/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","C++"],"summary":"3 K. 2018 Given a,b,c,d, find out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"k-2018\"\u003e\u003cspan\u003e3 K. 2018\u003c/span\u003e\n \u003ca href=\"#k-2018\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eGiven a,b,c,d, find out the number of pairs of integers (x,y) where a ≤ x ≤ b,c ≤ y ≤ d and x·y is a multiple of 2018.\u003c/p\u003e"},{"title":"B.Higher h-index","date_published":"2018-06-14T22:47:28+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/b-higher/","url":"https://lruihao.cn/posts/b-higher/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","2018 湘潭邀请赛","C++","C"],"summary":"3 B. Higher h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\nThere is also a trick – one can cite his own papers published earlier.\nGiven Bobo has n working hours, find the maximum h-index of him.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"b-higher-h-index\"\u003e\u003cspan\u003e3 B. Higher h-index\u003c/span\u003e\n \u003ca href=\"#b-higher-h-index\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\u003cbr\u003e\nBobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the\u003cbr\u003e\npaper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.\u003cbr\u003e\nThere is also a trick – one can cite his own papers published earlier.\u003c/p\u003e\n\u003cp\u003eGiven Bobo has n working hours, find the maximum h-index of him.\u003c/p\u003e"},{"title":"A.Easy h-index","date_published":"2018-06-14T22:36:58+08:00","date_modified":"2023-11-17T20:39:48+08:00","id":"https://lruihao.cn/posts/a-easy/","url":"https://lruihao.cn/posts/a-easy/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["2018 湘潭邀请赛","ACM","C++"],"summary":"3 A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h.\nBobo has published many papers. Given a0,a1,a2,\u0026hellip;,an which means Bobo has published ai papers with\nitations exactly i, find the h-index of Bobo.\n","content_html":"\u003ch2 class=\"heading-element\" id=\"a-easy-h-index\"\u003e\u003cspan\u003e3 A. Easy h-index\u003c/span\u003e\n \u003ca href=\"#a-easy-h-index\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003eThe h-index of an author is the largest h where he has at least h papers with citations not less than h.\u003cbr\u003e\nBobo has published many papers. Given a0,a1,a2,\u0026hellip;,an which means Bobo has published ai papers with\u003cbr\u003e\nitations exactly i, find the h-index of Bobo.\u003c/p\u003e"},{"title":"sort 排序","date_published":"2018-06-14T20:23:03+08:00","date_modified":"2018-06-14T20:23:03+08:00","id":"https://lruihao.cn/posts/c-sort/","url":"https://lruihao.cn/posts/c-sort/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["C++","sort","STL","ACM"],"summary":"sort 使用#include\u0026lt;algorithm\u0026gt;头文件,\nsort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。\n或者简单的用 less\u0026lt;参数类型\u0026gt;()表示升序\ngreater\u0026lt;参数类型\u0026gt;()表示降序\n也可以用一个 bool 型函数,比如:\nbool cmp(int a,int b){ return a\u003eb;//表从大到小,即降序 }假设自己定义了一个结构体 node\n","content_html":"\u003cp\u003esort 使用\u003ccode\u003e#include\u0026lt;algorithm\u0026gt;\u003c/code\u003e头文件,\u003c/p\u003e\n\u003cp\u003esort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。\u003c/p\u003e\n\u003cp\u003e或者简单的用\n\u003ccode\u003eless\u0026lt;参数类型\u0026gt;()\u003c/code\u003e表示升序\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003egreater\u0026lt;参数类型\u0026gt;()\u003c/code\u003e表示降序\u003c/p\u003e\n\u003cp\u003e也可以用一个 bool 型函数,比如:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ebool cmp(int a,int b){\n\n return a\u003eb;//表从大到小,即降序\n\n}\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e假设自己定义了一个结构体 node\u003c/p\u003e"},{"title":"位运算","date_published":"2018-06-14T20:22:21+08:00","date_modified":"2018-06-14T20:22:21+08:00","id":"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/","url":"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["位运算"],"summary":"1 1. \u0026amp;运算 \u0026amp;运算通常用于二进制取位操作,例如一个数 \u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。\n","content_html":"\u003ch2 class=\"heading-element\" id=\"1-运算\"\u003e\u003cspan\u003e1 1. \u0026amp;运算\u003c/span\u003e\n \u003ca href=\"#1-%e8%bf%90%e7%ae%97\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u0026amp;运算通常用于二进制取位操作,例如一个数 \u0026amp; 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。\u003c/p\u003e"},{"title":"C++ with STL","date_published":"2018-06-14T20:22:06+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/c-with-stl/","url":"https://lruihao.cn/posts/c-with-stl/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM","STL","C++"],"summary":"17 1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);) 交换两元素的值在 C 语言课上作为指针讲解的典例。\nint a=1,b=2;\n","content_html":"\u003ch2 class=\"heading-element\" id=\"1swap交换两元素值在-algorithm-下用法swapab\"\u003e\u003cspan\u003e17 1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);)\u003c/span\u003e\n \u003ca href=\"#1swap%e4%ba%a4%e6%8d%a2%e4%b8%a4%e5%85%83%e7%b4%a0%e5%80%bc%e5%9c%a8-algorithm-%e4%b8%8b%e7%94%a8%e6%b3%95swapab\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e交换两元素的值在 C 语言课上作为指针讲解的典例。\u003c/p\u003e\n\u003cp\u003eint a=1,b=2;\u003c/p\u003e"},{"title":"各种 Links 汇总与分享","date_published":"2018-06-07T00:06:05+08:00","date_modified":"2023-11-30T23:35:38+08:00","id":"https://lruihao.cn/posts/links/","url":"https://lruihao.cn/posts/links/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["ACM"],"summary":" 2021/10/1 更新\n使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。\n我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e2021/10/1 更新\u003cbr\u003e\n使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。\u003c/p\u003e\n\u003cp\u003e我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"戏子春秋","date_published":"2018-06-03T19:41:32+08:00","date_modified":"2018-06-03T19:41:32+08:00","id":"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/","url":"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/","authors":[{"name":"杨灿","url":"mailto:1845280636@qq.com"}],"tags":["随笔"],"summary":" 从此故乡只有冬夏,再无春秋。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e从此故乡只有冬夏,再无春秋。\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"hexo+github 搭建个人博客及美化","date_published":"2018-06-01T14:34:23+08:00","date_modified":"2021-10-03T15:27:58+08:00","id":"https://lruihao.cn/posts/hexobuild/","url":"https://lruihao.cn/posts/hexobuild/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo","Node.js"],"summary":"更多关于 hexo\n17 首先 官方文档 是我们的第一手资料,也是最好的。 安装 Hexo 相当简单。然而在安装前,你必须检查电脑中是否已安装下列应用程序:\n","content_html":"\u003cp\u003e\u003cstrong\u003e\u003ca href=\"/categories/hexo/\"\u003e更多关于 hexo\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"首先\"\u003e\u003cspan\u003e17 首先\u003c/span\u003e\n \u003ca href=\"#%e9%a6%96%e5%85%88\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cp\u003e\u003ca href=\"https://hexo.io/zh-cn/docs/index.html\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e官方文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 是我们的第一手资料,也是最好的。\n安装 Hexo 相当简单。然而在安装前,你必须检查电脑中是否已安装下列应用程序:\u003c/p\u003e"},{"title":"hexo 添加图片,音乐,链接,视频","date_published":"2018-05-31T23:19:22+08:00","date_modified":"2023-11-29T15:20:16+08:00","id":"https://lruihao.cn/posts/hexowrite/","url":"https://lruihao.cn/posts/hexowrite/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["Hexo"],"summary":" 如果实在搞得头晕直接去 简书 写文章,再把简书生成的 md 文章复制过来就好了(简书是个不错的 Markdown 在线编辑器),还可以去 马克飞象,专为印象笔记打造的 Markdown 编辑器,typora 也是不错的,突然发现 csdn 也支持 Markdown 编译器了\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003e如果实在搞得头晕直接去 \u003ca href=\"https://www.jianshu.com/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简书\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 写文章,再把简书生成的 md 文章复制过来就好了(简书是个不错的 Markdown 在线编辑器),还可以去 \u003ca href=\"https://maxiang.io/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e马克飞象,专为印象笔记打造的 Markdown 编辑器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,\u003ca href=\"https://www.typora.io/#\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003etypora 也是不错的\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e,突然发现 \u003ca href=\"https://www.csdn.net/\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecsdn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e 也支持 Markdown 编译器了\u003c/strong\u003e\u003c/p\u003e\n\u003c/blockquote\u003e"},{"title":"猴子与哪吒","date_published":"2018-05-31T10:09:15+08:00","date_modified":"2018-05-31T10:09:15+08:00","id":"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/","url":"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"image":"/posts/猴子与哪吒/images/hznz.jpg","summary":"一直觉得中国古代神话\n能称得上传奇的只有两个人物:\n一是猴子\n一是哪吒\n百世蕴灵育出只石猴 大闹天宫腾云驾雾\n三年怀胎生了个哪吒 东海屠龙翻江倒海\n可以说 除了这两人 没人再能当得起离经放纵四个字的\n但称得上悲剧的 约摸也只有这两个\n一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\n一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\n","content_html":"\u003cp\u003e一直觉得中国古代神话\u003c/p\u003e\n\u003cp\u003e能称得上传奇的只有两个人物:\u003c/p\u003e\n\u003cp\u003e一是猴子\u003c/p\u003e\n\u003cp\u003e一是哪吒\u003c/p\u003e\n\u003cp\u003e百世蕴灵育出只石猴 大闹天宫腾云驾雾\u003c/p\u003e\n\u003cp\u003e三年怀胎生了个哪吒 东海屠龙翻江倒海\u003c/p\u003e\n\u003cp\u003e可以说 除了这两人 没人再能当得起离经放纵四个字的\u003c/p\u003e\n\u003cp\u003e但称得上悲剧的 约摸也只有这两个\u003c/p\u003e\n\u003cp\u003e一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空\u003c/p\u003e\n\u003cp\u003e一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子\u003c/p\u003e"},{"title":"博客构建档(HTML \u0026 Markdown)","date_published":"2018-05-28T12:24:11Z","date_modified":"2026-05-07T02:00:50Z","id":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","url":"https://lruihao.cn/projects/lruihao/lruihao.github.io/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["acm","backend","blog","frontend","hexo","hexo-theme-next","hugo","hugo-fixit","java","javascript","php","python","study-notes","summary","web-development"],"summary":"菠菜眾長 Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\n共计 297 篇文章 by Lruihao.\n2026 共计 1 篇文章 03-06 一个轻量化 Tooltip 组件。 2025 共计 14 篇文章 12-24 A Christmas Easter Egg by JavaScript. 08-30 Command line tool for generating a changelog from git tags and commit history 08-16 让 Mermaid 图表自动跟随系统深浅色 08-05 黑盒出关・三把钥匙定江湖 08-04 Code Playground 07-22 A custom web component that embeds caniuse.com browser compatibility data for a specific feature. 07-19 A custom element for viewing and interacting with JSON data. 06-18 CSS @layer:构建更高效、更可维护的样式层级 06-11 Vue.js History 模式下的 NGINX 配置与 API 代理 04-10 The webfont package for the MMT typeface. 04-09 API proxies powered by Vercel. 01-20 CSS Flexbox 布局指南 01-14 Generate a list of all hugo-fixit theme components. 01-08 A Hugo theme component with asciinema-embed shortcode. 2024 共计 38 篇文章 12-06 震惊!CSS 竟然能获取视口尺寸? 12-02 🌐 A component for site automatic translation. 11-22 Amazon 如何让服务器享受着持续集群安全? 11-05 🐟 A canvas implemented animation effect of small fish swimming. 10-06 自动获取 GitHub README 内容添加到 Hugo 文章 09-13 不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。 09-04 ⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus) 08-22 Hugo theme component for ATOM feed custom Output Format. 08-22 Hugo theme component for JSON feed custom Output Format. 08-07 Mobile devtools component powered by vConsole and eruda. 07-29 现代 CSS 解决方案:CSS 四舍五入数值单位 07-21 A Hugo theme component with reward-log or sponsor-log shortcode. 07-17 Git 统计代码量 07-15 现代 CSS 解决方案之异形元素怎么设置阴影? 07-14 🔖 Embed bookmark of FixIt Docs. 07-14 CSS 实现时间轴、背景图 loading 和渐变边框 07-07 探索 Amazon S3 的无限存储潜力 06-28 标准滚动条控制规范 06-28 A Hugo theme component with caniuse shortcode. 06-13 如何实现 VSCode 编辑器窗口边界拖拽类似功能 06-09 架构之基:从根儿上了解设计原则 06-06 怎么生成暗黑模式和明亮模式的 SVG 图片? 05-20 坐高铁去柳州吃螺狮粉 04-17 利用 Vercel 反代 Gravatar 实现镜像加速 04-17 Gravatar Proxy powered by Vercel. 04-09 🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme. 04-04 临时决定再写一个小工具 - 网站预览图生成器 04-02 用五天时间给自己制作一个封面图生成工具 03-28 🛠 Create awesome cover images for your blog posts quickly. 03-26 写文档时英文标题什么时候要大写? 02-29 实现类似于 Element UI 表格的溢出文本提示功能 02-21 聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性 02-09 2023 年度总结 01-21 强大的脑图可视化工具 01-17 记一次 Debug 第三方包的过程 01-17 为什么很多教程中都有 foo bar? 01-11 git submodule: already exists in the index 01-10 给 el-card 添加折叠功能 2023 共计 35 篇文章 12-22 尝试在 Python 中使用 Amazon Titan 文本模型 11-28 用 Node.js 开发一个轻量脚手架 11-20 🛠️ A node-based tooling for FixIt site initialization. 11-18 探索 AWS 云上一站式解决方案免费使用 10-22 SSH 提交签名验证 10-12 如何给 npm 包打补丁? 10-12 拖拽式仪表盘系列总结 10-12 拖拽式仪表盘 - 组件开发 10-12 拖拽式仪表盘 - 模板使用 10-12 拖拽式仪表盘 - 组件配置文档 10-12 拖拽式仪表盘 - 布局模板文档 10-12 拖拽式仪表盘 - 功能需求分析 10-11 给你的 Markdown 挑挑刺 10-08 认知复杂度(Cognitive Complexity) 09-26 写作技巧:如何搭建文章的框架结构? 09-25 如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定? 09-17 封装 Vue FullScreenToggler 组件 09-15 JS 实现全屏和退出全屏 09-15 中文翻译的常见问题 09-14 在 Vue 项目中更优雅地使用 icon 09-14 VSCode 添加用户代码片段,自定义用户代码片段 09-02 CSS 如何实现网格背景效果? 08-26 将 Hugo 博客部署到亚马逊云服务器 08-08 Vue2 and element-ui related demos 07-20 用魔法打败魔法 - ElBacktop Fix 06-14 A plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables. 06-14 使用 Node.js 自动创建 Vue 的路由 06-12 解决 SourceTree 提交时候 husky 命令失败问题 06-03 Vue2 + tailwindcss 初始化 03-14 新手向:Vue 2.0 的建议学习顺序 02-28 🎶 A Hugo theme component with a NetEase Cloud random comment shortcode. 02-12 浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo; 02-05 浏览器渲染原理 02-04 中文技术文档的写作规范 01-11 浏览器原理 - 事件循环 2022 共计 20 篇文章 12-17 2022 年度总结 12-15 安装 Homebrew 后导致系统中原有的 npm 和 npx 失效 10-10 基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件 09-30 🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site. 09-27 🆕 A quick-start template base on Git submodule to create a Hugo FixIt site. 09-04 Using frequently-used Hugo commands by shell. 08-31 Beego 安装及配置 08-13 语义版本控制(SemVer) 08-12 Commit Message Spec 08-12 electron 踩坑总结 08-08 前端页面内容加密总结 08-07 Node.js + GitHub Actions 自动刷新 CDN 08-07 不同系统的换行符的差异 07-31 自定义 ohmyzsh 主题 07-30 linux 文件权限 07-29 Mac 上的开发配置总结 07-23 📄 The open-source repo for fixit.lruihao.cn 07-05 Mac 配置 ADB 05-01 重新认识 JavaScript 04-30 关于 CSS 和 Scss 变量运算那些事 2021 共计 19 篇文章 12-22 Getting Things Done for ios App Reminders and Github issues 12-16 🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题 10-05 Sublime 剪贴板图片粘贴插件 —— Markdown 必备 10-05 Hugo 添加知乎卡片式链接 Shortcodes 10-05 Hugo I18n 添加中文繁體翻譯 10-05 Hugo 友情連結模板 10-04 Hugo 本地管理 Shell 腳本 10-04 Hugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶 10-03 个人博客从 Hexo 迁移至 Hugo 09-08 Lruihao\u0026rsquo;s Note 06-22 less\u0026amp;sass\u0026amp;scss 06-21 Lightbox 06-21 2020\u0026amp;2021 總結 05-24 Create watermark for webpage and automatic adjust when window resize. 05-23 Cell Watermark 03-04 Code Review 怎麼做?新手工程師如何提升「程式碼品質」 03-02 基于 leancloud-storage 实现的无后端记账本 03-01 你为什么吸烟? 02-28 基于 leancloud-storage 实现的无后端记账本 2020 共计 8 篇文章 07-25 cell-blog 功能介绍与安装 07-25 cell-blog 开发记录 04-17 基于 Laravel 7 开发,支持 Markdown 语法的博客 03-26 使用 Python 刷 csdn 访问量 03-25 Cron 表达式的基本语法 03-25 新冠疫情未返校未返工第 N 天之“自动打卡” 01-16 2019 年度总结 01-16 SQL 总结 2019 共计 71 篇文章 11-24 利用腾讯云为静态页面添加“动态”相册 11-23 解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面 11-14 RESTful 09-28 php 同时主动推送链接到百度,神马等站长平台 09-28 php 按行读取文件信息 09-26 沐目之,湘也。— 沐目体 09-19 设置网站运行时间 09-08 script 的三种加载方式 (async, defer) 08-15 Sublime Text3 快捷键大全 08-15 NetBeans IDE 开发设置 08-15 Web 开发规则,代码规范 07-19 简单评论模块\u0026ndash;php 表单练习 07-15 php 函数学习 07-12 WAMPServer 自定义网站根目录等设置 06-21 python 实训总结Ⅱ 06-18 python 实训总结Ⅰ 05-26 判断三角形的黑盒测试 05-17 HustOJ 基础搭建教程 05-17 最大公约数(二进制算法) 05-16 宝塔面板安装 ImgURL 图床 05-11 python 实战:模拟 post 请求定时获取后台数据并打包发送至微信 05-10 条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;; 05-09 python 设置程序每天 8 点定时执行任务 05-09 安装 pyinstaller 出错的解决办法及 csdn 工具实例打包 05-08 java 实现一个单线程的资源下载器 05-07 Python 如何操作 Json? 05-07 python 发送 post 请求进行简单的接口测试 05-06 java 通过 URL 和 URLConnection 访问网页资源 05-02 文件加密解密(字节流) 05-01 模拟借书系统(java 异常练习) 04-27 用 MyQR 制作专属动态二维码 (py 和 exe 版本) 04-24 第一次面试经历 04-22 python 爬取网站图片(图片链接相似) 04-20 python 玩微信:初探 wxpy 04-20 基本 python 实现的爬取微信好友头像,并拼接成大图 04-19 用记事本编写第一个 java 程序 04-18 java 正则表达式练习 04-14 java 常用类 04-12 HDU 1009 FatMouse\u0026rsquo; Trade(贪心) 04-03 本地搭建网站服务器并穿透内网 03-30 前端面试题 - HTML+CSS 03-30 百钱百鸡(枚举法) 03-28 大数乘法 03-28 vps 配置 ssl 及 https 重定向 03-21 hexo-theme-next @modified LRH 03-21 Java 父类子类的对象初始化过程 03-21 ubuntu + windows 双系统默认启动项设置 03-19 宅音乐播放器 03-18 宝塔面板安装 03-18 web 汇总 03-16 java 泛型 test 03-15 eclipse 的基本使用 03-15 匿名类在可视化界面中的应用 03-15 模仿知乎卡片式链接 03-15 win10,ubuntu 双系统时间不一致 03-08 QQ 强制生成卡片式链接 03-04 磁盘存储器的管理 03-04 JS 验证码 02-01 还乡 01-31 Elegant and powerful theme for Hexo. 01-24 java 继承 test 01-22 利用腾讯云对象存储 COS 桶托管 hexo 博客 01-18 Arrays 类及基本使用 01-16 在搜索、文章底部、侧栏添加最近文章模块 01-15 java 猜数字小游戏(Math 类) 01-15 面向对象基础知识总结 01-14 java 水仙花数(循环) 01-14 java 录入数据 01-14 java 标识符 01-12 英语语法\u0026ndash;主谓一致 01-12 2018 年度总结 2018 共计 91 篇文章 12-10 英语语法\u0026ndash;形式倒装 12-10 英语语法\u0026ndash;完全倒装 12-08 英语语法\u0026ndash;部分倒装 11-24 hexo 插件及 next 内置样式集 11-17 通过 bat 批处理文件自动提交博客代码 11-12 博採眾長 app 11-11 caddy-两步搭建超简单云盘 11-09 next 添加支持 pdf 11-03 js 判断用户设备类型及平台 11-03 hexo 博客源码备份 10-30 Git 常用指令汇总 10-29 网站备案之旅 10-29 shell 脚本初体验 10-29 云服务器 CentOS 系统搭建 web 服务 10-28 使用 js 准确获取当前页面 url 网址信息及 301 重定向实战 10-26 windows 上搭建 web 服务器 10-26 使用 Git 上传代码到 github, coding 等仓库 10-23 termux 基本使用教程 10-17 ttf 字体压缩 10-15 linux 编程初体验 10-12 沐目体 10-09 流水线 10-08 计算机数据 09-27 网页夜间效果 09-26 网页离开时改变标题“崩溃欺骗” 09-22 linux/centos 下的安装 git 09-21 每一个优秀的人,都有一段沉默的时光 08-31 Vim 速查表 08-30 hexo next 主题添加字数统计(2018) 08-21 hexo d 出错 08-20 hexo 个性化 - next 主题动态显示 subtitle 08-15 “高逼格”C 语言画心 08-14 git index.lock 08-11 在 Android 上搭建 hexo 博客 08-10 石子阵列(组合数学) 08-10 Dreamoon and Stairs 08-10 Dreamoon and WiFi(组合数学) 08-10 The equation-SGU106(扩展欧几里得) 08-09 Leading and Trailing-lightoj1282(快速幂 + 对数运算) 08-09 Codeforces Round 502(Div.1 + Div.2) 08-08 欧拉函数 08-06 Heavy Transportation-poj1797(dijkstra 或最大生成树) 08-04 hexo 博客自定义 console log 08-03 Til the Cows Come Home-poj2387(dijkstra 判断重边) 08-03 最短路入门 08-02 牛客暑假多校第五场 08-02 食物链-poj1182(带权并查集经典模板) 08-01 小希的迷宫-HDU-1272(并查集 or 树性质) 08-01 How Many Answers Are Wrong-hdu3038(带权并查集) 07-31 Bear and Finding Criminals-Codeforces680B 07-31 Bear and Five Cards-Codeforces680A 07-31 how many tables-HDU-1213(并查集求连通域数目) 07-31 The-suspects-POJ-1611(并查集) 07-31 wireless network-POJ-2236(并查集) 07-31 Piles-with-stones 07-31 畅通工程-HDU-1232(并查集经典模板) 07-27 牛客练习赛 23 07-26 在线离线算法 07-24 HDU-1495-非常可乐(bfs 模拟倒水 or 数论) 07-23 hdu-2612-Find a way(双 bfs) 07-22 POJ-3278-Catch That Cow(bfs) 07-22 poj-2251-Dungeon Master(三维 bfs 最短路) 07-22 poj-1321 棋盘问题(dfs) 07-22 poj-1426-Find The Multiple(dfs) 07-22 Adjacent Replacements 07-22 poj-3984-迷宫问题 (bfs 路径) 07-22 Wannafly 挑战赛 20-染色 07-22 杨辉三角 07-22 hdu-1241-Oil Deposits (dfs) 07-22 BFS 求最短路 07-22 Educational Codeforces Round 47 (Rated for Div. 2) 07-22 深搜广搜 07-22 TaoTao 要吃鸡 07-18 Wannafly 挑战赛 18-序列 06-16 简单背包 06-15 18 湘潭邀请赛参赛队员代表发言 06-14 18 湘潭邀请赛总结 06-14 F.sorting 06-14 K.2018 06-14 B.Higher h-index 06-14 A.Easy h-index 06-14 sort 排序 06-14 位运算 06-14 C++ with STL 06-07 各种 Links 汇总与分享 06-03 戏子春秋 06-01 hexo+github 搭建个人博客及美化 05-31 hexo 添加图片,音乐,链接,视频 05-31 猴子与哪吒 05-28 博客构建档(HTML \u0026amp; Markdown) 05-28 Hello World ","content_html":"\u003ch2 class=\"heading-element\" id=\"菠菜眾長\" data-decreased\u003e\u003cspan\u003e\u003ca href=\"https://lruihao.cn/\" title=\"主页\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e菠菜眾長\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/span\u003e\n \u003ca href=\"#%e8%8f%a0%e8%8f%9c%e7%9c%be%e9%95%b7\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cblockquote\u003e\n\u003cp\u003eHugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e共计 297 篇文章 by \u003ca href=\"https://github.com/Lruihao\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 class=\"heading-element\" id=\"2026\"\u003e\u003cspan\u003e2026\u003c/span\u003e\n \u003ca href=\"#2026\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails open\u003e\n\u003csummary\u003e共计 1 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e03-06 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-tooltip/\" title=\"2026-03-06 06:58:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e一个轻量化 Tooltip 组件。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2025\"\u003e\u003cspan\u003e2025\u003c/span\u003e\n \u003ca href=\"#2025\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 14 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-24 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/\" title=\"2025-12-24 03:31:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Christmas Easter Egg by JavaScript.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/projects/lruihao/auto-changelog-plus/\" title=\"2025-08-30 15:40:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommand line tool for generating a changelog from git tags and commit history\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-16 \u003ca href=\"https://lruihao.cn/posts/mermaid-theming/\" title=\"2025-08-16 12:37:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e让 Mermaid 图表自动跟随系统深浅色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-05 \u003ca href=\"https://lruihao.cn/posts/wc-01-prologue/\" title=\"2025-08-05 11:31:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e黑盒出关・三把钥匙定江湖\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/code-playground/\" title=\"2025-08-04 11:37:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Playground\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/projects/lruihao/caniuse-embed-element/\" title=\"2025-07-22 03:40:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom web component that embeds caniuse.com browser compatibility data for a specific feature.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/projects/lruihao/json-viewer-element/\" title=\"2025-07-19 07:05:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA custom element for viewing and interacting with JSON data.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/at-layer/\" title=\"2025-06-18 10:35:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS @layer:构建更高效、更可维护的样式层级\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-11 \u003ca href=\"https://lruihao.cn/posts/vue-build/\" title=\"2025-06-11 10:05:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue.js History 模式下的 NGINX 配置与 API 代理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt-webfont/\" title=\"2025-04-10 08:35:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe webfont package for the MMT typeface.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-proxy/\" title=\"2025-04-09 02:13:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAPI proxies powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-20 \u003ca href=\"https://lruihao.cn/posts/flexbox/\" title=\"2025-01-20 15:56:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS Flexbox 布局指南\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/action-component-list/\" title=\"2025-01-14 09:10:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGenerate a list of all hugo-fixit theme components.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-08 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-asciinema/\" title=\"2025-01-08 09:20:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with asciinema-embed shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2024\"\u003e\u003cspan\u003e2024\u003c/span\u003e\n \u003ca href=\"#2024\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 38 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-06 \u003ca href=\"https://lruihao.cn/posts/css-viewport/\" title=\"2024-12-06 10:32:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e震惊!CSS 竟然能获取视口尺寸?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-02 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-translate/\" title=\"2024-12-02 07:29:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🌐 A component for site automatic translation.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-22 \u003ca href=\"https://lruihao.cn/posts/91db0fa/\" title=\"2024-11-22 14:01:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAmazon 如何让服务器享受着持续集群安全?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-05 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-flyfish/\" title=\"2024-11-05 08:23:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐟 A canvas implemented animation effect of small fish swimming.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-06 \u003ca href=\"https://lruihao.cn/posts/content-adapters/\" title=\"2024-10-06 11:10:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自动获取 GitHub README 内容添加到 Hugo 文章\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-13 \u003ca href=\"https://lruihao.cn/projects/lruihao/html-demo/\" title=\"2024-09-13 02:36:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不使用任何框架,只使用原生 HTML、CSS 和 JavaScript 的一些小 demo。\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-releaser/\" title=\"2024-09-04 18:10:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e⚙️ Versioning, change-log and release tool. (Superseded by https://github.com/Lruihao/auto-changelog-plus)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-atom-feed/\" title=\"2024-08-22 03:29:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for ATOM feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-22 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-json-feed/\" title=\"2024-08-22 03:28:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo theme component for JSON feed custom Output Format.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/cmpt-mdevtools/\" title=\"2024-08-07 05:49:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMobile devtools component powered by vConsole and eruda.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/css-round/\" title=\"2024-07-29 20:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案:CSS 四舍五入数值单位\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-21 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-rewards/\" title=\"2024-07-21 14:02:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with reward-log or sponsor-log shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-17 \u003ca href=\"https://lruihao.cn/posts/git-summary/\" title=\"2024-07-17 16:06:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 统计代码量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/drop-shadow/\" title=\"2024-07-15 10:40:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e现代 CSS 解决方案之异形元素怎么设置阴影?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-docs-bookmark/\" title=\"2024-07-14 07:39:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔖 Embed bookmark of FixIt Docs.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-14 \u003ca href=\"https://lruihao.cn/posts/fixit-docs-bookmark/\" title=\"2024-07-14 13:03:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 实现时间轴、背景图 loading 和渐变边框\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-07 \u003ca href=\"https://lruihao.cn/posts/d1fc0c7/\" title=\"2024-07-07 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 Amazon S3 的无限存储潜力\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/posts/scrollbar-styling/\" title=\"2024-06-28 22:29:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e标准滚动条控制规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-caniuse/\" title=\"2024-06-28 06:56:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA Hugo theme component with caniuse shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-13 \u003ca href=\"https://lruihao.cn/posts/aside-toggle-drag/\" title=\"2024-06-13 21:03:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何实现 VSCode 编辑器窗口边界拖拽类似功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-09 \u003ca href=\"https://lruihao.cn/posts/design-principles/\" title=\"2024-06-09 02:24:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e架构之基:从根儿上了解设计原则\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-06 \u003ca href=\"https://lruihao.cn/posts/svg-dark-light/\" title=\"2024-06-06 22:13:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e怎么生成暗黑模式和明亮模式的 SVG 图片?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-20 \u003ca href=\"https://lruihao.cn/posts/404d6a2/\" title=\"2024-05-20 11:41:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e坐高铁去柳州吃螺狮粉\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/vercel-gravatar/\" title=\"2024-04-17 12:51:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用 Vercel 反代 Gravatar 实现镜像加速\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/vercel-gravatar/\" title=\"2024-04-17 01:37:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGravatar Proxy powered by Vercel.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-09 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/component-projects/\" title=\"2024-04-09 21:38:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🐙 Display your GitHub projects in the FixIt theme and generate blog posts from readme.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-04 \u003ca href=\"https://lruihao.cn/projects/apple-devices-preview/\" title=\"2024-04-04 13:23:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e临时决定再写一个小工具 - 网站预览图生成器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-02 \u003ca href=\"https://lruihao.cn/projects/coverview/\" title=\"2024-04-02 18:05:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用五天时间给自己制作一个封面图生成工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/coverview/\" title=\"2024-03-28 06:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠 Create awesome cover images for your blog posts quickly.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/c6bc2d5/\" title=\"2024-03-26 12:23:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写文档时英文标题什么时候要大写?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-29 \u003ca href=\"https://lruihao.cn/posts/overflow-tooltip/\" title=\"2024-02-29 16:46:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e实现类似于 Element UI 表格的溢出文本提示功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-21 \u003ca href=\"https://lruihao.cn/posts/auto-sizes/\" title=\"2024-02-21 10:00:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e聊聊 Chrome 新增的 sizes=\u0026ldquo;auto\u0026rdquo; 属性\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-09 \u003ca href=\"https://lruihao.cn/years/2023/\" title=\"2024-02-09 14:07:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2023 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-21 \u003ca href=\"https://lruihao.cn/projects/lruihao/kityminder-core/\" title=\"2024-01-21 06:24:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e强大的脑图可视化工具\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/900d5e4/\" title=\"2024-01-17 14:57:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e记一次 Debug 第三方包的过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-17 \u003ca href=\"https://lruihao.cn/posts/20b75e9/\" title=\"2024-01-17 09:58:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e为什么很多教程中都有 foo bar?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/6550187/\" title=\"2024-01-11 10:30:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit submodule: already exists in the index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-10 \u003ca href=\"https://lruihao.cn/posts/el-card-collapse/\" title=\"2024-01-10 17:06:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给 el-card 添加折叠功能\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2023\"\u003e\u003cspan\u003e2023\u003c/span\u003e\n \u003ca href=\"#2023\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 35 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/d8ae205/\" title=\"2023-12-22 19:58:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e尝试在 Python 中使用 Amazon Titan 文本模型\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-28 \u003ca href=\"https://lruihao.cn/projects/fixit-cli/\" title=\"2023-11-28 10:48:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 Node.js 开发一个轻量脚手架\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-20 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit-cli/\" title=\"2023-11-20 06:40:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🛠️ A node-based tooling for FixIt site initialization.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-18 \u003ca href=\"https://lruihao.cn/posts/aws-solution/\" title=\"2023-11-18 12:52:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e探索 AWS 云上一站式解决方案免费使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-22 \u003ca href=\"https://lruihao.cn/posts/ssh-sign/\" title=\"2023-10-22 18:59:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSSH 提交签名验证\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/patch-package/\" title=\"2023-10-12 22:37:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何给 npm 包打补丁?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-summary/\" title=\"2023-10-12 21:25:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘系列总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-usage/\" title=\"2023-10-12 20:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件开发\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-usage/\" title=\"2023-10-12 20:07:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 模板使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-widget-docs/\" title=\"2023-10-12 19:41:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 组件配置文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashborad-template-docs/\" title=\"2023-10-12 19:27:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 布局模板文档\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/posts/dashboard-analysis/\" title=\"2023-10-12 15:37:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e拖拽式仪表盘 - 功能需求分析\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-11 \u003ca href=\"https://lruihao.cn/posts/markdownlint/\" title=\"2023-10-11 14:26:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e给你的 Markdown 挑挑刺\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/cognitive-complexity/\" title=\"2023-10-08 09:52:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e认知复杂度(Cognitive Complexity)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/article-structure/\" title=\"2023-09-26 15:17:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e写作技巧:如何搭建文章的框架结构?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-25 \u003ca href=\"https://lruihao.cn/projects/el-table-sticky/\" title=\"2023-09-25 17:49:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e如何让 Element UI 表头、表尾、横向滚动条吸顶吸底固定?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-17 \u003ca href=\"https://lruihao.cn/posts/vue-fullscreen-toggler/\" title=\"2023-09-17 19:44:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e封装 Vue FullScreenToggler 组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/js-fullscreen/\" title=\"2023-09-15 17:29:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 实现全屏和退出全屏\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-15 \u003ca href=\"https://lruihao.cn/posts/translation-guide/\" title=\"2023-09-15 11:07:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文翻译的常见问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vue-svg-icon/\" title=\"2023-09-14 11:24:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Vue 项目中更优雅地使用 icon\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-14 \u003ca href=\"https://lruihao.cn/posts/vscode-snippets/\" title=\"2023-09-14 11:21:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVSCode 添加用户代码片段,自定义用户代码片段\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-02 \u003ca href=\"https://lruihao.cn/posts/grid-bg-image/\" title=\"2023-09-02 10:05:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCSS 如何实现网格背景效果?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-26 \u003ca href=\"https://lruihao.cn/posts/aws-ec2/\" title=\"2023-08-26 17:22:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e将 Hugo 博客部署到亚马逊云服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-el-demo/\" title=\"2023-08-08 01:41:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 and element-ui related demos\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-20 \u003ca href=\"https://lruihao.cn/posts/el-backtop-fix/\" title=\"2023-07-20 11:08:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用魔法打败魔法 - ElBacktop Fix\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/projects/lruihao/el-table-sticky/\" title=\"2023-06-14 14:03:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA plugin includes a set of directives to make the header, footer and horizontal scrollbar sticky or make highly adaptive of Element UI (Vue 2) tables.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/gen-router/\" title=\"2023-06-14 00:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Node.js 自动创建 Vue 的路由\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-12 \u003ca href=\"https://lruihao.cn/posts/sourcetree-husky/\" title=\"2023-06-12 10:58:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解决 SourceTree 提交时候 husky 命令失败问题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/v2-tailwind/\" title=\"2023-06-03 17:38:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVue2 + tailwindcss 初始化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-14 \u003ca href=\"https://lruihao.cn/posts/vue2-guid/\" title=\"2023-03-14 08:37:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新手向:Vue 2.0 的建议学习顺序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/shortcode-mmt-netease/\" title=\"2023-02-28 09:12:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🎶 A Hugo theme component with a NetEase Cloud random comment shortcode.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-12 \u003ca href=\"https://lruihao.cn/posts/native-img-loading-lazy/\" title=\"2023-02-12 19:40:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器 IMG 图片原生懒加载 loading=\u0026ldquo;lazy\u0026rdquo;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-05 \u003ca href=\"https://lruihao.cn/posts/browser-rendering/\" title=\"2023-02-05 21:02:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器渲染原理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-04 \u003ca href=\"https://lruihao.cn/posts/document-style-guide/\" title=\"2023-02-04 16:04:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e中文技术文档的写作规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-11 \u003ca href=\"https://lruihao.cn/posts/event-loop/\" title=\"2023-01-11 11:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e浏览器原理 - 事件循环\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2022\"\u003e\u003cspan\u003e2022\u003c/span\u003e\n \u003ca href=\"#2022\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 20 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-17 \u003ca href=\"https://lruihao.cn/years/2022/\" title=\"2022-12-17 01:01:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2022 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-15 \u003ca href=\"https://lruihao.cn/posts/homebrew-npm/\" title=\"2022-12-15 15:33:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 Homebrew 后导致系统中原有的 npm 和 npx 失效\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-10 \u003ca href=\"https://lruihao.cn/projects/lruihao/vue-minder-editor-extended/\" title=\"2022-10-10 02:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 fex-team/kityminder-core 和 Vue2 封装的在线脑图编辑组件\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-30 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter/\" title=\"2022-09-30 09:28:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Hugo Modules to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-fixit-starter1/\" title=\"2022-09-27 15:23:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🆕 A quick-start template base on Git submodule to create a Hugo FixIt site.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-04 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/hugo-shell/\" title=\"2022-09-04 04:18:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eUsing frequently-used Hugo commands by shell.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/beego-install/\" title=\"2022-08-31 09:32:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBeego 安装及配置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-13 \u003ca href=\"https://lruihao.cn/posts/semver/\" title=\"2022-08-13 13:32:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e语义版本控制(SemVer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/commit-spec/\" title=\"2022-08-12 15:37:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCommit Message Spec\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-12 \u003ca href=\"https://lruihao.cn/posts/electron-summary/\" title=\"2022-08-12 11:22:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eelectron 踩坑总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/encryption-fe/\" title=\"2022-08-08 13:49:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端页面内容加密总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/qcloudcdn/\" title=\"2022-08-07 14:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNode.js + GitHub Actions 自动刷新 CDN\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-07 \u003ca href=\"https://lruihao.cn/posts/newline/\" title=\"2022-08-07 00:10:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e不同系统的换行符的差异\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/ohmyzsh-custom/\" title=\"2022-07-31 13:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e自定义 ohmyzsh 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-30 \u003ca href=\"https://lruihao.cn/posts/linux-permission/\" title=\"2022-07-30 17:15:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 文件权限\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-29 \u003ca href=\"https://lruihao.cn/posts/config4mac/\" title=\"2022-07-29 20:22:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 上的开发配置总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/docs/\" title=\"2022-07-23 12:17:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e📄 The open-source repo for fixit.lruihao.cn\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-05 \u003ca href=\"https://lruihao.cn/posts/adb-for-mac/\" title=\"2022-07-05 15:39:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eMac 配置 ADB\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/js-rediscover/\" title=\"2022-05-01 10:59:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e重新认识 JavaScript\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-30 \u003ca href=\"https://lruihao.cn/posts/css-scss-var/\" title=\"2022-04-30 22:04:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e关于 CSS 和 Scss 变量运算那些事\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2021\"\u003e\u003cspan\u003e2021\u003c/span\u003e\n \u003ca href=\"#2021\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 19 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-22 \u003ca href=\"https://lruihao.cn/posts/gtd/\" title=\"2021-12-22 20:17:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGetting Things Done for ios App Reminders and Github issues\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-16 \u003ca href=\"https://lruihao.cn/projects/hugo-fixit/fixit/\" title=\"2021-12-16 03:35:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e🔧 A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/subl_imgpaste2/\" title=\"2021-10-05 21:54:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime 剪贴板图片粘贴插件 —— Markdown 必备\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-cardlink/\" title=\"2021-10-05 19:33:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 添加知乎卡片式链接 Shortcodes\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-i18n-zh-tw/\" title=\"2021-10-05 19:14:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo I18n 添加中文繁體翻譯\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-05 \u003ca href=\"https://lruihao.cn/posts/hugo-friends/\" title=\"2021-10-05 14:14:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 友情連結模板\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/hugo-admin/\" title=\"2021-10-04 23:49:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 本地管理 Shell 腳本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-04 \u003ca href=\"https://lruihao.cn/posts/github-actions/\" title=\"2021-10-04 23:46:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHugo 使用 GitHub Actions 部署到 GithHb Pages 和 腾讯云 cos 桶\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-03 \u003ca href=\"https://lruihao.cn/posts/hexo-to-hugo/\" title=\"2021-10-03 15:27:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e个人博客从 Hexo 迁移至 Hugo\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/projects/lruihao/hugo-blog/\" title=\"2021-09-08 12:52:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLruihao\u0026rsquo;s Note\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-22 \u003ca href=\"https://lruihao.cn/posts/less-sass-scss/\" title=\"2021-06-22 16:39:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eless\u0026amp;sass\u0026amp;scss\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/lightbox/\" title=\"2021-06-21 16:18:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLightbox\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/years/2020-2021/\" title=\"2021-06-21 10:17:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2020\u0026amp;2021 總結\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-24 \u003ca href=\"https://lruihao.cn/projects/lruihao/watermark/\" title=\"2021-05-24 13:05:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCreate watermark for webpage and automatic adjust when window resize.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-23 \u003ca href=\"https://lruihao.cn/projects/cell-watermark/\" title=\"2021-05-23 17:15:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCell Watermark\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/codereview/\" title=\"2021-03-04 21:04:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCode Review 怎麼做?新手工程師如何提升「程式碼品質」\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-02 \u003ca href=\"https://lruihao.cn/projects/bill-note/\" title=\"2021-03-02 21:46:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-01 \u003ca href=\"https://lruihao.cn/me/whysmoke/\" title=\"2021-03-01 01:27:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e你为什么吸烟?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/bill-note/\" title=\"2021-02-28 03:44:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 leancloud-storage 实现的无后端记账本\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2020\"\u003e\u003cspan\u003e2020\u003c/span\u003e\n \u003ca href=\"#2020\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 8 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/projects/cell-blog/\" title=\"2020-07-25 20:51:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 功能介绍与安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-25 \u003ca href=\"https://lruihao.cn/posts/cell-blog-dev/\" title=\"2020-07-25 20:42:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecell-blog 开发记录\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-17 \u003ca href=\"https://lruihao.cn/projects/lruihao/cell-blog/\" title=\"2020-04-17 08:33:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基于 Laravel 7 开发,支持 Markdown 语法的博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-26 \u003ca href=\"https://lruihao.cn/posts/csdnvisiter/\" title=\"2020-03-26 11:08:38\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Python 刷 csdn 访问量\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/cron/\" title=\"2020-03-25 09:19:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCron 表达式的基本语法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-25 \u003ca href=\"https://lruihao.cn/posts/daka/\" title=\"2020-03-25 08:22:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e新冠疫情未返校未返工第 N 天之“自动打卡”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/years/2019/\" title=\"2020-01-16 20:01:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2019 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/sql/\" title=\"2020-01-16 19:28:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSQL 总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2019\"\u003e\u003cspan\u003e2019\u003c/span\u003e\n \u003ca href=\"#2019\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 71 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/projects/cos-album/\" title=\"2019-11-24 10:52:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云为静态页面添加“动态”相册\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-23 \u003ca href=\"https://lruihao.cn/projects/lruihao/cos-album/\" title=\"2019-11-23 12:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e解析腾讯云 cos 桶 xml 生成相册,同时也是图床的显示页面\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-14 \u003ca href=\"https://lruihao.cn/posts/restful/\" title=\"2019-11-14 19:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eRESTful\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phppushurl/\" title=\"2019-09-28 18:32:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 同时主动推送链接到百度,神马等站长平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-28 \u003ca href=\"https://lruihao.cn/posts/phpfile/\" title=\"2019-09-28 17:11:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 按行读取文件信息\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/projects/lruihao/mmt/\" title=\"2019-09-26 12:44:17\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目之,湘也。— 沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-19 \u003ca href=\"https://lruihao.cn/posts/site-time/\" title=\"2019-09-19 22:03:29\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e设置网站运行时间\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-08 \u003ca href=\"https://lruihao.cn/posts/async-defer/\" title=\"2019-09-08 11:47:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003escript 的三种加载方式 (async, defer)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/sublime-text3/\" title=\"2019-08-15 20:59:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eSublime Text3 快捷键大全\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/netbeans/\" title=\"2019-08-15 18:36:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eNetBeans IDE 开发设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/dev-rules/\" title=\"2019-08-15 18:30:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWeb 开发规则,代码规范\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-19 \u003ca href=\"https://lruihao.cn/posts/phpform/\" title=\"2019-07-19 11:38:59\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单评论模块\u0026ndash;php 表单练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-15 \u003ca href=\"https://lruihao.cn/posts/phpfunc/\" title=\"2019-07-15 11:37:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ephp 函数学习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-12 \u003ca href=\"https://lruihao.cn/posts/wamproot/\" title=\"2019-07-12 18:44:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWAMPServer 自定义网站根目录等设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-21 \u003ca href=\"https://lruihao.cn/posts/pysx2/\" title=\"2019-06-21 18:46:41\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅱ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-18 \u003ca href=\"https://lruihao.cn/posts/pysx1/\" title=\"2019-06-18 18:41:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实训总结Ⅰ\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-26 \u003ca href=\"https://lruihao.cn/posts/judgetriangle/\" title=\"2019-05-26 18:50:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e判断三角形的黑盒测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/hustoj/\" title=\"2019-05-17 23:08:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHustOJ 基础搭建教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-17 \u003ca href=\"https://lruihao.cn/posts/gcd-bit/\" title=\"2019-05-17 09:14:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最大公约数(二进制算法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-16 \u003ca href=\"https://lruihao.cn/posts/imgurl/\" title=\"2019-05-16 20:31:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装 ImgURL 图床\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-11 \u003ca href=\"https://lruihao.cn/posts/mx2wx/\" title=\"2019-05-11 17:02:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 实战:模拟 post 请求定时获取后台数据并打包发送至微信\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-10 \u003ca href=\"https://lruihao.cn/posts/ifzhushi/\" title=\"2019-05-10 13:08:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e条件注释判断浏览器版本\u0026lt;!\u0026ndash;[if lt IE 9]\u0026gt;;\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pysettime/\" title=\"2019-05-09 23:26:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 设置程序每天 8 点定时执行任务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-09 \u003ca href=\"https://lruihao.cn/posts/pyinstallererror/\" title=\"2019-05-09 19:05:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e安装 pyinstaller 出错的解决办法及 csdn 工具实例打包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-08 \u003ca href=\"https://lruihao.cn/posts/singlethreaddown/\" title=\"2019-05-08 20:55:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 实现一个单线程的资源下载器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/jsoninfo/\" title=\"2019-05-07 18:42:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePython 如何操作 Json?\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-07 \u003ca href=\"https://lruihao.cn/posts/posttest/\" title=\"2019-05-07 18:17:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 发送 post 请求进行简单的接口测试\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-06 \u003ca href=\"https://lruihao.cn/posts/java-urlreader/\" title=\"2019-05-06 17:41:35\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 通过 URL 和 URLConnection 访问网页资源\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-02 \u003ca href=\"https://lruihao.cn/posts/byteio/\" title=\"2019-05-02 23:04:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e文件加密解密(字节流)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-01 \u003ca href=\"https://lruihao.cn/posts/javaexception/\" title=\"2019-05-01 16:52:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模拟借书系统(java 异常练习)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-27 \u003ca href=\"https://lruihao.cn/posts/qrcode/\" title=\"2019-04-27 14:16:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用 MyQR 制作专属动态二维码 (py 和 exe 版本)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-24 \u003ca href=\"https://lruihao.cn/posts/1thintervivew/\" title=\"2019-04-24 21:23:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e第一次面试经历\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-22 \u003ca href=\"https://lruihao.cn/posts/mmtimgpy/\" title=\"2019-04-22 12:46:34\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 爬取网站图片(图片链接相似)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wxpy1/\" title=\"2019-04-20 15:44:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epython 玩微信:初探 wxpy\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-20 \u003ca href=\"https://lruihao.cn/posts/wximgpy/\" title=\"2019-04-20 13:32:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e基本 python 实现的爬取微信好友头像,并拼接成大图\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-19 \u003ca href=\"https://lruihao.cn/posts/hellojava/\" title=\"2019-04-19 19:49:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e用记事本编写第一个 java 程序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-18 \u003ca href=\"https://lruihao.cn/posts/java-regex/\" title=\"2019-04-18 22:04:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 正则表达式练习\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-14 \u003ca href=\"https://lruihao.cn/posts/stringbuffer/\" title=\"2019-04-14 10:12:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 常用类\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-12 \u003ca href=\"https://lruihao.cn/posts/hdu1009/\" title=\"2019-04-12 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU 1009 FatMouse\u0026rsquo; Trade(贪心)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e04-03 \u003ca href=\"https://lruihao.cn/posts/ngrok/\" title=\"2019-04-03 19:29:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e本地搭建网站服务器并穿透内网\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/ms-html-css/\" title=\"2019-03-30 22:58:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e前端面试题 - HTML+CSS\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-30 \u003ca href=\"https://lruihao.cn/posts/bqbj/\" title=\"2019-03-30 10:13:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e百钱百鸡(枚举法)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/dacheng/\" title=\"2019-03-28 22:50:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e大数乘法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-28 \u003ca href=\"https://lruihao.cn/posts/http2https/\" title=\"2019-03-28 19:40:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003evps 配置 ssl 及 https 重定向\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/hexo-theme-next/\" title=\"2019-03-21 16:43:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo-theme-next @modified LRH\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/substatus/\" title=\"2019-03-21 13:36:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJava 父类子类的对象初始化过程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-21 \u003ca href=\"https://lruihao.cn/posts/windefault/\" title=\"2019-03-21 12:48:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eubuntu + windows 双系统默认启动项设置\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-19 \u003ca href=\"https://lruihao.cn/posts/player/\" title=\"2019-03-19 23:32:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宅音乐播放器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/bt/\" title=\"2019-03-18 21:31:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e宝塔面板安装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-18 \u003ca href=\"https://lruihao.cn/posts/webbiji/\" title=\"2019-03-18 20:40:55\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eweb 汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-16 \u003ca href=\"https://lruihao.cn/posts/fanxing/\" title=\"2019-03-16 13:56:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 泛型 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/eclipseuse/\" title=\"2019-03-15 23:47:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eeclipse 的基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/qframe/\" title=\"2019-03-15 22:31:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e匿名类在可视化界面中的应用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/linkcard/\" title=\"2019-03-15 15:21:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e模仿知乎卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-15 \u003ca href=\"https://lruihao.cn/posts/ubuntutime/\" title=\"2019-03-15 14:28:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewin10,ubuntu 双系统时间不一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-08 \u003ca href=\"https://lruihao.cn/posts/qqxml/\" title=\"2019-03-08 16:52:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eQQ 强制生成卡片式链接\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/cipanadmin/\" title=\"2019-03-04 23:08:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e磁盘存储器的管理\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e03-04 \u003ca href=\"https://lruihao.cn/posts/js-vcode/\" title=\"2019-03-04 20:53:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eJS 验证码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e02-01 \u003ca href=\"https://lruihao.cn/posts/renative/\" title=\"2019-02-01 20:44:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e还乡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-31 \u003ca href=\"https://lruihao.cn/projects/lruihao/hexo-theme-next/\" title=\"2019-01-31 09:57:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eElegant and powerful theme for Hexo.\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-24 \u003ca href=\"https://lruihao.cn/posts/jicheng/\" title=\"2019-01-24 15:07:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 继承 test\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-22 \u003ca href=\"https://lruihao.cn/posts/cos-hexo/\" title=\"2019-01-22 14:57:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e利用腾讯云对象存储 COS 桶托管 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-18 \u003ca href=\"https://lruihao.cn/posts/java-arrays/\" title=\"2019-01-18 13:13:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eArrays 类及基本使用\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-16 \u003ca href=\"https://lruihao.cn/posts/recent-posts/\" title=\"2019-01-16 17:50:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在搜索、文章底部、侧栏添加最近文章模块\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/mathclass/\" title=\"2019-01-15 17:33:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 猜数字小游戏(Math 类)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-15 \u003ca href=\"https://lruihao.cn/posts/duixiang/\" title=\"2019-01-15 16:07:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e面向对象基础知识总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-range/\" title=\"2019-01-14 17:30:24\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 水仙花数(循环)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/java-input/\" title=\"2019-01-14 15:33:46\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 录入数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-14 \u003ca href=\"https://lruihao.cn/posts/biaoshi/\" title=\"2019-01-14 15:07:57\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejava 标识符\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/posts/subject-verb/\" title=\"2019-01-12 13:02:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;主谓一致\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e01-12 \u003ca href=\"https://lruihao.cn/years/2018/\" title=\"2019-01-12 11:09:52\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e2018 年度总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003ch2 class=\"heading-element\" id=\"2018\"\u003e\u003cspan\u003e2018\u003c/span\u003e\n \u003ca href=\"#2018\" class=\"heading-mark\"\u003e\n \u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\n \u003c/a\u003e\n\u003c/h2\u003e\u003cdetails\u003e\n\u003csummary\u003e共计 91 篇文章\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-3/\" title=\"2018-12-10 21:52:30\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;形式倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-10 \u003ca href=\"https://lruihao.cn/posts/inversion-2/\" title=\"2018-12-10 21:14:51\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;完全倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e12-08 \u003ca href=\"https://lruihao.cn/posts/inversion-1/\" title=\"2018-12-08 17:52:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e英语语法\u0026ndash;部分倒装\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-24 \u003ca href=\"https://lruihao.cn/posts/nextplugin/\" title=\"2018-11-24 16:54:09\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 插件及 next 内置样式集\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-17 \u003ca href=\"https://lruihao.cn/posts/commit-bat/\" title=\"2018-11-17 14:25:49\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e通过 bat 批处理文件自动提交博客代码\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-12 \u003ca href=\"https://lruihao.cn/posts/fas-app/\" title=\"2018-11-12 16:04:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博採眾長 app\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-11 \u003ca href=\"https://lruihao.cn/posts/caddy-file/\" title=\"2018-11-11 13:59:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ecaddy-两步搭建超简单云盘\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-09 \u003ca href=\"https://lruihao.cn/posts/next-pdf/\" title=\"2018-11-09 12:51:48\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003enext 添加支持 pdf\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/js-device/\" title=\"2018-11-03 23:35:44\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ejs 判断用户设备类型及平台\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e11-03 \u003ca href=\"https://lruihao.cn/posts/blog-backup/\" title=\"2018-11-03 12:49:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客源码备份\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-30 \u003ca href=\"https://lruihao.cn/posts/git/\" title=\"2018-10-30 08:59:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eGit 常用指令汇总\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/beian/\" title=\"2018-10-29 23:16:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网站备案之旅\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/shell/\" title=\"2018-10-29 11:57:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eshell 脚本初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-29 \u003ca href=\"https://lruihao.cn/posts/web-server-yun/\" title=\"2018-10-29 09:15:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e云服务器 CentOS 系统搭建 web 服务\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-28 \u003ca href=\"https://lruihao.cn/posts/href-301/\" title=\"2018-10-28 14:22:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 js 准确获取当前页面 url 网址信息及 301 重定向实战\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/web-server-win/\" title=\"2018-10-26 21:56:18\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewindows 上搭建 web 服务器\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-26 \u003ca href=\"https://lruihao.cn/posts/gituse/\" title=\"2018-10-26 21:11:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e使用 Git 上传代码到 github, coding 等仓库\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-23 \u003ca href=\"https://lruihao.cn/posts/termux1/\" title=\"2018-10-23 22:16:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003etermux 基本使用教程\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-17 \u003ca href=\"https://lruihao.cn/posts/web-font/\" title=\"2018-10-17 21:38:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ettf 字体压缩\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-15 \u003ca href=\"https://lruihao.cn/posts/linux-hello-c/\" title=\"2018-10-15 21:19:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux 编程初体验\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-12 \u003ca href=\"https://lruihao.cn/projects/font-mmt/\" title=\"2018-10-12 19:39:19\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e沐目体\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-09 \u003ca href=\"https://lruihao.cn/posts/liushuixian/\" title=\"2018-10-09 16:21:04\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e流水线\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e10-08 \u003ca href=\"https://lruihao.cn/posts/data/\" title=\"2018-10-08 23:01:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e计算机数据\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-27 \u003ca href=\"https://lruihao.cn/posts/night/\" title=\"2018-09-27 13:13:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页夜间效果\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-26 \u003ca href=\"https://lruihao.cn/posts/crash-cheat/\" title=\"2018-09-26 16:36:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e网页离开时改变标题“崩溃欺骗”\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-22 \u003ca href=\"https://lruihao.cn/posts/linux-git/\" title=\"2018-09-22 22:28:45\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003elinux/centos 下的安装 git\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e09-21 \u003ca href=\"https://lruihao.cn/posts/mood/\" title=\"2018-09-21 21:11:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e每一个优秀的人,都有一段沉默的时光\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-31 \u003ca href=\"https://lruihao.cn/posts/vim/\" title=\"2018-08-31 11:46:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eVim 速查表\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-30 \u003ca href=\"https://lruihao.cn/posts/hexo-wordcount/\" title=\"2018-08-30 13:15:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo next 主题添加字数统计(2018)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-21 \u003ca href=\"https://lruihao.cn/posts/hexo-d-error/\" title=\"2018-08-21 22:15:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo d 出错\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-20 \u003ca href=\"https://lruihao.cn/posts/dongtaisub/\" title=\"2018-08-20 16:16:40\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 个性化 - next 主题动态显示 subtitle\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-15 \u003ca href=\"https://lruihao.cn/posts/heart/\" title=\"2018-08-15 16:33:12\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e“高逼格”C 语言画心\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-14 \u003ca href=\"https://lruihao.cn/posts/git-index-lock/\" title=\"2018-08-14 19:21:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003egit index.lock\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-11 \u003ca href=\"https://lruihao.cn/posts/termux/\" title=\"2018-08-11 16:59:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在 Android 上搭建 hexo 博客\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/nowcoder157a/\" title=\"2018-08-10 22:11:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e石子阵列(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476a/\" title=\"2018-08-10 20:13:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and Stairs\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/codeforces476b/\" title=\"2018-08-10 17:44:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eDreamoon and WiFi(组合数学)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-10 \u003ca href=\"https://lruihao.cn/posts/euclid/\" title=\"2018-08-10 10:32:39\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe equation-SGU106(扩展欧几里得)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/lightoj1282/\" title=\"2018-08-09 20:55:26\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eLeading and Trailing-lightoj1282(快速幂 + 对数运算)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-09 \u003ca href=\"https://lruihao.cn/posts/cfcontest1017/\" title=\"2018-08-09 10:48:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eCodeforces Round 502(Div.1 + Div.2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-08 \u003ca href=\"https://lruihao.cn/posts/euler/\" title=\"2018-08-08 17:10:07\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e欧拉函数\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-06 \u003ca href=\"https://lruihao.cn/posts/poj1797/\" title=\"2018-08-06 09:42:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHeavy Transportation-poj1797(dijkstra 或最大生成树)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-04 \u003ca href=\"https://lruihao.cn/posts/console-log/\" title=\"2018-08-04 16:19:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 博客自定义 console log\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/poj2387/\" title=\"2018-08-03 21:40:33\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTil the Cows Come Home-poj2387(dijkstra 判断重边)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-03 \u003ca href=\"https://lruihao.cn/posts/zuiduanlu/\" title=\"2018-08-03 16:27:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e最短路入门\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/nowcodersummer-5th/\" title=\"2018-08-02 21:27:02\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客暑假多校第五场\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-02 \u003ca href=\"https://lruihao.cn/posts/poj1182/\" title=\"2018-08-02 11:10:37\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e食物链-poj1182(带权并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu1272/\" title=\"2018-08-01 21:45:50\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e小希的迷宫-HDU-1272(并查集 or 树性质)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e08-01 \u003ca href=\"https://lruihao.cn/posts/hdu3038/\" title=\"2018-08-01 11:45:53\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHow Many Answers Are Wrong-hdu3038(带权并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680b/\" title=\"2018-07-31 19:32:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Finding Criminals-Codeforces680B\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/codeforces680a/\" title=\"2018-07-31 19:22:36\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBear and Five Cards-Codeforces680A\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/how-tables/\" title=\"2018-07-31 11:12:10\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehow many tables-HDU-1213(并查集求连通域数目)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-1611/\" title=\"2018-07-31 11:11:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eThe-suspects-POJ-1611(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/poj-2236/\" title=\"2018-07-31 11:10:54\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ewireless network-POJ-2236(并查集)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/piles-with-stones/\" title=\"2018-07-31 11:09:31\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePiles-with-stones\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-31 \u003ca href=\"https://lruihao.cn/posts/%E7%95%85%E9%80%9A%E5%B7%A5%E7%A8%8B/\" title=\"2018-07-31 11:08:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e畅通工程-HDU-1232(并查集经典模板)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-27 \u003ca href=\"https://lruihao.cn/posts/%E7%89%9B%E5%AE%A2%E7%BB%83%E4%B9%A0%E8%B5%9B23/\" title=\"2018-07-27 21:56:08\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e牛客练习赛 23\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-26 \u003ca href=\"https://lruihao.cn/posts/%E5%9C%A8%E7%BA%BF%E7%A6%BB%E7%BA%BF%E7%AE%97%E6%B3%95/\" title=\"2018-07-26 09:57:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e在线离线算法\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-24 \u003ca href=\"https://lruihao.cn/posts/hdu-1495/\" title=\"2018-07-24 15:34:00\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHDU-1495-非常可乐(bfs 模拟倒水 or 数论)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-23 \u003ca href=\"https://lruihao.cn/posts/hdu-2612/\" title=\"2018-07-23 12:34:42\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-2612-Find a way(双 bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3278/\" title=\"2018-07-22 12:10:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ePOJ-3278-Catch That Cow(bfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-2251/\" title=\"2018-07-22 12:02:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-2251-Dungeon Master(三维 bfs 最短路)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1321/\" title=\"2018-07-22 11:58:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1321 棋盘问题(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-1426/\" title=\"2018-07-22 11:57:13\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-1426-Find The Multiple(dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/adjacent-replacements/\" title=\"2018-07-22 11:54:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eAdjacent Replacements\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/poj-3984/\" title=\"2018-07-22 11:50:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003epoj-3984-迷宫问题 (bfs 路径)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/wannafly-20/\" title=\"2018-07-22 11:46:25\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 20-染色\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/%E6%9D%A8%E8%BE%89%E4%B8%89%E8%A7%92/\" title=\"2018-07-22 11:41:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e杨辉三角\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/hdu-1241/\" title=\"2018-07-22 11:37:20\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehdu-1241-Oil Deposits (dfs)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/bfs%E6%B1%82%E6%9C%80%E7%9F%AD%E8%B7%AF/\" title=\"2018-07-22 11:31:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eBFS 求最短路\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/cf-1009/\" title=\"2018-07-22 11:25:56\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eEducational Codeforces Round 47 (Rated for Div. 2)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/dfs_bfs/\" title=\"2018-07-22 11:25:14\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e深搜广搜\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-22 \u003ca href=\"https://lruihao.cn/posts/taotao%E8%A6%81%E5%90%83%E9%B8%A1/\" title=\"2018-07-22 10:55:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eTaoTao 要吃鸡\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e07-18 \u003ca href=\"https://lruihao.cn/posts/wannafly-18/\" title=\"2018-07-18 08:40:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eWannafly 挑战赛 18-序列\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-16 \u003ca href=\"https://lruihao.cn/posts/%E7%AE%80%E5%8D%95%E8%83%8C%E5%8C%85/\" title=\"2018-06-16 13:18:43\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e简单背包\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-15 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/\" title=\"2018-06-15 07:51:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛参赛队员代表发言\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/\" title=\"2018-06-14 23:32:47\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e18 湘潭邀请赛总结\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/f-sorting/\" title=\"2018-06-14 22:49:27\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eF.sorting\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/k-2018/\" title=\"2018-06-14 22:48:16\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eK.2018\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/b-higher/\" title=\"2018-06-14 22:47:28\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eB.Higher h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/a-easy/\" title=\"2018-06-14 22:36:58\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eA.Easy h-index\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-sort/\" title=\"2018-06-14 20:23:03\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003esort 排序\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/%E4%BD%8D%E8%BF%90%E7%AE%97/\" title=\"2018-06-14 20:22:21\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e位运算\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-14 \u003ca href=\"https://lruihao.cn/posts/c-with-stl/\" title=\"2018-06-14 20:22:06\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eC++ with STL\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-07 \u003ca href=\"https://lruihao.cn/posts/links/\" title=\"2018-06-07 00:06:05\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e各种 Links 汇总与分享\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-03 \u003ca href=\"https://lruihao.cn/posts/%E6%88%8F%E5%AD%90%E6%98%A5%E7%A7%8B/\" title=\"2018-06-03 19:41:32\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e戏子春秋\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e06-01 \u003ca href=\"https://lruihao.cn/posts/hexobuild/\" title=\"2018-06-01 14:34:23\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo+github 搭建个人博客及美化\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/hexowrite/\" title=\"2018-05-31 23:19:22\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003ehexo 添加图片,音乐,链接,视频\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-31 \u003ca href=\"https://lruihao.cn/posts/%E7%8C%B4%E5%AD%90%E4%B8%8E%E5%93%AA%E5%90%92/\" title=\"2018-05-31 10:09:15\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e猴子与哪吒\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/projects/lruihao/lruihao.github.io/\" title=\"2018-05-28 12:24:11\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003e博客构建档(HTML \u0026amp; Markdown)\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e05-28 \u003ca href=\"https://lruihao.cn/posts/hello-world/\" title=\"2018-05-28 20:01:01\" target=\"_blank\" rel=\"external nofollow noopener noreferrer\"\u003eHello World\u003ci class=\"fa-solid fa-external-link-alt fa-xs ms-1 text-secondary\" aria-hidden=\"true\"\u003e\u003c/i\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e"},{"title":"Hello World","date_published":"2018-05-28T20:01:01+08:00","date_modified":"2024-07-28T22:39:47+08:00","id":"https://lruihao.cn/posts/hello-world/","url":"https://lruihao.cn/posts/hello-world/","authors":[{"name":"Lruihao","url":"https://github.com/Lruihao","avatar":"https://gravatar.loli.net/avatar/fee47a2f4f2cc71f99a02b0a73ecfee0?s=32&d=mp"}],"tags":["随笔"],"image":"/posts/hello-world/images/lunyu.jpg","summary":" “每天早晨叫醒你的不是鬧鐘,而是你的夢想。”\n我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,\n其實也不重要了,還望披荊斬棘,不改初心。\n不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!\n從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。\n","content_html":"\u003cblockquote\u003e\n\u003cp\u003e“每天早晨叫醒你的不是鬧鐘,而是你的夢想。”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,\u003cbr\u003e\n其實也不重要了,還望披荊斬棘,不改初心。\u003c/p\u003e\n\u003cp\u003e不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!\u003c/p\u003e\n\u003cp\u003e從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。\u003c/p\u003e"}]} ================================================ FILE: friends/index.html ================================================ 友情链接 | 菠菜眾長

友情链接

本页共 - 次阅读

基本信息

  • 网络 ID:Lruihao
  • 头像:https://lruihao.cn/images/avatar.jpg
  • URL:https://lruihao.cn
  • 描述:菠菜眾長 - 「不怕萬人阻擋,只怕自己投降」(或者你对我的看法😉)

友链要求

友情提醒:那些不尊重他人劳动成果,转载不加出处的,或恶意行为的网站,还请你不要来进行交换了。

  1. 原创博客文章至少 10 篇以上,内容健康,无违法违规内容。
  2. 网站创建时间至少 3 个月以上,且长期保持更新。(频率至少一年 1 篇)
  3. 目前仅限个人非商业博客/网站。(商务合作邮件联系)

满足上述基本要求,互换友链请按以下格式在评论区留言:

1
2
3
4
5
6
```yaml
- nickname: <your nickname>
  avatar: <your avatar>
  url: <your site link>
  description: <description of your site>
```

失效链接

公示一个月后删除,如更换域名请及时联系!

微信扫一扫,订阅本博客
================================================ FILE: friends/index.md ================================================ # 友情链接 {{< busuanzi_embed false "本页共 " >}} {.text-center} ## 基本信息 - **网络 ID**:Lruihao - **头像**:https://lruihao.cn/images/avatar.jpg - **URL**:https://lruihao.cn - **描述**:菠菜眾長 - 「不怕萬人阻擋,只怕自己投降」(或者你对我的看法😉) ## 友链要求 > 友情提醒:那些不尊重他人劳动成果,转载不加出处的,或恶意行为的网站,还请你不要来进行交换了。 1. 原创博客文章至少 10 篇以上,内容健康,无违法违规内容。 2. 网站创建时间至少 3 个月以上,且长期保持更新。(频率至少一年 1 篇) 3. 目前仅限个人非商业博客/网站。(商务合作邮件联系) 满足上述基本要求,互换友链请按以下格式在评论区留言: ````markdown ```yaml - nickname: avatar: url: description: ``` ```` ## 失效链接 公示一个月后删除,如更换域名请及时联系! --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/friends/ ================================================ FILE: guestbook/index.html ================================================ 留言 | 菠菜眾長

留言

- 次阅读

Welcome

温馨提示,音乐自动播放,请带好耳机~

From playlist, Powered by mmt-netease.

给博主买杯卡布奇诺~
支付宝支付宝
微信微信
- 次阅读

微信扫一扫,订阅本博客
================================================ FILE: guestbook/index.md ================================================ # 留言 {{< busuanzi_embed false >}} {.text-secondary style="text-align: right; font-size: 80%;margin-top: -0.5rem;"} {{< admonition tip "Welcome" >}} {{< typeit >}} 互联网的广大朋友们,欢迎光临我的小博客!欢迎留言! {{< /typeit >}} {{< /admonition >}} --- 温馨提示,音乐自动播放,请带好耳机~ {.text-center style="font-size: 80%;"} {{< mmt-netease "2280569152" >}} --- {{< reward wechatpay="/images/wechatpay.jpg" alipay="/images/alipay.jpg" comment="给博主买杯卡布奇诺~" mode="fixed" >}} {{< busuanzi_embed >}} --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/guestbook/ ================================================ FILE: guestbook/valine-hacker.css ================================================ /* hack valine comment */ #valine { overflow-y: scroll; margin-block: 0.5rem; .vcount { position: sticky; top: 0; z-index: 1; cursor: pointer; text-align: right; font-size: 1rem; background-color: #fff; [data-theme='dark'] & { background-color: #292a2e; } &::after { content: '来自 Valine 历史评论'; margin-left: 0.5rem; font-size: 50%; color: var(--fi-secondary); } } .vpanel, .vempty, .vat, .vpower { display: none !important; } } @media only screen and (min-width: 681px) { #valine .vcount { background-color: #fafaf8; } } ================================================ FILE: index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

让 Mermaid 图表自动跟随系统深浅色

Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。
不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。

CSS @Layer:构建更高效、更可维护的样式层级

在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 @layer 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法,带你一探究竟。

================================================ FILE: index.xml ================================================ 菠菜眾長https://lruihao.cn/Hugo FixIt 作者,喜欢瞎折腾、造轮子、写东西,分享一些前端开发中的所见、所闻、所思。Hugo 0.161.1 & FixIt v0.4.5zh-CN1024@lruihao.cn (Lruihao)1024@lruihao.cn (Lruihao)本站内容采用 CC BY-NC-SA 4.0 国际许可协议。Mon, 04 May 2026 16:54:23 +0000一个轻量化 Tooltip 组件。https://lruihao.cn/projects/lruihao/cell-tooltip/Fri, 06 Mar 2026 06:58:23 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/cell-tooltip/GitHub<h2 class="heading-element" id="cell-tooltip" data-decreased><span>cell-tooltip</span> <a href="#cell-tooltip" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>一个基于 TypeScript + Vite 的轻量化 Tooltip 组件,交互模型参考 Bootstrap <code>tooltip.js</code>,保留常用能力并尽量减少体积与依赖。</p> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>支持触发方式:<code>hover</code> / <code>focus</code> / <code>click</code> / <code>manual</code></li> <li>支持位置:<code>top</code> / <code>bottom</code> / <code>left</code> / <code>right</code> / <code>auto</code></li> <li>支持延迟配置(<code>show</code> / <code>hide</code>)</li> <li>支持 <code>data-ct-*</code> 属性初始化</li> <li>支持实例方法:<code>show</code> / <code>hide</code> / <code>toggle</code> / <code>update</code> / <code>dispose</code></li> <li>内置箭头与基础样式,无第三方依赖</li> </ul> <h2 class="heading-element" id="本地运行"><span>本地运行</span> <a href="#%e6%9c%ac%e5%9c%b0%e8%bf%90%e8%a1%8c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>pnpm install pnpm dev</code></pre><p>构建库产物:</p> <pre><code>pnpm build</code></pre><p>构建 Demo:</p> <pre><code>pnpm build:demo</code></pre><p>预览 Demo:</p> <pre><code>pnpm preview</code></pre><p><code>build</code> 会输出库产物到 <code>dist/</code>,<code>build:demo</code> 会输出示例站点到 <code>dist-demo/</code>。</p> <h2 class="heading-element" id="快速使用"><span>快速使用</span> <a href="#%e5%bf%ab%e9%80%9f%e4%bd%bf%e7%94%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="1-html"><span>1) HTML</span> <a href="#1-html" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>&lt;button id=&#34;btn&#34; data-ct-title=&#34;Hello tooltip&#34; data-ct-placement=&#34;top&#34; &gt; Hover me &lt;/button&gt;</code></pre><h3 class="heading-element" id="2-ts"><span>2) TS</span> <a href="#2-ts" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>import CellTooltip from &#39;cell-tooltip&#39; const element = document.querySelector&lt;HTMLElement&gt;(&#39;#btn&#39;) if (element) { CellTooltip.getOrCreateInstance(element) } // 批量初始化 Tooltip.initAll(&#39;[data-ct-title]&#39;)</code></pre><h3 class="heading-element" id="3-浏览器直引umd--iife"><span>3) 浏览器直引(UMD / IIFE)</span> <a href="#3-%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9b%b4%e5%bc%95umd--iife" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>&lt;script src=&#34;./dist/cell-tooltip.umd.js&#34;&gt;&lt;/script&gt; &lt;script&gt; CellTooltip.initAll(&#39;[data-ct-title]&#39;) &lt;/script&gt;</code></pre><h2 class="heading-element" id="配置项"><span>配置项</span> <a href="#%e9%85%8d%e7%bd%ae%e9%a1%b9" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>type TooltipPlacement = &#39;top&#39; | &#39;bottom&#39; | &#39;left&#39; | &#39;right&#39; | &#39;auto&#39; type TooltipTrigger = &#39;hover&#39; | &#39;focus&#39; | &#39;click&#39; | &#39;manual&#39; type TooltipTheme = &#39;light&#39; | &#39;dark&#39; | &#39;auto&#39; interface TooltipOptions { title?: string | (() =&gt; string) placement?: TooltipPlacement trigger?: string theme?: TooltipTheme container?: HTMLElement offset?: number html?: boolean delay?: number | { show?: number; hide?: number } }</code></pre><ul> <li><code>title</code>:提示内容;可传字符串或函数</li> <li><code>placement</code>:位置;<code>auto</code> 会按可用空间自动选择</li> <li><code>trigger</code>:触发方式,支持空格组合(例如 <code>&quot;hover focus&quot;</code>)</li> <li><code>theme</code>:主题;支持 <code>light</code> / <code>dark</code> / <code>auto</code>,默认 <code>dark</code></li> <li><code>container</code>:tooltip 挂载容器,默认 <code>document.body</code></li> <li><code>offset</code>:目标元素与 tooltip 的间距(像素)</li> <li><code>html</code>:是否按 HTML 渲染 <code>title</code></li> <li><code>delay</code>:显示/隐藏延迟(毫秒)</li> </ul> <h2 class="heading-element" id="data-属性"><span>data 属性</span> <a href="#data-%e5%b1%9e%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><code>data-ct-title</code></li> <li><code>data-ct-placement</code></li> <li><code>data-ct-trigger</code></li> <li><code>data-ct-theme</code></li> </ul> <p>示例:</p> <pre><code>&lt;button data-ct-title=&#34;Click tooltip&#34; data-ct-trigger=&#34;click&#34; data-ct-placement=&#34;right&#34; data-ct-theme=&#34;light&#34; &gt; Click &lt;/button&gt;</code></pre><h2 class="heading-element" id="实例方法"><span>实例方法</span> <a href="#%e5%ae%9e%e4%be%8b%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>import Tooltip from &#39;cell-tooltip&#39; const tooltip = Tooltip.getOrCreateInstance(element, { title: &#39;Manual tooltip&#39;, trigger: &#39;manual&#39;, }) tooltip.show() tooltip.hide() tooltip.toggle() tooltip.update() tooltip.dispose() // 批量初始化(返回 Tooltip 实例数组) const tooltips = Tooltip.initAll(&#39;.demo-btn[data-ct-title]&#39;)</code></pre><h2 class="heading-element" id="目录"><span>目录</span> <a href="#%e7%9b%ae%e5%bd%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><code>src/tooltip.ts</code>:组件核心实现</li> <li><code>src/index.ts</code>:导出入口</li> <li><code>src/main.ts</code>:示例页面初始化</li> <li><code>src/style.css</code>:演示与 tooltip 样式</li> </ul>A Christmas Easter Egg by JavaScript.https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/Wed, 24 Dec 2025 03:31:47 +0000https://lruihao.cn/projects/hugo-fixit/cmpt-santa-hat/GitHub<!-- markdownlint-disable-file MD033 MD041 --> <h1 align="center">🎄 Santa Hat | FixIt</h1> <div align="center" class="ignore"> <p>一个 JavaScript 实现的圣诞节小彩蛋。</p> 简体中文 | <a href="https://fixit.lruihao.cn/zh-cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=chinese_traditional">繁體中文</a> | <a href="https://raw.githubusercontent.com/hugo-fixit/cmpt-santa-hat/refs/heads/main/README.en.md">English</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=french">Français</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=russian">Русский язык</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=spanish">Español</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=hindi">हिन्दी</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=deutsch">Deutsch</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=korean">한국어</a> | <a href="https://fixit.lruihao.cn/ecosystem/hugo-fixit/cmpt-santa-hat/?lang=japanese">日本語</a> </div> <h2 class="heading-element" id="特性"><span>特性</span> <a href="#%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><img loading="lazy" src='https://github.com/user-attachments/assets/6cf191ca-1455-46ae-a939-6539a2143c4d' alt="santa-hat"></p> <ul> <li>🎅 自动在圣诞节期间(12 月 20 日至 26 日)为网站 Logo 添加圣诞帽装饰</li> <li>🎯 自动检测当前日期,无需手动开关</li> <li>💫 轻量级实现,不影响网站性能</li> </ul> <h2 class="heading-element" id="要求"><span>要求</span> <a href="#%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>FixIt v0.4.0 或更高版本。</li> </ul> <h2 class="heading-element" id="安装组件"><span>安装组件</span> <a href="#%e5%ae%89%e8%a3%85%e7%bb%84%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>安装方式与 <a href="https://fixit.lruihao.cn/zh-cn/documentation/installation/" target="_blank" rel="external nofollow noopener noreferrer">安装主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 相同,有多种安装方式,任选一种即可,这里介绍两种主流方式。</p> <h3 class="heading-element" id="作为-hugo-模块安装"><span>作为 Hugo 模块安装</span> <a href="#%e4%bd%9c%e4%b8%ba-hugo-%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>首先确保你的项目本身是一个 <a href="https://gohugo.io/hugo-modules/use-modules/#initialize-a-new-module" target="_blank" rel="external nofollow noopener noreferrer">Hugo 模块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <p>然后将此主题组件添加到你的 <code>hugo.toml</code> 配置文件中:</p> <pre><code>[module] [[module.imports]] path = &#34;github.com/hugo-fixit/FixIt&#34; [[module.imports]] path = &#34;github.com/hugo-fixit/cmpt-santa-hat&#34;</code></pre><p>在 Hugo 的第一次启动时,它将下载所需的文件。</p> <p>要更新到模块的最新版本,请运行:</p> <pre><code>hugo mod get -u hugo mod tidy</code></pre><h3 class="heading-element" id="作为-git-子模块安装"><span>作为 Git 子模块安装</span> <a href="#%e4%bd%9c%e4%b8%ba-git-%e5%ad%90%e6%a8%a1%e5%9d%97%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>将 <a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和此 git 存储库克隆到你的主题文件夹中,并将其作为网站目录的子模块添加。</p> <pre><code>git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt git submodule add https://github.com/hugo-fixit/cmpt-santa-hat.git themes/cmpt-santa-hat</code></pre><p>接下来编辑项目的 <code>hugo.toml</code> 并将此主题组件添加到你的主题中:</p> <pre><code>theme = [&#34;FixIt&#34;, &#34;cmpt-santa-hat&#34;]</code></pre><h2 class="heading-element" id="配置"><span>配置</span> <a href="#%e9%85%8d%e7%bd%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>为了通过 FixIt 主题在 <code>layouts/_partials/custom.html</code> 文件中开放的 <a href="https://fixit.lruihao.cn/references/blocks/" target="_blank" rel="external nofollow noopener noreferrer">自定义块<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 将 <code>santa-hat.fixit.html</code> 注入到 <code>custom-assets</code> 中,你需要填写以下必要配置:</p> <pre><code>[params] [params.customPartials] # ... other partials assets = [ &#34;inject/santa-hat.fixit.html&#34;, ] # ... other partials</code></pre><h2 class="heading-element" id="样式控制"><span>样式控制</span> <a href="#%e6%a0%b7%e5%bc%8f%e6%8e%a7%e5%88%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>Logo 尺寸推荐:32x32 像素。</li> <li>CSS 变量: <ul> <li><code>--fi-santa-hat-offset</code>:控制圣诞帽相对于 Logo 的平移偏移,默认值 <code>8px 2px</code>。</li> <li><code>--fi-santa-hat-shadow</code>:控制帽子阴影的 RGB 值,默认值 <code>0, 0, 0</code>,暗色模式下会自动切换为 <code>255, 255, 255</code>。</li> </ul> </li> </ul> <!-- ## 参考 - [开发主题组件 | FixIt](https://fixit.lruihao.cn/contributing/components/) - [如何开发 Hugo 主题组件 | FixIt](https://fixit.lruihao.cn/components/dev-component/) -->Command line tool for generating a changelog from git tags and commit historyhttps://lruihao.cn/projects/lruihao/auto-changelog-plus/Sat, 30 Aug 2025 15:40:19 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/auto-changelog-plus/GitHub<h2 class="heading-element" id="auto-changelog-plus" data-decreased><span>auto-changelog-plus</span> <a href="#auto-changelog-plus" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>中文 | <a href="https://raw.githubusercontent.com/Lruihao/auto-changelog-plus/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>从 git 提交历史自动生成 changelog 的命令行工具。</p> <blockquote> <p>基于 <a href="https://github.com/CookPete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto-changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 <a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="external nofollow noopener noreferrer">约定式提交<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 规范。</p> </blockquote> <p><a href="https://www.npmjs.com/package/auto-changelog-plus" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/auto-changelog-plus_7979101328369740159.svg' alt="npm version"></a></p> <h2 class="heading-element" id="-安装"><span>📦 安装</span> <a href="#-%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>npm install -g auto-changelog-plus</code></pre><h2 class="heading-element" id="-用法"><span>🚀 用法</span> <a href="#-%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 git 仓库根目录运行 <code>auto-changelog-plus</code> 或者 <code>acp</code>。工具会在后台运行 <code>git log</code> 来解析提交历史。</p> <pre><code>Usage: auto-changelog-plus [options] Options: -o, --output [file] # output file, default: CHANGELOG.md -c, --config [file] # config file location, default: .auto-changelog -t, --template [template] # specify template to use [compact, keepachangelog, json], default: compact -r, --remote [remote] # specify git remote to use for links, default: origin -p, --package # use version from package.json as latest release -v, --latest-version [version] # use specified version as latest release -u, --unreleased # include section for unreleased changes -l, --commit-limit [count] # number of commits to display per release, default: 3 -b, --backfill-limit [count] # number of commits to backfill empty releases with, default: 3 --commit-url [url] # override url for commits, use {id} for commit id --issue-url [url] # override url for issues, use {id} for issue id --merge-url [url] # override url for merges, use {id} for merge id --compare-url [url] # override url for compares, use {from} and {to} for tags --issue-pattern [regex] # override regex pattern for issues in commit messages --breaking-pattern [regex] # regex pattern for breaking change commits --merge-pattern [regex] # add custom regex pattern for merge commits --commit-pattern [regex] # pattern to include when parsing commits --ignore-commit-pattern [regex] # pattern to ignore when parsing commits --tag-pattern [regex] # override regex pattern for version tags --tag-prefix [prefix] # prefix used in version tags, default: v --starting-version [tag] # specify earliest version to include in changelog --starting-date [yyyy-mm-dd] # specify earliest date to include in changelog --ending-version [tag] # specify latest version to include in changelog --sort-commits [property] # sort commits by property [relevance, date, date-desc, subject, subject-desc], default: relevance --release-summary # display tagged commit message body as release summary --unreleased-only # only output unreleased changes --hide-empty-releases # hide empty releases --hide-credit # hide auto-changelog credit --handlebars-setup [file] # handlebars setup file --append-git-log [string] # string to append to git log command --append-git-tag [string] # string to append to git tag command --prepend # prepend changelog to output file --stdout # output changelog to stdout -V, --version # output the version number -h, --help # output usage information</code></pre><p>以下是一些常见的使用示例:</p> <pre><code># 在当前目录写入日志到 CHANGELOG.md auto-changelog-plus # 使用 keepachangelog 模板写入日志到 HISTORY.md auto-changelog-plus --output HISTORY.md --template keepachangelog # 禁用提交限制,渲染每个发布的所有提交 auto-changelog-plus --commit-limit false</code></pre><blockquote> <p>执行 <code>auto-changelog-plus -h</code> 获取帮助或者参考 <a href="https://github.com/cookpete/auto-changelog" target="_blank" rel="external nofollow noopener noreferrer">auto-changelog<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 文档。</p> </blockquote> <h2 class="heading-element" id="-约定式提交"><span>📝 约定式提交</span> <a href="#-%e7%ba%a6%e5%ae%9a%e5%bc%8f%e6%8f%90%e4%ba%a4" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>基于 <a href="https://www.conventionalcommits.org/zh-hans/v1.0.0/" target="_blank" rel="external nofollow noopener noreferrer">约定式提交<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 规范,支持以下类型的提交:</p> <ul> <li><code>feat:</code> 新功能</li> <li><code>fix:</code> 修复问题</li> <li><code>perf:</code> 性能优化</li> <li><code>refactor:</code> 代码重构</li> <li><code>docs:</code> 文档变更</li> <li><code>test:</code> 测试相关</li> <li><code>style:</code> 代码格式调整</li> <li><code>chore:</code> 构建过程或辅助工具的变动</li> <li><code>build:</code> 构建系统变动</li> <li><code>ci:</code> 持续集成配置变动</li> <li><code>revert:</code> 代码回滚</li> <li>支持 scope:<code>feat(api):</code>, <code>fix(ui):</code> 等</li> <li>支持 emoji:<code>:sparkles: feat:</code>, <code>✨ feat:</code> 等</li> <li>支持 Breaking Changes:<code>feat!:</code>, <code>feat(scope)!:</code>, <code>BREAKING CHANGE:</code> 等格式</li> <li>自动忽略 WIP 提交:<code>wip:</code>, <code>Wip:</code> 等临时提交不会包含在变更日志中</li> </ul> <h2 class="heading-element" id="-自动化使用"><span>⚙️ 自动化使用</span> <a href="#-%e8%87%aa%e5%8a%a8%e5%8c%96%e4%bd%bf%e7%94%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>将 <code>auto-changelog-plus</code> 安装到开发依赖:</p> <pre><code>npm install auto-changelog-plus --save-dev # 或 yarn add auto-changelog-plus --dev # 或 pnpm add -D auto-changelog-plus</code></pre><p>在你的 <code>package.json</code> 的 <code>version</code> 脚本中添加 <code>auto-changelog-plus -p &amp;&amp; git add CHANGELOG.md</code>:</p> <pre><code>{ &#34;name&#34;: &#34;my-awesome-package&#34;, &#34;version&#34;: &#34;1.0.0&#34;, &#34;devDependencies&#34;: { &#34;auto-changelog-plus&#34;: &#34;*&#34; }, &#34;scripts&#34;: { &#34;version&#34;: &#34;auto-changelog-plus -p &amp;&amp; git add CHANGELOG.md&#34; } }</code></pre><p>使用 <code>-p</code> 或 <code>--package</code> 将 <code>package.json</code> 中的 <code>version</code> 用作最新发布,这样以前发布和现在之间的所有提交都成为该发布的一部分。基本上任何通常被解析为 <code>Unreleased</code> 的内容现在都会出现在 <code>package.json</code> 的 <code>version</code> 下。</p> <p>现在每次运行 <a href="https://docs.npmjs.com/cli/version" target="_blank" rel="external nofollow noopener noreferrer">npm version<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 时,changelog 将自动更新并成为版本提交的一部分。</p> <p>在不是 NPM 包的项目中,可以使用 <code>npx</code> 或 <code>pnpx</code> 来运行 <code>auto-changelog-plus</code>,例如:</p> <pre><code>npx auto-changelog-plus # 或 pnpx auto-changelog-plus</code></pre><p>在 GitHub Actions 中,你可以使用以下工作流来自动生成发布说明:</p> <pre><code>name: Release for new tag on: push: tags: - &#39;v*.*.*&#39; workflow_dispatch: jobs: release: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v5 with: fetch-depth: 0 # Fetch all history for generating release notes - name: Setup Node.js uses: actions/setup-node@v5 with: node-version: &#39;lts/*&#39; - name: Generate release notes run: | npx auto-changelog-plus --starting-version ${{ github.ref_name }} sed -i &#39;1,4d&#39; CHANGELOG.md - name: GitHub Release uses: softprops/action-gh-release@v2 with: draft: true body_path: CHANGELOG.md</code></pre><h2 class="heading-element" id="-和-auto-changelog-的区别"><span>🔄 和 auto-changelog 的区别</span> <a href="#-%e5%92%8c-auto-changelog-%e7%9a%84%e5%8c%ba%e5%88%ab" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><code>auto-changelog-plus</code> 是 <code>auto-changelog</code> 的上层封装,完全兼容 <code>auto-changelog</code> 的所有用法和配置。</p> <p>主要改进:</p> <ul> <li><strong>优化默认模板</strong>:更好地适配 <strong>约定式提交</strong> 规范</li> <li><strong>调整默认配置</strong>:提供更合理的开箱即用体验</li> <li><strong>扩展模板功能</strong>:提供额外的模板辅助函数</li> </ul> <p>如果你正在使用 <code>auto-changelog</code>,可以直接替换为 <code>auto-changelog-plus</code>,无需修改任何配置。</p> <h2 class="heading-element" id="-许可证"><span>📄 许可证</span> <a href="#-%e8%ae%b8%e5%8f%af%e8%af%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>MIT</p>让 Mermaid 图表自动跟随系统深浅色https://lruihao.cn/posts/mermaid-theming/Sat, 16 Aug 2025 12:37:49 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/mermaid-theming/JavaScriptCSS<img src="https://lruihao.cn/posts/mermaid-theming/featured-image.webp" alt="featured image" referrerpolicy="no-referrer"><p>Mermaid 是目前最流行的「文本即图表」渲染库,但它对「系统深浅色自动切换」的支持一直暧昧不明。官方 Roadmap 里偶有提及,却始终没有一个简单、稳定、文档化的 API。<br> 不过社区里已有大量站点(mermaid.live、Obsidian、Notion-like 产品等)实现了丝滑的 Light/Dark 自适应。本文把目前能落地的三条路线一次性梳理出来,并给出最小可运行示例,方便你按需取用。</p> <h2 class="heading-element" id="背景mermaid-主题机制与痛点"><span>背景:Mermaid 主题机制与痛点</span> <a href="#%e8%83%8c%e6%99%afmermaid-%e4%b8%bb%e9%a2%98%e6%9c%ba%e5%88%b6%e4%b8%8e%e7%97%9b%e7%82%b9" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><pre><code>flowchart LR A([&#34;Start&#34;]) A --&gt; B{&#34;Decision&#34;} B --&gt;|Yes| C[&#34;Option A&#34;] B --&gt;|No| D[&#34;Option B&#34;]</code></pre><p>Mermaid 在初始化时通过 <code>theme</code> 字段选定配色,例如:</p> <pre><code>mermaid.initialize({ theme: &#39;dark&#39; });</code></pre><p>但这条配置 <strong>只在首次渲染时生效</strong>。当用户在操作系统层面切到 Light/Dark,或者网页本身提供手动开关时,Mermaid 并不会自动重绘。这就导致:</p> <ul> <li>暗黑系统 + 浅色图表 ⇒ 刺眼</li> <li>浅色系统 + 暗黑图表 ⇒ 同样刺眼</li> </ul> <p>社区 Issue <a href="https://github.com/mermaid-js/mermaid/issues/2644" target="_blank" rel="external nofollow noopener noreferrer">#2644<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 早在 2022 年就提出希望官方支持 <code>prefers-color-scheme</code>,但至今(2025-08)仍未合入主干。</p> <p>顺便提一下,主题的切换一般都有两种主流方式:</p> <ol> <li>利用 <code>prefers-color-scheme</code> 感知系统级别主题变化,<code>matchMedia('(prefers-color-scheme: dark)')</code> 的 <code>change</code> 事件。</li> <li>通过 <code>dark</code> class 手动切换,这种方式通常会在 html/body 上设置一个 <code>class</code> 或者 <code>data-theme=&quot;dark&quot;</code> 这样。</li> </ol> <h2 class="heading-element" id="方案-1-reinitialize"><span>方案 1️⃣ Reinitialize</span> <a href="#%e6%96%b9%e6%a1%88-1-reinitialize" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>切换主题,重新 <code>initialize</code> + 重绘,这是目前来看大多数人的做法。</p> <p>思路:</p> <ol> <li>备份原始的 Mermaid code</li> <li>设置 <code>startOnLoad: false</code> 避免 Mermaid 自动渲染,然后使用 <code>mermaid.initialize({ theme: theme })</code> + <code>mermaid.run()</code> 完成初始化。</li> <li>重新渲染时移除 <code>data-processed</code>,替换 <code>.mermaid</code> 的内容为原始 Mermaid code,使用 <code>mermaid.initialize({ theme: newTheme })</code> + <code>mermaid.run()</code> 重新渲染</li> </ol> <p>这份做法在 Issue <a href="https://github.com/mermaid-js/mermaid/issues/1945#issuecomment-1661264708" target="_blank" rel="external nofollow noopener noreferrer">#1945<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 里有完整代码,下面给出精简版:</p> <p>优点是:</p> <ul> <li>利用现有官方 API</li> </ul> <p>缺点是:</p> <ul> <li>每次切换都需要重新渲染,大图会闪一下</li> <li>如果页面里图表很多,性能损耗不可忽视</li> <li>还有异步处理带来的一系列问题</li> </ul> <h2 class="heading-element" id="方案-2-css-滤镜"><span>方案 2️⃣ CSS 滤镜</span> <a href="#%e6%96%b9%e6%a1%88-2-css-%e6%bb%a4%e9%95%9c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>作为支持 <code>prefers-color-scheme</code> 和手动切换的一种简单的解决方案,可以使用 CSS 反转滤镜(<code>invert</code>、<code>hue-rotate</code> 等)来实现。</p> <p>例如:</p> <pre><code>[data-theme=&#39;dark&#39;] .mermaid { filter: invert(0.88); } @media (prefers-color-scheme: dark) { :root:not([data-theme=&#39;light&#39;]) .mermaid { filter: invert(0.88); } }</code></pre><p>这条技巧是我在 Issue <a href="https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-2313201033" target="_blank" rel="external nofollow noopener noreferrer">#2644<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 中看到的。</p> <p>优点是:</p> <ul> <li>一行 CSS,无 JS</li> <li>不重新渲染,零延迟</li> </ul> <p>缺点是:</p> <ul> <li>只是「反色」,并非官方暗黑主题</li> <li>对于红色、绿色等语义色会完全失真</li> <li>如果背景不是纯黑纯白,观感会很奇怪</li> </ul> <p>由于太过简单,效果也很粗糙,适合做 Demo 或内部工具,不建议面向终端用户。</p> <h2 class="heading-element" id="方案-3-配置热替换"><span>方案 3️⃣ 配置热替换</span> <a href="#%e6%96%b9%e6%a1%88-3-%e9%85%8d%e7%bd%ae%e7%83%ad%e6%9b%bf%e6%8d%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>mermaid.live 站点能在用户切主题时瞬间完成切换,且颜色完全与官方暗黑主题对齐。从 <a href="https://github.com/mermaid-js/mermaid-live-editor" target="_blank" rel="external nofollow noopener noreferrer">源码<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 和 DevTools 推测,它大概做了三件事:</p> <ol> <li>自己维护一份 <code>themeCSS</code> 字符串(而非仅用名字 <code>'dark'</code>)</li> <li>在 <code>prefers-color-scheme</code> 变化时,直接把新的 CSS 注入到 <code>&lt;svg&gt;</code> 里的 <code>&lt;style&gt;</code> 节点</li> <li>通过 <code>mermaid.render('id', code)</code> 拿到 SVG string 后,用正则替换掉旧 <code>&lt;style&gt;</code>,再 <code>DOMParser</code> 塞回页面</li> </ol> <p>Issue <a href="https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289" target="_blank" rel="external nofollow noopener noreferrer">#2644<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 中有提到,在 mermaid.live 中,目前是根据配色方案在配置中切换主题。</p> <p>优点:</p> <ul> <li>无闪烁</li> <li>完全复用官方配色</li> </ul> <p>缺点:</p> <ul> <li>需要内部维护主题 CSS,Mermaid 每升级一次都要同步</li> <li>实现细节依赖私有 API,官方一旦改动就会崩</li> </ul> <p>如果你极度追求体验,可以照着源码抄一份,但要做好长期维护的心理准备。</p> <p><a href="https://github.com/mermaid-js/mermaid/issues/2644#issuecomment-1029648289" target="_blank" rel="external nofollow noopener noreferrer">#2644<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 中提到,在 mermaid.live 中,目前正在根据配色方案在配置中切换主题。这种方案暂时未找到更多的细节披露。我又懒得去深扒 mermaid.live 的实现细节。</p> <h2 class="heading-element" id="方案-4-reinitialize--css-结合"><span>方案 4️⃣ Reinitialize + CSS 结合</span> <a href="#%e6%96%b9%e6%a1%88-4-reinitialize--css-%e7%bb%93%e5%90%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在我的实践中,<a href="https://github.com/hugo-fixit/FixIt" target="_blank" rel="external nofollow noopener noreferrer">FixIt 主题<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 是通过 <code>data-theme</code> 的方式手动切换网站主题的,我一开始走的思路和方案 1️⃣总体一致,为了处理这个方案的缺点,我多次迭代,有了最终的版本:</p> <p>首先通过 <code>type=module</code> 引入 Mermaid:</p> <pre><code>import mermaid from &#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.js&#39;; import zenuml from &#39;https://cdn.jsdelivr.net/npm/@mermaid-js/mermaid-zenuml/dist/mermaid-zenuml.esm.min.mjs&#39;; await mermaid.registerExternalDiagrams([zenuml]); mermaid.startOnLoad = false; window.mermaid = mermaid;</code></pre><p>然后在主题的切换逻辑中处理:</p> <pre><code>initMermaid() { if (!this.config.mermaid) return; const themes = this.config.mermaid.themes ?? [&#39;default&#39;, &#39;dark&#39;]; let processing = false; let delayTask = null; const loadMermaid = async () =&gt; { processing = true; // https://mermaid.js.org/config/schema-docs/config.html window.mermaid.initialize({ startOnLoad: false, darkMode: this.isDark, theme: this.isDark ? themes[1] : themes[0], securityLevel: this.config.mermaid.securityLevel, look: this.config.mermaid.look, fontFamily: this.config.mermaid.fontFamily, altFontFamily: this.config.mermaid.fontFamily }); await window.mermaid.run({ querySelector: &#39;.mermaid&#39;, suppressErrors: true, }); processing = false; if (delayTask &amp;&amp; typeof delayTask === &#39;function&#39;) { delayTask(); delayTask = null; // console.log(&#39;Delayed task executed&#39;); } }; const reloadMermaid = async () =&gt; { await this.util.forEach(document.querySelectorAll(&#39;.mermaid[data-processed]&#39;), (el) =&gt; { el.removeAttribute(&#39;data-processed&#39;); el.parentElement.replaceChild(el.nextElementSibling.content.cloneNode(true), el); }); await loadMermaid(); }; const waitForMermaid = () =&gt; { return new Promise((resolve) =&gt; { const timer = setInterval(() =&gt; { if (window.mermaid &amp;&amp; window.mermaid.initialize) { clearInterval(timer); resolve(); } }, 100); }); }; waitForMermaid().then(() =&gt; { loadMermaid(); this.switchThemeEventSet.add(() =&gt; { if (processing) { console.warn(&#39;Mermaid is still processing, delaying the reload.&#39;); delayTask = reloadMermaid; return; } // console.log(&#39;reload immediately&#39;); reloadMermaid().catch(console.error); }); this.beforeprintEventSet.add(() =&gt; { // Optionally set theme to &#39;neutral&#39; for printing if required }); }) }</code></pre><p>为了缓解闪屏问题,利用 CSS 增加一个 Loading 效果,过度一下。</p> <pre><code>.mermaid { position: relative; overflow: hidden !important; &amp;[data-processed] { text-align: center; } &amp;:not([data-processed])::before { content: &#39;&#39;; position: absolute; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(0.5rem); background-position: center; background-repeat: no-repeat; background-image: var(#{$rootPrefix}loading-img); background-size: 60px; } svg { max-width: 100%; height: auto; } }</code></pre><p>说实话,虽然勉强达到了目的,这里的 <code>delayTask</code> 和 <code>waitForMermaid()</code> 算得上妥妥的 Dirty Hack。也属实是无奈之举。</p> <hr class="awesome-hr"> <p>睡觉前我灵光乍现,为了避免每次切换主题时都要重新渲染 Mermaid 图表,我尝试一开始直接把 Mermaid 的 Light 和 Dark 主题的两个图都渲染了,然后由 <code>data-theme</code> 控制显示哪个图表。</p> <p>尝试后发现 Mermaid 在渲染图时,如果这个元素是 <code>display: none;</code> 则会报错。</p> <p>于是,我改成初始化时只渲染 Light/Dark SVG,等到主题切换时才渲染 Dark/Light SVG,并隐藏另一个 SVG。</p> <p>这样同一个图只需要渲染两次,后续多次主题切换,就能够通过 CSS 非常丝滑的控制切换了,<a href="https://lruihao.github.io/html-demo/mermaid.html" target="_blank" rel="external nofollow noopener noreferrer">狠狠戳这里查看效果<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html lang=&#34;en&#34;&gt; &lt;head&gt; &lt;meta charset=&#34;UTF-8&#34;&gt; &lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34;&gt; &lt;title&gt;Mermaid Light/Dark Mode switching&lt;/title&gt; &lt;style&gt; .diagrams-container { display: flex; justify-content: space-evenly; } .mermaid-container { .mermaid-dark { display: none; } [data-theme=&#34;dark&#34;] &amp; { .mermaid { display: none; } .mermaid-dark { display: block; } } } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;script&gt; function toggleTheme() { const currentTheme = document.body.dataset.theme; const newTheme = currentTheme === &#39;dark&#39; ? &#39;default&#39; : &#39;dark&#39;; document.body.dataset.theme = newTheme; } &lt;/script&gt; &lt;button id=&#34;toggler&#34;&gt;切换主题&lt;/button&gt; &lt;div class=&#34;diagrams-container&#34;&gt; &lt;div class=&#34;mermaid-container&#34;&gt; &lt;pre class=&#34;mermaid&#34;&gt;graph TD; A[开始] --&gt; B{是否完成?}; B -- 是 --&gt; C[结束]; B -- 否 --&gt; D[继续]; D --&gt; B; &lt;/pre&gt; &lt;pre class=&#34;mermaid-dark&#34;&gt;graph TD; A[开始] --&gt; B{是否完成?}; B -- 是 --&gt; C[结束]; B -- 否 --&gt; D[继续]; D --&gt; B; &lt;/pre&gt; &lt;/div&gt; &lt;/div&gt; &lt;script type=&#34;module&#34;&gt; import mermaid from &#39;https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs&#39;; async function loadMermaid(theme) { const isDark = theme === &#39;dark&#39;; const querySelector = isDark ? &#39;.mermaid-dark&#39; : &#39;.mermaid&#39;; mermaid.initialize({ startOnLoad: false, darkMode: isDark, theme }); // Mermaid run 函数内部会跳过 data-processed 的元素,所以这样不会重复渲染 await mermaid.run({ querySelector }); } await loadMermaid(&#39;default&#39;) document.getElementById(&#39;toggler&#39;).addEventListener(&#39;click&#39;, () =&gt; { const currentTheme = document.body.dataset.theme || &#39;default&#39;; const newTheme = currentTheme === &#39;dark&#39; ? &#39;default&#39; : &#39;dark&#39;; document.body.dataset.theme = newTheme; loadMermaid(newTheme); }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt;</code></pre><h2 class="heading-element" id="小结与选型建议"><span>小结与选型建议</span> <a href="#%e5%b0%8f%e7%bb%93%e4%b8%8e%e9%80%89%e5%9e%8b%e5%bb%ba%e8%ae%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>毋庸置疑,想要完美的体验,<strong>方案 3️⃣</strong> 是最优选择, <strong>方案 4️⃣</strong> 作为方案 1️⃣ 的升级版,整体体验也相对较好。</p> <table> <thead> <tr> <th>方案</th> <th>实现成本</th> <th>体验</th> <th>是否官方可维护</th> </tr> </thead> <tbody> <tr> <td>Reinitialize</td> <td>低</td> <td>中等(闪屏)</td> <td>✅</td> </tr> <tr> <td>CSS invert</td> <td>极低</td> <td>差</td> <td>✅</td> </tr> <tr> <td>mermaid.live 热替换</td> <td>高</td> <td>极佳</td> <td>❌</td> </tr> <tr> <td>Reinitialize + CSS</td> <td>中</td> <td>较好</td> <td>✅</td> </tr> </tbody> </table> <ul> <li><strong>内部文档 / 博客 / 小工具</strong> ⇒ 方案 4️⃣</li> <li><strong>赶时间的 MVP</strong> ⇒ 方案 2️⃣</li> <li><strong>面向 C 端、对体验极端敏感</strong> ⇒ 方案 3️⃣,但要准备长期跟进</li> </ul>黑盒出关・三把钥匙定江湖https://lruihao.cn/posts/wc-01-prologue/Tue, 05 Aug 2025 11:31:52 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/wc-01-prologue/JavaScriptHTML<img src="https://lruihao.cn/posts/wc-01-prologue/featured-image.webp" alt="featured image" referrerpolicy="no-referrer"><p>江湖传言,西土浏览器界有隐世高人,名曰“原生老祖”。老祖膝下三徒,各执一柄钥匙,开得了黑盒,锁得住乾坤。今日大话,诸位英雄且把耳洞放大,听我一一道来!</p> <h2 class="heading-element" id="第一折黑盒现世"><span>第一折・黑盒现世</span> <a href="#%e7%ac%ac%e4%b8%80%e6%8a%98%e9%bb%91%e7%9b%92%e7%8e%b0%e4%b8%96" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>昔日,React 少侠仗虚拟 DOM 之剑,Vue 剑仙携响应式绫罗,双雄争霸,血溅前端。</p> <p>忽一日,电闪雷鸣,Chrome 山、Firefox 谷、Safari 崖三地同时金光乍现——一只乌漆嘛黑的小盒破空而出,盒上无门无派,只刻八字:</p> <blockquote class="blockquote-center"><p><strong>不拜山头,自成一派。</strong></p> </blockquote> <p>盒盖一开,三股真气冲天而起,惊得 React 剑锋一抖,Vue 绫罗乱颤。众修士齐呼:</p> <p>“此乃何物?”</p> <p>盒中悠悠传出一声:</p> <p>“Web Components——浏览器亲儿子,江湖诨号:黑盒扫地僧。”</p> <hr> <h2 class="heading-element" id="第二折三把钥匙镇山门"><span>第二折・三把钥匙镇山门</span> <a href="#%e7%ac%ac%e4%ba%8c%e6%8a%98%e4%b8%89%e6%8a%8a%e9%92%a5%e5%8c%99%e9%95%87%e5%b1%b1%e9%97%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="铸兵符custom-elements"><span>铸兵符・Custom Elements</span> <a href="#%e9%93%b8%e5%85%b5%e7%ac%a6custom-elements" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>凡得此符者,可铸自家神兵。</p> <pre><code>&lt;my-dog food=&#34;hotpot&#34; mood=&#34;happy&#34;&gt;&lt;/my-dog&gt;</code></pre><p>今日起,标签随你姓,语义随你编,浏览器照单全收,不查户口。</p> <h3 class="heading-element" id="影分身shadow-dom"><span>影分身・Shadow DOM</span> <a href="#%e5%bd%b1%e5%88%86%e8%ba%abshadow-dom" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>此术一开,样式、DOM、事件皆入黑屋,外头 CSS 千军万马,休想踏进半步。</p> <blockquote> <p>“兄弟,你的 <code>!important</code> 呢?”<br> “抱歉,进了影分身,天王老子也得排队。”</p> </blockquote> <h3 class="heading-element" id="袖里乾坤html-templates--slots"><span>袖里乾坤・HTML Templates &amp; Slots</span> <a href="#%e8%a2%96%e9%87%8c%e4%b9%be%e5%9d%a4html-templates--slots" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>袖中一抖,模板千军万马;插槽轻点,内容各就各位。</p> <p>无需编译,无需打包,一颗 <code>&lt;template&gt;</code> 漂洋过海,落地即插即用。</p> <blockquote> <p>这是真正意义上的“一次编写,到处运行”——比 Java 当年喊的口号还真。</p> </blockquote> <hr> <h2 class="heading-element" id="第三折风云再起"><span>第三折・风云再起</span> <a href="#%e7%ac%ac%e4%b8%89%e6%8a%98%e9%a3%8e%e4%ba%91%e5%86%8d%e8%b5%b7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>黑盒既出,江湖格局瞬变:</p> <ul> <li><strong>微前端</strong>:Vue2、Vue3、React18、Angular 同屏共舞,互不打脸。</li> <li><strong>设计系统</strong>:按钮、输入框、LOGO 化身“原子暗器”,任何门派伸手即取。</li> <li><strong>长尾奇袭</strong>:Chrome 插件、VS Code 插件、微信小程序、低代码山寨,皆呼“真香”。</li> <li><strong>长寿秘籍</strong>:框架蜜月三年,黑盒随浏览器升级十年,npm 弃坑它不弃。</li> </ul> <hr> <h2 class="heading-element" id="第四折范式转移浏览器登堂入室"><span>第四折・范式转移・浏览器登堂入室</span> <a href="#%e7%ac%ac%e5%9b%9b%e6%8a%98%e8%8c%83%e5%bc%8f%e8%bd%ac%e7%a7%bb%e6%b5%8f%e8%a7%88%e5%99%a8%e7%99%bb%e5%a0%82%e5%85%a5%e5%ae%a4" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>当日头西斜,江湖忽然风起。众侠回头一看,浏览器老馆主身披龙袍、脚踏赤霄,一步跨上金銮殿。</p> <h3 class="heading-element" id="旧朝遗诏从虚拟机到原生执政"><span>旧朝遗诏:从“虚拟机”到“原生执政”</span> <a href="#%e6%97%a7%e6%9c%9d%e9%81%97%e8%af%8f%e4%bb%8e%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%88%b0%e5%8e%9f%e7%94%9f%e6%89%a7%e6%94%bf" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>过去二十年,前端史是一部“夺权史”:</p> <ul> <li>jQuery 夺的是 DOM 的刀;</li> <li>Angular 夺的是模块的印;</li> <li>React 夺的是渲染的剑;</li> <li>Vue 夺的是状态的符。</li> </ul> <p>四把大印加身,浏览器反成“空壳天子”。</p> <p>而今,老馆主一声令下:“朕即框架,诸卿退班!”</p> <h3 class="heading-element" id="三权分立新标准下的江湖秩序"><span>三权分立:新标准下的江湖秩序</span> <a href="#%e4%b8%89%e6%9d%83%e5%88%86%e7%ab%8b%e6%96%b0%e6%a0%87%e5%87%86%e4%b8%8b%e7%9a%84%e6%b1%9f%e6%b9%96%e7%a7%a9%e5%ba%8f" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><table> <thead> <tr> <th>权柄</th> <th>归属</th> <th>职责</th> <th>口号</th> </tr> </thead> <tbody> <tr> <td><strong>立法权</strong></td> <td>WHATWG/W3C</td> <td>写圣旨(HTML、CSS、DOM 标准)</td> <td>“凡入典章,万世不易。”</td> </tr> <tr> <td><strong>执法权</strong></td> <td>浏览器内核</td> <td>掌御林军(渲染管线、沙箱、安全)</td> <td>“有朕一日,天下无刀兵。”</td> </tr> <tr> <td><strong>行政权</strong></td> <td>开发者 &amp; 工具链</td> <td>管民生(DX、脚手架、调试器)</td> <td>“百姓只用敲锣,不必造炮。”</td> </tr> </tbody> </table> <p>Web Components 正是老馆主钦点的 <strong>“锦衣卫”</strong>。</p> <h3 class="heading-element" id="去框架化的三重暗涌"><span>去框架化的三重暗涌</span> <a href="#%e5%8e%bb%e6%a1%86%e6%9e%b6%e5%8c%96%e7%9a%84%e4%b8%89%e9%87%8d%e6%9a%97%e6%b6%8c" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li> <p><strong>编译终点迁移</strong></p> <p>昨日:Babel/Vite → React/Vue 运行时;</p> <p>今日:Babel/Vite → Web Components 原生指令。</p> <p>框架退居“DX 大臣”,不再染指最终字节码。</p> </li> <li> <p><strong>生态颗粒度下沉</strong></p> <p>UI 库不再打包成“全家桶”,而是 CDN 单文件组件:</p> <pre><code>https://unpkg.com/@ui/button.js</code></pre><p>按需即取,HTTP 缓存即版本管理,npm install 沦为可选项。</p> </li> <li> <p><strong>生命周期归一</strong></p> <p>React 的 <code>useEffect</code>、Vue 的 <code>onMounted</code>、Svelte 的 <code>onMount</code>,</p> <p>最终都得翻译成同一套浏览器生命周期:</p> <p><code>connectedCallback</code>、<code>disconnectedCallback</code>、<code>attributeChangedCallback</code>。</p> <p>框架语法糖越甜,底层 API 越收敛,直至“糖衣”可有可无。</p> </li> </ol> <h3 class="heading-element" id="未来图景十年后的登基大典"><span>未来图景:十年后的登基大典</span> <a href="#%e6%9c%aa%e6%9d%a5%e5%9b%be%e6%99%af%e5%8d%81%e5%b9%b4%e5%90%8e%e7%9a%84%e7%99%bb%e5%9f%ba%e5%a4%a7%e5%85%b8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li><strong>2027</strong>:浏览器内置 signals 提案落地,状态管理回归原生;</li> <li><strong>2029</strong>:CSS <code>@scope</code> + <code>@state</code> 双剑合璧,Shadow DOM 自带响应式;</li> <li><strong>2031</strong>:HTTP/4 多路复用 + Import Map 2.0,让“一行 <code>&lt;script type=importmap&gt;</code> 即 CDN 全图”成为标配。</li> </ul> <p>届时,开发者只需写:</p> <pre><code>&lt;my-app&gt;&lt;/my-app&gt; &lt;script type=&#34;module&#34; src=&#34;app.js&#34;&gt;&lt;/script&gt;</code></pre><p>框架?</p> <p>“哦,那是旧朝遗老,偶尔进宫讲史罢了。”</p> <blockquote> <p>老馆主抚须长笑:<br> “昔日你们借我地基起高楼,今日我把高楼收归国有。</p> <p>范式逆流,不是革命,是回家。”</p> </blockquote> <hr> <h2 class="heading-element" id="尾声血雨腥风"><span>尾声・血雨腥风</span> <a href="#%e5%b0%be%e5%a3%b0%e8%a1%80%e9%9b%a8%e8%85%a5%e9%a3%8e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><blockquote> <p>“老衲不挑框架,不拒工具,但有一语相赠:<br> 十年之后,你迁移的是框架,还是我?”</p> </blockquote> <p>江湖血雨腥风,黑盒已开。</p> <p>要么守着旧山门,十年后再为迁移埋单;</p> <p>要么此刻随扫地僧下山,让代码像 HTML 一样长青。</p> <p><strong>下回分解</strong>:</p> <p>“5 分钟,一指定乾坤——纯原生撸一只可复用计数器,再扔进 React、Vue、Svelte 乱炖!”</p> <hr> <div class="alert alert-note"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1116 0A8 8 0 010 8zm8-6.5a6.5 6.5.0 100 13 6.5 6.5.0 000-13zM6.5 7.75A.75.75.0 017.25 7h1a.75.75.0 01.75.75v2.75h.25a.75.75.0 010 1.5h-2a.75.75.0 010-1.5h.25v-2h-.25a.75.75.0 01-.75-.75zM8 6a1 1 0 110-2 1 1 0 010 2z"/></svg>注意</p><p>哈哈哈哈哈哈哈,以抖机灵的形式简单聊了一下 Web Components 的发展历程和未来趋势。</p> <p>我对 Web Components 充满了浓厚的兴趣,决定花点时间研究研究。<br> 剩余的内容在 <a href="https://lruihao.cn/collections/web-components/">Web Components 系列文章</a> 将会持续更新,敬请期待!</p></div>Code Playgroundhttps://lruihao.cn/posts/code-playground/Mon, 04 Aug 2025 11:37:24 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/code-playground/Grocery<p>以下是常见的在线代码演示和开发环境服务,适合不同场景使用:</p> <table> <thead> <tr> <th>名称</th> <th>特点与适用场景</th> <th>网址</th> </tr> </thead> <tbody> <tr> <td><strong>CodeSandbox</strong></td> <td>支持前后端全栈开发,内置 Docker,支持 React、Vue、Node、Python 等,适合复杂项目</td> <td><a href="https://codesandbox.io" target="_blank" rel="external nofollow noopener noreferrer">https://codesandbox.io<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>CodePen</strong></td> <td>专注于前端小效果演示,社区活跃,适合分享和展示 HTML/CSS/JS 片段</td> <td><a href="https://codepen.io" target="_blank" rel="external nofollow noopener noreferrer">https://codepen.io<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>JSFiddle</strong></td> <td>轻量级前端代码片段运行环境,适合快速测试和分享小 demo</td> <td><a href="https://jsfiddle.net" target="_blank" rel="external nofollow noopener noreferrer">https://jsfiddle.net<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>JS Bin</strong></td> <td>类似 JSFiddle,支持实时协作和分享,适合调试和教学</td> <td><a href="https://jsbin.com" target="_blank" rel="external nofollow noopener noreferrer">https://jsbin.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>Playcode.io</strong></td> <td>无需登录即可运行 JS/TS,界面类似本地 IDE,适合快速原型开发</td> <td><a href="https://playcode.io" target="_blank" rel="external nofollow noopener noreferrer">https://playcode.io<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>Replit</strong></td> <td>支持多语言(如 Python、Java、C++),适合教育用途和全栈开发</td> <td><a href="https://replit.com" target="_blank" rel="external nofollow noopener noreferrer">https://replit.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>StackBlitz</strong></td> <td>基于浏览器的全栈 IDE,支持 Node、React、Angular 等框架,自动部署到 Vercel,适合快速原型和教程</td> <td><a href="https://stackblitz.com" target="_blank" rel="external nofollow noopener noreferrer">https://stackblitz.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>Gitpod</strong></td> <td>基于 VS Code 的云端 IDE,适合 GitHub 项目快速启动和协作</td> <td><a href="https://gitpod.io" target="_blank" rel="external nofollow noopener noreferrer">https://gitpod.io<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> <tr> <td><strong>码上掘金</strong></td> <td>国内版轻量 Playground,支持 React、Vue 等框架,适合中文用户</td> <td><a href="https://code.juejin.cn" target="_blank" rel="external nofollow noopener noreferrer">https://code.juejin.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></td> </tr> </tbody> </table>A custom web component that embeds caniuse.com browser compatibility data for a specific feature.https://lruihao.cn/projects/lruihao/caniuse-embed-element/Tue, 22 Jul 2025 03:40:45 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/caniuse-embed-element/GitHub<h2 class="heading-element" id="caniuse-embed-元素" data-decreased><span><code>&lt;caniuse-embed&gt;</code> 元素</span> <a href="#caniuse-embed-%e5%85%83%e7%b4%a0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://www.npmjs.com/package/@cell-x/caniuse-embed-element" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_12896476513186770746.svg' alt="npm version"></a> <a href="https://github.com/Lruihao/caniuse-embed-element/blob/main/LICENSE" target="_blank" rel="external nofollow noopener noreferrer"><img loading="lazy" src='https://lruihao.cn/images/remote/caniuse-embed-element_10890580896062364980.svg' alt="License"></a></p> <p><a href="https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./README.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> | 简体中文</p> <p>一个轻量级、可定制的 Web 组件,用于嵌入 <a href="https://caniuse.com" target="_blank" rel="external nofollow noopener noreferrer">caniuse.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 的特定 Web 功能的浏览器兼容性数据。使用 <a href="https://lit.dev/" target="_blank" rel="external nofollow noopener noreferrer">Lit<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 构建,设计为可无缝集成到任何 Web 项目中。</p> <p><a href="https://caniuse-el.lruihao.cn" target="_blank" rel="external nofollow noopener noreferrer">🌟 <strong>在线演示</strong><i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p><img loading="lazy" src='https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/caniuse.webp' alt="caniuse 示例"></p> <p><img loading="lazy" src='https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./preview/baseline.png' alt="baseline 示例"></p> <h2 class="heading-element" id="-特性"><span>✨ 特性</span> <a href="#-%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>🎯 <strong>轻松集成</strong>:即插即用的 Web 组件,适用于任何框架或原生 HTML</li> <li>🎨 <strong>主题支持</strong>:自动、浅色和深色主题,适应您的设计</li> <li>📱 <strong>响应式</strong>:根据内容自动调整高度</li> <li>⚡ <strong>轻量级</strong>:使用 Lit 构建,最小化包体积</li> <li>🛠️ <strong>可定制</strong>:配置数据源、时间范围和外观</li> <li>🔒 <strong>类型安全</strong>:完整的 TypeScript 支持和全面的类型定义</li> </ul> <h2 class="heading-element" id="-快速开始"><span>🚀 快速开始</span> <a href="#-%e5%bf%ab%e9%80%9f%e5%bc%80%e5%a7%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="cdn推荐"><span>CDN(推荐)</span> <a href="#cdn%e6%8e%a8%e8%8d%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>在您的 HTML 中添加脚本标签:</p> <pre><code>&lt;script src=&#34;https://unpkg.com/@cell-x/caniuse-embed-element/dist/caniuse-embed-element.iife.js&#34;&gt;&lt;/script&gt;</code></pre><p>然后使用组件:</p> <pre><code>&lt;caniuse-embed feature=&#34;css-grid&#34;&gt;&lt;/caniuse-embed&gt;</code></pre><h3 class="heading-element" id="npm-安装"><span>NPM 安装</span> <a href="#npm-%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>npm install @cell-x/caniuse-embed-element</code></pre><pre><code>import &#39;@cell-x/caniuse-embed-element&#39;</code></pre><h2 class="heading-element" id="-使用示例"><span>📖 使用示例</span> <a href="#-%e4%bd%bf%e7%94%a8%e7%a4%ba%e4%be%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="基本用法"><span>基本用法</span> <a href="#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>&lt;caniuse-embed feature=&#34;css-grid&#34;&gt;&lt;/caniuse-embed&gt;</code></pre><h3 class="heading-element" id="使用-baseline-支持"><span>使用 Baseline 支持</span> <a href="#%e4%bd%bf%e7%94%a8-baseline-%e6%94%af%e6%8c%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>显示功能的浏览器兼容性基线信息:</p> <pre><code>&lt;caniuse-embed feature=&#34;css-grid&#34; baseline&gt;&lt;/caniuse-embed&gt;</code></pre><h3 class="heading-element" id="自定义配置"><span>自定义配置</span> <a href="#%e8%87%aa%e5%ae%9a%e4%b9%89%e9%85%8d%e7%bd%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>&lt;caniuse-embed feature=&#34;flexbox&#34; theme=&#34;dark&#34; past=&#34;3&#34; future=&#34;2&#34; baseline origin=&#34;https://caniuse.lruihao.cn&#34; &gt;&lt;/caniuse-embed&gt;</code></pre><p>FRAMEWORK_INTEGRATION.md</p> <h3 class="heading-element" id="框架集成"><span>框架集成</span> <a href="#%e6%a1%86%e6%9e%b6%e9%9b%86%e6%88%90" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>以下是使用 Vue.js 的示例。更多框架集成示例,请参阅 <a href="https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./FRAMEWORK_INTEGRATION.md" target="_blank" rel="external nofollow noopener noreferrer">FRAMEWORK_INTEGRATION.md<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p> <pre><code>&lt;script setup&gt; import &#39;@cell-x/caniuse-embed-element&#39; &lt;/script&gt; &lt;template&gt; &lt;div&gt; &lt;caniuse-embed feature=&#34;css-grid&#34; theme=&#34;dark&#34; :past=&#34;3&#34; :future=&#34;2&#34; /&gt; &lt;/div&gt; &lt;/template&gt;</code></pre><h2 class="heading-element" id="-api-参考"><span>⚙️ API 参考</span> <a href="#-api-%e5%8f%82%e8%80%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="属性"><span>属性</span> <a href="#%e5%b1%9e%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><table> <thead> <tr> <th>属性</th> <th>类型</th> <th>默认值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td><code>feature</code></td> <td><code>string</code></td> <td><code>''</code></td> <td><strong>必需</strong>。caniuse 功能标识符(例如 &lsquo;css-grid&rsquo;, &lsquo;flexbox&rsquo;)</td> </tr> <tr> <td><code>past</code></td> <td><code>0 - 5</code></td> <td><code>2</code></td> <td>显示过去浏览器版本的数量</td> </tr> <tr> <td><code>future</code></td> <td><code>0 - 3</code></td> <td><code>1</code></td> <td>显示未来浏览器版本的数量</td> </tr> <tr> <td><code>baseline</code></td> <td><code>boolean</code></td> <td><code>false</code></td> <td>显示基线浏览器兼容性状态(如果可用)</td> </tr> <tr> <td><code>origin</code></td> <td><code>string</code></td> <td><code>'https://caniuse.lruihao.cn'</code></td> <td>caniuse 嵌入服务的基础 URL</td> </tr> <tr> <td><code>theme</code></td> <td><code>'auto' | 'light' | 'dark'</code></td> <td><code>'auto'</code></td> <td>嵌入内容的颜色主题</td> </tr> <tr> <td><code>loading</code></td> <td><code>'eager' | 'lazy'</code></td> <td><code>'lazy'</code></td> <td>iframe 的加载策略(立即加载或延迟加载)</td> </tr> <tr> <td><code>meta</code></td> <td><code>string</code></td> <td><code>自动生成</code></td> <td>嵌入实例的唯一标识符</td> </tr> </tbody> </table> <h3 class="heading-element" id="关于-baseline"><span>关于 Baseline</span> <a href="#%e5%85%b3%e4%ba%8e-baseline" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><code>baseline</code> 属性显示 Web 功能的 <a href="https://web.dev/baseline" target="_blank" rel="external nofollow noopener noreferrer">Baseline<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 浏览器兼容性状态。启用后,它会显示功能是否:</p> <ul> <li><strong>广泛可用</strong> - 所有主流浏览器都支持</li> <li><strong>新近可用</strong> - 最近在主流浏览器中可用</li> <li><strong>有限可用</strong> - 尚未在所有主流浏览器中可用</li> </ul> <p>这提供了功能采用情况的快速视觉指示器,帮助开发者在使用 Web 平台功能时做出明智的决策。</p> <h3 class="heading-element" id="查找功能名称"><span>查找功能名称</span> <a href="#%e6%9f%a5%e6%89%be%e5%8a%9f%e8%83%bd%e5%90%8d%e7%a7%b0" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>功能名称对应于 <a href="https://caniuse.com" target="_blank" rel="external nofollow noopener noreferrer">caniuse.com<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 上使用的标识符。您可以在以下位置找到它们:</p> <ul> <li>URL 路径:<code>https://caniuse.com/css-grid</code> → 功能名称是 <code>css-grid</code></li> <li><a href="https://caniuse.lruihao.cn/" target="_blank" rel="external nofollow noopener noreferrer">caniuse.lruihao.cn<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 上的搜索结果</li> <li><a href="https://github.com/Fyrd/caniuse/tree/master/features-json" target="_blank" rel="external nofollow noopener noreferrer">caniuse-db<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 仓库</li> </ul> <h3 class="heading-element" id="常见功能示例"><span>常见功能示例</span> <a href="#%e5%b8%b8%e8%a7%81%e5%8a%9f%e8%83%bd%e7%a4%ba%e4%be%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li><code>css-grid</code> - CSS 网格布局</li> <li><code>flexbox</code> - 弹性盒子布局</li> <li><code>arrow-functions</code> - 箭头函数</li> <li><code>webp</code> - WebP 图片格式</li> <li><code>css-variables</code> - CSS 自定义属性</li> <li><code>async-functions</code> - Async/Await 函数</li> <li>&hellip;</li> </ul> <h3 class="heading-element" id="css-类"><span>CSS 类</span> <a href="#css-%e7%b1%bb" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li><code>.ciu-embed-iframe</code> - 嵌入的 iframe 元素</li> <li><code>.ciu-embed-empty</code> - 未指定功能时的空状态</li> </ul> <h2 class="heading-element" id="-浏览器支持"><span>🌐 浏览器支持</span> <a href="#-%e6%b5%8f%e8%a7%88%e5%99%a8%e6%94%af%e6%8c%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>此 Web 组件适用于支持以下特性的所有现代浏览器:</p> <ul> <li>Custom Elements v1</li> <li>Shadow DOM v1</li> <li>ES2015+ 特性</li> </ul> <!-- 对于较旧的浏览器,请考虑使用 polyfills: ```html <script src="https://unpkg.com/@webcomponents/webcomponentsjs@^2/webcomponents-loader.js"></script> ``` --> <h2 class="heading-element" id="-开发"><span>🔧 开发</span> <a href="#-%e5%bc%80%e5%8f%91" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="前置要求"><span>前置要求</span> <a href="#%e5%89%8d%e7%bd%ae%e8%a6%81%e6%b1%82" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li>Node.js 20+</li> <li>pnpm 10+</li> </ul> <h3 class="heading-element" id="设置"><span>设置</span> <a href="#%e8%ae%be%e7%bd%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code># 克隆仓库 git clone https://github.com/Lruihao/caniuse-embed-element.git cd caniuse-embed-element # 安装依赖 pnpm install # 启动开发服务器 pnpm dev</code></pre><h3 class="heading-element" id="构建"><span>构建</span> <a href="#%e6%9e%84%e5%bb%ba" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code># 构建所有格式 pnpm build:all # 构建特定格式 pnpm build:lib # ES 模块和类型 pnpm build:iife # 用于 CDN 的 IIFE 格式 pnpm build # 演示构建</code></pre><h3 class="heading-element" id="脚本"><span>脚本</span> <a href="#%e8%84%9a%e6%9c%ac" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li><code>pnpm dev</code> - 启动开发服务器</li> <li><code>pnpm build</code> - 构建演示</li> <li><code>pnpm build:lib</code> - 构建库(ES 模块 + 类型)</li> <li><code>pnpm build:iife</code> - 构建 CDN 的 IIFE 包</li> <li><code>pnpm build:all</code> - 构建所有格式</li> <li><code>pnpm lint</code> - 运行 ESLint</li> <li><code>pnpm preview</code> - 预览构建的演示</li> </ul> <h2 class="heading-element" id="-发行版"><span>📦 发行版</span> <a href="#-%e5%8f%91%e8%a1%8c%e7%89%88" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>该包提供多种构建格式:</p> <ul> <li><strong>ES 模块</strong>(<code>dist/</code>)- 用于现代打包工具</li> <li><strong>IIFE 包</strong>(<code>dist/caniuse-embed-element.iife.js</code>)- 用于 CDN</li> <li><strong>TypeScript 定义</strong>(<code>dist/types/</code>)- 用于 TypeScript 项目</li> </ul> <h2 class="heading-element" id="-贡献"><span>🤝 贡献</span> <a href="#-%e8%b4%a1%e7%8c%ae" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>欢迎贡献!请随时提交 Pull Request。对于重大更改,请先开 issue 讨论您想要更改的内容。</p> <ol> <li>Fork 仓库</li> <li>创建您的功能分支(<code>git checkout -b feature/amazing-feature</code>)</li> <li>提交您的更改(<code>git commit -m 'Add some amazing feature'</code>)</li> <li>推送到分支(<code>git push origin feature/amazing-feature</code>)</li> <li>打开 Pull Request LICENSE</li> </ol> <h2 class="heading-element" id="-许可证"><span>📄 许可证</span> <a href="#-%e8%ae%b8%e5%8f%af%e8%af%81" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>本项目采用 MIT 许可证。详情请参阅 <a href="https://raw.githubusercontent.com/Lruihao/caniuse-embed-element/refs/heads/main./LICENSE" target="_blank" rel="external nofollow noopener noreferrer">LICENSE<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 文件。</p> <h2 class="heading-element" id="-致谢"><span>🙏 致谢</span> <a href="#-%e8%87%b4%e8%b0%a2" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://github.com/pengzhanbo/caniuse-embed" target="_blank" rel="external nofollow noopener noreferrer">pengzhanbo/caniuse-embed<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://github.com/mdn/browser-compat-data" target="_blank" rel="external nofollow noopener noreferrer">mdn-browser-compat-data<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> - 来自 MDN 的全面浏览器兼容性数据</li> <li><a href="https://github.com/Fyrd/caniuse" target="_blank" rel="external nofollow noopener noreferrer">Fyrd/caniuse<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> - 原始浏览器支持数据</li> </ul> <hr> <p>由 <a href="https://github.com/Lruihao" target="_blank" rel="external nofollow noopener noreferrer">Lruihao<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a> 用 ❤️ 制作</p>A custom element for viewing and interacting with JSON data.https://lruihao.cn/projects/lruihao/json-viewer-element/Sat, 19 Jul 2025 07:05:07 +00001024@lruihao.cn (Lruihao)https://lruihao.cn/projects/lruihao/json-viewer-element/GitHub<h2 class="heading-element" id="json-viewer-element" data-decreased><span>&lt;json-viewer&gt; Element</span> <a href="#json-viewer-element" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>简体中文 | <a href="https://raw.githubusercontent.com/Lruihao/json-viewer-element/refs/heads/main./README.en.md" target="_blank" rel="external nofollow noopener noreferrer">English<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <blockquote> <p>🌈 一个轻量、现代的 JSON 可视化与交互 Web 组件</p> </blockquote> <h2 class="heading-element" id="功能特性"><span>功能特性</span> <a href="#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li>🌟 <strong>Web 组件</strong>:原生,无框架依赖</li> <li>🎨 <strong>主题</strong>:支持明暗模式</li> <li>📦 <strong>盒装</strong>:可选边框与内边距</li> <li>📋 <strong>可复制</strong>:一键复制 JSON</li> <li>🔑 <strong>排序</strong>:支持键排序</li> <li>🔍 <strong>展开深度</strong>:可控初始展开层级</li> <li>🧩 <strong>自定义复制按钮</strong>:slot 插槽支持</li> <li>🧬 <strong>类型高亮</strong>:多种类型高亮</li> <li>🛠️ <strong>自定义事件</strong>:支持 copy/toggle 事件监听</li> </ul> <h2 class="heading-element" id="使用方法"><span>使用方法</span> <a href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="安装"><span>安装</span> <a href="#%e5%ae%89%e8%a3%85" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>npm install json-viewer-element</code></pre><h3 class="heading-element" id="引入"><span>引入</span> <a href="#%e5%bc%95%e5%85%a5" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><h4 class="heading-element" id="作为模块"><span>作为模块</span> <a href="#%e4%bd%9c%e4%b8%ba%e6%a8%a1%e5%9d%97" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>import &#39;json-viewer-element&#39;</code></pre><h4 class="heading-element" id="umd-cdn"><span>UMD (CDN)</span> <a href="#umd-cdn" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h4><pre><code>&lt;script src=&#34;https://unpkg.com/json-viewer-element/dist/json-viewer-element.umd.js&#34;&gt;&lt;/script&gt;</code></pre><h3 class="heading-element" id="基本用法"><span>基本用法</span> <a href="#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>手动绑定 value:</p> <pre><code>&lt;json-viewer id=&#34;viewer&#34; boxed copyable sort expand-depth=&#34;2&#34; theme=&#34;dark&#34;&gt;&lt;/json-viewer&gt; &lt;script&gt; document.getElementById(&#39;viewer&#39;).value = { hello: &#34;world&#34;, arr: [1,2,3] }; &lt;/script&gt;</code></pre><p>直接在标签上绑定 value:</p> <pre><code>&lt;json-viewer value=&#39;{&#34;hello&#34;:&#34;world&#34;,&#34;arr&#34;:[1,2,3]}&#39; boxed copyable sort expand-depth=&#34;2&#34; theme=&#34;dark&#34;&gt;&lt;/json-viewer&gt;</code></pre><p>在 Vue 框架中使用:</p> <p>Vue 2/3 选项式 API:</p> <pre><code>&lt;template&gt; &lt;json-viewer :value=&#34;JSON.stringify(json)&#34; boxed copyable sort expand-depth=&#34;2&#34; theme=&#34;dark&#34;&gt;&lt;/json-viewer&gt; &lt;/template&gt; &lt;script&gt; export default { data() { return { json: { hello: &#34;world&#34;, arr: [1,2,3] }, } }, } &lt;/script&gt;</code></pre><p>Vue 3 组合式 API:</p> <pre><code>&lt;script lang=&#34;ts&#34; setup&gt; import { ref } from &#39;vue&#39; const json = ref({ hello: &#34;world&#34;, arr: [1,2,3] }) &lt;/script&gt; &lt;template&gt; &lt;json-viewer :value=&#34;JSON.stringify(json)&#34; boxed copyable sort expand-depth=&#34;2&#34; theme=&#34;dark&#34;&gt;&lt;/json-viewer&gt; &lt;/template&gt;</code></pre><div class="alert alert-tip"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z"/></svg>提示</p><p><a href="https://cn.vuejs.org/guide/extras/web-components.html#skipping-component-resolution" target="_blank" rel="external nofollow noopener noreferrer">跳过组件解析<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>为了让 Vue 知道某些元素应被视为自定义元素并跳过组件解析,我们可以指定 <a href="https://cn.vuejs.org/api/application.html#app-config-compileroptions" target="_blank" rel="external nofollow noopener noreferrer"><code>compilerOptions.isCustomElement</code> 选项<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a>。</p></div><pre><code>// vite.config.js import vue from &#39;@vitejs/plugin-vue&#39; import vueJsx from &#39;@vitejs/plugin-vue-jsx&#39; export default { plugins: [ vue({ template: { compilerOptions: { // 将所有带短横线的标签名都视为自定义元素 isCustomElement: tag =&gt; tag.includes(&#39;-&#39;) } } }), vueJsx({ // 将所有带短横线的标签名都视为自定义元素 isCustomElement: tag =&gt; tag.includes(&#39;-&#39;) }), ] }</code></pre><p>如果你在 Vue 中使用 ESLint,可能需要配置忽略自定义元素:</p> <pre><code>// eslint.config.js export default { rules: { &#39;vue/component-name-in-template-casing&#39;: [ &#39;warn&#39;, &#39;PascalCase&#39;, { registeredComponentsOnly: false, ignores: [&#39;/^icon-/&#39;, &#39;json-viewer&#39;], }, ], }, }</code></pre><h2 class="heading-element" id="属性"><span>属性</span> <a href="#%e5%b1%9e%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><div class="alert alert-tip"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M8 1.5c-2.363.0-4 1.69-4 3.75.0.984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75.0 01-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456.0 00-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863.0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751.0 01-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304.0-2.06-1.637-3.75-4-3.75zM5.75 12h4.5a.75.75.0 010 1.5h-4.5a.75.75.0 010-1.5zM6 15.25a.75.75.0 01.75-.75h2.5a.75.75.0 010 1.5h-2.5A.75.75.0 016 15.25z"/></svg>提示</p><p>在 Vue 等框架中使用时,value 和 copyable 属性的值需要转成字符串传入。</p></div><table> <thead> <tr> <th style="text-align: left">属性</th> <th style="text-align: left">类型</th> <th style="text-align: left">默认值</th> <th style="text-align: left">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">value</td> <td style="text-align: left">object / array / string / number / boolean</td> <td style="text-align: left">null</td> <td style="text-align: left">JSON 数据</td> </tr> <tr> <td style="text-align: left">expand-depth</td> <td style="text-align: left">number</td> <td style="text-align: left">1</td> <td style="text-align: left">初始展开层级</td> </tr> <tr> <td style="text-align: left">copyable</td> <td style="text-align: left">boolean / CopyableOptions</td> <td style="text-align: left">false</td> <td style="text-align: left">启用复制按钮或自定义复制按钮配置(见下表)</td> </tr> <tr> <td style="text-align: left">sort</td> <td style="text-align: left">boolean</td> <td style="text-align: left">false</td> <td style="text-align: left">是否对对象键排序</td> </tr> <tr> <td style="text-align: left">boxed</td> <td style="text-align: left">boolean</td> <td style="text-align: left">false</td> <td style="text-align: left">是否显示边框和内边距</td> </tr> <tr> <td style="text-align: left">theme</td> <td style="text-align: left">&rsquo;light&rsquo; / &lsquo;dark&rsquo;</td> <td style="text-align: left">&rsquo;light'</td> <td style="text-align: left">主题</td> </tr> <tr> <td style="text-align: left">parse</td> <td style="text-align: left">boolean</td> <td style="text-align: left">true</td> <td style="text-align: left">字符串值是否自动解析为 JSON</td> </tr> </tbody> </table> <h3 class="heading-element" id="copyableoptions"><span>CopyableOptions</span> <a href="#copyableoptions" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><table> <thead> <tr> <th style="text-align: left">属性</th> <th style="text-align: left">类型</th> <th style="text-align: left">默认值</th> <th style="text-align: left">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">copyText</td> <td style="text-align: left">string</td> <td style="text-align: left">Copy</td> <td style="text-align: left">复制按钮显示的文本</td> </tr> <tr> <td style="text-align: left">copiedText</td> <td style="text-align: left">string</td> <td style="text-align: left">Copied</td> <td style="text-align: left">复制成功后显示的文本</td> </tr> <tr> <td style="text-align: left">timeout</td> <td style="text-align: left">number</td> <td style="text-align: left">2000</td> <td style="text-align: left">显示 copiedText 的时长 (ms)</td> </tr> <tr> <td style="text-align: left">align</td> <td style="text-align: left">&rsquo;left&rsquo; / &lsquo;right&rsquo;</td> <td style="text-align: left">right</td> <td style="text-align: left">复制按钮对齐方式</td> </tr> </tbody> </table> <h2 class="heading-element" id="事件"><span>事件</span> <a href="#%e4%ba%8b%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><table> <thead> <tr> <th style="text-align: left">事件</th> <th style="text-align: left">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left">copy-success</td> <td style="text-align: left">复制成功后触发</td> </tr> <tr> <td style="text-align: left">copy-error</td> <td style="text-align: left">复制失败后触发</td> </tr> <tr> <td style="text-align: left">toggle</td> <td style="text-align: left">节点折叠/展开时触发</td> </tr> </tbody> </table> <h2 class="heading-element" id="插槽"><span>插槽</span> <a href="#%e6%8f%92%e6%a7%bd" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>自定义复制按钮:</p> <pre><code>&lt;json-viewer copyable&gt; &lt;button slot=&#34;copy-button&#34;&gt;复制 JSON&lt;/button&gt; &lt;/json-viewer&gt;</code></pre><h2 class="heading-element" id="license"><span>License</span> <a href="#license" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p><a href="https://opensource.org/licenses/MIT" target="_blank" rel="external nofollow noopener noreferrer">MIT<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p> <p>Copyright (c) 2025-present <a href="https://github.com/Lruihao" target="_blank" rel="external nofollow noopener noreferrer">Lruihao<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></p>CSS @layer:构建更高效、更可维护的样式层级https://lruihao.cn/posts/at-layer/Wed, 18 Jun 2025 10:35:47 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/at-layer/CSS<p>在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 <code>@layer</code> 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 <code>@layer</code> 的背景、作用以及语法,带你一探究竟。</p> <h2 class="heading-element" id="layer-的背景"><span>16 <code>@layer</code> 的背景</span> <a href="#layer-%e7%9a%84%e8%83%8c%e6%99%af" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在 CSS 的发展历程中,样式的优先级规则一直是核心概念之一。默认情况下,CSS 样式按照选择器的优先级(如内联样式 &gt; ID 选择器 &gt; 类选择器 &gt; 元素选择器)以及代码的书写顺序来决定最终的样式效果。然而,这种简单的优先级规则在大型项目中常常会引发问题:</p> <ol> <li><strong>样式冲突</strong>:多个样式规则可能同时作用于同一个元素,导致样式冲突,开发者需要不断调整选择器的优先级来解决问题。</li> <li><strong>维护困难</strong>:随着项目的复杂度增加,样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。</li> <li><strong>组件化开发的挑战</strong>:在组件化开发中,不同组件的样式可能会相互干扰,导致样式管理混乱。</li> </ol> <p>为了解决这些问题,CSS 工作组引入了 <code>@layer</code> 规则。<code>@layer</code> 允许开发者显式地定义样式的层级关系,从而更好地组织和管理样式规则。</p> <h2 class="heading-element" id="layer-的作用"><span>17 <code>@layer</code> 的作用</span> <a href="#layer-%e7%9a%84%e4%bd%9c%e7%94%a8" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="定义样式层级"><span>17.1 定义样式层级</span> <a href="#%e5%ae%9a%e4%b9%89%e6%a0%b7%e5%bc%8f%e5%b1%82%e7%ba%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><code>@layer</code> 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层,我们可以明确地控制样式的优先级顺序。例如,我们可以将基础样式定义在较低的层级,而将特定组件的样式定义在较高的层级,从而避免样式冲突。</p> <pre><code>@layer base { body { font-family: Arial, sans-serif; margin: 0; padding: 0; } }</code></pre><h3 class="heading-element" id="提升代码可维护性"><span>17.2 提升代码可维护性</span> <a href="#%e6%8f%90%e5%8d%87%e4%bb%a3%e7%a0%81%e5%8f%af%e7%bb%b4%e6%8a%a4%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>使用 <code>@layer</code> 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层,便于后续的修改和扩展。同时,分层的样式规则也更容易被团队成员理解和协作。</p> <h3 class="heading-element" id="支持组件化开发"><span>17.3 支持组件化开发</span> <a href="#%e6%94%af%e6%8c%81%e7%bb%84%e4%bb%b6%e5%8c%96%e5%bc%80%e5%8f%91" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>在组件化开发中,<code>@layer</code> 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级,从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。</p> <p>例如:</p> <pre><code>@layer components { .cell-button { background-color: blue; color: white; padding: 10px; border: none; cursor: pointer; } }</code></pre><p>在业务代码中,我们可以无视组件 CSS 的优先级,直接进行重置:</p> <pre><code>.cell-button { background-color: red; /* 覆盖组件样式 */ }</code></pre><p>眼见为实:</p> <iframe src="https://lruihao.github.io/html-demo/css-at-layer" height="50px" width="100%"></iframe> <p>可以理解为 <code>@layer</code> 定义的层级会整体下降一个优先级,这样便于分开业务代码和组件代码的样式管理。</p> <h2 class="heading-element" id="layer-的语法"><span>18 <code>@layer</code> 的语法</span> <a href="#layer-%e7%9a%84%e8%af%ad%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><h3 class="heading-element" id="基本语法"><span>18.1 基本语法</span> <a href="#%e5%9f%ba%e6%9c%ac%e8%af%ad%e6%b3%95" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><pre><code>@layer layer-name? {rules} @layer layer-name; @layer layer-name, layer-name, layer-name;</code></pre><p>简而言之,<code>@layer</code> 规则可以用来<strong>定义一个样式层级</strong>或者<strong>改变现有层级的优先级</strong>。</p> <ul> <li><code>@layer layer-name? {rules};</code> 这种形式用于定义一个新的样式层级,如果名称为空,则为匿名层级。</li> <li><code>@layer</code> 后接一个或多个层级名称,用于指定样式层级的优先级顺序,按照前后顺序。</li> </ul> <h3 class="heading-element" id="让整个-css-文件变成-layer"><span>18.2 让整个 CSS 文件变成 <code>@layer</code></span> <a href="#%e8%ae%a9%e6%95%b4%e4%b8%aa-css-%e6%96%87%e4%bb%b6%e5%8f%98%e6%88%90-layer" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p>如果我们希望将整个 CSS 文件作为一个层级,可以使用以下语法:</p> <p><code>@import</code> 中使用:</p> <pre><code>@import (utilities.css) layer(utilities);</code></pre><p><code>&lt;link&gt;</code> 元素引用 (*):</p> <div class="alert alert-warning"><p class="alert-title"><svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086.0l6.082 11.378A1.75 1.75.0 0114.082 15H1.918A1.75 1.75.0 01.375 12.425zm1.763.707a.25.25.0 00-.44.0L1.698 13.132a.25.25.0 00.22.368h12.164a.25.25.0 00.22-.368zm.53 3.996v2.5a.75.75.0 01-1.5.0v-2.5a.75.75.0 011.5.0zM9 11a1 1 0 11-2 0 1 1 0 012 0z"/></svg>警告</p><p>该用法有待考证,在 MDN 上尚未找到明确文档。</p></div><pre><code>&lt;link rel=&#34;stylesheet&#34; href=&#34;utilities.css&#34; layer=&#34;utilities&#34;&gt; &lt;!-- 样式引入到一个匿名级联层中 --&gt; &lt;link rel=&#34;stylesheet&#34; href=&#34;utilities.css&#34; layer&gt;</code></pre><h3 class="heading-element" id="嵌套层级"><span>18.3 嵌套层级</span> <a href="#%e5%b5%8c%e5%a5%97%e5%b1%82%e7%ba%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><p><code>@layer</code> 也支持嵌套定义,这使得我们可以在一个层级中进一步细分样式规则。例如:</p> <pre><code>@layer base { @layer typography { h1 { font-size: 24px; } p { font-size: 16px; } } }</code></pre><p>在嵌套层级中,外层层级的优先级低于内层层级。</p> <p>多嵌套语法下的优先级:</p> <pre><code>@layer A { p { color: red; } @layer B { p { color: green; } } } @layer C { p { color: orange; } @layer D { p { color: blue; } } }</code></pre><p>其中的优先级大小是这样的:C &gt; C.D &gt; A &gt; A.B</p> <p>另外,嵌套语法还支持使用级联写法简化。</p> <p>例如,普通内外嵌套写法:</p> <pre><code>@layer outer { button { width: 100px; height: 30px; } @layer inner { button { height: 40px; width: 160px; } } }</code></pre><p>上面的内外嵌套语法还可以写成下面这样:</p> <pre><code>@layer outer { button { width: 100px; height: 30px; } } @layer outer.inner { button { height: 40px; width: 160px; } }</code></pre><h2 class="heading-element" id="layer-的兼容性"><span>19 <code>@layer</code> 的兼容性</span> <a href="#layer-%e7%9a%84%e5%85%bc%e5%ae%b9%e6%80%a7" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><caniuse-embed feature="mdn-css_at-rules_layer" past="2" future="1" origin="https://caniuse.lruihao.cn" loading="lazy"></caniuse-embed> <h2 class="heading-element" id="参考"><span>20 参考</span> <a href="#%e5%8f%82%e8%80%83" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><ul> <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@layer" target="_blank" rel="external nofollow noopener noreferrer">MDN Web Docs - @layer<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> <li><a href="https://www.zhangxinxu.com/wordpress/2022/05/css-layer-rule/" target="_blank" rel="external nofollow noopener noreferrer">详解日后定会大规模使用的 CSS @layer 规则<i class="fa-solid fa-external-link-alt fa-xs ms-1 text-secondary" aria-hidden="true"></i></a></li> </ul>Vue.js History 模式下的 NGINX 配置与 API 代理https://lruihao.cn/posts/vue-build/Wed, 11 Jun 2025 10:05:36 +08001024@lruihao.cn (Lruihao)https://lruihao.cn/posts/vue-build/Vue.js<!-- 本文由 Poe AI 提供 --> <p>在使用 Vue.js 开发前端应用时,开启 history 模式可以让你的路由更加友好。然而,在部署应用时,需要正确配置 NGINX,以支持前端路由和 API 请求。本文将详细介绍如何配置 NGINX,使其能够处理 Vue 应用的 history 模式,并设置 API 代理。</p> <h2 class="heading-element" id="前提条件"><span>10 前提条件</span> <a href="#%e5%89%8d%e6%8f%90%e6%9d%a1%e4%bb%b6" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>在开始之前,请确保你已经完成以下步骤:</p> <ul> <li>安装并配置好 NGINX。</li> <li>完成 Vue.js 应用的开发,并使用 <code>npm run build</code> 命令打包应用。</li> </ul> <h2 class="heading-element" id="nginx-配置示例"><span>11 NGINX 配置示例</span> <a href="#nginx-%e9%85%8d%e7%bd%ae%e7%a4%ba%e4%be%8b" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>以下是一个典型的 NGINX 配置示例:</p> <pre><code>server { listen 80; # 监听80端口 server_name your_domain.com; # 替换为你的域名 location / { root /path/to/your/dist; # 指向打包后的文件夹 try_files $uri $uri/ /index.html; # 尝试访问指定文件,如果找不到则重定向到index.html } # API 代理设置 location /api/ { proxy_pass http://your_api_server; # 替换为你的 API 服务器地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }</code></pre><h3 class="heading-element" id="配置说明"><span>11.1 配置说明</span> <a href="#%e9%85%8d%e7%bd%ae%e8%af%b4%e6%98%8e" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ul> <li><strong>listen</strong>: 指定 NGINX 监听的端口,通常是 80(HTTP)。</li> <li><strong>server_name</strong>: 配置你的域名。</li> <li><strong>root</strong>: 指向 Vue 应用的打包输出目录,通常是 <code>dist</code> 文件夹。</li> <li><strong>try_files</strong>: 尝试访问请求的文件,如果不存在,则返回 <code>index.html</code>,以允许 Vue Router 处理前端路由。</li> <li><strong>location /api/</strong>: 所有以 <code>/api/</code> 开头的请求会被代理到指定的 API 服务器。</li> <li><strong>proxy_pass</strong>: 设置 API 请求转发到的后端服务器地址。</li> </ul> <h3 class="heading-element" id="部署步骤"><span>11.2 部署步骤</span> <a href="#%e9%83%a8%e7%bd%b2%e6%ad%a5%e9%aa%a4" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h3><ol> <li> <p><strong>打包 Vue 应用</strong>:</p> <pre><code>npm run build</code></pre></li> <li> <p><strong>上传内容</strong>:将 <code>dist</code> 文件夹的内容上传到服务器的指定路径。</p> </li> <li> <p><strong>修改 NGINX 配置</strong>:编辑 NGINX 配置文件,通常在 <code>/etc/nginx/sites-available/default</code> 或 <code>/etc/nginx/nginx.conf</code>。</p> </li> <li> <p><strong>检查配置</strong>:检查 NGINX 配置是否有语法错误:</p> <pre><code>sudo nginx -t</code></pre></li> <li> <p><strong>重新加载 NGINX</strong>:</p> <pre><code>sudo systemctl reload nginx</code></pre></li> </ol> <h2 class="heading-element" id="总结"><span>12 总结</span> <a href="#%e6%80%bb%e7%bb%93" class="heading-mark"> <svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg> </a> </h2><p>通过上述配置,你的 Vue.js 应用将可以在 NGINX 上正常运行,并支持 history 模式的路由。同时,所有以 <code>/api/</code> 开头的请求将被有效地代理到后端服务器。这样,前端与后端的交互就更加流畅自然。</p> <p>希望这篇文章能帮助你顺利部署 Vue 应用!如有任何问题,欢迎留言讨论。</p> ================================================ FILE: js/config/0037bc2c32fa8e81abd15ed406ab2c88.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/021d7a7632f5e9a49828e315b8028cc4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/042a6806e0090fd207a9108f0c2b9f1f.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/063a7c6d2aefb90daf3d805734b1df24.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/067f014b07ee3a506035596baf104864.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/06c7174af922cb41ac234199a8b4709d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/07d140fad64e8e303ead3a6cdf7ac46e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/07dc02755c6f7b78185d6842db700b36.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/087fe8ea85659b55a7d545f2f69d6134.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0bb6dac5aeef225eee1557f8c20108f6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0c0b8df0ebba1c9ee318abc52a8229ef.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0cf6fc71a2aa7176ca55c6bb96d83773.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0d594e779c5ae2bd9b7ddba4f5074b7a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0d8648db64976c5112e4fa3049752404.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0f60328123a2a79d5ddfdb6dfcdfad30.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/0fbd1de114dfdb73770a88111b5d4e31.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/10197f7436eae710bf968c3cba131875.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/11731361789df6557ab8fa35ccb37982.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/13577df3a49a47c9d2b5d13beb4325e1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/13b21784b8ed829def60cfa62398f076.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/151a394dfe55d6be346d8fe3637a8fc0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/160160b17b769c7c43691b7c09140d60.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/19817062b86725f9931c9927d3c37d20.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1a0fd4e09739a1836a4fb4215952202d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1a22a336553538929c787e5f03170f51.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1b078ccc55871dd0d40d77f1056078d0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1c5bbc39c6512b61cc5c915f8ad0b839.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1cd02bf1ad69a440c99ba61b5c6183ed.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1ce2b38079d9b4fc8647b4847733631a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1ce7d401f80e690df073189ecec29477.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1d24d2422bd3fe23b32d8f5ed5a26c3f.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1de9df7c4c69cb31234c5c05cb69693e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/1ef18b020da0fb5d3b2e79d1d399e62c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2053578da0514057166c13965ec58b4e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/20b32ac645052332d31625c852330f19.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/20b75e9cebe826082f74682133ae2ae5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/211c86c12dbc4e740b31b4edc4a9592a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/223b81876e3028aeaa96a2959290d05b.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/22727014067af9c4cd8f1a834df835d1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/22a949cb92801746b6e125c797ebc6d0.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/22b590af45577bcd6639362bda0ff70b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/247eb66223c15b4808b09a1d172c70b6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/257907c0ccec1406a7e51c9c17d6584a.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/25c200cb60a3f4bbb4acfa03de8137b0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/27e1cf5e4c051c452d3a3b4306864a77.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2956f1cccb73a886d642d203e4f0bb52.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2b16902a0ab9359c22af350a1293eba5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2c7c25806c1b020cadf6f63e0962305f.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2ce8440d2e698a0bc48ed62d63347606.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2d9c54e40775802a74cf79fe7d2e5158.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/2ef1295d48d146ea03955a5b8beab68d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/321e4c6811fb3e2ea089d57ac3b040bd.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/32933748836d9ddad6b8a9179d32bab3.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/32cb17f0202794769e79771235ba6bec.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/334b4758f80bf1340a4e02810b62509b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/344a803009a489a24e0035487899e424.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/34ad5ea3680cfc3332eb04da39f4f743.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/35329dfb1fc66d8a56de7b21aab94c36.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/36735ed50e9a4121e9fea9ef0954a5a1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/36ebddeb1ce8adfbd97498a9ff2c2d7b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3732e41af9de0bc63f40781a99c47060.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/379d6c0822bcdcec980d5a8b073966e0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/38071d54f1ea34a6b632919a315ae439.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/380d79fcfd90b303a04a00efb9ed5ec0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/382d5f75fc970a96ee9777775717ac97.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/38fd272149f9ea5fb309874b8348e534.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/39573cf1686e4588c2700c87529273c0.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3ab7b3c0725dcbca5991bf242eb9b0d6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3afb2cc93680553927e6cc9082224ee9.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3b6347f8a397754b4aa70388743c2721.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3bb5f4f8924127e723fa7746bf60bb4a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3c0d788c5aef31e769a7bc0198259867.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3c48228073c0f5dfd0edaf8297e1dba2.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3e1c0a5419cb5b02f60950abdabb060d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3e2b1f699d04d23eb5c686eb812f4dc7.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3e50d109d4df475fb8a6c61436914771.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3ebf363e73290b7b68ae11519f02b692.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3ee519d1095b211e0e845e8f9f096a82.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3f3b3bbb615c034f8f37055427b83892.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/3f8e146f550d20bebe5aa95937adc761.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/41192006e7fb5d2f9f1a7caa97105c8c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/41df7cfd1a135f290b3fa56272d53632.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/4281806367b1de9059a1f848c2510f13.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/431ad847b2fa08d7740410546f00bf5b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/47cdd5023e575a59907d132466ed2a9b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/48d418b2e265ac04d276e23fb980bbd6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/4ca38f0ff587e5775a2d6f1a2dde3c48.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/4d0419f124a75d5a016ebe63f9010fa7.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/4e4f919455da0987a141b4ef412aeb48.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/50a19c19b19fb06da7fc1e0b7a611a2e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/50d88726c42a23edb45562a9bce23a02.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/50ddd55196c0ec608c96d427ebb2fb8f.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5228cc9c439e70c10266f94192573758.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/52ed700aaee4c796d3aba30f6abc325f.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/54639e69f9bb0f26b6e0c20251d837c8.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5954156ca63ba6e21a8d13d55731c53b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5a34e845cf080729c16df88f67bdbcf3.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5b8a1dd7275c2db6ccf1e01d55644ac6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5bdc928cd9257d788fb7a5343279fe73.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/5c54b4cdaacef7f7ab4db1bb72ce361a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6044e0fddda1c4891d5575b4e65c5d23.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/62275962ff6d2a8c47a9328a03d0fea6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/644dbb6a92190c74c2ca806d9d56dd02.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/64de0604052d048c582136011aaec101.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6530c9177543fbff69c3660d3e33a81e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/65501877c75fd5623c9ba3a5519c5d9a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/666ed43a5283cf26881a402d93328d8c.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6764dc15ea7b8ee22c2266fbedf1629e.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/679d541d97dada7b64e8d7791dacd6ba.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/67cb5d10fdf41c150ceaec0b041ec9e9.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/68476cc29d8bedd521d32ae91b064db6.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/68705244048c105f2eac165a741e3182.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/68e86329cdb902703397dd04f5fc4416.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/690c84bc951f94458e7fe0075907e31a.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6a3423da80259f1997c2e2252c8554ab.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6c4f5cb0664c744c67d3d8e2ee2a8bff.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6d39ed1e24c47282d4bc7e849660db5e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6dba2d2635ebf1a0a76c65b1308b8eaa.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6e630006d7d1732df7885c17566d2d56.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6f3e0ca7308179c11374fd8095d64f64.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/6fc44cad1abecf6df2cff07272bfd31b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7417807edf3228ede7205ab88ce58ecf.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/74efae613deccc0dcd4093c3f44c600a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/76d3ee0b5aa07dd4d045f569bebb748b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/772eed652fda688964d02acb01784609.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/79c7dd05726956976d682d1ae0b5d84d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/79cb396d7e1fb56b5cf5a14b0b513b34.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7a351a9cd38836cc0730ebeed0d61953.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7ad9cd5126d73a535492159809361cd1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7c52c93570e8548e38dea375ddc00481.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7ca193687bf18f5f37d6d598a9e2d72e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7d2bcc6b215b153c1d49ec5edfede53e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7d42aee776410000268c47280a00c67d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7df4a721a60c5380b21ea35def918bf4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/7e98b2eeb64d081d620055122e9915a0.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"typeit":{"cursorChar":"|","cursorSpeed":1000,"duration":-1,"loop":false,"speed":100},"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/80acd2330a03632340c6961a055f9fc3.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8133d23d199cb604b3b0b495c34058f9.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/84c9011a7be78653e7be5dc29e91d753.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/85605c5ede51aa5fde314908a0e1dd18.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8576ec274c98b3831668a172fa632d80.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":false,"shortcode":true},"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"typeit":{"cursorChar":"|","cursorSpeed":1000,"duration":-1,"loop":false,"speed":100},"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/85f41e792ee3de1ac5020de929e1c596.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/88d5bebdacaa8043d0726fa84dbfc257.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/89128e9368d37da24f50b69f56d541fe.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/89372d9c14cb3e6a12d7ded732418f63.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/893dcbfb89ffeacaa99f40f37c31c669.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8c376d7b111a7da475c29028f2fd4330.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8c8e5f3cee9fd116b04e25d061ee3488.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/8e86957d7556b9d8b7ddc1e31bbed823.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/90008290651fdeddf133bee26cc2e3e1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/914a1ddda61ca7ee342100d93e625e25.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/91db0fa13e5e2065c1c8b336b86fc4c5.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/93790f9ff497dfbdac23b3844326f0d5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/939cc2608b36b67d5c2fe1b6dc8ea54b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/9496ca8909ce2321bfc35cbe13d9d281.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/94a9310cd4c8ab0dde63d210c39adfa3.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/960bf92a61acbc81aafd4f8882506ca9.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/967022599cfd24670ded11a2c801cb34.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/980c8a4cc81391e2ce4a2bbee7e1e6a9.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/990af5a53b5e9a8d890fd389c6e0cabf.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/996fd5a4211944694571fca1aaa87105.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/9b5d8d6ca9926e02fff9fac8113762be.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/9e104be23a3904181ce3d8ad4f4ab220.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/9e1fc8104320f894b5cb7cbd620e4d93.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/9f7c53c593cacb46be354f01f9719e15.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a0ccfff49c4e05313f93e04c41df9e58.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a2741986477cab7cb901f93ba8362f41.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a2ae81125a3a0bcf0012a4a8dbfee438.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a311b864532fd54bd959242c6376c303.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a3d4eaca0bbaf2e48cb439525f833eed.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a5237505c0018dcaf2332aa645d98fb7.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a543b622ee68b6d53c4400bab804d910.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a56da8a7ff577d3943d46542a4b838fe.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a5c446f7a06efadb1547b74b2a74befd.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a5e7645e82813977ee845e1455ab1c50.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a6da1526d066440ae439665d78a814ba.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a7487aed908c38304252d1bbf8a74f90.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a829e0fd133b98fd41c9ce565fae9ad4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/a9c663e1be35f13be44ee6ec9e190e32.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/aafa3c7949a62e4a9cfc2452c03d5691.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/aba4cbe833311b22bf5d0427f24941e6.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/abd7d90c084fce01e013a12cd9dfb8d4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/adc208d6cb444ffdd3a5dce73c2baee7.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b2974a15012c06b846be42ba82708c32.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b2f0074cce92da89ff8c1bd4899efd32.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b30d1699a32476a23eb4a032f624f821.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b31df2415b2195d8fa30ab2b8cec6f26.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b8169fe3025bec6aa838d0ab8c76158e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b8a3b8e54946b7da92cd6a554de14280.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/b94f654fca25ee13e1af4b36c6188be5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/bbce6fbd8d4e759d7e4770be2ac8fe1e.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/bbf0b5f24720c346912022ccdf2e213d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/bd37631ebcc69021fee8a3a115e9188c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/bdd184c51212429fcf35500b71c86829.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/be490516b49d9e274eb9c3cc4dcd4a42.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/bf6cfc0dc4bddf23d51d404860b60c00.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c01a69160f89b6f90a7b7ea438910e86.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c17747a3ee44a81b34f8a2dece22f076.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c349130a660e1b4877d286b099cb3e53.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c46366ac40713b505bd07a45b9cda8cd.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c4e0e052b26014b958361ca24591e880.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c527e918ff0a8e574b40a00d50866376.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c56affac7fa1841b8c945ff7c1ee8e42.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c5c1aace2f9807f5a8433beacefb89d5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c6842325fb41c160202c49e4a4c50d8b.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c6bc2d5d0c5396826c9d0b6d5c23e26d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c6ef9ca883d83930d49ac7d07559852c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c7abcdc6ecfd72bb00803225755a0d6b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c7d4ef89bfcee2c44727fc9bac4c6f1d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/c8f1e633cb926fe996d5f2044426716b.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ca64402c74c2c861854a74d9fee0d56b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cadb06d453c2085804acba60a7196e5d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cb3a462071102ce7affe15497b674321.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cbdcef242cc969fdcea7bbd898430f4a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cce38c49564849ca8d84971eebfe1d72.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cde8be452aefe0c97004d0108cf5fe37.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ce53e9a85944c58fead0c64f6ddd6272.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cf6f184ef6fa9bb5ac418756f2050ad3.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cf951cf6b21d5af8ca797c8d013a78fa.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/cfdcd42409dccb38a513bc3bca47d4ca.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d0910d8518c18973441e6349561fed55.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d13c1c99bddbc642489b8a9e7d3d4aae.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"typeit":{"cursorChar":"|","cursorSpeed":1000,"duration":-1,"loop":false,"speed":100},"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d1fc0c74a0d39522d8a35249c7b53c23.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d1ff0bc4ecb52aa165876cbd218d8413.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d367a7d65bc40ba4cd89e27d9afdd887.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d56b48a046a639a406a699708812cf07.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d5a9d79018e75c4302880ad278e28363.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d6ce767f8a5bfa4fb341cd873fd19755.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d7cfd77837fdccb790ac25f9018bfea5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/d8ae2051c1c637ef58cbfff835862815.js ================================================ window.config={"comment":{"enable":false},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/daae8dd216a8d0163756498e642e4f01.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/dbef3e0d34ebab88f6ee074213b96e0c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/dbf8e36831437278c75ac3295d420944.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/dc102bb51e198559d7bde12f6293456e.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/dd6bebe0a76227cd094747aab35d9b67.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ddf6975ff5fbc5c661477b59ca586e4d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/de4d95097fc8ff3a4e564ca1b1e5f106.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/de967b22e35857b24b5b26e279d6525e.js ================================================ window.config={"comment":{"enable":true,"expired":false,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"encryption":{"all":true,"shortcode":false},"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/decdfc6ce8b9de00d594b2ca783388f1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/dfd3937a4be1f2bb1b8f0c783501e347.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e034d72fd6b56cf59b58738a20161a20.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e05e69f3640d00f6512576fbd1fbc71d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e089ce555f6a93225dbbd6857eab7cbb.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e2bba2b979fee7fd23a44657253057af.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e3da3ff90cf53f4a9658f3d622190e2a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e46127dc2b6b65ea71d5e4f3e66d526b.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e543db54fa740737bf75fb6493e830ed.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e61ca88883d625f967c831c9a433599c.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e6f8f40ad771f3bf9592bd0b23cf9435.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e736ca84f941c8a4de150b5e327fc508.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e782f1b3e6277fd8a5f7c6717b41da12.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/e7910750ca8b31e5b33d54d82fee104a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ec41ccbb04cee550014cf8e576f76619.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ecfcf3d2db9f233abd64137387ea9a9d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ed54a17dda6215c4ebd914aa00d070e4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/edb5a958b8f7500ddc4825759a251692.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ede83a7ccfe409df78e72f619c94d71f.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ee6eb6b7a814d20b2414551e5d0cd11d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f05ec885592fe8fc3e08767f078656fc.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f0f94f24c4bc9a4d90c7e11b521f3f5f.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f1f2b8a76d1d4e07827b8548b3ef1c8d.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f4a09c8a767f701b81df89c1ef7b3512.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f517e60c538984f781281242bdbf8607.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f6fad020e77fef815450ef1a64d9353a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f841fe31d977148c591ab6b18c0edb8f.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f88a1617bec23310e493b5e3eda78ef5.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f8b50c62d1562efacbe486fb5ed8bd87.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f8c9a0dc01662987361a64b52a8302e4.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/f9292c8cd2371ac9de89f6c155166df1.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/fb55cc5f720ca1d6412e7036e7463982.js ================================================ window.config={"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/fd69d6c6f08c01154641d96aacb5e893.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/ffe22751f3c8e22b1d48d3c99cb99e5a.js ================================================ window.config={"comment":{"enable":true,"expired":true,"giscus":{"darkTheme":"dark_dimmed","lightTheme":"light","origin":"https://giscus.app"}},"cookieconsent":{"content":{"dismiss":"同意","link":"了解更多","message":"本网站使用 Cookies 来改善您的浏览体验。"},"enable":true,"palette":{"button":{"background":"#f0f0f0"},"popup":{"background":"#1aa3ff"}},"theme":"edgeless"},"enablePWA":true,"lightgallery":true,"pangu":{"enable":true,"selector":"article"},"print":{"expandAdmonition":true,"expandCode":true,"expandDetails":true,"expandFileTree":false},"search":{"algoliaAppID":"MTJNHU0JVB","algoliaIndex":"index","algoliaSearchKey":"5486225134d99f43826da401ee9bad57","highlightTag":"em","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":50,"type":"algolia"},"siteTime":"2018-05-28T20:01:01+08:00","tooltip":true,"version":"v0.4.5","watermark":{"appendTo":".widgets","colSpacing":30,"content":"\u003cimg style=\"height: 0.85rem;\" src=\"/logo.webp\" alt=\"logo\" /\u003e 李瑞豪","enable":true,"fontFamily":"MMT_LRH,沐目体","fontSize":1.1,"height":20,"opacity":0.0125,"rotate":15,"rowSpacing":60,"width":150}}; ================================================ FILE: js/config/post-chat/0037bc2c32fa8e81abd15ed406ab2c88.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/021d7a7632f5e9a49828e315b8028cc4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/042a6806e0090fd207a9108f0c2b9f1f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/063a7c6d2aefb90daf3d805734b1df24.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/067f014b07ee3a506035596baf104864.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/06c7174af922cb41ac234199a8b4709d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/07d140fad64e8e303ead3a6cdf7ac46e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/07dc02755c6f7b78185d6842db700b36.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/087fe8ea85659b55a7d545f2f69d6134.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0bb6dac5aeef225eee1557f8c20108f6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0c0b8df0ebba1c9ee318abc52a8229ef.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0cf6fc71a2aa7176ca55c6bb96d83773.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0d594e779c5ae2bd9b7ddba4f5074b7a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0d8648db64976c5112e4fa3049752404.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0f60328123a2a79d5ddfdb6dfcdfad30.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/0fbd1de114dfdb73770a88111b5d4e31.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/10197f7436eae710bf968c3cba131875.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/11731361789df6557ab8fa35ccb37982.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/13577df3a49a47c9d2b5d13beb4325e1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/13b21784b8ed829def60cfa62398f076.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/151a394dfe55d6be346d8fe3637a8fc0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/160160b17b769c7c43691b7c09140d60.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/19817062b86725f9931c9927d3c37d20.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1a0fd4e09739a1836a4fb4215952202d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1a22a336553538929c787e5f03170f51.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1b078ccc55871dd0d40d77f1056078d0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1c5bbc39c6512b61cc5c915f8ad0b839.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1cd02bf1ad69a440c99ba61b5c6183ed.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1ce2b38079d9b4fc8647b4847733631a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1ce7d401f80e690df073189ecec29477.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1d24d2422bd3fe23b32d8f5ed5a26c3f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1de9df7c4c69cb31234c5c05cb69693e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/1ef18b020da0fb5d3b2e79d1d399e62c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2053578da0514057166c13965ec58b4e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/20b32ac645052332d31625c852330f19.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/20b75e9cebe826082f74682133ae2ae5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/211c86c12dbc4e740b31b4edc4a9592a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/223b81876e3028aeaa96a2959290d05b.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/22727014067af9c4cd8f1a834df835d1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/22a949cb92801746b6e125c797ebc6d0.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/22b590af45577bcd6639362bda0ff70b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/247eb66223c15b4808b09a1d172c70b6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/257907c0ccec1406a7e51c9c17d6584a.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/25c200cb60a3f4bbb4acfa03de8137b0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/27e1cf5e4c051c452d3a3b4306864a77.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2956f1cccb73a886d642d203e4f0bb52.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2b16902a0ab9359c22af350a1293eba5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2c7c25806c1b020cadf6f63e0962305f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2ce8440d2e698a0bc48ed62d63347606.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2d9c54e40775802a74cf79fe7d2e5158.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/2ef1295d48d146ea03955a5b8beab68d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/321e4c6811fb3e2ea089d57ac3b040bd.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/32933748836d9ddad6b8a9179d32bab3.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/32cb17f0202794769e79771235ba6bec.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/334b4758f80bf1340a4e02810b62509b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/344a803009a489a24e0035487899e424.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/34ad5ea3680cfc3332eb04da39f4f743.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/35329dfb1fc66d8a56de7b21aab94c36.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/36735ed50e9a4121e9fea9ef0954a5a1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/36ebddeb1ce8adfbd97498a9ff2c2d7b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3732e41af9de0bc63f40781a99c47060.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/379d6c0822bcdcec980d5a8b073966e0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/38071d54f1ea34a6b632919a315ae439.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/380d79fcfd90b303a04a00efb9ed5ec0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/382d5f75fc970a96ee9777775717ac97.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/38fd272149f9ea5fb309874b8348e534.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/39573cf1686e4588c2700c87529273c0.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3ab7b3c0725dcbca5991bf242eb9b0d6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3afb2cc93680553927e6cc9082224ee9.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3b6347f8a397754b4aa70388743c2721.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3bb5f4f8924127e723fa7746bf60bb4a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3c0d788c5aef31e769a7bc0198259867.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3c48228073c0f5dfd0edaf8297e1dba2.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3e1c0a5419cb5b02f60950abdabb060d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3e2b1f699d04d23eb5c686eb812f4dc7.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3e50d109d4df475fb8a6c61436914771.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3ebf363e73290b7b68ae11519f02b692.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3ee519d1095b211e0e845e8f9f096a82.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3f3b3bbb615c034f8f37055427b83892.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/3f8e146f550d20bebe5aa95937adc761.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/41192006e7fb5d2f9f1a7caa97105c8c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/41df7cfd1a135f290b3fa56272d53632.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/4281806367b1de9059a1f848c2510f13.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/431ad847b2fa08d7740410546f00bf5b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/47cdd5023e575a59907d132466ed2a9b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/48d418b2e265ac04d276e23fb980bbd6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/4ca38f0ff587e5775a2d6f1a2dde3c48.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/4d0419f124a75d5a016ebe63f9010fa7.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/4e4f919455da0987a141b4ef412aeb48.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/50a19c19b19fb06da7fc1e0b7a611a2e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/50d88726c42a23edb45562a9bce23a02.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/50ddd55196c0ec608c96d427ebb2fb8f.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5228cc9c439e70c10266f94192573758.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/52ed700aaee4c796d3aba30f6abc325f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/54639e69f9bb0f26b6e0c20251d837c8.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5954156ca63ba6e21a8d13d55731c53b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5a34e845cf080729c16df88f67bdbcf3.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5b8a1dd7275c2db6ccf1e01d55644ac6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5bdc928cd9257d788fb7a5343279fe73.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/5c54b4cdaacef7f7ab4db1bb72ce361a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6044e0fddda1c4891d5575b4e65c5d23.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/62275962ff6d2a8c47a9328a03d0fea6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/644dbb6a92190c74c2ca806d9d56dd02.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/64de0604052d048c582136011aaec101.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6530c9177543fbff69c3660d3e33a81e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/65501877c75fd5623c9ba3a5519c5d9a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/666ed43a5283cf26881a402d93328d8c.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6764dc15ea7b8ee22c2266fbedf1629e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/679d541d97dada7b64e8d7791dacd6ba.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/67cb5d10fdf41c150ceaec0b041ec9e9.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/68476cc29d8bedd521d32ae91b064db6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/68705244048c105f2eac165a741e3182.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/68e86329cdb902703397dd04f5fc4416.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/690c84bc951f94458e7fe0075907e31a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6a3423da80259f1997c2e2252c8554ab.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6c4f5cb0664c744c67d3d8e2ee2a8bff.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6d39ed1e24c47282d4bc7e849660db5e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6dba2d2635ebf1a0a76c65b1308b8eaa.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6e630006d7d1732df7885c17566d2d56.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6f3e0ca7308179c11374fd8095d64f64.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/6fc44cad1abecf6df2cff07272bfd31b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7417807edf3228ede7205ab88ce58ecf.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/74efae613deccc0dcd4093c3f44c600a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/76d3ee0b5aa07dd4d045f569bebb748b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/772eed652fda688964d02acb01784609.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/79c7dd05726956976d682d1ae0b5d84d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/79cb396d7e1fb56b5cf5a14b0b513b34.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7a351a9cd38836cc0730ebeed0d61953.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7ad9cd5126d73a535492159809361cd1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7c52c93570e8548e38dea375ddc00481.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7ca193687bf18f5f37d6d598a9e2d72e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7d2bcc6b215b153c1d49ec5edfede53e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7d42aee776410000268c47280a00c67d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7df4a721a60c5380b21ea35def918bf4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/7e98b2eeb64d081d620055122e9915a0.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/80acd2330a03632340c6961a055f9fc3.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8133d23d199cb604b3b0b495c34058f9.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/84c9011a7be78653e7be5dc29e91d753.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/85605c5ede51aa5fde314908a0e1dd18.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8576ec274c98b3831668a172fa632d80.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/85f41e792ee3de1ac5020de929e1c596.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/88d5bebdacaa8043d0726fa84dbfc257.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/89128e9368d37da24f50b69f56d541fe.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/89372d9c14cb3e6a12d7ded732418f63.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/893dcbfb89ffeacaa99f40f37c31c669.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8c376d7b111a7da475c29028f2fd4330.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8c4e95a40b4e33b38b5d28d9ca5f9cb3.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8c8e5f3cee9fd116b04e25d061ee3488.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/8e86957d7556b9d8b7ddc1e31bbed823.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/90008290651fdeddf133bee26cc2e3e1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/914a1ddda61ca7ee342100d93e625e25.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/91db0fa13e5e2065c1c8b336b86fc4c5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/93790f9ff497dfbdac23b3844326f0d5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/939cc2608b36b67d5c2fe1b6dc8ea54b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/9496ca8909ce2321bfc35cbe13d9d281.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/94a9310cd4c8ab0dde63d210c39adfa3.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/960bf92a61acbc81aafd4f8882506ca9.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/967022599cfd24670ded11a2c801cb34.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/980c8a4cc81391e2ce4a2bbee7e1e6a9.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/990af5a53b5e9a8d890fd389c6e0cabf.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/996fd5a4211944694571fca1aaa87105.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/9b5d8d6ca9926e02fff9fac8113762be.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/9e104be23a3904181ce3d8ad4f4ab220.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/9e1fc8104320f894b5cb7cbd620e4d93.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/9f7c53c593cacb46be354f01f9719e15.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a0ccfff49c4e05313f93e04c41df9e58.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a2741986477cab7cb901f93ba8362f41.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a2ae81125a3a0bcf0012a4a8dbfee438.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a311b864532fd54bd959242c6376c303.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a3d4eaca0bbaf2e48cb439525f833eed.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a5237505c0018dcaf2332aa645d98fb7.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a543b622ee68b6d53c4400bab804d910.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a56da8a7ff577d3943d46542a4b838fe.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a5c446f7a06efadb1547b74b2a74befd.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a5e7645e82813977ee845e1455ab1c50.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a6da1526d066440ae439665d78a814ba.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a7487aed908c38304252d1bbf8a74f90.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a829e0fd133b98fd41c9ce565fae9ad4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/a9c663e1be35f13be44ee6ec9e190e32.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/aafa3c7949a62e4a9cfc2452c03d5691.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/aba4cbe833311b22bf5d0427f24941e6.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/abd7d90c084fce01e013a12cd9dfb8d4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/adc208d6cb444ffdd3a5dce73c2baee7.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b2974a15012c06b846be42ba82708c32.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b2f0074cce92da89ff8c1bd4899efd32.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b30d1699a32476a23eb4a032f624f821.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b31df2415b2195d8fa30ab2b8cec6f26.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b6baa85e3fdcc25f5f4cf94b2dfb3ba4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b8169fe3025bec6aa838d0ab8c76158e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b8a3b8e54946b7da92cd6a554de14280.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/b94f654fca25ee13e1af4b36c6188be5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/bbce6fbd8d4e759d7e4770be2ac8fe1e.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/bbf0b5f24720c346912022ccdf2e213d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/bd37631ebcc69021fee8a3a115e9188c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/bdd184c51212429fcf35500b71c86829.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/be490516b49d9e274eb9c3cc4dcd4a42.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/bf6cfc0dc4bddf23d51d404860b60c00.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c01a69160f89b6f90a7b7ea438910e86.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c17747a3ee44a81b34f8a2dece22f076.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c349130a660e1b4877d286b099cb3e53.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c46366ac40713b505bd07a45b9cda8cd.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c4e0e052b26014b958361ca24591e880.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c527e918ff0a8e574b40a00d50866376.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c56affac7fa1841b8c945ff7c1ee8e42.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c5c1aace2f9807f5a8433beacefb89d5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c6842325fb41c160202c49e4a4c50d8b.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c6bc2d5d0c5396826c9d0b6d5c23e26d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c6ef9ca883d83930d49ac7d07559852c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c7abcdc6ecfd72bb00803225755a0d6b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c7d4ef89bfcee2c44727fc9bac4c6f1d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/c8f1e633cb926fe996d5f2044426716b.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ca64402c74c2c861854a74d9fee0d56b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cadb06d453c2085804acba60a7196e5d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cb3a462071102ce7affe15497b674321.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cbdcef242cc969fdcea7bbd898430f4a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cce38c49564849ca8d84971eebfe1d72.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cde8be452aefe0c97004d0108cf5fe37.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ce53e9a85944c58fead0c64f6ddd6272.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cf6f184ef6fa9bb5ac418756f2050ad3.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cf951cf6b21d5af8ca797c8d013a78fa.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/cfdcd42409dccb38a513bc3bca47d4ca.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d0910d8518c18973441e6349561fed55.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d13c1c99bddbc642489b8a9e7d3d4aae.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d1fc0c74a0d39522d8a35249c7b53c23.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d1ff0bc4ecb52aa165876cbd218d8413.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d367a7d65bc40ba4cd89e27d9afdd887.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d56b48a046a639a406a699708812cf07.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d5a9d79018e75c4302880ad278e28363.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d6ce767f8a5bfa4fb341cd873fd19755.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d7cfd77837fdccb790ac25f9018bfea5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/d8ae2051c1c637ef58cbfff835862815.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/daae8dd216a8d0163756498e642e4f01.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/dbef3e0d34ebab88f6ee074213b96e0c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/dbf8e36831437278c75ac3295d420944.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/dc102bb51e198559d7bde12f6293456e.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/dd6bebe0a76227cd094747aab35d9b67.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ddf6975ff5fbc5c661477b59ca586e4d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/de4d95097fc8ff3a4e564ca1b1e5f106.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/de967b22e35857b24b5b26e279d6525e.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/decdfc6ce8b9de00d594b2ca783388f1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/dfd3937a4be1f2bb1b8f0c783501e347.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e034d72fd6b56cf59b58738a20161a20.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e05e69f3640d00f6512576fbd1fbc71d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e089ce555f6a93225dbbd6857eab7cbb.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e2bba2b979fee7fd23a44657253057af.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e3da3ff90cf53f4a9658f3d622190e2a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e46127dc2b6b65ea71d5e4f3e66d526b.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e543db54fa740737bf75fb6493e830ed.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e5fe63fa99c78f4ae0ba3ed0c8dcd333.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e61ca88883d625f967c831c9a433599c.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e6f8f40ad771f3bf9592bd0b23cf9435.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e736ca84f941c8a4de150b5e327fc508.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e782f1b3e6277fd8a5f7c6717b41da12.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/e7910750ca8b31e5b33d54d82fee104a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ec41ccbb04cee550014cf8e576f76619.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ecfcf3d2db9f233abd64137387ea9a9d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ed54a17dda6215c4ebd914aa00d070e4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/edb5a958b8f7500ddc4825759a251692.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ede83a7ccfe409df78e72f619c94d71f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ee6eb6b7a814d20b2414551e5d0cd11d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f05ec885592fe8fc3e08767f078656fc.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f0f94f24c4bc9a4d90c7e11b521f3f5f.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f1f2b8a76d1d4e07827b8548b3ef1c8d.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f4a09c8a767f701b81df89c1ef7b3512.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f517e60c538984f781281242bdbf8607.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f6fad020e77fef815450ef1a64d9353a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f841fe31d977148c591ab6b18c0edb8f.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f88a1617bec23310e493b5e3eda78ef5.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f8b50c62d1562efacbe486fb5ed8bd87.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f8c9a0dc01662987361a64b52a8302e4.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/f9292c8cd2371ac9de89f6c155166df1.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/fb55cc5f720ca1d6412e7036e7463982.js ================================================ var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":false,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/fd69d6c6f08c01154641d96aacb5e893.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/config/post-chat/ffe22751f3c8e22b1d48d3c99cb99e5a.js ================================================ let tianliGPT_postSelector='#content';let tianliGPT_injectDom='.ai-summary';let tianliGPT_wordLimit=5000;let tianliGPT_recommendation=true;let tianliGPT_podcast=true;var postChatConfig={"addButton":true,"backgroundColor":"#6a64d5","blackDom":["meting-js",".lnt",".ln"],"bottom":"","defaultChatQuestions":["你是谁?","Lruihao 是谁?","作者的开源项目有哪些?"],"defaultInput":false,"defaultSearchQuestions":["给你的 Markdown 挑挑刺","中文技术文档的写作规范","语义版本控制(SemVer)","Vue.js 相关的文章","FixIt 相关的文档","现代 CSS 解决方案","拖拽式仪表盘系列 ","程序猿的自我修养","CSS 奇技淫巧","作者的随笔"],"fill":"","frameHeight":"","frameWidth":"","height":"","hotWords":true,"left":"","showInviteLink":true,"upLoadWeb":true,"userDesc":"如果你对网站的内容有任何疑问,可以来问我哦~","userIcon":"/images/avatar.jpg","userMode":"magic","userTitle":"Cell+","width":""} ================================================ FILE: js/page/a0ccfff49c4e05313f93e04c41df9e58.js ================================================ document.addEventListener('DOMContentLoaded', () => { new Vue({ el: '#app-mmt', data: { message: '' }}); }); ================================================ FILE: js/post-preview.min.87a155547f6a054538e79540adb8ea7b78352bf6c813c03e82cd2b878da3de8f.js ================================================ "use strict";(()=>{var p={cropTopPx:60,debug:!1,disableOnHome:!0,enable:!0,excludeSelector:"body > div.wrapper > main > div.home",hideDelay:220,maxBytes:12e5,mobileBp:900,prefetchOnHover:!0,showDelay:120};var m=class f{constructor(e){this.configuration=e,this.excludeRootNode=null,this.excludeSelectorResolved=!1,this.activeTippyInstance=null,this.activeAnchorElement=null,this._defaultTippyDurationShow=120,this._defaultTippyDurationHide=110,this.fileExtensionRegex=/\.(?:png|jpe?g|gif|webp|avif|svg|ico|bmp|tiff?|mp4|webm|mp3|wav|ogg|flac|pdf|zip|rar|7z|tar|gz|bz2|xz|dmg|exe|msi|apk|ipa|docx?|xlsx?|pptx?|csv|json|xml|yml|yaml|toml|map)$/i,this.assetPathRegex=/^\/(?:images|img|css|js|fonts|font|assets|static|files)\//i,this.htmlExtensionRegex=/\.html?$/i}static fromParams(){return new f({enable:!!p.enable,debug:!!p.debug,mobileBp:Number(p.mobileBp||900),disableOnHome:p.disableOnHome!==!1,excludeSelector:String(p.excludeSelector||""),showDelay:Number(p.showDelay||120),hideDelay:Number(p.hideDelay||220),maxBytes:Number(p.maxBytes||12e5)})}static boot(){let e=f.fromParams();try{e.init()}catch{}}log(...e){console.log("[post-preview]",...e)}init(){this.guardEnvironment(),this.bindHoverDelegation(),this.bindThemeSynchronization(),this.bindScrollHideRules()}guardEnvironment(){if(!this.configuration.enable||window.top!==window.self)throw 0;let e=window.matchMedia?window.matchMedia.bind(window):null;if(window.innerWidth<=this.configuration.mobileBp||e&&e("(hover: none)").matches||e&&e("(pointer: coarse)").matches||!window.tippy)throw 0;if(this.configuration.disableOnHome){let t=String(window.location.pathname||"/").replace(/\/+$/,"")||"/";if(t==="/"||/^\/[a-z]{2}(?:-[a-z]{2})?$/i.test(t))throw 0}}getIsDarkTheme(){if(typeof window.fixit?.isDark=="boolean")return window.fixit.isDark;let e=document.documentElement.getAttribute("data-theme");return e?e==="dark":document.documentElement.classList.contains("dark")}applyThemeToAllOpenPreviews(e){document.querySelectorAll(".pp-box").forEach(i=>{i.classList.toggle("pp--dark",!!e)})}bindThemeSynchronization(){if(this.applyThemeToAllOpenPreviews(this.getIsDarkTheme()),typeof window.fixit?.switchThemeEventSet=="object"){window.fixit.switchThemeEventSet.add(e=>{this.applyThemeToAllOpenPreviews(e)});return}new MutationObserver(()=>{this.applyThemeToAllOpenPreviews(this.getIsDarkTheme())}).observe(document.documentElement,{attributes:!0,attributeFilter:["class","data-theme","style"]})}bindHoverDelegation(){document.addEventListener("mouseover",e=>{let i=e.target?.closest?.("a[href]");i&&this.isEligibleAnchor(i)&&this.mountPreviewForAnchor(i)},{passive:!0})}bindScrollHideRules(){let e=()=>{let t=this.activeTippyInstance;if(t&&t.state?.isShown){try{t.setProps({duration:[0,0]})}catch{}try{t.hide()}catch{}queueMicrotask(()=>{try{t.setProps({duration:[this._defaultTippyDurationShow,this._defaultTippyDurationHide]})}catch{}})}},i=t=>{let n=this.activeTippyInstance;if(!n||!n.state?.isShown)return!1;let o=n.popper;return o?!!(t&&o.contains(t)):!1};document.addEventListener("scroll",t=>{!this.activeTippyInstance||!this.activeTippyInstance.state?.isShown||i(t.target)||e()},!0),window.addEventListener("wheel",t=>{!this.activeTippyInstance||!this.activeTippyInstance.state?.isShown||i(t.target)||e()},{passive:!0,capture:!0})}isEligibleAnchor(e){if(!e.closest("main")||e.closest("header,footer,.tippy-popper")||this.isBlockedByExcludeSelector(e))return!1;let i=(e.getAttribute("href")||"").trim();if(!i||i[0]==="#"||/^(mailto:|tel:|javascript:)/i.test(i)||e.hasAttribute("download"))return!1;let t;try{t=new URL(e.href,window.location.href)}catch{return!1}if(t.origin!==window.location.origin)return!1;let n=t.pathname||"/";if(this.assetPathRegex.test(n)||n.includes("/favicon.")||this.fileExtensionRegex.test(n))return!1;let o=n.slice(n.lastIndexOf("/")+1);return!(o.lastIndexOf(".")!==-1&&!this.htmlExtensionRegex.test(o))}isBlockedByExcludeSelector(e){return this.configuration.excludeSelector?(this.excludeSelectorResolved||(this.excludeRootNode=document.querySelector(this.configuration.excludeSelector),this.excludeSelectorResolved=!0),this.excludeRootNode?this.excludeRootNode.contains(e):!1):!1}createPreviewUI(){let e=document.createElement("div");e.className="pp-box",e.classList.toggle("pp--dark",this.getIsDarkTheme());let i=document.createElement("div");i.className="pp-head";let t=document.createElement("div");t.className="pp-path";let n=document.createElement("a");n.className="pp-url",n.target="_blank",n.rel="noopener";let o=document.createElement("button");o.className="pp-close",o.type="button",o.innerHTML='';let s=document.createElement("div");s.className="pp-body";let d=document.createElement("div");d.className="pp-doc";let u=document.createElement("div");return u.className="pp-doc__inner",d.appendChild(u),s.appendChild(d),i.append(t,n,o),e.append(i,s),{previewBox:e,breadcrumbPathElement:t,hostLinkElement:n,closeButtonElement:o,innerContainerElement:u}}renderBreadcrumbPath(e,i){e.textContent="";let t;try{t=new URL(i,window.location.href)}catch{t=null}let o=(t?.pathname||"/").split("/").filter(Boolean),s=()=>{let a=document.createElement("span");a.className="pp-sep",a.textContent="/",e.appendChild(a)},d=(a,r)=>{let l=document.createElement("a");l.className="pp-seg",l.href=r,l.target="_blank",l.rel="noopener";let c=document.createElement("span");c.className="pp-seg__chip",c.textContent=a,l.appendChild(c),e.appendChild(l)},u="";for(let a=0;a0&&s(),u+="/"+o[a],d(o[a],window.location.origin+u+"/")}mountPreviewForAnchor(e){if(e._postPreviewTippyInstance)return;let i=this.createPreviewUI(),t=window.tippy(e,{trigger:"manual",interactive:!0,hideOnClick:!1,placement:"bottom-start",animation:"shift-away",theme:"pp",arrow:!1,inertia:!0,duration:[this._defaultTippyDurationShow,this._defaultTippyDurationHide],maxWidth:"none",appendTo:document.body,popperOptions:{modifiers:{offset:{offset:"0,8"},preventOverflow:{boundariesElement:"viewport",padding:8},flip:{enabled:!1}}},content:i.previewBox,onShow:n=>{if(this.activeTippyInstance&&this.activeTippyInstance!==n)try{this.activeTippyInstance.hide()}catch{}this.activeTippyInstance=n,this.activeAnchorElement=e;let o=e.href;this.renderBreadcrumbPath(i.breadcrumbPathElement,o);let s=new URL(o,window.location.href);i.hostLinkElement.href=o,i.hostLinkElement.textContent=s.host,i.closeButtonElement.onclick=a=>{a.preventDefault(),a.stopPropagation();try{n.hide()}catch{}},this.abortAnchorRequest(e),e._ppReqSeq=(e._ppReqSeq||0)+1;let d=e._ppReqSeq,u=new AbortController;e._ppAbortController=u,this.loadPreviewHtml(o,u.signal).then(a=>{a&&(i.innerContainerElement.innerHTML=a,queueMicrotask(()=>n.popperInstance?.update?.()))}).catch(a=>{i.innerContainerElement.textContent="Failed to load preview.",this.log("load failed",{href:o,error:a}),queueMicrotask(()=>n.popperInstance?.update?.())})},onHidden:()=>{this.abortAnchorRequest(e),this.activeTippyInstance===t&&(this.activeTippyInstance=null,this.activeAnchorElement=null)}});e._postPreviewTippyInstance=t,this.attachHoverBehavior(e,t)}attachHoverBehavior(e,i){let t=!1,n=!1,o=0,s=0,d=()=>{s&&window.clearTimeout(s),s=window.setTimeout(()=>{if(!(t||n))try{i.hide()}catch{}},this.configuration.hideDelay)};e.addEventListener("mouseenter",()=>{t=!0,s&&(window.clearTimeout(s),s=0),o&&window.clearTimeout(o),o=window.setTimeout(()=>{if(t)try{i.show()}catch{}},this.configuration.showDelay)},{passive:!0}),e.addEventListener("mouseleave",()=>{t=!1,o&&(window.clearTimeout(o),o=0),d()},{passive:!0});let u=i.show.bind(i);i.show=()=>{u(),queueMicrotask(()=>{let a=i.popper;!a||a._postPreviewHoverHooked||(a._postPreviewHoverHooked=!0,a.addEventListener("mouseenter",()=>{n=!0,s&&(window.clearTimeout(s),s=0)},{passive:!0}),a.addEventListener("mouseleave",()=>{n=!1,d()},{passive:!0}))})}}abortAnchorRequest(e){let i=e._ppAbortController;if(i){e._ppAbortController=null;try{i.abort()}catch{}}}async loadPreviewHtml(e,i){let t=await fetch(e,{credentials:"same-origin",cache:"no-store",signal:i,headers:{Accept:"text/html"}});if(!t.ok)return null;let n=Number(t.headers.get("content-length")||0);if(n&&n>this.configuration.maxBytes)return null;let o=await t.text();return this.configuration.maxBytes&&o.length>this.configuration.maxBytes?null:this.extractPreviewHtml(o,e)||null}extractPreviewHtml(e,i){let t=new DOMParser().parseFromString(e,"text/html"),n=new URL(i,window.location.href),o=t.querySelector("main article.page.single")||t.querySelector("div.page.archive")||t.querySelector("main article")||t.querySelector("article.page.single")||t.querySelector("article")||t.querySelector("main");if(!o)return"";let s=o.cloneNode(!0);s.querySelectorAll('script,style,link[rel="stylesheet"],iframe,object,embed').forEach(r=>r.remove()),s.querySelectorAll("#comments,.comment,.comments,.giscus,.utterances,meting-js,.meting,.aplayer,.aplayer-fixed").forEach(r=>r.remove());let d=(r,l)=>{let c=r.getAttribute(l);if(!c)return;let h=c.trim();if(h&&h[0]!=="#"&&!/^(data:|mailto:|tel:|javascript:)/i.test(h))try{r.setAttribute(l,new URL(h,n).href)}catch{}};s.querySelectorAll("a[href]").forEach(r=>{d(r,"href"),r.target="_blank",r.rel="noopener"}),s.querySelectorAll("img").forEach(r=>{let l=r.getAttribute("data-src")||r.getAttribute("data-original")||r.getAttribute("data-lazy-src"),c=r.getAttribute("src");(!c||c==="")&&l&&r.setAttribute("src",l),d(r,"src"),d(r,"data-src"),r.loading="lazy",r.decoding="async"});let u="pp-"+this.hash32(n.pathname)+"-",a=new Map;return s.querySelectorAll("[id]").forEach(r=>{let l=r.id;if(!l)return;let c=u+l;a.set(l,c),r.id=c}),s.querySelectorAll('a[href^="#"]').forEach(r=>{let l=r.getAttribute("href").slice(1),c=a.get(l);c&&r.setAttribute("href","#"+c)}),s.querySelectorAll("label[for]").forEach(r=>{let l=r.getAttribute("for"),c=a.get(l);c&&r.setAttribute("for",c)}),s.outerHTML}hash32(e){let i=String(e||""),t=2166136261;for(let n=0;n>>0).toString(16)}};document.readyState==="complete"?m.boot():window.addEventListener("load",()=>m.boot(),{once:!0});})(); ================================================ FILE: js/valine-hacker.js ================================================ // 是否默认折叠 Valine 评论 const collapseList = false; // Valine 是否插在系统评论前面 const insertBefore = false; // Valine 评论最大高度,例如:500px、50vh、auto const listMaxHeight = "auto"; /** * ValineHacker * * @example 在 front matter 中添加以下配置 * * library: * css: * valineHacker: valine-hacker.css * js: * valine: https://unpkg.com/valine@latest * valineHacker: /js/valine-hacker.js * */ class ValineHacker { #timerHackValine; /** * 修改 Valine 样式及功能 */ hackValine() { const $valine = document.querySelector('#valine'); this.#timerHackValine = void 0; if (!$valine) { return; } this.#timerHackValine = setInterval(() => { const $vcount = $valine.querySelector('.vcount'); if ($vcount) { const $vcards = $valine.querySelector('.vcards'); const $vpage = $valine.querySelector('.vpage'); // 是否默认折叠评论 if (collapseList) { $vcards.classList.add('d-none'); $vpage.classList.add('d-none'); } $vcount.addEventListener('click', () => { $vcards.classList.toggle('d-none'); $vpage.classList.toggle('d-none'); }); clearInterval(this.#timerHackValine); } }, 500); }; init() { const comments = document.querySelector('#comments'); if (!comments) { return; } const comment = document.createElement('div'); comment.id = 'valine'; comment.classList.add('comment'); comment.style.maxHeight = listMaxHeight; if (insertBefore) { // 插在系统评论前面 comments.insertBefore(comment, comments.firstChild); } else { // 插在系统评论后面 comments.appendChild(comment); } new Valine({ el: '#valine', appId: '7HwTRT0Q0Tfrat6ugrT6P67c-gzGzoHsz', appKey: 'mhTY1kuUmviCtQwkwOASfsfD', placeholder: 'ヾノ≧∀≦)o~ 有事请留言!\n评论功能以邮件作为通知方式!\n如有必要请填写正确邮箱哦!', avatar: 'wavatar', meta: ['nick', 'mail', 'link'], requiredFields: ['nick', 'mail', 'link'], pageSize: 10, lang: 'zh-CN', visitor: true, recordIP: true, highlight: true, enableQQ: true, serverURLs: '', }); this.hackValine(); } } /** * immediate. */ (() => { const vh = new ValineHacker(); // it will be executed when the DOM tree is built document.addEventListener('DOMContentLoaded', () => { vh.init(); }); })(); ================================================ FILE: lib/shortcode-caniuse/caniuse-embed-element.iife.js ================================================ var CaniuseEmbedElement=(function(p){"use strict";const H=globalThis,D=H.ShadowRoot&&(H.ShadyCSS===void 0||H.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,j=Symbol(),W=new WeakMap;let J=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==j)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(D&&t===void 0){const s=e!==void 0&&e.length===1;s&&(t=W.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&W.set(e,t))}return t}toString(){return this.cssText}};const ht=r=>new J(typeof r=="string"?r:r+"",void 0,j),lt=(r,...t)=>{const e=r.length===1?r[0]:t.reduce((s,i,n)=>s+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+r[n+1],r[0]);return new J(e,r,j)},ct=(r,t)=>{if(D)r.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(const e of t){const s=document.createElement("style"),i=H.litNonce;i!==void 0&&s.setAttribute("nonce",i),s.textContent=e.cssText,r.appendChild(s)}},Z=D?r=>r:r=>r instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return ht(e)})(r):r;const{is:dt,defineProperty:ut,getOwnPropertyDescriptor:pt,getOwnPropertyNames:$t,getOwnPropertySymbols:ft,getPrototypeOf:mt}=Object,T=globalThis,K=T.trustedTypes,_t=K?K.emptyScript:"",yt=T.reactiveElementPolyfillSupport,C=(r,t)=>r,N={toAttribute(r,t){switch(t){case Boolean:r=r?_t:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,t){let e=r;switch(t){case Boolean:e=r!==null;break;case Number:e=r===null?null:Number(r);break;case Object:case Array:try{e=JSON.parse(r)}catch{e=null}}return e}},z=(r,t)=>!dt(r,t),F={attribute:!0,type:String,converter:N,reflect:!1,useDefault:!1,hasChanged:z};Symbol.metadata??=Symbol("metadata"),T.litPropertyMetadata??=new WeakMap;let E=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=F){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),i=this.getPropertyDescriptor(t,s,e);i!==void 0&&ut(this.prototype,t,i)}}static getPropertyDescriptor(t,e,s){const{get:i,set:n}=pt(this.prototype,t)??{get(){return this[e]},set(o){this[e]=o}};return{get:i,set(o){const h=i?.call(this);n?.call(this,o),this.requestUpdate(t,h,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??F}static _$Ei(){if(this.hasOwnProperty(C("elementProperties")))return;const t=mt(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(C("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(C("properties"))){const e=this.properties,s=[...$t(e),...ft(e)];for(const i of s)this.createProperty(i,e[i])}const t=this[Symbol.metadata];if(t!==null){const e=litPropertyMetadata.get(t);if(e!==void 0)for(const[s,i]of e)this.elementProperties.set(s,i)}this._$Eh=new Map;for(const[e,s]of this.elementProperties){const i=this._$Eu(e,s);i!==void 0&&this._$Eh.set(i,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const i of s)e.unshift(Z(i))}else t!==void 0&&e.push(Z(t));return e}static _$Eu(t,e){const s=e.attribute;return s===!1?void 0:typeof s=="string"?s:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return ct(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){const s=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,s);if(i!==void 0&&s.reflect===!0){const n=(s.converter?.toAttribute!==void 0?s.converter:N).toAttribute(e,s.type);this._$Em=t,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(t,e){const s=this.constructor,i=s._$Eh.get(t);if(i!==void 0&&this._$Em!==i){const n=s.getPropertyOptions(i),o=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:N;this._$Em=i;const h=o.fromAttribute(e,n.type);this[i]=h??this._$Ej?.get(i)??h,this._$Em=null}}requestUpdate(t,e,s,i=!1,n){if(t!==void 0){const o=this.constructor;if(i===!1&&(n=this[t]),s??=o.getPropertyOptions(t),!((s.hasChanged??z)(n,e)||s.useDefault&&s.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(o._$Eu(t,s))))return;this.C(t,e,s)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:i,wrapped:n},o){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,o??e??this[t]),n!==!0||o!==void 0)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),i===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[i,n]of this._$Ep)this[i]=n;this._$Ep=void 0}const s=this.constructor.elementProperties;if(s.size>0)for(const[i,n]of s){const{wrapped:o}=n,h=this[i];o!==!0||this._$AL.has(i)||h===void 0||this.C(i,void 0,n,h)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(s=>s.hostUpdate?.()),this.update(e)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};E.elementStyles=[],E.shadowRootOptions={mode:"open"},E[C("elementProperties")]=new Map,E[C("finalized")]=new Map,yt?.({ReactiveElement:E}),(T.reactiveElementVersions??=[]).push("2.1.2");const I=globalThis,Y=r=>r,R=I.trustedTypes,G=R?R.createPolicy("lit-html",{createHTML:r=>r}):void 0,Q="$lit$",_=`lit$${Math.random().toFixed(9).slice(2)}$`,X="?"+_,gt=`<${X}>`,g=document,w=()=>g.createComment(""),P=r=>r===null||typeof r!="object"&&typeof r!="function",B=Array.isArray,At=r=>B(r)||typeof r?.[Symbol.iterator]=="function",q=`[ \f\r]`,O=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,tt=/-->/g,et=/>/g,A=RegExp(`>|${q}(?:([^\\s"'>=/]+)(${q}*=${q}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`,"g"),st=/'/g,it=/"/g,rt=/^(?:script|style|textarea|title)$/i,bt=r=>(t,...e)=>({_$litType$:r,strings:t,values:e}),nt=bt(1),v=Symbol.for("lit-noChange"),c=Symbol.for("lit-nothing"),ot=new WeakMap,b=g.createTreeWalker(g,129);function at(r,t){if(!B(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return G!==void 0?G.createHTML(t):t}const Et=(r,t)=>{const e=r.length-1,s=[];let i,n=t===2?"":t===3?"":"",o=O;for(let h=0;h"?(o=i??O,l=-1):u[1]===void 0?l=-2:(l=o.lastIndex-u[2].length,d=u[1],o=u[3]===void 0?A:u[3]==='"'?it:st):o===it||o===st?o=A:o===tt||o===et?o=O:(o=A,i=void 0);const y=o===A&&r[h+1].startsWith("/>")?" ":"";n+=o===O?a+gt:l>=0?(s.push(d),a.slice(0,l)+Q+a.slice(l)+_+y):a+_+(l===-2?h:y)}return[at(r,n+(r[e]||"")+(t===2?"":t===3?"":"")),s]};class U{constructor({strings:t,_$litType$:e},s){let i;this.parts=[];let n=0,o=0;const h=t.length-1,a=this.parts,[d,u]=Et(t,e);if(this.el=U.createElement(d,s),b.currentNode=this.el.content,e===2||e===3){const l=this.el.content.firstChild;l.replaceWith(...l.childNodes)}for(;(i=b.nextNode())!==null&&a.length0){i.textContent=R?R.emptyScript:"";for(let y=0;y2||s[0]!==""||s[1]!==""?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=c}_$AI(t,e=this,s,i){const n=this.strings;let o=!1;if(n===void 0)t=S(this,t,e,0),o=!P(t)||t!==this._$AH&&t!==v,o&&(this._$AH=t);else{const h=t;let a,d;for(t=n[0],a=0;a{const s=e?.renderBefore??t;let i=s._$litPart$;if(i===void 0){const n=e?.renderBefore??null;s._$litPart$=i=new M(t.insertBefore(w(),n),n,void 0,e??{})}return i._$AI(r),i};const V=globalThis;class x extends E{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Ut(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return v}}x._$litElement$=!0,x.finalized=!0,V.litElementHydrateSupport?.({LitElement:x});const Mt=V.litElementPolyfillSupport;Mt?.({LitElement:x}),(V.litElementVersions??=[]).push("4.2.2");const xt=r=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(r,t)}):customElements.define(r,t)};const Ht={attribute:!0,type:String,converter:N,reflect:!1,hasChanged:z},Tt=(r=Ht,t,e)=>{const{kind:s,metadata:i}=e;let n=globalThis.litPropertyMetadata.get(i);if(n===void 0&&globalThis.litPropertyMetadata.set(i,n=new Map),s==="setter"&&((r=Object.create(r)).wrapped=!0),n.set(e.name,r),s==="accessor"){const{name:o}=e;return{set(h){const a=t.get.call(this);t.set.call(this,h),this.requestUpdate(o,a,r,!0,h)},init(h){return h!==void 0&&this.C(o,void 0,r,h),h}}}if(s==="setter"){const{name:o}=e;return function(h){const a=this[o];t.call(this,h),this.requestUpdate(o,a,r,!0,h)}}throw Error("Unsupported decorator location: "+s)};function f(r){return(t,e)=>typeof e=="object"?Tt(r,t,e):((s,i,n)=>{const o=i.hasOwnProperty(n);return i.constructor.createProperty(n,s),o?Object.getOwnPropertyDescriptor(i,n):void 0})(r,t,e)}var Nt=Object.defineProperty,Rt=Object.getOwnPropertyDescriptor,$=(r,t,e,s)=>{for(var i=s>1?void 0:s?Rt(t,e):t,n=r.length-1,o;n>=0;n--)(o=r[n])&&(i=(s?o(t,e,i):o(i))||i);return s&&i&&Nt(t,e,i),i};const Lt="ciu-embed";return p.CaniuseEmbedElement=class extends x{constructor(){super(...arguments),this.feature="",this.past=2,this.future=1,this.baseline=!1,this.origin="https://caniuse.lruihao.cn",this.theme="auto",this.loading="lazy",this.meta=Math.random().toString(36).slice(2),this.loaded=!1,this._iframeHeight=this.baseline?150:300,this.handleMessage=t=>{const e=this.parseData(t.data),{type:s,payload:i={}}=e;s===Lt&&i.feature===this.feature&&i.meta===this.meta&&(this._iframeHeight=Math.ceil(i.height),this.requestUpdate())},this.handleIframeLoad=()=>{this.loaded=!0}}connectedCallback(){super.connectedCallback(),this.setupMessageListener()}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.handleMessage)}setupMessageListener(){window.addEventListener("message",this.handleMessage)}parseData(t){try{return typeof t=="string"?JSON.parse(t):t}catch{return{}}}generateSource(){if(!this.feature)return"";const t=[`meta=${this.meta}`,`past=${this.past}`,`future=${this.future}`,`theme=${this.theme}`];return`${this.origin}/${this.feature}${this.baseline?"/baseline":""}#${t.join("&")}`}render(){const t=this.generateSource();return t?nt``:(this.loaded=!0,nt`

Data on support for the features across the major browsers from caniuse.com.
[ The feature parameter is required! ]

`)}},p.CaniuseEmbedElement.styles=lt`:host{display:block;width:100%;position:relative}:host(:not([loaded]))::after{content:"Loading " attr(feature) " compatibility data";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-secondary,#919191);font-size:14px;text-align:center;pointer-events:none;opacity:1;transition:opacity .3s ease;z-index:1;animation:loading-dots 1.5s infinite}@keyframes loading-dots{0%,20%{content:"Loading " attr(feature) " compatibility data"}40%{content:"Loading " attr(feature) " compatibility data."}60%{content:"Loading " attr(feature) " compatibility data.."}100%,80%{content:"Loading " attr(feature) " compatibility data..."}}:host([loaded])::after{opacity:0}.ciu-embed-iframe{display:block;width:100%;border:none;border-radius:0;opacity:0;transition:opacity .3s ease}:host([loaded]) .ciu-embed-iframe{opacity:1}.ciu-embed-empty{color:var(--text-secondary,#919191);text-align:center;font-size:12px}.ciu-embed-empty a{color:inherit;text-decoration:none}.ciu-embed-empty a:hover{text-decoration:underline}`,$([f()],p.CaniuseEmbedElement.prototype,"feature",2),$([f({type:Number})],p.CaniuseEmbedElement.prototype,"past",2),$([f({type:Number})],p.CaniuseEmbedElement.prototype,"future",2),$([f({type:Boolean})],p.CaniuseEmbedElement.prototype,"baseline",2),$([f()],p.CaniuseEmbedElement.prototype,"origin",2),$([f({type:String})],p.CaniuseEmbedElement.prototype,"theme",2),$([f()],p.CaniuseEmbedElement.prototype,"loading",2),$([f()],p.CaniuseEmbedElement.prototype,"meta",2),$([f({type:Boolean,reflect:!0})],p.CaniuseEmbedElement.prototype,"loaded",2),p.CaniuseEmbedElement=$([xt("caniuse-embed")],p.CaniuseEmbedElement),Object.defineProperty(p,Symbol.toStringTag,{value:"Module"}),p})({}); ================================================ FILE: me/whysmoke/index.html ================================================ 你为什么吸烟? | 菠菜眾長

你为什么吸烟?

decryptor loading
PHA+602f9ed2a8d1e08d8f74f5303e9eb93637d47f82ab6f1c15871cf8dd0481L+Z5LmI6K+05ZCn77yM5YW25a6e5LiJ5LqU5bm05b6A5LiK6LWw55qE5pyL5Y+L6YO955+l6YGT77yM5oiR5Lul5YmN5piv5LiN5oq954Of55qE77yM5Lul6Iez5LqO5ZCO5p2l5b6X55+l5oiR5byA5aeL5oq954Of5ZCO77yM5aSn5a626YO95Lya5b6I6ZyH5oOK44CC5omA5Lul77yM5oiR5bm25LiN5piv5Zyo6YKj5Liq5oe15oeC55qE5bm057qq5Li65LqG6KOF6YC86ICN6YW36ICM5byA5aeL55qE44CCPC9wPgo8cD7miJHkuLrku4DkuYjlvIDlp4vmir3ng5/vvJ/kuLrkuobniLHmg4XvvIHlvIDkuKrnjqnnrJHvvIzmsqHmnInpgqPkuYjkuK3kuozllaYg4oaSX+KGku+8jOS9huehruWunuWboOS4uuaEn+aDhe+8jDIwMjAg5bm0IDUg5pyIIDI4IOaXpe+8jOmCo+aZmuWbnuWuv+iIjeWQju+8jOaIkeS4gOS4quS6uuWdkOWcqOaYjuW+t+Wuv+iIjeeahOmYs+WPsOS4iu+8jOeCueS4iuS6huWupOWPi+eahOS4gOaUr+WIqee+pO+8jOaJgOacieeahOS4jeeUmOWSjOmBl+aGvuS7peWPiuWnlOWxiOetieS4gOezu+WIl+a3t+adgueahOaDhee7quW5tuayoeaciemaj+edgOmCo+aUr+eDn+eDn+a2iOS6keaVo++8jOWPquaYr+inieW+l+WktOaZleOAgjwvcD4KPHA+5ZCO5p2l5Zue5Yiw5YWs5Y+477yM5oC76KeJ5b6X55Sf5rS75Lit5bCR5LqG5LuA5LmI77yM5q+V5Lia5ZCO6YKj5Yeg5Liq5pyI5oiR5oSf5Y+X5Yiw5q+U6auY6ICD5pu055Sa5Y2B5YCN55qE5YmN5omA5pyq5pyJ55qE5Y6L5oqR5ZKM54Om6Ze377yM5LuO57K+55m95Yiw5Yip576k5YaN5Yiw5Y+M5ZacICjmiYDku6XlnKjmiJHnnIvmnaXvvIzmr5TotbflpKflrrbluLjmir3nmoToipnok4nnjovvvIzkuK3ljY7ov5nkupvkubHkuIPlhavns5/nmoTvvIzlj4zllpwgeXlkc+KApinvvIzluLjluLjkuIDkuKrkurrlnKggTDcg5qCLIDEwIOalvOeahOalvOair+aKvemXt+eDn+aKveWIsOWupOWPi+WCrOaIkeWbnuWOu+eGhOeBr+edoeinie+8jOS7juS4gOW8gOWni+WPquaKveS4gOague+8jOWIsOS4pOague+8jOWIsOacgOemu+iwseeahOaXtuWAmei/nue7reaKveWNgeWkmuaguSAo5oiR5pyN5LqG546w5Zyo5oiR5YGa5LiN5Yiw4oCmKe+8jOWktOmDveaZleS6hu+8jOi/mOaYr+mavuino+W/g+aDheOAgjwvcD4KPHA+MjEg5bm05Zue5a626L+H5bm077yM5Zyo5a625oq954Of77yM5oiR5aaI6Zeu5oiR5LuA5LmI5pe25YCZ5byA5aeL5oq954Of55qE77yM5oiR5pCq5aGe5LqG5LiA5LiL5rKh5Zue562U5LuW77yM5ZCO5p2l5oiR54i45Lmf55+l6YGT5LqG77yI6KaB5piv5pCB5Zyo5oiR55qE5Lit5a2m5pe25Luj77yM5oCV5piv5YWN5LiN5LqG5LiA6aG/5omT4oCm77yJ77yM5L2G5piv5oiR54i45rKh6Zeu5oiR77yM5Y+q5piv5Zyo5oq954Of55qE5pe25YCZ77yM5aSa5LqG5LiA5Liq57uZ5oiR5Y+R54Of55qE5Yqo5L2c44CCPC9wPgo8cD7ml7boh7Pku4rml6XvvIzlvZPml7bliIbmiYvnmoTlm57lv4blt7Lnu4/ooqvml7bpl7TlhrLmt6HkuoblvojlpJrvvIzmsqHmnInliJrlvIDlp4vpgqPnp43liLvmhI/pk63orrDnmoTmipjno6jvvIzkuZ/msqHmnInkuI3mjqXlj5fkuovlrp7ogIzliLvmhI/pgIPpgb/nmoTlv4PmgIHvvIzkvYbmmK/vvIzmir3nmoTmr4/kuIDljIXng5/mgLvmnInpgqPkuYjlh6DmoLnlpJrlpJrlsJHlsJHluKbngrnlm57lv4bjgII8L3A+CjxwPuS9oOS4uuS7gOS5iOS4jeaIkueDn++8nzwvcD4KPHA+5pei54S25pe26L+H5aKD6L+B77yM5ZC454Of5pyJ5LiA5LiH56eN5pu055Sa5Y2x5a6z5YGl5bq355qE5Z2P5aSE77yM5Li65LuA5LmI5LiN5oiS54Of5ZGi77yfPC9wPgo8cD7kuI3lj6/lkKborqTvvIzkuIDpg6jliIbljp/lm6DmmK/lt7Lnu4/miJDkuobkuaDmg6/vvIzmm7TlpJrnmoTov5jmmK/lroPmm77pmarmiJHotbDlh7rkuIDmrrXnl5vkuI3mrLLnlJ/nmoTml6XlrZDvvIzkuZ/lnKjmr4/mrKHpgYfliLDkuovnmoTml7blgJnpmarmiJHotbDov4fkuIDnqIvjgILlroPmmK/miJHnmoTnsr7npZ7mlK/mn7HvvIzmr6vkuI3lpLjlvKDjgILigJzkuI3lkLjng5/nmoTkurrkuI3opoHlnKjkuIDkuKrlkLjng5/nmoTkurrpnaLliY3lip3ku5bmiJLng5/igJ3vvIzmiJHku6XliY3lkKzkuI3mh4Lov5nlj6Xor53vvIzkuZ/luIzmnJvlpKflrrbmsLjov5zkuI3kvJrmh4LjgII8L3A+CjxwPui/mOacieWwseaYr+Wlouacm+acquadpeacieS4gOS4quWKneaIkeaIkueDn+eahOS6uuWHuueOsOWQp++8jOWlueeUmuiHs+S4jemcgOimgeeQhueUse+8jOWboOS4uuWlueeahOWHuueOsOWwseaYr+eQhueUseOAguS9huaYr++8geaIkeW3sue7j+W8gOWni+S4jeacn+W+hei/meS4queQhueUseS6huOAgjwvcD4KPHA+5Lq677yM5bCk5YW25piv5bm06L275Lq677yM5bCx6K+l5Y+K5pe26KGM5LmQ77yM5oiR5Zac5qyi5ZCD77yM5bCx5pKR5ZyG5LqG5ZCD77yM5oiR5Zac5qyi5omT55CD77yM5LuA5LmI5pe25YCZ5oOz5omT5LqG5oiR5bCx5Y675omT77yM5oOz5Lmw5LuA5LmI5bCx5Lmw5LuA5LmI77yM5ZKM6LCB5Zyo5LiA6LW35byA5b+D5bCx5ZKM5Zyo5LiA6LW3546p44CC5oOz5YGa55qE5LqL5bCx5YGa77yM5Lmf6K645LiL5LiA56eS5oiR5bCx5LiN5oOz5LqG44CC5oiR5bCx5Zac5qyi5oq95bGJ5aCG5ruh54Of55qE5oSf6KeJ77yM5oiR5oOz5oq95ZOq56eN77yM6ZqP5pe25oOz5oq95bCx6IO95ou/5Yiw55qE5oSf6KeJ77yM5ZKM5L2g5Lus5omT5ri45oiP5oOz55So5ZOq5Liq55qu6IKk5bCx55So5ZOq5Liq55qu6IKk5LiA5Liq6YGT55CG44CCPC9wPgo8cD7kuZ/kuI3nn6XpgZPku47ku4DkuYjml7blgJnlvIDlp4vvvIzmr4/mrKHmi4bkuIDljIXng5/vvIzpg73kvJrmi7/nrKzkuIDng5/orrjmhL/vvIznhLblkI7lgJLmlL7lnKjnm5LlrZDph4zvvIzllK/niankuLvkuYnogIXvvIzmiJHkuI3kv6HkvZvvvIjlsL3nrqHkuZ/ngbXpqozov4fkuIDmrKHvvInvvIzlj6rmsYLlv4PlronjgII8L3A+CjxwPuWGjeadpe+8jOiZveeEtuaKveeDn++8jOS9huaYr+S4gOiIrOaDheWGteS4i+aIkeS4jeaOpeS4jeeGn+eahOS6uueDn++8jOS7luWPr+S7peaKveaIkeeahOaIkeS4jeS7i+aEj+OAguWcqOi3r+i+ueeci+WIsOWtleWmh+Wwj+WtqeaIkei/mOaYr+S8muWIu+aEj+aUtui1t+aIkeeahOeDn+WktO+8jOS4jeWKneS4jeaKveeDn+eahOS6uuaKveeDn+OAguS5n+efpemBk+S6huWcqOWTquWPr+S7peaKveWcqOWTquS4jeiDveaKve+8jOWwvemHj+S4jee7meWIq+S6uuW4puadpeS6jOaJi+eDn+OAgjwvcD4KPHA+5pyA5ZCO77yM4oCc5ZC454Of5pyJ5a6z5YGl5bq34oCd77yM5ZC454Of5ZCO5p6c4oCc6Ieq6LSf4oCd44CC4oCL4oCL4oCLPC9wPgo=
================================================ FILE: me/whysmoke/index.md ================================================ # 你为什么吸烟? _**本文已加密,因此其原始内容不可见!**_ --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/me/whysmoke/ ================================================ FILE: offline/index.html ================================================ 离线 | 菠菜眾長

离线

ERROR_INTERNET_DISCONNECTED

您没有连接到 Internet,只有缓存的页面可用。

微信扫一扫,订阅本博客
================================================ FILE: page/1/index.html ================================================ https://lruihao.cn/ ================================================ FILE: page/10/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

新冠疫情未返校未返工第 N 天之“自动打卡”

信息

这件事还得从一只蝙蝠说起 …
算了,昨天下午 3 点半,我还在王者峡谷 Timing, 突然潇 X 巴哥打了个电话给我说关于自动打卡的想法 …
哎,反正就是由于疫情需要每天健康打卡汇报给学校,然后每天提交一样的太麻烦了,就想写个程序自动打卡 …
我和潇 X 巴哥确定思路后兵分两路:

  1. 他用 java 写个后台自动刷多人的,再弄个网页给用户填写账号密码保存在数据库;
  2. 我想的就很直接,只刷一个人的,python 模拟浏览器登录后打卡,再设置定时任务(多人则设定多个);

利用腾讯云为静态页面添加“动态”相册

信息
cos 桶相册,终于!!终于来了!!,idea 来自 [兰州小红鸡 - 给 hexo 静态博客添加动态相册功能],
功能虽好,但是还是先友情提示!
开放 API 是一个很危险的操作,意味着你的 cos 桶里面的所有资源包括目录结构都暴露的整个世界中,所以建议不要放一些比较私密的照片,保护自己的隐私,提防不良用心之人。下面就开始吧!

Php 按行读取文件信息

普通方法

首先采用fopen()函数打开文件,得到返回值的就是资源类型。接着采用 while 循环一行行地读取文件,然后输出每行的文字。feof()判断是否到最后一行,fgets()读取一行文本。

Script 的三种加载方式 (Async, Defer)

注意
JS 的加载分为两个部分:下载和执行。
浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染,去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。
================================================ FILE: page/11/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

NetBeans IDE 开发设置

安裝

官方下載點

擴充功能

安裝擴充功能

  1. 下載擴充套件包
  2. 開啟 NetBeans→Tools→Plugins→Downloaded→Add Plugins
  3. 選擇要安裝的擴充套件包

啟用已安裝的擴充功能

  1. 開啟 NetBeans→Tools→Plugins→Installed
  2. 選擇要啟用的套件 (*.npm)
  3. 點擊 Activate

匯入設定

  1. 開啟 NetBeans→Tools→Options
  2. 點擊 Import 匯入設定
  3. 選擇要匯入的套件包 (*.zip)

常用設定

程式碼排版

在程式開發中,程式碼排版很重要。一個好的排版利於開發人員程式閱讀,也便於後期維護人員閱讀。

简单评论模块--Php 表单练习

简单模仿了一个评论模板,当然肯定是没有博客的 valine 这么强大的 hhhh,
PHP 表单安全性的重要提示
$_SERVER["PHP_SELF"]变量能够被黑客利用!
如果页面中使用了PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。
比如说注入 js 脚本等,valine 以前的版本也有过这样的漏洞。

跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。

Php 函数学习

练习 php 函数的基本使用。
注:
必选参数在可选参数的前面。
可在函数中定义函数,需要先调用外层函数才能调用内层函数。

Python 实训总结Ⅰ

以前和前一段时间自己也学习了一下 python,也写了几个小爬虫; 这次正好又课程安排了为期两周的综合实训,主要是“用 python 做量化交易” 进行了两天,讲的都是一些基本的东西,以前也接触过,所以很容易理解。还讲了一些软件,pycharm,anaconda,sublime 等大都也都用过。anaconda 倒是第一次接触。

判断三角形的黑盒测试

黑盒测试着重测试软件功能,它并不涉及程序的内部结构和内容特性,主要根据规格说明,只依靠被测试程序的输入和输出之间关系或程序的功能来设计测试用例。
白盒测试则清楚程序内部的结构以及是如何运作的,因此白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。

================================================ FILE: page/12/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

条件注释判断浏览器版本<!--[If Lt IE 9]>;

<!--[if !IE]><!--> 除 IE 外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的 IE 可识别 <![endif]-->
<!--[if IE 6]> 仅 IE6 可识别 <![endif]-->
<!--[if lt IE 6]> IE6 以及 IE6 以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6 以及 IE6 以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅 IE7 可识别 <![endif]-->
<!--[if lt IE 7]> IE7 以及 IE7 以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7 以及 IE7 以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅 IE8 可识别 <![endif]-->
<!--[if IE 9]> 仅 IE9 可识别 <![endif]-->

Python 如何操作 Json?

Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点。许多主流的编程语言都在用它来进行前后端的数据传输,大大的简化了服务器和客户端的开发工作量。相对于 XML 来说,更加的轻量级,更方便解析,因此许多开发者都遵循 Json 格式来进行数据的传输和交换。今天我们详细介绍一下 Python 在 Json 的编解码方面的知识。

Java 通过 URL 和 URLConnection 访问网页资源

该例中首先生成一个 URL 对象 lrh,指向 RUI 豪小栈,然后再调用 lrh.openStream() 方法生成该 URL 的一个输入流,这是一个字节流,在此基础上进一步通过 InputStreamReader 和 BufferedReader 构造一个带缓冲功能的字符流,并通过这个字符流对象读取该 URL 的 html 内容,进而输出到桌面文件和控制台屏幕。URLConnection 类也可以用来对由 URL 引用的资源进行读写操作,前提是先通过 connect() 方法建立连接,然后再去获取响应头信息或响应内容。

文件加密解密(字节流)

基本功能:给定一个密钥,读取文件内容,加密后,输出到另外一个文件。

这里使用文件输入流读取文件内容,然后每个字节和密码进行异或简单加密。加密完成,使用文件输出流写入另一个文件中。解密和加密方法一样。利用的是对同一个数异或两遍其值不变的性质。因此一个程序可以完成加密和解密功能。只需修改文件名即可。

================================================ FILE: page/13/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

用 MyQR 制作专属动态二维码 (Py 和 Exe 版本)

Python 二维码生成器是 github 上@sylnsfar 开源的一个 python 生成二维码工具。有 python, 网页及 exe 版本,详见 sylnsfar/qrcode,本文主要介绍记录一下 python 版本使用。exe 可以去 项目开源地址 下载,公众号文章后台回复关键词“qrcode”获取链接。

可生成_普通二维码_、带图片的艺术二维码(黑白与彩色)动态二维码(黑白与彩色)

用记事本编写第一个 Java 程序

之所以用记事本来写不是为了装 X 或者什么的。反而恰恰是返璞归真,因为在用 java 语言进行程序开发时,首先是以纯文本的方式编写所有的 java 源程序,并保存成以.java为后缀的文件;然后将这些源程序用javac编译成.class后缀名的字节代码文件;字节代码不是被本地处理器执行的代码,而是能够被 java 虚拟机(JVM)执行的代码。最后用 java 运行工具在 JVM 执行 java 应用程序。
由于 JVM 可以运行在不同的操作系统上,因此同一个字节代码文件可以跨平台运行。

  • javac
  • java

Java 正则表达式练习

邮箱

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
//       Pattern 类 正则表达式的编译表示。
        Pattern pattern = Pattern.compile("^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$");
        String[] emails = {"admin@lruihao.cn", "lruihao.cn"};
        for (String email :
                emails) {
//Matcher 通过解释 Pattern 对字符序列执行匹配操作的引擎
            Matcher matcher = pattern.matcher(email);
            System.out.println(email + "匹配结果:" + matcher.matches());
        }
    }
}
1
2
admin@lruihao.cn 匹配结果true
lruihao.cn 匹配结果false

电话

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package base;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
  public static void main(String[] args) {
    Pattern patter=Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$");
    Scanner sc=new Scanner(System.in);
    String telnum=sc.nextLine();
    sc.close();
    Matcher matcher=patter.matcher(telnum);
    System.out.println(telnum+"匹配结果: "+matcher.matches());
  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
 * 获取当前的 httpSession
 * @return
 */
public static HttpSession getSession() {
 return getRequest().getSession();
}
/**
 * 手机号验证
 * @param str
 * @return 验证通过返回 true
 */
public static boolean isMobile(final String str) {
  Pattern p = null;
  Matcher m = null;
  boolean b = false;
  p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
  m = p.matcher(str);
  b = m.matches();
  return b;
}
/**
 * 电话号码验证
 * @param str
 * @return 验证通过返回 true
 */
public static boolean isPhone(final String str) {
  Pattern p1 = null, p2 = null;
  Matcher m = null;
  boolean b = false;
  p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
  p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");     // 验证没有区号的
  if (str.length() > 9) {
    m = p1.matcher(str);
    b = m.matches();
  } else {
    m = p2.matcher(str);
    b = m.matches();
  }
  return b;
}

身份证

1
2
3
4
/* 身份证正则表达式 16 或 18 */
   public static final String IDCARD="((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})" +
           "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" +
           "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";

Java 常用类

StringBuffer/StringBuilder(掌握)

StringBuffer 是线程安全的可变字符串

StringBuilder 是线程不安全的可变字符串。
和 StringBuffer 的功能一样。就是效率高一些,但是不安全。

HDU 1009 FatMouse' Trade(贪心)

题目大意

题目链接
老鼠有 M 磅猫食 , 有 N 个房间 , 每个房间前有一只猫 , 房间里有老鼠最喜欢的食品 J[i] , 若要得到房间的食物 , 必须付出相应的猫食 F[i] , 当然这只老鼠没必要每次都付出所有的 F[i],若它付出 F[i] 的 a%,则得到 J[i] 的 a%,求老鼠能吃到的最多的食物。

================================================ FILE: page/14/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

前端面试题 - HTML+CSS

原文链接
“卓越班”到了大三突然掀起一股毕业慌,一部分人投身于考研的热潮中,一部分人选择了培训机构学习技术。而我出于种种原因既不考研也不培训,选择自学 java 和 web 相关的知识,也希望因此能在以后谋得一份心仪的工作。

如果文章中有出现纰漏、错误之处,还请看到的小伙伴多多指教,先行谢过

百钱百鸡(枚举法)

我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

Hexo-Theme-Next @Modified LRH

危险
如无必要,不再更新!(2019.09.13)
今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。
我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。
以下仍为当前博客使用主题,lib 资源已打包 github。

宅音乐播放器

宅音乐播放器,HTML5 网页播放器,集成后台管理及 API 调用,目前正在开发中,敬请关注~
原项目IT 技术宅 开源,使用 thinkPHP 开发后台。 fork 地址 是我个人学习模仿的库,也是相当于备份源码。
注:插件修改于明月浩空免费版,仅用于学习交流,无商业价值,如发现商业传播,将禁止软件的免费使用。

================================================ FILE: page/15/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Eclipse 的基本使用

基本使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
A: 选择一个工作空间
  D:\develop\eclipse-SDK-3.7.2-win64\workspace
B: 如何写一个 HelloWorld 案例(代码以项目为基本单位)
  a: 创建项目(工程)
    *File -- New -- Java Project
    *在左边空白处,直接右键 -- New -- Java Project

    键入项目名称后直接 Finish。
  b: 所有的 java 文件必须写到 src 下面才有效
  c: 创建一个包
    cn.lruihao
  d: 在包下创建一个类
    HelloWorld

    同时让它帮我们写好了 main 方法。
  e: 在 main 方法中写内容即可
  f: 编译程序
    自动编译,在保存的那一刻帮你做好了
  g: 运行程序
    选择要运行的文件或者在要运行的文件内容中
    右键 -- Run as - Java Application 即可
  h: 内容显示
    在 Console 控制台显示内容

Eclipse 的基本设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
A: 程序的编译和运行的环境配置如果你的 Eclipse 启动没有问题就不要配置了
B: 去掉默认注释可以不用改
C: 行号的显示和隐藏
  显示在代码区域的最左边的空白区域右键 -- Show Line Numbers 即可
  隐藏把上面的动作再做一次
D: 字体大小及颜色
  a:Java 代码区域的字体大小和颜色
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java 修改 -- Java Edit Text Font
  b: 控制台
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
  c: 其他文件
    window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
E: 窗体给弄乱了怎么办
  window -- Reset Perspective
F: 控制台找不到了
  Window--Show ViewConsole

快捷键的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
A: 内容辅助键
  Alt+/ 起提示作用
  main+alt+/,syso+alt+/, 给出其他提示
B: 快捷键
  格式化  ctrl+shift+f
  导入包  ctrl+shift+o
  注释  ctrl+/
    ctrl+shift+/,ctrl+shift+\
  代码上下移动 选中代码 alt+/下箭头
  查看源码  选中类名 (F3 或者 Ctrl+鼠标点击

Eclipse 中如何提高开发效率

1
2
3
4
5
A: 自动生成构造方法
  a: 无参构造方法 在代码区域右键--source--Generate Constructors from Superclass
  b: 带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish
B: 自动生成 get/set 方法
  在代码区域右键--source--Generate Getters and Setters...

Win10,ubuntu 双系统时间不一致

我的 Ubuntu 和 Windows 双系统是 Ubuntu 是第一启动项,所以总是开机忘记点下键,一进 Ubuntu 系统时间就不对了(总是少了 8 小时),回到 Windows 时间也是错的。知道是错的调整一下还好。忘记调了有时候真的会误事。比如说 git 版本控制提交会遇到问题种种等。

QQ 强制生成卡片式链接

以前在 QQ 里面聊天的时候发现,有些链接是卡片式的链接,像知乎里那些一样,就好奇为啥我的域名没有生成卡片。
查了一下百度知道了大概就是 qq 没有抓取到你的网站的 xml。并在其他教程中得到了一个强制提交抓取的 url https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshareget_urlinfo?url= 于是就有了脚本刷新的想法。简陋的写了一下。

JS 验证码


请点击验证码处:↑
================================================ FILE: page/16/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Java 继承 Test

引用

继承的好处:

  1. 提高了代码的复用性
  2. 提高了代码的维护性
  3. 让类与类之间产生了关系,是多态的前提

继承的弊端:类的耦合性很强

设计原则:低耦合,高内聚。

  • 耦合:类与类的关系。
  • 内聚:自己完成事情的能力。

利用腾讯云对象存储 COS 桶托管 Hexo 博客

本以为 coding pages 与腾讯云合作后会更好,没想到正是这种初期 bug 不断,速度也是非常慢。比 gitee, 甚至 github 都要慢很多了。所以决定放弃 coding 了,本想挂到云服务器上,但是这个云服务器只续费了半年,可能不会再续费,前几天看到用腾讯云的 cos 桶 xml 制作动态相册的文章,知道了对象存储这个玩意,腾讯云 COS 提供免费 50G 的存储空间,还有 CDN 加速服务,我觉得是个不错的选择,部署后发现速度还挺好。
适用于 hexo, hugo 等静态博客的部署。

Arrays 类及基本使用

主要方法

  • static type[] copyof(type[] original,int length)
  • static int binarysearch(type[] a,type key)
  • static boolean equals(type[] a,type[] b)
  • static void fill(type[] a,type val)
  • static void fill(type[] a,int fromindex,int toindex,type val)
  • static void sort(type[] a)

Java 猜数字小游戏(Math 类)

大一刚学 c 的时候以前写过 c 语言版 的。

  1. Math: 针对数学进行运算的类
  2. 特点:没有构造方法,因为它的成员都是静态的
  3. 产生随机数: public static double random(): 产生随机数,范围 [0.0,1.0)
  4. 产生 1-100 之间的随机数 int number = (int)(Math.random()*100)+1;
  5. 猜数字小游戏案例

面向对象基础知识总结

面向对象思想(理解)

  1. 面向对象是基于面向过程的一种编程思想
  2. 思想特点:
    A: 是一种更符合我们思考习惯的思想
    B: 把复杂的问题简单化
    C: 让我们从执行者变成了指挥者
  3. 举例:
    A: 洗衣服
    B: 吃饭
    C: 买电脑
  4. 举例并代码体现 把大象装进冰箱

类与对象(掌握)

  1. 我们学习编程是为了把现实世界的事物用编程语言描述来实现信息化。
  2. 现实世界事物是如何表达的呢? 属性:外在特征
    行为:内在行为
  3. 我们学习的是 java 语言,它最基本的单位是类。
    所以我们要学会用类来体现一个事物。
  4. 类:是一组相关的属性和行为的集合
  5. 对象:是该类事物的具体个体。
  6. 举例:
    学生 类
    张三 对象

类的组成(掌握)

  1. 成员变量
    其实就是变量,只不过定义在类中,方法外,并且可以不用初始化。
  2. 成员方法
    其实就是方法,只不过不需要 static 了
  3. 案例:
    学生类
1
2
3
4
5
6
class Student {
  String name;
  int age;

  public void study() {}
}

类的使用(掌握)

  1. 创建对象
    格式:类名 对象名 = new 类名 ();
  2. 使用成员
    成员变量:对象名。变量名; 成员方法:对象名。方法名 (…);

成员变量和局部变量的区别(理解)

  1. 在类中的位置不同
    A: 成员变量 类中,方法外
    B: 局部变量 方法的形式参数,或者方法体中
  2. 在内存中的位置不同
    A: 成员变量 在堆中
    B: 局部变量 在栈中
  3. 生命周期不同
    A: 成员变量 随着对象的存在而存在,随着对象的消失而消失
    B: 局部变量 随着方法的调用而存在,随着方法的调用完毕而消失
  4. 初始化值不同
    A: 成员变量 有默认初始化值
    B: 局部变量 没有默认值,必须先声明,赋值,最后才能使用

形式参数问题(理解)

  1. 基本类型
    基本类型作为形式参数,需要的是该基本类型的值。
  2. 引用类型
    引用类型作为形式参数,需要的是该引用类型的地址值。(对象)

匿名对象(理解)

  1. 匿名对象:没有名字的对象。是对象的简化书写方式。
  2. 使用场景
    A: 调用方法,仅仅只调用一次
    B: 作为实际参数传递

封装(掌握)

  1. 隐藏实现细节,提供公共的访问方式
  2. 好处:
    A: 隐藏实现细节,提供公共的访问方式
    B: 提高了代码的复用性
    C: 提高了代码的安全性
  3. 使用原则
    A: 把成员变量隐藏
    B: 给出该成员变量对应的公共访问方式

private 关键字(掌握)

  1. 是一个权限修饰符
  2. 可以修饰类的成员(成员变量和成员方法)
  3. 仅仅在本类中可以访问,对外提供对应的 GetXXX(),SetXXX() 等方法
  4. 标准代码:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Student {
  private String name;
  private int age;

  public void setName(String n) {
   name = n;
  }

  public String getName() {
   return name;
  }

  public void setAge(int a) {
   age = a;
  }

  public int getAge() {
   return age;
  }

  public void study() {}
}

this 关键字(掌握)

  1. this:代表本类的对象
  2. 应用场景:
    解决了局部变量隐藏成员变量的问题。
    其他用法和 super 一起讲。
  3. 标准代码:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
  class Student {
    private String name;
    private int age;

    public void setName(String name) {//局部变量
      this.name = name;
    }

    public String getName() {
      return name;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public int getAge() {
      return age;
    }

    public void show() {
      System.out.println("姓名是:"+name+", 年龄是:"+age);
    }

    public void study() {
      System.out.println("学生爱学习");
    }

    public void eat() {
      System.out.println("学生要吃饭");
    }

    public void sleep() {
      System.out.println("学生想睡觉");
    }
  }

  class StudentTest {
    public static void main(String[] args) {
      Student s = new Student();

      s.setName("林青霞");
      s.setAge(28);

      s.show();
      s.study();
      s.eat();
      s.sleep();

      System.out.println("姓名是:"+s.getName());
      System.out.println("年龄是:"+s.getAge());
    }
  }

构造方法(掌握)

  1. 作用:对对象的数据进行初始化。
  2. 特点:
    A: 方法名和类名相同
    B: 没有返回值类型
    C: 没有返回值
  3. 注意事项
    A: 如果我们没写构造方法,系统将默认给出无参构造方法
    B: 如果我们写了构造方法,系统将不再给出默认无参构造方法
    建议:我们自己手动给出无参构造方法
  4. 给成员变量赋值:
    A: 无参+setXxx()
    B: 带参
  5. 一个标准的代码:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  class Student {
    private String name;
    private int age;

    public Student() {}

    public Student(String name,int age) {//构造方法
      this.name = name;
      this.age = age;
    }

    public void setName(String name) {
      this.name = name;
    }

    public String getName() {
      return name;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public int getAge() {
      return age;
    }

    public void show() {
      System.out.println("姓名是:"+name+", 年龄是:"+age);
    }
  }

  class StudentTest {
    public static void main(String[] args) {
      //无参+setXxx()
      Student s = new Student();
      s.setName("林青霞");
      s.setAge(28);
      s.show();

      //带参
      Student ss = new Student("张曼玉",20);
      ss.show();
    }
  }

对象的初始化过程(理解)

  • Student s = new Student(); 做了哪些事情
    A: 加载 Student.class 文件进内存
    B: 在栈中为 s 开辟空间
    C: 在堆中为学生对象开辟空间
    D: 为学生对象的成员变量赋默认值
    E: 为学生对象的成员变量赋显示值
    F: 通过构造方法给成员变量赋值
    G: 对象构造完毕,把地址赋值给 s 变量

static 关键字(掌握)

  1. 是一个状态修饰符。静态的意思
  2. 它可以修饰成员变量和成员方法
  3. 特点:
    A: 随着类的加载而加载
    B: 优先于对象存在
    C: 被所有对象共享

    这也是判断我们是不是该使用静态的条件
    举例:饮水机(可共享 static) 和水杯例子。
    D: 可以通过类名调用
    静态修饰的内容,可以通过类名调用,也可以通过对象名调用
  4. 方法访问特点
    A: 普通成员方法
    可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法
    B: 静态成员方法
    只能访问静态成员变量,静态成员方法
    简记:静态只能访问静态

    注意:
    静态中是不能有 this 的。
    先进内存的不能访问后进内存的。反之可以。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
 * 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。
 * 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。
 *
 * 在 java 中,用什么来表示成员变量是被共享的呢?static
 */
class Student {
  //姓名
  String name;
  //年龄
  int age;
  //班级编号
  //String classNumber;
  static String classNumber;

  public Student(String name,int age) {
    this.name = name;
    this.age = age;
  }

  public Student(String name,int age,String classNumber) {
    this.name = name;
    this.age = age;
    this.classNumber = classNumber;
  }

  public void show() {
    System.out.println(name+"---"+age+"---"+classNumber);
  }
}

class StudentDemo {
  public static void main(String[] args) {
    //创建学生对象
    Student s1 = new Student("林青霞",28,"20150306");
    s1.show();

    /*
    Student s2 = new Student("马云",35,"20150306");
    s2.show();

    Student s3 = new Student("马化腾",33,"20150306");
    s3.show();
    */
    Student s2 = new Student("马云",35);
    s2.show();

    Student s3 = new Student("马化腾",33);
    s3.show();
  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
  static: 静态关键字。

  作用:
    可以修饰成员变量和成员方法

  特点:
    A: 随着类的加载而加载
    B: 优先于对象存在
    C: 被类的所有对象共享
      这也是我们判断是否使用静态关键字的条件

      饮水机:可以被静态修饰
      水杯:不可以被静态修饰
    D: 可以通过类名调用
      我们的调用既可以是对象,还可以是类名
*/
class Student {
  public void show() {
    System.out.println("show");
  }

  public static void show2() {
    System.out.println("show2");
  }
}

class StudentDemo2 {
  public static void main(String[] args) {
    Student s = new Student();
    s.show();
    s.show2();

    Student.show2();
    //Student.show();&ensp;
  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
  static 的注意事项:
    A: 在静态方法中是没有 this 关键字的
      因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。
      先进内存的,不能访问后进内存的;而后进内存的,可以访问先进内存的。
    B: 静态只能访问静态。
      非静态的成员方法:
        可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法
      静态的成员方法:
        只能访问静态的成员变量,静态的成员方法
*/
/*
class Student {
  private String name;

  public static void setName(String name) {//&ensp; 静态方法不能用 this
    this.name = name;
  }

  public void show() {
    System.out.println(name);
  }
}*/

class Demo {
  int x = 10;
  static int y = 20;

  public void show() {
    System.out.println(x);
    System.out.println(y);
  }

  public static void show2() {
    //System.out.println(x);&ensp;
    System.out.println(y);//√
  }

  public void show3() {
    show();
    show2();
  }

  public static void show4() {
    //show(); 只能访问静态的成员方法
    show2();
  }
}

class StudentDemo3 {
  public static void main(String[] args) {
    //Student.setName("林青霞");
  }
}

静态成员变量和普通成员变量的区别(理解)

  1. 所属不同
    静态属于类的,称为类变量
    非静态属于对象的,称为对象变量,实例变量
  2. 内存空间不同
    静态在方法区的静态区
    非静态在堆内存
  3. 生命周期不同
    静态随着类的加载而加载,随着类的消失而消失
    非静态随着对象的创建而存在,随着对象的消失而消失
  4. 调用不同
    静态可以通过类名调用,也可以通过对象名调用。建议通过类名调用
    非静态只能通过对象名调用

main 方法是静态的(理解)

1
public static void main(String[] args)

public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。
static: 被 jvm 调用,不用创建对象,直接类名访问
void: 被 jvm 调用,不需要给 jvm 返回值
main: 一个通用的名称,虽然不是关键字,但是被 jvm 识别
String[] args:
早期出现是为了接收键盘录入数据的。

Java 水仙花数(循环)

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:13 + 53+ 3^3 = 153)。

Java 录入数据

记忆格式

(1) 导包:
import java.util.Scanner;
注意:位置在 class 的上面。
(2) 创建键盘录入对象:
Scanner sc = new Scanner(System.in);
(3) 获取数据
int i = sc.nextInt();
(4) 练习:
A: 求两个数据的和
B: 获取两个数据中较大的值
C: 获取三个数据中较大的值
D: 比较两个数是否相等

英语语法--主谓一致

常见情况

由 and 或 both and 连接的并列主语,谓语动词一般用复数

  1. English and chinese are two quite different languages.
  2. Both brother and sister tire of city life.

一但主语前被 no,every,each 所修饰时,谓语动词用单数

  1. No desk and (no) chair is seen in the hall.
  2. All work and no play makes Jack a dull boy.
  3. They each have been to the Forbidden city. each 位于主语后,所以谓语动词用复数

当主语表示同一事物的两个部分,同一个人的两个身份(第二个名词前无冠词),谓语动词用单数

比如 the(a)horse and cart a watch and chain a knife and fork a cup and soucer the butter and bread

================================================ FILE: page/17/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

英语语法--形式倒装

形式倒装,句子本不是本来的语序。

may 位于句首,标祝愿

例句

  1. May you succeed.
  2. May you have a happy holiday.
  3. Long live chairman Mao.(毛主席万古长青)

whatever 直接做成分或放在名词之前,however 放在 adv,adj 之前或 many,much 等词之前

例句

英语语法--完全倒装

完全倒装:把整个谓语动词放到主语前。

表方位或时间的副词 (adv)、表地点的介词短语位于句首时

例句

  1. Here comes the bus.
  2. In the lecture hall of a university sits a professor.
  3. Out rushed the children.
  4. Now comes your turn.
  5. Up jumped the cat and caught the mouse.
  6. Down came the rain and up went the umbrellas.
  7. Among the people stood his friend,Jim.
  8. (To be) South of the river lies a small factory.

但主语为表示人称的代词时无需倒装

英语语法--部分倒装

虽然我英语四级没过,词汇量也不很多,甚至下降了很多,但是对于英语的语法我还是很喜欢的,马上快四级了又,复习整理一下以前的语法笔记。以下内容纯手打!! 先从倒装句开始吧!分为三大类,部分倒装,完全倒装和形式倒装。先复习第一种。

通过 Bat 批处理文件自动提交博客代码

前面我有文章提到怎么提交本地文件到 github,coding 等远程仓库。每次可以分为三个步骤

  • git add * (添加需要提交的文件,这里全选)
  • git commit -m “提交信息”
  • git push

但是这样感觉很麻烦每次都要重复输入提交命令和提示信息。 这个时候可以用到 windows 批处理 bat 文件 (linux 的话可以用 shell 脚本)。用完发现好用到不行!

博採眾長 App

介绍

使用 fusion app 对网页进行的封装。
功能:

  • 浏览本博客,主页
  • 私人网盘
  • 2048 等小游戏
  • 在线客服,QQ 等
  • pc 与移动浏览器标识切换
  • 留言,打赏,博主日志等
  • 分享功能,分享到 QQ,微信,浏览器打开等
  • app 内添加书签,自动记录历史记录,刷新等
  • 配合博客的PWA + quicklink功能可实现离线浏览

Next 添加支持 Pdf

最新的 next 主题已经更新了支持 PDF 功能,写法也和链接写法一样,可是我没有更新,我按 github 上那个 readme 试了一下好像不可以,所以用了另外一种插件的方法。

iframe(推荐)

1
<iframe src="/posts/next-pdf/1.pdf" style="width: 100%;height: 800px;"></iframe>

模板自带

今天(2019.4.3)又看了一下,改了写法,写法和插件一样,我在我的模板里也更新了。(插件模板二选一即可,个人更喜欢插件) 但是如果安装插件后,也是优先模板的 pdf 脚本解析 pdf,所以在我的模板中把模板的 pdf 脚本先注释了。要启用去掉注释即可。

================================================ FILE: page/18/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Hexo 博客源码备份

备份 hexo 博客

1
2
3
4
5
6
7
8
9
//如果 themes/next(主题文件)下面有。git,请删除这个。git 文件夹。
cd hexo
git init  //初始化本地仓库
git add source themes scaffolds _config.yml package.json package-lock.json  //将必要的文件依次添加
git commit -m "blog hexo"
git branch hexo  //新建 hexo 分支
git checkout hexo  //切换到 hexo 分支上
git remote add origin git@github.com:username/username.github.io.git  //将本地与 Github 项目对接
git push origin hexo  //push 到 Github 项目的 hexo 分支上

在其他终端克隆和更新 hexo 博客

nodejs,git,hexo 已经安装好,即搭建完成

Git 常用指令汇总

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫 stage, 或 index。一般存放在 “.git 目录下” 下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录。git,这个不算工作区,而是 Git 的版本库。

网站备案之旅

备案
经过时间长达 20 多天的备案之旅今天终于结束了,也闭馆了 20 多天,也按相关要求把 ICP 备案号和公安备案号加载了网站和博客底部。只是今天去岳塘分局签网络安全告知书的时候不小心把身份证落在那个办公室了。亏我走之前一秒还在提醒自己,唉!不过那个办公室的大姐姐挺好的,前面跟我说好星期一来,我还今天上午提前给她打了电话,她还下楼给我开办公楼楼道的门禁,还有我身份证落在那里她说先帮我收着,有时间再去拿!总之,这个姐姐的服务态度五星好评!手动@岳塘分局 B204 的姐姐。
备案完成也算放下一块提着的石头,可以睡个好觉了!ZzZzzzz

使用 Git 上传代码到 Github, Coding 等仓库

config

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

第一次使用 git 的时候需要设置提交者信息。
注意:
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

================================================ FILE: page/19/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Linux 编程初体验

在 Linux 上编译 c 语言文件。

打开 vim 编辑器

(没有就用 vi, 或者先安装 vimsudo apt-get install vim)

1
vim

编辑文件

打开文件编辑器之后编辑文件 edit

流水线

概念

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

计算机数据

数据的表示

数据的表示可分为:原码,反码和补码。(二进制)

  • 原码:符号位 0 为正,1 为负。
  • 反码:符号位 0 为正,1 为负。
    • 正数:反码同原码。
    • 负数:符号位除外其他位按位取反。
  • 补码:
    • 正数:同原码。
    • 负数:符号位除外其他位按位取反再 +1。
  • 移码:补码符号位取反。

数据表示范围

  • 原码: -(z^n-1 - 1) ~ 2^n-1 - 1
  • 反码: -(z^n-1 - 1) ~ 2^n-1 - 1
  • 补码: -z^n-1 ~ 2^n-1 - 1 (补码正 0 和负 0 相同,少占一数位,就多一个范围)

例: 8 位二进制,除去符号位还有 7 位,7 个 1 为最大数,相当于 8 个 1 减 1,也就是 2^7-1, 所以范围就算出来了。

Linux/Centos 下的安装 Git

下载 git

1
wget https://github.com/git/git/archive/v2.14.1.zip

安装依赖

1
sudo yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

解压 git

1
unzip v2.14.1.zip

注: unzip 命令用不了,具体步骤如下:

每一个优秀的人,都有一段沉默的时光

手机便签里保存的一段话,也记不得在哪看到的了。

每一个优秀的人,都有一段沉默的时光,是那一段时光,不抱怨不诉苦,最后渡过了这段感动自己的日子。
什么都还没有,所以没有卖弄的资格。如果有了什么,就没有卖弄的必要。

人生的每一笔经历,都在书写你的简历。多做你本以为微不足道的事情,回头看的时候,都有着无法细数的刻度。
自己拼出来的东西,和别人送到嘴边的东西,意义和珍惜的程度都大为不同。

Hexo Next 主题添加字数统计(2018)

警告

2018/11/1 说明 next 主题好像更新了,现在自带的可以用了,如果可以用了,以下教程可以忽略!!!

最近有几个小伙伴问我博客的字数统计怎么实现的,怎么网上的教程不管用啊?一开始我搭建博客的时候也遇到了类似的问题,按照 github 上 wordcount 的 readme 操作后,并没有什么用,我打开 post 相关配置文件并没有发现发现 wordcount 这个关键词,next 本身似乎也并没有在主题配置文件提供选项(或许是个人原因),所以只好自己动手加一个了。为了不重复回答问题,先做个原创记录。转载请注明出处。在此抛转引玉,如果有更好的方法请在留言区提出,我会及时更改。同时也希望小伙伴多发扬折腾精神,多专研,少提问,毕竟还是 RTFSC 大法好!(Read the fucking source code)

================================================ FILE: page/2/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart
================================================ FILE: page/20/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Hexo D 出错

搭建这个博客以来,隔一段时间就出现一次部署失败的错误,每次都差不多,莫名其妙地出现的。前几次不知道怎么瞎搞就好了。
现在做一下记录,防止以后出错用。
错误如下

Hexo 个性化 - Next 主题动态显示 Subtitle

本文适合我这种纯小白。 目前为止,全网也就只有一个博主写到过这样动态显示 subtitle 的文章。传送门(关键词:js, 后加载)
但是嘞,该博写的不怎么详细,17 年底写的。当然更大的可能是 next 更新了一些文件结构,所以不适合现在使用了。以前我按原博的流程配置了一下没成功就搁在那里了,今天突然心血来潮。翻了翻原博主博客的源码,再与自己的对比了一下,发现了一些端倪。稍作调整后如下:

Git Index.lock

在 git 没有运行完成之前强制关闭,下次提交的时候会产以下生错误,或者类似的。

1
2
3
4
5
fatal: Unable to create '/xxx/xx/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

原因是在你进行某些比较费时的 git 操作时自动生成,操作结束后自动删除,相当于一个锁定文件,目的在于防止对一个目录同时进行多个操作。

在 Android 上搭建 Hexo 博客

暑假刚开始的时候放假回家没带电脑,只能玩手机,想折腾一下博客都没有条件,在一个发现一个 app, 卧槽 😱,termux 真的强大!(初始化需要科学上网)安卓手机上的 linux 简直了,在手机就可以搭了一个 hexo 博客,只要在 github 上实现分支管理就可以多终端同步更新了。恕我学疏才浅,还只想到这些!一开始想回校后,折腾一下 hexo-admin 实现类似动态博客一样的多终端管理(手动滑稽),现在发现 termux 这样子的操作也不错嘛,挺装哔 hhhhhh**部署后的效果**

Dreamoon and Stairs

题目链接

Dreamoon wants to climb up a stair of n steps. He can climb 1 or 2 steps at each move. Dreamoon wants the number of moves to be a multiple of an integer m.

What is the minimal number of moves making him climb to the top of the stairs that satisfies his condition?

Input

The single line contains two space separated integers n, m (0 < n ≤ 10000, 1 < m ≤ 10).

Leading and Trailing-Lightoj1282(快速幂 + 对数运算)

题目链接

题目大意

给定两个数 n,k 求 n^k 的前三位和最后三位。

分析

求后三位的话:直接快速幂,对 1000 取模就好了。
求前三位,对于给定的一个数 n, 它可以写成 n=10a, 其中这个 a 为浮点数,则t=n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中 x,y 分别是a*k的整数部分和小数部分,对于 t=nk 这个数,它的位数由 (10x) 决定,它的位数上的值则有 (10y) 决定,因此我们要求 t 的前三位,只需要将 10y 求出,在乘以 100,就得到了它的前三位。
分析完,我们再整体看,设 n
k=10^z; 那么z=k*log10(n)
fmod(z,1)可以求出 x 的小数部分。

================================================ FILE: page/21/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

欧拉函数

欧拉函数是求小于 x 并且和 x互质 的数的个数

通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn)
其中 p1, p2……pn 为 x 的所有质因数,x 是不为 0 的整数
φ(1)=1(唯一和 1 互质的数就是 1 本身)【注意:每种质因数只一个。比如 12=223】

定理

  1. 若 n 是素数 p 的 k 次幂,φ(n)=pk-p(k-1)=(p-1)p^(k-1),因为除了 p 的倍数外,其他数都跟 n 互质 IMG_20180808_170807.jpg
  2. 欧拉函数是积性函数——若 m,n 互质,φ(mn)=φ(m)φ(n)

特殊性质

  1. 当 n 为奇数时,φ(2n)=φ(n)
  2. p 是素数,φ(p) = p - 1,φ(p) 称为 p 的欧拉值
  3. 若 a 为素数,b mod a=0,φ(a*b)=φ(b)*a

Heavy Transportation-Poj1797(dijkstra 或最大生成树)

题目链接

大意:
要从城市 1 到城市 N 运送货物,有 M 条道路,每条道路都有它的最大载重量,问从城市 1 到城市 N 运送最多的重量是多少。
其实题意很简单,就是找一条 1–>N 的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。一条路径上的最大载重量为这个路径上权值最小的边; 更新

Til the Cows Come Home-Poj2387(dijkstra 判断重边)

题目链接

题目大意:
说的是,一只奶牛位于 N 号节点,输入 N 个节点和 T 对双向的边,求出由 N 到 1 的最短的距离,其实就是问的单源最短路问题。

两个点可能有多条路,选择最短的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

const int INF=99999999;                    //设为无穷大
int maps[1005][1005],v[1005],d[1005];  //v 表示是否已经过遍历 d 表示从源到点当前最短路
int n;

void Dijkstra(int s,int t)
{
    int i,j,k,mini;
    for(i=1;i<=n;i++)
        d[i]=INF;                      //除源点设为 0 距离外 其他先设为无穷大
    d[s]=0;
    for(i=1;i<=n;i++)         //n 点循环 n 次 , 找出 n 个 k, 找 n 个点
    {
        mini=INF;
        k=-1;
        for(j=1;j<=n;j++)              //在所有未标记点中 选 d 值最小的点
            if(!v[j] && d[j]<mini)
                mini=d[k=j];

        v[k]=1;                         //标记节点
        if(k==t)
        {
            printf("%d\n",d[t]);
            return;
        }
        for(j=1;j<=n;j++)
            if(!v[j] && (d[k]+maps[k][j])<d[j])   //表示从 k 出发的点,对于所有边,更新相连点
                d[j]=d[k]+maps[k][j];
    }
}

int main()
{
    int T,i,j,x,y,D;
    while(scanf("%d %d",&T,&n)!=EOF)
    {
        memset(v,0,sizeof(v));            //清除标记
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                maps[i][j]=INF;

        for(i=1;i<=T;i++){
            scanf("%d%d%d",&x,&y,&D);
            if(maps[x][y]>D)               //可能有多条路,只记录最短的
                maps[x][y]=D,maps[y][x]=D;
        }
        Dijkstra(1,n);
    }
    return 0;
}

最短路入门

Dijkstra 算法

1. 定义概览

Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra 算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。

小希的迷宫-HDU-1272(并查集 or 树性质)

题目链接:小希的迷宫

并查集

  • 无回路
  • 单连通

并查集做,首先想到的是判断两个点是否连通,不连通就合并,已连通的话说明会形成回路,则可以判定 No,交了一发错了。
想了一下没有考虑到多个连通域的情况,该题必须只有一个连通域

树的性质

既然单连通无回路,则这肯定是一棵树;那么 edge=v-1;

================================================ FILE: page/22/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Bear and Finding Criminals-Codeforces680B

题目链接:Bear and Finding Criminals

大致题意就是小熊警察住在某个城市,他要抓各个城市的罪犯,现在用一个 BCD 可以知道那个城市里一定有罪犯。

一定能确定该城市有小偷的几种情况:

  1. 警察所住城市有罪犯,则一定能检测到

  2. 警察所住城市的左边和右边位置若不为 0,则说明两座城市都有罪犯(只有一边为 1 是不能确定到底哪个城市有罪犯的)

  3. 警察所在城市的一边检测到有罪犯,但在另一边已经没有城市了,则说明该城市一定有罪犯

畅通工程-HDU-1232(并查集经典模板)

并查集入门推荐:超有爱的并查集~

题目链接:畅通工程

题意分析

首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。

HDU-1495-非常可乐(bfs 模拟倒水 or 数论)

非常可乐

大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升 可乐的体积为 S(S<101)毫升(正好装满一瓶) ,它们三个之间可以相互倒可乐(都是没有刻度的,且 S==N+M,101 > S > 0,N > 0,M > 0) 。聪明的 ACMER 你们说他们能平分吗?如果能请输出倒可乐的最少的次数,如果不能输出"NO"。

================================================ FILE: page/23/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Hdu-2612-Find a Way(双 Bfs)

Find a way

圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) …….. 这对基佬闹矛盾了,开车有危险了!为了不让他们去召唤师大峡谷坑人,riot 决定让他们去 X 召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需要花费 11 分钟,输出他们一共花费多少时间(最短时间噢)

POJ-3278-Catch That Cow(bfs)

Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (0 ≤ K ≤ 100,000) on the same number line. Farmer John has two modes of transportation: walking and teleporting.

  • Walking: FJ can move from any point X to the points X",“1 or X + 1 in a single minute
  • Teleporting: FJ can move from any point X to the point 2 × X in a single minute.

If the cow, unaware of its pursuit, does not move at all, how long does it take for Farmer John to retrieve it?

Input

Line 1: Two space-separated integers: N and K

Poj-1321 棋盘问题(dfs)

Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 63659
Accepted: 30423

Description

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。

Poj-1426-Find the Multiple(dfs)

Find The Multiple

Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 40713 Accepted: 17088 Special Judge

Description

Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.

Adjacent Replacements

A. Adjacent Replacements

第一次打 cf 就做出一道这样的找规律的题,打到自闭。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,a[1001];
    cin>>n;
    int i;
    int flag=0;
    for(i=0;i<n;i++){
        cin>>a[i];
        if(!(a[i]&1)) a[i]--;
        if(!flag) {cout<<a[i];flag=1;}
        else cout<<" "<<a[i];
    }
    return 0;
}

Poj-3984-迷宫问题 (Bfs 路径)

迷宫问题

Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 32323 Accepted: 18471

Description

定义一个二维数组:

int maze[5][5] = {
  0, 1, 0, 0, 0,
  0, 1, 0, 1, 0,
  0, 0, 0, 0, 0,
  0, 1, 1, 1, 0,
  0, 0, 0, 1, 0,
};

它表示一个迷宫,其中的 1 表示墙壁,0 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

Wannafly 挑战赛 20-染色

链接:https://www.nowcoder.com/acm/contest/133/A
来源:牛客网

题目描述

现在有一棵被 Samsara-Karma 染了 k 种颜色的树,每种颜色有着不同的价值,Applese 觉得 Samsara-Karma 染的太难看了,于是打算把整棵树重新染成同一种颜色,但是,由于一些奥妙重重的原因,每一次染色 Applese 可以选择两个有边相连的点,将其中一个染成另一个的颜色。而进行一次这样的操作需要付出两种颜色价值和的代价,
现在,Applese 的钱要用来买书 (game),所以他想要最小化代价

Hdu-1241-Oil Deposits (Dfs)

Oil Deposits

翻译
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 41406 Accepted Submission(s): 23977

Problem Description

The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.

================================================ FILE: page/24/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

BFS 求最短路

假设有一个 n 行 m 列的迷宫,每个单位要么是空地(用 1 表示)要么是障碍物(用 0 表示).
如和找到从起点到终点的最短路径?利用 BFS 搜索,逐步计算出每个节点到起点的最短距离,
以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的 BFS 树。此时 BFS 可以求出任意一点到起点的距离。

Educational Codeforces Round 47 (Rated for Div. 2)

那天晚上报名了没打,第二天早上打的,也只出了两题。

A. Game Shopping

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
using namespace std;

int main(){
    int n,m,s=0;
    cin>>n>>m;
    int i,j;
    int c[1000],a[1000];
    for(i=0;i<n;i++)
        cin>>c[i];
    for(i=0;i<m;i++)
        cin>>a[i];
    for(i=0,j=0;i<n;){
        if(j==m)
            break;
        if(c[i]<=a[j]){
            s++;
            j++;
            i++;
        }
        else i++;
    }
    if(i==n&&s==0)
        cout<<"0\n";
    else cout<<s<<endl;
    return 0;
}

B. Minimum Ternary String

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
using namespace std;

string s, ans;

int main(){
    cin >> s;
    int one = 0;
    for (int i = 0; i < s.size(); i++){
        if (s[i] == '0') ans += "0";
        if (s[i] == '1') one++;
        if (s[i] == '2') ans += "2";
    }
    bool flag = false;
    for (int i = 0; i < ans.size(); i++){
        if (ans[i] == '2' && !flag) flag = true, cout << string(one, '1');
        cout << ans[i];
    }
    if (!flag) cout << string(one, '1');
    return 0;
}

/*

100210

11222121

20

2001

020201

2012101

111

000

*/

深搜广搜

广度优先搜索(BFS)

广度优先搜索在进一步遍历图中顶点之前,先访问当前顶点的所有邻接结点。访问了就入队。

深度优先搜索(DFS)

深度优先搜索在搜索过程中访问某个顶点后,需要递归地访问此顶点的所有未访问过的相邻顶点。

TaoTao 要吃鸡

2018 年全国多校算法寒假训练营练习比赛(第二场)B(0 1 背包变化 特殊处理一个物品)
链接:https://www.nowcoder.com/acm/contest/74/B
来源:牛客网

题目描述

Taotao 的电脑带不动绝地求生,所以 taotao 只能去玩 pc 版的荒野行动了,和绝地求生一样,游戏人物本身可以携带一定重量 m 的物品,装备背包之后可以多携带 h(h 为 0 代表没有装备背包)重量的东西。玩了几天 taotao 发现了一个 BUG,当装备背包之后,如果可携带重量没有满,就可以拿一个任意重的东西(解释看样例)有一天 taotao 空降到了一个奇怪的岛上,岛上有 n 件装备,每个装备都有重量 Wi 和威力值 Vi, 但 taotao 不认识这些装备,所以他来求助你,挑选威力最大的装备,帮助他吃鸡。

Wannafly 挑战赛 18-序列

时间限制:C/C++ 1 秒,其他语言 2 秒
空间限制:C/C++ 262144K,其他语言 524288K
64bit IO Format: %lld

题目描述

有一个长度为 n 的序列 a,已知 a[1]=a[n]=1,且对于 2 <= x <= n,a[x] / a[x-1] 是以下三个数字之一 [ 1,-2,0.5 ], 问有多少种不同的序列满足题意。
两个序列不同当且仅当它们有至少一个位置上的数字不同,序列 a 可以为任何实数。

简单背包

弱鸡还是弱鸡啊最简单的背包问题——。——!

问题描述

假设有一个能装入总体积为 T 的背包和 n 件体积分别为 W1,W2,···,Wn 的物品,能否从 n 件物品中挑选若干件恰好装满背包,即使 W1+W2+···+Wn=T,要求找出所有满足上述条件的解。例如:当 T=10,共 6 件物品,物品的体积为{1,2,3,4,5,8},那么可找到下列 4 组解:(1,2,3,4)、(1,4,5)、(2,3,5)、(2、8)。

18 湘潭邀请赛参赛队员代表发言

来自一位大佬的演讲

尊敬的领导、教练,亲爱的参赛选手们:
大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。
刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。
在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。
为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。
三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。
最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。

18 湘潭邀请赛总结

题目链接(hdu 复赛)

2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。

================================================ FILE: page/25/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

B.Higher H-Index

B. Higher h-index

The h-index of an author is the largest h where he has at least h papers with citations not less than h.
Bobo has no papers and he is going to publish some subsequently. If he works on a paper for x hours, the
paper will get (a·x) citations, where a is a known constant. It’s clear that x should be a positive integer.
There is also a trick – one can cite his own papers published earlier.

Given Bobo has n working hours, find the maximum h-index of him.

A.Easy H-Index

A. Easy h-index

The h-index of an author is the largest h where he has at least h papers with citations not less than h.
Bobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with
itations exactly i, find the h-index of Bobo.

Sort 排序

sort 使用#include<algorithm>头文件,

sort(开始地址,结束地址,排序方式),其中第三参数可以没有,则默认为升序排序。

或者简单的用 less<参数类型>()表示升序

greater<参数类型>()表示降序

也可以用一个 bool 型函数,比如:

1
2
3
4
5
bool cmp(int a,int b){

       return a>b;//表从大到小,即降序

}

假设自己定义了一个结构体 node

位运算

1. &运算

&运算通常用于二进制取位操作,例如一个数 & 1 的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为 0 表示该数为偶数,最末位为 1 表示该数为奇数。

C++ With STL

1.swap(交换两元素值,在 algorithm 下,用法:swap(a,b);)

交换两元素的值在 C 语言课上作为指针讲解的典例。

int a=1,b=2;

swap(a,b);

//此时 a=2,b=1

(可以是其他类型)

各种 Links 汇总与分享

2021/10/1 更新
使用 Chrome 等浏览器管理书签是更好更方便的方式,登陆 google 账号,或者导出 html 书签文件都挺方便。

我们在平时学习生活总会遇到很多很多有用的网站,也许我们收藏在了浏览器书签里,可过久了,不做说明,这些链接的价值就被时间淹没了,我们自己都记不起来了,所以这篇文章因此而生。对自己收藏的链接做些简单的说明(第一次编写用了我一个下午);也相当于我的链接收藏夹,分享一些有趣的网站,

猴子与哪吒

一直觉得中国古代神话

能称得上传奇的只有两个人物:

一是猴子

一是哪吒

百世蕴灵育出只石猴 大闹天宫腾云驾雾

三年怀胎生了个哪吒 东海屠龙翻江倒海

可以说 除了这两人 没人再能当得起离经放纵四个字的

但称得上悲剧的 约摸也只有这两个

一个五行山下压五百年 揭了封印 戴上金箍无悲无喜 拜佛西天 唤孙悟空

一个削肉还母剔骨还父 塑了莲身 站上火轮无怨无恨 封神南门 号三太子

================================================ FILE: page/26/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Hello World

“每天早晨叫醒你的不是鬧鐘,而是你的夢想。”

我有過靠著這種信念撐下來的日子,我見過自己努力的樣子,至於現在的自己配不配得上當初努力的自己,
其實也不重要了,還望披荊斬棘,不改初心。

不怕萬人阻擋,只怕自己投降。你如何回憶,決定你是一個怎樣的人!

從大一伊始,打 ACM 比賽,訓練刷題,再到毅然決然離開實驗室,選擇陌生的 Web 開發,從工作前的一無所知到,到前端開發,後端開發,到教實習生,到面試新人,到開始乏味。這一路走來,好奇心,探索欲,瞎擇騰,或許還有愛意,都是支撐我的動力。

================================================ FILE: page/3/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

写文档时英文标题什么时候要大写?

对于本文的标题的思考来自于 Hugo 配置文档中的一个配置 titleCaseStyle,默认情况下,Hugo 在创建自动章节标题以及使用 strings.Title 函数转换字符串时遵循美联社样本中发布的大小写规则。

但是这似乎和我高中所学的英文标题大小写规则有所出入,我记得我的高中英语老师教的是虚词不需要大写的,而不是美联社风格的每个单词都首字母大写。

经过一番查阅,以下部分内容引用北京师范大学 - 出版科学研究院的一篇文章,“出版物中,英文什么时候要大写? ”

为什么很多教程中都有 Foo Bar?

foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。

SSH 提交签名验证

Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。Git 从 2.34 开始支持使用 SSH 签名,所以本文将介绍如何使用 SSH 对提交进行签名。

================================================ FILE: page/4/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

拖拽式仪表盘系列总结

当今,仪表盘已成为许多应用程序和软件界面中常见的设计元素。它们提供了一种直观且用户友好的方式来呈现和操作数据。无论是在数据分析、业务管理还是可视化报告等领域,拖拽式仪表盘都能为用户提供灵活性和个性化的体验。

特点和功能

拖拽式仪表盘的主要特点是使用拖拽和放置操作来构建和定制用户界面。具体功能包括:

认知复杂度(Cognitive Complexity)

摘要

循环复杂度(Cyclomatic Complexity)最初被制定为衡量模块控制流的“可测试性和可维护性”的一种度量标准。虽然它在衡量前者方面表现出色,但其底层的数学模型在产生衡量后者的值方面不尽如人意。本文介绍了一种新的度量标准,它摒弃了使用数学模型评估代码的做法,以弥补循环复杂度的不足之处,并产生更准确地反映方法、类和应用程序的相对难度的度量标准。

术语说明

虽然认知复杂度(Cognitive Complexity)是一种语言中立的度量标准,同样适用于文件和类,以及方法、过程、函数等等,但为了方便起见,本文中使用面向对象的术语“类”和“方法”。


================================================ FILE: page/5/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

在 Vue 项目中更优雅地使用 Icon

前言

在 Web 开发中,我们经常会用到 icon,icon 的使用经历了从图片到字体,再到 svg 的演变过程,也产生出相应的 icon 库,如雪碧图、Font AwesomeIconfont 等等。

随着前端的发展,icon 使用方案落在了 svg 上,svg 有着矢量图的优势,可以无限放大而不失真,而且 svg 本身就是一种 XML 文件,可以直接在 HTML 中使用,也可以通过 CSS 进行样式控制,但是在 Vue 项目中使用 svg 时,我们会遇到一些问题,本文将介绍如何在 Vue 项目中更优雅的使用 svg icon。

================================================ FILE: page/6/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

浏览器渲染原理

浏览器是如何渲染页面的?

当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。

在事件循环机制的作用下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。

中文技术文档的写作规范

以下参考来源:阮一峰的 中文技术文档的写作规范

英语世界里,文档非常受重视,许多公司和组织都有自己的文档规范,清楚地规定写作要求,比如微软MailChimpAppleYahoodockerStruts 等等(维基百科有一份完整的清单)。中文的也有不少,但都不令人满意,要么太简单,要么不太适用。

对于开发者来说,在工作中也需要适当地产出一些技术文档,但是很多人都不知道怎么写文档,都是凭着感觉写。

对于开发的系统、软件而言,系统用词的准确性和统一性也显得十分重要。

参考上面的规范,于是有了下面一份中文技术文档的写作规范。

语义版本控制(SemVer)

摘要

版本格式:MAJOR.MINOR.PATCH,版本号递增规则如下:

  1. MAJOR: 主版本号,当你做了不兼容的 API 修改
  2. MINOR: 次版本号,当你做了向下兼容的功能性新增
  3. PATCH: 修订号,当你做了向下兼容的问题修正

先行版本号及版本编译信息可以加到 MAJOR.MINOR.PATCH 的后面,作为延伸。

================================================ FILE: page/7/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

Commit Message Spec

Commit messages are short descriptions of changes to a repository. We should follow certain standards to effectively describe changes, such as the Conventional Commits specification based on the Angular convention that is most used on GitHub, or each development team can simplify and formulate their own commit specification. This is not only conducive to the automatic generation of Changelog in the later stage, but more importantly, when a bug occurs, the entire warehouse can be quickly checked, the problem point can be accurately located, and the version can be reverted.

不同系统的换行符的差异

换行符(通常称为行尾、行尾 (EOL)、下一行 (NEL) 或换行符)是字符编码规范(例如,ASCII、EBCDIC)中的控制字符或控制字符序列,用于表示一行文本的结尾和新文本的开头。

重新认识 JavaScript

前言

前端框架轮替变化越来越快,JavaScript 也在不断地升级迭代,越来越多的新特性让我们的代码写起来变得简洁有趣。

每隔一段时间就该重新认识一下 JS,这篇文章会介绍 6 种新特性,一起研究一下吧。

================================================ FILE: page/8/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

关于 CSS 和 Scss 变量运算那些事

问题分析

昨天在开发 FixIt 的时候,在 Scss 中写 max(foo, bar) 函数比较不同的单位变量时报错了,但是在 CSS 中使用 max 或者 min 函数函数比较不同的单位变量是没有问题的。

造成这一问题的原因是,在 Scss 中,也实现了 maxmin 函数,但是在 Scss 中,不同单位的变量是不能进行运算的,所以使得在 Scss 中直接使用 max 或者 min 函数会提示单位不同的报错。(同类 Less 中的变量运算是支持不同单位的)

知道造成问题的原因后,解决这个问题就很简单了,有很多种方法,有些方法感觉像在卡 BUG,有点意思,记录一下。

Hugo 本地管理 Shell 腳本

摘要
在使用 hugo 寫博客的過程中會使用到一些命令,包括 Git 的使用也會用到 Git 命令,但是這些命令我感覺知道就好,沒必要因輸入命令而增加寫博客和部署博客的額外工作。
自然要想辦法簡化這些過程,Git 還好有 SourceTree 等工具,Hugo 卻沒有,也懶得去網絡上找類似以前 hexo 有 hexo-admin 的插件可以讓大家在瀏覽器寫博客,因為我覺得這和靜態博客初衷背道而馳,於是我就折中方案,寫了一個滿足日常需求的 Shell 腳本,生成管理本地博客。

个人博客从 Hexo 迁移至 Hugo

电脑升级 win 11 后,分盘操作存在 bug, 然后又不小心把装代码的盘格式化了,虽然都有备份到 github, 但是当时为了省事,hexo Node 安装的很多以来插件都没有备份,现在又下载不到了,所以 hexo 博客没办法完整复原,另外,早就觉得基于 Node 的 hexo 实在有些臃肿,且博客内容多了以后部署太慢,就干脆乘机换了好了,经过一段时间寻找,最终选择了基于 Go 的 hugo, 记录一下迁移过程及待办事项。

Less&sass&scss

Sass 和 Less 都屬於 CSS 前置處理器,CSS 前置處理器定義了一種新的語言,其基本思想是,用一種專門的程式設計語言,為 CSS 增加了一些程式設計的特性,將 CSS 作為目標生成檔,然後開發者就只要使用這種語言進行 CSS 的編碼工作。
轉化成通俗易懂的話來說就是 “用一種專門的程式設計語言,進行 Web 頁面樣式設計,再通過編譯器轉化為正常的 CSS 檔,以供專案使用”。

================================================ FILE: page/9/index.html ================================================ 菠菜眾長 - 李瑞豪的博客
Home avatar

Lruihao's Note

不怕萬人阻擋,只怕自己投降

Lruihao's GitHub chart

2020&2021 總結

後知後覺
2020 已經過去半年了,由於情緒過於複杂,一直不想去回憶總結那操蛋的一年。今天疫情原因居家辦公,得空靜下來,和自己對話,不知从何說起,想到哪寫到哪吧。

Code Review 怎麼做?新手工程師如何提升「程式碼品質」

程式碼的持續優化

對一個入門的工程師來說,掌握程式語法與模仿範例實作是基本的能力。那有了這樣的基本能之後,要如何寫出更好的程式呢?怎樣才能夠成為一個「優秀」的新手工程師呢?事實上,寫出會動的程式不難,但想寫出好的程式其實是需要刻意練習的。大部分的人會建議要「多練習、多實作」,但我認為在大量練習之外,適時的「優化程式」也是提升「程式碼品質」重要的關鍵。而在「優化程式」可以分成兩個角度:

基于 Leancloud-Storage 实现的无后端记账本

起因

起因

事情是這樣,年前和朋友一起合租了一個房子,然後捏,生活嘛,除了開心,當然是乾飯最大啦!

自然就會有購物,買菜等日常消費,那就要記賬,一開始是各自記在手機的便簽上,最後再算一下;
三個人,一共七种組合消費,排除各自消費的三種情況,也有四種 (AB, AC, BC, ABC)。好麻煩啊!!!

你为什么吸烟?

这么说吧,其实三五年往上走的朋友都知道,我以前是不抽烟的,以至于后来得知我开始抽烟后,大家都会很震惊。所以,我并不是在那个懵懂的年纪为了装逼耍酷而开始的。

我为什么开始抽烟?为了爱情!开个玩笑,没有那么中二啦 →_→,但确实因为感情,2020 年 5 月 28 日,那晚回宿舍后,我一个人坐在明德宿舍的阳台上,点上了室友的一支利群,所有的不甘和遗憾以及委屈等一系列混杂的情绪并没有随着那支烟烟消云散,只是觉得头晕。

Cron 表达式的基本语法

基本语法

<秒> <分钟> <小时> <日期 day-of-month> <月份> <星期 day-of-week>

Cron 表达式是一个具有时间含义的字符串,字符串以 5 个空格隔开,分为 6 个域,格式为 X X X X X X。其中 X 是一个域的占位符。单个域有多个取值时,使用半角逗号,隔开取值。每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。

================================================ FILE: posts/18湘潭邀请赛总结/index.html ================================================ 18 湘潭邀请赛总结 | 菠菜眾長

18 湘潭邀请赛总结

警告
本文最后更新于 2018-06-14,文中内容可能已过时。

题目链接(hdu 复赛)

2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。

比赛开始,这次是三个人没人一份纸质题目,拿到题目,看最后一题,k.2018 发现可以做,(事实证明确实是一道水题),我就在做这题,他们看了 a 题,好像是 k 题一顿操作后提交,错了,一直到比赛结束都没做出来,后来回去看别人的题解,发现自己情况没有分析全面,其实是完全可以解出来的,真的做的太少太少了。a 题最后也是没过,还有一个 f 题,sort,我最初的想法是用 stl 里的那个 sort 排序,只要对 sort 的 compare 函数做处理应该可以完成排序,比赛之前我看过,但是不熟悉,zxm 她也看了我就交给她了,最后好像因为爆 long double 的问题也没做出来。
哎,菜还是菜,很多算法都不懂,数据结构也没学好,很有一段时间我都特别头疼算法,不想学,费劲,觉得自己不适合学计算机,更不适合 ACM。有时候又想,不适合好像总是 loser 的借口!总是在后悔和偷懒的矛盾中!
最后,放上,“参赛奖"羞辱自己,也是鞭策!
IMG_20180616_132759.jpg

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/18湘潭邀请赛总结/index.md ================================================ # 18 湘潭邀请赛总结 [题目链接](http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf)(hdu 复赛) 2018 年湘潭邀请赛,在湘大举行,当时一起打的过去的,因为没出市就方便点。第一次参加现场赛,首先反省一下自己,比赛前算法先不说(没有好好搞过),就连普通的题,数学性质的题都很少刷,什么都不会,然后英语不说四六级的东西,很多专业英语词汇都没有好好了解过,主要的原因还是刷题刷少了,英文题刷少了。理所当然,成功拿下一铁,湘潭赛打铁告终。 比赛开始,这次是三个人没人一份纸质题目,拿到题目,看最后一题,k.2018 发现可以做,(事实证明确实是一道水题),我就在做这题,他们看了 a 题,好像是 k 题一顿操作后提交,错了,一直到比赛结束都没做出来,后来回去看别人的题解,发现自己情况没有分析全面,其实是完全可以解出来的,真的做的太少太少了。a 题最后也是没过,还有一个 f 题,sort,我最初的想法是用 stl 里的那个 sort 排序,只要对 sort 的 compare 函数做处理应该可以完成排序,比赛之前我看过,但是不熟悉,zxm 她也看了我就交给她了,最后好像因为爆 long double 的问题也没做出来。 哎,菜还是菜,很多算法都不懂,数据结构也没学好,很有一段时间我都特别头疼算法,不想学,费劲,觉得自己不适合学计算机,更不适合 ACM。有时候又想,不适合好像总是 loser 的借口!总是在后悔和偷懒的矛盾中! 最后,放上,"参赛奖"羞辱自己,也是鞭策! ![IMG_20180616_132759.jpg](https://i.loli.net/2018/06/16/5b249fed84000.jpg) --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E6%80%BB%E7%BB%93/ ================================================ FILE: posts/18湘潭邀请赛队员代表发言/index.html ================================================ 18 湘潭邀请赛参赛队员代表发言 | 菠菜眾長

18 湘潭邀请赛参赛队员代表发言

警告
本文最后更新于 2018-06-15,文中内容可能已过时。

来自一位大佬的演讲

尊敬的领导、教练,亲爱的参赛选手们:
大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。
刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。
在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。
为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。
三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。
最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/18湘潭邀请赛队员代表发言/index.md ================================================ # 18 湘潭邀请赛参赛队员代表发言 > 来自一位大佬的演讲 尊敬的领导、教练,亲爱的参赛选手们: 大家好,我是来自广东工业大学的 tmk。今天很荣幸能够站在这里代表全体参赛选手发言,与大家分享我的经历和感受。 刚开始来到大学的时候,我一心向学,本着“好好学习,天天向上,为校争光,不搞对象”的信念,想在大学一展宏图。因为高中 OI 的挫败,我在刚上大学的时候就选择了 ACM 这条“不归路”。一开始是因为高中的遗憾,到后来就完全是因为信念和兴趣慢慢一直搞到现在。当时的我还不知道踏上 ACM 这条路的苦,而如今的我却也尝到了 ACM 带给我的乐。 在这三年里,有数不清的夜晚,我的舍友们在寝室里开黑,而我和我的队友在机房里开黑;在这三年里,有数不清的周末,我的舍友们在校园里驰骋,而我和我的队友在题库里驰骋;在这三年里,有数不清的假期,我的舍友们在召唤师峡谷里征战,而我和我的队友在中国各省市征战。三年过去了,我的舍友们成为了 offer 收割机,而我和我的队友成为了气球收割机。 为了变强是一个痛苦且漫长的过程,只有耐得住寂寞,才能守得住繁华。我的一位队友为了变强甚至牺牲了自己的头发,仅仅是因为他担心他的头发阻碍了他思维的发散。他变秃了也变强了。 三年的 ACM 让我成长很多,收获很多。我也从一个“好好学习天天向上为校争光不搞对象”的无知青年变成了一个写的了工程查得出异常的准程序员。我觉得三年献身于 ACM 的日子是值得的,和一大堆萌萌的男孩子们在屋子里面一个又一个通宵奋斗的酣畅淋漓的日子是值得的,看着谈恋爱的大家一会儿哀伤一会儿忧愁而我与代码自得其乐矢志不渝的日子是值得的。此外他还给我带来两个最好的小伙伴,是他们的一路陪伴,让我有勇气一直走下去。我和他们走过的地方,比我和女朋友去过的地方还要多。噢,对了,我好像没有女朋友。总而言之,请珍惜你们的队友,他们是你们在大学里为数不多一起奋斗的小伙伴。希望大家像我一样,也爱着 ACM,为自己心爱的努力。 最后预祝各位参赛选手们取得理想的成绩,也预祝本次大赛圆满成功。谢谢大家。 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/18%E6%B9%98%E6%BD%AD%E9%82%80%E8%AF%B7%E8%B5%9B%E9%98%9F%E5%91%98%E4%BB%A3%E8%A1%A8%E5%8F%91%E8%A8%80/ ================================================ FILE: posts/1thintervivew/index.html ================================================ 第一次面试经历 | 菠菜眾長

第一次面试经历

时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。

Success

富士康在学校有一个春招的机会,我和朋友抱着侥幸的心理去试了试。 虽然深知自己还身有很多缺点,但是不面试不知道,一面试都暴露出来了,以下记录一下自己的不足之处:

  • php 和 sql 的经典组合虽然有所接触了解,但是确实什么都会,得花时间学
  • html/css 等虽然平时折腾博客这些应用的比较多,但是今天竟然紧张地忘记了 margin 和 padding 都不会写了
  • 如上一条,公众表现能力有待加强。正如当今“酒香也怕巷子深”,何况“不香”。

惊喜的事说来就来,本来知道自己这么多缺点,这么菜后,觉得这个实习的 offer 是没戏了,没想到下午技术主管微信发来消息,说录用了。当场懵逼,受宠若惊的感觉!非常谢谢面试官老师!
无论生活还是学习,希望以后的自己一定要保持一颗谦逊爱学的心,早日实现全栈工程师的梦想,还有早点存钱把大学学费的贷款还掉!

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/1thintervivew/index.md ================================================ # 第一次面试经历 > 时间过得真快,一下从大一到了大三,马上就要实习毕业等等了。 {{< admonition success "Success" >}} 富士康在学校有一个春招的机会,我和朋友抱着侥幸的心理去试了试。 虽然深知自己还身有很多缺点,但是不面试不知道,一面试都暴露出来了,以下记录一下自己的不足之处: - php 和 sql 的经典组合虽然有所接触了解,但是确实什么都会,得花时间学 - html/css 等虽然平时折腾博客这些应用的比较多,但是今天竟然紧张地忘记了 margin 和 padding 都不会写了 - 如上一条,公众表现能力有待加强。正如当今“酒香也怕巷子深”,何况“不香”。 惊喜的事说来就来,本来知道自己这么多缺点,这么菜后,觉得这个实习的 offer 是没戏了,没想到下午技术主管微信发来消息,说录用了。当场懵逼,受宠若惊的感觉!非常谢谢面试官老师! 无论生活还是学习,希望以后的自己一定要保持一颗谦逊爱学的心,早日实现全栈工程师的梦想,还有早点存钱把大学学费的贷款还掉! {{< /admonition >}} --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/1thintervivew/ ================================================ FILE: posts/20b75e9/index.html ================================================ 为什么很多教程中都有 Foo Bar? | 菠菜眾長

为什么很多教程中都有 Foo Bar?

警告
本文最后更新于 2024-07-17,文中内容可能已过时。

foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。

1 foo 和 bar

这些名称起源于 MIT,然后通过 Hacker 文化传播开来。它们主要的用途是作为示例代码的占位符,这样编程教程或者文档可以更专注于解释语法和逻辑,而不需要花费太多的精力去考虑如何命名这些函数或变量。

这就像是在其他文字中使用"John Doe" 或 “Jane Doe"来代表一个非特定的人一样。在编程的世界中,foo 和 bar 就扮演了类似的角色。

例如,如果我们要解释 JavaScript 中函数的使用,我们可能会写出这样的代码:

1
2
3
4
function foo(bar) {
  return bar + 1;
}
foo(1); // 2

在这个例子中,foo 是一个函数名,bar 是一个参数名,它们都可以被替换为任何合法的函数名和参数名,而不改变代码逻辑。

2 quick brown fox

另外,还常常看到一个这样的句子:

1
The quick brown fox jumps over the lazy dog

相应中文可简译为“快狐跨懒狗”,完整翻译则是“那只敏捷的棕毛狐狸跃过了那只懒狗”,是一个著名的英语全字母句,常用于测试字体显示效果和键盘是否故障。此句也常以“quick brown fox”做为指代简称。

简而言之,这些都是英文世界里一些约定俗成的用语,类似于中文里的“张三李四”、“甲乙丙丁”等等。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/20b75e9/index.md ================================================ # 为什么很多教程中都有 Foo Bar? foo 和 bar 是在编程中常用的元变量(metasyntactic variables),它们是在教程和示例代码中用来代表任意的函数或者变量的名称。类似的元变量还有 baz,qux,quux,corge,grault,garply,waldo,fred,plugh,xyzzy 和 thud 等。 ## foo 和 bar 这些名称起源于 MIT,然后通过 Hacker 文化传播开来。它们主要的用途是作为示例代码的占位符,这样编程教程或者文档可以更专注于解释语法和逻辑,而不需要花费太多的精力去考虑如何命名这些函数或变量。 这就像是在其他文字中使用"John Doe" 或 "Jane Doe"来代表一个非特定的人一样。在编程的世界中,foo 和 bar 就扮演了类似的角色。 例如,如果我们要解释 JavaScript 中函数的使用,我们可能会写出这样的代码: ```javascript function foo(bar) { return bar + 1; } foo(1); // 2 ``` 在这个例子中,foo 是一个函数名,bar 是一个参数名,它们都可以被替换为任何合法的函数名和参数名,而不改变代码逻辑。 ## quick brown fox 另外,还常常看到一个这样的句子: ```plain The quick brown fox jumps over the lazy dog ``` 相应中文可简译为“快狐跨懒狗”,完整翻译则是“那只敏捷的棕毛狐狸跃过了那只懒狗”,是一个著名的英语全字母句,常用于测试字体显示效果和键盘是否故障。此句也常以“quick brown fox”做为指代简称。 简而言之,这些都是英文世界里一些约定俗成的用语,类似于中文里的“张三李四”、“甲乙丙丁”等等。 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/20b75e9/ ================================================ FILE: posts/404d6a2/index.html ================================================ 坐高铁去柳州吃螺狮粉 | 菠菜眾長

坐高铁去柳州吃螺狮粉

假日随想录

decryptor loading
PHA+5Z2Q643095272cf06ba6bbd2c2b9cec89a77115b46142463c94536427086auY6ZOB5Y675p+z5bee5ZCD6J6654uu57KJ77yM5piv5LiA56eN5oCO5qC355qE5L2T6aqM5ZGi77yfPC9wPgo8cCBjbGFzcz0ic2hha3kiPui/meS4quS4lueVjOmcgOimgeeWr+eZq++8jOaIkeS5n+mcgOimgeOAgjwvcD4KPHA+5Lul5ZCO6KaB5aSa5Y6755yL55yL5LiW55WM77yM5Lmf55yL55yL6Ieq5bex44CCPC9wPgo8ZGl2IGNsYXNzPSJkb3V5aW4iPgogIDxpZnJhbWUgc3JjPSIvL29wZW4uZG91eWluLmNvbS9wbGF5ZXIvdmlkZW8/dmlkPTczNzAzNDQxOTMwNzc2NDQ1ODQmYXV0b3BsYXk9MCIgYm9yZGVyPSIwIiBmcmFtZXNwYWNpbmc9IjAiIGFsbG93ZnVsbHNjcmVlbj0idHJ1ZSI+PC9pZnJhbWU+CjwvZGl2Pgo8aHI+Cjx1bAogIGNsYXNzPSJmaS10aW1lbGluZSIKICAgZGF0YS1hbmltYXRpb24+PGxpCiAgICAgIGNsYXNzPSJmaS10aW1lbGluZS1pdGVtIgogICAgICBkYXRhLXNpemU9Im1lZGl1bSIKICAgICAgZGF0YS1ub2RlPSJjaXJjbGUiCiAgICAgIHN0eWxlPSItLXRpbWVsaW5lLWluZGV4OiAxOyI+PGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fY29udGVudCI+PHA+6L+Y5piv5YiG5omL5LqG77yM6L+Y5piv5Lya5LiA6Lm25LiN5oyv77yM5Y+I6KaB5Lqr5Y+X5a2k54us5LqG44CCPGJyPiDlvILlnLDnoa7lrp7orqnlvbzmraTpg73kvJrlvojlp5TlsYjlvojntK/vvIzliIblvIDmmK/pgb/lhY3kuI3kuobnmoTmnKrmnaXjgII8L3A+CjxwPuelneS9oOaXqeaXpeW6t+Wkje+8jOWlveWlveeUn+a0u++8gTwvcD4KPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0wOC0zMDwvZGl2PjwvbGk+PGxpCiAgICAgIGNsYXNzPSJmaS10aW1lbGluZS1pdGVtIgogICAgICBkYXRhLXNpemU9Im1lZGl1bSIKICAgICAgZGF0YS1ub2RlPSJjaXJjbGUiCiAgICAgIHN0eWxlPSItLXRpbWVsaW5lLWluZGV4OiAyOyI+PGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fY29udGVudCI+5L2g56qB54S26K+05L2g5Yiw5oiR5YWs5Y+45qW85LiL5LqG77yM5oiR6LW257Sn5LiL5qW877yM55yL5Yiw5L2g56uZ5Zyo6YKj6YeM77yM5YaF5b+D5pep5bey5rOi5rab5rG55raM5LqG44CCPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0xMC0xNyDlkajlm5sg5rex5ZyzPC9kaXY+PC9saT48bGkKICAgICAgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW0iCiAgICAgIGRhdGEtc2l6ZT0ibWVkaXVtIgogICAgICBkYXRhLW5vZGU9ImNpcmNsZSIKICAgICAgc3R5bGU9Ii0tdGltZWxpbmUtaW5kZXg6IDM7Ij48ZGl2IGNsYXNzPSJmaS10aW1lbGluZS1pdGVtX19jb250ZW50Ij48cD7lkozkvaDni6zlpITkuoblh6DlpKnvvIzmhJ/op4nml7bpl7Tov4flvpflpKrlv6vkuobvvIzomb3nhLbml6nlsLHnn6XpgZPlvILlnLDlvojpmr7nhqzvvIzkvYbmmK/kvaDpg73ov5nkuYjkuLvliqjkuobvvIzmiJHov5jmmK/luIzmnJvnu5nlvbzmraTkuIDkuKrmnLrkvJrjgII8L3A+CjxwPuaIkeabvuWcqOaXoOaVsOS4quedoeS4jeedgOeahOWknOaZmu+8jOmXrui/h+iHquW3seaYr+WQpueIseS9oO+8jOS9oOWPiOaYr+WQpueIseaIkeOAguW+iOW6huW5uOW+l+WIsOS6huiCr+WumueahOWbnuetlOOAgjwvcD4KPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZmktdGltZWxpbmUtaXRlbV9fdGltZXN0YW1wIGlzLWJvdHRvbSI+MjAyNC0xMC0yMCDlkajlpKk8L2Rpdj48L2xpPjxsaQogICAgICBjbGFzcz0iZmktdGltZWxpbmUtaXRlbSIKICAgICAgZGF0YS1zaXplPSJtZWRpdW0iCiAgICAgIGRhdGEtbm9kZT0iY2lyY2xlIgogICAgICBzdHlsZT0iLS10aW1lbGluZS1pbmRleDogNDsiPjxkaXYgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW1fX2NvbnRlbnQiPjxibG9ja3F1b3RlPgo8cD7mg7PkvaDvvIzmiJHlm57miJHku6znmoTlsI/ljr/ln47mib7kvaDkuobjgILmnKzmnaXmg7PnrYnnu5nkvaDkubDnmoTmiYvmnLrliLDkuobku6XlkI7lho3luKblm57mnaXkuIDotbfop4HkvaDnmoTjgII8L3A+CjwvYmxvY2txdW90ZT4KPHA+5Y6f5pys6K6i5LqG5ZGo5aSp5Lit5Y2I5Zue5rex5Zyz55qE56Wo55qE77yM5Y+v5piv5LiL5qyh6KeB6Z2i5Lyw6K6h5b6X5Yiw5YWD5pem5LqG77yM5LqO5piv5oiR5pS5562+5Yiw5LqG5LiL5Y2I77yM5q2j5aW95L2g5Lmf6KaB5Y675LiK54+t5LqG44CCPC9wPgo8cD7nrYnkvaDkuIvnj63nmoTml7bpl7TvvIzmiJHkuIDkuKrkurrlvoXlnKjmnpfmtbfphZLlupfvvIzkvp3ml6fop4nlvpfmnKrmnaXnmoTot6/lvojpmr7otbDvvIzlvojlpLTnlrzvvIzkvYbmmK/mgKXkuZ/msqHmnInnlKjjgII8L3A+CjxwPuWPquaYr++8jOWkp+amguinhOWIkuS6huS4gOS4i++8mjwvcD4KPG9sPgo8bGk+5Zyo5L2g56Gu5a6a5Lul5ZCO5Zyo6ZW/6ZO65oiW6ICF6ZW/5rKZ56iz5a6a5bel5L2c5LmL5YmN77yM5oiR5YWI5Zyo5rex5Zyz5aW95aW95bel5L2c77yM56ev57Sv5LiA5Lqb5a2Y5qy+PC9saT4KPGxpPuetieS9oOW3peS9nOeos+Wumu+8jOaIkeWwseWbnui+nuiBjOWbnumVv+aymeaJvuW3peS9nDwvbGk+CjxsaT7nhLblkI7kuIDotbfnlJ/mtLvvvIzop4TliJLnu5PlqZrnrYnnrYk8L2xpPgo8L29sPgo8cD7nkIbmg7PljJbnmoTorqHliJLlsLHov5nmoLfvvIzlhbbkuK3lv4XnhLbkvJrpgYfliLDlvojlpJrpmLvnoo3vvIzkvYbmmK/oh7PlsJHluIzmnJvmiJHoh6rlt7HmmI7nmb3vvIzlnKjmhJ/mg4XkuIrlkrHkv6nooajovr7niLHmhI/nmoTmlrnlvI/kuI3kuIDmoLfvvIzkuI3opoHor6/op6PvvIzlpJrkupvnkIbop6PjgII8L3A+CjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImZpLXRpbWVsaW5lLWl0ZW1fX3RpbWVzdGFtcCBpcy1ib3R0b20iPjIwMjQtMTEtMDggfiAyMDI0LTExLTEwIOe7peWugTwvZGl2PjwvbGk+PC91bD4=
================================================ FILE: posts/404d6a2/index.md ================================================ # 坐高铁去柳州吃螺狮粉 _**本文已加密,因此其原始内容不可见!**_ --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/404d6a2/ ================================================ FILE: posts/6550187/index.html ================================================ Git Submodule: Already Exists in the Index | 菠菜眾長

Git Submodule: Already Exists in the Index

警告
本文最后更新于 2024-01-11,文中内容可能已过时。

Git 报错 “git submodule: already exists in the index” 的解决方法。

1 问题

hugo-fixit/docs,里我增通过软连接的方式引入了 hugo-fixit/FixIt,位于 themes/FixIt 目录下。

然后为了把主题开发和主题文档分离(#404),我想通过 git submodule 的方式引入主题,于是我先把 themes/FixIt 目录删除,然后执行:

1
git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt

结果报错:

1
fatal: 'themes/FixIt' already exists in the index

2 解决方法

1
git rm -r --cached themes/FixIt
Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/6550187/index.md ================================================ # Git Submodule: Already Exists in the Index Git 报错 "git submodule: already exists in the index" 的解决方法。 ## 问题 在 [hugo-fixit/docs](https://github.com/hugo-fixit/docs.git),里我增通过软连接的方式引入了 [hugo-fixit/FixIt](https://github.com/hugo-fixit/FixIt.git),位于 `themes/FixIt` 目录下。 然后为了把主题开发和主题文档分离([#404](https://github.com/hugo-fixit/FixIt/issues/404)),我想通过 `git submodule` 的方式引入主题,于是我先把 `themes/FixIt` 目录删除,然后执行: ```bash git submodule add https://github.com/hugo-fixit/FixIt.git themes/FixIt ``` 结果报错: ```bash fatal: 'themes/FixIt' already exists in the index ``` ## 解决方法 ```bash git rm -r --cached themes/FixIt ``` --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/6550187/ ================================================ FILE: posts/900d5e4/index.html ================================================ 记一次 Debug 第三方包的过程 | 菠菜眾長

记一次 Debug 第三方包的过程

警告
本文最后更新于 2024-01-18,文中内容可能已过时。

在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 code diff demo

1 需求

使用 v-code-diff 组件,来开发一个接口请求结果比对的功能。

开发过程中,发现虽然它的 1.8.0 版本提供了具名插槽 stat,但是插槽并没有回传值,于是乎,看了一下它的源码,提了一个 PR 加了一个作用域,见 Shimada666/v-code-diff#119,作者很快也就合并了。

这样就简化了原插槽的使用:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<CodeDiff
  :old-string="form.oldString"
  :new-string="form.newString"
  :language="form.language"
  :diff-style="form.diffStyle"
>
  <template #stat="{ stat }">
    <span class="diff-stat-added">+{{ stat.additionsNum }} </span>
    <span class="diff-stat-deleted">-{{ stat.deletionsNum }} </span>
  </template>
</CodeDiff>

但这只是完成需求路上的一个小插曲,真正的难点在于“比对结果时,支持关键词过滤的功能”,也就是如果比对结果中有包含关键词的行,则忽略该行的 diff。

2 师必有名

“赵若献璧,乃惧怕我邦,不难臣服;若是不献,再去征讨,方算出师有名。”

自古战事都讲究师必有名,其实在代码世界也一样,得考虑这个需求是否通用,不然即使提交 PR 给原作者,也大概率不会合并。我自己也有开源,如果遇到定制化很重的需求,往往只会以一个 wontfix 的标签收尾。

所以,我先去查了有没有类似的工具或者产品有过类似的需求。

很快就找到了 Linux 的 diff 指令的 --ignore-matching-lines 参数有类似的功能。

1
diff file1.json file2.json --ignore-matching-lines="time"

上面的命令在比较两个文件时,会忽略包含 time 的行。

3 出师有名

既然有了参考,那么就可以开始动手了。

多的先不管,先把 v-code-diff 的源码拉下来运行起来。

1
git clone git@github.com:Shimada666/v-code-diff.git && cd v-code-diff

看了一眼是用 TypeScript 和 Vue3 的 Composition API 写的,这个我都不熟,不过没关系,先把它跑起来再说。

它的包管理器是 pnpm,那就先安装一下:

1
npm i -g pnpm

然后安装依赖:

1
pnpm install

然后在 package.json 找一下启动命令:

随便选一个运行:

1
npm run dev:2

ok,顺利启动!

4 一招制敌

然后开始阅读源码,寻找突破点。

two hours later…

经过一段时间阅读,虽然没有用过 TypeScript 以及 Composition API,但是对于读懂逻辑影响不大,很多就找到了突破口。

既然忽略关键词是为了让有差异的行不显示,那么正常的行就无需处理,只要找到有差异的行处理的阶段,然后加入关键词过滤的逻辑就可以了。

然后给 CodeDiff 组件新增一个 ignoreMatchingLines 属性,用于接收匹配忽略关键词的正则表达式。

最后简单测试一个在 Vue2.x、Vue2.7 以及 Vue3.x 的 demo,然后顺手把文档也完善一下,就可以提交 PR 给原作者了。详见 Shimada666/v-code-diff#121

在等待了短暂几天后,原作者也是很快合并了 PR,并发布了新的版本 1.9.0,这样我们就可以在自己项目中升级使用了。

5 备用方案

如果作者觉得需求不妥,我们也可以 fork 一份,然后改名发包,或者只是简单的打包成一个 js 文件,然后放到自己的项目中使用。

6 总结

磨刀不误砍柴工,磨刀的过程也是砍柴的过程,找到根本原因,才能事半功倍。

比如,VS Code 的开发团队在使用 Electron 开发 VS Code 时,发现 Electron 的功能并不足以满足 VS Code 的开发需求,他们也是先参与到 Electron 的开发中,完善 Electron 后再使用 Electron 开发 VS Code 的。

经常逛 GitHub,潜移默化中,我也养成了看源码的习惯,遇到 BUG 时先想的是 PR,然后再是 issue,今年还提交了一下其他的 PR。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/900d5e4/index.md ================================================ # 记一次 Debug 第三方包的过程 在完成一个 code diff 需求时,发现所使用的插件不足以完成预期的需求。当然最终还是顺利完成了,详见 [code diff demo](https://lruihao.github.io/vue-el-demo/#/code-diff)。 ## 需求 使用 [v-code-diff](https://github.com/Shimada666/v-code-diff) 组件,来开发一个接口请求结果比对的功能。 开发过程中,发现虽然它的 1.8.0 版本提供了具名插槽 `stat`,但是插槽并没有回传值,于是乎,看了一下它的源码,提了一个 PR 加了一个作用域,见 [Shimada666/v-code-diff#119](https://github.com/Shimada666/v-code-diff/pull/119),作者很快也就合并了。 这样就简化了原插槽的使用: ```vue ``` 但这只是完成需求路上的一个小插曲,真正的难点在于“比对结果时,支持关键词过滤的功能”,也就是如果比对结果中有包含关键词的行,则忽略该行的 diff。 ## 师必有名 “赵若献璧,乃惧怕我邦,不难臣服;若是不献,再去征讨,方算出师有名。” 自古战事都讲究师必有名,其实在代码世界也一样,得考虑这个需求是否通用,不然即使提交 PR 给原作者,也大概率不会合并。我自己也有开源,如果遇到定制化很重的需求,往往只会以一个 `wontfix` 的标签收尾。 所以,我先去查了有没有类似的工具或者产品有过类似的需求。 很快就找到了 Linux 的 `diff` 指令的 `--ignore-matching-lines` 参数有类似的功能。 ```bash diff file1.json file2.json --ignore-matching-lines="time" ``` 上面的命令在比较两个文件时,会忽略包含 `time` 的行。 ## 出师有名 既然有了参考,那么就可以开始动手了。 多的先不管,先把 [v-code-diff](https://github.com/Shimada666/v-code-diff) 的源码拉下来运行起来。 ```bash git clone git@github.com:Shimada666/v-code-diff.git && cd v-code-diff ``` 看了一眼是用 TypeScript 和 Vue3 的 Composition API 写的,这个我都不熟,不过没关系,先把它跑起来再说。 它的包管理器是 pnpm,那就先安装一下: ```bash npm i -g pnpm ``` 然后安装依赖: ```bash pnpm install ``` 然后在 `package.json` 找一下启动命令: ```json "scripts": { "dev:2": "vue-demi-switch 2 vue2 && pnpm --filter vue2-playground dev", "dev:2.7": "vue-demi-switch 2.7 vue2 && pnpm --filter vue2.7-playground dev", "dev:3": "vue-demi-switch 3 vue3 && pnpm --filter vue3-playground dev", "dev:demo": "vue-demi-switch 3 vue3 && pnpm --filter demo dev", } ``` 随便选一个运行: ```bash npm run dev:2 ``` ok,顺利启动! ## 一招制敌 然后开始阅读源码,寻找突破点。 two hours later... 经过一段时间阅读,虽然没有用过 TypeScript 以及 Composition API,但是对于读懂逻辑影响不大,很多就找到了突破口。 既然忽略关键词是为了让有差异的行不显示,那么正常的行就无需处理,只要找到有差异的行处理的阶段,然后加入关键词过滤的逻辑就可以了。 然后给 `CodeDiff` 组件新增一个 `ignoreMatchingLines` 属性,用于接收匹配忽略关键词的正则表达式。 最后简单测试一个在 Vue2.x、Vue2.7 以及 Vue3.x 的 demo,然后顺手把文档也完善一下,就可以提交 PR 给原作者了。详见 [Shimada666/v-code-diff#121](https://github.com/Shimada666/v-code-diff/pull/121)。 在等待了短暂几天后,原作者也是很快合并了 PR,并发布了新的版本 1.9.0,这样我们就可以在自己项目中升级使用了。 ## 备用方案 如果作者觉得需求不妥,我们也可以 fork 一份,然后改名发包,或者只是简单的打包成一个 js 文件,然后放到自己的项目中使用。 ## 总结 磨刀不误砍柴工,磨刀的过程也是砍柴的过程,找到根本原因,才能事半功倍。 比如,VS Code 的开发团队在使用 Electron 开发 VS Code 时,发现 Electron 的功能并不足以满足 VS Code 的开发需求,他们也是先参与到 Electron 的开发中,完善 Electron 后再使用 Electron 开发 VS Code 的。 经常逛 GitHub,潜移默化中,我也养成了看源码的习惯,遇到 BUG 时先想的是 PR,然后再是 issue,今年还提交了一下其他的 PR。 - [mdn/translated-content#15859](https://github.com/mdn/translated-content/pull/15859) - [SchemaStore/schemastore#3411](https://github.com/SchemaStore/schemastore/pull/3411) - [SchemaStore/schemastore#3420](https://github.com/SchemaStore/schemastore/pull/3420) - [SchemaStore/schemastore#3463](https://github.com/SchemaStore/schemastore/pull/3463) --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/900d5e4/ ================================================ FILE: posts/91db0fa/index.html ================================================ Amazon 如何让服务器享受着持续集群安全? | 菠菜眾長

Amazon 如何让服务器享受着持续集群安全?

警告
本文最后更新于 2024-12-07,文中内容可能已过时。
在这个网络信息化时代,你真的注重安全性吗?

常常担心服务器遭受黑客攻击,服务器集群防御措施难以统一化管理?

难以确定修复的优先级?不知道该先修复哪个漏洞?

你是否也有过诸如此类的困扰?不要慌,同学们,在亚马逊云科技中,有一个契合的服务工具能帮助到你,它就是 Amazon Inspector。

1 了解 Amazon Inspector

Amazon Inspector 可以自动发现工作负载,例如 Amazon EC2 实例、容器和 Lambda 函数,并扫描它们是否存在软件漏洞和意外的网络暴露,是一项自动化持续漏洞扫描服务,用于在 Amazon ECR 中以及持续集成和持续交付(CI/CD)工具内评测 Amazon Elastic Compute Cloud(EC2)实例、Amazon Lambda 函数和容器镜像以提高基础设施工作负载的安全性和合规性。

2 它能做些什么?

  • 在开发周期的早期阶段纳入安全性,并集中管理所有受监控资源的软件物料清单 (SBOM) 导出。
  • 近乎实时地检测亚马逊 ECR 和持续集成与持续交付 (CI/CD) 工具中的 Amazon EC2、Amazon Lambda 函数和容器映像等亚马逊云服务工作负载中的软件漏洞和意外网络暴露。
  • 使用 Amazon Inspector 风险评分来确定修复的优先级,缩短平均修复时间 (MTTR)。
  • 无缝扫描 EC2 实例,在基于代理和无代理的扫描之间切换。
  • 通过 Amazon Inspector 扫描支持 NIST CSF、PCI DSS 和其他法规的合规性要求和最佳实践。

以上只是 Amazon Inspector 一些最基本的能力,还有一些更优秀的功能,甚至让许多网安从业人员感到心动和震惊:

  • 利用超过 50 个漏洞情报来源,自动发现漏洞、加快漏洞路由并缩短 MTTR。

  • 使用当前的常见漏洞和暴露(CVE)信息和网络可访问性来创建情境风险评分,以确定易受攻击资源的优先级并加以解决。

    image-20241121192852886

  • 在开发人员工具中嵌入漏洞扫描,并导出合并 SBOM 以获取监测资源。

  • Amazon Lambda 标准扫描:持续评测每个已部署的 Lambda 函数是否存在软件包漏洞。每月总成本基于每月扫描的 Lambda 函数的平均数量。价格根据一个月内 Lambda 函数的 Amazon Inspector 覆盖小时总数(从函数被 Amazon Inspector 发现到函数被删除或从扫描中排除的小时数)按比例分配。

  • 扫描后报告中有严重性评判标准(在你的 Amazon EC2 实例中存在已识别的新 CVE,该 CVE 只能远程使用。如果 Amazon Inspector 持续网络可达性扫描还发现无法通过网络访问该实例,Amazon Inspector 就会发现漏洞的利用性太低。因此,Amazon Inspector 将扫描结果与 CVE 相关联,以向下调整风险评分,更准确地反映 CVE 对该特定实例的影响。):

    image-20241120203747459

3 开始使用 Amazon Inspector

3.1 注册亚马逊云科技账户

要使用 Amazon Inspector,你需要一个亚马逊云科技账户,如果你没有账户,系统会提示你在注册 Amazon Inspector 时创建一个。在你使用 Amazon Inspector 之前,系统不会向你收取费用。

打开 亚马逊云科技账号注册地址,点击右上角创建亚马逊云科技账户。

创建 Amazon 账户

  1. 填写邮件地址和账号名称(支持使用国内的邮箱)
    login
  2. 验证邮件
    valid
  3. 输入密码
    password
  4. 联系人信息
    contact
  5. 付款信息
    接受所有主要信用卡和借记卡(包括 Visa、MasterCard 和 银联信用卡等)
    payment-ways payment
  6. 验证手机号(支持中国地区国内手机号)
    phone
  7. 选择支持计划
    plan
  8. 完成注册
    complete
  9. 登录亚马逊云科技控制台,登录地址,选择根用户输入电子邮件地址,点击下一步会让输入密码,输入密码后就可以完成登录了。

3.2 激活 Amazon Inspector

我们注册之后,在激活页面对产品进行激活使用。

image-20241121192006383

3.3 设定哪些 ESC 需要扫描

在 Scanning configuration 界面中,第一个选项为扫描类型(基础、增强)并且可以添加以标签为索引的服务器 ESC。

image-20241120204830625

3.4 补丁筛选

在 Findings 界面中,我们可以看到 CVE 漏洞编号以及每个漏洞对应的时间和安全性质,在图中对活动状态进行筛选。

image-20241120204935440

3.5 扫描结果分析统计

在结果页面中,可以按不同类型参数进行筛选,并且还可以额外添加筛选条件,点击实例即可查看该实例对漏洞信息。

image-20241120205120012

3.6 定时使用 Lambda 函数生成安全报告

在 Lambda 界面中,可以添加新规则或修改现有规则,添加计划安全任务并生成报告。

image-20241120205233244

image-20241120205304160

3.7 创建新的 CIS 扫描

image-20241121192650957

4 费用相关

首先,它支持 15 天免费试用,你只需按实际使用量付费,没有最低费用,也没有预先承诺。

image-20241121192436605

注意:每个帐户可一次性免费使用 25 次映像评测。

5 使用心得

经过使用 Amazon Inspector 服务,我有以下几点心得体会:

  • 会一键式入门、集中控制和操作可见性简化了操作,自动重新扫描实例,验证没有引入新的漏洞,这些都是自动化,让我们省不少事情。
  • 会发现我们所有的工作负载,持续扫描它们,在其控制台中整合优先发现列表,并通过近乎即时通知新的严重漏洞来缩短我们的平均修复时间。
  • 该服务发现我们所有的工作负载,使用来自多个漏洞通知源的数据持续扫描它们,在其控制台中整合优先发现列表,并让我们专注于漏洞修复,而不是管理多个发现工具和配置。

安全是重中之重之事,实时预警与加强管控,有效安全防护与定期安全检查。

立即访问免费试用页面,开始你的亚马逊云科技云服务安全之旅吧!

================================================ FILE: posts/91db0fa/index.md ================================================ # Amazon 如何让服务器享受着持续集群安全? > [!question]+ 在这个网络信息化时代,你真的注重安全性吗? > 常常担心服务器遭受黑客攻击,服务器集群防御措施难以统一化管理? > > 难以确定修复的优先级?不知道该先修复哪个漏洞? 你是否也有过诸如此类的困扰?不要慌,同学们,在亚马逊云科技中,有一个契合的服务工具能帮助到你,它就是 Amazon Inspector。 ## 了解 Amazon Inspector Amazon Inspector 可以自动发现工作负载,例如 Amazon EC2 实例、容器和 Lambda 函数,并扫描它们是否存在软件漏洞和意外的网络暴露,是一项自动化持续漏洞扫描服务,用于在 Amazon ECR 中以及持续集成和持续交付(CI/CD)工具内评测 Amazon Elastic Compute Cloud(EC2)实例、Amazon Lambda 函数和容器镜像以提高基础设施工作负载的安全性和合规性。 ## 它能做些什么? - 在开发周期的早期阶段纳入安全性,并集中管理所有受监控资源的软件物料清单 (SBOM) 导出。 - 近乎实时地检测亚马逊 ECR 和持续集成与持续交付 (CI/CD) 工具中的 Amazon EC2、Amazon Lambda 函数和容器映像等亚马逊云服务工作负载中的软件漏洞和意外网络暴露。 - 使用 Amazon Inspector 风险评分来确定修复的优先级,缩短平均修复时间 (MTTR)。 - 无缝扫描 EC2 实例,在基于代理和无代理的扫描之间切换。 - 通过 Amazon Inspector 扫描支持 NIST CSF、PCI DSS 和其他法规的合规性要求和最佳实践。 以上只是 Amazon Inspector 一些最基本的能力,还有一些更优秀的功能,甚至让许多网安从业人员感到心动和震惊: - 利用超过 50 个漏洞情报来源,自动发现漏洞、加快漏洞路由并缩短 MTTR。 - 使用当前的常见漏洞和暴露(CVE)信息和网络可访问性来创建情境风险评分,以确定易受攻击资源的优先级并加以解决。 ![image-20241121192852886](images/image-20241121192852886.webp) - 在开发人员工具中嵌入漏洞扫描,并导出合并 SBOM 以获取监测资源。 - **Amazon Lambda 标准扫描**:持续评测每个已部署的 Lambda 函数是否存在软件包漏洞。每月总成本基于每月扫描的 Lambda 函数的平均数量。价格根据一个月内 Lambda 函数的 Amazon Inspector 覆盖小时总数(从函数被 Amazon Inspector 发现到函数被删除或从扫描中排除的小时数)按比例分配。 - 扫描后报告中有严重性评判标准(在你的 Amazon EC2 实例中存在已识别的新 CVE,该 CVE 只能远程使用。如果 Amazon Inspector 持续网络可达性扫描还发现无法通过网络访问该实例,Amazon Inspector 就会发现漏洞的利用性太低。因此,Amazon Inspector 将扫描结果与 CVE 相关联,以向下调整风险评分,更准确地反映 CVE 对该特定实例的影响。): ![image-20241120203747459](images/image-20241120203747459.webp) ## 开始使用 Amazon Inspector ### 注册亚马逊云科技账户 {#register-aws} 要使用 Amazon Inspector,你需要一个亚马逊云科技账户,如果你没有账户,系统会提示你在注册 Amazon Inspector 时创建一个。在你使用 Amazon Inspector 之前,系统不会向你收取费用。 打开 [亚马逊云科技账号注册地址][trial-url],点击右上角创建亚马逊云科技账户。 ![创建 Amazon 账户](https://lruihao.cn/posts/aws-ec2/images/23_1693042834.png) 1. 填写邮件地址和账号名称(支持使用国内的邮箱)\ ![login](https://lruihao.cn/posts/aws-ec2/images/23_1693043425.png) 2. 验证邮件\ ![valid](https://lruihao.cn/posts/aws-ec2/images/23_1693043626.png) 3. 输入密码\ ![password](https://lruihao.cn/posts/aws-ec2/images/23_1693043910.png) 4. 联系人信息\ ![contact](https://lruihao.cn/posts/aws-ec2/images/23_1693044220.png) 5. 付款信息\ 接受所有主要信用卡和借记卡(包括 Visa、MasterCard 和 银联信用卡等)\ ![payment-ways](https://lruihao.cn/posts/d1fc0c7/images/24_1720665206.webp) ![payment](https://lruihao.cn/posts/aws-ec2/images/23_1693044537.png) 6. 验证手机号(支持中国地区国内手机号)\ ![phone](https://lruihao.cn/posts/aws-ec2/images/23_1693044806.png) 7. 选择支持计划\ ![plan](https://lruihao.cn/posts/aws-ec2/images/23_1693045029.png) 8. 完成注册\ ![complete](https://lruihao.cn/posts/aws-ec2/images/23_1693045100.png) 9. 登录亚马逊云科技控制台,[登录地址](https://console.aws.amazon.com/console/home?trk=56af0bad-f604-4f80-8f1a-f8a8b0d20118&sc_channel=sm&campaign=blog1352),选择根用户输入电子邮件地址,点击下一步会让输入密码,输入密码后就可以完成登录了。 ### 激活 Amazon Inspector 我们注册之后,在激活页面对产品进行激活使用。 ![image-20241121192006383](images/image-20241121192006383.webp) ### 设定哪些 ESC 需要扫描 在 Scanning configuration 界面中,第一个选项为扫描类型(基础、增强)并且可以添加以标签为索引的服务器 ESC。 ![image-20241120204830625](images/image-20241120204830625.webp) ### 补丁筛选 在 Findings 界面中,我们可以看到 CVE 漏洞编号以及每个漏洞对应的时间和安全性质,在图中对活动状态进行筛选。 ![image-20241120204935440](images/image-20241120204935440.webp) ### 扫描结果分析统计 在结果页面中,可以按不同类型参数进行筛选,并且还可以额外添加筛选条件,点击实例即可查看该实例对漏洞信息。 ![image-20241120205120012](images/image-20241120205120012.webp) ### 定时使用 Lambda 函数生成安全报告 在 Lambda 界面中,可以添加新规则或修改现有规则,添加计划安全任务并生成报告。 ![image-20241120205233244](images/image-20241120205233244.webp) ![image-20241120205304160](images/image-20241120205304160.webp) ### 创建新的 CIS 扫描 ![image-20241121192650957](images/image-20241121192650957.webp) ## 费用相关 首先,它支持 15 天**免费**试用,你只需按实际使用量付费,没有最低费用,也没有预先承诺。 ![image-20241121192436605](images/image-20241121192436605.webp) > **注意**:每个帐户可一次性免费使用 **25** 次映像评测。 ## 使用心得 经过使用 Amazon Inspector 服务,我有以下几点心得体会: - 会一键式入门、集中控制和操作可见性简化了操作,自动重新扫描实例,验证没有引入新的漏洞,这些都是自动化,让我们省不少事情。 - 会发现我们所有的工作负载,持续扫描它们,在其控制台中整合优先发现列表,并通过近乎即时通知新的严重漏洞来缩短我们的平均修复时间。 - 该服务发现我们所有的工作负载,使用来自多个漏洞通知源的数据持续扫描它们,在其控制台中整合优先发现列表,并让我们专注于漏洞修复,而不是管理多个发现工具和配置。 安全是重中之重之事,实时预警与加强管控,有效安全防护与定期安全检查。 立即访问[免费试用页面][trial-url],开始你的亚马逊云科技云服务安全之旅吧! [trial-url]: https://aws.amazon.com/cn/free/?trk=997abc29-fa8e-41bf-afa1-da66c3de023b&sc_channel=sm&campaign=blog1432 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/91db0fa/ ================================================ FILE: posts/a-easy/index.html ================================================ A.Easy H-Index | 菠菜眾長

A.Easy H-Index

警告
本文最后更新于 2023-11-17,文中内容可能已过时。

1 A. Easy h-index

The h-index of an author is the largest h where he has at least h papers with citations not less than h.
Bobo has published many papers. Given a0,a1,a2,…,an which means Bobo has published ai papers with
itations exactly i, find the h-index of Bobo.

1.1 Input

The input consists of several test cases and is terminated by end-of-file.
The first line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,…,an.

1.2 Output

For each test case, print an integer which denotes the result.

1.3 Constraint

• 1≤ n ≤2·105 • 0≤ ai ≤109 • The sum of n does not exceed 250,000.

1.4 Sample Input

1
1 2
2
1 2 3
3
0 0 0 0

1.5 Sample Output

1
2
0

题意:给定被引用次数为 0n 的论文分别有几张,找到最大的 h,满足被引用次数大于等于 h 的论文至少有 h 张
思路:在区间 [0,n] 内二分答案;或直接从 n
0 遍历找到第一个满足条件的 h

后 AC 代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "bits/stdc++.h"
using namespace std;
int main(){
    int a[200005];
    int n;
    int i;
    while(cin>>n){
        for(i=0;i<=n;i++)
            cin>>a[i];
        int sum=a[n];
        for(i=n;i>=0;){
            if(sum>=i){
                cout<<i<<endl;
                break;
            }
            else sum+=a[--i];
        }
        if(i<0)
            cout<<"0"<<endl;
    }
    return 0;
}
Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/a-easy/index.md ================================================ # A.Easy H-Index ## A. Easy h-index The h-index of an author is the largest h where he has at least h papers with citations not less than h. Bobo has published many papers. Given a0,a1,a2,...,an which means Bobo has published ai papers with itations exactly i, find the h-index of Bobo. ### Input The input consists of several test cases and is terminated by end-of-file. The first line of each test case contains an integer n. The second line contains (n+1) integers a0,a1,...,an. ### Output For each test case, print an integer which denotes the result. ### Constraint • 1≤ n ≤2·105 • 0≤ ai ≤109 • The sum of n does not exceed 250,000. ### Sample Input 1 1 2 2 1 2 3 3 0 0 0 0 ### Sample Output 1 2 0 题意:给定被引用次数为 0~n 的论文分别有几张,找到最大的 h,满足被引用次数大于等于 h 的论文至少有 h 张 思路:在区间 [0,n] 内二分答案;或直接从 n~0 遍历找到第一个满足条件的 h 后 AC 代码 ```c #include "bits/stdc++.h" using namespace std; int main(){ int a[200005]; int n; int i; while(cin>>n){ for(i=0;i<=n;i++) cin>>a[i]; int sum=a[n]; for(i=n;i>=0;){ if(sum>=i){ cout< 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/a-easy/ ================================================ FILE: posts/adb-for-mac/index.html ================================================ Mac 配置 ADB | 菠菜眾長

Mac 配置 ADB

警告
本文最后更新于 2023-11-17,文中内容可能已过时。

作为非安卓专业开发,无需下载 Android SDK,
仅下载 Android SDK 中的 platform-tools 命令行工具即可,并配置好环境变量。

1 安装

2 配置环境变量

1
open .bash_profile

写入以下内容

1
2
# platform-tools of Android SDK
export PATH=$PATH:$HOME/Applications/platform-tools
1
source .bash_profile

Windows 系统打开高级设置,配置 PATH 变量,增加一条路径即可。

3 ADB 命令

通过 USB 连接手机和电脑,执行以下命令

1
2
3
4
5
6
# 1. 打开手机 tcpip 5555 端口
adb tcpip 5555
# 2. 查看手机网络 IP
adb shell ifconfig
# 3. 在电脑上 ping 手机网络 IP
# 4. adb connect [Android IP]

4 注意

windows 系统下的文件(夹)命名所采用的是 GBK 编码,而 linux 是采用的 UTF-8 编码,使用 adb 的 push 和 pull 命令时由于编码方式的不同会产生错误,因此需要修改 adb 的源代码来支持编码转换。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/adb-for-mac/index.md ================================================ # Mac 配置 ADB 作为非安卓专业开发,无需下载 Android SDK, 仅下载 Android SDK 中的 [platform-tools](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn) 命令行工具即可,并配置好环境变量。 ## 安装 - [platform-tools](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn) ## 配置环境变量 ```bash open .bash_profile ``` 写入以下内容 ``` # platform-tools of Android SDK export PATH=$PATH:$HOME/Applications/platform-tools ``` ```bash source .bash_profile ``` Windows 系统打开高级设置,配置 PATH 变量,增加一条路径即可。 ## ADB 命令 通过 USB 连接手机和电脑,执行以下命令 ```bash # 1. 打开手机 tcpip 5555 端口 adb tcpip 5555 # 2. 查看手机网络 IP adb shell ifconfig # 3. 在电脑上 ping 手机网络 IP # 4. adb connect [Android IP] ``` - [Android 调试桥 (adb)](https://developer.android.com/studio/command-line/adb?hl=zh-cn) - [awesome-adb](https://github.com/mzlogin/awesome-adb) ## 注意 windows 系统下的文件(夹)命名所采用的是 GBK 编码,而 linux 是采用的 UTF-8 编码,使用 adb 的 push 和 pull 命令时由于编码方式的不同会产生错误,因此需要修改 adb 的源代码来支持编码转换。 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/adb-for-mac/ ================================================ FILE: posts/adjacent-replacements/index.html ================================================ Adjacent Replacements | 菠菜眾長

Adjacent Replacements

警告
本文最后更新于 2023-11-17,文中内容可能已过时。

A. Adjacent Replacements

第一次打 cf 就做出一道这样的找规律的题,打到自闭。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,a[1001];
    cin>>n;
    int i;
    int flag=0;
    for(i=0;i<n;i++){
        cin>>a[i];
        if(!(a[i]&1)) a[i]--;
        if(!flag) {cout<<a[i];flag=1;}
        else cout<<" "<<a[i];
    }
    return 0;
}
Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/adjacent-replacements/index.md ================================================ # Adjacent Replacements [A. Adjacent Replacements](https://codeforces.com/contest/1006/problem/A) 第一次打 cf 就做出一道这样的找规律的题,打到自闭。 ```cpp #include using namespace std; int main(){ int n,a[1001]; cin>>n; int i; int flag=0; for(i=0;i>a[i]; if(!(a[i]&1)) a[i]--; if(!flag) {cout< 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/adjacent-replacements/ ================================================ FILE: posts/article-structure/index.html ================================================ 写作技巧:如何搭建文章的框架结构? | 菠菜眾長

写作技巧:如何搭建文章的框架结构?

警告
本文最后更新于 2023-11-30,文中内容可能已过时。

最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。

1 方法论的作用

所谓方法论,通俗点讲就是套路,虽然限制了天才的火花,但是保证了合格的下限。

这个不难理解,拿武侠举例,每个门派都有剑招或者拳法,招式都是固定的,这个固定的招式就可以看成是方法论,而武功的最高境界是无招胜有招,讲求见招拆招,是不希望有固定的套路的。

但是,这些固定的招数你又不能不学,因为天才总是少数,而学习固定的招式,至少可以保证门派弟子比路人强一截。

学习如何说话,学习如何写作也是类似的,对于那些天生会说话,天生会写作的人而言,方法论反而是个桎梏,会限制他们的发挥。

但是对于原本不是这块料的人而言,方法论可以让你迅速进入学习的正轨,保证了实践结果不至于太差。

张鑫旭大佬结合自己的写作经验,总结出了一套核心思想,并抽象出了若干写作方法论。

2 核心思想

文章书写的核心思想无非这两个:

  1. 文字前后连贯;

  2. 内容重点突出。

这些核心思想和人类的认知特点正好是相匹配的。

3 具体的写作套路

这里按照文章类型的不同讲下可以拿来套用的写作路数。

正所谓一图胜千言,每一种写作结构都做了示意图。

3.1 1. 技术科普

技术科普是人人都可以创作的一种文章类型,这类文章适合新人阅读,受众广泛。

这类文章结构可以如下图这般搭建:

graph LR
  A["作用是什么?
  (亮点前置)"]
  B(("效果演示
  (如果有)"))
  C["语法和参数"]
  D["具体使用说明
  (主要篇幅)"]
  E{"案例"}
  F["细节知识(包括兼容性)"]
  G["点评总结
  (稀缺内容)"]
  A---B---C---D---F---G
  D-.->E
  
graph LR
  A["作用是什么?
  (亮点前置)"]
  B(("效果演示
  (如果有)"))
  C["语法和参数"]
  D["具体使用说明
  (主要篇幅)"]
  E{"案例"}
  F["细节知识(包括兼容性)"]
  G["点评总结
  (稀缺内容)"]
  A---B---C---D---F---G
  D-.->E
  
graph LR
  A["作用是什么?
  (亮点前置)"]
  B(("效果演示
  (如果有)"))
  C["语法和参数"]
  D["具体使用说明
  (主要篇幅)"]
  E{"案例"}
  F["细节知识(包括兼容性)"]
  G["点评总结
  (稀缺内容)"]
  A---B---C---D---F---G
  D-.->E
  

很多在线文档也是按照这个结构撰写的。

3.2 2. 原理剖析

原理剖析类的文章对于创作者加深对当前技术的理解很有帮助,虽然受众不一定广泛,但是对于自身的学习却很有帮助。

通常,这类文章可以遵循由表及里,层层深入的架构策略,方便他人的学习与理解。

graph LR
  A[现象描述]
  B(("想象演示
  (视频或图片)"))
  C[解释说明]
  D[基本概念]
  E[浅层原因]
  F["更深入解释
  (体现专业深度)"]
  G["启示与拓展
  (稀缺内容)"]
  D-.->C
  A---B---C---F---G
  E-.->C
graph LR
  A[现象描述]
  B(("想象演示
  (视频或图片)"))
  C[解释说明]
  D[基本概念]
  E[浅层原因]
  F["更深入解释
  (体现专业深度)"]
  G["启示与拓展
  (稀缺内容)"]
  D-.->C
  A---B---C---F---G
  E-.->C
graph LR
  A[现象描述]
  B(("想象演示
  (视频或图片)"))
  C[解释说明]
  D[基本概念]
  E[浅层原因]
  F["更深入解释
  (体现专业深度)"]
  G["启示与拓展
  (稀缺内容)"]
  D-.->C
  A---B---C---F---G
  E-.->C

3.3 3. 功能实现

我们所有的互联网产品都是通过一个又一个的功能实现的,比方说“鼠标经过按钮变色”就属于一个功能,点击按钮复制内容也属于功能。

所有这些功能的实现都可以创作成文章,而这些文章会成为搜索引擎流量来源大户。

因为很多开发者在实现某一个功能的时候,都习惯先去找找有没有现成的代码可以直接拿来使用。

这就要求我们在文章中一定要放代码,最后配上演示页面,然后为了吸引用户继续阅读,通常会把实现好的效果放在最前面,即上面提到的亮点前置。

所以,可以尝试使用下图所示的文章结构:

graph LR
A[功能或效果说明]
B((效果演示))
C[在线 demo]
D[视频或截图]
E[实现思路]
F["实现代码
(读者最关心)"]
G[实现原理]
H[总结与拓展]
C-.->B
E-. 你也可以在这个位置 .->G
A---B---E---F---G---H
D-.->B
graph LR
A[功能或效果说明]
B((效果演示))
C[在线 demo]
D[视频或截图]
E[实现思路]
F["实现代码
(读者最关心)"]
G[实现原理]
H[总结与拓展]
C-.->B
E-. 你也可以在这个位置 .->G
A---B---E---F---G---H
D-.->B
graph LR
A[功能或效果说明]
B((效果演示))
C[在线 demo]
D[视频或截图]
E[实现思路]
F["实现代码
(读者最关心)"]
G[实现原理]
H[总结与拓展]
C-.->B
E-. 你也可以在这个位置 .->G
A---B---E---F---G---H
D-.->B

3.4 4. 使用教程

每个人对教程的理解不一样,在我的写作认知中,教程专指针对小白的那种奶妈式的教学文章,会非常详细与具体,会有大量的配图与案例,生怕对方走错一步就不知道接下来该怎么办。

这类文章其实按部就班呈现就可以了:

graph LR
  A["背景说明
  (如果有)"]
  B["步骤1/操作1
  (注意事项或示意图)"]
  C["步骤2/操作2
  (注意事项或示意图)"]
  D["步骤3/操作3
  (注意事项或示意图)"]
  E[其他说明]
  A---B---C---D-- ... ---E
graph LR
  A["背景说明
  (如果有)"]
  B["步骤1/操作1
  (注意事项或示意图)"]
  C["步骤2/操作2
  (注意事项或示意图)"]
  D["步骤3/操作3
  (注意事项或示意图)"]
  E[其他说明]
  A---B---C---D-- ... ---E
graph LR
  A["背景说明
  (如果有)"]
  B["步骤1/操作1
  (注意事项或示意图)"]
  C["步骤2/操作2
  (注意事项或示意图)"]
  D["步骤3/操作3
  (注意事项或示意图)"]
  E[其他说明]
  A---B---C---D-- ... ---E

3.5 5. 问题解决

如果问题解决的过程是写给公司内部的人(尤其是领导)看的,或者说写作的目的是炫一把自己解决问题的能力,则自己的思考过程一定要重点阐述。

如果你写作的目的很单纯,就是希望帮助外面遇到同样问题的人,那就可以多讲讲问题产生的原因,以及如何解决即可,别人对你的思考过程并不在意。

下面这个文章结构示意图是按照内部创作的背景设计的,强调个人在整个过程中的能动性。

graph LR
  A["背景描述
  (如果有)"]
  B[问题描述]
  C(("问题演示
  (视频或图片)"))
  D["我的思考
 再次思考
 ..."]
  E["初次尝试
 再次尝试
 ..."]
  F{结果}
  G[结语]
  A---B---C---D==>E==>F-- YES -->G
  F== NO ==>D
graph LR
  A["背景描述
  (如果有)"]
  B[问题描述]
  C(("问题演示
  (视频或图片)"))
  D["我的思考
 再次思考
 ..."]
  E["初次尝试
 再次尝试
 ..."]
  F{结果}
  G[结语]
  A---B---C---D==>E==>F-- YES -->G
  F== NO ==>D
graph LR
  A["背景描述
  (如果有)"]
  B[问题描述]
  C(("问题演示
  (视频或图片)"))
  D["我的思考
 再次思考
 ..."]
  E["初次尝试
 再次尝试
 ..."]
  F{结果}
  G[结语]
  A---B---C---D==>E==>F-- YES -->G
  F== NO ==>D

如果你是对外创作,则可以根据侧重点不同,微调写作结构。

3.6 6. 项目总结

项目总结一定是对内的,即使我们在外网看到一些大公司团队发的项目总结类的文章,也是内销转出口。

这类文章一般看起来都很高大上,但读完一阵空虚,啥也没学到。

这是正常且理所当然的,因为项目总结的目的本质上就是一种职场邀功炫技手段,而不是技术传道。

所以,这类文章的难点不在于结构设计,而是如何通过不会让人反感的朴实无华的语言透露出项目牛逼、项目人员牛逼的信息。

graph LR
 A[项目背景]
 B[取得的成绩]
 C((漂亮数据\n或最终效果))
 E[贡献]
 F[困难与解决]
 G[成长]
 H[主体可以是个人一可以是团队]
 I[总结]
 J[感谢]
  C-.->B
  A---B---D---I---J
  subgraph D["项目详情(根据实际情况调整)"]
   direction BT
    E & F & G---H
  end
graph LR
 A[项目背景]
 B[取得的成绩]
 C((漂亮数据\n或最终效果))
 E[贡献]
 F[困难与解决]
 G[成长]
 H[主体可以是个人一可以是团队]
 I[总结]
 J[感谢]
  C-.->B
  A---B---D---I---J
  subgraph D["项目详情(根据实际情况调整)"]
   direction BT
    E & F & G---H
  end
graph LR
 A[项目背景]
 B[取得的成绩]
 C((漂亮数据\n或最终效果))
 E[贡献]
 F[困难与解决]
 G[成长]
 H[主体可以是个人一可以是团队]
 I[总结]
 J[感谢]
  C-.->B
  A---B---D---I---J
  subgraph D["项目详情(根据实际情况调整)"]
   direction BT
    E & F & G---H
  end

3.7 7. 会议记录

国内每年都会有很多技术峰会,当然,这几年因为口罩原因,多以线上为主了。

然后各个城市还有不少免费的技术沙龙,各个技术社区也会有一些免费的线上活动,一些知名行业从业者也会不定期直播,因此,只要你有兴趣,都可以作为观众参与其中。

参加完了,是不是可以写篇文章记录下呢?

跟大家讲,这种文章不需要技术含量,但是访问量相当的高,因为人都是懒惰的,总希望以最低的成本收获最多的东西。

一看,嘿,这个不错,我只要花几分钟看一下,就能学到别人花好几个小时学到的东西,何乐而不为呢?哪怕什么都没学到,至少满足了自己的好奇心,怎么看都不亏。

而这类文章的内容结构也比较固定,就按照时间进行组织就好了,会议的按会议时间,直播的按直播时间。

graph LR
  A["会议简介
  (时间、与会人等)"]
  B(("现场照片
  (如果有)"))
  C["过程1
  点评(如果有)"]
  D["过程2
  点评(如果有)"]
  E["过程3
  点评(如果有)"]
  F[自己的感受]
  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F
graph LR
  A["会议简介
  (时间、与会人等)"]
  B(("现场照片
  (如果有)"))
  C["过程1
  点评(如果有)"]
  D["过程2
  点评(如果有)"]
  E["过程3
  点评(如果有)"]
  F[自己的感受]
  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F
graph LR
  A["会议简介
  (时间、与会人等)"]
  B(("现场照片
  (如果有)"))
  C["过程1
  点评(如果有)"]
  D["过程2
  点评(如果有)"]
  E["过程3
  点评(如果有)"]
  F[自己的感受]
  A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F

3.8 8. 工具测评

这类文章也非常适合新手创作,大家应该也都见过,比方说某某框架初体验、A 框架和 B 框架我该使用哪个?

这类文章的核心价值就在于评测,你以一个过来人的身份,是否建议读者使用这个工具之类的。

但评测是否中肯可信,还需要一些证明,这些证明就可以通过展示使用过程和最终效果来完成。

下图是可以参考使用的一种框架结构:

graph LR
  A["故事背景
  (为什么会使用此工具?)"]
  B[使用过程全记录]
  C["使用感受
  (核心价值)"]
  D["优点是?缺点是?"]
  E["和同类工具对比如何?"]
  F["对其未来发展的判断是?"]
  G[最后的总结]
  H((视频或截图))
  A---B---C-->D & E & F-->G
  H-.->B
graph LR
  A["故事背景
  (为什么会使用此工具?)"]
  B[使用过程全记录]
  C["使用感受
  (核心价值)"]
  D["优点是?缺点是?"]
  E["和同类工具对比如何?"]
  F["对其未来发展的判断是?"]
  G[最后的总结]
  H((视频或截图))
  A---B---C-->D & E & F-->G
  H-.->B
graph LR
  A["故事背景
  (为什么会使用此工具?)"]
  B[使用过程全记录]
  C["使用感受
  (核心价值)"]
  D["优点是?缺点是?"]
  E["和同类工具对比如何?"]
  F["对其未来发展的判断是?"]
  G[最后的总结]
  H((视频或截图))
  A---B---C-->D & E & F-->G
  H-.->B

3.9 9. 技术人文

如果是技术人文,则情况就会变得复杂,因为技术人文所包含的写作范围非常广泛,例如软技能分享、心理困惑答疑、职业发展指导、行业发展看法等都属于技术人文的写作范畴,而不同的主题所需要的框架结构都是不一样的。

很多文章可以从其他类型的文章中找到可以借鉴的套路,这里,我就单纯地展示下观点类的技术文章的写作结构:

graph LR
  A["论点先行
  (我认为…)"]
  B["原因1
  (案例佐证)"]
  C["原因2
  (案例佐证)"]
  D["原因3
  (案例佐证)"]
  E[最后的总结]
  A---B---C---D-- ... ---E
graph LR
  A["论点先行
  (我认为…)"]
  B["原因1
  (案例佐证)"]
  C["原因2
  (案例佐证)"]
  D["原因3
  (案例佐证)"]
  E[最后的总结]
  A---B---C---D-- ... ---E
graph LR
  A["论点先行
  (我认为…)"]
  B["原因1
  (案例佐证)"]
  C["原因2
  (案例佐证)"]
  D["原因3
  (案例佐证)"]
  E[最后的总结]
  A---B---C---D-- ... ---E

3.10 10. 职场故事

职场故事通常都是当事人的真实经历,是比较好写的,按照时间线讲好每个时间段的故事即可,如果分享的是刚编的故事,也可以遵循这个套路:

graph LR
  A[背景故事]
  B[做了什么事情]
  C[发生了什么结果]
  D[当事人的感受]
  E["再后来……"]
  A---B-->C-->D-->E-->B
graph LR
  A[背景故事]
  B[做了什么事情]
  C[发生了什么结果]
  D[当事人的感受]
  E["再后来……"]
  A---B-->C-->D-->E-->B
graph LR
  A[背景故事]
  B[做了什么事情]
  C[发生了什么结果]
  D[当事人的感受]
  E["再后来……"]
  A---B-->C-->D-->E-->B

当然,还有其他类型的技术文章,例如技术八卦、行业新闻等,我就不一一展示了,基本上都是有迹可循的。

4 没有固定的套路

回到本文一开始的那个观点,写作其实是没有固定的套路的,这就像武功招式一样,这一套剑法必中其要害,结果人家穿了软猬甲,刀枪不入,是不是需要变化和调整?

写作也是这样,现实世界总是多变的,理想的条件总是难以满足,所以,套路虽好用,但也要学会应变。比方说:

  1. 不同的账号主体
  2. 不同的阅读对象

同样类型的文章,如果发布的账号主体不同,则文章的结构也会有所不同,同样的主题,给同事看的和给同行看的文章结构也是大不相同。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/article-structure/index.md ================================================ # 写作技巧:如何搭建文章的框架结构? 最近读了张鑫旭大佬的掘金小册《技术写作指南》,学到了很多写作技巧,其中感触最深的就是“技巧:如何搭建文章的框架结构”这一小节,这篇文章就来分享一下。 ## 方法论的作用 所谓方法论,通俗点讲就是套路,虽然限制了天才的火花,但是保证了合格的下限。 这个不难理解,拿武侠举例,每个门派都有剑招或者拳法,招式都是固定的,这个固定的招式就可以看成是方法论,而武功的最高境界是无招胜有招,讲求见招拆招,是不希望有固定的套路的。 但是,这些固定的招数你又不能不学,因为天才总是少数,而学习固定的招式,至少可以保证门派弟子比路人强一截。 学习如何说话,学习如何写作也是类似的,对于那些天生会说话,天生会写作的人而言,方法论反而是个桎梏,会限制他们的发挥。 但是对于原本不是这块料的人而言,方法论可以让你迅速进入学习的正轨,保证了实践结果不至于太差。 张鑫旭大佬结合自己的写作经验,总结出了一套核心思想,并抽象出了若干写作方法论。 ## 核心思想 文章书写的核心思想无非这两个: 1. 文字前后连贯; 2. 内容重点突出。 这些核心思想和人类的认知特点正好是相匹配的。 ... ## 具体的写作套路 这里按照文章类型的不同讲下可以拿来套用的写作路数。 正所谓一图胜千言,每一种写作结构都做了示意图。 ### 1. 技术科普 技术科普是人人都可以创作的一种文章类型,这类文章适合新人阅读,受众广泛。 这类文章结构可以如下图这般搭建: ```mermaid graph LR A["作用是什么? (亮点前置)"] B(("效果演示 (如果有)")) C["语法和参数"] D["具体使用说明 (主要篇幅)"] E{"案例"} F["细节知识(包括兼容性)"] G["点评总结 (稀缺内容)"] A---B---C---D---F---G D-.->E ``` 很多在线文档也是按照这个结构撰写的。 ### 2. 原理剖析 原理剖析类的文章对于创作者加深对当前技术的理解很有帮助,虽然受众不一定广泛,但是对于自身的学习却很有帮助。 通常,这类文章可以遵循由表及里,层层深入的架构策略,方便他人的学习与理解。 ```mermaid graph LR A[现象描述] B(("想象演示 (视频或图片)")) C[解释说明] D[基本概念] E[浅层原因] F["更深入解释 (体现专业深度)"] G["启示与拓展 (稀缺内容)"] D-.->C A---B---C---F---G E-.->C ``` ### 3. 功能实现 我们所有的互联网产品都是通过一个又一个的功能实现的,比方说“鼠标经过按钮变色”就属于一个功能,点击按钮复制内容也属于功能。 所有这些功能的实现都可以创作成文章,而这些文章会成为搜索引擎流量来源大户。 因为很多开发者在实现某一个功能的时候,都习惯先去找找有没有现成的代码可以直接拿来使用。 这就要求我们在文章中一定要放代码,最后配上演示页面,然后为了吸引用户继续阅读,通常会把实现好的效果放在最前面,即上面提到的亮点前置。 所以,可以尝试使用下图所示的文章结构: ```mermaid graph LR A[功能或效果说明] B((效果演示)) C[在线 demo] D[视频或截图] E[实现思路] F["实现代码 (读者最关心)"] G[实现原理] H[总结与拓展] C-.->B E-. 你也可以在这个位置 .->G A---B---E---F---G---H D-.->B ``` ### 4. 使用教程 每个人对教程的理解不一样,在我的写作认知中,教程专指针对小白的那种奶妈式的教学文章,会非常详细与具体,会有大量的配图与案例,生怕对方走错一步就不知道接下来该怎么办。 这类文章其实按部就班呈现就可以了: ```mermaid graph LR A["背景说明 (如果有)"] B["步骤1/操作1 (注意事项或示意图)"] C["步骤2/操作2 (注意事项或示意图)"] D["步骤3/操作3 (注意事项或示意图)"] E[其他说明] A---B---C---D-- ... ---E ``` ### 5. 问题解决 如果问题解决的过程是写给公司内部的人(尤其是领导)看的,或者说写作的目的是炫一把自己解决问题的能力,则自己的**思考过程**一定要重点阐述。 如果你写作的目的很单纯,就是希望帮助外面遇到同样问题的人,那就可以多讲讲问题产生的原因,以及如何解决即可,别人对你的思考过程并不在意。 下面这个文章结构示意图是按照内部创作的背景设计的,强调个人在整个过程中的能动性。 ```mermaid graph LR A["背景描述 (如果有)"] B[问题描述] C(("问题演示 (视频或图片)")) D["我的思考 再次思考 ..."] E["初次尝试 再次尝试 ..."] F{结果} G[结语] A---B---C---D==>E==>F-- YES -->G F== NO ==>D ``` 如果你是对外创作,则可以根据侧重点不同,微调写作结构。 ### 6. 项目总结 项目总结一定是对内的,即使我们在外网看到一些大公司团队发的项目总结类的文章,也是内销转出口。 这类文章一般看起来都很高大上,但读完一阵空虚,啥也没学到。 这是正常且理所当然的,因为项目总结的目的本质上就是一种职场邀功炫技手段,而不是技术传道。 所以,这类文章的难点不在于结构设计,而是如何通过不会让人反感的朴实无华的语言透露出项目牛逼、项目人员牛逼的信息。 ```mermaid graph LR A[项目背景] B[取得的成绩] C((漂亮数据\n或最终效果)) E[贡献] F[困难与解决] G[成长] H[主体可以是个人一可以是团队] I[总结] J[感谢] C-.->B A---B---D---I---J subgraph D["项目详情(根据实际情况调整)"] direction BT E & F & G---H end ``` ### 7. 会议记录 国内每年都会有很多技术峰会,当然,这几年因为口罩原因,多以线上为主了。 然后各个城市还有不少免费的技术沙龙,各个技术社区也会有一些免费的线上活动,一些知名行业从业者也会不定期直播,因此,只要你有兴趣,都可以作为观众参与其中。 参加完了,是不是可以写篇文章记录下呢? 跟大家讲,这种文章不需要技术含量,但是访问量相当的高,因为人都是懒惰的,总希望以最低的成本收获最多的东西。 一看,嘿,这个不错,我只要花几分钟看一下,就能学到别人花好几个小时学到的东西,何乐而不为呢?哪怕什么都没学到,至少满足了自己的好奇心,怎么看都不亏。 而这类文章的内容结构也比较固定,就按照时间进行组织就好了,会议的按会议时间,直播的按直播时间。 ```mermaid graph LR A["会议简介 (时间、与会人等)"] B(("现场照片 (如果有)")) C["过程1 点评(如果有)"] D["过程2 点评(如果有)"] E["过程3 点评(如果有)"] F[自己的感受] A---B-->C-- 时间 -->D-- 顺序 -->E-- ... ---F ``` ### 8. 工具测评 这类文章也非常适合新手创作,大家应该也都见过,比方说某某框架初体验、A 框架和 B 框架我该使用哪个? 这类文章的核心价值就在于评测,你以一个过来人的身份,是否建议读者使用这个工具之类的。 但评测是否中肯可信,还需要一些证明,这些证明就可以通过展示使用过程和最终效果来完成。 下图是可以参考使用的一种框架结构: ```mermaid graph LR A["故事背景 (为什么会使用此工具?)"] B[使用过程全记录] C["使用感受 (核心价值)"] D["优点是?缺点是?"] E["和同类工具对比如何?"] F["对其未来发展的判断是?"] G[最后的总结] H((视频或截图)) A---B---C-->D & E & F-->G H-.->B ``` ### 9. 技术人文 如果是技术人文,则情况就会变得复杂,因为技术人文所包含的写作范围非常广泛,例如软技能分享、心理困惑答疑、职业发展指导、行业发展看法等都属于技术人文的写作范畴,而不同的主题所需要的框架结构都是不一样的。 很多文章可以从其他类型的文章中找到可以借鉴的套路,这里,我就单纯地展示下观点类的技术文章的写作结构: ```mermaid graph LR A["论点先行 (我认为…)"] B["原因1 (案例佐证)"] C["原因2 (案例佐证)"] D["原因3 (案例佐证)"] E[最后的总结] A---B---C---D-- ... ---E ``` ### 10. 职场故事 职场故事通常都是当事人的真实经历,是比较好写的,按照时间线讲好每个时间段的故事即可,如果分享的是刚编的故事,也可以遵循这个套路: ```mermaid graph LR A[背景故事] B[做了什么事情] C[发生了什么结果] D[当事人的感受] E["再后来……"] A---B-->C-->D-->E-->B ``` 当然,还有其他类型的技术文章,例如技术八卦、行业新闻等,我就不一一展示了,基本上都是有迹可循的。 ## 没有固定的套路 回到本文一开始的那个观点,写作其实是没有固定的套路的,这就像武功招式一样,这一套剑法必中其要害,结果人家穿了软猬甲,刀枪不入,是不是需要变化和调整? 写作也是这样,现实世界总是多变的,理想的条件总是难以满足,所以,套路虽好用,但也要学会应变。比方说: 1. 不同的账号主体 2. 不同的阅读对象 同样类型的文章,如果发布的账号主体不同,则文章的结构也会有所不同,同样的主题,给同事看的和给同行看的文章结构也是大不相同。 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/article-structure/ ================================================ FILE: posts/aside-toggle-drag/index.html ================================================ 如何实现 VSCode 编辑器窗口边界拖拽类似功能 | 菠菜眾長

如何实现 VSCode 编辑器窗口边界拖拽类似功能

警告
本文最后更新于 2024-06-17,文中内容可能已过时。

边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。

1 效果演示

vue-el-demo/#/aside-toggle-drag

2 实现代码

@/components/AsideToggler

3 实现思路

怎么说呢,写这篇文章就是想记录一下思路,本来想画个图说明一下的,但是懒得画了,随便说几句吧。

实现边界拖拽调整窗口大小功能,主要是通过鼠标按下、移动、松开事件来实现的,主要思路如下:

  1. mousedown 事件中,我们记录下鼠标的初始位置和元素的初始宽度。
  2. mousemove 事件中,我们根据鼠标的新位置计算出新的宽度,并使用 clamp() 函数将其限制在最小宽度和最大宽度之间。
  3. 同时,我们还需要根据鼠标位置的变化,动态更新鼠标样式,以提示用户当前的拖拽状态。
  4. mouseup 事件中,我们清除之前设置的事件监听器,并恢复鼠标样式。

实现过程中,有两个比较巧妙的点:

  • 计算宽度的时候,没有使用 JS 计算,而是直接使用了 CSS 的 clamp() 函数,一目了然。
  • 为了鼠标移动到可拖拽边界时显示一条蓝色的线,但是又不想改变元素的宽度,所以 resize-bar 元素的使用了 position: absolute,并且设置了 translateX(-50%) 来让其居中显示。当鼠标移入时,通过线性渐变的背景色巧妙地来实现蓝色线条的效果。

正是因为第二点的实现方式,使得在边界线左右两侧都能拖拽,这一点是优于 VSCode 的,因为 VSCode 只能在左侧拖拽 😂。

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/aside-toggle-drag/index.md ================================================ # 如何实现 VSCode 编辑器窗口边界拖拽类似功能 边界拖拽调整窗口大小功能是一个很常见的功能,比如浏览器、编辑器等很多场景都有应用,这种功能不仅提高了用户体验,也增强了应用的灵活性。 ## 效果演示 [vue-el-demo/#/aside-toggle-drag](https://lruihao.github.io/vue-el-demo/#/aside-toggle-drag) ## 实现代码 [@/components/AsideToggler](https://github.com/Lruihao/vue-el-demo/blob/main/src/components/AsideToggler/index.vue) ## 实现思路 怎么说呢,写这篇文章就是想记录一下思路,本来想画个图说明一下的,但是懒得画了,随便说几句吧。 实现边界拖拽调整窗口大小功能,主要是通过鼠标按下、移动、松开事件来实现的,主要思路如下: 1. 在 `mousedown` 事件中,我们记录下鼠标的初始位置和元素的初始宽度。 2. 在 `mousemove` 事件中,我们根据鼠标的新位置计算出新的宽度,并使用 `clamp()` 函数将其限制在最小宽度和最大宽度之间。 3. 同时,我们还需要根据鼠标位置的变化,动态更新鼠标样式,以提示用户当前的拖拽状态。 4. 在 `mouseup` 事件中,我们清除之前设置的事件监听器,并恢复鼠标样式。 实现过程中,有两个比较巧妙的点: - 计算宽度的时候,没有使用 JS 计算,而是直接使用了 CSS 的 `clamp()` 函数,一目了然。 - 为了鼠标移动到可拖拽边界时显示一条蓝色的线,但是又不想改变元素的宽度,所以 `resize-bar` 元素的使用了 `position: absolute`,并且设置了 `translateX(-50%)` 来让其居中显示。当鼠标移入时,通过线性渐变的背景色巧妙地来实现蓝色线条的效果。 正是因为第二点的实现方式,使得在边界线左右两侧都能拖拽,这一点是优于 VSCode 的,因为 VSCode 只能在左侧拖拽 😂。 --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/aside-toggle-drag/ ================================================ FILE: posts/async-defer/index.html ================================================ Script 的三种加载方式 (Async, Defer) | 菠菜眾長

Script 的三种加载方式 (Async, Defer)

警告
本文最后更新于 2023-12-08,文中内容可能已过时。
注意
JS 的加载分为两个部分:下载和执行。
浏览器在执行 HTML 的时候如果遇到<script>时会停止页面的渲染,去下载和执行 js 的文件直接遇见</scirpt>会继续渲染页面。故浏览器在执行 js 文件的时候浏览器表现为一片空白,为了解决这个问题 ECMAScript 定义了 defer 和 async 两个属性用于控制 JS 的下载和执行。

1 不带任何属性

同步模式,又称阻塞模式,我们平时使用的最多的一种方式。当浏览器解析到<script>标签时,浏览器会停止解析其后的内容,而优先下载脚本文件,并执行其中的代码,是个同步阻塞的过程。
一般建议把<script>标签放在<body>结尾处,这样尽可能减少页面阻塞。
而如果想要异步执行 script,则可以给其加上 async 或 defer 属性。

1
<script>

2 defer

defer 属性在 HTML 解析期间异步下载文件,并且只在 HTML 解析完成后才执行它。对于 defer,我们可以理解是将外链的 js 放在了页面底部。js 的加载不会阻塞页面的渲染和资源的加载。不过 defer 会按照原本的 js 的顺序执行,所以如果前后有依赖关系的 js 可以放心使用。

1
<script defer>

3 async

async 属性会在 HTML 解析期间异步下载文件,并在完成下载后立即暂停 HTML 解析器去执行 script 中的代码。在执行过程中浏览器处于阻塞状态,响应不了任何需求。如果 js 前后有依赖性,用 async,就很有可能出错。

1
<script async>

4 区别

4.1 相同点

  1. 加载文件时不阻塞页面渲染
  2. 对于 inline 的 script 无效(只适用有src的外部 js)
  3. 使用这两个属性的脚本中不能调用 document.write 方法
  4. 有脚本的 onload 的事件回调

4.2 区别点

  1. html4.0 中定义了 defer;html5.0 中定义了 async
  2. 浏览器支持不同
  3. 每一个 async 属性的脚本都在它下载结束之后立刻执行,同时会在 window 的 load 事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况;每一个 defer 属性的脚本都是在页面解析完毕之后,按照原本的顺序执行,同时会在 document 的 DOMContentLoaded 之前执行。

5 那么这三种方式各在什么情况下使用呢?

通常来说,尽可能使用async,然后是defer,最后不使用属性。 并遵循以下规则:

  • 如果脚本是模块化的,并且不依赖于任何脚本,则使用async
  • 如果脚本依赖于或依赖于另一个脚本,则使用defer
  • 如果脚本很小并且有async脚本依赖该脚本,则不加属性。

6 兼容性

  1. Internet Explorer 10、Firefox、Opera、Chrome 和 Safari 支持 async 属性。
  2. 所有主流浏览器都支持 defer 属性。

7 参考

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/async-defer/index.md ================================================ # Script 的三种加载方式 (Async, Defer) {{< admonition note >}} JS 的加载分为两个部分:下载和执行。 浏览器在执行 HTML 的时候如果遇到`

CSS @Layer:构建更高效、更可维护的样式层级

警告
本文最后更新于 2025-06-18,文中内容可能已过时。

在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 @layer 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 @layer 的背景、作用以及语法,带你一探究竟。

1 @layer 的背景

在 CSS 的发展历程中,样式的优先级规则一直是核心概念之一。默认情况下,CSS 样式按照选择器的优先级(如内联样式 > ID 选择器 > 类选择器 > 元素选择器)以及代码的书写顺序来决定最终的样式效果。然而,这种简单的优先级规则在大型项目中常常会引发问题:

  1. 样式冲突:多个样式规则可能同时作用于同一个元素,导致样式冲突,开发者需要不断调整选择器的优先级来解决问题。
  2. 维护困难:随着项目的复杂度增加,样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。
  3. 组件化开发的挑战:在组件化开发中,不同组件的样式可能会相互干扰,导致样式管理混乱。

为了解决这些问题,CSS 工作组引入了 @layer 规则。@layer 允许开发者显式地定义样式的层级关系,从而更好地组织和管理样式规则。

2 @layer 的作用

2.1 定义样式层级

@layer 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层,我们可以明确地控制样式的优先级顺序。例如,我们可以将基础样式定义在较低的层级,而将特定组件的样式定义在较高的层级,从而避免样式冲突。

1
2
3
4
5
6
7
@layer base {
  body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
  }
}

2.2 提升代码可维护性

使用 @layer 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层,便于后续的修改和扩展。同时,分层的样式规则也更容易被团队成员理解和协作。

2.3 支持组件化开发

在组件化开发中,@layer 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级,从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。

例如:

1
2
3
4
5
6
7
8
9
@layer components {
  .cell-button {
    background-color: blue;
    color: white;
    padding: 10px;
    border: none;
    cursor: pointer;
  }
}

在业务代码中,我们可以无视组件 CSS 的优先级,直接进行重置:

1
2
3
.cell-button {
  background-color: red; /* 覆盖组件样式 */
}

眼见为实:

可以理解为 @layer 定义的层级会整体下降一个优先级,这样便于分开业务代码和组件代码的样式管理。

3 @layer 的语法

3.1 基本语法

1
2
3
@layer layer-name? {rules}
@layer layer-name;
@layer layer-name, layer-name, layer-name;

简而言之,@layer 规则可以用来定义一个样式层级或者改变现有层级的优先级

  • @layer layer-name? {rules}; 这种形式用于定义一个新的样式层级,如果名称为空,则为匿名层级。
  • @layer 后接一个或多个层级名称,用于指定样式层级的优先级顺序,按照前后顺序。

3.2 让整个 CSS 文件变成 @layer

如果我们希望将整个 CSS 文件作为一个层级,可以使用以下语法:

@import 中使用:

1
@import (utilities.css) layer(utilities);

<link> 元素引用 (*):

警告

该用法有待考证,在 MDN 上尚未找到明确文档。

1
2
3
<link rel="stylesheet" href="utilities.css" layer="utilities">
<!-- 样式引入到一个匿名级联层中 -->
<link rel="stylesheet" href="utilities.css" layer>

3.3 嵌套层级

@layer 也支持嵌套定义,这使得我们可以在一个层级中进一步细分样式规则。例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
@layer base {
  @layer typography {
    h1 {
      font-size: 24px;
    }
    p {
      font-size: 16px;
    }
  }
}

在嵌套层级中,外层层级的优先级低于内层层级。

多嵌套语法下的优先级:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
@layer A {
  p { color: red; }
  @layer B {
    p { color: green; }
  }
}
@layer C {
  p { color: orange; }
  @layer D {
    p { color: blue; }
  }
}

其中的优先级大小是这样的:C > C.D > A > A.B

另外,嵌套语法还支持使用级联写法简化。

例如,普通内外嵌套写法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
@layer outer {
  button {
    width: 100px;
    height: 30px;    
  }
  @layer inner {
    button {
      height: 40px;
      width: 160px;
    }    
  }
}

上面的内外嵌套语法还可以写成下面这样:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
@layer outer {
  button {
    width: 100px;
    height: 30px;    
  }
}
@layer outer.inner {
  button {
    height: 40px;
    width: 160px;
  }    
}

4 @layer 的兼容性

5 参考

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/at-layer/index.md ================================================ # CSS @Layer:构建更高效、更可维护的样式层级 在现代前端开发中,CSS 的样式管理一直是一个令人头疼的问题。随着项目的不断扩展,样式规则的冲突、覆盖以及维护成本的增加,都给开发者带来了巨大的挑战。幸运的是,CSS 的 `@layer` 规则为我们提供了一种全新的解决方案,帮助我们更好地管理样式层级,提升代码的可维护性和可读性。本文将深入探讨 `@layer` 的背景、作用以及语法,带你一探究竟。 ## `@layer` 的背景 在 CSS 的发展历程中,样式的优先级规则一直是核心概念之一。默认情况下,CSS 样式按照选择器的优先级(如内联样式 > ID 选择器 > 类选择器 > 元素选择器)以及代码的书写顺序来决定最终的样式效果。然而,这种简单的优先级规则在大型项目中常常会引发问题: 1. **样式冲突**:多个样式规则可能同时作用于同一个元素,导致样式冲突,开发者需要不断调整选择器的优先级来解决问题。 2. **维护困难**:随着项目的复杂度增加,样式文件变得庞大且难以维护。开发者很难快速定位和修改特定的样式规则。 3. **组件化开发的挑战**:在组件化开发中,不同组件的样式可能会相互干扰,导致样式管理混乱。 为了解决这些问题,CSS 工作组引入了 `@layer` 规则。`@layer` 允许开发者显式地定义样式的层级关系,从而更好地组织和管理样式规则。 ## `@layer` 的作用 ### 定义样式层级 `@layer` 的核心作用是允许开发者显式地定义样式的层级关系。通过将样式规则分层,我们可以明确地控制样式的优先级顺序。例如,我们可以将基础样式定义在较低的层级,而将特定组件的样式定义在较高的层级,从而避免样式冲突。 ```css @layer base { body { font-family: Arial, sans-serif; margin: 0; padding: 0; } } ``` ### 提升代码可维护性 使用 `@layer` 可以让样式文件的结构更加清晰。开发者可以按照功能或模块将样式规则分层,便于后续的修改和扩展。同时,分层的样式规则也更容易被团队成员理解和协作。 ### 支持组件化开发 在组件化开发中,`@layer` 可以帮助我们更好地隔离组件的样式。每个组件可以定义自己的样式层级,从而避免组件之间的样式相互干扰。这大大提升了组件的复用性和可维护性。 例如: ```css @layer components { .cell-button { background-color: blue; color: white; padding: 10px; border: none; cursor: pointer; } } ``` 在业务代码中,我们可以无视组件 CSS 的优先级,直接进行重置: ```css .cell-button { background-color: red; /* 覆盖组件样式 */ } ``` 眼见为实: {{< html-demo "css-at-layer" "50px" >}} 可以理解为 `@layer` 定义的层级会整体下降一个优先级,这样便于分开业务代码和组件代码的样式管理。 ## `@layer` 的语法 ### 基本语法 ```css @layer layer-name? {rules} @layer layer-name; @layer layer-name, layer-name, layer-name; ``` 简而言之,`@layer` 规则可以用来**定义一个样式层级**或者**改变现有层级的优先级**。 - `@layer layer-name? {rules};` 这种形式用于定义一个新的样式层级,如果名称为空,则为匿名层级。 - `@layer` 后接一个或多个层级名称,用于指定样式层级的优先级顺序,按照前后顺序。 ### 让整个 CSS 文件变成 `@layer` 如果我们希望将整个 CSS 文件作为一个层级,可以使用以下语法: `@import` 中使用: ```css @import (utilities.css) layer(utilities); ``` `` 元素引用 (*): > [!WARNING] > 该用法有待考证,在 MDN 上尚未找到明确文档。 ```html ``` ### 嵌套层级 `@layer` 也支持嵌套定义,这使得我们可以在一个层级中进一步细分样式规则。例如: ```css @layer base { @layer typography { h1 { font-size: 24px; } p { font-size: 16px; } } } ``` 在嵌套层级中,外层层级的优先级低于内层层级。 多嵌套语法下的优先级: ```css @layer A { p { color: red; } @layer B { p { color: green; } } } @layer C { p { color: orange; } @layer D { p { color: blue; } } } ``` 其中的优先级大小是这样的:C > C.D > A > A.B 另外,嵌套语法还支持使用级联写法简化。 例如,普通内外嵌套写法: ```css @layer outer { button { width: 100px; height: 30px; } @layer inner { button { height: 40px; width: 160px; } } } ``` 上面的内外嵌套语法还可以写成下面这样: ```css @layer outer { button { width: 100px; height: 30px; } } @layer outer.inner { button { height: 40px; width: 160px; } } ``` ## `@layer` 的兼容性 {{< caniuse "mdn-css_at-rules_layer" >}} ## 参考 - [MDN Web Docs - @layer](https://developer.mozilla.org/en-US/docs/Web/CSS/@layer) - [详解日后定会大规模使用的 CSS @layer 规则](https://www.zhangxinxu.com/wordpress/2022/05/css-layer-rule/) --- > 作者: [Lruihao](https://github.com/Lruihao) > URL: https://lruihao.cn/posts/at-layer/ ================================================ FILE: posts/auto-sizes/index.html ================================================ 聊聊 Chrome 新增的 Sizes="auto" 属性 | 菠菜眾長

聊聊 Chrome 新增的 Sizes="auto" 属性

警告
本文最后更新于 2024-02-21,文中内容可能已过时。

聊聊 Chrome 新增的 sizes=“auto” 属性。

1 前景

起因是网友给 FixIt 提了一个 issue hugo-fixit/FixIt#411,说图片比例异常,我一回想,最近没动过图片的代码,于是用 Safari 和 Edge 试了一下,发现没问题,那么基本可以确定是 Chrome 新版的问题了。

经查,从 Chrome (121.0.6167.85) 开始,给 img size=“auto” 加了一个默认样式,恰巧 FixIt 主题之前用到了 lazysizes.js 这个库来做图片懒加载,也用了 size=“auto” 这个属性,于是就导致图片宽高比异常了。

解决办法:既然 FixIt 并没有再使用 lazysizes.js 来做图片懒加载,那么就直接去掉 size=“auto” 这个属性就好了。

好,问题解决了,那么就来看看这个 size=“auto” 到底是什么。

2 简介

在网页开发中,我们通常会遇到需要对网页上的元素,尤其是图片进行布局和尺寸调整的情况。在 HTML 中,我们可以利用一些内置的属性来帮助我们完成这项工作,而 sizes 就是其中之一。sizes 属性定义了用于描述其中 <img><source> 元素 display size,以及 <link> 元素 viewport 的 source 大小。换句话说,它是一种设定网页元素尺寸的机制。

编写、阅读和维护响应式图片的 sizes 属性是最繁琐的部分;对于懒加载的图片,auto-sizes 是对平台的一个很好的补充。据统计,目前已有十分之一的 sizes 属性正在使用 auto,但是是通过 lazysizes.js(一个用于支持图片懒加载的库)。

3 详解

sizes 支持了 “auto” 值,那么情况就会变得稍微有些复杂。所谓的 “auto” 模式,实际上是一种让浏览器自动设定图片尺寸的模式。在这种模式下,浏览器会试图选择最合适的尺寸来显示图片,以获得最佳的用户体验。它的应用场景主要是在网站设计和开发过程中,需要灵活设定元素尺寸,尤其是图片的尺寸,以便于在不同设备和浏览器环境下,都能呈现出良好的布局和视觉效果。

根据 HTML 规范 4.8.4.2.2 Sizes attributes 的提示:

注意
此外,强烈建议使用 widthheight 属性或使用 CSS 来指定尺寸。如果没有指定尺寸,图像可能会以 300x150 尺寸渲染,因为在渲染部分 sizes==“auto” 中有所暗示。contain-intrinsic-size: 300px 150px

Chrome 中打开调试台,可以看到默认样式:

1
2
3
4
img:has([sizes="auto" i], [sizes^="auto," i]) {
  contain: size !important;
  contain-intrinsic-size: 300px 150px;
}

这段 CSS 代码使用了属性选择器来选择 img 元素,具体的选择规则如下:

  1. [sizes="auto" i]:选择具有 sizes 属性且其值为 auto(不区分大小写)的 img 元素。
  2. [sizes^="auto," i]:选择具有 sizes 属性且以 auto, 开头(不区分大小写)的 img 元素。

对于匹配上述选择规则的 img 元素,应用以下样式:

  • contain: size !important;:将元素的内容缩放以适合其容器的大小,并禁止其他样式表覆盖此规则(!important 用于提升优先级)。
  • contain-intrinsic-size: 300px 150px;:指定元素的内在尺寸为宽度 300 像素和高度 150 像素。这可以影响到元素在执行缩放时的最终尺寸。

顺便说一下,CSS 中的伪类 :has 被称为“父选择器”,但目前并没有广泛支持,因此这个选择器可能无法在所有浏览器中正常工作。另外,i 标记表示进行不区分大小写的匹配。

响应式图像自然尺寸的设定可能会让人意想不到的复杂,但实际上:

  1. 有许多方式可以让已加载资源的自然尺寸影响其对应的 <img> 的布局尺寸。
  2. 每当 <img> 标签的布局尺寸发生变化,sizes=“auto” 的值就会进行更新,这可能会触发新的资源加载。
  3. 一旦加载新的资源,这个资源就会有新的自然尺寸,这可能会影响 <img> 的布局尺寸,导致 sizes=“auto” 的值更新,然后可能会触发又一次的资源加载;新加载的资源会有新的自然尺寸,这样以此类推…等等。

Resource Selection

关于 sizes=“auto” 的规范讨论其实主要就是:那些能通过这种方式让 srcset 中的每一个资源依次被加载的极端情况。

Simon Pieters,撰写了 auto-sizes 规范的人,曾经巧妙并勇敢地尝试定义可能触发循环依赖的所有情况,同时也采用了一些无法让作者察觉或是感到奇怪的解决方式来避开这些问题。但是,当真正落实到实现的时候,这些权宜之计并没有站住脚。最后,大家都认为唯一的解决方法是做出一个明确的切割:规定加载资源的自然尺寸绝对不能影响其所对应的 <img> 的布局,这一点在涉及到 sizes=“auto” 时尤为重要。

CSS Containment

幸运的是,我们有一个相对较新的特性,它就是“尺寸包含”(size containment),专门用来解决这个问题。

Size Containment

所以,现在 Chrome 的 UA stylesheet 中的内容就变成了上面那段 CSS 代码的样子。

对于为什么选择 300×150,是因为这就是 <video><canvas> 标签所采取的方式;所有这些元素都会使用这种相对小一些但又不为零的默认尺寸,目的在于鼓励你优化你的布局。

4 参考链接

Buy me a coffee~
Lruihao 支付宝支付宝
Lruihao 微信微信
================================================ FILE: posts/auto-sizes/index.md ================================================ # 聊聊 Chrome 新增的 Sizes="auto" 属性 聊聊 Chrome 新增的 sizes="auto" 属性。 ## 前景 起因是网友给 FixIt 提了一个 issue [hugo-fixit/FixIt#411](https://github.com/hugo-fixit/FixIt/issues/411),说图片比例异常,我一回想,最近没动过图片的代码,于是用 Safari 和 Edge 试了一下,发现没问题,那么基本可以确定是 Chrome 新版的问题了。 经查,从 Chrome (121.0.6167.85) 开始,给 img size="auto" 加了一个默认样式,恰巧 FixIt 主题之前用到了 [lazysizes.js](https://github.com/aFarkas/lazysizes) 这个库来做图片懒加载,也用了 size="auto" 这个属性,于是就导致图片宽高比异常了。 解决办法:既然 FixIt 并没有再使用 lazysizes.js 来做图片懒加载,那么就直接去掉 size="auto" 这个属性就好了。 好,问题解决了,那么就来看看这个 size="auto" 到底是什么。 ## 简介 在网页开发中,我们通常会遇到需要对网页上的元素,尤其是图片进行布局和尺寸调整的情况。在 HTML 中,我们可以利用一些内置的属性来帮助我们完成这项工作,而 sizes 就是其中之一。sizes 属性定义了用于描述其中 ``、`` 元素 display size,以及 `` 元素 viewport 的 source 大小。换句话说,它是一种设定网页元素尺寸的机制。 编写、阅读和维护响应式图片的 sizes 属性是最繁琐的部分;对于懒加载的图片,auto-sizes 是对平台的一个很好的补充。据统计,目前已有十分之一的 sizes 属性正在使用 auto,但是是通过 lazysizes.js(一个用于支持图片懒加载的库)。 ## 详解 sizes 支持了 "auto" 值,那么情况就会变得稍微有些复杂。所谓的 "auto" 模式,实际上是一种让浏览器自动设定图片尺寸的模式。在这种模式下,浏览器会试图选择最合适的尺寸来显示图片,以获得最佳的用户体验。它的应用场景主要是在网站设计和开发过程中,需要灵活设定元素尺寸,尤其是图片的尺寸,以便于在不同设备和浏览器环境下,都能呈现出良好的布局和视觉效果。 根据 [HTML 规范 4.8.4.2.2 Sizes attributes](https://html.spec.whatwg.org/#sizes-attributes) 的提示: {{< admonition note >}} 此外,强烈建议使用 `width` 和 `height` 属性或使用 CSS 来指定尺寸。如果没有指定尺寸,图像可能会以 300x150 尺寸渲染,因为在渲染部分 sizes=="auto" 中有所暗示。contain-intrinsic-size: 300px 150px {{< /admonition >}} Chrome 中打开调试台,可以看到默认样式: ```css img:has([sizes="auto" i], [sizes^="auto," i]) { contain: size !important; contain-intrinsic-size: 300px 150px; } ``` 这段 CSS 代码使用了属性选择器来选择 `img` 元素,具体的选择规则如下: 1. `[sizes="auto" i]`:选择具有 `sizes` 属性且其值为 `auto`(不区分大小写)的 `img` 元素。 2. `[sizes^="auto," i]`:选择具有 `sizes` 属性且以 `auto,` 开头(不区分大小写)的 `img` 元素。 对于匹配上述选择规则的 `img` 元素,应用以下样式: - `contain: size !important;`:将元素的内容缩放以适合其容器的大小,并禁止其他样式表覆盖此规则(`!important` 用于提升优先级)。 - `contain-intrinsic-size: 300px 150px;`:指定元素的内在尺寸为宽度 300 像素和高度 150 像素。这可以影响到元素在执行缩放时的最终尺寸。 顺便说一下,CSS 中的伪类 `:has` 被称为“父选择器”,但目前并没有广泛支持,因此这个选择器可能无法在所有浏览器中正常工作。另外,`i` 标记表示进行不区分大小写的匹配。 响应式图像自然尺寸的设定可能会让人意想不到的复杂,但实际上: 1. 有许多方式可以让已加载资源的自然尺寸影响其对应的 `` 的布局尺寸。 2. 每当 `` 标签的布局尺寸发生变化,sizes="auto" 的值就会进行更新,这可能会触发新的资源加载。 3. 一旦加载新的资源,这个资源就会有新的自然尺寸,这可能会影响 `` 的布局尺寸,导致 sizes="auto" 的值更新,然后可能会触发又一次的资源加载;新加载的资源会有新的自然尺寸,这样以此类推...等等。 ![Resource Selection](images/resource-selection.png) 关于 sizes="auto" 的规范讨论其实主要就是:那些能通过这种方式让 srcset 中的每一个资源依次被加载的极端情况。 Simon Pieters,撰写了 auto-sizes 规范的人,曾经巧妙并勇敢地尝试定义可能触发循环依赖的所有情况,同时也采用了一些无法让作者察觉或是感到奇怪的解决方式来避开这些问题。但是,当真正落实到实现的时候,这些权宜之计并没有站住脚。最后,大家都认为唯一的解决方法是做出一个明确的切割:规定加载资源的自然尺寸绝对不能影响其所对应的 `` 的布局,这一点在涉及到 sizes="auto" 时尤为重要。 ![CSS Containment](images/css-containment.png) 幸运的是,我们有一个相对较新的特性,它就是“尺寸包含”(size containment),专门用来解决这个问题。 ![Size Containment](images/size-containment.png) 所以,现在 Chrome 的 UA stylesheet 中的内容就变成了上面那段 CSS 代码的样子。 对于为什么选择 300×150,是因为这就是 `