PageSourceSearch

https://www.toponad.net/en/posts

html toponad.net collected 2026-09-29 11:34:14 UTC 57,267 bytes, 1,221 lines download raw bytes

1<!doctype html>
2<html lang="en">
3    <head>
4        <meta charset="utf-8">
5        <meta http-equiv="X-UA-Compatible" content="IE=edge">
6        <meta name="viewport" content="width=device-width, initial-scale=1">
7        
8                    <title>TopOn | Boost Your Monetization Revenue of Mobile Ads</title>
9                
10                    <meta name="keywords" content="TopOn, Mediation Monetization, Mediation Platform,Advertising Monetization, Mobile Game Monetization, App Monetization, Mobile Monetization, Game Monetization, Overseas Monetization, Developer Monetization, Overseas Advertising Monetization, Advertising Mediation Platform, Advertising Space Optimization Management, Mobile Advertising Mediation Management Tool, Game Advertising Mediation, Overseas Mobile Game Advertising Monetization, iOS Advertising, Android Advertising, Unity Advertising, Cocos Advertising, Rewarded Video Advertising Mediation, Advertising Monetization Revenue Monitoring.">
11                
12                    <meta name="description" content="Description">
13                <meta name="google-site-verification" content="FZ-hFP1MSO8RlZCJ7_eZ6duEcF-XE9wNZxVF6LQbjko" />
14        
15
16        <link rel="icon" href="/favicon.ico?t=202107231550" type="image/x-icon" />
17        <link rel="shortcut icon" href="/favicon.ico?t=202107231550" type="image/x-icon" />
18        <!-- Styles -->
19        <link href="https://www.toponad.net/css/bootstrap.4.min.css" rel="stylesheet">
20        <link href="https://www.toponad.net/css/swiper.min.css" rel="stylesheet">
21
22        <link href="https://www.toponad.net/css/subscribe.css" rel="stylesheet">
23        <link href="https://www.toponad.net/css/index.css?t=2025012302" rel="stylesheet">
24        <link href="https://www.toponad.net/css/sale-smartly.css" rel="stylesheet">
25        <style>
26            .Notice {
27                width:1920px;
28                height:35px;
29                background:rgba(255,255,255,1);
30                background-color:#FFFFFF;
31                position:absolute;
32                left:0px;
33                top:71px;
34
35            }
36            .Notice__neiron {
37                position:relative;
38                /* background-color:red; */
39                height:100%
40            }
41
42            .Notice__wenzi {
43                height:14px;
44                font-size:14px;
45                font-family:PingFang SC;
46                font-weight:400;
47                color:rgba(102,102,102,1);
48                line-height:30px;
49                display:block;
50            }
51
52            .Notice__wenhao {
53                width:16px;
54                height:16px;
55                background-color:#FFB400;
56                display:block;
57                position:absolute;
58                left:-12px;
59                top:8px;
60                border-radius:50%;
61                text-align:center;
62                line-height:16px; 
63                color:#FFFFFF
64                
65            }
66            .Notice__chayue {
67                position:absolute;
68                left:363px;
69                top:4px;
70                height:16px;
71                font-size:16px;
72                display:block;
73                width:60px;
74                height:16px;
75            }
76            
77        </style>
78    </head>
79    <body class="en">
80        <header>         
81            <div class="container">
82                <nav class="navbar navbar-expand">
83                    <a class="navbar-brand my-0 font-weight-normal logo" href="/"></a>
84                    <ul class="navbar-nav">
85                        <li class="nav-item">
86                            <a class="menu" href="https://www.toponad.net/en">
87                                Home
88                                                            </a>
89                        </li>
90
91                        
92                                                    <li class="nav-item">
93                                <a class="menu" href="https://www.toponad.net/en/monetization">
94                                    MONETIZATION
95                                                                    </a>
96                            </li>
97                            <li class="nav-item">
98                                <a class="menu" href="https://www.toponad.net/en/mediation">
99                                    MEDIATION
100                                                                    </a>
101                            </li>
102                            <li class="nav-item">
103                                <a class="menu" href="https://www.toponad.net/en/statistics">
104                                    STATISTICS
105                                                                    </a>
106                            </li>
107                            
108                        
109                        <li class="nav-item">
110                            <a class="menu" href="https://www.toponad.net/en/posts">
111                                BLOG
112                                                                    <div class="menu--active__underline"></div>
113                                                            </a>
114                        </li>
115                        <li class="nav-item">
116                            <a class="menu scroll-to--about-topon" href="javascript:void(0)">
117                                CONTACT US
118                                                            </a>
119                        </li>
120
121                        <li class="nav-item">
122                            <a class="menu" href="https://www.toponad.net/en/jobs">
123                                Join Us
124                                                            </a>
125                        </li>
126                    </ul>
127                    
128                    <ul class="navbar-nav ml-auto">
129                        <li class="nav-item">
130                            <a class="menu" target="_blank" href="https://portal.toponad.net/m/login">
131                                Login
132                            </a>
133                        </li>
134                        <li class="nav-item d-flex align-items-center">
135                            <a class="menu menu--register transition3" target="_blank" href="https://portal.toponad.net/m/register">
136                                Sign up
137                            </a>
138                        </li>
139
140                    </ul>
141                </nav>
142            </div>
143            <!-- Notice -->
144                        
145                            <div class="notice-container">
146                    <input id="notice-switch" type="checkbox"  checked="checked" >
147                    <div class="notice transition5">
148                        <span class="notice__icon">!</span>
149                        <p class="notice__content">Report|TopOn GLOBAL MOBILE GAMES ADVERTISING MONETIZATION REPORT_H1 2026</p>
150                        <a class="notice__link" href="https://www.toponad.net/en/report/300000291.html">Read>></a>
151                        <div class="notice__filler"></div>
152                        <label class="notice__close" for="notice-switch" onclick="onNoticeClose()"></label>
153                    </div>
154                </div>
155
156                
156<script>
157                  function onNoticeClose() {
158                    window.location.href="https://www.toponad.net/en/notice-close";
159                  }
160                </script>
160
161                        
162        </header>
163        <div class="modal fade" id="loadingModal" tabindex="-1" role="dialog" aria-hidden="true">
164          <div class="modal-dialog modal-dialog-centered" role="document">
165            <div class="modal-content">
166              <div class="modal-body">
167                <div class="text-center">
168                  <div class="spinner-border text-primary" role="status">
169                    <span class="sr-only"></span>
170                  </div>
171                </div>
172              </div>
173            </div>
174          </div>
175        </div>
176
177        
177<script>
178          function hideLoading () {
179            $('#loadingModal').modal('hide');
180            $('#loadingModal').hide().removeClass('show');
181            $('.modal-backdrop').remove();
182            $('body').removeClass('modal-open');
183          }
184        </script>
184    <div class="page-body">
185        <div class="blog-container">
186            <div class="blog">
187                                    <input class="blog__tab" id="tab-0" type="radio" name="tab-group" value="0"  checked="checked" />
188                    <label class="blog__label text-unselectable" for="tab-0" style="width: 25%">NEWS</label>
189                                    <input class="blog__tab" id="tab-1" type="radio" name="tab-group" value="1" />
190                    <label class="blog__label text-unselectable" for="tab-1" style="width: 25%">MARKET</label>
191                                    <input class="blog__tab" id="tab-2" type="radio" name="tab-group" value="2" />
192                    <label class="blog__label text-unselectable" for="tab-2" style="width: 25%">APP MONETIZATION</label>
193                                    <input class="blog__tab" id="tab-3" type="radio" name="tab-group" value="3" />
194                    <label class="blog__label text-unselectable" for="tab-3" style="width: 25%">INSIGHT</label>
195                                <div class="blog__content">
196                                                                    <div class="blog__content__div blog__content__div-0">
197                            <div class="blog__content__item__wrapper">
198                                                                    <div class="blog__content__item">
199                                        <div class="blog__content__item__img" style="background-image:url('https://new-img-tpn.toponad.com/posts/2026/08/05/b135805fb90a355e4348143d3808465b.png');"></div>
200                                        <div class="blog__content__item__content">
201                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/300000290.html">
202                                                Yandex Ads x TopOn: Driving 166% revenue growth through global demand expansion
203                                            </a>
204                                            <p class="blog__content__item__content__excerpt">
205                                                Yandex Ads and TopOn are expanding their collaboration, connecting advertisers and publishers across global mobile markets tounlock greater monetization potential through broader advertiser reach and ongoing performance optimization.About the partnershipTopOn isaglobal mobile mediation platform that...
206                                            </p>
207                                            <div class="blog__content__item__content__spread"></div>
208                                            <div class="blog__content__item__content__info">
209                                                                                                <span>2026-08-05</span>
210                                            </div>
211                                        </div>
212                                    </div>
213                                                                    <div class="blog__content__item">
214                                        <div class="blog__content__item__img" style="background-image:url('https://new-img-tpn.toponad.com/posts/2026/07/23/8a9345764301973d8995b7d3c74e7fba.jpg');"></div>
215                                        <div class="blog__content__item__content">
216                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/300000289.html">
217                                                TopOn partners with Display.io SDK, Unlocking Incremental Revenue for Mobile App Publishers
218                                            </a>
219                                            <p class="blog__content__item__content__excerpt">
220                                                TopOn is thrilled to announce integration with Display.io, enabling publishers worldwide to access Display.io&amp;rsquo;s exclusive brand demand through the Display.ioSDK.Expanding Monetization Through Exclusive Demand and Signal-Enriched SupplyFounded in 2017, Display.io is a global in-app supply-side...
221                                            </p>
222                                            <div class="blog__content__item__content__spread"></div>
223                                            <div class="blog__content__item__content__info">
224                                                                                                <sp
224an>2026-07-23</span>
225                                            </div>
226                                        </div>
227                                    </div>
228                                                                    <div class="blog__content__item">
229                                        <div class="blog__content__item__img" style="background-image:url('https://new-img.toponad.com/posts/2026/06/26/67d6e5948b3d5764bfbd6e06c6b44505.jpg');"></div>
230                                        <div class="blog__content__item__content">
231                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/477.html">
232                                                Start.io x TopOn | Scaling Mobile App Revenue Through Full-Stack Integration
233                                            </a>
234                                            <p class="blog__content__item__content__excerpt">
235                                                
236                                            </p>
237                                            <div class="blog__content__item__content__spread"></div>
238                                            <div class="blog__content__item__content__info">
239                                                                                                <span>2026-06-26</span>
240                                            </div>
241                                        </div>
242                                    </div>
243                                                                    <div class="blog__content__item">
244                                        <div class="blog__content__item__img" style="background-image:url('https://new-img-tpn.toponad.com/posts/2026/06/17/f1b6ac67e77da05f851ed98b17cae08c.png');"></div>
245                                        <div class="blog__content__item__content">
246                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/300000283.html">
247                                                Unity Ads bidding now available in TopOn Mediation
248                                            </a>
249                                            <p class="blog__content__item__content__excerpt">
250                                                June 2026 &amp;mdash;&amp;mdash; TopOn, a leading global mobile ad mediation platform, officially announced that the Unity Ads SDK has been successfully integrated into TopOn In-App Bidding solution.Through this deep technical integration, developers and publishers using TopOn mediation platform will gain d...
251                                            </p>
252                                            <div class="blog__content__item__content__spread"></div>
253                                            <div class="blog__content__item__content__info">
254                                                                                                <span>2026-06-17</span>
255                                            </div>
256                                        </div>
257                                    </div>
258                                                                    <div class="blog__content__item">
259                                        <div class="blog__content__item__img" style="background-image:url('https://new-img-tpn.toponad.com/posts/2026/06/01/ac6286ecf5dbacb2fe28602441d52ca0.png');"></div>
260                                        <div class="blog__content__item__content">
261                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/300000282.html">
262                                                TopOn Officially Integrates Moloco SDK to Enhance Global Monetization
263                                            </a>
264                                            <p class="blog__content__item__content__excerpt">
265                                                We are thrilled to announce that Moloco is now an official In-App Bidding partner on the TopOn Mediation. This strategic integration allows publishers to tap into premium, high-quality demand from Moloco&amp;rsquo;s global network, helping drive significant revenue growth through high-performance ad for...
266                                            </p>
267                                            <div class="blog__content__item__content__spread"></div>
268                                            <div class="blog__content__item__content__info">
269                                                                                                <sp
269an>2026-06-01</span>
270                                            </div>
271                                        </div>
272                                    </div>
273                                                            </div>
274                                                            <div class="blog__content__btn transition5 text-unselectable" onclick="loadMore(this, 'News')">Get more</div>
275                                                    </div>
276                                                                    <div class="blog__content__div blog__content__div-1">
277                            <div class="blog__content__item__wrapper">
278                                                                    <div class="blog__content__item">
279                                        <div class="blog__content__item__img" style="background-image:url('https://img.toponad.com/posts/2026/01/22/9c2783ee3368ebdbaff25529084671cf.png');"></div>
280                                        <div class="blog__content__item__content">
281                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/448.html">
282                                                Navigating the Toughest Privacy Regulations: A Guide for Developers (Part II) | GDPR &amp; DMA Unpacked
283                                            </a>
284                                            <p class="blog__content__item__content__excerpt">
285                                                You&#039;ve likely been frequently notified by giants like Google and Facebook about GDPR regulationsand theDMA Act&amp;mdash;but what exactly are these, and why are leading global digital networks issuing such serious announcements? How are they connected to the products and services in our industry?This ar...
286                                            </p>
287                                            <div class="blog__content__item__content__spread"></div>
288                                            <div class="blog__content__item__content__info">
289                                                                                                    <a href="https://www.toponad.net/en/posts/tags/globalmarket">globalmarket</a>
290                                                                                                <span>2026-01-22</span>
291                                            </div>
292                                        </div>
293                                    </div>
294                                                            </div>
295                                                    </div>
296                                                                    <div class="blog__content__div blog__content__div-2">
297                            <div class="blog__content__item__wrapper">
298                                                                    <div class="blog__content__item">
299                                        <div class="blog__content__item__img" style="background-image:url('https://img.toponad.com/posts/2025/12/19/c14b9a0f0282eac3a5b5af44cd64a8be.png');"></div>
300                                        <div class="blog__content__item__content">
301                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/439.html">
302                                                Is App Commercialization Becoming More Difficult? You Need to Choose the Right Ad Network
303                                            </a>
304                                            <p class="blog__content__item__content__excerpt">
305                                                In the previous article, we analyzed the core elements of an app monetization platform from four dimensions: App Type Compatibility, Ad format diversity, Integration efficiency and smart ad serving mechanisms. (Click to jump to view details) ( As an App Developer, How to Choose the Most Suitable Ad...
306                                            </p>
307                                            <div class="blog__content__item__content__spread"></div>
308                                            <div class="blog__content__item__content__info">
309                                                                                                    <a href="https://www.toponad.net/en/posts/tags/monetization">monetization</a>
310                                                                                                <sp
310an>2025-12-19</span>
311                                            </div>
312                                        </div>
313                                    </div>
314                                                                    <div class="blog__content__item">
315                                        <div class="blog__content__item__img" style="background-image:url('https://img.toponad.com/posts/2025/12/12/9a477766832256a75ff58673fab0fd14.jpg');"></div>
316                                        <div class="blog__content__item__content">
317                                            <a class="blog__content__item__content__title" href="https://www.toponad.net/en/posts/433.html">
318                                                As an App Developer, How to Choose the Most Suitable Ad Network?
319                                            </a>
320                                            <p class="blog__content__item__content__excerpt">
321                                                With the rapid development of the mobile internet,advertising has become the mainstream method for app monetization. According to statistics, approximately63% of global app developers generate revenue from ads.If you have decided tomonetize your app through advertising, facing numerous ad networks w...
322                                            </p>
323                                            <div class="blog__content__item__content__spread"></div>
324                                            <div class="blog__content__item__content__info">
325                                                                                                    <a href="https://www.toponad.net/en/posts/tags/monetization">monetization</a>
326                                                                                                <span>2025-12-12</span>
327                                            </div>
328                                        </div>
329                                    </div>
330                                                            </div>
331                                                    </div>
332                                                                    <div class="blog__content__div blog__content__div-3">
333                            <div class="blog__content__item__wrapper">
334                                                            </div>
335                                                    </div>
336                                    </div>
337            </div>
338            <div class="sidebar">
339    <h2 class="box-7__title">Popular</h2>
340            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/408.html">
341                            <div class="sidebar__hot-news__item__rank--top text-unselectable">1</div>
342                        <div>
343                <p class="sidebar__hot-news__item__title transition3">PremiumAds is now an Official Mediation Partner of TopOn</p>
344                <p class="sidebar__hot-news__item__date">
345                    2025.9.29
346                </p>
347            </div>
348        </a>
349            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/433.html">
350                            <div class="sidebar__hot-news__item__rank--top text-unselectable">2</div>
351                        <div>
352                <p class="sidebar__hot-news__item__title transition3">As an App Developer, How to Choose the Most Suitable Ad Network?</p>
353                <p class="sidebar__hot-news__item__date">
354                    2025.12.12
355                </p>
356            </div>
357        </a>
358            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/406.html">
359                            <div class="sidebar__hot-news__item__rank--top text-unselectable">3</div>
360                        <div>
361                <p class="sidebar__hot-news__item__title transition3">TopOn Partners with Micro Drama to Achieve Over 50% Growth in Both eCPM and ARPU</p>
362                <p class="sidebar__hot-news__item__date">
363                    2025.8.22
364                </p>
365            </div>
366        </a>
367            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/412.html">
368                            <div class="sidebar__hot-news__item__rank text-unselectable">4</div>
369                        <div>
370                <p class="sidebar__hot-news__item__title transition3">TopOn × Tencent Cloud:  Building a Cloud Accelerator to Forge a New Engine for Ad Monetization</p>
371                <p class="sidebar__hot-news__item__date">
372                    2025.10.20
373                </p>
374            </div>
375        </a>
376            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/448.html">
377                            <div class="sidebar__hot-news__item__rank text-unselectable">5</div>
378                        <div>
379                <p class="sidebar__hot-news__item__title transition3">Navigating the Toughest Privacy Regulations: A Guide for Developers (Part II) | GDPR &amp; DMA Unpacked</p>
380                <p class="sidebar__hot-news__item__date">
381                    2026.1.22
382                </p>
383            </div>
384        </a>
385            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/419.html">
386                            <div class="sidebar__hot-news__item__rank text-unselectable">6</div>
387                        <div>
388                <p class="sidebar__hot-news__item__title transition3">TopOn × GeoEdge: Form Strategic Partnership to Build a New Ecosystem for Mobile Ad Data Security!</p>
389                <p class="sidebar__hot-news__item__date">
390                    2025.10.29
391                </p>
392            </div>
393        </a>
394            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/439.html">
395                            <div class="sidebar__hot-news__item__rank text-unselectable">7</div>
396                        <div>
397                <p class="sidebar__hot-news__item__title transition3">Is App Commercialization Becoming More Difficult? You Need to Choose the Right Ad Network</p>
398                <p class="sidebar__hot-news__item__date">
399                    2025.12.19
400                </p>
401            </div>
402        </a>
403            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/421.html">
404                            <div class="sidebar__hot-news__item__rank text-unselectable">8</div>
405                        <div>
406                <p class="sidebar__hot-news__item__title transition3">TopOn’s Shared Ad Placement Feature: Maximize Revenue from Every Ad Impression</p>
407                <p class="sidebar__hot-news__item__date">
408                    2025.11.13
409                </p>
410            </div>
411        </a>
412            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/312.html">
413                            <div class="sidebar__hot-news__item__rank text-unselectable">9</div>
414                        <div>
415                <p class="sidebar__hot-news__item__title transition3">Product Information | TopOn officially integrates Columbus, an advertising network of Xiaomi International Internet Business, and becomes bidding partner</p>
416                <p class="sidebar__hot-news__item__date">
417                    2024.8.29
418                </p>
419            </div>
420        </a>
421            <a class="sidebar__hot-news__item" href="https://www.toponad.net/en/posts/383.html">
422                            <div class="sidebar__hot-news__item__rank text-unselectable">10</div>
423                        <div>
424                <p class="sidebar__hot-news__item__title transition3">Why Turkey Should Be Your Next Gaming Market?</p>
425                <p class="sidebar__hot-news__item__date">
426                    2025.7.1
427                </p>
428            </div>
429        </a>
430        </div>        </div>
431    </div>
432<footer id="footer">
433        <div class="footer-main">
434        <div class="footer-main__graphics" style="margin: 0px;">
435            <a class="logo"></a>
436                          <a class="footer-main__graphics__btn transition3" href="https://www.toponad.net/en/contact">MESSAGE</a>
437              <div class="footer-main__graphics__icons">
438                  <a class="footer-main__graphics__icons--facebook transition3" target="_blank" title="facebook" href="https://www.facebook.com/To
438pOn-2202518406639775/?ref=bookmarks"></a>
439                  
440                  <a class="footer-main__graphics__icons--linkedin transition3" target="_blank" title="linkedin" href="https://www.linkedin.com/company/14823889/admin/"></a>
441                  
442                  <a class="footer-main__graphics__icons--facebook--loader" hidden></a>
443                  
444                  <a class="footer-main__graphics__icons--linkedin--loader" hidden></a>
445              </div>
446                    </div>
447        <div class="footer-main__split-line"></div>
448        <div class="footer-main__about">
449            <h2 id="about-topon">About TopOn</h2>
450                            <a class="footer-main__about__item" href="https://www.toponad.net/en/monetization">MONETIZATION</a>
451                <a class="footer-main__about__item" href="https://www.toponad.net/en/mediation">MEDIATION</a>
452                <a class="footer-main__about__item" href="https://www.toponad.net/en/statistics">STATISTICS</a>
453                <a class="footer-main__about__item" href="https://www.toponad.net/en/posts">BLOG</a>
454                    </div>
455        <div class="footer-main__about footer-main__contact">
456            <h2>Contact Information</h2>
457            <div class="footer-main__about__item">
458                <span>Address</span>
459                <a 
460                    class="footer-main__about__item__addr" 
461                    href="javascript:void(0)"
462                    style="max-width: 700px;"
463                                    >
464                                  8 THE GREEN STE A DOVER, Delaware 19901, United States
465                                </a>
466            </div>
467            <div class="footer-main__about__item">
468                <span>Business Cooperation</span>
469                <a href="mailto:[email protected]" target="_blank">[email protected]</a>
470            </div>
471            <div class="footer-main__about__item">
472                <span>Marketing Cooperation</span>
473                <a href="mailto:[email protected]" target="_blank">[email protected]</a>
474              </div>
475              <div class="footer-main__about__item">
476                <span>Technical Support</span>
477                <a href="mailto:[email protected]" target="_blank">[email protected]</a>
478            </div>
479                    </div>
480    </div>
481    <div class="footer-split-line"></div>
482        <div class="footer-copy-right" style="margin-top: 0px">
483                <a href="https://www.toponad.net/en/privacy-policy">Privacy Policy</a>
484        |
485        <a href="https://www.toponad.net/en/terms">Terms</a>
486        |
487        <a href="javascript:void(0)" onclick="onShowDialog()">Cookie Management</a>
488        |
489        <a href="https://www.toponad.net/en/do-not-sell-or-share-my-data">Do not sell or share my data</a>
490            </div>
491</footer>
492<div class="cookie-wrapper">
493  <div class="cookie-content container">
494    <div class="text">
495      By clicking &quot;Agree&quot;, you consent to our use of tracking tools to record your browsing behavior and analyze your interaction with our website. For more details, please check &quot;Custom Settings&quot;.
496    </div>
497    
498    <div class="action">
499      <div class="button button--default button--large" onclick="onCookieAgree()">Agree</div>
500      <div class="button button--default button--large" onclick="onShowDialog()">Custom</div>
501      <div class="dialog__close white" onclick="onCookieDisagree()"></div>
502    </div>
503  </div>
504</div>
505<div class="dialog-wrapper cookie-dialog">
506  <div class="dialog cookie-settings-dialog">
507    <div class="dialog-header cookie-settings-header">
508      <div class="cookie-settings-header__main">
509        <div class="cookie-settings-title">Custom Cookie Settings</div>
510        <div class="dialog__close" onclick="onCloseDialog()"></div>
511      </div>
512      <div class="cookie-settings-intro">We use cookies to ensure the website functions properly and, with your consent, for data analysis and experience optimization.</div>
513    </div>
514    <div class="dialog-body cookie-settings-body">
515      <div class="cookie-settings-alert">
516        <span class="cookie-settings-alert__icon" aria-hidden="true">
517          <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
518            <circle cx="8" cy="8" r="7" fill="#2678FF"/>
519            <path d="M8.5 6.5V11.5H7.5V6.5H8.5ZM8 4.25C8.41421 4.25 8.75 4.58579 8.75 5C8.75 5.41421 8.41421 5.75 8 5.75C7.58579 5.75 7.25 5.41421 7.25 5C7.25 4.58579 7.58579 4.25 8 4.25Z" fill="white"/>
520          </svg>
521        </span>
522        <span class="cookie-settings-alert__text">Disabling certain types of cookies may affect your experience on this website and limit the functionality of some services.</span>
523      </div>
524
525      <div class="cookie-settings-sections">
526        <div class="cookie-settings-card">
527          <div class="cookie-settings-card__content">
528            <div class="cookie-settings-card__title">Essential Cookies</div>
529            <div class="cookie-settings-card__desc">Used for basic functions such as login status, language preferences, and security verification. These cannot be disabled through cookie preference settings.</div>
530          </div>
531          <div class="switch is-checked is-disabled" id="switch-essential" title="Essential Cookies">
532            <span class="switch__core"></span>
533          </div>
534        </div>
535
536        <div class="cookie-settings-card cookie-settings-card--stack">
537          <div class="cookie-settings-card__content">
538            <div class="cookie-settings-card__title">Analytics Cookies</div>
539            <div class="cookie-settings-card__desc">Help us understand page visits and feature usage to optimize your experience.</div>
540          </div>
541          <div class="cookie-settings-tool">
542            <div class="cookie-settings-tool__label">
543              <span>Google Analytics</span>
544              <span class="cookie-settings-help" tabindex="0" aria-label="Google Analytics">
545                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
546                  <g transform="translate(2 2)">
547                    <path d="M6.00089 8.35864C6.37822 8.35866 6.68388 8.66448 6.68403 9.04178C6.68403 9.4192 6.3783 9.7257 6.00089 9.72572C5.62346 9.72572 5.31775 9.41921 5.31775 9.04178C5.31789 8.66447 5.62355 8.35864 6.00089 8.35864Z" fill="#BABCBF"/>
548                    <path d="M6.00089 2.35775C7.20106 2.35775 8.17433 3.33115 8.17444 4.5313C8.17444 5.5472 7.47619 6.39709 6.53427 6.63517V7.26466C6.53427 7.55905 6.29529 7.79803 6.00089 7.79803C5.70649 7.79803 5.46751 7.55905 5.46751 7.26466V6.17147C5.46762 5.87717 5.70656 5.6381 6.00089 5.6381C6.61233 5.6381 7.10769 5.14274 7.10769 4.5313C7.10758 3.91995 6.61226 3.4245 6.00089 3.4245C5.38951 3.4245 4.8942 3.91995 4.89409 4.5313C4.89409 4.8257 4.65511 5.06468 4.36072 5.06468C4.06632 5.06468 3.82734 4.8257 3.82734 4.5313C3.82745 3.33115 4.80072 2.35775 6.00089 2.35775Z" fill="#BABCBF"/>
549                    <path fill-rule="evenodd" clip-rule="evenodd" d="M6.00089 0C7.65737 7.22784e-05 9.1579 0.672927 10.2431 1.7579C11.3283 2.84313 12.0009 4.34419 12.001 6.00089C12.0009 7.65756 11.3283 9.15788 10.2431 10.2431C9.15788 11.3282 7.65754 12.0009 6.00089 12.001C4.34423 12.0009 2.8431 11.3283 1.7579 10.2431C0.672927 9.1579 7.22782e-05 7.65737 0 6.00089C5.41859e-05 4.34422 0.672723 2.84312 1.7579 1.7579C2.8431 0.67271
5495 4.34423 8.12796e-05 6.00089 0ZM6.00089 1.06675C4.63834 1.06683 3.40496 1.61809 2.51152 2.51152C1.61809 3.40498 1.06681 4.63832 1.06675 6.00089C1.06683 7.36326 1.6183 8.59605 2.51152 9.48946C3.40496 10.3829 4.63834 10.9349 6.00089 10.935C7.36343 10.935 8.59602 10.3829 9.48946 9.48946C10.3829 8.59602 10.935 7.36345 10.935 6.00089C10.935 4.6383 10.3829 3.40499 9.48946 2.51152C8.59605 1.6183 7.36326 1.06683 6.00089 1.06675Z" fill="#BABCBF"/>
550                  </g>
551                </svg>
552                <span class="cookie-settings-tooltip">If you would like to learn more about the features and operation of Google Analytics, please visit: <a href="https://marketingplatform.google.com/about/analytics/" target="_blank" rel="noopener">https://marketingplatform.google.com/about/analytics/</a>. For more information on how Google Analytics is used and how it collects and processes data, please refer to the Analytics Policies at: <a href="https://support.google.com/analytics/answer/4597324" target="_blank" rel="noopener">https://support.google.com/analytics/answer/4597324</a>.</span>
553              </span>
554            </div>
555            <div class="switch" id="switch-analytics" onclick="onChangeSwitch('switch-analytics')">
556              <span class="switch__core"></span>
557            </div>
558          </div>
559        </div>
560      </div>
561    </div>
562    <div class="dialog-footer cookie-settings-footer">
563      <a class="cookie-settings-policy" href="/en/cookie-policy" target="_blank" rel="noopener">
564        <span>Cookie Policy</span>
565        <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
566          <path d="M6.5 3.5H12.5V9.5M12.2 3.8L4 12" stroke="#2678FF" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
567        </svg>
568      </a>
569      <div class="cookie-settings-actions">
570        <div class="button button--primary" onclick="onRejectAll()">Reject All</div>
571        <div class="button button--primary" onclick="onAcceptAll()">Accept All</div>
572        <div class="button button--primary" onclick="onSaveSettings()">Save Settings</div>
573      </div>
574    </div>
575  </div>
576</div>
577<div class="v-modal cookie-dialog"></div>
578<script>
579  const COOKIE_CONSENT_CONFIG = {
580    policyVersion: '2026-07-16',
581    bannerVersion: 'v1',
582    csrfToken: 'NKveDjHXSqPBcAQBP8V0pBuqOFjWZycfOPo1ZiT3',
583  };
584
585  function setLocalStorage (k, v, type = 'obj') {
586    window.localStorage.setItem(k, type === 'raw' ? v : JSON.stringify(v));
587  };
588  function getLocalStorage (k, type = 'obj') {
589    const v = window.localStorage.getItem(k);
590    return v ? type === 'raw' ? v : JSON.parse(v) : '';
591  };
592
593  function buildConsentPayload(consentAction, analyticsChecked) {
594    const choose = analyticsChecked ? 1 : 0;
595    return {
596      consent_action: consentAction,
597      policy_version: COOKIE_CONSENT_CONFIG.policyVersion,
598      banner_version: COOKIE_CONSENT_CONFIG.bannerVersion,
599      baidu_choose: 0,
600      google_choose: choose,
601    };
602  }
603
604  function submitCookieConsent(consentAction, analyticsChecked) {
605    return fetch('/cookie-consent', {
606      method: 'POST',
607      headers: {
608        'Content-Type': 'application/json',
609        'Accept': 'application/json',
610        'X-CSRF-TOKEN': COOKIE_CONSENT_CONFIG.csrfToken,
611        'X-Requested-With': 'XMLHttpRequest',
612      },
613      credentials: 'same-origin',
614      body: JSON.stringify(buildConsentPayload(consentAction, analyticsChecked)),
615    }).catch(function () {
616      return null;
617    });
618  }
619
620  const cookiePolicy = getLocalStorage('_cookie_policy');
621  if(!cookiePolicy){
622    document.querySelector('.cookie-wrapper').style.display = 'flex';
623  }else{
624    const { agree, expires } = cookiePolicy;
625    if(!agree && expires < new Date().getTime()){
626      document.querySelector('.cookie-wrapper').style.display = 'flex';
627    }
628  }
629
630  function setAnalyticsSwitch(checked) {
631    const switchNode = document.querySelector('#switch-analytics');
632    if (!switchNode) return;
633    if (checked) {
634      switchNode.classList.add('is-checked');
635    } else {
636      switchNode.classList.remove('is-checked');
637    }
638  }
639
640  function isAnalyticsChecked() {
641    const switchNode = document.querySelector('#switch-analytics');
642    return !!(switchNode && switchNode.classList.contains('is-checked'));
643  }
644
645  function syncDialogFromPolicy() {
646    const policy = getLocalStorage('_cookie_policy');
647    setAnalyticsSwitch(!!(policy && policy.agree));
648  }
649
650  function saveCookiePolicyLocal(agree) {
651    if (agree) {
652      setLocalStorage('_cookie_policy', { agree: true });
653    } else {
654      const expires = new Date().getTime() + (30 * 24 * 60 * 60 * 1000);
655      setLocalStorage('_cookie_policy', { agree: false, expires: expires });
656    }
657    document.querySelector('.cookie-wrapper').style.display = 'none';
658  }
659
660  function onCookieAgree() {
661    submitCookieConsent(1, true);
662    saveCookiePolicyLocal(true);
663  }
664
665  function onCookieDisagree(consentAction) {
666    submitCookieConsent(consentAction || 2, false);
667    saveCookiePolicyLocal(false);
668  }
669
670  function onShowDialog() {
671    syncDialogFromPolicy();
672    document.querySelectorAll('.cookie-dialog').forEach(node => {
673      node.style.display = 'flex';
674    })
675  }
676
677  function onCloseDialog() {
678    document.querySelectorAll('.cookie-dialog').forEach(node => {
679      node.style.display = 'none';
680    })
681  }
682
683  function onChangeSwitch(id) {
684    const switchNode = document.querySelector(`#${id}`);
685    if (!switchNode || switchNode.classList.contains('is-disabled')) {
686      return;
687    }
688    switchNode.classList.toggle('is-checked');
689  }
690
691  function onRejectAll() {
692    setAnalyticsSwitch(false);
693    submitCookieConsent(2, false);
694    saveCookiePolicyLocal(false);
695    onCloseDialog();
696  }
697
698  function onAcceptAll() {
699    setAnalyticsSwitch(true);
700    submitCookieConsent(3, true);
701    saveCookiePolicyLocal(true);
702    onCloseDialog();
703  }
704
705  function onSaveSettings() {
706    const analyticsChecked = isAnalyticsChecked();
707    submitCookieConsent(4, analyticsChecked);
708    saveCookiePolicyLocal(analyticsChecked);
709    onCloseDialog();
710  }
711
712  (function bindAnalyticsHelp() {
713    const help = document.querySelector('.cookie-settings-help');
714    if (!help) return;
715    const tooltip = help.querySelector('.cookie-settings-tooltip');
716    help.addEventListener('click', function (e) {
717      e.stopPropagation();
718      help.classList.toggle('is-open');
719    });
720    if (tooltip) {
721      tooltip.addEventListener('click', function (e) {
722        e.stopPropagation();
723      });
724    }
725    document.addEventListener('click', function () {
726      help.classList.remove('is-open');
727    });
728  })();
729
730</script>
730
731<style>
732  .cookie-wrapper {
733    display: none;
734    background: #3E66EB;
735    position: sticky;
736    width: 100%;
737    bottom: 0;
738    color: white;
739    padding: 12px 0;
740    z-index: 100;
741  }
742  .cookie-wrapper .cookie-content {
743    display: flex;
744    justify-content: space-between;
745    align-items: center;
746    gap: 24px;
747  }
748  .cookie-wrapper .text{
749    font-size: 14px;
750    font-style: normal;
751    font-weight: 400;
752    line-height: 20px;
753  }
754  .cookie-wrapper .action{
755    display: flex;
756    align-items: center;
757    gap: 8px;
758  }
759  .cookie-wrapper .action .dialog__close{
760    margin-left: 24px;
761  }
762
763  .button{
764    display: flex;
765    justify-content: center;
766    align-items: center;
767    min-width: 96px;
768    padding: 8px 16px;
769    border-radius: 4px;
770    cursor: pointer;
771    font-size: 14px;
772    font-weight: 400;
773    line-height: 20px;
774    box-sizing: border-box;
775  }
776  .button--large{
777    font-size: 16px;
778    line-height: 24px;
779  }
780  .button--default{
781    border: 1px solid #E3E6EB;
782    background: white;
783    color: #3e66eb;
784  }
785  .button--plain{
786    border: 1px solid #FFF;
787    color: white;
788  }
789  .button--primary{
790    background-color: #2678FF;
791    color: white;
792    border: none;
793    font-size: 12px;
794    line-height: 16px;
795  }
796
797  .v-modal {
798    display: none;
799    position: fixed;
800    left: 0;
801    top: 0;
802    width: 100%;
803    height: 100%;
804    opacity: 0.5;
805    background: #000000;
806    z-index: 1000001;
807  }
808  .dialog-wrapper{
809    display: none;
810    position: fixed;
811    top: 0;
812    right: 0;
813    bottom: 0;
814    left: 0;
815    overflow: auto;
816    margin: 0;
817    z-index: 1000002;
818    flex-direction: column;
819    align-items: center;
820    justify-content: center;
821  }
822  .dialog-wrapper .dialog.cookie-settings-dialog{
823    width: 600px;
824    max-width: calc(100vw - 32px);
825    border-radius: 8px;
826    background: #FFF;
827    color: #1f2126;
828    font-size: 12px;
829    line-height: 16px;
830    box-sizing: border-box;
831    padding: 24px 0 0;
832  }
833  .cookie-settings-header{
834    position: relative;
835    padding: 0 24px 16px;
836    margin-bottom: 0;
837    border-bottom: none;
838  }
839  .cookie-settings-header::after{
840    content: "";
841    position: absolute;
842    left: 24px;
843    right: 24px;
844    bottom: 0;
845    height: 1px;
846    background: #EBEEF2;
847  }
848  .cookie-settings-header__main{
849    display: flex;
850    justify-content: space-between;
851    align-items: flex-start;
852    width: 100%;
853    gap: 12px;
854  }
855  .cookie-settings-header .dialog__close{
856    width: 32px;
857    height: 32px;
858    margin: -8px -8px 0 0;
859    border-radius: 4px;
860    background-color: transparent;
861    background-image: url(/svg/close.svg);
862    background-repeat: no-repeat;
863    background-position: center;
864    background-size: 16px 16px;
865    flex-shrink: 0;
866  }
867  .cookie-settings-header .dialog__close:hover{
868    background-color: #F4F4F4;
869  }
870  .cookie-settings-title{
871    font-size: 16px;
872    font-weight: 600;
873    line-height: 24px;
874    color: #1F2126;
875  }
876  .cookie-settings-intro{
877    margin-top: 4px;
878    font-size: 12px;
879    font-weight: 400;
880    line-height: 16px;
881    color: #8B94A3;
882  }
883  .cookie-settings-body{
884    padding: 16px 24px 0;
885  }
886  .cookie-settings-alert{
887    display: flex;
888    align-items: flex-start;
889    gap: 6px;
890    padding: 6px 12px;
891    border-radius: 4px;
892    background: #ECF2FC;
893    margin-bottom: 8px;
894  }
895  .cookie-settings-alert__icon{
896    flex-shrink: 0;
897    width: 16px;
898    height: 16px;
899    margin-top: 0;
900    display: inline-flex;
901  }
902  .cookie-settings-alert__text{
903    flex: 1;
904    font-size: 12px;
905    line-height: 16px;
906    color: #1F2126;
907  }
908  .cookie-settings-sections{
909    display: flex;
910    flex-direction: column;
911    gap: 8px;
912  }
913  .cookie-settings-card{
914    display: flex;
915    align-items: center;
916    gap: 24px;
917    padding: 12px;
918    border: 1px solid #E3E6EB;
919    border-radius: 4px;
920    background: #FFF;
921    box-sizing: border-box;
922  }
923  .cookie-settings-card--stack{
924    flex-direction: column;
925    align-items: stretch;
926    gap: 16px;
927  }
928  .cookie-settings-card__content{
929    flex: 1;
930    min-width: 0;
931    display: flex;
932    flex-direction: column;
933    gap: 4px;
934  }
935  .cookie-settings-card__title{
936    font-size: 12px;
937    font-weight: 600;
938    line-height: 16px;
939    color: #1F2126;
940  }
941  .cookie-settings-card__desc{
942    font-size: 12px;
943    font-weight: 400;
944    line-height: 16px;
945    color: #8B94A3;
946  }
947  .cookie-settings-tool{
948    display: flex;
949    align-items: center;
950    justify-content: space-between;
951    gap: 16px;
952    padding: 12px;
953    border-radius: 4px;
954    background: #F4F4F4;
955  }
956  .cookie-settings-tool__label{
957    display: flex;
958    align-items: center;
959    gap: 2px;
960    min-width: 0;
961    font-size: 12px;
962    font-weight: 600;
963    line-height: 16px;
964    color: #1F2126;
965  }
966  .cookie-settings-help{
967    position: relative;
968    display: inline-flex;
969    align-items: center;
970    cursor: pointer;
971    flex-shrink: 0;
972  }
973  .cookie-settings-tooltip{
974    display: none;
975    position: absolute;
976    left: 50%;
977    bottom: calc(100% + 4px);
978    transform: translateX(-50%);
979    width: max-content;
980    max-width: min(300px, calc(100vw - 64px));
981    padding: 10px 12px;
982    border-radius: 4px;
983    background: #1F2126;
984    color: #FFF;
985    font-size: 12px;
986    font-weight: 400;
987    line-height: 16px;
988    z-index: 10;
989    word-break: break-word;
990  }
991  .cookie-settings-tooltip::after{
992    content: "";
993    position: absolute;
994    left: 50%;
995    top: 100%;
996    transform: translateX(-50%);
997    width: 0;
998    height: 0;
999    border-style: solid;
1000    border-width: 4px 5px 0 5px;
1001    border-color: #1F2126 transparent transparent transparent;
1002  }
1003  .cookie-settings-tooltip a{
1004    color: #2678FF;
1005    text-decoration: none;
1006    word-break: break-all;
1007  }
1008  .cookie-settings-help:hover .cookie-settings-tooltip,
1009  .cookie-settings-help:focus .cookie-settings-tooltip,
1010  .cookie-settings-help:focus-within .cookie-settings-tooltip,
1011  .cookie-settings-help.is-open .cookie-settings-tooltip{
1012    display: block;
1013  }
1014  .cookie-settings-footer{
1015    display: flex;
1016    justify-content: space-between;
1017    align-items: center;
1018    margin-top: 16px;
1019    padding: 16px 24px 24px;
1020    border-top: 1px solid #EBEEF2;
1021    gap: 12px;
1022  }
1023  .cookie-settings-policy{
1024    display: inline-flex;
1025    align-items: center;
1026    gap: 2px;
1027    color: #2678FF;
1028    font-size: 12px;
1029    line-height: 16px;
1030    text-decoration: none;
1031    white-space: nowrap;
1032  }
1033  .cookie-settings-policy:hover{
1034    opacity: 0.85;
1035  }
1036  .cookie-settings-actions{
1037    display: flex;
1038    align-items: center;
1039    gap: 8px;
1040    flex-wrap: wrap;
1041    justify-content: flex-end;
1042  }
1043
1044  .switch{
1045    cursor: pointer;
1046    flex-shrink: 0;
1047  }
1048  .switch.is-disabled{
1049    cursor: not-allowed;
1050    opacity: 0.45;
1051    pointer-events: none;
1052  }
1053  .switch .switch__core {
1054    height: 16px;
1055    border-radius: 12px;
1056    border: none;
1057    width: 28px !important;
1058    display: inline-block;
1059    position: relative;
1060    background: #BABCBF;
1061  }
1062  .switch .switch__core::after {
1063    content: "";
1064    position: absolute;
1065    border-radius: 100%;
1066    background: white;
1067    width: 12px;
1068    height: 12px;
1069    top: 50%;
1070    left: 2px;
1071    transform: translateY(-50%);
1072    transition: all 0.3s;
1073  }
1074  .switch.is-checked .switch__core {
1075    background-color: #2678FF;
1076  }
1077  .switch.is-checked .switch__core::after {
1078    left: 100%;
1079    margin-left: -14px;
1080  }
1081
1082  body.mobile .cookie-wrapper .cookie-content{
1083    padding: 16px;
1084  }
1085  body.mobile .cookie-wrapper .cookie-content .dialog__close{
1086    margin-left: 0px;
1087  }
1088  body.mobile .cookie-settings-footer{
1089    flex-wrap: wrap;
1090    gap: 8px;
1091  }
1092  body.mobile .cookie-settings-actions .button{
1093    min-width: 0;
1094  }
1095  body.mobile .cookie-settings-tooltip{
1096    left: 0;
1097    transform: none;
1098  }
1099  body.mobile .cookie-settings-tooltip::after{
1100    left: 12px;
1101    transform: none;
1102  }
1103</style>
1103<script src="https://www.toponad.net/js/jquery.min.js"></script>
vendor: 2 bytes, line 1103
1103
1104<script src="https://www.toponad.net/js/popper.min.js"></script>
vendor: 2 bytes, line 1104
1104
1105<script src="https://www.toponad.net/js/bootstrap.min.js"></script>
vendor: 2 bytes, line 1105
1105
1106<script src="https://www.toponad.net/js/wow.min.js"></script>
vendor: 2 bytes, line 1106
1106
1107<script src="https://www.toponad.net/js/swiper.min.js"></script>
vendor: 2 bytes, line 1107
1107
1108<script src="https://www.toponad.net/js/dayjs.min.js"></script>
vendor: 2 bytes, line 1108
1108
1109<script>
1110    $(".scroll-to--about-topon").on("click", function (event) {
1111        let obj = $('body,html');
1112        $(obj).animate({
1113            scrollTop: $('#about-topon').offset().top
1114        }, 1000);
1115        event.preventDefault();
1116    })
1117</script>
1117
1118<style>
1119</style></body>
1120<script>
1121    const parent = $('.blog__content')[0];
1122    const btn = $(".blog__content__btn");
1123    const btnContent = "Get more";
1124    $(function () {
1125        /* 调节 blog-content 高度,解决由于父 R 子 A 布局带来的父元素高度消失的问题 */
1126        $(parent).height($('.blog__content__div')[0].offsetHeight);
1127        $('input[name="tab-group"]').change(function () {
1128            $(parent).height($(".blog__content__div-" + getTagValue())[0].offsetHeight);
1129        });
1130    });
1131
1132    function loadMore(node, type) {
1133        $(".blog__content__div-" + getTagValue() + " .blog__content__btn")[0].innerText = "";
1134        $(btn).addClass("blog__content__btn--sync");
1135        loadMoreArticles(node, type);
1136    }
1137
1138    /**
1139     * 加载更多文章
1140     */
1141    function loadMoreArticles(node, type) {
1142        setTimeout(function() {
1143            $.ajax({
1144                url: '/posts/category/' + type,
1145                type: 'GET',
1146                data: {
1147                    limit: 4,
1148                    offset: getPostCount(),
1149                },
1150                success: function (response) {
1151                    $(btn).removeClass( "blog__content__btn--sync" );
1152                    $(btn).addClass("blog__content__btn--success");
1153                    setTimeout(function() {
1154                        for (let i = 0; i < (response.length > 3 ? 3 : response.length); i++) {
1155                            showMore(node, response[i]);
1156                            $(parent).height($(".blog__content__div-" + getTagValue())[0].offsetHeight);
1157                        }
1158                        $(btn).removeClass("blog__content__btn--success", 230);
1159                        if(response.length < 4) {
1160                            $(".blog__content__div-" + getTagValue() + " .blog__content__btn").addClass("hidden");
1161                        } else {
1162                            $(".blog__content__div-" + getTagValue() + " .blog__content__btn")[0].innerText = btnContent;
1163                        }
1164                    }, 2000);
1165                },
1166            });
1167        }, 1000);
1168    }
1169
1170    /**
1171     * 展示更多文章
1172     */
1173    function showMore(node, article) {
1174        let tags = article.tags;
1175        let tagsHTML = ``;
1176        for (const tagsKey in tags) {
1177            if (tags.hasOwnProperty(tagsKey)) {
1178                tagsHTML += `<a href="https://www.toponad.net/en/posts/tags` + `/` + tagsKey + `">` + tags[tagsKey] + `</a>`;
1179            }
1180        }
1181        let rawHTML = `
1182                <div class="blog__content__item">
1183                    <div class="blog__content__item__img" style="background-image:url('` + article.thumbnail + `');"></div>
1184                    <div class="blog__content__item__content">
1185                        <a class="blog__content__item__content__title" href="/en/posts/` + article.id + `.html">`
1186                            + article.title + `
1187                        </a>
1188                        <p class="blog__content__item__content__excerpt">`
1189                            + article.content.substring(0 ,300) + '...' + `
1190                        </p>
1191                        <div class="blog__content__item__content__spread"></div>
1192                        <div class="blog__content__item__content__info">`
1193                            + tagsHTML + `
1194                            <span>` + article.post_time.substr(0, 10) + `</span>
1195                        </div>
1196                    </div>
1197                </div>`
1198        let list = $(".blog__content__div-" + getTagValue() + " .blog__content__item__wrapper")[0];
1199        $(list).append(rawHTML);
1200    }
1201
1202    /**
1203     * 获取当前 tag 的值
1204     * @returns {jQuery}
1205     */
1206    function getTagValue() {
1207        let el = $('input[name="tab-group"]:checked')[0];
1208        return $(el).val();
1209    }
1210
1211    /**
1212     * 获取当前类型文章的已显示数量
1213     * @returns {jQuery}
1214     */
1215    function getPostCount() {
1216        let val = getTagValue();
1217        let name = ".blog__content__div-" + val + " .blog__content__item";
1218        return $(name).length;
1219    }
1220</script>
1220
1221</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.