1<!DOCTYPE html><html lang="zh-Hans"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>Home ⢠Usubeni Fantasy</title><link rel="icon" href="/favicon.ico" sizes="any"><link rel="icon" href="/favicon-32x32.png" type="image/png"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/manifest.webmanifest"><link rel="canonical" href="https://ssshooter.com/"><meta name="title" content="Home ⢠Usubeni Fantasy"><meta name="description" content="Welcome to Usubeni Fantasy."><meta name="author" content="SSShooter"><meta name="theme-color" content=""><meta property="og:type" content="website"><meta property="og:title" content="Home"><meta property="og:description" content="Welcome to Usubeni Fantasy."><meta property="og:url" content="https://ssshooter.com/"><meta property="og:site_name" content="Usubeni Fantasy"><meta property="og:locale" content="zh-Hans"><meta property="og:image" content="https://ssshooter.com/logo.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="twitter:card" content="summary_large_image"><meta property="twitter:url" content="https://ssshooter.com/"><meta property="twitter:title" content="Home"><meta property="twitter:description" content="Welcome to Usubeni Fantasy."><meta property="twitter:image" content="https://ssshooter.com/logo.png"><link rel="sitemap" href="/sitemap-index.xml"><link rel="alternate" type="application/rss+xml" title="Usubeni Fantasy" href="/rss.xml"><meta name="generator" content="Astro v5.16.11"><link rel="stylesheet" href="/_astro/_slug_.B7UJtWDw.css">
1<script type="module" src="/_astro/page.D1uwR3nK.js"></script>
1</head> <body>
1<script> 2 const lightModePref = window.matchMedia("(prefers-color-scheme: light)"); 3 4 function getUserPref() { 5 const storedTheme = typeof localStorage !== "undefined" && localStorage.getItem("theme"); 6 return storedTheme || (lightModePref.matches ? "light" : "dark"); 7 } 8 9 function setTheme(newTheme) { 10 if (newTheme !== "light" && newTheme !== "dark") { 11 return console.warn( 12 `Invalid theme value '${newTheme}' received. Expected 'light' or 'dark'.`, 13 ); 14 } 15 16 const root = document.documentElement; 17 18 // root already set to newTheme, exit early 19 if (newTheme === root.getAttribute("data-theme")) { 20 return; 21 } 22 23 root.setAttribute("data-theme", newTheme); 24 25 const colorThemeMetaTag = document.querySelector("meta[name='theme-color']"); 26 const bgColour = getComputedStyle(document.body).getPropertyValue("--theme-bg"); 27 colorThemeMetaTag.setAttribute("content", `hsl(${bgColour})`); 28 if (typeof localStorage !== "undefined") { 29 localStorage.setItem("theme", newTheme); 30 } 31 } 32 33 // initial setup 34 setTheme(getUserPref()); 35 36 // View Transitions hook to restore theme 37 document.addEventListener("astro:after-swap", () => setTheme(getUserPref())); 38 39 // listen for theme-change custom event, fired in src/components/ThemeToggle.astro 40 document.addEventListener("theme-change", (e) => { 41 setTheme(e.detail.theme); 42 }); 43 44 // listen for prefers-color-scheme change. 45 lightModePref.addEventListener("change", (e) => setTheme(e.matches ? "light" : "dark")); 46</script>
46 <a href="#main" class="sr-only focus:not-sr-only focus:fixed focus:start-1 focus:top-1.5">skip to content 47</a> <header id="main-header" class="group relative mb-28 flex items-center sm:ps-[4.5rem]"> <div class="flex sm:flex-col"> <a href="/" class="inline-flex items-center grayscale hover:filter-none sm:relative sm:inline-block" aria-current="page"> <img src="/logo-mobile.png" class="me-3 w-12 sm:absolute sm:start-[-4.5rem] sm:me-0" alt="usubeni fantasy logo"> <span class="text-xl font-bold sm:text-2xl">Usubeni Fantasy</span> </a> <nav id="navigation-menu" class="bg-bgColor/[.85] text-accent sm:divide-accent absolute -inset-x-4 top-14 hidden flex-col items-end gap-y-4 rounded-md py-4 shadow backdrop-blur group-[.menu-open]:z-50 group-[.menu-open]:flex sm:static sm:z-auto sm:-ms-4 sm:mt-1 sm:flex sm:flex-row sm:items-center sm:divide-x sm:divide-dashed sm:rounded-none sm:bg-transparent sm:py-0 sm:shadow-none sm:backdrop-blur-none" aria-label="Main menu"> <a href="/archive/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> 彿¡£ </a><a href="/projects/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> é¡¹ç® </a><a href="/tags/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> æ ç¾ </a><a href="/about/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> å ³äº </a><a href="/links/" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> åé¾ </a><a href="https://www.foreverblog.cn/go.html" target="_blank" class="px-4 py-4 sm:py-0 sm:hover:underline" aria-current="false" data-astro-prefetch> è«æ´ </a> </nav> </div> <site-search id="search" class="ms-auto" data-astro-cid-otpdt6jm="true"> <button data-open-modal disabled class="flex h-9 w-9 items-center justify-center rounded-md ring-zinc-400 transition-all hover:ring-2" data-astro-cid-otpdt6jm> <svg aria-label="search" class="h-7 w-7" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-astro-cid-otpdt6jm> <path stroke="none" d="M0 0h24v24H0z" data-astro-cid-otpdt6jm></path> <path d="M3 10a7 7 0 1 0 14 0 7 7 0 1 0-14 0M21 21l-6-6" data-astro-cid-otpdt6jm></path> </svg> </button> <dialog aria-label="search" class="bg-bgColor h-full max-h-full w-full max-w-full border border-zinc-400 shadow backdrop:backdrop-blur sm:mx-auto sm:mb-auto sm:mt-16 sm:h-max sm:max-h-[calc(100%-8rem)] sm:min-h-[15rem] sm:w-5/6 sm:max-w-[48rem] sm:rounded-md" data-astro-cid-otpdt6jm> <div class="dialog-frame flex flex-col gap-4 p-6 pt-12 sm:pt-6" data-astro-cid-otpdt6jm> <button data-close-modal class="ms-auto cursor-pointer rounded-md bg-zinc-200 p-2 font-semibold dark:bg-zinc-700" data-astro-cid-otpdt6jm>Close</button> <div class="search-container" data-astro-cid-otpdt6jm> <div id="cactus__search" data-astro-cid-otpdt6jm></div> </div> </div> </dialog> </site-search>
47<script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.DR4bPvY2.js"></script>
47 <theme-toggle class="ms-2 sm:ms-4"> <button type="button" class="relative h-9 w-9 rounded-md p-2 ring-zinc-400 transition-all hover:ring-2"> <span class="sr-only">Dark Theme</span> <svg id="sun-svg" class="absolute start-1/2 top-1/2 h-7 w-7 -translate-x-1/2 -translate-y-1/2 scale-100 opacity-100 transition-all dark:scale-0 dark:opacity-0" aria-hidden="true" focusable="false" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 18C15.3137 18 18 15.3137 18 12C18 8.68629 15.3137 6 12 6C8.68629 6 6 8.68629 6 12C6 15.3137 8.68629 18 12 18Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M22 12L23 12" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M12 2V1" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M12 23V22" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M20 20L19 19" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M20 4L19 5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M4 20L5 19" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M4 4L5 5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> <path d="M1 12L2 12" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> </svg> <svg id="moon-svg" class="absolute start-1/2 top-1/2 h-7 w-7 -translate-x-1/2 -translate-y-1/2 scale-0 opacity-0 transition-all dark:scale-100 dark:opacity-100" aria-hidden="true" focusable="false" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path> <path d="M17 4a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"></path> <path d="M19 11h2m-1 -1v2"></path> </svg> </button> </theme-toggle>
47<script type="module" src="/_astro/ThemeToggle.astro_astro_type_script_index_0_lang.C50-sbGb.js"></script>
47 <language-toggle> <div class="relative ms-4"> <button id="language-toggle-btn" class="flex h-9 w-9 items-center justify-center rounded-md ring-zinc-400 transition-all hover:ring-2" type="button" aria-label="忢è¯è¨" aria-expanded="false" aria-haspopup="menu"> <svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"></path> </svg> </button> <div id="language-menu" class="bg-bgColor border-accent/20 absolute right-0 top-full z-50 mt-2 hidden w-24 rounded-md border shadow-lg"> <a href="/" class="hover:bg-accent/10 block rounded-t-md px-3 py-2 text-sm transition-colors" data-lang="zh"> 48䏿 49</a> <a href="/en/" class="hover:bg-accent/10 block rounded-b-md px-3 py-2 text-sm transition-colors" data-lang="en"> 50English 51</a> </div> </div> </language-toggle> <mobile-button> <button id="toggle-navigation-menu" class="group relative ms-4 h-7 w-7 sm:invisible sm:hidden" type="button" aria-label="Open main menu" aria-expanded="false" aria-haspopup="menu"> <svg id="line-svg" class="absolute start-1/2 top-1/2 h-full w-full -translate-x-1/2 -translate-y-1/2 transition-all group-aria-expanded:scale-0 group-aria-expanded:opacity-0" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 9h16.5m-16.5 6.75h16.5"></path> </svg> <svg id="cross-svg" class="text-accent absolute start-1/2 top-1/2 h-full w-full -translate-x-1/2 -translate-y-1/2 scale-0 opacity-0 transition-all group-aria-expanded:scale-100 group-aria-expanded:opacity-100" class="text-accent" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> </svg> </button> </mobile-button> </header>
51<script type="module" src="/_astro/Header.astro_astro_type_script_index_0_lang.DwkGhIAH.js"></script>
51 <main id="main"> <section aria-label="置顶" class="mb-12"><h2 class="title mb-4 text-xl">置顶</h2><ul class="space-y-4"><li class="flex flex-col gap-x-2 sm:flex-row"><time datetime="2024-09-28T13:31:21.298Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2024/09/28 </time><div><a href="/outrigger-maldives-maafushivaru-1/" class="cactus-link" data-astro-prefetch>ç³»å · 马å°ä»£å¤« Maafushivaru 乿
</a></div></li><li class="flex flex-col gap-x-2 sm:flex-row"><time datetime="2025-11-30T15:01:45.814Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2025/11/30 </time><div><a href="/kitten-large-language-model-1/" class="cactus-link" data-astro-prefetch>ç³»å · å°ç«é½è½æç大模ååç</a></div></li><li class="flex flex-col gap-x-2 sm:flex-row"><time datetime="2026-07-14T02:47:05.878Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/07/14 </time><div><a href="/memoirs-of-an-acger/" class="cactus-link" data-astro-prefetch>äºæ¬¡å
åå¿å½</a></div></li><li class="flex flex-col gap-x-2 sm:flex-row"><time datetime="2025-07-05T10:05:18.254Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2025/07/05 </time><div><a href="/how-to-use-mind-elixir/" class="cactus-link" data-astro-prefetch>è½»æ¾å¨ç½é¡µä¸éæä¸ä¸æç»´å¯¼å¾åè½ - Mind Elixir</a></div></li><li class="flex flex-col gap-x-2 sm:flex-row"><time datetime="2024-06-29T09:53:49.416Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2024/06/29 </time><div><a href="/drifter-s-song/" class="cactus-link" data-astro-prefetch>50 å¹´åçç²¤è¯æµè¡ææ²»å¥½äºæçç²¾ç¥å
è</a></div></li></ul></section> <section aria-label="Blog post list"> <h2 class="title mb-4 text-xl">æç« </h2> <ul class="space-y-4"> <li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-08-10T12:56:03.907Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/08/10 </time> <div><a href="/css-strut/" class="cactus-link" data-astro-prefetch> CSS Strut ä¸ IFC ç®æ </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-07-14T02:47:05.878Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/07/14 </time> <div><a href="/memoirs-of-an-acger/" class="cactus-link" data-astro-prefetch> äºæ¬¡å
åå¿å½ </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-05-30T09:22:10.965Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/05/30 </time> <div><a href="/1000-user-guide/" class="cactus-link" data-astro-prefetch> ç¬ç«å¼åè
1000 ç¨æ·æå Fork </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-05-30T08:05:33.664Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/05/30 </time> <div><a href="/zhuhai-imperial-hotspring/" class="cactus-link" data-astro-prefetch> 0419 御温æ³ä¹æ
</a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-04-10T08:19:37.724Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/04/10 </time> <div><a href="/tauri-mac-sign-and-build/" class="cactus-link" data-astro-prefetch> Tauri åºç¨è¹æç¾å踩åå®å½ </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-03-12T10:43:14.843Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/03/12 </time> <div><a href="/2026-03-12-diary/" class="cactus-link" data-astro-prefetch> ä¹
è¿ççæ´»ç¢çè®°å½ </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-03-11T09:21:00.000Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/03/11 </time> <div><a href="/2019-11-10-csp-n-xss/" class="cactus-link" data-astro-prefetch> å端ç½ç»å®å
¨å¿
ä¿® 2 XSS å CSP </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-03-10T05:42:32.627Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/03/10 </time> <div><a href="/obsidian-mindmap/" class="cactus-link" data-astro-prefetch> ä¸ä¸ªæä»¶è®©ä½ å¨ Obsidian ç»æç»´å¯¼å¾ </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-02-27T08:24:32.421Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/02/27 </time> <div><a href="/react-usesyncexternalstore/" class="cactus-link" data-astro-prefetch> çå®å°±æ useSyncExternalStore </a> </div> </li><li class="flex flex-col gap-x-2 sm:flex-row"> <time datetime="2026-02-24T15:08:12.087Z" class="min-w-[120px] text-gray-600 dark:text-gray-400"> 2026/02/24 </time> <div><a href="/react-uselayouteffect/" class="cactus-link" data-astro-prefetch> çå®å°±æ useLayoutEffect </a> </div> </li> </ul> <a href="/archive/" class="cactus-link mt-5 inline-block" data-astro-prefetch> æ´å¤æç« â</a> </section> <hr class="mt-16"> <section aria-label="Blog tag list" class="mt-16"> <h2 class="title mb-4 text-xl">æ ç¾</h2> <ul class="space-y-4"> <a class="text-xl cactus-link mr-2 inline-block" href="/tag/coding/" title="View posts with the tag: coding" data-astro-prefetch> ææ¯åº </a><a class="text-xl cactus-link mr-2 inline-block" href="/tag/diary/" title="View posts with the tag: diary" data-astro-prefetch> çæ´»åº </a><a class="cactus-link mr-2 inline-block" href="/tag/æ¬ç«åå²/" title="View posts with the tag: æ¬ç«åå²" data-astro-prefetch> æ¬ç«åå² </a><a class="cactus-link mr-2 inline-block" href="/tag/æ
è¡/" title="View posts with the tag: æ
è¡" data-astro-prefetch> æ
è¡ </a><a class="cactus-link mr-2 inline-block" href="/tag/Vue/" title="View posts with the tag: Vue" data-astro-prefetch> Vue </a><a class="cactus-link mr-2 inline-block" href="/tag/gatsby/" title="View posts with the tag: gatsby" data-astro-prefetch> gatsby </a><a class="cactus-link mr-2 inline-block" href="/tag/ç¿»è¯/" title="View posts with the tag: ç¿»è¯" data-astro-prefetch> ç¿»è¯ </a><a class="cactus-link mr-2 inline-block" href="/tag/ACG/" title="View posts with the tag: ACG" data-astro-prefetch> ACG </a><a class="cactus-link mr-2 inline-block" href="/tag/å¹´ç»æ»ç»/" title="View posts with the tag: å¹´ç»æ»ç»" data-astro-prefetch> å¹´ç»æ»ç» </a><a class="cactus-link mr-2 inline-block" href="/tag/游æ/" title="View posts with the tag: 游æ" data-astro-prefetch> 游æ </a><a class="cactus-link mr-2 inline-block" href="/tag/è±è¯/" title="View posts with the tag: è±è¯" data-astro-prefetch> è±è¯ </a>
51<a class="cactus-link mr-2 inline-block" href="/tag/读书ç¬è®°/" title="View posts with the tag: 读书ç¬è®°" data-astro-prefetch> 读书ç¬è®° </a><a class="cactus-link mr-2 inline-block" href="/tag/çµå½±/" title="View posts with the tag: çµå½±" data-astro-prefetch> çµå½± </a><a class="cactus-link mr-2 inline-block" href="/tag/TyranoScript/" title="View posts with the tag: TyranoScript" data-astro-prefetch> TyranoScript </a><a class="cactus-link mr-2 inline-block" href="/tag/æç»´å¯¼å¾/" title="View posts with the tag: æç»´å¯¼å¾" data-astro-prefetch> æç»´å¯¼å¾ </a><a class="cactus-link mr-2 inline-block" href="/tag/大è¯è¨æ¨¡å/" title="View posts with the tag: 大è¯è¨æ¨¡å" data-astro-prefetch> 大è¯è¨æ¨¡å </a><a class="cactus-link mr-2 inline-block" href="/tag/马å°ä»£å¤«/" title="View posts with the tag: 马å°ä»£å¤«" data-astro-prefetch> 马å°ä»£å¤« </a><a class="cactus-link mr-2 inline-block" href="/tag/React/" title="View posts with the tag: React" data-astro-prefetch> React </a><a class="cactus-link mr-2 inline-block" href="/tag/é³ä¹æ¨è/" title="View posts with the tag: é³ä¹æ¨è" data-astro-prefetch> é³ä¹æ¨è </a><a class="cactus-link mr-2 inline-block" href="/tag/TOEFL/" title="View posts with the tag: TOEFL" data-astro-prefetch> TOEFL </a> </ul> <a href="/tags/" class="cactus-link mt-5 inline-block" data-astro-prefetch> æ ç¾åº â</a> </section> <hr class="mt-16"> <section class="mt-16"> <h2 class="title mb-4 text-xl">项ç®</h2> <dl class="space-y-4"> <div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://app.mind-elixir.com/zh/m10c" target="_blank" rel="noopener noreferrer" class="cactus-link"> M10C </a> 52 : 53</span> </dt> <dd>å°è§é¢åå¹åç½é¡µæç« éè¿ AI 转æ¢ä¸ºäº¤äºå¼æç»´å¯¼å¾çæµè§å¨æ©å±</dd> </div><div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://app.mind-elixir.com/" target="_blank" rel="noopener noreferrer" class="cactus-link"> Mind Elixir App </a> 54 : 55</span> </dt> <dd>AI 驱å¨çæç»´å¯¼å¾åºç¨ç¨åº</dd> </div><div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://github.com/SSShooter/mind-elixir-core" target="_blank" rel="noopener noreferrer" class="cactus-link"> Mind Elixir </a> 56 : 57</span> </dt> <dd>æ æ¡æ¶ä¾èµç JavaScript æç»´å¯¼å¾å æ ¸</dd> </div><div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://tools.mind-elixir.com/" target="_blank" rel="noopener noreferrer" class="cactus-link"> SS Toolbox </a> 58 : 59</span> </dt> <dd>纯åç«¯å·¥å ·éï¼ä¸ä¸ä¼ 任使°æ®ï¼ä¸å卿¬å°è§£å³</dd> </div><div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://vs.ssshooter.com/" target="_blank" rel="noopener noreferrer" class="cactus-link"> ææå®¿å©çæå¨ð¤¡ð </a> 60 : 61</span> </dt> <dd>æ´æ´»ï¼ä¹æ¯ä¸ä¸ªå·ç§¯æ ¸å shader çå¾®åè¯éªï¼åºäº Fabric.js</dd> </div><div class="flex flex-col gap-2 md:flex-row"> <dt> <span class="flex"> <a href="https://ke.ssshooter.com/" target="_blank" rel="noopener noreferrer" class="cactus-link"> å°ç«é½è½æçè±è¯è¯æ³ </a> 62 : 63</span> </dt> <dd>æ¥å¦è±è¯å§ï¼å°½ç®¡ç°å¨æ¯æåçæ¶ä»£ï¼ä½ä¹æ¯æå¥½çæ¶ä»£ï¼åµ~</dd> </div> </dl> <a href="/projects/" class="cactus-link mt-5 inline-block" data-astro-prefetch> 64æ´å¤å¼æºé¡¹ç® â</a> </section> <hr class="mt-16"> <section class="mt-16"> <h1 class="title mb-6">Usubeni Fantasy</h1> <p class="mb-4">å½è£¡ææçµé æï¼å½è£¡ç¡æè«å¼·æ±ã</p> <div class="flex flex-wrap items-end gap-x-4"> <p>Find me on</p> <ul class="flex flex-1 items-center gap-x-2 sm:flex-initial"> <li class="flex"> <a class="sm:hover:text-link inline-block p-1" href="https://github.com/ssshooter" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="simple-icons:github"> <symbol id="ai:simple-icons:github"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></symbol><use xlink:href="#ai:simple-icons:github"></use> </svg> <span class="sr-only">Github</span> </a> </li><li class="flex">
64 <a class="sm:hover:text-link inline-block p-1" href="https://www.zhihu.com/people/ssshooter" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="simple-icons:zhihu"> <symbol id="ai:simple-icons:zhihu"><path fill="currentColor" d="M5.721 0C2.251 0 0 2.25 0 5.719V18.28C0 21.751 2.252 24 5.721 24h12.56C21.751 24 24 21.75 24 18.281V5.72C24 2.249 21.75 0 18.281 0zm1.964 4.078q-.408 1.096-.68 2.11h4.587c.545-.006.445 1.168.445 1.171H9.384a58 58 0 0 1-.112 3.797h2.712c.388.023.393 1.251.393 1.266H9.183a9.2 9.2 0 0 1-.408 2.102l.757-.604c.452.456 1.512 1.712 1.906 2.177c.473.681.063 2.081.063 2.081l-2.794-3.382c-.653 2.518-1.845 3.607-1.845 3.607c-.523.468-1.58.82-2.64.516c2.218-1.73 3.44-3.917 3.667-6.497H4.491c0-.015.197-1.243.806-1.266h2.71c.024-.32.086-3.254.086-3.797H6.598c-.136.406-.158.447-.268.753c-.594 1.095-1.603 1.122-1.907 1.155c.906-1.821 1.416-3.6 1.591-4.064c.425-1.124 1.671-1.125 1.671-1.125M13.078 6h6.377v11.33h-2.573l-2.184 1.373l-.401-1.373h-1.219zm1.313 1.219v8.86h.623l.263.937l1.455-.938h1.456v-8.86z"/></symbol><use xlink:href="#ai:simple-icons:zhihu"></use> </svg> <span class="sr-only">Zhihu</span> </a> </li><li class="flex"> <a class="sm:hover:text-link inline-block p-1" href="https://www.pixiv.net/users/2159305" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="simple-icons:pixiv"> <symbol id="ai:simple-icons:pixiv"><path fill="currentColor" d="M4.935 0A4.924 4.924 0 0 0 0 4.935v14.13A4.924 4.924 0 0 0 4.935 24h14.13A4.924 4.924 0 0 0 24 19.065V4.935A4.924 4.924 0 0 0 19.065 0zm7.81 4.547c2.181 0 4.058.676 5.399 1.847a6.12 6.12 0 0 1 2.116 4.66c.005 1.854-.88 3.476-2.257 4.563c-1.375 1.092-3.225 1.697-5.258 1.697c-2.314 0-4.46-.842-4.46-.842v2.718c.397.116 1.048.365.635.779H5.79c-.41-.41.19-.65.644-.779V7.666c-1.053.81-1.593 1.51-1.868 2.031c.32 1.02-.284.969-.284.969l-1.09-1.73s3.868-4.39 9.553-4.39zm-.19.971c-1.423-.003-3.184.473-4.27 1.244v8.646c.988.487 2.484.832 4.26.832h.01c1.596 0 2.98-.593 3.93-1.533c.952-.948 1.486-2.183 1.492-3.683c-.005-1.54-.504-2.864-1.42-3.86c-.918-.992-2.274-1.645-4.002-1.646"/></symbol><use xlink:href="#ai:simple-icons:pixiv"></use> </svg> <span class="sr-only">Pixiv</span> </a> </li><li class="flex"> <a class="sm:hover:text-link inline-block p-1" href="https://twitter.com/zhoudejie" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="simple-icons:twitter"> <symbol id="ai:simple-icons:twitter"><path fill="currentColor" d="M21.543 7.104c.015.211.015.423.015.636c0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041a4.93 4.93 0 0 1-4.6-3.42a4.9 4.9 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.9 4.9 0 0 0 2.235.616A4.93 4.93 0 0 1 1.67 3.148a13.98 13.98 0 0 0 10.15 5.144a4.929 4.929 0 0 1 8.39-4.49a9.9 9.9 0 0 0 3.128-1.196a4.94 4.94 0 0 1-2.165 2.724A9.8 9.8 0 0 0 24 4.555a10 10 0 0 1-2.457 2.549"/></symbol><use xlink:href="#ai:simple-icons:twitter"></use> </svg> <span class="sr-only">twitter / X</span> </a> </li><li class="flex"> <a class="sm:hover:text-link inline-block p-1" href="https://weibo.com/ariaqua" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="simple-icons:sinaweibo"> <symbol id="ai:simple-icons:sinaweibo"><path fill="currentColor" d="M10.098 20.323c-3.977.391-7.414-1.406-7.672-4.02c-.259-2.609 2.759-5.047 6.74-5.441c3.979-.394 7.413 1.404 7.671 4.018c.259 2.6-2.759 5.049-6.737 5.439zM9.05 17.219c-.384.616-1.208.884-1.829.602c-.612-.279-.793-.991-.406-1.593c.379-.595 1.176-.861 1.793-.601c.622.263.82.972.442 1.592m1.27-1.627c-.141.237-.449.353-.689.253c-.236-.09-.313-.361-.177-.586c.138-.227.436-.346.672-.24c.239.09.315.36.18.601zm.176-2.719c-1.893-.493-4.033.45-4.857 2.118c-.836 1.704-.026 3.591 1.886 4.21c1.983.64 4.318-.341 5.132-2.179c.8-1.793-.201-3.642-2.161-4.149m7.563-1.224c-.346-.105-.57-.18-.405-.615c.375-.977.42-1.804 0-2.404c-.781-1.112-2.915-1.053-5.364-.03c0 0-.766.331-.571-.271c.376-1.217.315-2.224-.27-2.809c-1.338-1.337-4.869.045-7.888 3.08C1.309 10.87 0 13.273 0 15.348c0 3.981 5.099 6.395 10.086 6.395c6.536 0 10.888-3.801 10.888-6.82c0-1.822-1.547-2.854-2.915-3.284zm1.908-5.092a3.1 3.1 0 0 0-2.96-.962a.786.786 0 0 0-.616.932a.79.79 0 0 0 .932.602a1.51 1.51 0 0 1 1.442.465c.376.421.466.977.316 1.473a.786.786 0 0 0 .51.992a.813.813 0 0 0 .992-.512a3.11 3.11 0 0 0-.646-3.035zm2.418-2.195c-1.576-1.757-3.905-2.419-6.054-1.968a.91.91 0 0 0-.706 1.081a.91.91 0 0 0 1.082.707a4.5 4.5 0 0 1 4.296 1.383a4.53 4.53 0 0 1 .947 4.416a.91.91 0 0 0 .586 1.157c.479.165.991-.104 1.157-.586a6.39 6.39 0 0 0-1.338-6.235z"/></symbol><use xlink:href="#ai:simple-icons:sinaweibo"></use> </svg> <span class="sr-only">Weibo</span> </a> </li><li class="flex">
64 <a class="sm:hover:text-link inline-block p-1" href="mailto:[email protected]" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="mdi:email"> <symbol id="ai:mdi:email"><path fill="currentColor" d="m20 8l-8 5l-8-5V6l8 5l8-5m0-2H4c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2"/></symbol><use xlink:href="#ai:mdi:email"></use> </svg> <span class="sr-only">email</span> </a> </li><li class="flex"> <a class="sm:hover:text-link inline-block p-1" href="https://ssshooter.com/rss.xml" target="_blank" rel="noopener noreferrer "> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-6 w-6" aria-hidden="true" focusable="false" data-icon="mdi:rss"> <symbol id="ai:mdi:rss"><path fill="currentColor" d="M6.18 15.64a2.18 2.18 0 0 1 2.18 2.18C8.36 19 7.38 20 6.18 20C5 20 4 19 4 17.82a2.18 2.18 0 0 1 2.18-2.18M4 4.44A15.56 15.56 0 0 1 19.56 20h-2.83A12.73 12.73 0 0 0 4 7.27zm0 5.66a9.9 9.9 0 0 1 9.9 9.9h-2.83A7.07 7.07 0 0 0 4 12.93z"/></symbol><use xlink:href="#ai:mdi:rss"></use> </svg> <span class="sr-only">rss</span> </a> </li> </ul> </div> </section> </main> <footer class="mt-auto flex w-full flex-col items-center justify-center gap-y-2 pb-4 pt-20 text-center align-top font-semibold text-gray-600 sm:flex-row sm:justify-between sm:text-xs dark:text-gray-400"> <div class="me-0 sm:me-4"> 65© SSShooter 2026.<a href="/" class="inline-block sm:hover:underline"> ð Usubeni Fantasy</a> </div> <nav aria-label="More on this site" class="flex gap-x-2 sm:gap-x-0 sm:divide-x sm:divide-gray-500"> <a href="/archive/" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> 彿¡£ </a><a href="/projects/" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> é¡¹ç® </a><a href="/tags/" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> æ ç¾ </a><a href="/about/" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> å ³äº </a><a href="/links/" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> åé¾ </a><a href="https://www.foreverblog.cn/go.html" target="_blank" class="sm:hover:text-textColor whitespace-nowrap px-4 py-2 sm:py-0 sm:hover:underline"> è«æ´ </a> </nav> </footer> <!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 65
65 <script async src="https://www.googletagmanager.com/gtag/js?id=
65G-1TM2RNL48D
vendor: 12 bytes, line 65
65"></script>
65<script> 66
vendor: 163 bytes, lines 66-72
66window.dataLayer = window.dataLayer || []; 67 function gtag() { 68 dataLayer.push(arguments); 69 } 70 gtag("js", new Date()); 71 72 gtag("config", "
72G-1TM2RNL48D
vendor: 8 bytes, lines 72-73
72"); 73
73</script>
73
73<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"0d3b8900cfb3430cba60d24e9350c072","r":1,"spa":2}' crossorigin="anonymous"></script>
73 74</body> </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.