-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
745 lines (517 loc) · 32.7 KB
/
index.html
File metadata and controls
745 lines (517 loc) · 32.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="/styles/main.min.css">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<style>:root { --heatmap-color: #39d353; }</style>
<script>
(function () {
try {
var saved = localStorage.getItem('flavor-theme');
var theme = saved || 'dark';
if (theme === 'light') {
document.documentElement.classList.add('theme-light');
}
} catch (e) { }
})();
</script>
<meta name="generator" content="Gridea Pro 0.0.0-dev">
<title>述尔</title>
<meta name="description" content="一个产品经理的碎碎念 | 温故而知新">
<meta name="keywords" content="述尔,Gridea Pro,Gridea,静态博客,AI,产品经理">
<link rel="canonical" href="https://are.ink/">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"述尔","url":"https://are.ink","description":"一个产品经理的碎碎念 | 温故而知新","potentialAction":{"@type":"SearchAction","query-input":"required name=search_term_string","target":"https://are.ink/search?q={search_term_string}"}}</script>
<meta property="og:title" content="述尔">
<meta property="og:description" content="一个产品经理的碎碎念 | 温故而知新">
<meta property="og:url" content="https://are.ink/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="述尔">
<meta property="og:image" content="/images/avatar.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="https://are.ink/">
<meta name="twitter:title" content="述尔">
<meta name="twitter:description" content="一个产品经理的碎碎念 | 温故而知新">
<meta name="twitter:image" content="/images/avatar.png">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-1SBXPCEK36"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-1SBXPCEK36');</script>
<meta name="google-site-verification" content="googlea4223896f417412f.html">
<script>var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?4b792e215f23cf68ed571462a263feb3";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script>
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#000000">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="apple-mobile-web-app-title" content="述尔">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/images/icons/icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/images/icons/icon-192x192.png">
<meta name="msapplication-TileColor" content="#000000">
<meta name="msapplication-TileImage" content="/images/icons/icon-192x192.png">
<script>if('serviceWorker' in navigator){navigator.serviceWorker.register('/sw.js')}</script>
</head>
<body class="flavor-theme">
<header class="site-header" id="siteHeader">
<div class="header-inner">
<div class="top-bar">
<div class="top-bar__left">
<a href="https://are.ink" class="site-avatar-link" aria-label="返回首页">
<img class="site-avatar" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/images/avatar.png" alt="述尔" />
</a>
<a href="https://are.ink" class="site-name-link">述尔</a>
</div>
<nav class="top-bar__nav" id="sectionBar">
<a class="nav-item" href="/">首页</a>
<a class="nav-item" href="/post">博客</a>
<a class="nav-item" href="/memos">闪念</a>
<a class="nav-item" href="/archives">归档</a>
<a class="nav-item" href="/tags">标签</a>
<a class="nav-item" href="/links">友链</a>
<a class="nav-item" href="/post/about">关于</a>
</nav>
<div class="top-bar__right">
<button class="btn-icon btn-search search-btn" id="btnSearch" type="button" aria-label="搜索">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</button>
<button class="btn-icon theme-toggle theme-toggle-sun" id="themeToggleSun" type="button"
aria-label="切换到浅色模式">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path d="M12 1C12.5523 1 13 1.44772 13 2V4C13 4.55228 12.5523 5 12 5C11.4477 5 11 4.55228 11 4V2C11 1.44772 11.4477 1 12 1Z"></path>
<path fill-rule="evenodd" clip-rule="evenodd" d="M7 12C7 9.23858 9.23858 7 12 7C14.7614 7 17 9.23858 17 12C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12ZM12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9Z"></path>
<path d="M13 20C13 19.4477 12.5523 19 12 19C11.4477 19 11 19.4477 11 20V22C11 22.5523 11.4477 23 12 23C12.5523 23 13 22.5523 13 22V20Z"></path>
<path d="M4.22282 4.22289C4.61335 3.83236 5.24651 3.83236 5.63704 4.22289L7.04704 5.63289C7.43756 6.02341 7.43756 6.65658 7.04704 7.0471C6.65651 7.43762 6.02335 7.43762 5.63283 7.0471L4.22282 5.6371C3.8323 5.24658 3.8323 4.61341 4.22282 4.22289Z"></path>
<path d="M18.367 16.9529C17.9765 16.5623 17.3433 16.5623 16.9528 16.9529C16.5623 17.3434 16.5623 17.9766 16.9528 18.3671L18.3628 19.7771C18.7533 20.1676 19.3865 20.1676 19.777 19.7771C20.1675 19.3866 20.1675 18.7534 19.777 18.3629L18.367 16.9529Z"></path>
<path d="M1 12C1 11.4477 1.44772 11 2 11H4C4.55228 11 5 11.4477 5 12C5 12.5523 4.55228 13 4 13H2C1.44772 13 1 12.5523 1 12Z"></path>
<path d="M20 11C19.4477 11 19 11.4477 19 12C19 12.5523 19.4477 13 20 13H22C22.5523 13 23 12.5523 23 12C23 11.4477 22.5523 11 22 11H20Z"></path>
<path d="M7.04704 16.9529C7.43756 17.3434 7.43756 17.9766 7.04704 18.3671L5.63704 19.7771C5.24651 20.1676 4.61335 20.1676 4.22282 19.7771C3.8323 19.3866 3.8323 18.7534 4.22283 18.3629L5.63283 16.9529C6.02335 16.5623 6.65651 16.5623 7.04704 16.9529Z"></path>
<path d="M19.777 5.6371C20.1675 5.24657 20.1675 4.61341 19.777 4.22289C19.3865 3.83236 18.7533 3.83236 18.3628 4.22289L16.9528 5.63289C16.5623 6.02341 16.5623 6.65658 16.9528 7.0471C17.3433 7.43762 17.9765 7.43762 18.367 7.0471L19.777 5.6371Z"></path>
</svg>
</button>
<button class="btn-icon theme-toggle theme-toggle-moon" id="themeToggleMoon" type="button"
aria-label="切换到深色模式">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 11.5955 21.7564 11.2309 21.3827 11.0761C21.009 10.9213 20.5789 11.0069 20.2929 11.2929C19.287 12.2988 17.9226 12.864 16.5 12.864C15.0774 12.864 13.713 12.2988 12.7071 11.2929C11.7012 10.287 11.136 8.92261 11.136 7.5C11.136 6.07739 11.7012 4.71304 12.7071 3.70711C12.9931 3.42111 13.0787 2.99099 12.9239 2.61732C12.7691 2.24364 12.4045 2 12 2ZM7.55544 5.34824C8.27036 4.87055 9.05353 4.51389 9.87357 4.28778C9.39271 5.27979 9.13604 6.37666 9.13604 7.5C9.13604 9.45304 9.91189 11.3261 11.2929 12.7071C12.6739 14.0881 14.547 14.864 16.5 14.864C17.6233 14.864 18.7202 14.6073 19.7122 14.1264C19.4861 14.9465 19.1295 15.7296 18.6518 16.4446C17.7727 17.7602 16.5233 18.7855 15.0615 19.391C13.5997 19.9965 11.9911 20.155 10.4393 19.8463C8.88743 19.5376 7.46197 18.7757 6.34315 17.6569C5.21447 16.538 4.4624 15.1126 4.15372 13.5607C3.84504 12.0089 4.00347 10.4003 4.60897 8.93853C5.21447 7.47672 6.23985 6.22729 7.55544 5.34824Z"></path>
<path d="M19 2C19.5523 2 20 2.44772 20 3V4H21C21.5523 4 22 4.44772 22 5C22 5.55228 21.5523 6 21 6H20V7C20 7.55228 19.5523 8 19 8C18.4477 8 18 7.55228 18 7V6H17C16.4477 6 16 5.55228 16 5C16 4.44772 16.4477 4 17 4H18V3C18 2.44772 18.4477 2 19 2Z"></path>
</svg>
</button>
<button class="btn-icon btn-nav-toggle mobile-only" id="btnNavToggle" type="button" aria-label="切换导航">
<div class="hamburger" id="hamburger">
<span class="hamburger__line hamburger__line--top"></span>
<span class="hamburger__line hamburger__line--bottom"></span>
</div>
</button>
</div>
</div>
</div>
</header>
<div class="header-spacer"></div>
<script>
(function(){
var btn = document.getElementById('btnNavToggle');
var nav = document.getElementById('sectionBar');
var hamburger = document.getElementById('hamburger');
if (btn && nav) {
btn.addEventListener('click', function(){
nav.classList.toggle('top-bar__nav--open');
if (hamburger) hamburger.classList.toggle('is-active');
});
nav.querySelectorAll('.nav-item').forEach(function(item){
item.addEventListener('click', function(){
nav.classList.remove('top-bar__nav--open');
if (hamburger) hamburger.classList.remove('is-active');
});
});
}
var root = document.documentElement;
var applyTheme = function(theme, persist){
if (theme === 'light') {
root.classList.add('theme-light');
} else {
root.classList.remove('theme-light');
}
if (persist) {
try { localStorage.setItem('flavor-theme', theme); } catch (e) {}
}
};
document.querySelectorAll('.theme-toggle').forEach(function(el){
el.addEventListener('click', function(){
applyTheme(root.classList.contains('theme-light') ? 'dark' : 'light', true);
});
});
})();
</script>
<main class="site-main" role="main">
<section class="hero-section">
<img class="hero-image" src="https://are.ink/post-images/wails-boot.jpeg" alt="" />
<div class="hero-overlay"></div>
<div class="hero-content">
<h2 class="hero-title clamp-3">独立博客没有死,正在死的是平庸的博客</h2>
<p class="hero-subtitle">博客从未死过。真正在死的,是那些没有灵魂的博客。</p>
<a href="https://are.ink/post/indie-blog-is-not-dead/" class="hero-cta">
<span class="hero-cta__text meta-text">阅读全文</span>
<span class="hero-cta__icon">→</span>
</a>
</div>
</section>
<div class="container">
<section class="section-popular">
<div class="section-header">
<h2 class="section-title">热门文章</h2>
<a href="/post" class="section-more meta-text">查看全部 →</a>
</div>
<div class="compact-grid">
<article class="post-card post-card--compact">
<a href="/post/hello-gridea-pro/" class="post-card__inner">
<div class="post-card__body">
<h3 class="post-card__title clamp-2">念念不忘,必有回响 —— Gridea Pro,我们回来了</h3>
<div class="post-card__meta meta-text">2026年04月06日</div>
</div>
</a>
</article>
<article class="post-card post-card--compact">
<a href="/post/ai-era-indie-blog-gridea-pro-strategy/" class="post-card__inner">
<div class="post-card__body">
<h3 class="post-card__title clamp-2">AI 时代独立博客生态与 Gridea Pro 战略定位分析</h3>
<div class="post-card__meta meta-text">2026年03月03日</div>
</div>
<img class="post-card__thumb-square" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/ai-era-indie-blog-gridea-pro-strategy.jpg" alt="AI 时代独立博客生态与 Gridea Pro 战略定位分析" loading="lazy" />
</a>
</article>
<article class="post-card post-card--compact">
<a href="/post/how-we-become-ourselves/" class="post-card__inner">
<div class="post-card__body">
<h3 class="post-card__title clamp-2">我们如何成为自己</h3>
<div class="post-card__meta meta-text">2026年04月22日</div>
</div>
<img class="post-card__thumb-square" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/how-we-become-ourselves.jpg" alt="我们如何成为自己" loading="lazy" />
</a>
</article>
<article class="post-card post-card--compact">
<a href="/post/quick-start/" class="post-card__inner">
<div class="post-card__body">
<h3 class="post-card__title clamp-2">Gridea Pro 完全上手指南 —— 从写作到发布,一篇搞定</h3>
<div class="post-card__meta meta-text">2026年04月06日</div>
</div>
</a>
</article>
</div>
</section>
<div class="content-grid">
<div class="main-content">
<section class="section-latest">
<div class="section-header">
<h2 class="section-title">最新文章</h2>
</div>
<div class="post-list">
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/hello-gridea-pro/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">念念不忘,必有回响 —— Gridea Pro,我们回来了</h3>
</a>
<a href="/post/hello-gridea-pro/" class="post-card__excerpt clamp-2">
你好,欢迎来到 Gridea Pro。
如果你正在读这篇文章,说明你已经迈出了最重要的一步——决定拥有一个属于自己的博客。
关于 Gridea Pro
搭建独立博客这件事,在过去一直有个尴尬的矛盾:想写博客的人很多,但现有的工具几乎...
</a>
<div class="post-card__meta meta-text">
2026年04月06日
<span class="badge badge--top">置顶</span>
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/ai-era-indie-blog-gridea-pro-strategy/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">AI 时代独立博客生态与 Gridea Pro 战略定位分析</h3>
</a>
<a href="/post/ai-era-indie-blog-gridea-pro-strategy/" class="post-card__excerpt clamp-2">
核心结论
独立博客没有死,正在死的是平庸的博客。
全球 6 亿+ 博客、每天 750 万篇新文章、77% 的互联网用户定期阅读博客——这些数据说明博客作为内容形式依然庞大且活跃。但 AI 正在重塑整个生态的游戏规则:Google 60...
</a>
<div class="post-card__meta meta-text">
2026年03月03日
<span class="badge badge--top">置顶</span>
</div>
</div>
<a href="/post/ai-era-indie-blog-gridea-pro-strategy/" class="post-card__thumb-link">
<img class="post-card__thumb" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/ai-era-indie-blog-gridea-pro-strategy.jpg" alt="AI 时代独立博客生态与 Gridea Pro 战略定位分析" loading="lazy" />
</a>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/how-we-become-ourselves/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">我们如何成为自己</h3>
</a>
<a href="/post/how-we-become-ourselves/" class="post-card__excerpt clamp-2">
1580 年,米歇尔·德·蒙田(Michel de Montaigne)在法国西南部波尔多附近的一座塔楼里,开始写他后来被称为《随笔集》(Essais)的东西。在献给读者的序言里,他留下了一句在今天读起来平淡无奇、但放回当时足以构成思...
</a>
<div class="post-card__meta meta-text">
2026年04月22日
</div>
</div>
<a href="/post/how-we-become-ourselves/" class="post-card__thumb-link">
<img class="post-card__thumb" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/how-we-become-ourselves.jpg" alt="我们如何成为自己" loading="lazy" />
</a>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/quick-start/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">Gridea Pro 完全上手指南 —— 从写作到发布,一篇搞定</h3>
</a>
<a href="/post/quick-start/" class="post-card__excerpt clamp-2">
这篇指南会带你一步一步熟悉 Gridea Pro 的界面和操作,从写第一篇文章到把博客发布到互联网上。
认识界面
打开 Gridea Pro 后,你会看到左侧是导航栏,右侧是内容区域。
左侧导航从上到下依次是:
导航
说明
...
</a>
<div class="post-card__meta meta-text">
2026年04月06日
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/why-we-write/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">都 2026 年了,我们为什么还要写博客</h3>
</a>
<a href="/post/why-we-write/" class="post-card__excerpt clamp-2">
你有没有过这样的时刻——
某天深夜,突然想起一个很久没联系的人,想跟他说点什么,却发现你们之间已经隔了太多年的空白,连开口的理由都找不到了。
或者翻手机相册,看到三年前拍的一张照片,背景里有一家街角的小店。你记得自己当时走进去过,吃...
</a>
<div class="post-card__meta meta-text">
2026年04月06日
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/indie-blog-is-not-dead/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">独立博客没有死,正在死的是平庸的博客</h3>
</a>
<a href="/post/indie-blog-is-not-dead/" class="post-card__excerpt clamp-2">
你可能听过很多次这样的说法:&ldquo;博客已经过时了&rdquo;、&ldquo;现在谁还看博客&rdquo;、&ldquo;有公众号和小红书就够了&rdquo;。
但事实是——2026 年的今天,全球有超过 6 亿个博客,每天产...
</a>
<div class="post-card__meta meta-text">
2026年04月06日
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/why-i-revived-gridea/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">我为什么复活了 Gridea —— 每个想写点什么的人,都值得一个更简单的开始</h3>
</a>
<a href="/post/why-i-revived-gridea/" class="post-card__excerpt clamp-2">
2022 年 5 月 17 日,Gridea 发布了它的最后一个版本 v0.9.3。
此后,再也没有更新过。Issues 无人回复,PR 无人合并。一个曾经帮助 28,000 多位用户搭建了自己博客的工具,就这样安静地停在了那里。
我...
</a>
<div class="post-card__meta meta-text">
2026年04月06日
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/migrating-from-gridea-to-gridea-pro/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">从 Gridea 迁移到 Gridea Pro:零风险完整指南</h3>
</a>
<a href="/post/migrating-from-gridea-to-gridea-pro/" class="post-card__excerpt clamp-2">
如果你是 Gridea 的老用户,正在考虑是否要升级到 Gridea Pro,这篇文章是为你写的。
我们知道,博客数据是多年心血的积累,迁移这件事如果出了差错,损失难以弥补。因此,在设计 Gridea Pro 时,数据兼容与自动迁移是...
</a>
<div class="post-card__meta meta-text">
2026年04月02日
</div>
</div>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/gridea-pro-cdn/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">从零实现 CDN 图床:Gridea Pro 如何让图片管理彻底自动化</h3>
</a>
<a href="/post/gridea-pro-cdn/" class="post-card__excerpt clamp-2">
试想一下,你的静态博客跑了大半年,文章越写越多,图片也越来越多。
某天你注意到一个问题:站点仓库已经 800MB 了,git clone 要等两分钟,Vercel 构建时间从 30 秒涨到了 3 分钟。你翻了一下站点文件,绝大部分体积...
</a>
<div class="post-card__meta meta-text">
2026年03月12日
</div>
</div>
<a href="/post/gridea-pro-cdn/" class="post-card__thumb-link">
<img class="post-card__thumb" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/gridea-pro-cdn.png" alt="从零实现 CDN 图床:Gridea Pro 如何让图片管理彻底自动化" loading="lazy" />
</a>
</article>
<article class="post-card post-card--list">
<div class="post-card__body">
<a href="/post/most-conversations-with-Claude-on-Earth-is-a-philosopher/" class="post-card__title-link">
<h3 class="post-card__title clamp-3">地球上和 Claude 对话最多的人,是一位哲学家</h3>
</a>
<a href="/post/most-conversations-with-Claude-on-Earth-is-a-philosopher/" class="post-card__excerpt clamp-2">
2024 年秋天,一位用户在对话中对 Claude 说:&ldquo;水是纯粹的能量,喷泉是生命的源泉。&rdquo;
换作大多数语言模型,标准答案早已备好:水的化学式是 H₂O,由氢原子和氧原子组成,并非能量。这是事实,无可辩驳。然...
</a>
<div class="post-card__meta meta-text">
2026年03月11日
</div>
</div>
<a href="/post/most-conversations-with-Claude-on-Earth-is-a-philosopher/" class="post-card__thumb-link">
<img class="post-card__thumb" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/post-images/most-conversations-with-Claude-on-Earth-is-a-philosopher.png" alt="地球上和 Claude 对话最多的人,是一位哲学家" loading="lazy" />
</a>
</article>
</div>
</section>
<div class="view-more">
<a href="/post/page/2/" class="btn btn--secondary">查看更多文章 →</a>
</div>
</div>
<aside class="sidebar">
<div class="sidebar__section sidebar__about">
<img class="sidebar__avatar" src="https://cdn.jsdelivr.net/gh/Tespera/Assets@main/images/avatar.png" alt="述尔" />
<h3 class="sidebar__title">述尔</h3>
<p class="sidebar__desc">一个产品经理的碎碎念 | 温故而知新</p>
</div>
<div class="sidebar__section">
<h4 class="sidebar__section-title meta-text">标签</h4>
<div class="sidebar__tags">
<a href="/tag/gridea/" class="tag-pill">Gridea</a>
<a href="/tag/gridea-pro/" class="tag-pill">Gridea Pro</a>
<a href="/tag/mcp/" class="tag-pill">MCP</a>
<a href="/tag/go/" class="tag-pill">Go</a>
<a href="/tag/wails/" class="tag-pill">Wails</a>
<a href="/tag/protocol/" class="tag-pill">Protocol</a>
<a href="/tag/agi/" class="tag-pill">AGI</a>
<a href="/tag/refactor/" class="tag-pill">Refactor</a>
<a href="/tag/refactoring/" class="tag-pill">Refactoring</a>
<a href="/tag/best-practices/" class="tag-pill">Best Practices</a>
<a href="/tag/i18n/" class="tag-pill">i18n</a>
<a href="/tag/jinja2/" class="tag-pill">Jinja2</a>
<a href="/tag/pongo2/" class="tag-pill">Pongo2</a>
<a href="/tag/uuid/" class="tag-pill">UUID</a>
<a href="/tag/nanoid/" class="tag-pill">NanoID</a>
<a href="/tag/yaml/" class="tag-pill">YAML</a>
<a href="/tag/ai/" class="tag-pill">AI</a>
<a href="/tag/dan-koe/" class="tag-pill">Dan Koe</a>
<a href="/tag/hugo/" class="tag-pill">Hugo</a>
<a href="/tag/hexo/" class="tag-pill">Hexo</a>
<a href="/tag/deep-dive/" class="tag-pill">Deep Dive</a>
<a href="/tag/philosophy/" class="tag-pill">哲学思辨</a>
<a href="/tag/law-and-humanity/" class="tag-pill">法治与人文</a>
<a href="/tag/trends/" class="tag-pill">趋势</a>
<a href="/tag/tutorial/" class="tag-pill">教程</a>
<a href="/tag/code-refactoring/" class="tag-pill">重构</a>
<a href="/tag/dev-notes/" class="tag-pill">开发手记</a>
<a href="/tag/theme-dev/" class="tag-pill">主题开发</a>
<a href="/tag/debugging/" class="tag-pill">Bug排查</a>
<a href="/tag/architecture-design/" class="tag-pill">架构设计</a>
<a href="/tag/performance-tuning/" class="tag-pill">性能优化</a>
<a href="/tag/best-practice/" class="tag-pill">最佳实践</a>
<a href="/tag/economy/" class="tag-pill">经济</a>
<a href="/tag/intelligence-crisis/" class="tag-pill">智力危机</a>
<a href="/tag/tencent-finance/" class="tag-pill">腾讯财经</a>
<a href="/tag/life-reset/" class="tag-pill">人生重置</a>
<a href="/tag/productivity/" class="tag-pill">效率</a>
<a href="/tag/psychology/" class="tag-pill">心理学</a>
<a href="/tag/translation/" class="tag-pill">翻译</a>
<a href="/tag/architecture/" class="tag-pill">Architecture</a>
<a href="/tag/performance/" class="tag-pill">Performance</a>
<a href="/tag/anthropic/" class="tag-pill">Anthropic</a>
<a href="/tag/claude/" class="tag-pill">Claude</a>
<a href="/tag/cdn/" class="tag-pill">CDN</a>
<a href="/tag/tu-chuang/" class="tag-pill">图床</a>
<a href="/tag/jing-tai-bo-ke/" class="tag-pill">静态博客</a>
<a href="/tag/she-ji-li-nian/" class="tag-pill">设计理念</a>
<a href="/tag/chan-pin-she-ji/" class="tag-pill">产品设计</a>
<a href="/tag/shu-ju-qian-yi/" class="tag-pill">数据迁移</a>
<a href="/tag/zi-wo/" class="tag-pill">自我</a>
<a href="/tag/ren-sheng-si-kao/" class="tag-pill">人生思考</a>
</div>
</div>
</aside>
</div>
</div>
</main>
<footer class="site-footer">
<div class="footer-inner">
<nav class="footer-nav" aria-label="页脚导航">
<a class="footer-nav__link" href="/">首页</a>
<a class="footer-nav__link" href="/post">博客</a>
<a class="footer-nav__link" href="/memos">闪念</a>
<a class="footer-nav__link" href="/archives">归档</a>
<a class="footer-nav__link" href="/tags">标签</a>
<a class="footer-nav__link" href="/links">友链</a>
<a class="footer-nav__link" href="/post/about">关于</a>
</nav>
<div class="footer-social">
<a class="footer-social__link" href="https://github.com/Tespera" target="_blank" rel="noopener noreferrer"
aria-label="GitHub">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
</svg>
</a>
<a class="footer-social__link" href="https://x.com" target="_blank" rel="noopener noreferrer"
aria-label="Twitter/X">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path
d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
</svg>
</a>
<a class="footer-social__link" href="https://weibo.com" target="_blank" rel="noopener noreferrer"
aria-label="微博">
<svg width="20" height="20" viewBox="0 0 16 16" fill="currentColor">
<path d="M10.878 1.093a4.23 4.23 0 0 1 4.031 1.305 4.22 4.22 0 0 1 .886 4.14v.001a.612.612 0 0 1-1.166-.377 3.01 3.01 0 0 0-3.495-3.873.611.611 0 1 1-.256-1.196M3.753 9.465c.548-1.11 1.972-1.74 3.233-1.411 1.304.338 1.971 1.568 1.437 2.764-.541 1.221-2.095 1.875-3.416 1.449-1.271-.411-1.812-1.67-1.254-2.802m2.658.567c.16.066.365-.009.458-.168.088-.16.03-.34-.129-.397-.156-.062-.353.013-.446.168-.09.154-.041.333.117.397m-1.607 1.314c.413.188.963.009 1.219-.4.252-.413.12-.883-.296-1.062-.41-.172-.94.005-1.194.402-.256.4-.135.874.271 1.06"/>
<path d="m12.014 7.238.005.001c.919.285 1.941.974 1.939 2.188 0 2.007-2.895 4.535-7.246 4.535C3.393 13.962 0 12.352 0 9.708c0-1.385.876-2.985 2.384-4.493C4.4 3.199 6.751 2.28 7.634 3.165c.39.392.427 1.065.177 1.87-.132.405.38.182.38.182 1.63-.682 3.051-.722 3.57.02.278.397.252.951-.004 1.594-.116.293.035.34.257.407m-10.4 3.101c.172 1.738 2.46 2.936 5.109 2.674 2.647-.26 4.656-1.883 4.482-3.623-.17-1.738-2.458-2.937-5.107-2.674-2.647.263-4.656 1.883-4.484 3.623m11.681-6.484a2.06 2.06 0 0 0-1.962-.634.526.526 0 1 0 .219 1.031 1.008 1.008 0 0 1 1.17 1.296.528.528 0 0 0 1.005.325 2.06 2.06 0 0 0-.432-2.018"/>
</svg>
</a>
<a class="footer-social__link" href="/feed.xml" aria-label="RSS">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
<path d="M6.18 15.64a2.18 2.18 0 110 4.36 2.18 2.18 0 010-4.36zM4 4.44A15.56 15.56 0 0119.56 20h-2.83A12.73 12.73 0 004 7.27V4.44zm0 5.66a9.9 9.9 0 019.9 9.9h-2.83A7.07 7.07 0 004 12.93V10.1z"/>
</svg>
</a>
</div>
<div class="footer-copyright">
<p>© 2026 述尔. All rights reserved.</p>
</div>
<div class="footer-powered">
<span>Powered by <a href="https://gridea.pro" target="_blank" rel="noopener noreferrer">Gridea Pro</a></span>
</div>
</div>
</footer>
<div class="search-overlay" id="searchOverlay" style="display:none;">
<div class="search-modal">
<div class="search-header">
<svg class="search-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="11" cy="11" r="8"></circle>
<line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
<input type="text" class="search-input" id="searchInput" placeholder="搜索文章..." autocomplete="off" />
<span class="search-kbd">⌘K</span>
<button class="search-close" id="searchClose" type="button" aria-label="关闭搜索">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<line x1="18" y1="6" x2="6" y2="18"></line>
<line x1="6" y1="6" x2="18" y2="18"></line>
</svg>
</button>
</div>
<div class="search-results" id="searchResults"></div>
</div>
</div>
<script src="/scripts/search.js"></script>
<script>console.log("\n%c ✦ Gridea Pro v0.0.0-dev %c · Theme: flavor-theme v1.0.0 · https://gridea.pro %c\n","color:#fadfa3;background:#111111;padding:9px 14px;border-radius:4px 0 0 4px;font-weight:500;font-size:12px","color:#e05c00;background:#fff3ec;padding:9px 14px;border-radius:0 4px 4px 0;font-size:11px","")</script>
</body>
</html>