PageSourceSearch

https://kemeow0815.github.io/post/about/

html kemeow0815.github.io collected 2026-10-03 09:27:11 UTC 37,876 bytes, 890 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4  <meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1.0">
6<meta http-equiv="X-UA-Compatible" content="ie=edge">
7<link rel="stylesheet" href="/styles/main.min.css">
8
9
10<link rel="icon" href="/favicon.ico" type="image/x-icon">
11
12
13<script>
14(function() {
15  // Check for saved theme preference
16  var savedTheme = localStorage.getItem('theme');
17  
18  if (savedTheme) {
19    // Use saved preference
20    document.documentElement.setAttribute('data-theme', savedTheme);
21  } else {
22    // Check system preference
23    var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
24    var theme = prefersDark ? 'dark' : 'light';
25    document.documentElement.setAttribute('data-theme', theme);
26  }
27})();
28</script>
28
29
30
31<meta name="description" content="每一段旅行,都有终点。">
32<meta property="og:site_name" content="喵洛阁">
33<meta property="og:title" content="喵洛阁">
34<meta property="og:description" content="每一段旅行,都有终点。">
35
36<meta property="og:image" content="/images/avatar.png">
37
38<meta property="og:url" content="https://kemeow0815.github.io">
39<meta property="og:type" content="website">
40<meta name="twitter:card" content="summary_large_image">
41<meta name="twitter:title" content="喵洛阁">
42<meta name="twitter:description" content="每一段旅行,都有终点。">
43
44<meta name="twitter:image" content="/images/avatar.png">
45
46
47  <meta name="generator" content="Gridea Pro 1.1.1">
48  <title>关于 | 喵洛阁</title>
49  
50<meta name="description" content="关于">
51<link rel="canonical" href="https://kemeow0815.github.io/post/about/">
52<script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","headline":"关于","url":"https://kemeow0815.github.io/post/about/","description":"关于","datePublished":"2026-04-14T16:29:02+08:00","dateModified":"2026-04-14T16:29:02+08:00","author":{"@type":"Person","name":"喵洛阁"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/images/avatar.png"},"name":"喵洛阁"}}</script>
vendor: 1 bytes, line 52
52
53<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://kemeow0815.github.io","name":"喵洛阁","position":1},{"@type":"ListItem","item":"https://kemeow0815.github.io/post/about/","name":"关于","position":2}]}</script>
53
54<meta property="og:title" content="关于">
55<meta property="og:description" content="关于">
56<meta property="og:url" content="https://kemeow0815.github.io/post/about/">
57<meta property="og:type" content="article">
58<meta property="og:site_name" content="喵洛阁">
59<meta property="og:image" content="/images/avatar.png">
60<meta name="twitter:card" content="summary_large_image">
61<meta name="twitter:url" content="https://kemeow0815.github.io/post/about/">
62<meta name="twitter:title" content="关于">
63<meta name="twitter:description" content="关于">
64<meta name="twitter:image" content="/images/avatar.png">
65</head>
66<body class="flavor-theme">
67
68  <!-- 加载页面 -->
69  
70  <div id="loading-overlay" class="loading-overlay">
71    <div class="loading-content">
72      
73      <div class="loading-spinner"></div>
74      
75      <div class="loading-title">加载中...</div>
76    </div>
77  </div>
78  
79
80  <!-- 流星背景 -->
81  <div class="bg-container">
82    <div class="bg-stars" id="bg-stars"></div>
83  </div>
84
85  <header class="site-header" id="siteHeader">
86  <div class="header-inner">
87    <div class="top-bar">
88
89      
90      <div class="top-bar__left">
91        
92        <a href="https://kemeow0815.github.io" class="site-avatar-link" aria-label="返回首页">
93          <img class="site-avatar" src="https://jsd.268682.xyz/gh/Kemeow0815/img@main/img/kemeow0815.webp" alt="喵洛阁" />
94        </a>
95        
96        <a href="https://kemeow0815.github.io" class="site-name-link">喵洛阁</a>
97      </div>
98
99      
100      <nav class="top-bar__nav" id="sectionBar">
101        
102        
103          
104          
105          <a class="nav-item" href="https://kemeow0815.github.io/">🏠首页</a>
106          
107        
108          
109          
110          <div class="nav-item-wrapper">
111            <div class="nav-item nav-item--has-children" data-menu-id="menu-2">
112              <a class="nav-item__link" href="javascript:void(0);">📖文章</a>
113              <svg class="nav-item__arrow" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
114                <polyline points="6 9 12 15 18 9"></polyline>
115              </svg>
116            </div>
117            <div class="nav-submenu" id="submenu-menu-2">
118              
119              <a class="nav-submenu__item" href="/post">📚全部文章</a>
120              
121              <a class="nav-submenu__item" href="/archives">📦归档</a>
122              
123              <a class="nav-submenu__item" href="/tags">🔖标签</a>
124              
125            </div>
126          </div>
127          
128        
129          
130          
131          <a class="nav-item" href="/memos">📝闪念</a>
132          
133        
134          
135          
136          <div class="nav-item-wrapper">
137            <div class="nav-item nav-item--has-children" data-menu-id="menu-4">
138              <a class="nav-item__link" href="javascript:void(0);">🔗链接</a>
139              <svg class="nav-item__arrow" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
140                <polyline points="6 9 12 15 18 9"></polyline>
141              </svg>
142            </div>
143            <div class="nav-submenu" id="submenu-menu-4">
144              
145              <a class="nav-submenu__item" href="/links">🧑‍🤝‍🧑友链</a>
146              
147              <a class="nav-submenu__item" href="/post/fcircle">💬朋友圈</a>
148              
149            </div>
150          </div>
151          
152        
153          
154          
155          <div class="nav-item-wrapper">
156            <div class="nav-item nav-item--has-children" data-menu-id="menu-5">
157              <a class="nav-item__link" href="javascript:void(0);">📔页面</a>
158              <svg class="nav-item__arrow" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
159                <polyline points="6 9 12 15 18 9"></polyline>
160              </svg>
161            </div>
162            <div class="nav-submenu" id="submenu-menu-5">
163              
164              <a class="nav-submenu__item" href="/post/sponsor">💗赞助</a>
165              
166              <a class="nav-submenu__item" href="/post/timetable">🗓️课程表</a>
167              
168            </div>
169          </div>
170          
171        
172          
173          
174          <a class="nav-item" href="/post/about">🫠关于</a>
175          
176        
177        
178      </nav>
179
180      
181      <div class="top-bar__right">
182        <button class="btn-icon btn-theme" id="btnTheme" type="button" aria-label="切换主题">
183          
184          <svg class="theme-icon-moon" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
185            <path d="M20.742 13.045a8 8 0 0 1-2.077.271c-2.135 0-4.14-.83-5.646-2.336a8.03 8.03 0 0 1-2.064-7.723A1 1 0 0 0 9.73 2.034a10 10 0 0 0-4.489 2.582c-3.898 3.898-3.898 10.243 0 14.143a9.94 9.94 0 0 0 7.072 2.93a9.93 9.93 0 0 0 7.07-2.929a10 10 0 0 0 2.583-4.491a1 1 0 0 0-1.224-1.224m-2.772 4.301a7.95 7.95 0 0 1-5.656 2.343a7.95 7.95 0 0 1-5.658-2.344c-3.118-3.119-3.118-8.195 0-11.314a8 8 0 0 1 2.06-1.483a10.03 10.03 0 0 0 2.89 7.848a9.97 9.97 0 0 0 7.848 2.891a8 8 0 0 1-1.484 2.059"/>
186          </svg>
187          
188          <svg class="theme-icon-sun" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
189            <circle cx="12" cy="12" r="4"/>
190            <path d="M12 2v2"/>
191            <path d="M12 20v2"/>
192            <path d="m4.93 4.93 1.41 1.41"/>
193            <path d="m17.66 17.66 1.41 1.41"/>
194            <path d="M2 12h2"/>
195            <path d="M20 12h2"/>
196            <path d="m6.34 17.66-1.41 1.41"/>
197            <path d="m19.07 4.93-1.41 1.41"/>
198          </svg>
199        </button>
200        <button class="btn-icon btn-search search-btn" id="btnSearch" type="button" aria-label="搜索">
201          <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
202            stroke-linecap="round" stroke-linejoin="round">
203            <circle cx="11" cy="11" r="8"></circle>
204            <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
205          </svg>
206        </button>
207        <button class="btn-icon btn-nav-toggle mobile-only" id="btnNavToggle" type="button" aria-label="切换导航">
208          <div class="hamburger" id="hamburger">
209            <span class="hamburger__line hamburger__line--top"></span>
210            <span class="hamburger__line hamburger__line--bottom"></span>
211          </div>
212        </button>
213      </div>
214
215    </div>
216  </div>
217</header>
218
219
220<div class="header-spacer"></div>
221
222<script>
223(function(){
224  // Mobile nav toggle
225  var btn = document.getElementById('btnNavToggle');
226  var nav = document.getElementById('sectionBar');
227  var hamburger = document.getElementById('hamburger');
228  if (!btn || !nav) return;
229  btn.addEventListener('click', function(){
230    nav.classList.toggle('top-bar__nav--open');
231    if (hamburger) hamburger.classList.toggle('is-active');
232  });
233
234  // Submenu toggle for mobile
235  var navItemsWithChildren = document.querySelectorAll('.nav-item--has-children');
236  navItemsWithChildren.forEach(function(item) {
237    item.addEventListener('click', function(e) {
238      // Only handle click on mobile
239      if (window.innerWidth > 768) return;
240      
241      e.preventDefault();
242      e.stopPropagation();
243      
244      var menuId = this.getAttribute('data-menu-id');
245      var submenu = document.getElementById('submenu-' + menuId);
246      
247      // Close other open submenus
248      navItemsWithChildren.forEach(function(otherItem) {
249        if (otherItem !== item) {
250          var otherMenuId = otherItem.getAttribute('data-menu-id');
251          var otherSubmenu = document.getElementById('submenu-' + otherMenuId);
252          if (otherSubmenu && otherSubmenu.classList.contains('nav-submenu--open')) {
253            otherSubmenu.classList.remove('nav-submenu--open');
254            otherItem.classList.remove('nav-item--expanded');
255          }
256        }
257      });
258      
259      // Toggle current submenu
260      if (submenu) {
261        submenu.classList.toggle('nav-submenu--open');
262        this.classList.toggle('nav-item--expanded');
263      }
264    });
265  });
266
267  // Close mobile nav when clicking on simple nav items
268  nav.querySelectorAll('.nav-item:not(.nav-item--has-children)').forEach(function(item){
269    item.addEventListener('click', function(){
270      nav.classList.remove('top-bar__nav--open');
271      if (hamburger) hamburger.classList.remove('is-active');
272    });
273  });
274
275  // Theme toggle with performance optimization
276  var themeBtn = document.getElementById('btnTheme');
277  if (themeBtn) {
278    themeBtn.addEventListener('click', function() {
279      var currentTheme = document.documentElement.getAttribute('data-theme') || 'dark';
280      var newTheme = currentTheme === 'dark' ? 'light' : 'dark';
281      
282      // Add class to disable transitions during theme change
283      document.body.classList.add('theme-changing');
284      
285      // Use requestAnimationFrame for smooth theme switch
286      requestAnimationFrame(function() {
287        document.documentElement.setAttribute('data-theme', newTheme);
288        localStorage.setItem('theme', newTheme);
289        
290        // Remove the class after theme change is complete
291        requestAnimationFrame(function() {
292          document.body.classList.remove('theme-changing');
293        });
294      });
295    });
296  }
297})();
298</script>
298
299
300
301  <main class="site-main" role="main">
302    
303<div id="about-container">
304  <!-- 顶部区域 -->
305  <section class="top-section">
306    <div class="top-content">
307      <div class="float-texts float-texts--left">
308        
309          🐝 博客写作者
310🧱 博客魔改者
311👷‍♀️ 只会CTRL CV
312🐔 乐观不悲观
313喜欢大晴天 👱‍♀️
314小说爱好者 📔
315ai使用者 🤖
316摆烂小笨猪 🐗
317        
318      </div>
319      <div class="avatar-container">
320        
321          <img class="no-lightbox avatar" src="https://jsd.268682.xyz/gh/Kemeow0815/img@main/img/kemeow0815.webp" alt="avatar">
322        
323      </div>
324      <div class="float-texts float-texts--right">
325        
326          🐝 博客写作者
327🧱 博客魔改者
328👷‍♀️ 只会CTRL CV
329🐔 乐观不悲观
330喜欢大晴天 👱‍♀️
331小说爱好者 📔
332ai使用者 🤖
333摆烂小笨猪 🐗
334        
335      </div>
336    </div>
337    <div class="site-name">喵洛阁</div>
338    <div class="motto">总有些事情,高于其他!</div>
339    
340    <a href="https://github.com/Kemeow0815/Friend-Circle-Lite/issues/new?template=%E9%82%AE%E7%AE%B1%E8%AE%A2%E9%98%85.md" target="_blank" rel="noopener" class="about-github-btn">
341      <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20"><path d="M496 48a448 448 0 1 0 0 896 448 448 0 1 0 0-896z" fill="#8B8E98"></path><path d="M496 864a368 368 0 1 1 368-368 368 368 0 0 1-368 368z" fill="#7E8189"></path><path d="M577.28 693.6A176 176 0 0 1 624 800v84c0 8.8 3.68 34.08 14.4 36.96L496 946.88l-144-25.76c11.52-2.56 16-28.32 16-37.12V832c-124.64 27.04-150.4-68.8-150.4-68.8-20.48-51.68-49.76-65.6-49.76-65.6-40.64-27.68 3.04-27.2 3.04-27.2A94.24 94.24 0 0 1 240 716.64c40 68.32 103.04 62.72 128 51.36 4.16-28.96 33.6-62.88 46.4-74.08-99.52-11.36-204.16-49.76-204.16-221.44A173.28 173.28 0 0 1 256 352a161.44 161.44 0 0 1 4.48-118.56s37.6-12 123.2 45.92a425.76 425.76 0 0 1 224 0c85.44-57.92 123.04-45.92 123.04-45.92A161.44 161.44 0 0 1 736 352a173.28 173.28 0 0 1 45.92 120.16c-0.16 172.48-104.8 210.4-204.64 221.44z" fill="#FAEFDE"></path><path d="M496 32a464 464 0 0 0-152.64 902.08 16 16 0 0 0 8.8 3.04A464 464 0 1 0 496 32z m-116.8 880a99.52 99.52 0 0 0 4.8-27.84v-8.64V832a16 16 0 0 0-19.36-16c-107.52 23.36-130.72-54.08-131.68-57.28v-1.76a151.04 151.04 0 0 0-48-67.84 85.92 85.92 0 0 1 40.96 35.2c42.24 72.48 112 74.4 148.8 57.92a16 16 0 0 0 9.28-12.32 137.92 137.92 0 0 1 40.96-64 16 16 0 0 0-8.96-27.84c-93.92-10.72-189.92-43.52-189.92-205.44a157.12 157.12 0 0 1 41.92-109.44 16 16 0 0 0 4-16.96 141.44 141.44 0 0 1 0-97.44c13.6 0 46.72 6.24 102.72 44.16a16 16 0 0 0 13.28 2.24 408.96 408.96 0 0 1 215.68 0 16 16 0 0 0 13.28-2.24c56.16-38.08 89.44-43.84 102.56-44.32a141.92 141.92 0 0 1 1.12 97.6 16 16 0 0 0 3.04 16.8 157.12 157.12 0 0 1 41.76 109.44c0 162.08-96 194.72-190.24 205.12a16 16 0 0 0-8.64 28A163.2 163.2 0 0 1 608 800v84a100.48 100.48 0 0 0 4.64 28 429.76 429.76 0 0 1-233.44 0z m264-9.6a66.08 66.08 0 0 1-3.2-18.08V800a186.56 186.56 0 0 0-32-94.56c88.8-15.04 190.24-61.12 190.24-232.96a188.16 188.16 0 0 0-43.84-123.68 183.04 183.04 0 0 0-7.68-120.96 16 16 0 0 0-9.92-9.28c-4.48-1.44-45.6-12.16-130.88 43.84a441.76 441.76 0 0 0-218.56 0c-85.28-56-126.4-45.28-130.88-43.84a16 16 0 0 0-9.92 9.28 182.72 182.72 0 0 0-7.68 120.96 188 188 0 0 0-43.84 123.68c0 170.4 99.68 217.28 187.68 232.96a152.16 152.16 0 0 0-27.84 50.56c-22.72 6.4-69.44 6.56-100.64-47.04a110.4 110.4 0 0 0-82.4-54.4c-8.64 0-30.4 1.44-35.52 18.08s14.56 32 23.36 38.4l2.08 1.12c0.96 0 24.32 12.8 41.6 56.48 3.68 11.36 35.52 97.6 149.6 82.4v32.96a64 64 0 0 1-3.36 18.08 432 432 0 1 1 294.56 0z" fill="#8D6C9F"></path><path d="M496 592a16 16 0 0 0-16 16v32a16 16 0 0 0 32 0v-32a16 16 0 0 0-16-16z m73.6 40.48a16 16 0 0 0 30.88-8.48L592 593.28a16 16 0 0 0-30.88 8.32z m-221.6-80.16a16 16 0 0 0-21.92 5.92l-16 27.68a16 16 0 0 0 27.68 16l16-27.68a16 16 0 0 0-5.76-21.92z m306.08 49.6a16 16 0 1 0 27.68-16l-16-27.68a16 16 0 0 0-27.68 16z m-234.72-20a16 16 0 0 0-19.52 11.36L391.52 624a16 16 0 1 0 30.88 8.32l8.32-30.88a16 16 0 0 0-11.36-19.52zM661.6 151.36a363.36 363.36 0 0 0-36.8-16 16 16 0 0 0-11.2 29.92 337.6 337.6 0 0 1 33.6 14.72 16 16 0 0 0 7.2 1.76 16 16 0 0 0 7.2-30.24z m-107.2-34.72a369.28 369.28 0 0 0-240 43.52 16 16 0 0 0 8 29.92 16 16 0 0 0 7.84-2.08 337.6 337.6 0 0 1 219.2-39.68 16 16 0 1 0 5.12-32z" fill="#8D6C9F"></path></svg>
342      <span>Follow Me 🛫</span>
343    </a>
344    
345  </section>
346
347  <!-- 信息区域 -->
348  <section class="info-section">
349    <div class="left-column card">
350      <div class="personal-info">
351        <h2 class="section-title">个人信息</h2>
352        <div class="info-grid">
353          
354          <p><strong>姓名:</strong> MCY</p>
355          
356          
357          <p><strong>性别:</strong> 男</p>
358          
359          
360          <p><strong>地址:</strong> 江苏苏州</p>
361          
362          
363          <p><strong>学校:</strong> 南京工业职业技术大学</p>
364          
365          
366          <p><strong>年级:</strong> 二〇二三级</p>
367          
368          
369          <p><strong>专业:</strong> 自动化技术与应用</p>
370          
371          
372          <p><strong>邮箱:</strong> <a href="mailto:[email protected]">[email protected]</a></p>
373          
374          
375          <p><strong>QQ:</strong> 3813596020</p>
376          
377          
378          <p><strong>生日:</strong> 2005/08/15</p>
379          
380        </div>
381      </div>
382      <div class="flex-1"></div>
383      
384      <img class="left-column-bottom" src="https://cdn.jsdmirror.com/gh/zsxcoder/github-img@main/img/umami.avif" alt="">
385      
386    </div>
387    <div class="right-column">
388      <div class="personality card">
389        <div class="personality-info">
390          
391          <p class="type">INFJ-T</p>
392          
393          
394          <p class="type_name">提倡者</p>
395          
396          <div class="flex-1"></div>
397          
398          <p class="learn_more">
399            点击在 <a href="https://www.16personalities.com/ch/infj-%E4%BA%BA%E6%A0%BC" target="_blank" rel="noopener nofollower">16Personalities</a> 上了解更多
400          </p>
401          
402        </div>
403        
404        <div class="personality-svg">
405          <img class="no-lightbox svg" src="https://cdn.jsdmirror.com/gh/zsxcoder/github-img@main/img/infj.avif" alt="Personality SVG">
406        </div>
407        
408      </div>
409
410      <div class="description-and-social card">
411        
412        <p class="description">大家好!这里是克喵的小站。你可以称呼我「克喵」或者「钟神秀」。我不大聊天,你找我我会回,但是聊不长,喜欢一个人待着。名字来源于小说《诡秘之主》。我在这个博客记录我的生活日常、踩坑教程和资源分享。希望你喜欢我的博客!</p>
413        
414        
415        <div class="social-links" data-social-links="[
416      {
417        &quot;platform&quot;: &quot;GitHub&quot;,
418        &quot;url&quot;: &quot;https://github.com/yxksw&quot;,
419        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/github.svg&quot;
420      },
421      {
422        &quot;platform&quot;: &quot;Gitee&quot;,
423        &quot;url&quot;: &quot;https://gitee.com/kemiaoshiwo&quot;,
424        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/gitee.svg&quot;
425      },
426      {
427        &quot;platform&quot;: &quot;QQ&quot;,
428        &quot;url&quot;: &quot;https://qm.qq.com/q/kz5EuEimk0&quot;,
429        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/qq.svg&quot;
430      },
431      {
432        &quot;platform&quot;: &quot;BliBili&quot;,
433        &quot;url&quot;: &quot;https://space.bilibili.com/3546643173477234&quot;,
434        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/bilibili.svg&quot;
435      },
436      {
437        &quot;platform&quot;: &quot;Telegram&quot;,
438        &quot;url&quot;: &quot;https://t.me/yxksw&quot;,
439        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/telegram.svg&quot;
440      },
441      {
442        &quot;platform&quot;: &quot;即刻&quot;,
443        &quot;url&quot;: &quot;https://web.okjike.com/u/07152f0c-0f65-4501-855b-031f3e20e4a5&quot;,
444        &quot;icon&quot;: &quot;https://cdn.jsdmirror.com/gh/yxksw/icons@main/socials/jike.svg&quot;
445      }
446    ]">
447          <!-- 社交链接将由 JS 渲染 -->
448        </div>
449        
450      </div>
451    </div>
452  </section>
453
454  <!-- 技能和项目 -->
455  <section class="skills-and-projects">
456    <div class="skills card">
457      <h2 class="section-title">技能</h2>
458      <div class="skills-grid">
459        
460        <div class="skill-category skill-category--technical" data-skills="https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/astro.svg
461https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/node.svg
462https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/nuxt.svg
463https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/php.svg
464https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/ts.svg
465https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/vue.svg">
466          <!-- 技术技能将由 JS 渲染 -->
467        </div>
468        
469        
470        <div class="skill-category category-2 skill-category--general" data-skills="https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/css.svg
471https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/git.svg
472https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/html.svg
473https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/js.svg
474https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/markdown.svg
475https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/nextjs.svg
476https://cdn.jsdmirror.com/gh/yxksw/icons@main/skills/vite.svg">
477          <!-- 通用技能将由 JS 渲染 -->
478        </div>
479        
480      </div>
481      
482      <p class="learning">正在持续学习中</p>
483      
484    </div>
485    <div class="projects card">
486      <h2 class="section-title">项目</h2>
487      <div class="projects-grid" data-projects="    [{
488      &quot;name&quot;: &quot;yxk-blog&quot;,
489      &quot;description&quot;: &quot;博客源码&quot;,
490      &quot;url&quot;: &quot;https://github.com/yxksw/yxk-blog&quot;
491    }]">
492        <!-- 项目将由 JS 渲染 -->
493      </div>
494    </div>
495  </section>
496
497  <!-- 爱好和评价 -->
498  <section class="hobbies-and-evaluation">
499    <div class="hobbies card">
500      <h2 class="section-title">爱好</h2>
501      <ul class="hobbies-list" data-hobbies="阅读
502小说
503编程
504魔改">
505        <!-- 爱好将由 JS 渲染 -->
506      </ul>
507    </div>
508    <div class="self-evaluation card">
509      <h2 class="section-title">评价</h2>
510      
511      <p><strong>思想:</strong> 思想上乐观开朗,乐于助人,具有团队协作精神及创新意识。</p>
512      
513      
514      <p><strong>工作:</strong> 工作上极富责任心与信念感,对待工作认真负责,有较强的组织管理及动手能力。</p>
515      
516      
517      <p class="summary"><strong>总结:</strong> 人嘎嘎好!</p>
518      
519    </div>
520  </section>
521</div>
522
523<script>
524(function() {
525  // 解析浮动标签
526  function renderFloatTexts() {
527    const leftContainer = document.querySelector('.float-texts--left');
528    const rightContainer = document.querySelector('.float-texts--right');
529    const floatTextData = leftContainer ? leftContainer.textContent.trim() : '';
530    
531    if (!floatTextData) return;
532    
533    const texts = floatTextData.split('\n').filter(t => t.trim());
534    
535    leftContainer.innerHTML = '';
536    rightContainer.innerHTML = '';
537    
538    texts.slice(0, 4).forEach((text, index) => {
539      const div = document.createElement('div');
540      div.className = `float-text float-text-${index + 1}`;
541      div.textContent = text.trim();
542      leftContainer.appendChild(div);
543    });
544    
545    texts.slice(4, 8).forEach((text, index) => {
546      const div = document.createElement('div');
547      div.className = `float-text float-text-${index + 5}`;
548      div.textContent = text.trim();
549      rightContainer.appendChild(div);
550    });
551  }
552  
553  // 解析社交链接
554  function renderSocialLinks() {
555    const container = document.querySelector('.social-links');
556    if (!container) return;
557    
558    const data = container.getAttribute('data-social-links');
559    if (!data) return;
560    
561    try {
562      const links = JSON.parse(data);
563      container.innerHTML = links.map(link => `
564        <a href="${escapeHtml(link.url)}" target="_blank" rel="noopener">
565          <img class="no-lightbox" src="${escapeHtml(link.icon)}" alt="${escapeHtml(link.platform)}">
566        </a>
567      `).join('');
568    } catch (e) {
569      console.error('社交链接解析失败:', e);
570    }
571  }
572  
573  // 解析技能
574  function renderSkills() {
575    document.querySelectorAll('.skill-category').forEach(container => {
576      const data = container.getAttribute('data-skills');
577      if (!data) return;
578      
579      const skills = data.split('\n').filter(s => s.trim());
580      container.innerHTML = skills.map(skill => `
581        <div class="skill-card">
582          <img src="${escapeHtml(skill.trim())}" alt="技能图标">
583        </div>
584      `).join('');
585    });
586  }
587  
588  // 解析项目
589  function renderProjects() {
590    const container = document.querySelector('.projects-grid');
591    if (!container) return;
592    
593    const data = container.getAttribute('data-projects');
594    if (!data) return;
595    
596    try {
597      const projects = JSON.parse(data);
598      container.innerHTML = projects.map(project => `
599        <div class="project">
600          <a href="${escapeHtml(project.url)}" target="_blank" rel="noopener">
601            <h3>${escapeHtml(project.name)}</h3>
602            <p>${escapeHtml(project.description)}</p>
603          </a>
604        </div>
605      `).join('');
606    } catch (e) {
607      console.error('项目解析失败:', e);
608    }
609  }
610  
611  // 解析爱好
612  function renderHobbies() {
613    const container = document.querySelector('.hobbies-list');
614    if (!container) return;
615    
616    const data = container.getAttribute('data-hobbies');
617    if (!data) return;
618    
619    const hobbies = data.split('\n').filter(h => h.trim());
620    container.innerHTML = hobbies.map(hobby => `
621      <li>${escapeHtml(hobby.trim())}</li>
622    `).join('');
623  }
624  
625  // HTML转义
626  function escapeHtml(text) {
627    const div = document.createElement('div');
628    div.textContent = text;
629    return div.innerHTML;
630  }
631  
632  // 初始化
633  if (document.readyState === 'loading') {
634    document.addEventListener('DOMContentLoaded', function() {
635      renderFloatTexts();
636      renderSocialLinks();
637      renderSkills();
638      renderProjects();
639      renderHobbies();
640    });
641  } else {
642    renderFloatTexts();
643    renderSocialLinks();
644    renderSkills();
645    renderProjects();
646    renderHobbies();
647  }
648})();
649</script>
649
650
651  </main>
652
653  <footer class="site-footer">
654  <div class="footer-inner">
655
656    
657    
658    
659    <nav class="footer-nav" aria-label="页脚导航" id="footer-nav-custom">
660    </nav>
661    
661<script>
662      (function() {
663        var navData = [
664  {"name": "主页", "link": "https://www.kemiaosw.top"},
665  {"name": "BLog", "link": "https://kemeow0815.github.io/blog"},
666  {"name": "友链屋", "link": "https://www.268682.xyz"}, {"name": "Gwitter", "link": "https://gwitter.268682.xyz"}
667];
668        if (Array.isArray(navData)) {
669          var navHtml = '';
670          navData.forEach(function(item) {
671            navHtml += '<a class="footer-nav__link" href="' + item.link + '">' + item.name + '</a>';
672          });
673          document.getElementById('footer-nav-custom').innerHTML = navHtml;
674        }
675      })();
676    </script>
676
677    
678
679    
680    <div class="footer-social">
681      
682      <a class="footer-social__link" href="https://github.com/Kemeow0815" target="_blank" rel="noopener noreferrer"
683        aria-label="GitHub">
684        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
685          <path
686            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" />
687        </svg>
688      </a>
689      
690      
691      
692      
693      <a class="footer-social__link" href="https://t.me/Kemeow0815" target="_blank" rel="noopener noreferrer"
694        aria-label="Telegram">
695        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
696          <path d="M12 0C5.37 0 0 5.37 0 12s5.37 12 12 12 12-5.37 12-12S18.63 0 12 0zm5.95 8.24l-2.17 10.24c-.16.73-.6.9-1.22.56l-3.37-2.48-1.63 1.56c-.18.18-.33.33-.68.33l.24-3.44 6.25-5.65c.27-.24-.06-.37-.42-.13l-7.72 4.86-3.33-1.04c-.72-.23-.74-.72.15-1.06l13.02-5.02c.6-.22 1.12.14.93 1.03z"/>
697        </svg>
698      </a>
699      
700      
701      <a class="footer-social__link" href="https://qm.qq.com/q/kz5EuEimk0" target="_blank" rel="noopener noreferrer"
702        aria-label="QQ">
703        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
704          <path d="M12.003 2c-2.265 0-6.29 1.364-6.29 7.325v1.195S3.55 14.96 3.55 17.474c0 .665.17 1.025.281 1.025.114 0 .902-.484 1.748-2.072 0 0-.18 2.197 1.904 3.967 0 0-1.77.495-1.77 1.182 0 .686 4.078.43 6.29.43 2.21 0 6.288.256 6.288-.43 0-.687-1.768-1.182-1.768-1.182 2.085-1.77 1.905-3.967 1.905-3.967.845 1.588 1.634 2.072 1.746 2.072.111 0 .283-.36.283-1.025 0-2.514-2.166-6.954-2.166-6.954V9.325C18.29 3.364 14.268 2 12.003 2z"/>
705        </svg>
706      </a>
707      
708      
709      <a class="footer-social__link" href="https://space.bilibili.com/3546643173477234" target="_blank" rel="noopener noreferrer"
710        aria-label="Bilibili">
711        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
712          <path d="M17.813 4.653h.854c1.51.054 2.769.578 3.773 1.574 1.004.995 1.524 2.249 1.56 3.76v7.36c-.036 1.51-.556 2.769-1.56 3.773s-2.262 1.524-3.773 1.56H5.333c-1.51-.036-2.769-.556-3.773-1.56S.036 18.858 0 17.347v-7.36c.036-1.511.556-2.765 1.56-3.76 1.004-.996 2.262-1.52 3.773-1.574h.774l-1.174-1.12a1.234 1.234 0 0 1-.373-.906c0-.356.124-.658.373-.907l.027-.027c.267-.249.573-.373.92-.373.347 0 .653.124.92.373L9.653 4.44c.071.071.134.142.187.213h4.267a.836.836 0 0 1 .16-.213l2.853-2.747c.267-.249.573-.373.92-.373.347 0 .662.151.929.4.267.249.391.551.391.907 0 .355-.124.657-.373.906zM5.333 7.24c-.746.018-1.373.276-1.88.773-.506.498-.769 1.13-.786 1.894v7.52c.017.764.28 1.395.786 1.893.507.498 1.134.756 1.88.773h13.334c.746-.017 1.373-.275 1.88-.773.506-.498.769-1.129.786-1.893v-7.52c-.017-.765-.28-1.396-.786-1.894-.507-.497-1.134-.755-1.88-.773zM8 11.107c.373 0 .684.124.933.373.25.249.383.569.4.96v1.173c-.017.391-.15.711-.4.96-.249.25-.56.374-.933.374s-.684-.125-.933-.374c-.25-.249-.383-.569-.4-.96V12.44c0-.373.129-.689.386-.947.258-.257.574-.386.947-.386zm8 0c.373 0 .684.124.933.373.25.249.383.569.4.96v1.173c-.017.391-.15.711-.4.96-.249.25-.56.374-.933.374s-.684-.125-.933-.374c-.25-.249-.383-.569-.4-.96V12.44c.017-.391.15-.711.4-.96.249-.249.56-.373.933-.373z"/>
713        </svg>
714      </a>
715      
716      
717      <a class="footer-social__link" href="https://web.okjike.com/u/07152f0c-0f65-4501-855b-031f3e20e4a5" target="_blank" rel="noopener noreferrer"
718        aria-label="即刻">
719        <svg width="20" height="20" viewBox="0 0 1024 1024" fill="currentColor">
720          <path d="M660.39 123.63v463.59S645.04 726.4 558.98 771.43c-53.12 31.21-128.85 67.54-228.63 70.61l58.33 58.33s175-15.35 254.82-87.5 82.89-159.9 82.89-194.31V172.75l-66-49.12z" fill="#62B2E4"/>
721          <path d="M660.39 123.63v463.58s-15.36 139.17-101.41 184.21c-53.12 31.22-128.85 67.54-228.62 70.62L297.6 702.85s70.62-13.31 117.71-28.64c47.07-15.36 72-95.19 72-95.19V123.63h173.08z" fill="#F3DB2B"/>
722        </svg>
723      </a>
724      
725      
726      <a class="footer-social__link" href="mailto:[email protected]" aria-label="邮箱">
727        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
728          <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
729        </svg>
730      </a>
731      
732      <a class="footer-social__link" href="/feed.xml" aria-label="RSS">
733        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
734          <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"/>
735        </svg>
736      </a>
737    </div>
738
739    
740    <div class="footer-copyright">
741      <p>&copy; 2026 喵洛阁. All rights reserved.</p>
742    </div>
743
744    
745    
746    <div class="footer-custom">
747      <span id="runtime_span" style="text-align: center;"></span>
748<br>
749<script defer src="https://busuanzi.9420.ltd/js"></script>
749
750<div style="text-align: center;">
751    本站总访问量 <span id="busuanzi_site_pv"></span> 次
752    本站总访客数 <span id="busuanzi_site_uv"></span> 人
753</div>
754<!-- 引入 CSS (HEAD标签内) -->
755<link rel="stylesheet" href="https://cdn.268682.xyz/music/netease-mini-player-v2.css">
756
757<!-- 引入 JS (BODY标签底部) -->
758<script src="https://cdn.268682.xyz/music/netease-mini-player-v2.js"></script>
758
759<div class="netease-mini-player"
760     data-playlist-id="13681647281"
761     data-embed="false"
762     data-position="bottom-left"
763     data-lyric="true"
764     data-theme="auto"
765     data-default-minimized="true"
766></div>
767    </div>
768    
769
770    
771    <div class="footer-powered">
772      <span>Powered by <a href="https://gridea.pro" target="_blank" rel="noopener noreferrer">Gridea Pro</a></span>
773    </div>
774
775  </div>
776</footer>
777
778  
779  <div class="search-overlay" id="searchOverlay" style="display:none;">
780  <div class="search-modal">
781    <div class="search-header">
782      <svg class="search-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor"
783        stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
784        <circle cx="11" cy="11" r="8"></circle>
785        <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
786      </svg>
787      <input type="text" class="search-input" id="searchInput" placeholder="搜索文章..." autocomplete="off" />
788      <span class="search-kbd">&#8984;K</span>
789      <button class="search-close" id="searchClose" type="button" aria-label="关闭搜索">
790        <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
791          stroke-linecap="round" stroke-linejoin="round">
792          <line x1="18" y1="6" x2="6" y2="18"></line>
793          <line x1="6" y1="6" x2="18" y2="18"></line>
794        </svg>
795      </button>
796    </div>
797    <div class="search-results" id="searchResults"></div>
798  </div>
799</div>
800
801<script src="/scripts/search.js"></script>
801
802  
803
804  
805
806  
807
808  
809  
809<script>function show_runtime() {
810  var X = new Date("2024/11/1 12:00:00");
811  var Y = new Date();
812  var T = Y.getTime() - X.getTime();
813  var M = 24 * 60 * 60 * 1000;
814  var a = T / M;
815  var A = Math.floor(a);
816  var b = (a - A) * 24;
817  var B = Math.floor(b);
818  var c = (b - B) * 60;
819  var C = Math.floor((b - B) * 60);
820  var D = Math.floor((c - C) * 60);
821  document.getElementById("runtime_span").innerHTML = "⏱️本站已运行 " + A + "天" + B + "小时" + C + "分" + D + "秒";
822  setTimeout(show_runtime, 1000);
823}
824show_runtime();</script>
824
825  
826
827  <!-- 加载页面脚本 -->
828  
829  
829<script>
830  (function() {
831    // 页面加载完成后隐藏加载动画
832    function hideLoadingOverlay() {
833      const overlay = document.getElementById('loading-overlay');
834      if (overlay) {
835        overlay.classList.add('fade-out');
836        setTimeout(function() {
837          overlay.style.display = 'none';
838        }, 600);
839      }
840    }
841    
842    // 等待页面完全加载
843    if (document.readyState === 'complete') {
844      hideLoadingOverlay();
845    } else {
846      window.addEventListener('load', hideLoadingOverlay);
847    }
848  })();
849  </script>
849
850  
851
852  <!-- 流星背景脚本 - 性能优化 -->
853  
853<script>
854  (function() {
855    const starsContainer = document.getElementById('bg-stars');
856    if (!starsContainer) return;
857    
858    // 检测移动端和性能模式
859    const isMobile = window.matchMedia('(max-width: 750px)').matches;
860    const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
861    
862    // 根据设备调整流星数量
863    const starCount = isMobile ? 15 : (prefersReducedMotion ? 0 : 25);
864    
865    // 使用 DocumentFragment 批量添加
866    const fragment = document.createDocumentFragment();
867    
868    for (let i = 0; i < starCount; i++) {
869      const star = document.createElement('div');
870      star.className = 'bg-star';
871      
872      // 随机参数 - 使用整数避免过多重绘
873      const topOffset = Math.floor(Math.random() * 130) + 'vh';
874      const fallDuration = (Math.floor(Math.random() * 8) + 6) + 's';
875      const fallDelay = (Math.floor(Math.random() * 15)) + 's';
876      
877      star.style.setProperty('--top-offset', topOffset);
878      star.style.setProperty('--fall-duration', fallDuration);
879      star.style.setProperty('--fall-delay', fallDelay);
880      
881      fragment.appendChild(star);
882    }
883    
884    starsContainer.appendChild(fragment);
885  })();
886  </script>
886
887
888<script>console.log("\n%c ✦ Gridea Pro v1.1.1 %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>
888
889</body>
890</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.