-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
2084 lines (2083 loc) · 369 KB
/
search.xml
File metadata and controls
2084 lines (2083 loc) · 369 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<search>
<entry>
<title>AX9000 Docker - Cloudreve 搭建并打洞</title>
<url>/2022/posts/4e18cfcd/index.html</url>
<content><![CDATA[<p>接上次,我们在 <code>AX9000</code> 中安装了 <code>Docker</code>,我们可以用它搭建一个网盘,并且打洞映射到外网(<code>Cloudflare Argo Tunnel</code>)</p>
<blockquote>
<p>打洞使用 <code>Cloudflare Argo Tunnel</code> / 和 <code>Cloudflare 零信任</code>使用同一个程序</p>
</blockquote>
<h1 id="Cloudreve-的配置"><a href="#Cloudreve-的配置" class="headerlink" title="Cloudreve 的配置"></a>Cloudreve 的配置</h1><p>进入 <a href="https://docs.cloudreve.org/getting-started/install">快速开始 - Cloudreve</a></p>
<p>找到 <code>Docker Compose</code> 安装方式</p>
<blockquote>
<p>为什么不使用传统安装方式?</p>
<p>AX9000 虽然开启了 Docker,但是不提供 SSH</p>
<p>所以我们无法通过命令行的方式安装 <code>Cloudreve</code></p>
</blockquote>
<p>复制 <code>Compose</code> 文件</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">"3.8"</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">cloudreve:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">cloudreve</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">cloudreve/cloudreve:latest</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">ports:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"5212:5212"</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/uploads:/cloudreve/uploads</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/conf.ini:/cloudreve/conf.ini</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/cloudreve.db:/cloudreve/cloudreve.db</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./cloudreve/avatar:/cloudreve/avatar</span></span><br><span class="line"> <span class="attr">depends_on:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">aria2:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">p3terx/aria2-pro</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_SECRET=your_aria_rpc_token</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_PORT=6800</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">./aria2/config:/config</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line"> <span class="attr">temp_data:</span></span><br><span class="line"> <span class="attr">driver:</span> <span class="string">local</span></span><br><span class="line"> <span class="attr">driver_opts:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">none</span></span><br><span class="line"> <span class="attr">device:</span> <span class="string">$PWD/data</span></span><br><span class="line"> <span class="attr">o:</span> <span class="string">bind</span></span><br></pre></td></tr></table></figure>
<p>在桌面新建一个 <code>yml</code> 文件并用 <code>VSCode</code> 打开</p>
<p><img src="https://i0.hdslb.com/bfs/album/75bffbeadb3fc7c0ef228d89f630750b9e106191.png" alt="image-20221210124732395"></p>
<p>看到 <code>Cloudreve</code> 的文件映射,我们要将 <code>./cloudreve</code> 前面全部加上 <code>/mnt/docker_disk/mi_docker/</code></p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">version:</span> <span class="string">"3.8"</span></span><br><span class="line"><span class="attr">services:</span></span><br><span class="line"> <span class="attr">cloudreve:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">cloudreve</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">cloudreve/cloudreve:latest</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">ports:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">"5212:5212"</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/uploads:/cloudreve/uploads</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/conf.ini:/cloudreve/conf.ini</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/cloudreve.db:/cloudreve/cloudreve.db</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/cloudreve/avatar:/cloudreve/avatar</span></span><br><span class="line"> <span class="attr">depends_on:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">aria2:</span></span><br><span class="line"> <span class="attr">container_name:</span> <span class="string">aria2</span></span><br><span class="line"> <span class="attr">image:</span> <span class="string">p3terx/aria2-pro</span></span><br><span class="line"> <span class="attr">restart:</span> <span class="string">unless-stopped</span></span><br><span class="line"> <span class="attr">environment:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_SECRET=your_aria_rpc_token</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">RPC_PORT=6800</span></span><br><span class="line"> <span class="attr">volumes:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">/mnt/docker_disk/mi_docker/aria2/config:/config</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">temp_data:/data</span></span><br><span class="line"><span class="attr">volumes:</span></span><br><span class="line"> <span class="attr">temp_data:</span></span><br><span class="line"> <span class="attr">driver:</span> <span class="string">local</span></span><br><span class="line"> <span class="attr">driver_opts:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">none</span></span><br><span class="line"> <span class="attr">device:</span> <span class="string">$PWD/data</span></span><br><span class="line"> <span class="attr">o:</span> <span class="string">bind</span></span><br></pre></td></tr></table></figure>
<p>然后在 <code>Windows 资源管理器</code> 中进入路由器的 SMB</p>
<blockquote>
<p>请对你的设备在米家中开启全盘访问</p>
</blockquote>
<p><img src="https://i0.hdslb.com/bfs/album/1f59f63d25ca1607ed365680425e47b0a61502c2.png" alt="image-20221210125139723"></p>
<p>新建一个 <code>cloudreve</code> 文件夹</p>
<p>在其中新建 <code>aria2 | avatar | uploads</code> 三个文件夹</p>
<p>并创建 <code>cloudreve.db | conf.ini</code> 两个空文件</p>
<p>然后返回到 <code>mi_docker</code> 文件夹</p>
<p>新建 <code>aria2</code> 文件夹</p>
<p>并在其中新建 <code>config</code> 文件夹</p>
<p>这样就完成了文件映射~</p>
<h1 id="部署-Cloudreve"><a href="#部署-Cloudreve" class="headerlink" title="部署 Cloudreve"></a>部署 Cloudreve</h1><p>进入 <code>Portainer</code> 中的 <code>Stacks</code></p>
<p><img src="https://i0.hdslb.com/bfs/album/7df78fc2229f73517fa8cba084050025fce60df5.png" alt="image-20221210125505668"></p>
<p>新建一个 Stacks</p>
<p><img src="https://i0.hdslb.com/bfs/album/47650ce1a733e1046fa082adb4d0654ee0b72d7f.png" alt="image-20221210125533188"></p>
<p>将本地修改好的 <code>yml</code> 直接粘贴到输入框中</p>
<p>然后点击 Deploy the stack</p>
<p><img src="https://i0.hdslb.com/bfs/album/7d083654907d5abea575065a3cef282ff044b508.png" alt="image-20221210125711406"></p>
<p>稍等片刻,你就能在 Stacks 中看见你部署的容器了</p>
<p><img src="https://i0.hdslb.com/bfs/album/70539f00581eab41afae02016ecf925bb8f86231.png" alt="image-20221210125804271" /></p>
<p>容器后面的 <code>IP Address</code> 就是你的容器内网地址</p>
<p><img src="https://i0.hdslb.com/bfs/album/3ef831f95d609dda765976e0d2d28a1c1cfe5f9e.png" alt="image-20221210125834528"></p>
<p><code>aria2</code> 没有映射端口,我们只要复制 <code>cloudreve</code> 的地址加上 <code>5212</code> 端口就行</p>
<p>接下来我们去 <code>cloudreve</code> 的日志中获取管理员密码</p>
<p><img src="https://i0.hdslb.com/bfs/album/63891f9eb60dd72a4494f8b6eb49b93f946912e8.png" alt="image-20221210130214629"></p>
<p><img src="https://i0.hdslb.com/bfs/album/76453eb4028d5b8660ff1f7e3b672bd9c972d8bf.png" alt="image-20221210130038220"></p>
<p>(这里是我配置好的网盘)</p>
<h1 id="打洞映射"><a href="#打洞映射" class="headerlink" title="打洞映射"></a>打洞映射</h1><blockquote>
<p>此处我们需要创建一个 <code>Ubuntu</code> 容器用来映射</p>
</blockquote>
<p>进入 <code>App Templates</code> 界面</p>
<p><img src="https://i0.hdslb.com/bfs/album/354c2055ceba3b09adc0d89087989636c9b72dd4.png" alt="image-20221210130407269"></p>
<p>找到 <code>Ubuntu</code> 并部署</p>
<p>部署完成之后进入容器详情</p>
<p>找到 <code>Connected networks</code></p>
<p><img src="https://i0.hdslb.com/bfs/album/60053a29a01a1757da849e00994c9eb36a1e112b.png" alt="image-20221210130500276"></p>
<p>在这里加入 <code>Cloudreve Stack</code> 的网络</p>
<p>然后找到 <code>Console</code></p>
<p><img src="https://i0.hdslb.com/bfs/album/7d1678a72ab02896b77b736b015cca2b2c03e108.png" alt="image-20221210130540644"></p>
<p>连接到容器</p>
<h2 id="配置-Cloudflared"><a href="#配置-Cloudflared" class="headerlink" title="配置 Cloudflared"></a>配置 Cloudflared</h2><blockquote>
<p>此处假设你拥有 Cloudflare 账号,并添加好了域名</p>
</blockquote>
<p>首先换源</p>
<p>因为这个系统太迷你了</p>
<p>先升级 <code>ca-certificates</code></p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get update</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install ca-certificates</span></span><br></pre></td></tr></table></figure>
<p>然后安装必要工具</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install vim</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">apt-get install systemctl</span></span><br></pre></td></tr></table></figure>
<h3 id="网络差用户"><a href="#网络差用户" class="headerlink" title="网络差用户"></a>网络差用户</h3><p>对于网络环境差的用户,请先用 <code>sed</code> 替换源,在进行操作</p>
<p>现在我们下载 <code>Cloudflared</code></p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">wget https://github.com/cloudflare/cloudflared/releases/download/2022.11.1/cloudflared-linux-arm64.deb cloudflared.deb</span></span><br></pre></td></tr></table></figure>
<p>网络不好可以上传到你刚才搭建的 <code>Cloudreve</code> 中,然后 <code>wget</code> 下载下来</p>
<p>安装 <code>Cloudflared</code></p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">dpkg -i ./cloudflared.deb</span></span><br></pre></td></tr></table></figure>
<p>然后我们需要设置隧道</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel login</span></span><br></pre></td></tr></table></figure>
<p>这时候终端里面会出现一串 URL,复制在浏览器里访问并授权就好了</p>
<p>创建一个隧道</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel create <隧道名></span></span><br></pre></td></tr></table></figure>
<p>记录下隧道 ID</p>
<p>创建路由</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared tunnel route dns <隧道名> <主机名></span></span><br></pre></td></tr></table></figure>
<p>然后我们需要创建配置文件</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash"><span class="built_in">touch</span> ~/.cloudflared/config.yml</span></span><br></pre></td></tr></table></figure>
<p>内容大概如下</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">url:</span> <span class="string">http://localhost:8080</span></span><br><span class="line"><span class="attr">tunnel:</span> <span class="string">xxxxxxx-5b0e-xxxx-8034-xxxxxxx</span></span><br><span class="line"><span class="attr">credentials-file:</span> <span class="string">~/.cloudflared/xxxxxxx-5b0e-xxxx-8034-xxxxxxx.json</span></span><br></pre></td></tr></table></figure>
<p><code>url</code> 替换成你要映射的 <code>cloudreve</code> 地址</p>
<p><code>tunnel</code> 和 <code>credentials-file</code> 中的 <code>xxxxxxx-5b0e-xxxx-8034-xxxxxxx</code> 替换成你的隧道 ID</p>
<h3 id="作为服务运行"><a href="#作为服务运行" class="headerlink" title="作为服务运行"></a>作为服务运行</h3><p>不知道为什么, <code>screen</code> 在容器上面是用不了的,所以我们只能用 <code>systemctl</code> 作为服务运行</p>
<p>两步走起</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">cloudflared service install</span></span><br><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">systemctl start cloudflared</span></span><br></pre></td></tr></table></figure>
<p>等 <code>Cloudflared</code> 连接到了 HKG 节点之后,你的 <code>Cloudreve</code> 就被映射出去辣~</p>
]]></content>
<categories>
<category>docker</category>
</categories>
<tags>
<tag>docker</tag>
</tags>
</entry>
<entry>
<title>AX9000 Docker 部署指南</title>
<url>/2022/posts/e443d51d/index.html</url>
<content><![CDATA[<p>废话不多说,先看配置</p>
<p>作为小米家主打电竞的路由器,AX9000 的配置还是非常强劲的</p>
<h2 id="硬件参数"><a href="#硬件参数" class="headerlink" title="硬件参数"></a>硬件参数</h2><p><strong>处理器</strong> <strong>Qualcomm IPQ8072A 4核 A53 2.2GHz CPU</strong></p>
<p><strong>⽹络加速引擎</strong> <strong>双核 1.7GHz NPU</strong></p>
<p><strong>内存</strong> <strong>1GB</strong></p>
<p><strong>2.4G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 1148Mbps)</strong></p>
<p><strong>5.2G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 4804Mbps)</strong></p>
<p><strong>5.8G Wi-Fi</strong> <strong>4×4(最高支持 IEEE 802.11ax协议,理论最高速率可达 2402Mbps)</strong></p>
<p><strong>产品天线</strong> <strong>外置高增益天线 + 内置 AIoT天线</strong></p>
<p><strong>产品散热</strong> <strong>主动散热</strong></p>
<p><strong>整机接口</strong> <strong>1个10/100/1000/2500M 自适应 WAN/LAN口(Auto MDI/MDIX)</strong><br><strong>1个10/100/1000M 自适应 WAN/LAN口(Auto MDI/MDIX)</strong><br><strong>3个10/100/1000M 自适应 LAN口(Auto MDI/MDIX)</strong></p>
<p><strong>LED指示灯</strong> <strong>8个(SYSTEM指示灯×1,INTERNET指示灯×1,网口灯×5,氛围灯×1)</strong></p>
<p><strong>系统重置键 </strong> <strong>1个</strong></p>
<p><strong>USB3.0接口</strong> <strong>1个</strong></p>
<p><strong>Mesh组网按键</strong> <strong>1个</strong></p>
<p><strong>电源按键</strong> <strong>1个</strong></p>
<p><strong>电源输入接口</strong> <strong>1个</strong></p>
<p><strong>协议标准</strong> <strong>IEEE 802.11a/b/g/n/ac/ax,IEEE 802.3/3u/3ab</strong></p>
<p><strong>认证标准</strong> <strong>GB/T9254-2008;GB4943.1-2011</strong></p>
<p><strong>保修信息</strong> <strong>整机保修1年</strong></p>
<p>可以看到,AX9000 拥有频率为 2.2GHz(arm64) 的4核高通 CPU</p>
<p>还是非常适合搞事情的</p>
<p>并且小米官方也在 <code>2021年11月12日</code> 发布了第一个开发版 ROM</p>
<p><img src="https://i0.hdslb.com/bfs/album/e895eded559f24c6787630eac2d396855d6ca0f5.png" alt="image-20220722113425748"></p>
<p>而且还有虚拟内存功能</p>
<h1 id="硬盘准备"><a href="#硬盘准备" class="headerlink" title="硬盘准备"></a>硬盘准备</h1><blockquote>
<p>启用 Docker 需要至少 64GB 的 硬盘/ U 盘</p>
<p>对于体验上来说,使用硬盘明显比 U 盘好得多</p>
</blockquote>
<p>我准备的是夏科的移动硬盘(支持 USB3.1)</p>
<p>首先下载 DiskGenius</p>
<p>在右侧位置选择你的硬盘</p>
<p><img src="https://i0.hdslb.com/bfs/album/b755973dc1aa9824ff69260647cf3fa677f4ee0c.png" alt="image-20220722113615561"></p>
<p>然后选择格式化</p>
<p><img src="https://i0.hdslb.com/bfs/album/536c79003fb5f97b846c88a3124dbf67eaa0c1d5.png" alt="image-20220722113651477"></p>
<p>格式化为 EXT4</p>
<blockquote>
<p>这里需要注意,如果你的硬盘还要用来储存文件,你需要把第一个分区(序号为1)格式化为 EXT4,其他分区可以保持不动</p>
</blockquote>
<p>接着保存更改,拔出硬盘</p>
<h1 id="路由器配置"><a href="#路由器配置" class="headerlink" title="路由器配置"></a>路由器配置</h1><p>首先下载小米官方提供的开发版 <code>ROM</code></p>
<p>进入常用设置 -> 系统状态中进行升级就行</p>
<p>接着插入硬盘 AX9000 的 USB 3.1 口</p>
<p><img src="https://i0.hdslb.com/bfs/album/3b7649339b18e242a2958109dc04ad9d3cb48036.jpg" alt="0"></p>
<p>位置在指示灯面左侧(也就是有 <code>Mesh</code> 组网按钮的那一面)</p>
<p>插入之后重启路由器(因为 AX9000 的 USB3.1 口似乎是不支持热插拔的)</p>
<blockquote>
<p>PS: 也有可能是我的问题</p>
</blockquote>
<p>具体操作就是登陆后台选择路由器,点击重启</p>
<p><img src="https://i0.hdslb.com/bfs/album/643f7072ba8f98ace42ec04855c36e4ac6ea920b.png" alt="image-20220722114257383"></p>
<p>当然你也可以直接按 Power 按钮</p>
<p>接着进入储存状态</p>
<p><img src="https://i0.hdslb.com/bfs/album/5fb6fb340f35a56e4490bdcb7f823d15f758cbb5.png" alt="image-20220722114422388"></p>
<p>找到虚拟内存</p>
<p><img src="https://i0.hdslb.com/bfs/album/f3192d028aff9364222dc35cb8ad7e6e1c92c115.png" alt="image-20220722114442113"></p>
<p>创建虚拟内存,这里最好选 4069MB (4G)</p>
<p>以给 Docker 留出足够的内存</p>
<p>等待创建完成</p>
<p>进入高级设置 -> Docker</p>
<p>然后你会进入这个页面</p>
<p><img src="https://i0.hdslb.com/bfs/album/9297d3d29b38e74851fb4b336e774fb66889a9a0.png" alt="image-20220722114741531"></p>
<p>点击安装 Docker</p>
<p>等待安装完成</p>
<p><img src="https://i0.hdslb.com/bfs/album/45a2af9c02ecdfcfe9110fb472466837286922ed.png" alt="image-20220722114811255"></p>
<p>然后运行 Docker 并安装第三方管理(Portainer)</p>
<p>安装第三方管理时有 ipv6 会比较快,如果没有 ipv6 就得忍受天朝网络,时不时还能安装失败几十次</p>
<p>安装完成进入 Portainer</p>
<p>完成他的配置</p>
<p>然后你就能进入这个页面了</p>
<p><img src="https://i0.hdslb.com/bfs/album/76bb7ff881764d391c3be868d2a7f5d0cec9e885.png" alt="image-20220722115102813"></p>
<h1 id="Portainer-配置"><a href="#Portainer-配置" class="headerlink" title="Portainer 配置"></a>Portainer 配置</h1><p>首先是新建自己的镜像源</p>
<p>进入 <strong>Registries</strong> 选项卡新建自己的源</p>
<p><img src="https://i0.hdslb.com/bfs/album/5f21db591363ef4110cda85575c9630006e28dbd.png" alt="image-20220722115224991"></p>
<p>然后去 App templates 找模板安装</p>
<p><img src="https://i0.hdslb.com/bfs/album/4cc941aa58bb85dd3029948affa3c33cc0fafe22.png" alt="image-20220722115306421"></p>
<p>没错你没看错,AX9000 的 Docker 是支持 Ubuntu 的!</p>
<h1 id="演示-安装-Ubuntu"><a href="#演示-安装-Ubuntu" class="headerlink" title="演示:安装 Ubuntu"></a>演示:安装 Ubuntu</h1><p>选择 Ubuntu</p>
<p>名字随意</p>
<p><img src="https://i0.hdslb.com/bfs/album/d7b4354cd9c261cb818cba278b6b737702c06657.png" alt="image-20220722115410481"></p>
<p><strong>然后重点来了</strong></p>
<p>点击 <code>Show adbanced options</code></p>
<p>添加映射</p>
<p><img src="https://i0.hdslb.com/bfs/album/f968387a37ef145467b8a73e1eddaef4e6875b32.png" alt="image-20220722115452836"></p>
<p>然后部署即可</p>
<h1 id="演示-Ubuntu-配置"><a href="#演示-Ubuntu-配置" class="headerlink" title="演示:Ubuntu 配置"></a>演示:Ubuntu 配置</h1><p>部署完后进入容器,选择 Console 进入控制台</p>
<p><img src="https://i0.hdslb.com/bfs/album/4a45d26fea4e0ce8fc0a8b839035a5946903fca1.png" alt="image-20220722115526166"></p>
<p>先安装 vim 和 ca-certificates</p>
<p>(没错,这个系统非常精简)</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ apt-get update</span><br><span class="line">$ apt-get install vim</span><br><span class="line">$ apt-get install ca-certificates</span><br></pre></td></tr></table></figure>
<p>然后换源</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ vim /etc/apt/sources.list</span><br></pre></td></tr></table></figure>
<p>进入 Vim 界面后不要忙着进入编辑模式,输入 gg</p>
<p>然后输入 dG 就可以方便的删除所有内容了</p>
<p>接着粘贴清华镜像源</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse</span></span><br><span class="line">deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse</span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 预发布软件源,不建议启用</span></span><br><span class="line"><span class="comment"># deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse</span></span><br><span class="line"><span class="comment"># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse</span></span><br></pre></td></tr></table></figure>
<p>然后更新源</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ apt-get update</span><br></pre></td></tr></table></figure>
<p>接着去除最小化</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ unminimize</span><br></pre></td></tr></table></figure>
<h1 id="演示-Ubuntu-SSH"><a href="#演示-Ubuntu-SSH" class="headerlink" title="演示:Ubuntu SSH"></a>演示:Ubuntu SSH</h1><p>先更新源</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ apt-get upgrade</span><br></pre></td></tr></table></figure>
<p>然后安装 openssh</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ apt-get install openssh-server</span><br></pre></td></tr></table></figure>
<p>设置一个 ROOT 密码</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ passwd</span><br></pre></td></tr></table></figure>
<p>修改 SSH 的配置文件</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ vim /etc/ssh/sshd_config</span><br></pre></td></tr></table></figure>
<p>因为默认是注释了 <strong>PermitRootLogin prohibit-password</strong> 的,所以只需要允许 Root 登录就行</p>
<p>添加这一行</p>
<p><code>PermitRootLogin yes</code></p>
<p>重启服务</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ /etc/init.d/ssh restart</span><br></pre></td></tr></table></figure>
<p>然后就可以 SSH 了</p>
]]></content>
<categories>
<category>docker</category>
</categories>
<tags>
<tag>docker</tag>
</tags>
</entry>
<entry>
<title>Electron + Vue + Mdui</title>
<url>/2022/posts/6bd0d2ac/index.html</url>
<content><![CDATA[<blockquote>
<p>开始前注意,这是将 Electron 集成到 Vue 项目中的演示,如果你没有基础,建议使用<a href="https://github.com/SimulatedGREG/electron-vue">样板代码</a></p>
</blockquote>
<h1 id="Part-0-1-什么是-Electron"><a href="#Part-0-1-什么是-Electron" class="headerlink" title="Part 0.1: 什么是 Electron"></a>Part 0.1: 什么是 Electron</h1><p><strong>Electron 可以让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。</strong>你可以把它看作一个专注于桌面应用的 Node.js 的变体,而不是 Web 服务器。</p>
<p>这不意味着 Electron 是绑定了 GUI 库的 JavaScript。相反,Electron 使用 web 页面作为它的GUI,<strong>所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。</strong></p>
<h1 id="Part-0-5-先决条件"><a href="#Part-0-5-先决条件" class="headerlink" title="Part 0.5: 先决条件"></a>Part 0.5: 先决条件</h1><ul>
<li>[x] 良好的网络</li>
</ul>
<h1 id="Part-1-安装-Node-js"><a href="#Part-1-安装-Node-js" class="headerlink" title="Part 1: 安装 Node.js"></a>Part 1: 安装 Node.js</h1><p><strong>Electron 是基于 Node.js 构建的</strong> / 并且使用 Node.js 还能完成平时 Web 程序所做不到的事情: <code>与系统打交道</code></p>
<p><a href="https://nodejs.org/">Node.js</a></p>
<p>进入上述地址下载并安装 Node.js</p>
<h1 id="Part-2-安装-Vue-cli"><a href="#Part-2-安装-Vue-cli" class="headerlink" title="Part 2: 安装 Vue-cli"></a>Part 2: 安装 Vue-cli</h1><p>由于我更喜欢 Vue,所以我选择用 Vue 创建项目</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ npm install @vue/cli --global</span><br></pre></td></tr></table></figure>
<p>安装 <code>vue-cli</code></p>
<h1 id="Part-3-创建项目"><a href="#Part-3-创建项目" class="headerlink" title="Part 3: 创建项目"></a>Part 3: 创建项目</h1><figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ vue create electron-vue-mdui</span><br></pre></td></tr></table></figure>
<p>创建自己的项目</p>
<p><img src="https://i0.hdslb.com/bfs/album/c059674e13fba60852652ed9c48c1c52fe95cc63.png" alt="image-20220722164718559"></p>
<p>这里选择最后一项(Manually select features)</p>
<p><img src="https://i0.hdslb.com/bfs/album/d6078ce2c01f0c180ca9d7a1c32f47c271ea0071.png" alt="image-20220722164803927"></p>
<p>这里依照自己的需要,我选择了 Babel(语法编译器) | Router(Vue 路由) | CSS Pre-processors(CSS预处理器) Linter / Formatter(代码风格、格式校验)</p>
<p><img src="https://i0.hdslb.com/bfs/album/678861d38a4bf074dae2925aef1364f51342badc.png" alt="image-20220722164939866"></p>
<p>这一步选择 3.x(或更高版本)</p>
<p><img src="https://i0.hdslb.com/bfs/album/6cddc5515bcc6b84457abb099d24a03db8032e3c.png" alt="image-20220722165006031"></p>
<p>History 模式选择 <code>Y</code> </p>
<p><img src="https://i0.hdslb.com/bfs/album/8324dcb626a202b1e3374280197ca9d378be4b10.png" alt="image-20220722165039090"></p>
<p>CSS 预处理器我更喜欢 Stlyus, 这里依照自己的喜好选择</p>
<p><img src="https://i0.hdslb.com/bfs/album/5358d1dc61a13dd9734947d2ba923c9cf1ef1fe4.png" alt="image-20220722165120215"></p>
<p>这里墙裂建议使用 ESLint</p>
<p>我选择的是 ESLint + Prettier</p>
<p><img src="https://i0.hdslb.com/bfs/album/98c501aa53b8a0856b7e6db9c71ae71f01c98c27.png" alt="image-20220722165200782"></p>
<p>在这一步建议两个都选择</p>
<p><img src="https://i0.hdslb.com/bfs/album/994a084bcb79e8409741914c30237611b5ad45df.png" alt="image-20220722165233900"></p>
<p>这一步我们选择单独放置在文件夹下</p>
<p><img src="https://i0.hdslb.com/bfs/album/971f5038fc1d36d7f2d4e7439ca40f6bd8082e26.png" alt="image-20220722165254250"></p>
<p>然后这里是最后一步,让你选择下一次是否要用同样的配置, 我选择的是 <code>N</code></p>
<p>等待安装完成就创建好了一个 <code>Vue 项目</code></p>
<h1 id="Part4-集成-Electron-至-Vue-项目中"><a href="#Part4-集成-Electron-至-Vue-项目中" class="headerlink" title="Part4: 集成 Electron 至 Vue 项目中"></a>Part4: 集成 Electron 至 Vue 项目中</h1><p>进入项目文件夹,打开终端</p>
<p>安装 electron 插件</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ vue add vue-cli-plugin-electron-builder</span><br></pre></td></tr></table></figure>
<p>版本选择 <code>^13.0.0</code> 就可</p>
<p>等待它安装完成,在安装的过程中它会重构项目架构</p>
<p>等到安装完成你就拥有了一个 Electron + Vue 的 App</p>
<p>运行 Electron 试试看吧!</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ yarn electron:serve</span><br></pre></td></tr></table></figure>
<p>如果弹出一个程序就成功了</p>
<h1 id="Part-5-用-MDUI-写前端"><a href="#Part-5-用-MDUI-写前端" class="headerlink" title="Part 5: 用 MDUI 写前端"></a>Part 5: 用 MDUI 写前端</h1><p><a href="https://www.mdui.org/">MDUI - Material Design 样式的前端框架</a></p>
<blockquote>
<p><strong>MDUI 漂亮、轻量且好用,它能让你更轻松地开发 Material Design 网页应用</strong></p>
</blockquote>
<p>首先安装它</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ yarn add mdui</span><br></pre></td></tr></table></figure>
<p>然后我们需要引用它</p>
<p>编辑入口文件</p>
<p>加入一些代码</p>
<figure class="highlight javascript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">import</span> mdui <span class="keyword">from</span> <span class="string">'mdui'</span>;</span><br><span class="line"><span class="keyword">import</span> <span class="string">'../vendor/mdui/css/mdui.css'</span>; <span class="comment">// 注意修改 css 文件的路径</span></span><br></pre></td></tr></table></figure>
<blockquote>
<p><strong>在其他需要使用 MDUI 提供的 api 的 JS 文件头部导入 mdui 的 JS 文件</strong> (来自 MDUI 作者)</p>
</blockquote>
<p>然后 MDUI 就已经添加进你的项目了,接下来只需要简单写一下,就可以让你的项目使用上 MDUI</p>
<p>比如添加一个按钮</p>
<figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="tag"><<span class="name">button</span> @<span class="attr">onclick</span>=<span class="string">"javascript;;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-color-teal mdui-ripple"</span>></span>button<span class="tag"></<span class="name">button</span>></span></span><br></pre></td></tr></table></figure>
<p>或者一个导航栏</p>
<figure class="highlight html"><table><tr><td class="code"><pre><span class="line"><span class="tag"><<span class="name">div</span> <span class="attr">class</span>=<span class="string">"mdui-toolbar mdui-color-teal"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>menu<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">span</span> <span class="attr">class</span>=<span class="string">"mdui-typo-title"</span>></span>Test App<span class="tag"></<span class="name">span</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">div</span> <span class="attr">class</span>=<span class="string">"mdui-toolbar-spacer"</span>></span><span class="tag"></<span class="name">div</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>search<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"window.onload();"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>refresh<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">a</span> <span class="attr">href</span>=<span class="string">"javascript:;"</span> <span class="attr">class</span>=<span class="string">"mdui-btn mdui-btn-icon"</span>></span></span><br><span class="line"> <span class="tag"><<span class="name">i</span> <span class="attr">class</span>=<span class="string">"mdui-icon material-icons"</span>></span>more_vert<span class="tag"></<span class="name">i</span>></span></span><br><span class="line"> <span class="tag"></<span class="name">a</span>></span></span><br><span class="line"><span class="tag"></<span class="name">div</span>></span></span><br></pre></td></tr></table></figure>
<p>(代码从 VSCODE 编辑)</p>
<p><img src="https://i0.hdslb.com/bfs/album/f144fbad397951d3d16febc560ff4fe3e013e3ed.png" alt="image-20220722171245373"></p>
<h1 id="Part-6-打包"><a href="#Part-6-打包" class="headerlink" title="Part 6: 打包"></a>Part 6: 打包</h1><p>在终端内输入打包命令进行打包</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">$ yarn electron:build</span><br></pre></td></tr></table></figure>
<blockquote>
<p>请注意,在打包过程中需要下载一些文件,但由于天朝网络特性,可能会 timeout,请自行替换源或使用科学上网</p>
</blockquote>
]]></content>
<categories>
<category>electron</category>
</categories>
<tags>
<tag>electron</tag>
</tags>
</entry>
<entry>
<title>使用Cloud Studio在云端写作✍</title>
<url>/2021/posts/2ir0l12g/index.html</url>
<content><![CDATA[<p>Hey,这篇文章我们会为你介绍一个写作的新方法———Cloud Studio 云写作(不是广告)</p>
<h1 id="初始化-Cloud-Studio-工作空间"><a href="#初始化-Cloud-Studio-工作空间" class="headerlink" title="初始化 Cloud Studio 工作空间"></a>初始化 Cloud Studio 工作空间</h1><p>想要在 <code>Cloud Studio</code> 云写作,首先你要上传源码到仓库。<br>你可以上传到 <code>GitLab</code>、<code>GitHub</code>、<code>Coding</code> 等代码托管商<br>首先我们打开 <code>Cloud Studio</code><br>地址为 </p>
<p><code>%PROJECTNAME%.cloudstudio.net/dashboard/workspace</code><br>进入后选择新建工作空间<br><img src="https://npm.elemecdn.com/wytong-source/photos/PicGo/202204171052931.png#crop=0&crop=0&crop=1&crop=1&id=nd3Sq&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>工作空间名可以随便填<br>运行环境选择 <code>Node.js</code><br>代码来源可以选择空</p>
<h1 id="同步仓库"><a href="#同步仓库" class="headerlink" title="同步仓库"></a>同步仓库</h1><p>现在进入工作空间后我们选择上栏的终端<br><img src="https://npm.elemecdn.com/wytong-source/photos/PicGo/202204171053650.png" alt=""><br>新建终端<br>然后在下面就会出现类似这样的东西<br><img src="https://npm.elemecdn.com/wytong-source/photos/PicGo/202204171054259.png#crop=0&crop=0&crop=1&crop=1&id=MTpvI&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>这就是我们的终端了,现在你要把你博客上传到 GitHub 之类的代码托管网站上,方便我们同步。<br>在你的终端内输入</p>
<figure class="highlight shell"><table><tr><td class="code"><pre><span class="line"><span class="meta prompt_">$ </span><span class="language-bash">git <span class="built_in">clone</span> %REPOURL% .</span></span><br></pre></td></tr></table></figure>
<p><img src="https://npm.elemecdn.com/wytong-source/photos/PicGo/202204171054751.png#crop=0&crop=0&crop=1&crop=1&id=kH50O&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>仓库克隆完后在列表会出现你的文件,这时候你就可以像本地一样正常写文章了<br>(其实我还是觉得 <code>GitHub Actions</code> 自动部署好一点)</p>
<blockquote id="fn_%REPOURL%">
<sup>%REPOURL%</sup>. 仓库地址<a href="#reffn_%REPOURL%" title="Jump back to footnote [%REPOURL%] in the text."> ↩</a>
</blockquote>
<blockquote id="fn_%PROJECTNAME%">
<sup>%PROJECTNAME%</sup>. 项目名称<a href="#reffn_%PROJECTNAME%" title="Jump back to footnote [%PROJECTNAME%] in the text."> ↩</a>
</blockquote>
]]></content>
<categories>
<category>Hexo</category>
<category>云端写作</category>
</categories>
<tags>
<tag>Hexo</tag>
<tag>云端</tag>
<tag>高效写作</tag>
</tags>
</entry>
<entry>
<title>使用 Travis CI 持续集成工具自动化部署 Hexo</title>
<url>/2020/posts/9ed5997f/index.html</url>
<content><![CDATA[<p>众所周知,Hexo 是一款免费开源的静态博客生成工具,使用它可以快速生成一个博客。但随着文章之类的东西增加,生成的速度也会逐渐变慢,如果你配置不够,那搞不好就要几小时才能生成,并且还有一个好处:</p>
<p>即走即编辑,就算你是手机也可以在线编辑文件,免去配置环境。</p>
<p>所以今天我教大家如何使用持续集成工具 — Travis CI 来部署 <code>Hexo</code></p>
<h1 id="创建仓库"><a href="#创建仓库" class="headerlink" title="创建仓库"></a>创建仓库</h1><p>我们首先打开<a href="https://github.com/">GitHub</a></p>
<p>选择<img src="https://i0.hdslb.com/bfs/album/3f5f3270d62ba5ebe01d38c73497795b2ba92225.png" alt=""></p>
<p><img src="https://i0.hdslb.com/bfs/album/fa1732c3e3532924df85d276a9efc6a0b87d9782.png" alt=""></p>
<p>仓库名称可以随意</p>
<p>但是一定要选择 Private,不然你的博客源码就会被别人看到,到时候使用 Token 提交的各位小伙伴的仓库就不保喽</p>
<p>创建完成后复制你的仓库克隆地址</p>
<p>在 <code>Hexo</code> 根目录下打开终端</p>
<p>输入</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git add travis 复制的仓库克隆地址</span><br></pre></td></tr></table></figure>
<h1 id="创建-Travis-CI-配置"><a href="#创建-Travis-CI-配置" class="headerlink" title="创建 Travis CI 配置"></a>创建 Travis CI 配置</h1><p>接着去创建一个文件:<code>.travis.yml</code></p>
<p>里面输入</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">language:</span> <span class="string">node_js</span></span><br><span class="line"><span class="attr">node_js:</span> <span class="string">stable</span></span><br><span class="line"></span><br><span class="line"><span class="attr">sudo:</span> <span class="string">required</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># Travis-CI Caching</span></span><br><span class="line"><span class="attr">cache:</span></span><br><span class="line"> <span class="attr">directories:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">node_modules</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># S: Build Lifecycle</span></span><br><span class="line"><span class="attr">install:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">npm</span> <span class="string">install</span></span><br><span class="line"></span><br><span class="line"><span class="attr">script:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">hexo</span> <span class="string">clean</span> <span class="string">&&</span> <span class="string">hexo</span> <span class="string">g</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">cd</span> <span class="string">./public</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">init</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">config</span> <span class="string">user.name</span> <span class="string">"NAME"</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">config</span> <span class="string">user.email</span> <span class="string">"EMAIL"</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">add</span> <span class="string">.</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">commit</span> <span class="string">-m</span> <span class="string">"Update"</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">push</span> <span class="string">--force</span> <span class="string">--quiet</span> <span class="string">"XXX"</span> <span class="string">master:master</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">git</span> <span class="string">push</span> <span class="string">--force</span> <span class="string">--quiet</span> <span class="string">"XXX"</span> <span class="string">master:master</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># after_script:</span></span><br><span class="line"></span><br><span class="line"><span class="attr">branches:</span></span><br><span class="line"> <span class="attr">only:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">master</span></span><br></pre></td></tr></table></figure>
<p>其中 NAME 改为 git 用户名 EMAIL 改为邮箱 XXX 改为 GitHub/Coding 的部署地址(Token)(下文会讲到)</p>
<h1 id="配置-GitHub-Token"><a href="#配置-GitHub-Token" class="headerlink" title="配置 GitHub Token"></a>配置 GitHub Token</h1><p>写完之后去<a href="https://github.com/settings/tokens">GitHub</a>创建一个 Token</p>
<p>权限直接全选</p>
<p>然后把你 <code>Hexo</code> 配置 GitHub 的 SSH/HTTPS 部署地址改为</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">https://你的[email protected]/用户名/仓库.git</span><br></pre></td></tr></table></figure>
<h1 id="配置-Coding-Token-有就使用,没有就不使用"><a href="#配置-Coding-Token-有就使用,没有就不使用" class="headerlink" title="配置 Coding Token(有就使用,没有就不使用)"></a>配置 Coding Token(有就使用,没有就不使用)</h1><p>进入 Coding 企业</p>
<p><img src="https://i0.hdslb.com/bfs/album/3b2a825fbe3cae36f5bef56cec594081ae998601.png" alt=""></p>
<p>右上角找到个人账户设置</p>
<p>进入访问令牌设置</p>
<p>新建令牌</p>
<p>权限依然全选</p>
<p>选择完后将你 <code>Hexo</code> 的 coding SSH/HTTPS 部署地址改为</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">https://username:[email protected]/用户名/仓库名.git</span><br></pre></td></tr></table></figure>
<h1 id="注册-Travis"><a href="#注册-Travis" class="headerlink" title="注册 Travis"></a>注册 Travis</h1><p>首先我们要打开<a href="https://travis-ci.com/">Travis 官网</a></p>
<p>然后注册一个账户</p>
<p>注册完成后会跳转到仪表盘</p>
<p>我们点击那个小加号</p>
<p>找到从跳转的页面找到我们刚才创建的仓库</p>
<p>可以看到没有构建接下来我们</p>
<p>在终端内输入</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git add --all</span><br><span class="line">git commit -m <span class="string">"这里随便"</span></span><br><span class="line">git push -u travis master -f</span><br></pre></td></tr></table></figure>
<p>提交完成后稍等片刻,在 Travis 后台就会出现部署了</p>
]]></content>
</entry>
<entry>
<title>Floccus 食用教程</title>
<url>/2021/posts/eur9h5la/index.html</url>
<content><![CDATA[<blockquote>
<p>演示过程基于 Twinkstar(星愿)浏览器,其他浏览器可能大致步骤一样</p>
</blockquote>
<h1 id="什么是-Floccus"><a href="#什么是-Floccus" class="headerlink" title="什么是 Floccus"></a>什么是 Floccus</h1><p>Floccus 是一个在 GitHub 上的开源项目,该项目的官方简介如下</p>
<blockquote>
<p>Sync your bookmarks across browsers via Nextcloud, WebDAV or a local file (and thus any file sync solution).<br>简单的说它就是一个支持 Google Chrome 和 Mozilla Firefox 跨平台同步的一个插件,依赖于 WebDAV、nextcloud、本地文件等</p>
</blockquote>
<h1 id="下载并安装-Floccus-插件"><a href="#下载并安装-Floccus-插件" class="headerlink" title="下载并安装 Floccus 插件"></a>下载并安装 Floccus 插件</h1><p><a href="https://chrome.google.com/webstore/detail/floccus/fnaicdffflnofjppbagibeoednhnbjhg">Chrome Store Download</a><br><a href="https://github.com/marcelklehr/floccus/releases/">GitHub Release 下载</a></p>
<h1 id="配置坚果云"><a href="#配置坚果云" class="headerlink" title="配置坚果云"></a>配置坚果云</h1><p>坚果云支持 WebDAV,并且在国内,速度快,所以我们就选用了<a href="https://jianguoyun.com/">坚果云</a><br>如果你有账号点击登录<br>如果你没有账号点击注册<br>我有账号就直接登录了<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171111947.png#crop=0&crop=0&crop=1&crop=1&id=KZgFg&originHeight=867&originWidth=1920&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>进入后可以看见这些东西<br>sync 刚开始是没有的<br>接下来我们可以创建一个文件夹用于存放书签文件<br>这边命名为 sync,你也更改<br>在坚果云刚刚创建的文件夹中创建一个名为 bookmarks.xbel 的文件,文件内放入这些内容:</p>
<figure class="highlight xml"><table><tr><td class="code"><pre><span class="line"><span class="meta"><?xml version=<span class="string">"1.0"</span> encoding=<span class="string">"UTF-8"</span>?></span></span><br><span class="line"><span class="meta"><!DOCTYPE <span class="keyword">xbel</span> <span class="keyword">PUBLIC</span> <span class="string">"+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML"</span> <span class="string">"http://pyxml.sourceforge.net/topics/dtds/xbel.dtd"</span>></span></span><br><span class="line"><span class="tag"><<span class="name">xbel</span> <span class="attr">version</span>=<span class="string">"1.0"</span>></span></span><br><span class="line"><span class="tag"></<span class="name">xbel</span>></span></span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p>然后保存就可以了<br>接下来进入账号信息<br>安全选项<br>点击添加第三方应用<br>点击生成密码</p>
<h1 id="配置-Floccus-插件"><a href="#配置-Floccus-插件" class="headerlink" title="配置 Floccus 插件"></a>配置 Floccus 插件</h1><p>打开 Floocus 选择新建账户<br>WEBDAV URL 写: <a href="https://dav.jianguoyun.com/dav/">https://dav.jianguoyun.com/dav/</a><br>用户名写示例里面的<br>密码写你的用户密码<br>书签路径写自己新建的文件夹/bookmarks.xbel<br>接下来点击保存即可</p>
]]></content>
<categories>
<category>书签同步</category>
</categories>
<tags>
<tag>书签同步</tag>
</tags>
</entry>
<entry>
<title>Cloudflare 的 Argo Tunnel 使用</title>
<url>/2021/posts/fktz6u/index.html</url>
<content><![CDATA[<p>Cloudflare 是一个知名的老牌 CDN 厂商了,相信很多人应该都知道,今天我在逛 Cloudflare の Docs 时发现了个 Argo Tunnel 试用了一下,还可以,并且免费,于是<del>水</del>写了一篇文章介绍给大家</p>
<h1 id="安装-Argo-Tunnel"><a href="#安装-Argo-Tunnel" class="headerlink" title="安装 Argo Tunnel"></a>安装 Argo Tunnel</h1><p>本次以 Windows 11 演示<br>通过<a href="https://github.com/cloudflare/cloudflared/releases">GitHub</a>下载适用于 Windows 的安装包<br>这里包含了两种版本<br>386=i1386 也就是 32 位的 Windows 系统<br>amd64 也就是 64 位的 Windows 系统<br>我们下载.exe 可执行文件,msi 属于安装文件,也可以下载(但是我这里没安装成功)</p>
<h1 id="配置-Argo-Tunnel"><a href="#配置-Argo-Tunnel" class="headerlink" title="配置 Argo Tunnel"></a>配置 Argo Tunnel</h1><p>下载好后把文件改名为 cloudflared.exe<br>然后把他复制到一个合适的目录,我这里是 D 盘<br>打开 Windows Terminal ,如果你没有也可以用 Powershell 和 cmd<br>通过 cd 进入到放置 cloudflared.exe 的文件夹<br>如果你是 Windows 11 系统,可以直接在目录右键,点击 Open in Windows Terminal<br>然后在终端输入</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">./cloudflared.exe --version</span><br></pre></td></tr></table></figure>
<p>如果跳出版本号就成功了<br>接着你需要打开<a href="https://dash.cloudflare.com/argotunnel">Cloudflare Argo Tunnel 的授权页面</a><br>在里面点击你要授权 Argo Tunnel 的域名<br>接着会弹出来一个弹窗<img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171116532.png#crop=0&crop=0&crop=1&crop=1&id=y8s2F&originHeight=219&originWidth=1050&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>提示你点击授权,照着文字点就行<br>然后你的浏览器会自动下载一个叫 cert.pem 的文件<br>复制它<br>然后进入到你的用户文件夹,创建一个.cloudflared 文件夹<br>将文件粘贴进去<br>这样就完成了对 Argo Tunnel 的配置</p>
<h1 id="创建-Argo-隧道"><a href="#创建-Argo-隧道" class="headerlink" title="创建 Argo 隧道"></a>创建 Argo 隧道</h1><p>打开终端,输入以下指令</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">./cloudflared.exe tunnel create <你想要的隧道名称></span><br></pre></td></tr></table></figure>
<p>创建一个隧道<br>然后你需要配置域名方面<br>打开 Cloudflare 的 DNS 面板,如果你是第三方托管打开第三方 DNS 面板<br>新建一个 CNAME 记录<br>记录名随便<br>记录类型选择 CNAME<br>记录内容写 你刚才从终端创建隧道时的 ID.cfargotunnel.com<br>ID 怎么获取呢?<br>你创建隧道时的 xxxxx.json 去掉.json 就是你的隧道 ID<br>然后保存<br>如果你是第三方托管,你还要去你的域名管理商新建一样的记录,但是 CNAME 值写<记录名.域名.cdn.cloudflare.net><br>之后你就可以连接 Argo 隧道了</p>
<h1 id="连接-Argo-隧道"><a href="#连接-Argo-隧道" class="headerlink" title="连接 Argo 隧道"></a>连接 Argo 隧道</h1><p>在终端里面输入以下指令</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">./cloudflared tunnel --config path/config.yaml run <刚刚的隧道名> --url <本地URL(可以带端口)></span><br></pre></td></tr></table></figure>
<p>其中你要填写隧道名和本地 URL<br>比如你想让 Argo 映射你的 Hexo,你就可以在本地先启动 Hexo 查看他的地址<br>Hexo 一般是 localhost:4000<br>其他项目就填进去就好了,记住不带 http 和 https 的协议头,也不带后缀 /<br>填写完成后回车,等它连接好<br>然后你打开你刚才创建的子域名,就会出现页面了<br><del>今天又水了一篇文章</del><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171116141.png#crop=0&crop=0&crop=1&crop=1&id=OXws5&originHeight=43&originWidth=42&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""></p>
]]></content>
<categories>
<category>cloudflare</category>
</categories>
<tags>
<tag>cloudflare</tag>
</tags>
</entry>
<entry>
<title>GitHub 的多种访问方式</title>
<url>/2022/posts/gd503y/index.html</url>
<content><![CDATA[<h1 id="Dev-Sidecar"><a href="#Dev-Sidecar" class="headerlink" title="Dev-Sidecar"></a>Dev-Sidecar</h1><blockquote>
<p>请注意,由于开发者边车的 Gitee 仓库被封锁,所以这个项目不再更新了</p>
</blockquote>
<p><strong>在使用之前,请观看知乎的一个讨论</strong><br><a href="https://www.zhihu.com/question/498939985">如何评价《网络数据安全管理条例(征求意见稿)》第四十一条和第六十六条:建立数据跨境安全网关?</a></p>
<hr>
<p>进入开发者边车的 <a href="https://github.com/docmirror/dev-sidecar/releases/latest">Release</a><br>找到符合自己系统的版本,点击下载<br>下载完成后安装,打开<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140803394.png#crop=0&crop=0&crop=1&crop=1&id=GAQgy&originHeight=923&originWidth=1107&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>系统代理建议不要开启<br>加速服务可以设置端口<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140804781.png#crop=0&crop=0&crop=1&crop=1&id=dgAHc&originHeight=838&originWidth=856&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>其他的就没什么好设置的了,只需要把 NPM 加速和 Git 加速打开即可<br>But 因为这个软件已经停更了,所以我非常不建议各位用</p>
<h1 id="SwitchHosts-GitHub520"><a href="#SwitchHosts-GitHub520" class="headerlink" title="SwitchHosts + GitHub520"></a>SwitchHosts + GitHub520</h1><p>这个项目是以 Hosts 来加速的<br>首先去 SwitchHosts 的 <a href="https://github.com/oldj/SwitchHosts/releases/latest">Release</a><br>接着下载安装<br>SwitchHosts 这样配置即可<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202205140823.png?w=1280#crop=0&crop=0&crop=1&crop=1&id=QxTW3&originHeight=600&originWidth=1000&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt="">如果遇到没有写入权限,就进入 Hosts 文件的属性,配置一下权限和去掉只读,玩 Windows 的应该都知道提权这东西吧</p>
<h1 id="Watt-Toolkit"><a href="#Watt-Toolkit" class="headerlink" title="Watt Toolkit"></a>Watt Toolkit</h1><blockquote>
<p>⚠ 更新: 2022/12/28 19:53 新版的 Watt Toolkit 已经去掉了 Socks 设置</p>
</blockquote>
<p><a href="https://steampp.net/">Watt Toolkit</a></p>
<p>下载安装没什么好说的</p>
<p>进入软件勾选上所有的加速选项,然后选择 <code>Hosts 加速模式</code> 即可<br>如果怕加速不了的话就勾上加速选项里的 <code>Socks5</code> 代理<br>然后配置一下</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">sudo git config --global http.proxy <span class="string">'socks5://127.0.0.1:8868'</span></span><br><span class="line">sudo git config --global https.proxy <span class="string">'socks5://127.0.0.1:8868'</span></span><br></pre></td></tr></table></figure>
<p>8868 记得替换成你自己的端口</p>
<h1 id="题外话"><a href="#题外话" class="headerlink" title="题外话"></a>题外话</h1><p>加速 npm 还是 Dev-Sidecar 和 local-npm 好用一点</p>
]]></content>
<categories>
<category>github</category>
</categories>
<tags>
<tag>github</tag>
<tag>gfw</tag>
</tags>
</entry>
<entry>
<title>如何使用在线工具 - Photopea</title>
<url>/2020/posts/c9f23913/index.html</url>
<content><![CDATA[<p>众所周知,Adobe 全家桶的”PS”是处理图片不可缺少的一款工具</p>
<p>可稍不注意就会</p>
<p><strong>无响应警告</strong></p>
<p>不过国外有一位大神开发出了在线版本的”PS”,并且将”PS”的大部分功能都给还原了</p>
<p>这是由 Ivan Kuckir 大神开发的<a href="https://www.photopea.com/">Photopea</a></p>
<p>我们首先打开这个网站</p>
<p><img src="https://i0.hdslb.com/bfs/album/e1f72ac62c66a15b67375ef54535a50014dea38d.png" alt=""></p>
<p>点击新建项目,当然也可以从电脑打开</p>
<p>接下来它会让我们选择项目大小和模板之类的</p>
<p><img src="https://i0.hdslb.com/bfs/album/3613365636419dd90cce0705bda48b1fa9e471a9.png" alt=""></p>
<p>这里可以直接不选择模板直接选择大小,然后填写一下名字就创建</p>
<p>进入项目后可以看到这样的界面</p>
<p><img src="https://i0.hdslb.com/bfs/album/f5d83b351d72e6680a5888959c63e8bbc283d41c.png" alt=""></p>
<p>接下来我演示怎么做一个简单的 Logo</p>
<p>首先点击左边工具栏的”T”(文字工具)<img src="https://i0.hdslb.com/bfs/album/d0ff0e1e527219516c0507566291a5c93bce603e.png" alt=""></p>
<p>接着在上方会出现<img src="https://cdn1.tianli0.top/gh/slblog-github/BlogFlies/Blog/Pic/image-20201002173450316.png#alt=image-20201002173450316#align=left&display=inline&height=39&margin=%5Bobject%20Object%5D&originHeight=39&originWidth=690&status=done&style=none&width=690" alt=""></p>
<p>这里我们可以自己调节字体、文字大小、文字颜色等</p>
<p>这里我选的是 Hanalei Fill 字体</p>
<p>大小我调节的是 499px</p>
<p>然后写入自己想要的文字</p>
<p>写入完成后是这个样子的</p>
<p><img src="https://i0.hdslb.com/bfs/album/d89d0d2f7b643774e41a7e597fc983dbdfb562c9.png" alt=""></p>
<p>接下来我们贴个图</p>
<p>去<a href="https://iconfont.cn">iconfont</a>找个好康的图标,下载下来 <code>svg</code></p>
<p>下载下来 <code>svg</code> 后<img src="https://cdn1.tianli0.top/gh/slblog-github/BlogFlies/Blog/Pic/image-20201002174611722.png#alt=#align=left&display=inline&height=78&margin=%5Bobject%20Object%5D&originHeight=78&originWidth=67&status=done&style=none&width=67" alt="">将这个图片拖进 Photopea</p>
<p>然后调好大小就完成了</p>
<p><img src="https://i0.hdslb.com/bfs/album/437d91aab37ff753697f5d71a238c01224cd50b6.png" alt=""></p>
<p>接着点击文件-另存为 PSD 保存这个工程文件,方便下次修改</p>
<p>然后点击<img src="https://i0.hdslb.com/bfs/album/4aedd11c232918ac5b5fd832240e27decbc3211e.png" alt=""></p>
<p>然后就可以下载下来 Logo 了</p>
<p>顺便这个网站还提供 SVG 下载哦</p>
]]></content>
<categories>
<category>实用工具</category>
<category>在线工具</category>
</categories>
<tags>
<tag>实用工具</tag>
</tags>
</entry>
<entry>
<title>使用语雀随时编写文章</title>
<url>/2021/posts/gklcufla/index.html</url>
<content><![CDATA[<blockquote>
<p> 本文章基于<a href="https://zfe.space/post/554e.html">冰卡诺老师的教程</a>编写<br>「语雀」是一个「专业的云端知识库」,孵化自 <a href="https://www.antfin.com/?deer_tracert_token=cc478126-c93a-459b-a448-dd41de67f2d4">蚂蚁金服</a> ,是 <a href="https://www.yuque.com/yubo/explore/tcaywl?deer_tracert_token=cc478126-c93a-459b-a448-dd41de67f2d4">体验科技</a> 理念下的一款创新产品,已是 10 万阿里员工进行文档编写、知识沉淀的标配。<br>语雀诞生伊始,只是希望能给工程师提供一个好用的工具用来写技术文档,达成「用 Markdown 写文档」这个小目标。但在产品研发的过程中,我们发现其实身边的每个人、每个团队、每个组织都有很多知识,但一直以来缺少一个好用的工具让这些知识不只是留在每个人的大脑或电脑里,还可以被记录、分享和交流。<br>所以,带着这颗初心,我们觉得语雀不应止步于服务工程师,应该致力于为每个想表达所思所想的人提供一款顺手的工具,让知识能得以记录和传播,让人们可以在「语雀」中平等快乐地创作和交流知识,让再小的个体也可以拥有自己的知识库。</p>
</blockquote>
<h1 id="部署流程"><a href="#部署流程" class="headerlink" title="部署流程"></a>部署流程</h1><p>在语雀上编写文章并发布 -> 通过 Webhook 触发 serverless 云函数的部署 — serverless 云函数使用 token 等数据调用 GitHub API -> GitHub Actions 脚本运行(包括安装依赖与 Hexo / 同步语雀文章到本地 / 执行部署)</p>
<h1 id="教前准备"><a href="#教前准备" class="headerlink" title="教前准备"></a>教前准备</h1><ul>
<li>一个语雀账号</li>
</ul>
<a class="btn-beautify outline green larger" href="https://www.yuque.com/login?platform=wechat&inviteToken=f6e959505e77f114312173f53ec62f7b2c4ff248e08ed045603ad16d2ecf62ec"
title="Click Me"><i class="far fa-hand-point-right"></i><span>Click Me</span></a>
<ul>
<li>Vercel 账号</li>
<li>GitHub 私钥</li>
</ul>
<h2 id="GitHub-私钥的获得"><a href="#GitHub-私钥的获得" class="headerlink" title="GitHub 私钥的获得"></a>GitHub 私钥的获得</h2><a class="btn-beautify outline orange larger" href="https://github.com/settings/tokens"
title="Click Me"><i class="far fa-hand-point-right"></i><span>Click Me</span></a>
<p>进入以上地址<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794133135-53076e7e-49e3-4d92-9453-c8df7c660726.png#align=left&display=inline&height=428&margin=%5Bobject%20Object%5D&name=image.png&originHeight=856&originWidth=1895&size=180244&status=done&style=none&width=947.5" alt="image.png"></p>
<p>选择 Generate new token<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794201009-7268b5a9-3ad0-48b1-9543-d402d1585bdf.png#align=left&display=inline&height=254&margin=%5Bobject%20Object%5D&name=image.png&originHeight=508&originWidth=1146&size=57781&status=done&style=none&width=573" alt="image.png"><br>Note 随便填写<br>Select scopes 选择 repo / 或者宁可以全选,但是泄露了你就完蛋了(哭笑)<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794290580-44aca6a7-fe80-4b5a-b691-5a7e190ec607.png#align=left&display=inline&height=41&margin=%5Bobject%20Object%5D&name=image.png&originHeight=82&originWidth=1105&size=7769&status=done&style=none&width=552.5" alt="image.png"><br>生成好后复制这一串(避免有人手贱,推荐点击后面的蓝色按钮<img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794321440-4e986b79-26e1-4a71-b995-ed4e0ef2fa7b.png#align=left&display=inline&height=24&margin=%5Bobject%20Object%5D&name=image.png&originHeight=48&originWidth=41&size=462&status=done&style=none&width=20.5" alt="image.png"><br>然后我们可以新建个 txt 记录下来,避免老年痴呆忘记(不是)<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794384285-47ab5e7d-b087-4d16-b0db-05e94348338c.png#align=left&display=inline&height=473&margin=%5Bobject%20Object%5D&name=image.png&originHeight=946&originWidth=1202&size=436597&status=done&style=none&width=601" alt="image.png"></p>
<h2 id="仓库新建"><a href="#仓库新建" class="headerlink" title="仓库新建"></a>仓库新建</h2><p>进入 GitHub 新建仓库<br><a class="btn-beautify outline orange larger" href="https://github.com/new"
title="点我传送"><i class="far fa-hand-point-right"></i><span>点我传送</span></a><br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794501142-563d3399-8640-4fae-bd35-c5b155fcea5f.png#align=left&display=inline&height=338&margin=%5Bobject%20Object%5D&name=image.png&originHeight=676&originWidth=1163&size=74636&status=done&style=none&width=581.5" alt="image.png"><br>创建仓库时,权限请选择 Private(否则后续会很麻烦的)</p>
<h1 id="开始工作"><a href="#开始工作" class="headerlink" title="开始工作"></a>开始工作</h1><h2 id="创建知识库"><a href="#创建知识库" class="headerlink" title="创建知识库"></a>创建知识库</h2><p>登录语雀,进入<a href="https://www.yuque.com/dashboard">工作台</a><br>进入<a href="https://www.yuque.com/dashboard/my_books">个人知识库</a><br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794635798-0d420722-b9d5-43ae-aab4-63085925d0c9.png#align=left&display=inline&height=434&margin=%5Bobject%20Object%5D&name=image.png&originHeight=867&originWidth=1882&size=97209&status=done&style=none&width=941" alt="image.png"><br>选择创建知识库<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794717549-8483e394-ed71-49f9-9df9-ea6f3c1cc2ca.png#align=left&display=inline&height=419&margin=%5Bobject%20Object%5D&name=image.png&originHeight=838&originWidth=1642&size=175733&status=done&style=none&width=821" alt="image.png"><br>归属选择你自己,类型选择文档知识库<br>点击下一步<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794787185-a03d9656-feb9-4887-8af7-aff03fc038db.png#align=left&display=inline&height=371&margin=%5Bobject%20Object%5D&name=image.png&originHeight=743&originWidth=1273&size=100718&status=done&style=none&width=636.5" alt="image.png"><br>名称随便填写,可见范围选择互联网可见<br>公开内容是否允许搜索引擎收录选择允许(其实允许不允许也没关系)<br>然后我们点击三个点 - 管理文档<br>新建 - 导入<img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613794928815-d3f3928d-63ee-4e34-b718-de33f831c308.png#align=left&display=inline&height=420&margin=%5Bobject%20Object%5D&name=image.png&originHeight=839&originWidth=917&size=86665&status=done&style=none&width=458.5" alt="image.png"><br>类型选择 Markdown<br>为了方便以后文档的撰写,可以新建模板。注意图片链接需要加上’’防止被渲染成链接。<br>盗一下冰老师的图</p>
<p><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608132265373-09c816b7-bbf8-4a6f-9ea0-012060269c8b.png#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&name=image.png&originHeight=789&originWidth=1279&size=127438&status=done&style=none&width=1279#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&originHeight=789&originWidth=1279&status=done&style=none&width=1279" alt="image.png"><br>如果你使用了 abbrlink,请手动填写 abbrlink。<br>这里提供一套语雀模板</p>
<figure class="highlight markdown"><table><tr><td class="code"><pre><span class="line">---</span><br><span class="line"></span><br><span class="line">title: 使用语雀随时编写文章</span><br><span class="line">sticky: 1</span><br><span class="line">tags: [云端写作,语雀]</span><br><span class="line">description: 蛤,台式机不好带?GitHub上不去?用语雀写文章鸭</span><br><span class="line">categories: [云端写作,语雀[</span><br><span class="line">cover:</span><br><span class="line">photos: </span><br><span class="line">abbrlink: gklcufla</span><br><span class="line">date: 2021-02-20 11:41:21</span><br><span class="line">copyright<span class="emphasis">_author_</span>href: https://blog.slqwq.cn</span><br><span class="line">author: Hajeekn</span><br><span class="line">id: 32</span><br><span class="line"></span><br><span class="line">---</span><br></pre></td></tr></table></figure>
<p>tags 配置和 categories 配置推荐用数组格式</p>
<h2 id="安装语雀插件进行本地调试"><a href="#安装语雀插件进行本地调试" class="headerlink" title="安装语雀插件进行本地调试"></a>安装语雀插件进行本地调试</h2><p>为了确保在云端能够正常生成博客,需要首先在本地进行调试。<br>打开你的终端<br>使用</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">npm i -g yuque-hexo</span><br></pre></td></tr></table></figure>
<p>全局安装 yuque-hexo 插件</p>
<h3 id="修改-package-json"><a href="#修改-package-json" class="headerlink" title="修改 package.json"></a>修改 package.json</h3><p>在第一个对象代码块后增加”yuqueConfig”代码块。</p>
<figure class="highlight json"><table><tr><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"name"</span><span class="punctuation">:</span> <span class="string">"hexo-site"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"version"</span><span class="punctuation">:</span> <span class="string">"0.0.0"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"private"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"scripts"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"build"</span><span class="punctuation">:</span> <span class="string">"hexo generate"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"clean"</span><span class="punctuation">:</span> <span class="string">"hexo clean"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"deploy"</span><span class="punctuation">:</span> <span class="string">"hexo deploy"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"server"</span><span class="punctuation">:</span> <span class="string">"hexo server"</span></span><br><span class="line"><span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"yuqueConfig"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"postPath"</span><span class="punctuation">:</span> <span class="string">"source/_posts"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"cachePath"</span><span class="punctuation">:</span> <span class="string">"yuque.json"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"mdNameFormat"</span><span class="punctuation">:</span> <span class="string">"slug"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"adapter"</span><span class="punctuation">:</span> <span class="string">"markdown"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"concurrency"</span><span class="punctuation">:</span> <span class="number">5</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"baseUrl"</span><span class="punctuation">:</span> <span class="string">"https://www.yuque.com/api/v2"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"login"</span><span class="punctuation">:</span> <span class="string">"bingkanuo"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"repo"</span><span class="punctuation">:</span> <span class="string">"sffipz"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"token"</span><span class="punctuation">:</span> <span class="string">"***********************"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"onlyPublished"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"onlyPublic"</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br></pre></td></tr></table></figure>
<p>其中的 login repo token 需要自己更改<br>login:<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613795210885-4690758f-c8cb-4846-b5a5-7b330221299f.png#align=left&display=inline&height=23&margin=%5Bobject%20Object%5D&name=image.png&originHeight=45&originWidth=359&size=3434&status=done&style=none&width=179.5" alt="image.png">框起来的这一段(不要/和<a href="https://www.yuque.com">https://www.yuque.com</a>)<br>token 是在右上角头像 -> 账户设置 -> Token 添加的,权限的话只给读取就可以。复制粘贴获取的”token”字段。<br>再次盗图</p>
<p><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608133711645-569d4bb4-3de1-450b-80b6-5cf1ca7060b0.png#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&name=image.png&originHeight=789&originWidth=1279&size=176577&status=done&style=none&width=1279#align=left&display=inline&height=789&margin=%5Bobject%20Object%5D&originHeight=789&originWidth=1279&status=done&style=none&width=1279" alt="image.png"><br>添加完成后保存,在执行命令前,请先备份自己的_post 文件夹,因为语雀的下载操作会覆盖原有的_post 文件夹。<br>在终端中输入‘yuque-hexo sync’就会把语雀的文章给下载下来。<br>然后通过‘hexo g&hexo s’进行调试。<br>ps:输入‘yuque-hexo clean’就会清除_post 下的所有文章。<br>如果存在外挂标签,请确保外挂标签格式的书写规范,否则容易报错。</p>
<h2 id="配置-GitHub-Actions"><a href="#配置-GitHub-Actions" class="headerlink" title="配置 GitHub Actions"></a>配置 GitHub Actions</h2><h3 id="删除主题的-git-使用-npm-安装请忽略"><a href="#删除主题的-git-使用-npm-安装请忽略" class="headerlink" title="删除主题的.git(使用 npm 安装请忽略)"></a>删除主题的.git(使用 npm 安装请忽略)</h3><p>因为在仓库里面再放一个仓库是没法把里面那个仓库 push 到 github 的,只会传一个空文件夹,会导致后期博客成了空白页面,需要把 git clone 的 hexo 主题里的.git 文件夹给删掉。</p>
<h2 id="修改-hexo-主题文件中的-meta"><a href="#修改-hexo-主题文件中的-meta" class="headerlink" title="修改 hexo 主题文件中的 meta"></a>修改 hexo 主题文件中的 meta</h2><p>以 Butterfly 主题为例<br>进入%brt%/themes/butterfly/layout/includes/head.pug (Windows 用户请替换 / 为 \ )<br>在 meta(name=”theme-color” content=themeColor)后方添加 meta(name=”referrer” content=”no-referrer”)。<br>该步骤是确保语雀中的图片可以正常加载。</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="string">meta(name="theme-color"</span> <span class="string">content=themeColor)</span></span><br><span class="line"><span class="string">meta(name="referrer"</span> <span class="string">content="no-referrer")</span></span><br></pre></td></tr></table></figure>
<h2 id="修改-hexo-的-config-yml"><a href="#修改-hexo-的-config-yml" class="headerlink" title="修改 hexo 的_config,yml"></a>修改 hexo 的_config,yml</h2><p>前往博客的根目录,修改 hexo 的_config,yml 中关于 develop 的配置</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="comment"># Deployment</span></span><br><span class="line"><span class="comment">## Docs: https://hexo.io/docs/deployment.html</span></span><br><span class="line"><span class="attr">deploy:</span></span><br><span class="line"> <span class="attr">type:</span> <span class="string">git</span></span><br><span class="line"> <span class="attr">repository:</span></span><br><span class="line"> <span class="attr">github:</span> <span class="string">https://用户名:保存在txt中的密钥@github.com/用户名/仓库名.git</span></span><br><span class="line"> <span class="attr">branch:</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"> <span class="comment">#例子:https://ladjeek-actions:*******@github.com/slblog-github/Blog.git</span></span><br></pre></td></tr></table></figure>
<h3 id="创建-GitHub-Actions-脚本"><a href="#创建-GitHub-Actions-脚本" class="headerlink" title="创建 GitHub Actions 脚本"></a>创建 GitHub Actions 脚本</h3><p>在博客根目录下新建.github 文件夹(点不要漏掉了),在该文件夹下新建 workflows 文件夹。<br><a href="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608135890427-0dc37d9e-8eed-4581-8570-e806b5e4fa1a.png#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=65&originWidth=349&size=4021&status=done&style=none&width=349"><img src="https://cdn.nlark.com/yuque/0/2020/png/8391485/1608135890427-0dc37d9e-8eed-4581-8570-e806b5e4fa1a.png#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&name=image.png&originHeight=65&originWidth=349&size=4021&status=done&style=none&width=349#align=left&display=inline&height=65&margin=%5Bobject%20Object%5D&originHeight=65&originWidth=349&status=done&style=none&width=349" alt="image.png"></a><br>在 workflows 文件夹下新建 autodeploy.yml。并填入以下代码。<br>将下面那个 user.name 和 user.email 修改为自己的信息,注意对齐。</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">name:</span> <span class="string">自动部署</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 当有改动推送和语雀发布时,启动Action</span></span><br><span class="line"><span class="attr">on:</span> [<span class="string">push</span>, <span class="string">repository_dispatch</span>]</span><br><span class="line"></span><br><span class="line"><span class="attr">jobs:</span></span><br><span class="line"> <span class="attr">deploy:</span></span><br><span class="line"> <span class="attr">runs-on:</span> <span class="string">ubuntu-latest</span></span><br><span class="line"> <span class="attr">steps:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">检查分支</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/checkout@v2</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">ref:</span> <span class="string">master</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装</span> <span class="string">Node</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/setup-node@v1</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">node-version:</span> <span class="string">"12.x"</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装</span> <span class="string">Hexo</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> export TZ='Asia/Shanghai'</span></span><br><span class="line"><span class="string"> npm install hexo-cli -g </span></span><br><span class="line"><span class="string"> #npm install gulp-cli -g </span></span><br><span class="line"><span class="string"> #如果你有使用gulp的话,打开上面这一行</span></span><br><span class="line"><span class="string"> npm install yuque-hexo -g</span></span><br><span class="line"><span class="string"> yuque-hexo clean</span></span><br><span class="line"><span class="string"> yuque-hexo sync</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">缓存</span> <span class="string">Hexo</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">actions/cache@v1</span></span><br><span class="line"> <span class="attr">id:</span> <span class="string">cache</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">path:</span> <span class="string">node_modules</span></span><br><span class="line"> <span class="attr">key:</span> <span class="string">${{runner.OS}}-${{hashFiles('**/package-lock.json')}}</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">安装依赖</span></span><br><span class="line"> <span class="attr">if:</span> <span class="string">steps.cache.outputs.cache-hit</span> <span class="type">!=</span> <span class="string">'true'</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> npm install --save</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">更新</span> <span class="string">语雀拉取缓存及文章</span> <span class="comment">#更新yuque 拉取的文章到GitHub仓库</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> echo `date +"%Y-%m-%d %H:%M:%S"` begin > time.log</span></span><br><span class="line"><span class="string"> git config --global user.email "[email protected]"</span></span><br><span class="line"><span class="string"> git config --global user.name "Zfour"</span></span><br><span class="line"><span class="string"> git add .</span></span><br><span class="line"><span class="string"> git commit -m "Refresh yuque json" -a</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">推送</span> <span class="string">语雀拉取缓存及文章</span> <span class="comment">#推送修改后的yuque json</span></span><br><span class="line"> <span class="attr">uses:</span> <span class="string">ad-m/github-push-action@master</span></span><br><span class="line"> <span class="attr">with:</span></span><br><span class="line"> <span class="attr">github_token:</span> <span class="string">${{</span> <span class="string">secrets.GITHUB_TOKEN</span> <span class="string">}</span></span><br><span class="line"></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">生成静态文件</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> hexo clean</span></span><br><span class="line"><span class="string"> hexo g</span></span><br><span class="line"><span class="string"> #gulp # 使用Gulp压缩取消#号并和上面命令对齐</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"> <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">部署</span></span><br><span class="line"> <span class="attr">run:</span> <span class="string">|</span></span><br><span class="line"><span class="string"> git config --global user.name "slblog-github"</span></span><br><span class="line"><span class="string"> git config --global user.email "[email protected]"</span></span><br><span class="line"><span class="string"> hexo deploy</span></span><br></pre></td></tr></table></figure>
<h2 id="上传博客源码"><a href="#上传博客源码" class="headerlink" title="上传博客源码"></a>上传博客源码</h2><p>在你的终端输入:</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">git init</span><br><span class="line">git add .</span><br><span class="line">git commit -m <span class="string">"first commit"</span></span><br><span class="line">git remote add origin https://github.com/你的用户名/你的私有博客源码仓库名.git</span><br><span class="line">git push -u origin master</span><br></pre></td></tr></table></figure>
<h2 id="进行云端调试"><a href="#进行云端调试" class="headerlink" title="进行云端调试"></a>进行云端调试</h2><p>上传后你会发现 github action 生效。等待几分钟后,如果打勾,就说明部署成功。如果未打勾请检查出错的步骤。</p>
<h2 id="配置云函数"><a href="#配置云函数" class="headerlink" title="配置云函数"></a>配置云函数</h2><p>以下采用 Vercel 示范,其他云函数请看详细步骤:<a href="https://zfe.space/post/554e.html">https://zfe.space/post/554e.html</a><br>为了方便调用,冰老师写了一个 API<br>调用方式如下</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">https://yuque-vercel-webhook-api.vercel.app/api?token='{填写你的github私钥}'&user='{填写你的github用户名}'&source='{填写你的github仓库地址}'</span><br></pre></td></tr></table></figure>
<p>你需要传递的参数有 token,user,source。<br>当然你也可以直接 Fork 冰老师的项目自己搭建<br><a href="https://github.com/Zfour/yuque_vercel_webhook_api">https://github.com/Zfour/yuque_vercel_webhook_api</a><br>部署完成后将<a href="https://yuque-vercel-webhook-api.vercel.app">https://yuque-vercel-webhook-api.vercel.app</a>换成你搭建好的地址</p>
<h2 id="配置语雀的-webhook"><a href="#配置语雀的-webhook" class="headerlink" title="配置语雀的 webhook"></a>配置语雀的 webhook</h2><h3 id="设定触发规则"><a href="#设定触发规则" class="headerlink" title="设定触发规则"></a>设定触发规则</h3><p>在知识库中选择设置 -> 开发者<br><img src="https://cdn.nlark.com/yuque/0/2021/png/12488964/1613795895821-bbc15fcb-adab-4966-9b36-62ed416b8b73.png#align=left&display=inline&height=282&margin=%5Bobject%20Object%5D&name=image.png&originHeight=563&originWidth=900&size=44950&status=done&style=none&width=450" alt="image.png"><br>添加一个 WebHook<br>推送方式选择发布文档 更新文档 删除文档<br>然后名称随便写,URL 就把上面的调用方式补充完成放上去就行<br>设置完毕后,你可以尝试发布一篇文章进行测试。如果 github action 执行则说明配置成功。</p>
<h1 id="Thanks-for-you"><a href="#Thanks-for-you" class="headerlink" title="Thanks for you~"></a>Thanks for you~</h1>]]></content>
<categories>
<category>云端写作</category>
<category>语雀</category>
</categories>
<tags>
<tag>云端写作</tag>
<tag>语雀</tag>
</tags>
</entry>
<entry>
<title>Waline评论系统部署日志</title>
<url>/2021/posts/rbblakpo/index.html</url>
<content><![CDATA[<p><strong>本文基于</strong><a href="https://blog.ccknbc.cc/posts/waline-commens-system-deployment-logs/">@CCKNBC</a><strong>的日志</strong><a href="https://waline.js.org/">@Waline 官方文档</a>和博主自己部署时的实际情况编写<br>如果需要最详细的配置请前往 <a href="https://waline.js.org/">@Waline 官方文档</a></p>
<hr>
<h1 id="评论系统特性"><a href="#评论系统特性" class="headerlink" title="评论系统特性"></a>评论系统特性</h1><ul>
<li>快速</li>
<li><strong>真</strong>·安全</li>
<li>Markdown 语法支持</li>
<li>轻量易用</li>
<li>免费部署</li>
<li>多种部署方式和存储服务支持,每列选择一项多达 48 种部署方式任君选择</li>
</ul>
<div class="table-container">
<table>
<thead>
<tr>
<th></th>
<th>Waline</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>客户端脚本</strong></td>
<td><strong>服务端部署</strong></td>
<td><strong>数据存储</strong></td>
</tr>
<tr>
<td>@waline/client</td>
<td>Vercel</td>
<td>LeanCloud</td>
</tr>
<tr>
<td>MiniValine</td>
<td>CloudBase</td>
<td>CloudBase</td>
</tr>
<tr>
<td></td>
<td>Docker</td>
<td>MongoDB</td>
</tr>
<tr>
<td></td>
<td>独立部署</td>
<td>MySQL</td>
</tr>
<tr>
<td></td>
<td></td>
<td>SQLite</td>
</tr>
<tr>
<td></td>
<td></td>
<td>PostgreSQL</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Github</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Todo"><a href="#Todo" class="headerlink" title="Todo"></a>Todo</h2><ul>
<li>[x] 微信通知</li>
<li>[x] QQ 通知</li>
<li>[x] Telegram 通知</li>
<li>[x] Akismet</li>
<li>[x] 文章统计</li>
<li>[x] 多语言同步</li>
<li>[x] 自定义语言支持</li>
<li>[x] 登录支持</li>
<li>[x] 评论管理</li>
<li>[x] 评论删除</li>
<li>[x] 其它数据库支持</li>
<li>[x] 基于 IP 的发布评论频率限制</li>
<li>[x] 基于关键词的评论过滤限制</li>
<li>[x] IP 黑名单</li>
<li>[x] 重复内容检测</li>
<li>[x] CloudBase 腾讯云开发部署支持</li>
<li>[x] 社交登录</li>
<li>[ ] AWS, GCP, Azure 部署支持</li>
<li>[ ] 置顶评论</li>
<li>[ ] 评论赞踩</li>
</ul>
<p>如果您要获得来自 Waline 群友或公子大佬的支持,可以在<a href="https://github.com/lizheming/waline/discussions">Github Discussions</a> 中发布问题获取支持。当然你也可以加入 Waline 的 <a href="https://t.me/walinejs">Telegram</a> 小组或者是加入我们的 <a href="https://qm.qq.com/cgi-bin/qm/qr?k=rPZvq_EBfwQa6QZX7sToVlhH49c6ed0R&jump_from=webapi">Waline 用户交流 QQ 群</a>获取更多的支持。</p>
<h1 id="上手"><a href="#上手" class="headerlink" title="上手"></a>上手</h1><p>博主采用 Butterfly 主题,已经内置 Waline 评论系统</p>
<h2 id="Vercel-LeanCloud"><a href="#Vercel-LeanCloud" class="headerlink" title="Vercel + LeanCloud"></a>Vercel + LeanCloud</h2><p><strong>博主就使用了这种方式</strong><del>(毕竟能白嫖谁还要花钱啊?</del><br>博主推荐使用<a href="https://leancloud.app">LeanCloud 国际版本</a>,如果您使用的是<a href="https://leancloud.cn">LeanCloud 中国版本</a>,除了本文介绍的环境变量,还需要绑定 LeanCloud 域名<br>配置方式: 设置 > 域名绑定 > API 访问域名 绑定新域名 > 输入需要绑定的已备案域名点击 确定。之后按照页面上的提示去 DNS 上做正确的 CNAME 解析即可。<br><a href="https://vercel.com/import/project?template=https://github.com/lizheming/waline/tree/master/example"> </a><img src="https://cdn.nlark.com/yuque/0/2021/svg/12488964/1613908946082-2b97a876-6dcf-437c-8b06-d1be78602a82.svg#crop=0&crop=0&crop=1&crop=1&height=32&id=SkrZu&originHeight=32&originWidth=92&originalType=binary&ratio=1&rotation=0&showTitle=false&size=0&status=done&style=none&title=&width=92" alt=""><br>点击上面的 Deploy 按钮就可以快速跳转到 Vercel 部署辣<br>如果你没有 Vercel 账号,可能提示你需要注册一个,这里不要用 QQ 邮箱因为他们会认为 QQ 邮箱是一个垃圾邮箱<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171106702.png#crop=0&crop=0&crop=1&crop=1&id=nd4Cj&originHeight=875&originWidth=1896&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>PROJECT NAME 可以随便填写一个<br>这就是项目名称,不过为了之后好辩别,还是写一个方便记住的吧<br>输入了你的项目名称后点击 Continue 进入下一步<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107459.png#crop=0&crop=0&crop=1&crop=1&id=GLi6Z&originHeight=874&originWidth=1898&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>不过可能会提示你要选择一个<br>随便来一个就是(前提是你有对应的账号,否则老老实实选择 GitHub<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107509.png#crop=0&crop=0&crop=1&crop=1&id=uKJnF&originHeight=429&originWidth=937&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>进入下一步后会让你填写创建的 Git 仓库名称<br>点击你的用户名可以显示出你账号绑定的 GitHub 账号<br>这样就可以自定义创建的账号</p>
<p>下方 👇 的 Create private Git Repository 如果勾选上创建的时候就会创建一个私有仓库<br>然后再次点击 Continue 进行下一步<br>然后就会出现这个页面<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107245.png#crop=0&crop=0&crop=1&crop=1&id=ARA2n&originHeight=863&originWidth=1895&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>不管他,下滑<br>找到 <code>Environment Variables</code> 配置环境变量<br>默认需要的环境变量如下:</p>
<ul>
<li>LEAN_ID</li>
<li>LEAN_KEY</li>
<li>LEAN_MASTER_KEY</li>
</ul>
<p>它们的值分别对应上一步在 <code>LeanCloud</code> 中获得的 <code>APPID</code> <code>APPKEY</code> <code>MasterKey</code><br>获取方法:<br>进入 LeanCloud<br>这边用国际版演示<br>进入选择 <a href="https://console.leancloud.app/">Console</a><br>如果没有创建一个应用<br><strong>注意 ⚠: 如果您之前用了 Valine 评论系统 就不用创建了,因为 Waline 评论数据与 Valine 评论数据可以共用</strong><br>进入应用设置后选择 设置 -> 应用 Keys<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171107450.png#crop=0&crop=0&crop=1&crop=1&id=N57mx&originHeight=512&originWidth=915&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>复制并保存 Credentials 的所有配置<br>然后把获取到的变量依次填入环境变量中<br><img src="https://rmt.ladydaily.com/fetch/hajeekn/storage/202204171108331.png#crop=0&crop=0&crop=1&crop=1&id=JpTSM&originHeight=376&originWidth=948&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=" alt=""><br>设置都完成后就可以点击 <code>Deploy</code> 了<br>在这里稍等一会儿就可以部署完成<br>部署完成后在接下来的页面点击 Visit<br>就可以打开部署好的示例网页<br>然后你需要注册一个账号<br>在 <code>Vercel</code> 分配的域名后面加上/ui/register<br>第一个注册的会成为管理员哦~<br>如果你想要自定义管理员头衔<br>可以在客户端脚本中用<code>langMode.admin</code>配置哦<br>例如:</p>
<figure class="highlight javascript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">waline</span>(<span class="params"></span>) {</span><br><span class="line"> <span class="keyword">const</span> <span class="title class_">Waline</span> = <span class="built_in">require</span>(<span class="string">"@waline/client"</span>);</span><br><span class="line"> <span class="keyword">new</span> <span class="title class_">Waline</span>({</span><br><span class="line"> <span class="attr">el</span>: <span class="string">"#waline-comment"</span>,</span><br><span class="line"> <span class="attr">serverURL</span>: %<span class="variable constant_">WALINEURL</span>%,</span><br><span class="line"> <span class="attr">path</span>: <span class="variable language_">window</span>.<span class="property">location</span>.<span class="property">pathname</span>,</span><br><span class="line"> <span class="attr">visitor</span>: <span class="literal">true</span>,</span><br><span class="line"> <span class="attr">lang</span>: location.<span class="property">pathname</span>.<span class="title function_">startsWith</span>(<span class="string">"/en/"</span>) ? <span class="string">"en"</span> : <span class="string">"zh-CN"</span>,</span><br><span class="line"> <span class="attr">langMode</span>: {</span><br><span class="line"> <span class="attr">admin</span>: location.<span class="property">pathname</span>.<span class="title function_">startsWith</span>(<span class="string">"/en/"</span>) ? <span class="string">"Admin"</span> : <span class="string">"Hajeekn"</span>,</span><br><span class="line"> },</span><br><span class="line"> });</span><br><span class="line">}</span><br></pre></td></tr></table></figure>
<p>按这样来说,你还可以配置访客的角标(头衔)<br>具体去看看<a href="https://waline.js.org/">Waline 文档</a>或者<a href="https://blog.ccknbc.cc/">@CCKNBC</a><br>当然如果你和我一样用的是 Butterfly<br>那么可以找到 Waline 配置项<br>在<code>option</code>配置项加入配置即可</p>
<pre><code>langMode:
admin: Hajeekn
</code></pre><p>示例:</p>
<figure class="highlight yaml"><table><tr><td class="code"><pre><span class="line"><span class="attr">option:</span></span><br><span class="line"> <span class="attr">pageSize:</span> <span class="number">10</span></span><br><span class="line"> <span class="string">·····</span></span><br><span class="line"> <span class="attr">langMode:</span></span><br><span class="line"> <span class="attr">admin:</span> <span class="string">Hajeekn</span></span><br></pre></td></tr></table></figure>
<p>当然 Waline 现在也可以更改邮件模板<br>只需要在环境变量内写入就行<br>但是环境变量限制大小,推荐按照<a href="https://github.com/lizheming/waline/issues/106">issues/106</a>配置<br>当然如果你的评论不是很多,并且之前配置过 Valine-Admin,那么你仍然可以使用 <code>LeanCloud</code> 异步发送通知</p>
<h2 id="表情包配置-Butterfly"><a href="#表情包配置-Butterfly" class="headerlink" title="表情包配置(Butterfly)"></a>表情包配置(Butterfly)</h2><p>这部分和 Valine 没多大差别,格式也可以直接复制粘贴 Valine 的<br>只需要把名字改为 waline.json<br>具体可以查看<a href="https://butterfly.js.org/posts/ceeb73f/#%E8%A9%95%E8%AB%96">主题文档</a></p>
<h1 id="CloudBase-云开发部署"><a href="#CloudBase-云开发部署" class="headerlink" title="CloudBase 云开发部署"></a>CloudBase 云开发部署</h1><p>可以去看看<a href="https://blog.ccknbc.cc/posts/waline-commens-system-deployment-logs/#CloudBase-%E4%BA%91%E5%BC%80%E5%8F%91%E9%83%A8%E7%BD%B2">@CCKNBC</a>(CC)大佬写的</p>
<h1 id="升级"><a href="#升级" class="headerlink" title="升级"></a>升级</h1><h2 id="Vercel"><a href="#Vercel" class="headerlink" title="Vercel"></a>Vercel</h2><p>所需要的工具</p>
<ul>
<li><a href="https://github.com/marketplace/renovate">Renovate</a></li>
<li><a href="https://github.com/marketplace/mergify">Mergify</a></li>
</ul>
<p>!在这之前仓库必须公开!<br>安装完成后就可以删除 <code>Waline</code> 仓库,再 fork <a href="https://github.com/ccknbc-actions/waline">CC 的仓库</a>,之后绑定到 fork 的仓库并重新部署即可</p>
<p>但是如果你没用 腾讯云开发 就把 <code>.github/workflows/Update Waline TCB.yml</code> 里的文件删掉,因为涉及到自动部署更新云开发,还有环境变量,如果没设定会导致报错</p>
<h2 id="Tencent-Cloudbase"><a href="#Tencent-Cloudbase" class="headerlink" title="Tencent Cloudbase"></a>Tencent Cloudbase</h2><p>和上面一样<br>Fork <a href="https://github.com/ccknbc-actions/waline">CC 的仓库</a> 然后新建几个变量<br>进入你的仓库/settings/secrets/actions</p>
<div class="table-container">
<table>
<thead>
<tr>
<th>变量名</th>
<th>变量解释</th>
</tr>
</thead>
<tbody>
<tr>
<td>SECRETID</td>
<td>API 访问密钥 ID,可<a href="https://console.cloud.tencent.com/cam/capi">点击这里</a></td>
</tr>
<tr>
<td>新建/查看</td>
</tr>
<tr>
<td>SECRETKEY</td>
<td>API 访问密钥 KEY,可<a href="https://console.cloud.tencent.com/cam/capi">点击这里</a></td>
</tr>
<tr>
<td>新建/查看</td>
</tr>
<tr>
<td>TCBFUNNAME(没什么好加密的,就叫 waline 算了)</td>
<td>你想要新建/已有函数的名称,比如 <code>Waline</code></td>
</tr>
<tr>
<td>TCBENVID</td>
<td>环境 ID,可<a href="https://console.cloud.tencent.com/tcb/env/overview">点击这里</a></td>
</tr>
</tbody>
</table>
</div>
<p>或<a href="https://console.cloud.tencent.com/tcb/env/index">这里</a><br>查看,地址栏后也会显示,反正就是很多地方都在上面点一下就能看到 |</p>
<hr>
<p>AD!</p>
<p>我的博客即将同步至腾讯云+社区,邀请大家一同入驻:<a href="https://cloud.tencent.com/developer/support-plan?invite_code=3gll8aqhc2kgg">https://cloud.tencent.com/developer/support-plan?invite_code=3gll8aqhc2kgg</a></p>
]]></content>
<categories>
<category>评论</category>
<category>部署日志</category>
</categories>
<tags>
<tag>评论</tag>
<tag>部署日志</tag>
</tags>
</entry>
<entry>
<title>物理机安装 Windows 11</title>
<url>/2021/posts/alioalnh/index.html</url>
<content><![CDATA[<p>最近 Windows 11 发布了,我趁机白嫖了个预览版镜像在虚拟机里面装着玩玩,之后便给实体机也装上了<br>本文章说说如何安装 Windows 11 和对于笔记本如何优化动效</p>
<h1 id="安装-Windows-11"><a href="#安装-Windows-11" class="headerlink" title="安装 Windows 11"></a>安装 Windows 11</h1><h2 id="获取-Windows-11-预览版镜像"><a href="#获取-Windows-11-预览版镜像" class="headerlink" title="获取 Windows 11 预览版镜像"></a>获取 Windows 11 预览版镜像</h2><p>天翼云:<a href="https://cloud.189.cn/t/bYbEzq7vAVra">https://cloud.189.cn/t/bYbEzq7vAVra</a> 访问码:q2rt<br>迅雷:<a href="https://pan.xunlei.com/s/VMdJtc5D8h_Yau9M19fH6mNiA1">https://pan.xunlei.com/s/VMdJtc5D8h_Yau9M19fH6mNiA1</a> 提取码:p5f9<br>UUP(arm64_zh cn):<a href="https://pan.baidu.com/s/129jQDRLGqn2dMq7tEifRFg">https://pan.baidu.com/s/129jQDRLGqn2dMq7tEifRFg</a> 提取码: uyq8<br>UUP(amd64_zh cn):<a href="https://pan.baidu.com/s/14x2a2VhopRAS3ZOYhkBQBA">https://pan.baidu.com/s/14x2a2VhopRAS3ZOYhkBQBA</a> 提取码:8wy5<br>通过这些地址获取预览版镜像</p>
<h2 id="安装-Windows-11-1"><a href="#安装-Windows-11-1" class="headerlink" title="安装 Windows 11"></a>安装 Windows 11</h2><p>下载之后解压镜像<br>双击运行 setup.exe 进行安装<br>如果你的电脑不满足 Windows 11 的要求,你可以使用 PE 安装<br>如果你下载了一个自带中文语言包的镜像,那么你看到的就是中文的安装界面<br>按照步骤安装完成后应该会跳出 OOBE 界面<br>在这个界面选择 China<br>然后点击 Yes<br>然后会提示选择键盘布局</p>
<p>如果你下载了包含中文包的镜像那么这里可以选择中文输入法<br>之后你要配置账户,我用的是 Microsoft 365 E5 的组织账号<br>之后按照步骤提示配置完成后就可以了<br>安装完成后界面大概是这样<br><img src="https://i0.hdslb.com/bfs/album/e926423660bfaba784785381224e01d71f3b19d9.png" alt="image-20221228200653559"></p>
]]></content>
<categories>
<category>Windows</category>
<category>Windows11</category>
</categories>
<tags>
<tag>Windows</tag>
<tag>Windows11</tag>
</tags>
</entry>
<entry>
<title>Windows 使用 Scoop 管理软件</title>
<url>/2021/posts/kmlrip/index.html</url>
<content><![CDATA[<p>本篇文章参考 <a href="https://www.dejavu.moe/posts/windows-scoop/">Dejavu</a> 的文章和 <a href="https://scoop-docs.vercel.app/">Scoop</a> 官方文档<br>Windows 和 MacOS Linux 不一样<br>Windows 安装软件的途径一般是搜索引擎/软件管家</p>
<p>而 MacOS Linux 有自己的包管理器<br>MacOS 是 Homebrew<br>Linux 是 apt<br>Windows 下其实也有包管理器,比较流行的是</p>
<ul>
<li><a href="https://scoop.sh/">Scoop</a></li>
<li><a href="https://chocolatey.org/">Chocolatey</a></li>
<li><a href="https://github.com/microsoft/winget-cli">Winget-cli</a></li>
</ul>
<p>Scoop 和 Chocolatey 都是比较出名的第三方包管理器了,Winget 是微软整的一个新活<br>但是严格来说,Scoop 并不算是 “包管理器”,Scoop 官方解释为 “Scoop 是 Windows 的命令行安装程序”,但是它基本实现了一个包管理器的功能</p>
<h1 id="系统要求"><a href="#系统要求" class="headerlink" title="系统要求"></a>系统要求</h1><ul>
<li>Windows 7 SP1+ / Windows Server 2008+</li>
<li><a href="https://aka.ms/wmf5download">PowerShell 5</a> / <a href="https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6">PowerShell Core</a> 和 <a href="https://www.microsoft.com/net/download">.NET Framework 4.5</a> (或更高版本)</li>
</ul>
<h1 id="配置-Scoop-目录"><a href="#配置-Scoop-目录" class="headerlink" title="配置 Scoop 目录"></a>配置 Scoop 目录</h1><p>Scoop 默认的安装本体和软件目录为:<code>C:\Users\%username%\scoop\</code><br>Scoop 默认安装全局软件的目录为: <code>C:\ProgramData\scoop\</code><br>在我们安装 Scoop 前,我们应该使用环境变量配置安装目录<br>配置本体和软件目录:</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="variable">$env</span>:SCOOP=<span class="string">'<盘符>:\Scoop'</span></span><br><span class="line">[Environment]::SetEnvironmentVariable(<span class="string">'SCOOP'</span>, <span class="variable">$env</span>:SCOOP, <span class="string">'User'</span>)</span><br></pre></td></tr></table></figure>
<p>配置全局软件目录:</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="variable">$env</span>:SCOOP_GLOBAL=<span class="string">'<盘符>:\Scoop\Global'</span></span><br><span class="line">[Environment]::SetEnvironmentVariable(<span class="string">'SCOOP_GLOBAL'</span>, <span class="variable">$env</span>:SCOOP_GLOBAL, <span class="string">'Machine'</span>)</span><br></pre></td></tr></table></figure>
<p>配置完成后就可以开始安装 Scoop 了</p>
<h1 id="安装-Scoop"><a href="#安装-Scoop" class="headerlink" title="安装 Scoop"></a>安装 Scoop</h1><p>打开你的 Windows Terminal / Powershell 5<br>输入安装指令:</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">iwr -useb get.scoop.sh | iex</span><br></pre></td></tr></table></figure>
<p>安装时鉴于国内防火长城,推荐打开全局代理<br>当提示 successfully 的时候就安装完成了</p>
<h1 id="安装-Git"><a href="#安装-Git" class="headerlink" title="安装 Git"></a>安装 Git</h1><p>Git 是 Scoop 必须的组件,现在你可以通过一个简单指令安装</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scoop install git openssh</span><br></pre></td></tr></table></figure>
<h1 id="安装-Aria2"><a href="#安装-Aria2" class="headerlink" title="安装 Aria2"></a>安装 Aria2</h1><p>接着我们需要安装 Aria2 让 Scoop 以多线程下载<br>你也可以通过一个简单的指令下载</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scoop install aria2</span><br></pre></td></tr></table></figure>
<p>安装完成后需要配置一下 Aria2 的参数</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line"><span class="comment"># 启用 Aria2</span></span><br><span class="line">scoop config aria2-enabled <span class="literal">true</span></span><br><span class="line"><span class="comment"># 设置单任务最大线程为 16</span></span><br><span class="line">scoop config aria2-split 16</span><br><span class="line"><span class="comment"># 设置单服务器最大线程为 16</span></span><br><span class="line">scoop config aria2-max-connection-per-server 16</span><br><span class="line"><span class="comment"># 设置文件最小切片大小为 1M</span></span><br><span class="line">scoop config aria2-min-split-size 1M</span><br></pre></td></tr></table></figure>
<h1 id="安装-Sudo"><a href="#安装-Sudo" class="headerlink" title="安装 Sudo"></a>安装 Sudo</h1><p>如果你使用 Scoop 全局安装软件(如 Node.js)你便需要管理员权限<br>安装 Sudo 可以简化提取权限步骤<br>同样,你也可以通过一个简单指令安装 Sudo</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scoop install sudo</span><br></pre></td></tr></table></figure>
<h1 id="常用-Scoop-Bucket"><a href="#常用-Scoop-Bucket" class="headerlink" title="常用 Scoop Bucket"></a>常用 Scoop Bucket</h1><div class="table-container">
<table>
<thead>
<tr>
<th><a href="https://github.com/lukesampson/scoop">Main</a></th>
<th>Windows 的命令行安装程序</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/lukesampson/scoop-extras">extras</a></td>
<td>包含不太符合主存储桶标准的应用</td>
</tr>
<tr>
<td><a href="https://github.com/ScoopInstaller/Main">main</a></td>
<td>下一代的 Scoop 默认 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/chawyehsu/dorado">chawyehsu/dorado</a></td>
<td>🐟 又是一个可爱的 Scoop 的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/Ash258/Scoop-Ash258">Ash258/Scoop-Ash258</a></td>
<td>个人 Bucket,包含各种应用</td>
</tr>
<tr>
<td><a href="https://github.com/matthewjberger/scoop-nerd-fonts">nerd-fonts</a></td>
<td>一个用于安装 Nerd Fonts 字体的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/ScoopInstaller/Java">java</a></td>
<td>用于 Oracle Java, OpenJDK, Zulu, ojdkbuild, AdoptOpenJDK, Amazon Corretto, BellSoft Liberica, SapMachine 和 Microsoft JDK 的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/borger/scoop-galaxy-integrations">borger/scoop-galaxy-integrations</a></td>
<td>提供安装、附加和更新 GOG Galaxy 2 号集成的简单方法</td>
</tr>
<tr>
<td><a href="https://github.com/TheRandomLabs/Scoop-Spotify">TheRandomLabs/Scoop-Spotify</a></td>
<td>一个用于 Spotify、Spicetify 和相关软件包的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/TheRandomLabs/scoop-nonportable">nonportable</a></td>
<td>一个用于非可移植应用程序的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/Calinou/scoop-games">games</a></td>
<td>开源/免费游戏和游戏相关工具的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/TheCjw/scoop-retools">TheCjw/scoop-retools</a></td>
<td>逆向工程工具的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/Ash258/Scoop-JetBrains">jetbrains</a></td>
<td>包含 Jetbrians IDE 的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/integzz/scoopet">integzz/scoopet</a></td>
<td>包含学术研究应用的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/ScoopInstaller/Versions">Versions</a></td>
<td>包含一些知名软件包的旧版本的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/Ash258/GenericBucket">Ash258/GenericBucket</a></td>
<td>通用的 Bucket 模板</td>
</tr>
<tr>
<td><a href="https://github.com/kidonng/sushi">kidonng/sushi</a></td>
<td>一个美味的、包容的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/rasa/scoops">rasa/scoops</a></td>
<td>一个美味的的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/littleli/scoop-clojure">littleli/scoop-clojure</a></td>
<td>安装 Clojure 的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/MCOfficer/scoop-nirsoft">MCOfficer/scoop-nirsoft</a></td>
<td>个人收藏的 nirsoft.net-bucket,总共包含了 250 多个程序</td>
</tr>
<tr>
<td><a href="https://github.com/kkzzhizhou/scoop-apps">kkzzhizhou/coop-apps</a></td>
<td>合并多个 Scoop 仓库,使用 Github Action 自动更新</td>
</tr>
<tr>
<td><a href="https://github.com/KNOXDEV/wsl">KNOXDEV/wsl</a></td>
<td>一个用于 WSL 的 Bucket,不需要 Windows UWP 应用商店</td>
</tr>
<tr>
<td><a href="https://github.com/Ash258/Scoop-Sysinternals">Ash258/Scoop-Sysinternals</a></td>
<td>所有分开的 Sysinternals 工具的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/TheRandomLabs/Scoop-Bucket">TheRandomLabs/Scoop-Bucket</a></td>
<td>个人收藏的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/cderv/r-bucket">cderv/r-bucket</a></td>
<td>R 语言用户和软件工程师使用的个人 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/kkzzhizhou/scoop-zapps">kkzzhizhou/scoop-zapps</a></td>
<td>自用 Scoop 仓库,使用 Github Actions 自动更新</td>
</tr>
<tr>
<td><a href="https://github.com/tetradice/scoop-iyokan-jp">tetradice/scoop-iyokan-jp</a></td>
<td>日本語環境に最適化された scoop bucket</td>
</tr>
<tr>
<td><a href="https://github.com/rkbk60/scoop-for-jp">rkbk60/scoop-for-jp</a></td>
<td>适合小日子过得不错的日本人的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/ZvonimirSun/scoop-iszy">ZvonimirSun/scoop-iszy</a></td>
<td>ZvonimirSun 个人收藏的 Bucket</td>
</tr>
<tr>
<td><a href="https://github.com/ScoopInstaller/PHP">php</a></td>
<td>PHP 的 Bucket</td>
</tr>
</tbody>
</table>
</div>
<p>你可以通过以下指令添加 Bucket</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">scoop bucket add <name> <repo></span><br></pre></td></tr></table></figure>
]]></content>
<categories>
<category>windows</category>
</categories>
<tags>
<tag>windows</tag>
</tags>
</entry>
<entry>
<title>将你的网站部署到 Cloudflare 加快访问速度</title>
<url>/2023/posts/lyr15g/index.html</url>
<content><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!<br>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn 的博客</a><br>上篇我们介绍了 Cloudflare Argo Tunnel 的玩法<br>本篇讲述如何部署网站到 Cloudflare 加快速度</p>
<h1 id="配置-Cloudflare-Pages"><a href="#配置-Cloudflare-Pages" class="headerlink" title="配置 Cloudflare Pages"></a>配置 Cloudflare Pages</h1><p>本文章基于 Cloudflare Pages,如果没有请用 GitHub + Cloudflare CDN<br>首先打开你的 Cloudflare 账户 Pages 页面<br>选择新建项目<br>授权应用完成后选择储存库<br>为了减少部署时间,推荐使用编译仓库(也就是 Hexo 生成 HTML 的仓库)<br>选择后无脑下一步<br>之后 Cloudflare Pages 就会开始部署你的 Hexo 了</p>
<h1 id="自定义域名"><a href="#自定义域名" class="headerlink" title="自定义域名"></a>自定义域名</h1><p>打开 Cloudflare Partner 平台和你的 DNS 解析商<br>这里用辣椒和 DNS.LA 演示<br>新建一条解析(两边都是)<br>记录名写你博客的子域名,一般都是 blog<br>你的 DNS 解析商的 CNAME 海外写 blog.xxx.xx.cdn.cloudflare.net<br>默认和国内选择几个好用的自选 Cloudflare CDN 节点就行<br>辣椒的记录名也写 blog<br>记录类型选 CNAME<br>Cloudflare Pages 部署完成后会分给你一个<br>xxxx.pages.dev<br>把他复制填写进记录值然后保存就行<br>接着打开你的 Cloudflare Pages 页面<br>选择刚部署好的项目<br>进入自定义域<br>点击添加,自定义域就写 记录值.域名<br>然后等待 SSL 的启用就行了</p>
<h1 id="配置缓存"><a href="#配置缓存" class="headerlink" title="配置缓存"></a>配置缓存</h1><p>打开 Cloudflare 的缓存配置页面<br>点击配置<br><strong>Always Online 设置为 true</strong><br><strong>缓存级别 设置为标准</strong><br><strong>浏览器缓存 TTL 设置成 4 小时</strong><br>然后打开规则<br>创建页面规则<br>这样写就行<br>记得把博客记录名.域名替换成你自己的<br>比如我的是 blog.slqwq.cn<br>就写 blog.slqwq.cn<br><del>今天又水了一篇文章,真棒(๑•̀ㅂ•́)و✧</del></p>
]]></content>
<categories>
<category>cloudflare</category>
</categories>
<tags>
<tag>cloudflare</tag>
</tags>
</entry>
<entry>
<title>那些奇奇怪怪的图床</title>
<url>/2022/posts/nvz8s3/index.html</url>
<content><![CDATA[<p>本文章首发于<a href="https://www.yuque.com/ladjeek/ygg4q6">语雀</a>!</p>
<p>通过各种高科技功能同步到<a href="https://blog.slqwq.cn">Hajeekn的博客</a></p>
<p>最近想用 IPFS 做图床但是发现的一堆奇奇怪怪的图床</p>
<p>(PS: 不会介绍传统的 GitHub + JSdelivr / SM.MS / 路过图床)</p>
<h1 id="Bilibili-图床"><a href="#Bilibili-图床" class="headerlink" title="Bilibili 图床"></a>Bilibili 图床</h1><p>十分简单</p>
<p>PicGO 搜索 bilibili</p>
<p><img src="https://i0.hdslb.com/bfs/album/cf1ae1497dece72e055eb53e76ab22cce8edbd7f.png" alt="img"></p>
<p>接着配置 Bilibili 图床</p>
<p><img src="https://i0.hdslb.com/bfs/album/cdfe3d7b91a9e90d70b5b98f73cc210c3e3818af.png" alt="image-20220515095616065"></p>
<p>SESSDATA 可以登录哔哩哔哩后查看</p>
<p>进入哔哩哔哩,按下 F12</p>
<p>定位到应用 -> COOKIE</p>
<p><img src="https://i0.hdslb.com/bfs/album/b9641807e390e3cb6400dfde505d355fed04efe7.png" alt="image-20220515095718144"></p>
<p>选择 <code>https://www.bilibili.com</code></p>
<p><img src="https://i0.hdslb.com/bfs/album/414a2c8e5ac3a5468149e9ba127d0ee4a13567fc.png" alt="image-20220515095812119"></p>
<p>在名称内找到 SESSDATA</p>
<p>点击它</p>
<p><img src="https://i0.hdslb.com/bfs/album/acf7ca1d8eb1dd61ad279ba9d0d261ea46e67052.png" alt="image-20220515100404765"></p>
<p>然后在 Cookie Value 中复制值,粘贴进去</p>
<p>之后确定,设置默认图床即可</p>
<h2 id="良心的处理参数"><a href="#良心的处理参数" class="headerlink" title="良心的处理参数"></a>良心的处理参数</h2><p>哔哩哔哩图床有十分良心的处理参数</p>
<div class="table-container">
<table>
<thead>
<tr>
<th>Type</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>原图</td>
<td>不做更改</td>
</tr>
<tr>
<td>原分辨率, 质量压缩</td>
<td>原链接 + @1e_1c.jpg</td>
</tr>
<tr>
<td>原分辨率, 质量压缩(WEBP)</td>
<td>原链接 + @1e_1c.webp</td>
</tr>
<tr>
<td>规定宽, 高度自适应, 质量压缩(可变 WEBP)</td>
<td>原链接 + @104w_1e_1c.jpg</td>
</tr>
<tr>
<td>规定高, 宽度自适应, 质量压缩(可变 WEBP)</td>
<td>原链接 + @104h_1e_1c.jpg</td>
</tr>
<tr>
<td>规定高宽, 质量压缩(可变 WEBP)</td>
<td>@104w_104h_1e_1c.jpg</td>
</tr>
<tr>
<td>原分辨率(WEBP)</td>
<td>@104w_104h_1e_1c.webp</td>
</tr>
</tbody>
</table>
</div>
<p>这是 哔哩哔哩 的处理参数</p>
<p>哔哩哔哩还有许多节点可以选择</p>
<h2 id="自定义-CDN"><a href="#自定义-CDN" class="headerlink" title="自定义 CDN"></a>自定义 CDN</h2><p>金山 CDN 路线:</p>
<ul>
<li>i0.hdslb.com</li>
<li>i2.hdslb.com</li>
</ul>
<p>阿里 CDN 路线:</p>
<ul>
<li>i1.hdslb.com</li>
<li>14.hdslb.com</li>
<li>s1.hdslb.com</li>
<li>s3.hdslb.com</li>
</ul>
<p>腾讯 CDN 路线:</p>
<ul>
<li>13.hdslb.com</li>
</ul>
<p>未知 CDN 路线:</p>
<ul>
<li>s2.hdslb.com</li>