-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclash-for-windows-parser.html
657 lines (621 loc) · 85.7 KB
/
clash-for-windows-parser.html
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
<!DOCTYPE HTML>
<html lang="zh-Hans">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta name="apple-mobile-web-app-title" content="免费clash节点|科学上网">
<meta http-equiv="Cache-Control" content="no-siteapp">
<title>配置文件预处理 - 免费clash节点|科学上网</title><link rel="preload" data-rocket-preload as="image" href="https://clashbk.github.io/wp-content/uploads/fti/telegram.png" fetchpriority="high">
<meta name="keywords" content="clash for windows,clash for windows">
<meta name="description" content="# 配置文件预处理 # 版本要求 0.10.1 版本更新后,支持使用 JavaScript 对下载后的配置文件进行预处理 0.11.10 版本更新后,支持使用 YAML 对下载后配置文件进行简单预处理 # 简便方法(YAML) 如果需要对下载地址为https://example.c...">
<link rel="shortcut icon" href="https://clashbk.github.io/wp-content/themes/modown/static/img/favicon.ico">
<meta name="robots" content="max-image-preview:large">
<style id="classic-theme-styles-inline-css" type="text/css">
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<link data-minify="1" rel="stylesheet" id="dripicons-css" href="https://clashbk.github.io/wp-content/cache/min/1/dripicons/2.0.0/webfont.min.css?ver=1738555273" type="text/css" media="screen">
<link data-minify="1" rel="stylesheet" id="modown-font-css" href="https://clashbk.github.io/wp-content/cache/min/1/wp-content/themes/modown/static/css/iconfont.css?ver=1738555073" type="text/css" media="screen">
<link data-minify="1" rel="stylesheet" id="modown-base-css" href="https://clashbk.github.io/wp-content/cache/min/1/wp-content/themes/modown/static/css/base.css?ver=1738555073" type="text/css" media="screen">
<script type="text/javascript" src="https://clashbk.github.io/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://clashbk.github.io/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<link rel="https://api.w.org/" href="https://clashbk.github.io/wp-json/"><link rel="alternate" title="JSON" type="application/json" href="https://clashbk.github.io/wp-json/wp/v2/posts/192"><!-- FIFU: meta tags for featured image (begin) -->
<meta property="og:image" content="https://clashbk.github.io/wp-content/uploads/2023/08/8343fb0eb6b4dc4833d7165e871d6f64-18.jpeg">
<!-- FIFU: meta tags for featured image (end) --><meta property="og:title" content="配置文件预处理">
<meta property="og:description" content="">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="配置文件预处理">
<meta name="twitter:description" content=""><meta name="twitter:image" content="https://clashbk.github.io/wp-content/uploads/2023/08/8343fb0eb6b4dc4833d7165e871d6f64-18.jpeg"><!-- ## NXS/OG ## --><!-- ## NXSOGTAGS ## --><!-- ## NXS/OG ## -->
<noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript> <!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//tj.bzshare.com/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
<script>var $ = jQuery;</script>
<style>
:root{--theme-color: #ff5f33;--theme-color2: #ff5f33;--theme-radius: 5px;} .grids .grid h3 a{height: 40px;-webkit-line-clamp:2;}
.grids .audio .title{line-height: 25px;}
.grid > .recommend-tag, .list > .recommend-tag{background: #ffffff !important;}
.grid > .recommend-tag:before, .list > .recommend-tag:before{border-color: transparent transparent #ffffff transparent !important;}
.erphpdown-box, .erphpdown, .article-content .erphpdown-content-vip{background: transparent !important;border: 2px dashed var(--theme-color);}
.erphpdown-box .erphpdown-title{display: inline-block;}
.logo{width:70px;}@media (max-width: 1024px){.logo, .logo a {width: 60px;height: 60px;}}.footer-widget{width:calc(21% - 20px);}@media (max-width: 768px){.footer-widget{width:calc(50% - 20px);margin-bottom:25px}
.footer-widget:first-child{width:calc(100% - 20px);padding-right: 0}
.footer-widget:last-child{width:calc(100% - 20px);padding-left: 0;margin-bottom: 0}}@media (max-width: 768px){.nav-right .nav-vip{display: none;}.sitetips-default{bottom:100px;}
.rollbar{display: none;}.footer-widgets{display: none;}}@media (max-width:480px){}</style><style id="rocket-lazyrender-inline-css">[data-wpr-lazyrender] {content-visibility: auto;}</style></head>
<body class="post-template-default single single-post postid-192 single-format-standard gd-list">
<header class="header">
<div class="container clearfix">
<div class="logo"> <a data-bg="https://clashbk.github.io/wp-content/themes/modown/static/img/logo.png" class="rocket-lazyload" style="" href="https://clashbk.github.io" title="免费clash节点|科学上网">免费clash节点|科学上网</a>
</div>
<ul class="nav-main">
<li id="menu-item-1625" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-1625"><a href="https://clashbk.github.io/category/clashnode">clash节点</a></li>
<li id="menu-item-1626" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-1626"><a href="https://clashbk.github.io/category/kexueshangwang">科学上网</a>
<ul class="sub-menu">
<li id="menu-item-1628" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-1628"><a href="https://clashbk.github.io/category/clashforwindows">clash for windows</a></li>
</ul>
</li>
<li id="menu-item-3727" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-3727"><a href="https://clashbk.github.io/category/netflix-cookies">奈飞Cookies</a></li>
<li id="menu-item-1627" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1627"><a target="_blank" rel="noopener" href="https://xn--6nq44r2uh9rhj7f.org/jichangtuijian/">机场推荐</a></li>
<li id="menu-item-3193" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3193"><a href="https://clashbk.github.io/links">友情链接</a></li>
</ul>
<ul class="nav-right">
<li class="nav-search">
<a href="javascript:;" class="search-loader" title="搜索"><i class="icon icon-search"></i></a>
</li>
<li class="nav-login no"><a href="https://clashbk.github.io/login?redirect_to=https://clashbk.github.io/clash-for-windows-parser.html" class="signin-loader" rel="nofollow"><i class="icon icon-user"></i><span>登录</span></a><b class="nav-line"></b><a href="https://clashbk.github.io/login?action=register&redirect_to=https://clashbk.github.io/clash-for-windows-parser.html" class="signup-loader" rel="nofollow"><span>注册</span></a></li>
<li class="nav-button"><a href="javascript:;" class="nav-loader"><i class="icon icon-menu"></i></a></li>
</ul>
</div>
</header>
<div class="search-wrap">
<div class="container search-wrap-container">
<form action="https://clashbk.github.io/" class="search-form" method="get">
<input autocomplete="off" class="search-input" name="s" placeholder="输入关键字回车" type="text">
<button class="search-btn" type="submit"><i class="icon icon-search"></i>搜索</button>
<i class="icon icon-close"></i>
<input type="hidden" name="cat" class="search-cat-val">
</form>
</div>
</div><div class="main">
<div class="container clearfix">
<div class="breadcrumbs">当前位置:<span><a href="https://clashbk.github.io/" itemprop="url"><span itemprop="title">首页</span></a></span> <span class="sep"><i class="dripicons dripicons-chevron-right"></i></span> <span><a href="https://clashbk.github.io/category/clashforwindows" itemprop="url"><span itemprop="title">clash for windows</span></a></span> <span class="sep"><i class="dripicons dripicons-chevron-right"></i></span> <span class="current">正文</span></div> <div class="content-wrap">
<div class="content">
<article class="single-content">
<div class="article-header"> <h1 class="article-title">配置文件预处理</h1>
<div class="article-meta">
<span class="item"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="item"><i class="icon icon-time"></i> 2023-08-16</span> <span class="item item-cats"><i class="icon icon-cat"></i> <a href="https://clashbk.github.io/category/clashforwindows">clash for windows</a></span> </div>
</div> <div class="article-content clearfix">
<div class="theme-default-content content__default">
<h1 id="配置文件预处理"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E9%A2%84%E5%A4%84%E7%90%86" class="header-anchor">#</a> 配置文件预处理</h1>
<h2 id="版本要求"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82" class="header-anchor">#</a> 版本要求</h2>
<p>0.10.1 版本更新后,支持使用 JavaScript 对下载后的配置文件进行预处理</p>
<p>0.11.10 版本更新后,支持使用 YAML 对下载后配置文件进行简单预处理</p>
<h2 id="简便方法-yaml"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E7%AE%80%E4%BE%BF%E6%96%B9%E6%B3%95-yaml" class="header-anchor">#</a> 简便方法(YAML)</h2>
<p>如果需要对下载地址为<code>https://example.com/profile.yaml</code>的配置文件进行预处理,操作如下:</p>
<ol>
<li>
<p>进入 Settings 界面</p>
</li>
<li>
<p>滚动至 Profiles 栏</p>
</li>
<li>
<p>点击 Parsers 右边 Edit 打开编辑器,填入:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com/profile.yaml
<span class="token key atrule">yaml</span><span class="token punctuation">:</span>
<span class="token key atrule">prepend-rules</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> DOMAIN<span class="token punctuation">,</span>test.com<span class="token punctuation">,</span>DIRECT <span class="token comment"># rules最前面增加一个规则</span>
<span class="token key atrule">append-proxies</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> test <span class="token comment"># proxies最后面增加一个服务</span>
<span class="token key atrule">type</span><span class="token punctuation">:</span> http
<span class="token key atrule">server</span><span class="token punctuation">:</span> 123.123.123.123
<span class="token key atrule">port</span><span class="token punctuation">:</span> <span class="token number">456</span>
</code></pre>
</div>
</li>
<li>
<p>点击编辑器右下角保存按钮</p>
</li>
</ol>
<p>当配置文件触发刷新(包括自动更新)时,CFW 会读取<code>yaml</code>字段定义的值,将对应值插入/合并到原配置文件中</p>
<h3 id="参数说明"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E" class="header-anchor">#</a> 参数说明</h3>
<table>
<thead>
<tr>
<th>键</th>
<th>值类型</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>append-rules</td>
<td>数组</td>
<td>数组合并至原配置<code>rules</code>数组<strong>后</strong></td>
</tr>
<tr>
<td>prepend-rules</td>
<td>数组</td>
<td>数组合并至原配置<code>rules</code>数组<strong>前</strong></td>
</tr>
<tr>
<td>append-proxies</td>
<td>数组</td>
<td>数组合并至原配置<code>proxies</code>数组<strong>后</strong></td>
</tr>
<tr>
<td>prepend-proxies</td>
<td>数组</td>
<td>数组合并至原配置<code>proxies</code>数组<strong>前</strong></td>
</tr>
<tr>
<td>append-proxy-groups</td>
<td>数组</td>
<td>数组合并至原配置<code>proxy-groups</code>数组<strong>后</strong></td>
</tr>
<tr>
<td>prepend-proxy-groups</td>
<td>数组</td>
<td>数组合并至原配置<code>proxy-groups</code>数组<strong>前</strong></td>
</tr>
<tr>
<td>mix-proxy-providers</td>
<td>对象</td>
<td>对象合并至原配置<code>proxy-providers</code>中</td>
</tr>
<tr>
<td>mix-rule-providers</td>
<td>对象</td>
<td>对象合并至原配置<code>rule-providers</code>中</td>
</tr>
<tr>
<td>mix-object</td>
<td>对象</td>
<td>对象合并至原配置最外层中</td>
</tr>
<tr>
<td>commands</td>
<td>数组</td>
<td>在上面操作完成后执行简单命令操作配置文件</td>
</tr>
</tbody>
</table>
<h3 id="commands-使用方法-beta"><a href="https://clashbk.github.io/clash-for-windows-parser.html#commands-%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-beta" class="header-anchor">#</a> Commands 使用方法(beta)</h3>
<p>commands 是一组简单的命令,作为上面操作的补充</p>
<p>例子:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">commands</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> dns.enable=false <span class="token comment"># 命令1</span>
<span class="token punctuation">-</span> proxy<span class="token punctuation">-</span>groups.0.proxies.2+DIRECT <span class="token comment"># 命令2</span>
</code></pre>
</div>
<p>每个命令可以被分为三个部分,分别是:<strong>定位+操作+设定值</strong></p>
<p>命令 1 中,定位是<code>dns.enable</code>,操作是<code>=</code>,设定值是<code>false</code></p>
<p>命令 2 中,定位是<code>proxy-groups.0.proxies.2</code>,操作是<code>+</code>,设定值是<code>DIRECT</code></p>
<h4 id="定位"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%AE%9A%E4%BD%8D" class="header-anchor">#</a> 定位</h4>
<p>定位中每个层级以<code>.</code>分割,数组类型的定位下标由 0 开始计算,命令 2 中<code>proxy-groups.0</code>即表示定位至第 1 个策略组,<code>.proxies</code>表示访问第一个策略组的 proxies 属性,<code>.proxies.2</code>表示 proxies 属性的第 3 个位置</p>
<p>如果不想用序号定位,也可以使用<code>name</code>值定位,<code>proxies</code>以及<code>proxy-groups</code>中的每个项目都会有<code>name</code>属性。例如在<code>proxies</code>中已经定义了名为<code>debug</code>的节点,那么修改其<code>udp</code>参数的定位即为<code>proxies.(debug).udp</code>,名称两边的<code>()</code>是保证识别,如果节点名不包括<code>+</code>、<code>.</code>或<code>=</code>这几个符号,也可以省略不写</p>
<h4 id="操作"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E6%93%8D%E4%BD%9C" class="header-anchor">#</a> 操作</h4>
<p>目前支持三种操作:</p>
<ul>
<li><code>=</code>:覆盖</li>
<li><code>+</code>:插入</li>
<li><code>-</code>:删除</li>
</ul>
<p>命令 1 中,<code>=</code>表示将<code>dns</code>下<code>enable</code>的值覆盖为<code>false</code></p>
<p>命令 2 中,<code>+</code>表示在定位的策略组中的<code>proxies</code>数组中添加一个名为<code>DIRECT</code>的值,原本其他值被向后移动 1 位。如果此处改成<code>=</code>,则会覆盖原来第一个值</p>
<h4 id="设定值"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E8%AE%BE%E5%AE%9A%E5%80%BC" class="header-anchor">#</a> 设定值</h4>
<p>设定值是用于插入或覆盖的值,如果操作是<code>-</code>,则此值可有可无,例如:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">commands</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> proxies.0<span class="token punctuation">-</span> <span class="token comment"># 命令3</span>
</code></pre>
</div>
<p>此处可以将配置文件<code>proxies</code>的第 1 个节点删除</p>
<p>如果设定值为纯数字,则会被识别为整数,为<code>true|false</code>则识别为布尔类型,如果 JSON 编码通过则识别为对象</p>
<p>v0.13.7 版本更新后,支持 3 个内置值用于设置策略组节点,分别是<code>[]proxyNames</code>,<code>[]groupNames</code>和<code>[]shuffledProxyNames</code>,并支持使用正则过滤其中节点,例子如下:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">yaml</span><span class="token punctuation">:</span>
<span class="token key atrule">prepend-proxy-groups</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> myGroup <span class="token comment"># 建立新策略组</span>
<span class="token key atrule">type</span><span class="token punctuation">:</span> fallback
<span class="token key atrule">url</span><span class="token punctuation">:</span> <span class="token string">"http://www.gstatic.com/generate_204"</span>
<span class="token key atrule">interval</span><span class="token punctuation">:</span> <span class="token number">300</span>
<span class="token key atrule">proxies</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> DIRECT
<span class="token key atrule">commands</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> proxy<span class="token punctuation">-</span>groups.myGroup.proxies=<span class="token punctuation">[</span><span class="token punctuation">]</span>proxyNames<span class="token punctuation">|</span>HK <span class="token comment"># 向策略组添加所有定义的节点名,并按“HK”正则表达式过滤</span>
</code></pre>
</div>
<h2 id="进阶方法-javascript"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E8%BF%9B%E9%98%B6%E6%96%B9%E6%B3%95-javascript" class="header-anchor">#</a> 进阶方法(JavaScript)</h2>
<p>如果需要对下载地址为<code>https://example.com/profile.yaml</code>的配置文件进行预处理,操作如下:</p>
<ol>
<li>
<p>进入 Settings 界面</p>
</li>
<li>
<p>滚动至 Profiles 栏</p>
</li>
<li>
<p>点击 Parsers 右边 Edit 打开编辑器,填入:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com/profile.yaml
<span class="token key atrule">code</span><span class="token punctuation">:</span> <span class="token punctuation">|</span><span class="token scalar string">
module.exports.parse = async (raw, { axios, yaml, notify, console }, { name, url, interval, selected }) => {
const obj = yaml.parse(raw)
return yaml.stringify(obj)
}</span>
</code></pre>
</div>
</li>
<li>
<p>点击编辑器右下角保存按钮</p>
</li>
</ol>
<p>当配置文件触发刷新(包括自动更新)时,CFW 会调用此方法对下载的配置文件内容进行处理,再写入本地文件中</p>
<p>当然,parsers 也支持使用路径引入代码:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com/profile.yaml
<span class="token key atrule">file</span><span class="token punctuation">:</span> <span class="token string">"C:/Users/cfw/parser.js"</span>
</code></pre>
</div>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>使用文件时,允许调用该文件目录下的 node_modules 模块</p>
</div>
<p>版本 0.20.10 开始支持从远端获取</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com/profile.yaml
<span class="token key atrule">remote</span><span class="token punctuation">:</span>
<span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//gist.githubusercontent.com/Fndroid/40e6117252f794aa629b875aa1ecadea/raw/d1ba6d230746c9d2ecfbef211c52fd9a567a781e/parser.js
<span class="token key atrule">cache</span><span class="token punctuation">:</span> <span class="token boolean important">true</span> <span class="token comment"># 默认为false,指示是否对重复下载此预处理代码使用缓存</span>
</code></pre>
</div>
<div class="custom-block danger">
<p class="custom-block-title">注意</p>
<p>使用远端配置请选择可信的代码提供者,如不能信任代码提供者,可以从远端拷贝代码然后使用<code>code</code>填入而非使用<code>remote</code>方式引入!</p>
</div>
<h3 id="参数说明-2"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E-2" class="header-anchor">#</a> 参数说明</h3>
<p>CFW 调用用户定义的<code>parse</code>方法时,会传入 3 个参数,分别是<strong>配置文件文本内容</strong>,<strong>工具类对象/方法</strong>以及<strong>配置文件元数据</strong></p>
<h4 id="配置文件文本内容"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%96%87%E6%9C%AC%E5%86%85%E5%AE%B9" class="header-anchor">#</a> 配置文件文本内容</h4>
<p>raw 是一个字符串,一般需要用 yaml 库解析成 JavaScript 对象</p>
<h4 id="工具类对象-方法"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%AF%B9%E8%B1%A1-%E6%96%B9%E6%B3%95" class="header-anchor">#</a> 工具类对象/方法</h4>
<p>包括:</p>
<ul>
<li>axios:网络请求框架,<a href="https://github.com/axios/axios" target="_blank" rel="noopener noreferrer">GitHub<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li>
<li>yaml:yaml 框架,<a href="https://github.com/eemeli/yaml" target="_blank" rel="noopener noreferrer">GitHub<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li>
<li>notify:发出系统通知方法,签名为<code>function notify(title:string, message:string, silent:bool)</code></li>
<li>console:日志输出至文件,方便调试,在 Settings 界面中 Parser 设置下方打开</li>
<li>homeDir:Home Directory 目录</li>
</ul>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>除了以上工具类,在使用<code>.js</code>文件时,也可以通过<code>npm</code>引入第三方模块</p>
</div>
<h4 id="配置文件元数据"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%85%83%E6%95%B0%E6%8D%AE" class="header-anchor">#</a> 配置文件元数据</h4>
<p>元数据为 JavaScript 对象,包括:</p>
<ul>
<li>name:名称</li>
<li>url:下载地址</li>
<li>interval:更新周期</li>
<li>selected:策略组选择缓存,数组</li>
<li>mode:模式缓存</li>
</ul>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>元数据在配置文件首次下载时只有 url 参数</p>
</div>
<h3 id="返回说明"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E8%BF%94%E5%9B%9E%E8%AF%B4%E6%98%8E" class="header-anchor">#</a> 返回说明</h3>
<p><code>parse</code>方法需要返回一个字符串,CFW 会将返回的字符串存入对应的配置文件中</p>
<h2 id="多处理器及正则匹配"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%A4%9A%E5%A4%84%E7%90%86%E5%99%A8%E5%8F%8A%E6%AD%A3%E5%88%99%E5%8C%B9%E9%85%8D" class="header-anchor">#</a> 多处理器及正则匹配</h2>
<h3 id="正则匹配"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E6%AD%A3%E5%88%99%E5%8C%B9%E9%85%8D" class="header-anchor">#</a> 正则匹配</h3>
<p>上面例子中,使用<code>url</code>匹配配置文件地址,如果一个处理器需要处理多个配置文件,也可以使用正则表达式进行匹配,使用关键字<code>reg</code>设置</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">reg</span><span class="token punctuation">:</span> ^https<span class="token punctuation">:</span>//test\.com/.+$ <span class="token comment"># 正则匹配域名</span>
<span class="token key atrule">yaml</span><span class="token punctuation">:</span>
<span class="token key atrule">prepend-rules</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> DOMAIN<span class="token punctuation">,</span>test.com<span class="token punctuation">,</span>DIRECT
</code></pre>
</div>
<h3 id="多处理器"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%A4%9A%E5%A4%84%E7%90%86%E5%99%A8" class="header-anchor">#</a> 多处理器</h3>
<p>parser 定义的数组支持多个处理器从上至下按顺序执行,例如:</p>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token key atrule">reg</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//test.com.+$ <span class="token comment"># 第一个执行的parser</span>
<span class="token key atrule">file</span><span class="token punctuation">:</span> <span class="token string">"C:/Users/cfw/parser.yaml"</span>
<span class="token punctuation">-</span> <span class="token key atrule">url</span><span class="token punctuation">:</span> https<span class="token punctuation">:</span>//example.com/profile.yaml <span class="token comment"># 对上一个parser执行的结果进行处理</span>
<span class="token key atrule">file</span><span class="token punctuation">:</span> <span class="token string">"C:/Users/cfw/parser.js"</span>
</code></pre>
</div>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>file 同时支持 yaml 及 js 格式的文件</p>
</div>
<h2 id="使用案例"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B" class="header-anchor">#</a> 使用案例</h2>
<h3 id="向本地配置文件添加订阅信息"><a href="https://clashbk.github.io/clash-for-windows-parser.html#%E5%90%91%E6%9C%AC%E5%9C%B0%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E8%AE%A2%E9%98%85%E4%BF%A1%E6%81%AF" class="header-anchor">#</a> 向本地配置文件添加订阅信息</h3>
<ol>
<li>准备一个本地配置文件的副本,记下文件名和路径。为方便后续说明,以下用<code>myprofile.yml</code>指代此文件名,用<code>C:\...\myprofile.yml</code>指代此文件路径。</li>
</ol>
<div class="custom-block tip">
<p class="custom-block-title">NOTICE</p>
<p>配置完成后,此副本文件将作为 CFW 配置文件的订阅源使用,对配置文件的<strong>非临时性</strong>修改需要在此副本文件中进行编辑,并在修改后执行订阅更新。移动、重命名此文件后需要修改 CFW 中相应的配置选项。</p>
</div>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>此处使用 CFW 创建的配置文件本身而非副本作为订阅源虽然可以实现相同的功能,但无法保证运行时的可靠性,如果没有特殊情况不建议这样使用。</p>
</div>
<ol start="2">
<li>准备一个包含订阅信息<a href="https://clashbk.github.io/clash-for-windows-urlscheme.html#subscription-userinfo" target="_blank" rel="noopener noreferrer"><code>subscription-userinfo</code><span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewbox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>的订阅链接。为方便后续说明,以下用<code>https://example.com/subscription_url</code>指代此订阅链接。</li>
</ol>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>可使用<code>curl -I 'https://example.com/subscription_url'</code>检查订阅链接是否包含订阅信息。</p>
</div>
<ol start="3">
<li>
<p>修改 CFW 中的配置文件选项,在<code>URL</code>中填写副本文件的本地映射地址<code>file:///C:\...\myprofile.yml</code>。保存后执行订阅更新并确保没有报错。</p>
</li>
<li>
<p>添加对应的预处理脚本,并确保正常匹配到配置文件。</p>
</li>
</ol>
<div class="language-yaml extra-class">
<pre class="language-yaml"><code><span class="token key atrule">parsers</span><span class="token punctuation">:</span> <span class="token comment"># array</span>
<span class="token punctuation">-</span> <span class="token key atrule">reg</span><span class="token punctuation">:</span> <span class="token string">"myprofile.yml"</span>
<span class="token key atrule">code</span><span class="token punctuation">:</span> <span class="token punctuation">|</span><span class="token scalar string">
module.exports.parse = async (raw, { axios, yaml, notify, console }) => {
raw = raw.replace(/# upload=\d*; download=\d*; total=\d*; expire=\d*;*\n/gm,'')
const url = 'https://example.com/subscription_url'
let { headers:{"subscription-userinfo": si = ""}={}, status } = await axios.head(url)
si = si.replace(/;*$/g,'')
if (status === 200 && si) {
return `# ${si};\n${raw}`
}
return raw
}</span>
</code></pre>
</div>
<ol start="5">
<li>执行订阅更新,配置文件模块中出现订阅信息即说明配置成功。</li>
</ol>
<div class="custom-block tip">
<p class="custom-block-title">TIP</p>
<p>配置完成后可自行设置自动更新选项。</p>
</div>
</div>
<div class="article-copyright"><i class="icon icon-warning1"></i> 原文链接:<a href="https://clashbk.github.io/clash-for-windows-parser.html">https://clashbk.github.io/clash-for-windows-parser.html</a>,转载请注明出处。 </div> </div>
<div class="article-act">
<a href="javascript:;" class="article-collect signin-loader" title="收藏"><i class="icon icon-star"></i> <span>0</span></a>
<a href="javascript:;" class="article-zan" data-id="192"><i class="icon icon-zan"></i> <span>0</span></a>
</div>
<div class="article-tags"><a href="https://clashbk.github.io/tag/clash-for-windows" rel="tag">clash for windows</a></div> <div class="article-shares"><a href="javascript:;" data-url="https://clashbk.github.io/clash-for-windows-parser.html" class="share-weixin"><i class="icon icon-weixin"></i></a><a data-share="qzone" class="share-qzone" data-url="https://clashbk.github.io/clash-for-windows-parser.html"><i class="icon icon-qzone"></i></a><a data-share="weibo" class="share-tsina" data-url="https://clashbk.github.io/clash-for-windows-parser.html"><i class="icon icon-weibo"></i></a><a data-share="qq" class="share-sqq" data-url="https://clashbk.github.io/clash-for-windows-parser.html"><i class="icon icon-qq"></i></a><a data-share="douban" class="share-douban" data-url="https://clashbk.github.io/clash-for-windows-parser.html"><i class="icon icon-douban"></i></a></div> </article>
<nav class="article-nav">
<span class="article-nav-prev">上一篇<br><a href="https://clashbk.github.io/clash-for-windows-actions.html" rel="prev">Actions</a></span>
<span class="article-nav-next">下一篇<br><a href="https://clashbk.github.io/clash-for-windows-mixin.html" rel="next">Mixin</a></span>
</nav>
<div class="single-related"><h3 class="related-title"><i class="icon icon-related"></i> 猜你喜欢</h3><div class="lists cols-title relateds clearfix"><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-tutorial-directory.html" title="Clash for Windows教程目录" target="">Clash for Windows教程目录</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-ui-general.html" title="常规 General" target="">常规 General</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-ui-proxies.html" title="代理 Proxies" target="">代理 Proxies</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-2.html" title="Profiles 配置" target="">Profiles 配置</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-ui-connections.html" title="连接 Connections" target="">连接 Connections</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div><div class="post list noimg">
<div class="con">
<h3 itemprop="name headline"><a itemprop="url" rel="bookmark" href="https://clashbk.github.io/clash-for-windows-ui-logs.html" title="日志 Logs" target="">日志 Logs</a></h3>
<div class="list-meta clearfix">
<span class="author"><i class="icon icon-user"></i> <a target="_blank" href="https://clashbk.github.io/author/aiboboxx" class="avatar-link">clashgithub</a></span> <span class="time"><i class="icon icon-time"></i> 2023-08-16</span> </div>
</div>
</div></div></div> <div class="single-comment">
<h3 class="comments-title" id="comments">
<i class="icon icon-comments"></i> 评论<small>0</small>
</h3>
<div id="respond" class="comments-respond no_webshot">
<div class="comment-signarea">请先 <a href="javascript:;" class="signin-loader">登录</a></div>
</div>
</div>
</div>
</div>
<aside class="sidebar">
<div class="theiaStickySidebar">
<div class="widget widget_block"><h5 class="widget-title">加入组织</h5>
<a href="https://t.me/s/v2raydailyupdate"><img fetchpriority="high" decoding="async" class="image entered lazyloaded" src="https://clashbk.github.io/wp-content/uploads/fti/telegram.png" alt="" width="800" height="230" data-lazy-src="https://clashbk.github.io/wp-content/uploads/fti/telegram.png" data-ll-status="loaded"></a>
<a href="https://www.youtube.com/@clashnode622"><img decoding="async" class="image entered lazyloaded" src="https://clashbk.github.io/wp-content/uploads/fti/youtube.png" alt="" width="800" height="230" data-lazy-src="https://clashbk.github.io/wp-content/uploads/fti/youtube.png" data-ll-status="loaded"></a></div><div class="widget widget-postlist"><h3><i class="icon icon-posts"></i> 热评文章</h3><ul class="clearfix hasimg"> <li>
<a href="https://clashbk.github.io/clashnode-20231015.html" title="「10月15日」2023年最新高速13.6M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="「10月15日」2023年最新高速13.6M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/cover6-1-qws2q3tej2rsldiy4jei91xfcx8ska55we1k9y25lg.jpg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover6-1-qws2q3tej2rsldiy4jei91xfcx8ska55we1k9y25lg.jpg" class="thumb" alt="「10月15日」2023年最新高速13.6M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clashnode-20231015.html" target="" title="「10月15日」2023年最新高速13.6M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「10月15日」2023年最新高速13.6M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2023-10-15</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20241215.html" title="「12月15日」2024年最新高速8.2M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="「12月15日」2024年最新高速8.2M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/cover6-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover6-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg" class="thumb" alt="「12月15日」2024年最新高速8.2M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clashnode-20241215.html" target="" title="「12月15日」2024年最新高速8.2M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「12月15日」2024年最新高速8.2M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2024-12-15</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20231201.html" title="「12月01日」2023年最新高速10.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover1-qws2q9gfo2zij1ar7lu9o0i6x8gzugrjx5yh5ltsk4.jpg" class="thumb" alt="「12月01日」2023年最新高速10.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">
</a>
<h4><a href="https://clashbk.github.io/clashnode-20231201.html" target="" title="「12月01日」2023年最新高速10.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「12月01日」2023年最新高速10.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2023-12-01</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/quantumult.html" title="最新 Quantumult 使用教程快速入门篇" target="" rel="bookmark" class="img">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" class="thumb" alt="最新 Quantumult 使用教程快速入门篇" data-lazy-src="https://image.bzshare.com/2023/09/02/110f2dca15a2c2a5507186f7eb0d0a3d-61cf31.jpg"><noscript><img src="https://image.bzshare.com/2023/09/02/110f2dca15a2c2a5507186f7eb0d0a3d-61cf31.jpg" class="thumb" alt="最新 Quantumult 使用教程快速入门篇"></noscript>
</a>
<h4><a href="https://clashbk.github.io/quantumult.html" target="" title="最新 Quantumult 使用教程快速入门篇">最新 Quantumult 使用教程快速入门篇</a></h4>
<p class="meta">
<span class="time">2023-09-10</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20240327.html" title="「03月27日」2024年最新高速12.9M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="285" height="180" src="https://clashbk.github.io/wp-content/themes/modown/static/img/thumbnail.png" class="thumb" alt="「03月27日」2024年最新高速12.9M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">
</a>
<h4><a href="https://clashbk.github.io/clashnode-20240327.html" target="" title="「03月27日」2024年最新高速12.9M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「03月27日」2024年最新高速12.9M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2024-03-27</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clash-for-windows-mixin.html" title="Mixin" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="Mixin" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/8343fb0eb6b4dc4833d7165e871d6f64-19-qazybw6jzd6a4azl3eae5ot0kh6er7einfspxqv2z8.jpeg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/8343fb0eb6b4dc4833d7165e871d6f64-19-qazybw6jzd6a4azl3eae5ot0kh6er7einfspxqv2z8.jpeg" class="thumb" alt="Mixin"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clash-for-windows-mixin.html" target="" title="Mixin">Mixin</a></h4>
<p class="meta">
<span class="time">2023-08-16</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20241227.html" title="「12月27日」2024年最新高速8.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="「12月27日」2024年最新高速8.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/cover0-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover0-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg" class="thumb" alt="「12月27日」2024年最新高速8.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clashnode-20241227.html" target="" title="「12月27日」2024年最新高速8.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「12月27日」2024年最新高速8.1M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2024-12-27</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20241208.html" title="「12月08日」2024年最新高速12.7M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="「12月08日」2024年最新高速12.7M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/cover8-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover8-pznvx8loab0r5xvqu299zbhl2mggut2xvxf74cxjv8.jpg" class="thumb" alt="「12月08日」2024年最新高速12.7M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clashnode-20241208.html" target="" title="「12月08日」2024年最新高速12.7M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「12月08日」2024年最新高速12.7M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2024-12-08</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/quantumultx.html" title="最新 Quantumultx 使用教程快速入门篇" target="" rel="bookmark" class="img">
<img src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" class="thumb" alt="最新 Quantumultx 使用教程快速入门篇" data-lazy-src="https://image.bzshare.com/2023/09/10/35c8f82abff0602fe88f4d50cbfd4260-5e33de.jpg"><noscript><img src="https://image.bzshare.com/2023/09/10/35c8f82abff0602fe88f4d50cbfd4260-5e33de.jpg" class="thumb" alt="最新 Quantumultx 使用教程快速入门篇"></noscript>
</a>
<h4><a href="https://clashbk.github.io/quantumultx.html" target="" title="最新 Quantumultx 使用教程快速入门篇">最新 Quantumultx 使用教程快速入门篇</a></h4>
<p class="meta">
<span class="time">2023-09-10</span> </p>
</li>
<li>
<a href="https://clashbk.github.io/clashnode-20231109.html" title="「11月09日」2023年最新高速14.8M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" target="" rel="bookmark" class="img">
<img width="105" height="66" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20105%2066'%3E%3C/svg%3E" class="thumb" alt="「11月09日」2023年最新高速14.8M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子" data-lazy-src="https://clashbk.github.io/wp-content/uploads/cache/cover0-qws2q6mx3kvnk7euo2mdyj7t52uw7dgcws00prxz2s.jpg"><noscript><img width="105" height="66" src="https://clashbk.github.io/wp-content/uploads/cache/cover0-qws2q6mx3kvnk7euo2mdyj7t52uw7dgcws00prxz2s.jpg" class="thumb" alt="「11月09日」2023年最新高速14.8M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子"></noscript>
</a>
<h4><a href="https://clashbk.github.io/clashnode-20231109.html" target="" title="「11月09日」2023年最新高速14.8M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子">「11月09日」2023年最新高速14.8M/S免费节点,免费公益SSR/V2ray/Shadowrocket/Clash节点/小火箭订阅链接|科学上网|免费梯子</a></h4>
<p class="meta">
<span class="time">2023-11-09</span> </p>
</li>
</ul></div><div class="widget widget-tags"><h3><i class="icon icon-tag"></i> 热门标签</h3><div class="items"><a href="https://clashbk.github.io/tag/clash">Clash</a><a href="https://clashbk.github.io/tag/%e7%a7%91%e5%ad%a6%e4%b8%8a%e7%bd%91%e5%b7%a5%e5%85%b7">科学上网工具</a><a href="https://clashbk.github.io/tag/clash-for-windows">clash for windows</a><a href="https://clashbk.github.io/tag/%e7%a7%91%e5%ad%a6%e4%b8%8a%e7%bd%91">科学上网</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e6%9c%ba%e5%9c%ba">免费机场</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e8%8a%82%e7%82%b9">免费节点</a><a href="https://clashbk.github.io/tag/%e6%9c%ba%e5%9c%ba%e8%ae%a2%e9%98%85">机场订阅</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e6%a2%af%e5%ad%90">免费梯子</a><a href="https://clashbk.github.io/tag/%e6%80%a7%e4%bb%b7%e6%af%94%e6%9c%ba%e5%9c%ba">性价比机场</a><a href="https://clashbk.github.io/tag/v2rayng">v2rayng</a><a href="https://clashbk.github.io/tag/%e5%b0%8f%e7%81%ab%e7%ae%ad">小火箭</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9vpn">免费vpn</a><a href="https://clashbk.github.io/tag/clash-github">clash github</a><a href="https://clashbk.github.io/tag/shadowsocks">shadowsocks</a><a href="https://clashbk.github.io/tag/%e4%b8%80%e5%85%83%e6%9c%ba%e5%9c%ba">一元机场</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e5%8a%a0%e9%80%9f%e5%99%a8">免费加速器</a><a href="https://clashbk.github.io/tag/v2ray">v2ray</a><a href="https://clashbk.github.io/tag/clash%e5%85%8d%e8%b4%b9%e8%8a%82%e7%82%b9">clash免费节点</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9clash%e8%8a%82%e7%82%b9">免费clash节点</a><a href="https://clashbk.github.io/tag/v2ray%e8%8a%82%e7%82%b9">v2ray节点</a><a href="https://clashbk.github.io/tag/clash%e8%8a%82%e7%82%b9">clash节点</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e5%a5%88%e9%a3%9e">免费奈飞</a><a href="https://clashbk.github.io/tag/netflix-cookies">netflix cookies</a><a href="https://clashbk.github.io/tag/%e5%85%8d%e8%b4%b9%e5%a5%88%e9%a3%9ecookies">免费奈飞cookies</a><a href="https://clashbk.github.io/tag/%e5%a5%88%e9%a3%9e%e5%85%8d%e8%b4%b9cookies">奈飞免费cookies</a></div></div> </div>
</aside> </div>
</div>
<footer data-wpr-lazyrender="1" class="footer">
<div class="container">
<div class="copyright"><p>Copyright © 2022 <a href="https://clashbk.github.io">ClashGithub.com</a> Powered by WordPress</p>
</div>
</div>
</footer>
<div class="rollbar">
<ul>
<li><a href="javascript:;" class="fullscreen"><i class="icon icon-fullscreen"></i></a><h6>全屏浏览<i></i></h6></li> <li><a href="javascript:;" class="theme_night"><i class="icon icon-moon" style="top:0"></i></a><h6>夜间模式<i></i></h6></li> <li><a href="javascript:zh_tran2();" class="zh_click"><i class="icon icon-fan" style="top:0"></i></a><h6>繁简切换<i></i></h6></li> <li class="totop-li"><a href="javascript:;" class="totop"><i class="icon icon-arrow-up"></i></a><h6>返回顶部<i></i></h6></li>
</ul>
</div>
<div class="footer-fixed-nav clearfix">
<a href="https://clashbk.github.io"><i class="icon icon-home"></i><span>首页</span></a>
<a href="https://clashbk.github.io/all"><i class="icon icon-find"></i><span>发现</span></a>
<a href="https://clashbk.github.io/vip" class="special"><i class="icon icon-crown"></i><span>VIP</span></a>
<a href="https://clashbk.github.io/login" class="footer-fixed-nav-user signin-loader"><i class="icon icon-user"></i><span>我的</span></a>
<!--div class="footer-nav-trigger"><i class="icon icon-arrow-down"></i></div-->
</div>
<div class="sign">
<div class="sign-mask"></div>
<div class="sign-box">
<div class="sign-tips"></div>
<form id="sign-in">
<div class="form-item" style="text-align:center"><a href="https://clashbk.github.io"><img class="logo-login" src="http://demo.mobantu.com/modown/wp-content/themes/modown/static/img/logo.png" alt="免费clash节点|科学上网"></a></div>
<div class="form-item"><input type="text" name="user_login" class="form-control" id="user_login" placeholder="用户名/邮箱"><i class="icon icon-user"></i></div>
<div class="form-item"><input type="password" name="password" class="form-control" id="user_pass" placeholder="密码"><i class="icon icon-lock"></i></div>
<div class="sign-submit">
<input type="button" class="btn signinsubmit-loader" name="submit" value="登录">
<input type="hidden" name="action" value="signin">
</div>
<div class="sign-trans">没有账号?<a href="javascript:;" class="erphp-reg-must">注册</a> <a href="https://clashbk.github.io/login?action=password&redirect_to=https://clashbk.github.io/clash-for-windows-parser.html" rel="nofollow" target="_blank">忘记密码?</a></div>
</form>
<form id="sign-up" style="display: none;">
<div class="form-item" style="text-align:center"><a href="https://clashbk.github.io"><img class="logo-login" src="http://demo.mobantu.com/modown/wp-content/themes/modown/static/img/logo.png" alt="免费clash节点|科学上网"></a></div>
<div class="form-item"><input type="text" name="name" class="form-control" id="user_register" placeholder="用户名"><i class="icon icon-user"></i></div>
<div class="form-item"><input type="email" name="email" class="form-control" id="user_email" placeholder="邮箱"><i class="icon icon-mail"></i></div>
<div class="form-item"><input type="password" name="password2" class="form-control" id="user_pass2" placeholder="密码"><i class="icon icon-lock"></i></div>
<div class="sign-submit">
<input type="button" class="btn signupsubmit-loader" name="submit" value="注册">
<input type="hidden" name="action" value="signup">
</div>
<div class="sign-trans">已有账号? <a href="javascript:;" class="modown-login-must">登录</a></div>
</form>
</div>
</div>
<script>var zh_autoLang_t=false;var zh_autoLang_s=true;</script><script data-minify="1" src="https://clashbk.github.io/wp-content/cache/min/1/wp-content/themes/modown/static/js/chinese.js?ver=1738555074"></script><script>
window._MBT = {uri: 'https://clashbk.github.io/wp-content/themes/modown', child: 'https://clashbk.github.io/wp-content/themes/modown', urc: '1', uru: '1', url:'https://clashbk.github.io', urg: '1', usr: 'https://clashbk.github.io/user', roll: [], admin_ajax: 'https://clashbk.github.io/wp-admin/admin-ajax.php', erphpdown: '', image: '0.6316', hanimated: '0', fancybox: '0', anchor: '0', loading: '', nav: '0', iframe: '1', video_full: '0',tuan: '0',down_fixed: '0'};</script>
<script>console.log("\n %c 本站由WPOPT插件优化 %c www.lovestu.com/wpopt.html", "color:#fff;background:#3983e2;padding:5px 0;", "color:#eee;background:#f0f0f0;padding:5px 10px;");</script><script type="text/javascript" id="rocket-browser-checker-js-after">
/* <![CDATA[ */
"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}();
/* ]]> */
</script>
<script type="text/javascript" id="rocket-preload-links-js-extra">
/* <![CDATA[ */
var RocketPreloadLinksConfig = {"excludeUris":"\/|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/clashbk.github.io","onHoverDelay":"100","rateThrottle":"3"};
/* ]]> */
</script>
<script type="text/javascript" id="rocket-preload-links-js-after">
/* <![CDATA[ */
(function() {
"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run();
}());
/* ]]> */
</script>
<script data-minify="1" type="text/javascript" src="https://clashbk.github.io/wp-content/cache/min/1/wp-content/themes/modown/static/js/lib.js?ver=1738555074" id="modown-lib-js"></script>
<script type="text/javascript" src="https://clashbk.github.io/wp-content/themes/modown/static/js/fancybox.min.js" id="modown-fancybox-js"></script>
<script type="text/javascript" src="https://clashbk.github.io/wp-content/themes/modown/static/js/layer.min.js" id="modown-layer-js"></script>
<script data-minify="1" type="text/javascript" src="https://clashbk.github.io/wp-content/cache/min/1/wp-content/themes/modown/static/js/base.js?ver=1738555074" id="modown-base-js"></script>
<script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue}
if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue}
images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1}
if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://clashbk.github.io/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script><script>MOBANTU.init({ias: 0, lazy: 1, plazy: 0, water: 0, mbf: 0, mpf: 0, mpfp: 0});</script>
<div class="analysis"></div>
</body></html><!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1739615779 -->
<!-- Powered by Staatic (https://staatic.com/) -->