# csv 转 json 实现代码 ```JavaScript const CSVToJSON = (data, delimiter = ',') => { const titles = data.slice(0, data.indexOf(' ')).split(delimiter); return data .slice(data.indexOf(' ') + 1) .split(' ') .map(v => { const values = v.split(delimiter); return titles.reduce( (obj, title, index) => ((obj[title] = values[index]), obj), {} ); }); }; ``` 效果 ```JavaScript CSVToJSON('col1,col2 a,b c,d'); // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}]; CSVToJSON('col1;col2 a;b c;d', ';'); // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}]; ```
# 程序员的工具箱 地址:[程序员的开发工具箱](https://fukit.cn/) <style> .grid-cols-1 > a { text-decoration: none; color: rgb(44, 62, 80); display: inline-block; } .grid-cols-1 > a:hover { text-decoration: none !important; } .c-card { width: 315px; background-color: #ffffff; border: 1px solid #efeff5; border-radius: 4px; padding: 20px 24px; border-color: rgb(30 165 76 / 1 !important) !important; transition-duration: .5s; margin-bottom: 5px; } .c-card:hover { border-color: rgb(30, 165, 76); } .c-card .truncat { color: black; font-size: 16px; margin-left: 25px; } .c-card .line-clamp-2 { color: #737373; font-size: 13px; height: 39px; overflow: hidden; } .c-card > div:first-child { display: flex; position: absolute; } .c-card > div:first-child > i { line-height: 20px; font-size: 20px !important; } .c-card > div:first-child > div { display: none; } .text-neutral-400 svg { width: 20px; height: 20px; } </style> <div data-v-856c1567="" class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4"> <a data-v-856c1567="" href="http://fukit.cn/token-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 4l3 3l-3 3"></path> <path d="M18 20l3-3l-3-3"></path> <path d="M3 7h3a5 5 0 0 1 5 5a5 5 0 0 0 5 5h5"></path> <path d="M21 7h-5a4.978 4.978 0 0 0-2.998.998M9 16.001A4.984 4.984 0 0 1 6 17H3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Token 生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用您想要的字符、大写或小写字母、数字和/或符号生成随机字符串。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/hash-text" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 3l18 18"></path> <path d="M10.584 10.587a2 2 0 0 0 2.828 2.83"></path> <path d="M9.363 5.365A9.466 9.466 0 0 1 12 5c4 0 7.333 2.333 10 7c-.778 1.361-1.612 2.524-2.503 3.488m-2.14 1.861C15.726 18.449 13.942 19 12 19c-4 0-7.333-2.333-10-7c1.369-2.395 2.913-4.175 4.632-5.341"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Hash 文本</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用所需的函数哈希文本字符串:MD5、SHA1、SHA256、SHA224、SHA512、SHA384、SHA3或RIPEMD160</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/bcrypt" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="8" y="11" width="8" height="5" rx="1"></rect> <path d="M10 11V9a2 2 0 1 1 4 0v2"></path> <rect x="4" y="4" width="16" height="16" rx="2"></rect> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">加密</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用bcrypt对文本字符串进行哈希和比较。Bcrypt是一个基于Blowfish密码的密码哈希函数。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/uuid-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18.9 7a8 8 0 0 1 1.1 5v1a6 6 0 0 0 .8 3"></path> <path d="M8 11a4 4 0 0 1 8 0v1a10 10 0 0 0 2 6"></path> <path d="M12 11v2a14 14 0 0 0 2.5 8"></path> <path d="M8 15a18 18 0 0 0 1.8 6"></path> <path d="M4.9 19a22 22 0 0 1-.9-7v-1a8 8 0 0 1 12-6.95"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">UUIDs 生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">通用唯一标识符(UUID)是一个128位数字,用于标识计算机系统中的信息。可能的UUID数量为16^32,即2^128或约3.4x10^38(这是一个很大的数字!)。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ulid-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 15l3 3l3-3"></path> <path d="M7 6v12"></path> <path d="M17 14a2 2 0 0 1 2 2v3a2 2 0 1 1-4 0v-3a2 2 0 0 1 2-2z"></path> <circle cx="17" cy="5" r="2"></circle> <path d="M19 5v3a2 2 0 0 1-2 2h-1.5"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">ULID 生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成随机的通用唯一词典可排序标识符(ULID)。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/encryption" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="5" y="11" width="14" height="10" rx="2"></rect> <circle cx="12" cy="16" r="1"></circle> <path d="M8 11V7a4 4 0 0 1 8 0v4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">加密/解密文本</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/bip39-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 12h16"></path> <path d="M4 18h12"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">BIP39密码生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">从现有或随机助记符生成BIP39密码短语,或从密码短语获取助记符。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/hmac-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M5 9h14c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm0 4h8c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Hmac 生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用密钥和您喜欢的哈希函数计算基于哈希的消息身份验证代码(HMAC)。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/rsa-key-pair-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="15" cy="15" r="3"></circle> <path d="M13 17.5V22l2-1.5l2 1.5v-4.5"></path> <path d="M10 19H5a2 2 0 0 1-2-2V7c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-1 1.73"></path> <path d="M6 9h12"></path> <path d="M6 12h3"></path> <path d="M6 15h2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">RSA密钥对生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成新的随机RSA私钥和公钥pem证书。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/password-strength-analyser" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="M17 7h5v10h-5v2a1 1 0 0 0 1 1h2v2h-2.5c-.55 0-1.5-.45-1.5-1c0 .55-.95 1-1.5 1H12v-2h2a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h-2V2h2.5c.55 0 1.5.45 1.5 1c0-.55.95-1 1.5-1H20v2h-2a1 1 0 0 0-1 1zM2 7h11v2H4v6h9v2H2zm18 8V9h-3v6zM8.5 12A1.5 1.5 0 0 0 7 10.5A1.5 1.5 0 0 0 5.5 12A1.5 1.5 0 0 0 7 13.5A1.5 1.5 0 0 0 8.5 12m4.5-1.11c-.61-.56-1.56-.51-2.12.11c-.56.6-.51 1.55.12 2.11c.55.52 1.43.52 2 0z"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">密码强度分析仪</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用此密码强度分析器和破解时间估计工具来发现密码的强度。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/pdf-signature-checker" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="M14 13v-2l-2 1l-2-1v2l-2 1l2 1v2l2-1l2 1v-2l2-1M14 2H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h1v-2H7V4h6v4h4v10h-1v2h1a2 2 0 0 0 2-2V7m-5 6v-2l-2 1l-2-1v2l-2 1l2 1v2l2-1l2 1v-2l2-1m-6 9l2-1l2 1v-5h-4m4-5v-2l-2 1l-2-1v2l-2 1l2 1v2l2-1l2 1v-2l2-1Z"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">PDF签名检查器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">验证PDF文件的签名。签名的PDF文件包含一个或多个签名,可用于确定文件的内容在签名后是否已被更改。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/date-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="5" width="16" height="16" rx="2"></rect> <path d="M16 3v4"></path> <path d="M8 3v4"></path> <path d="M4 11h16"></path> <path d="M11 15h1"></path> <path d="M12 15v3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">日期时间转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将日期和时间转换为各种不同的格式</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/base-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 17H3"></path> <path d="M6 10L3 7l3-3"></path> <path d="M3 7h18"></path> <path d="M18 20l3-3l-3-3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">整数基转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在不同的基数(十进制、十六进制、二进制、八进制、base64…)之间转换数字</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/roman-numeral-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 4l10 16"></path> <path d="M17 4L7 20"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">罗马数字转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将罗马数字转换为数字,并将数字转换为罗马数字。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/base64-string-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 3v4a1 1 0 0 0 1 1h4"></path> <rect x="9" y="12" width="3" height="5" rx="1"></rect> <path d="M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2z"></path> <path d="M15 12v5"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Base64 字符串编码/解码</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将字符串编码和解码为其 Base64 格式表示形式即可。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/base64-file-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 3v4a1 1 0 0 0 1 1h4"></path> <rect x="9" y="12" width="3" height="5" rx="1"></rect> <path d="M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2z"></path> <path d="M15 12v5"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Base64 文件转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将字符串、文件或图像转换为其 Base64 表示形式。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/color-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M12 21a9 9 0 1 1 0-18a9 8 0 0 1 9 8a4.5 4 0 0 1-4.5 4H14a2 2 0 0 0-1 3.75A1.3 1.3 0 0 1 12 21"></path> <circle cx="7.5" cy="10.5" r=".5" fill="currentColor"></circle> <circle cx="12" cy="7.5" r=".5" fill="currentColor"></circle> <circle cx="16.5" cy="10.5" r=".5" fill="currentColor"></circle> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Color 选择器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在不同格式(十六进制、rgb、hsl和css名称)之间转换颜色</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/case-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="6.5" cy="15.5" r="3.5"></circle> <path d="M14 19V8.5a3.5 3.5 0 0 1 7 0V19"></path> <path d="M14 13h7"></path> <path d="M10 12v7"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">大小写转换</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">更改字符串的大小写并在不同格式之间进行选择</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/text-to-nato-alphabet" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8a3 3 0 0 1 0 6"></path> <path d="M10 8v11a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1v-5"></path> <path d="M12 8h0l4.524-3.77A.9.9 0 0 1 18 4.922v12.156a.9.9 0 0 1-1.476.692L12 14H4a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h8"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">文本转北约字母表</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将文本转换为北约拼音字母以进行口头传播。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/text-to-binary" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 10V5h-1m8 14v-5h-1"></path> <rect x="15" y="5" width="3" height="5" rx=".5"></rect> <rect x="10" y="14" width="3" height="5" rx=".5"></rect> <path d="M6 10h.01M6 19h.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">文本到 ASCII 二进制</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将文本转换为其 ASCII 二进制表示形式,反之亦然。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/text-to-unicode" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 18h5"></path> <path d="M4 12h13a3 3 0 0 1 0 6h-4l2-2m0 4l-2-2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">文本转 Unicode</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析文本并将其转换为 unicode,反之亦然</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/yaml-to-json-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 12h16"></path> <path d="M4 18h12"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">YAML到JSON转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用此在线转换器将YAML转换为JSON。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/yaml-to-toml" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 12h16"></path> <path d="M4 18h12"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">YAML 到 TOML</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析YAML并将其转换为TOML。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-to-yaml-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 4a2 2 0 0 0-2 2v3a2 3 0 0 1-2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2"></path> <path d="M17 4a2 2 0 0 1 2 2v3a2 3 0 0 0 2 3a2 3 0 0 0-2 3v3a2 2 0 0 1-2 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON到YAML转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在线转换将JSON转换为YAML。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-to-toml" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 4a2 2 0 0 0-2 2v3a2 3 0 0 1-2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2"></path> <path d="M17 4a2 2 0 0 1 2 2v3a2 3 0 0 0 2 3a2 3 0 0 0-2 3v3a2 2 0 0 1-2 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON 转 TOML</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析JSON并将其转换为TOML。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/list-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 6h11"></path> <path d="M9 12h11"></path> <path d="M9 18h11"></path> <path d="M5 6v.01"></path> <path d="M5 12v.01"></path> <path d="M5 18v.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">List 转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">该工具可以处理基于数组的数据,并将各种更改(转置、添加前缀和后缀、反向列表、排序列表、小写值、截断值)应用于每一行。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/toml-to-json" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="M15 4v2h3v12h-3v2h5V4M4 4v16h5v-2H6V6h3V4z"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">TOML 到 JSON</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析TOML并将其转换为JSON。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/toml-to-yaml" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="M15 4v2h3v12h-3v2h5V4M4 4v16h5v-2H6V6h3V4z"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">TOML 到 YAML</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">Parse and convert TOML to YAML.</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/url-encoder" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 14a3.5 3.5 0 0 0 5 0l4-4a3.5 3.5 0 0 0-5-5l-.5.5"></path> <path d="M14 10a3.5 3.5 0 0 0-5 0l-4 4a3.5 3.5 0 0 0 5 5l.5-.5"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">编码/解码url格式的字符串</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">编码为url编码格式(也称为“百分比编码”)或从中解码。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/html-entities" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 8l-4 4l4 4"></path> <path d="M17 8l4 4l-4 4"></path> <path d="M14 4l-4 16"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">转义html实体</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">转义或unescape html实体(将<、>、&、“和'替换为其html版本)</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/url-parser" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 14a3.5 3.5 0 0 0 5 0l4-4a3.5 3.5 0 0 0-5-5l-.5.5"></path> <path d="M14 10a3.5 3.5 0 0 0-5 0l-4 4a3.5 3.5 0 0 0 5 5l.5-.5"></path> <path d="M16 21v-2"></path> <path d="M19 16h2"></path> <path d="M3 8h2"></path> <path d="M8 3v2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Url分析器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析url字符串以获取所有不同的部分(协议、来源、参数、端口、用户名密码…)</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/device-information" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="4" width="18" height="12" rx="1"></rect> <path d="M7 20h10"></path> <path d="M9 16v4"></path> <path d="M15 16v4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">设备信息</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">获取有关当前设备的信息(屏幕大小、像素比率、用户代理…)</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/basic-auth-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M3 17h18c.55 0 1 .45 1 1s-.45 1-1 1H3c-.55 0-1-.45-1-1s.45-1 1-1zm-.5-4.43c.36.21.82.08 1.03-.28l.47-.82l.48.83c.21.36.67.48 1.03.28c.36-.21.48-.66.28-1.02l-.49-.84h.95c.41 0 .75-.34.75-.75s-.34-.75-.75-.75H5.3l.47-.82c.21-.36.09-.82-.27-1.03a.764.764 0 0 0-1.03.28L4 8.47l-.47-.82a.764.764 0 0 0-1.03-.28c-.36.21-.48.67-.27 1.03l.47.82h-.95c-.41 0-.75.34-.75.75s.34.75.75.75h.95l-.48.83c-.2.36-.08.82.28 1.02zm8 0c.36.21.82.08 1.03-.28l.47-.82l.48.83c.21.36.67.48 1.03.28c.36-.21.48-.66.28-1.02l-.48-.83h.95c.41 0 .75-.34.75-.75s-.34-.75-.75-.75h-.96l.47-.82a.76.76 0 0 0-.27-1.03a.746.746 0 0 0-1.02.27l-.48.82l-.47-.82a.742.742 0 0 0-1.02-.27c-.36.21-.48.67-.27 1.03l.47.82h-.96a.74.74 0 0 0-.75.74c0 .41.34.75.75.75h.95l-.48.83c-.2.36-.08.82.28 1.02zM23 9.97c0-.41-.34-.75-.75-.75h-.95l.47-.82a.76.76 0 0 0-.27-1.03a.746.746 0 0 0-1.02.27l-.48.83l-.47-.82a.742.742 0 0 0-1.02-.27c-.36.21-.48.67-.27 1.03l.47.82h-.95a.743.743 0 0 0-.76.74c0 .41.34.75.75.75h.95l-.48.83a.74.74 0 0 0 .28 1.02c.36.21.82.08 1.03-.28l.47-.82l.48.83c.21.36.67.48 1.03.28c.36-.21.48-.66.28-1.02l-.48-.83h.95c.4-.01.74-.35.74-.76z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">基本身份验证生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">从用户名和密码生成 base64 基本身份验证标头。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/og-meta-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7.859 6H5.025A2.025 2.025 0 0 0 3 8.025v2.834c0 .537.213 1.052.593 1.432l6.116 6.116a2.025 2.025 0 0 0 2.864 0l2.834-2.834a2.025 2.025 0 0 0 0-2.864L9.29 6.593A2.025 2.025 0 0 0 7.859 6z"></path> <path d="M17.573 18.407l2.834-2.834a2.025 2.025 0 0 0 0-2.864L13.29 5.593"></path> <path d="M6 9h-.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">开放式图形元生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">为您的网站生成开放式图形和社交html元标记。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/otp-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="7" y="4" width="10" height="16" rx="1"></rect> <path d="M11 5h2"></path> <path d="M12 17v.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">OTP代码生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">为多因素身份验证生成和验证基于时间的OTP(一次性密码)。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/mime-types" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="9"></circle> <path d="M3.6 9h16.8"></path> <path d="M3.6 15h16.8"></path> <path d="M11.5 3a17 17 0 0 0 0 18"></path> <path d="M12.5 3a17 17 0 0 1 0 18"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">mime类型</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将mime类型转换为扩展,反之亦然。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/jwt-parser" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="8" cy="15" r="4"></circle> <path d="M10.85 12.15L19 4"></path> <path d="M18 5l2 2"></path> <path d="M15 8l2 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JWT 解析器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析和解码JSON Web Token(jwt)并显示其内容。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/keycode-info" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="6" width="20" height="12" rx="2"></rect> <path d="M6 10h0"></path> <path d="M10 10h0"></path> <path d="M14 10h0"></path> <path d="M18 10h0"></path> <path d="M6 14v.01"></path> <path d="M18 14v.01"></path> <path d="M10 14h4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Keycode 信息</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">查找任何按下的键的javascript键代码、代码、位置和修饰符。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/slugify-string" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M7.25 15c-.41 0-.75-.34-.75-.75v-.75h-2v.75c0 .41-.34.75-.75.75S3 14.66 3 14.25V10c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4.25c0 .41-.34.75-.75.75zm-.75-4.5h-2V12h2v-1.5zm7 1.5c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1c0 .55-.45 1-1 1zM11 10.5v.75h2v-.75h-2zm2 2.25h-2v.75h2v-.75zm8-2.5c0 .41-.34.75-.75.75a.76.76 0 0 1-.71-.5H17.5v3h2.04c.1-.29.38-.5.71-.5c.41 0 .75.34.75.75V14c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v.25z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">打乱字符串</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">确保字符串 url、文件名和 id 安全。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/html-wysiwyg-editor" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-3"></path> <path d="M9 15h3l8.5-8.5a1.5 1.5 0 0 0-3-3L9 12v3"></path> <path d="M16 5l3 3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">HTML所见即所得编辑器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在线HTML编辑器具有功能丰富的所见即所得编辑器,立即获得内容的源代码。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/user-agent-parser" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="4" width="16" height="16" rx="1"></rect> <path d="M4 8h16"></path> <path d="M8 4v4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">用户代理分析器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">从用户代理字符串中检测和分析浏览器、引擎、操作系统、CPU和设备类型/型号。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/http-status-codes" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M4.5 11h-2V9.75c0-.41-.34-.75-.75-.75S1 9.34 1 9.75v4.5c0 .41.34.75.75.75s.75-.34.75-.75V12.5h2v1.75c0 .41.34.75.75.75s.75-.34.75-.75v-4.5C6 9.34 5.66 9 5.25 9s-.75.34-.75.75V11zm3.25-.5h.75v3.75c0 .41.34.75.75.75s.75-.34.75-.75V10.5h.75c.41 0 .75-.34.75-.75S11.16 9 10.75 9h-3c-.41 0-.75.34-.75.75s.34.75.75.75zm5.5 0H14v3.75c0 .41.34.75.75.75s.75-.34.75-.75V10.5h.75c.41 0 .75-.34.75-.75S16.66 9 16.25 9h-3c-.41 0-.75.34-.75.75s.34.75.75.75zM21.5 9H19c-.55 0-1 .45-1 1v4.25c0 .41.34.75.75.75s.75-.34.75-.75V13h2c.83 0 1.5-.68 1.5-1.5v-1c0-.82-.67-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">HTTP 状态码</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">所有HTTP状态的列表对其名称和含义解释。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-diff" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M9.01 14H3c-.55 0-1 .45-1 1s.45 1 1 1h6.01v1.79c0 .45.54.67.85.35l2.78-2.79c.19-.2.19-.51 0-.71l-2.78-2.79c-.31-.32-.85-.09-.85.35V14zm5.98-2.21V10H21c.55 0 1-.45 1-1s-.45-1-1-1h-6.01V6.21c0-.45-.54-.67-.85-.35l-2.78 2.79c-.19.2-.19.51 0 .71l2.78 2.79a.5.5 0 0 0 .85-.36z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON 差异比较</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">比较两个JSON对象并获得它们之间的差异。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/safelink-decoder" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 21v-6.5a3.5 3.5 0 0 0-7 0V21h18v-6a4 4 0 0 0-4-4H6.5"></path> <path d="M12 11V3h4l2 2l-2 2h-4"></path> <path d="M6 15h1"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Outlook Safelink decoder</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">Decode Outlook SafeLink links</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/qrcode-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="4" width="6" height="6" rx="1"></rect> <path d="M7 17v.01"></path> <rect x="14" y="4" width="6" height="6" rx="1"></rect> <path d="M7 7v.01"></path> <rect x="4" y="14" width="6" height="6" rx="1"></rect> <path d="M17 7v.01"></path> <path d="M14 14h3"></path> <path d="M20 14v.01"></path> <path d="M14 14v3"></path> <path d="M14 20h3"></path> <path d="M17 17h3"></path> <path d="M20 17v3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">二维码生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成并下载url或文本的QR代码,并自定义背景和前景颜色。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/wifi-qrcode-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="4" y="4" width="6" height="6" rx="1"></rect> <path d="M7 17v.01"></path> <rect x="14" y="4" width="6" height="6" rx="1"></rect> <path d="M7 7v.01"></path> <rect x="4" y="14" width="6" height="6" rx="1"></rect> <path d="M17 7v.01"></path> <path d="M14 14h3"></path> <path d="M20 14v.01"></path> <path d="M14 14v3"></path> <path d="M14 20h3"></path> <path d="M17 17h3"></path> <path d="M20 17v3"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">WiFi 二维码生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成和下载QR码以快速连接到WiFi网络。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/svg-placeholder-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14L6 17h12l-3.86-5.14z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">SVG 占位符生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成 svg 图像以用作应用程序中的占位符。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/camera-recorder" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M5 7h1a2 2 0 0 0 2-2a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2"></path> <circle cx="12" cy="13" r="3"></circle> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">摄像机记录器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">从网络摄像头或照相机拍摄照片或录制视频。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/git-memo" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="16" cy="12" r="1"></circle> <circle cx="12" cy="8" r="1"></circle> <circle cx="12" cy="16" r="1"></circle> <path d="M12 15V9"></path> <path d="M15 11l-2-2"></path> <path d="M11 7L9.1 5.1"></path> <path d="M10.5 20.4l-6.9-6.9c-.781-.781-.781-2.219 0-3l6.9-6.9c.781-.781 2.219-.781 3 0l6.9 6.9c.781.781.781 2.219 0 3l-6.9 6.9c-.781.781-2.219.781-3 0z"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Git 备忘录</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">Git是一种去中心化的版本管理软件。使用此备忘单,您可以快速访问最常见的git命令.</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/random-port-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="4" width="18" height="8" rx="3"></rect> <rect x="3" y="12" width="18" height="8" rx="3"></rect> <path d="M7 8v.01"></path> <path d="M7 16v.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">随机端口生成</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">生成“已知”端口范围(0-1023)之外的随机端口号。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/crontab-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="13" r="7"></circle> <path d="M12 10v3h2"></path> <path d="M7 4L4.25 6"></path> <path d="M17 4l2.75 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Crontab 表达式生成</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">验证并生成crontab,并获取cron调度的可读描述。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-prettify" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 4a2 2 0 0 0-2 2v3a2 3 0 0 1-2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2"></path> <path d="M17 4a2 2 0 0 1 2 2v3a2 3 0 0 0 2 3a2 3 0 0 0-2 3v3a2 2 0 0 1-2 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON美化和格式化</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将JSON字符串修饰为友好的可读格式。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-minify" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 4a2 2 0 0 0-2 2v3a2 3 0 0 1-2 3a2 3 0 0 1 2 3v3a2 2 0 0 0 2 2"></path> <path d="M17 4a2 2 0 0 1 2 2v3a2 3 0 0 0 2 3a2 3 0 0 0-2 3v3a2 2 0 0 1-2 2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON 压缩</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">通过删除不必要的空白来缩小和压缩JSON。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/json-to-csv" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M9 6h11"></path> <path d="M9 12h11"></path> <path d="M9 18h11"></path> <path d="M5 6v.01"></path> <path d="M5 12v.01"></path> <path d="M5 18v.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">JSON 转 CSV</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用自动标头检测将JSON转换为CSV。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/sql-prettify" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <ellipse cx="12" cy="6" rx="8" ry="3"></ellipse> <path d="M4 6v6a8 3 0 0 0 16 0V6"></path> <path d="M4 12v6a8 3 0 0 0 16 0v-6"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">SQL 美化和格式化</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/chmod-calculator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 3v4a1 1 0 0 0 1 1h4"></path> <path d="M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2z"></path> <path d="M9 7h1"></path> <path d="M9 13h6"></path> <path d="M13 17h2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Chmod 计算器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">使用此在线的chmod计算器计算chmod权限和命令。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/docker-run-to-docker-compose-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 12.54c-1.804-.345-2.701-1.08-3.523-2.94c-.487.696-1.102 1.568-.92 2.4c.028.238-.32 1.002-.557 1H3c0 5.208 3.164 7 6.196 7c4.124.022 7.828-1.376 9.854-5c1.146-.101 2.296-1.505 2.95-2.46z"></path> <path d="M5 10h3v3H5z"></path> <path d="M8 10h3v3H8z"></path> <path d="M11 10h3v3h-3z"></path> <path d="M8 7h3v3H8z"></path> <path d="M11 7h3v3h-3z"></path> <path d="M11 4h3v3h-3z"></path> <path d="M4.571 18c1.5 0 2.047-.074 2.958-.78"></path> <path d="M10 16v.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Docker Run 到 docker-compose 转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将 docker run 命令行转换为 docker-compose 文件!</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/xml-formatter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M7 8l-4 4l4 4"></path> <path d="M17 8l4 4l-4 4"></path> <path d="M14 4l-4 16"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">XML 格式化</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将XML字符串修饰为友好的可读格式。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/yaml-prettify" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 12h16"></path> <path d="M4 18h12"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">YAML美化和格式化</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">将YAML字符串修饰为友好的可读格式。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ipv4-subnet-calculator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M16 4.2c1.5 0 3 .6 4.2 1.7l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2zm-3.3 2.5l.8.8c.7-.7 1.6-1 2.5-1s1.8.3 2.5 1l.8-.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm0 6H5v-4h14v4zM6 16h2v2H6zm3.5 0h2v2h-2zm3.5 0h2v2h-2z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">IPv4子网计算器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析IPv4 CIDR块,并获取有关子网络的所有所需信息。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ipv4-address-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M11 10V5h-1m8 14v-5h-1"></path> <rect x="15" y="5" width="3" height="5" rx=".5"></rect> <rect x="10" y="14" width="3" height="5" rx=".5"></rect> <path d="M6 10h.01M6 19h.01"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Ipv4地址转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">在ipv6中,将ip地址转换为十进制、二进制、十六进制或事件</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ipv4-range-expander" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M12 5.83L15.17 9l1.41-1.41L12 3L7.41 7.59L8.83 9L12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15L12 18.17z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">IPv4范围扩展器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">给定起始和结束IPv4地址,此工具使用其CIDR表示法计算有效的IPv4网络。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/mac-address-lookup" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="13" y="8" width="8" height="12" rx="1"></rect> <path d="M18 8V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h9"></path> <path d="M16 9h2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">MAC地址查找</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">通过设备的MAC地址查找设备的供应商和制造商。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/mac-address-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="13" y="8" width="8" height="12" rx="1"></rect> <path d="M18 8V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h9"></path> <path d="M16 9h2"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">MAC 地址生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">输入数量和前缀。MAC地址将以您选择的大小写(大写或小写)生成</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ipv6-ula-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 21c1.147-4.02 1.983-8.027 2-12h6c.017 3.973.853 7.98 2 12"></path> <path d="M12.5 13H17c.025 2.612.894 5.296 2 8"></path> <path d="M9 5a2.4 2.4 0 0 1 2-1a2.4 2.4 0 0 1 2 1a2.4 2.4 0 0 0 2 1a2.4 2.4 0 0 0 2-1a2.4 2.4 0 0 1 2-1a2.4 2.4 0 0 1 2 1"></path> <path d="M3 21h19"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">IPv6 ULA生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">根据RFC4193在网络上生成您自己的本地不可路由IP地址。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/math-evaluator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 13l4 4m0-4l-4 4"></path> <path d="M20 5h-7L9 19l-3-6H4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">数学计算器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">计算数学表达式的计算器。您可以使用sqrt、cos、sin、abs等函数。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/eta-calculator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M6.5 7h11"></path> <path d="M6.5 17h11"></path> <path d="M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1z"></path> <path d="M6 4v2a6 6 0 1 0 12 0V4a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">ETA 计算器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">ETA(估计到达时间)计算器,用于知道任务的近似结束时间,例如下载的结束时刻。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/percentage-calculator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="17" cy="17" r="1"></circle> <circle cx="7" cy="7" r="1"></circle> <path d="M6 18L18 6"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">百分比计算器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">轻松计算从一个值到另一个值的百分比,或从百分比到值的百分比。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/chronometer" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7s7 3.13 7 7s-3.13 7-7 7z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">计时器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">监控事物的持续时间。基本上是一种具有简单计时器功能的计时器。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/temperature-converter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M10 13.5a4 4 0 1 0 4 0V5a2 2 0 0 0-4 0v8.5"></path> <path d="M10 9h4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">温度转换器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">开尔文、摄氏度、华氏度、兰金、德莱尔、牛顿、雷奥穆尔和罗默温度度数转换。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/benchmark-builder" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M20.38 8.57l-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1a10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49l-8.49 5.66a2 2 0 0 0 0 2.83z" fill="currentColor"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">基准生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">简单的在线基准构建器可以轻松比较任务的执行时间。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/lorem-ipsum-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 6h16"></path> <path d="M4 12h16"></path> <path d="M4 18h12"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Lorem ipsum生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">Lorem ipsum是一种占位符文本,通常用于演示文档或字体的视觉形式,而不依赖于有意义的内容</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/text-statistics" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 3v4a1 1 0 0 0 1 1h4"></path> <path d="M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2z"></path> <path d="M9 9h1"></path> <path d="M9 13h6"></path> <path d="M9 17h6"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">文本统计</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">获取有关文本、字符数、字数、大小等的信息</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/emoji-picker" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="9"></circle> <path d="M9 10h.01"></path> <path d="M15 10h.01"></path> <path d="M9.5 15a3.5 3.5 0 0 0 5 0"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">Emoji 选择器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">轻松复制和粘贴Emoji表情符号,并获得每个表情符号的unicode和code points值.</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/string-obfuscator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 3l18 18"></path> <path d="M10.584 10.587a2 2 0 0 0 2.828 2.83"></path> <path d="M9.363 5.365A9.466 9.466 0 0 1 12 5c4 0 7.333 2.333 10 7c-.778 1.361-1.612 2.524-2.503 3.488m-2.14 1.861C15.726 18.449 13.942 19 12 19c-4 0-7.333-2.333-10-7c1.369-2.395 2.913-4.175 4.632-5.341"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">字符串混淆器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">混淆字符串(如秘密、IBAN 或令牌),使其可共享和可识别,而不泄露其内容。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/text-diff" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 3v4a1 1 0 0 0 1 1h4"></path> <path d="M17 21H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7l5 5v11a2 2 0 0 1-2 2z"></path> <path d="M12 10v4"></path> <path d="M10 12h4"></path> <path d="M10 17h4"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">文本比较</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">比较两个文本并查看它们之间的差异。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/numeronym-generator" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" version="1.2" viewBox="0 0 50 50"> <path fill="currentColor" d="M.7 35V18.3q1.1-.2 2.8-.5t4-.3q2.1 0 3.4.6 1.4.5 2.2 1.6.8 1 1.1 2.5.4 1.4.4 3.2V35h-3.1v-9q0-1.6-.2-2.7t-.7-1.8-1.4-1q-.8-.3-2-.3h-1q-.6 0-1 .1-.5 0-.9.1t-.5.1V35zm18.8 0h-3.2q.2-2.6.9-5.5.8-3 1.9-5.7 1.1-2.8 2.4-5.1 1.3-2.4 2.5-3.9H12.9v-2.7h14.6v2.6q-1.1 1.2-2.4 3.4-1.4 2.2-2.6 5-1.1 2.7-2 5.8-.8 3-1 6.1m6.6 0V18.3q1.1-.2 2.8-.5 1.8-.3 4-.3 1.7 0 2.8.4 1.1.5 1.9 1.3.2-.1.7-.4t1.2-.6q.8-.3 1.7-.5.8-.2 1.9-.2 1.9 0 3.2.6 1.3.5 2 1.6.7 1 .9 2.5.3 1.4.3 3.2V35h-3.1v-9q0-1.5-.2-2.6-.1-1.1-.5-1.8t-1.1-1.1q-.7-.3-1.9-.3-1.5 0-2.5.4t-1.4.7q.3.9.4 1.9t.1 2.2V35h-3v-9q0-1.5-.2-2.6t-.6-1.8-1.1-1.1q-.7-.3-1.8-.3h-1q-.5 0-1 .1-.5 0-.9.1t-.5.1V35z" aria-label="n7m"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">数字名称生成器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">数字名是一个用数字构成缩写的词。例如,“i18n”是“国际化”的名词,其中18表示单词中第一个i和最后一个n之间的字母数。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/ascii-text-drawer" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="8" y="8" width="8" height="8" rx="1"></rect> <path d="M3 8h1"></path> <path d="M3 16h1"></path> <path d="M8 3v1"></path> <path d="M16 3v1"></path> <path d="M20 8h1"></path> <path d="M20 16h1"></path> <path d="M8 20v1"></path> <path d="M16 20v1"></path> </g> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">ASCII Art Text Generator</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">Create ASCII art text with many fonts and styles.</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/phone-parser-and-formatter" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24"> <path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">电话分析器和格式化程序</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">解析、验证和格式化电话号码。获取有关电话号码的信息,如国家/地区代码、类型等。</div> </div> </a> <a data-v-856c1567="" href="http://fukit.cn/iban-validator-and-parser" class="decoration-none"> <div data-v-236d2dc6="" class="c-card h-full transition transition-duration-0.5s !border-2px !hover:border-primary" style="--51386d66: #ffffff; --1d9c24b0: #efeff5;"> <!----> <div flex="" items-center="" justify-between=""> <i class="text-neutral-400 dark:text-neutral-600 n-icon" role="img" style="--n-bezier: cubic-bezier(.4, 0, .2, 1); font-size: 40px;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="M11.5 1L2 6v2h19V6m-5 4v7h3v-7M2 22h19v-3H2m8-9v7h3v-7m-9 0v7h3v-7z"></path> </svg> </i> <div flex="" items-center="" gap-8px=""> <!----> <div relative="" inline-block=""> <div> <button data-v-147876cf="" class="c-button circle" style="opacity: 0.2; --9a468bfe: 14px; --09441655: 34px; --e1cab870: #333639; --645976e7: transparent; --cea95e96: rgba(46, 51, 56, 0.09); --369e4b1b: rgba(46, 51, 56, 0.22); --c8f65826: #18a058;"> <svg viewBox="0 0 24 24" width="1.2em" height="1.2em"> <path fill="currentColor" d="m12 21.35l-1.45-1.32C5.4 15.36 2 12.27 2 8.5C2 5.41 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.08C13.09 3.81 14.76 3 16.5 3C19.58 3 22 5.41 22 8.5c0 3.77-3.4 6.86-8.55 11.53z"></path> </svg> </button> </div> <div class="absolute z-10 whitespace-nowrap rounded bg-black px-12px py-6px text-sm text-white shadow-lg transition transition transition-duration-0.2s op-0 scale-0 bottom-100% left-50% -translate-x-1/2 mb-5px"> <!----> </div> </div> </div> </div> <div class="truncat my-5px text-lg text-black dark:text-white">IBAN验证器和解析器</div> <div class="line-clamp-2 text-neutral-500 dark:text-neutral-400">验证和分析IBAN编号。检查IBAN是否有效,并获取国家BBAN,如果它是QR-IBAN和IBAN友好格式。</div> </div> </a> </div> <ImgView title="程序员的工具箱" url="https://5.z.wiki/autoupload/20240405/61DT.2026X3568-image.png" />: "有用,支持一下。", : "https://******/u/Ow6UbH", : "原项目**:https://******/u/Ow6UbH", : "原项目**:https://******/u/Ow6UbH", : "从 GitHub 上找到的项目,纯前端。",
# 容易发音错误的单词 > from [chinese-programmer-wrong-pronunciation](https://github.com/shimohq/chinese-programmer-wrong-pronunciation) 中国程序员容易发音错误的单词(点击▶️收听正确读音) | 单词 | 发音 | 在线发音(英式发音) | |---------------|-------------------------------|-----------------------------------------------------------------------------------------| | access | /'ækses/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=access&type=1" /> | | Adobe | /ə'dəʊbi/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=Adobe&type=1" /> | | admin | /'ædmɪn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=admin&type=1" /> | | adversarial | /ˌædvəˈseəriəl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=adversarial&type=1" /> | | agile | /'ædʒaɪl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=agile&type=1" /> | | amazon | /'æməzən/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=amazon&type=1" /> | | analogy | /əˈnælədʒi/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=analogy&type=1" /> | | Angular | /'æŋgjʊlə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=Angular&type=1" /> | | AJAX | /'eidʒæks/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=AJAX&type=1" /> | | alias | /ˈeɪliəs/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=alias&type=1" /> | | Apache | /ə'pætʃɪ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=Apache&type=1" /> | | app | /æp/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=app&type=1" /> | | archive | /'ɑːkaɪv/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=archive&type=1" /> | | array | /ə'rei/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=array&type=1" /> | | ASCII | /'æski/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=ascii&type=1" /> | | aspect | /'æspekt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=aspect&type=1" /> | | async | /əˈsɪŋk/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=async&type=1" /> | | avatar | /'ævətɑː/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=avatar&type=1" /> | | Azure | /'æʒə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=azure&type=1" /> | | bind | /baɪnd/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=bind&type=1" /> | | cache | /kæʃ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=cache&type=1" /> | | Chrome | /krəʊm/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=chrome&type=1" /> | | clang | /klæŋ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=clang&type=1" /> | | debt | /det/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=debt&type=1" /> | | deny | /dɪ'naɪ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=deny&type=1" /> | | deprecate | /ˈdeprəkeɪt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=deprecate&type=1" /> | | digest | n. /'dɑɪdʒɛst/ v. /dɑɪ'dʒɛst/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=digest&type=1" /> | | doc | /dɒk/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=doc&type=1" /> | | dotnet | /dɒtnet/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=dotnet&type=1" /> | | ephemeral | /<AudioPlayer link="emərəl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=ephemeral&type=1" /> | | epoch | /ˈiːpɒk/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=epoch&type=1" /> | | execute | /ˈeksɪkjuːt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=execute&type=1" /> | | facade | /fə'sɑːd/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=facade&type=1" /> | | fedora | /fɪ'dɔːrə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=fedora&type=1" /> | | format | /'fɔːmæt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=format&type=1" /> | | gauge | /ɡeɪdʒ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=gauge&type=1" /> | | Git | /ɡɪt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=git&type=1" /> | | GUI | /ˈɡu:i/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=%7BGUI%7D&type=1" /> | | height | /haɪt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=height&type=1" /> | | hidden | /'hɪdn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=hidden&type=1" /> | | image | /'ɪmɪdʒ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=image&type=1" /> | | implement | /'ɪmplɪm(ə)nt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=implement&type=1" /> | | integer | /'ɪntɪdʒə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=integer&type=1" /> | | issue | /'ɪʃuː/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=issue&type=1" /> | | Java | /'dʒɑːvə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=java&type=1" /> | | key | /kiː/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=key&type=1" /> | | Ldap | /el'dæp/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=ldap&type=1" /> | | linear | /'lɪnɪə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=linear&type=1" /> | | LINQ | /lɪŋk/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=link&type=1" /> | | Linux | /'lɪnəks/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=linux&type=1" /> | | locale | /ləʊ'kɑːl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=locale&type=1" /> | | Lucene | /lu'siːn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=lucene&type=1" /> | | main | /meɪn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=main&type=1" /> | | margin | /'mɑːdʒɪn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=margin&type=1" /> | | matrix | /ˈmeɪtrɪks/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=matrix&type=1" /> | | maven | /'meɪvn/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=maven&type=1" /> | | Microsoft | /'maikrəusɔft/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=Microsoft&type=1" /> | | miscellaneous | /ˌmɪsəˈleɪniəs/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=miscellaneous&type=1" /> | | obsolete | /ˈɒbsəliːt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=obsolete&type=1" /> | | parameter | /pə'ræmɪtə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=parameter&type=1" /> | | privilege | /'prɪvəlɪdʒ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=privilege&type=1" /> | | Prometheus | /prə-ˈmē-thē-əs/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=prometheus&type=1" /> | | Qt | /kjuːt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=cute&type=1" /> | | Realm | /relm/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=realm&type=1" /> | | reconcile | /ˈrekənsaɪl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=reconcile&type=1" /> | | resume | /rɪ'zju:m/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=resume&type=1" /> | | resolved | /rɪ'zɒlvd/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=resolved&type=1" /> | | resort | /rɪˈzɔ:t/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=resort&type=1" /> | | retina | /'retɪnə/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=retina&type=1" /> | | route | /ruːt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=route&type=1" /> | | safari | /sə'fɑːrɪ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=safari&type=1" /> | | scheme | /skiːm/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=scheme&type=1" /> | | scala | /ˈskɑːlɑ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=scala&type=1" /> | | segue | /'sɛɡwe/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=segue&type=1" /> | | thymeleaf | /ˈtaɪmˌlɪːf/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=thymeleaf&type=1" /> | | tuple | /tjʊpəl/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=tuple&type=1" /> | | Vagrant | /ˈveɪɡrənt/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=Vagrant&type=1" /> | | verbose | /vɜːˈbəʊs/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=verbose&type=1" /> | | vue | /v'ju:/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=vue&type=1" /> | | width | /wɪdθ/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=width&type=1" /> | | YouTube | /'juː'tjuːb/ | <AudioPlayer link="https://dict.youdao.com/dictvoice?audio=youtube&type=1" /> |: " <img src="https://z.wiki/autoupload/20240216/etef.emoji.zip/emoji/haha.png" /> <img src="https://z.wiki/autoupload/20240216/etef.emoji.zip/emoji/haha.png" /> ", : "👍",
# AI 的应用 ### 强大的 cursor Cursor 相对其他 IDE 在 AI 的应用上更彻底,到处都是 AI 的味道,确实好用。 如下图所示,使用 Cursor 的对话功能快速生成文章的 TDK 信息。  ### JetBrain 的优势 不过由于 Cursor 是基于 vscode 魔改的,整体体验上不如 JetBrain 的体验好。 举个例子:提交代码的时候如何进行对比呢? 下图第一个为 Cursor 的变更提交界面,第二个图为 JetBrain 的变更和提交界面:   JetBrain 好用在 1. 可以通过键盘的上下来快速预览各个文件的变化,而 Cursor 必须点击才能预览(或者按 enter 进行预览,但是预览后无法上下切换了) 2. 可以通过键盘选择或或取消选择,便于部分提交,甚至可以只提交一个文件中的一部分修改 使用 JetBrain 基本可以做到键盘侠,这一直是我的最爱🩷🩷🩷 : "<p>借助 AI 做了一个图床上传的 alfred workflow,地址:https://github.com/yihuaxiang/workflow-img-cloud ,<a href="https://hv.z.wiki/autoupload/20250315/xmS1/Clipboard_Uploader.alfredworkflow" title="点此直接下载">点此直接下载</a></p> ", : "<p><a href="https://hv.z.wiki/autoupload/20250315/QtB8/1024X1024/1x1-%E7%A8%8B%E5%BA%8F%E5%91%98%E9%80%9A%E8%BF%87-AI-%E5%86%99%E4%BB%A3%E7%A0%81.png" target="_blank"><img style="max-width: 250px; max-height: 250px;" src="https://hv.z.wiki/autoupload/20250315/QtB8/1024X1024/1x1-%E7%A8%8B%E5%BA%8F%E5%91%98%E9%80%9A%E8%BF%87-AI-%E5%86%99%E4%BB%A3%E7%A0%81.png" alt="image" /></a></p> ",
# `ANSI`转义序列 ### `[36m` 是什么 曾在做云构建的时候,收到的日志中经常有`[36m`、`[2K`、`[1G`类似的字符 > 云构建就是讲本地构建移植到云上,需要在前端实时显示日志 <ImgView title="[36m 是什么" url="https://8.z.wiki/images/20220408/36a762a83c3b4555b28262ef2105ca32.png" /> ```shell 2022-04-08 21:48:35[36m⠙[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:35[2K[1G[36m⠹[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:35[2K[1G[36m⠸[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:35[2K[1G 2022-04-08 21:48:35[36m⠼[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:35[2K[1G[36m⠴[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:35[2K[1G[36m⠦[39m [0/43] Installing vue-template-compiler@^2.6.5 2022-04-08 21:48:36[2K[1G[36m⠧[39m [2/43] Installing is-buffer@~1.1.6 2022-04-08 21:48:36[2K[1G[36m⠇[39m [3/43] Installing tiny-emitter@^2.0.0 2022-04-08 21:48:36[2K[1G[36m⠏[39m [4/43] Installing to-array@0.1.4 2022-04-08 21:48:36[2K[1G[36m⠋[39m [4/43] Installing terraformer@~1.0.5 2022-04-08 21:48:36[2K[1G 2022-04-08 21:48:36[36m⠙[39m [4/43] Installing eslint-plugin-vue@^4.7.1 2022-04-08 21:48:36[2K[1G 2022-04-08 21:48:36[36m⠹[39m [4/43] Installing sortablejs@1.10.2 2022-04-08 21:48:36[2K[1G[36m⠸[39m [4/43] Installing source-map@^0.5.7 2022-04-08 21:48:36[2K[1G[36m⠼[39m [4/43] Installing worker-farm@^1.7.0 2022-04-08 21:48:36[2K[1G[36m⠴[39m [4/43] Installing semver@^6.3.0 2022-04-08 21:48:36[2K[1G[36m⠦[39m [4/43] Installing debug@=3.1.0 2022-04-08 21:48:36[2K[1G ``` 感觉像是某种特殊字符,想百度下,却又无从下手,实在想不出来该搜索什么关键字 <ImgView title="[36m 是什么" url="https://8.z.wiki/images/20220408/5b383319d9524e9e97b855f3b9f5decb.png" /> ### 献出我的一血 今天正好逛到`Stack Overflow`,献出我的一血: [What does "[0;31m" means?](https://stackoverflow.com/questions/71796687/what-does-031m-means) <ImgView title="Stack Overflow" url="https://8.z.wiki/images/20220408/2ffdf2d3a8b74c85b8d45bc6409d4fe4.png" /> ### 探索真相 根据网友的回复,所有线索都指向了 **ANSI转义序列** **ANSI转义序列**是程序和终端交互的重要手段,**ANSI转义序列**是一种特殊的字符,通过这些字符,程序可以控制终端的行为、样式等(如:控制输出文本的前景色、背景色、控制光标位置等)。 以下通过多个例子来体验**ANSI转义序列**之美🌹 #### 富文本 通过终端打印的文字默认是黑白风格,通过最基本的**ANSI转义序列**可以自定义文本渲染样式, 如:颜色、背景色。 ```shell print "u001b[31mHelloWorld" ``` <ImgView title="富文本" url="https://8.z.wiki/images/20220408/36470f8dd8e74e25b1eebe9e31ec0bfe.png" /> 其中含义如下: 1. 黑色:`u001b[30m` 2. 红色:`u001b[31m` 3. 绿色:`u001b[32m` 4. 黄色:`u001b[33m` 5. 蓝色:`u001b[34m` 6. 洋红色:`u001b[35m` 7. 青色:`u001b[36m` 8. 白色:`u001b[37m` 9. 重置:`u001b[0m` > 类似语法不仅仅在`shell`中支持,`java`、`JavaScript`、`Python`也都有一定的支持,`js`运行效果如下: > <ImgView title="富文本" url="https://4.z.wiki/images/20220408/868adfad725e4891a1ef4f1665e074d0.png" /> 更多例子如下: ```shell print "u001b[30m A u001b[31m B u001b[32m C u001b[33m D u001b[0m" print "u001b[34m E u001b[35m F u001b[36m G u001b[37m H u001b[0m" ``` <ImgView title="富文本" url="https://8.z.wiki/images/20220408/4c5e43a7339c4d80a9ad50f018710118.png" /> 除了以上 8 中基础颜色,大多数终端还支持**加亮**、**粗体**等配色或显示效果,并在原来代码后面多了`;1`这个标志。 1. 亮黑色:`u001b[30;1m` 2. 鲜红色:`u001b[31;1m` 3. 亮绿色:`u001b[32;1m` 4. 亮黄色:`u001b[33;1m` 5. 亮蓝色:`u001b[34;1m` 6. 亮洋红色:`u001b[35;1m` 7. 亮青色:`u001b[36;1m` 8. 亮白:`u001b[37;1m` 9. 重置:`u001b[0m` 同理,背景色代码如下: 普通背景色 1. 背景黑色:`u001b[40m` 2. 背景红色:`u001b[41m` 3. 背景绿色:`u001b[42m` 4. 背景黄色:`u001b[43m` 5. 背景蓝色:`u001b[44m` 6. 背景洋红色:`u001b[45m` 7. 背景青色:`u001b[46m` 8. 背景白色:`u001b[47m` 加亮版背景色 1. 背景亮黑色:`u001b[40;1m` 2. 背景亮红色:`u001b[41;1m` 3. 背景亮绿色:`u001b[42;1m` 4. 背景亮黄色:`u001b[43;1m` 5. 背景亮蓝色:`u001b[44;1m` 6. 背景明亮的洋红色:`u001b[45;1m` 7. 背景亮青色:`u001b[46;1m` 8. 背景亮白色:`u001b[47;1m` 测试例子一如下: ```shell print "u001b[40m A u001b[41m B u001b[42m C u001b[43m D u001b[0m"; print "u001b[44m A u001b[45m B u001b[46m C u001b[47m D u001b[0m"; print "u001b[40;1m A u001b[41;1m B u001b[42;1m C u001b[43;1m D u001b[0m"; print "u001b[44;1m A u001b[45;1m B u001b[46;1m C u001b[47;1m D u001b[0m"; ``` <ImgView title="shell" url="https://3.z.wiki/images/20220408/a66e9aeac6794c28832e2dfac60be5a4.png" /> 测试例子二如下: ```shell function showcolors256() { local row col blockrow blockcol red green blue local showcolor=_showcolor256_${1:-bg} local white="033[1;37m" local reset="033[0m" echo 16 standard color codes: for row in {0..1}; do for col in {0..7}; do $showcolor $(( row*8 + col )) $row done echo done echo echo 6·6·6 RGB color codes: for blockrow in {0..2}; do for red in {0..5}; do for blockcol in {0..1}; do green=$(( blockrow*2 + blockcol )) for blue in {0..5}; do $showcolor $(( red*36 + green*6 + blue + 16 )) $green done echo -n " " done echo done echo done echo 24 grayscale color codes: for row in {0..1}; do for col in {0..11}; do $showcolor $(( row*12 + col + 232 )) $row done echo done echo } function _showcolor256_fg() { local code=$( printf %03d $1 ) echo -ne "033[38;5;${code}m" echo -nE " $code " echo -ne "033[0m" } function _showcolor256_bg() { if (( $2 % 2 == 0 )); then echo -ne "033[1;37m" else echo -ne "033[0;30m" fi local code=$( printf %03d $1 ) echo -ne "033[48;5;${code}m" echo -nE " $code " echo -ne "033[0m" } showcolors256 ``` <ImgView title="shell show color 256" url="https://3.z.wiki/images/20220413/919d8511629e4d2d999704b1d34b0ee7.png" /> 其他修饰效果 1. 粗体 `u001b[1m` 2. 下划线 `u001b[4m` 3. 反转 `u001b[7m` #### 光标导航 相比文本修饰转义字符,光标导航相关转义字符更为复杂, 它允许程序控制光标的位置、删除部分内容等等。 ##### 移动光标 基本操作 1. 上:`u001b[{n}A` 2. 下:`u001b[{n}B` 3. 左:`u001b[{n}D` 4. 右:`u001b[{n}C` 进阶操作 1. 后N行 :`u001b[{n}E`将光标向下移动到`n`行首 2. 前N行 :`u001b[{n}F`将光标向下移动到`n`行首 3. 设置列 :`u001b[{n}G`将光标移动到列`n` 4. 设置位置 :`u001b[{n};{m}H`将光标移动到`n`行列`m` 5. 保存位置:`u001b[{s}`保存当前光标位置 6. 保存位置:`u001b[{u}`将光标恢复到上次保存的位置 利用光标的上下左右移动,我们可以做一个加载进度效果,代码如下: ###### 初级进度条 ```shell #!/bin/bash for((i=1;i<100;i++)) do printf "u001b[1000D 进度:${i}"; sleep 1; done ``` 运行效果如下: <ImgView title="shell loading" url="https://4.z.wiki/images/20220408/46a17eb651684ba49d960f87a4dd7d11.gif" /> ###### 高级进度条 ```shell #!/bin/bash i=0 str="" arry=("\" "|" "/" "-") while [ $i -le 100 ] do let index=i%4 printf "u001b[1000D[%-100s] %d %c" "$str" "$i" "${arry[$index]}" sleep 0.1 let i=i+1 str+="#" done echo "" ``` 运行效果如下: <ImgView title="shell loading" url="https://3.z.wiki/images/20220408/1ceac5fd91294989b9cc7fdd09dffbf0.gif" /> 通过不断将光标左移 1000 个字符从而实现后打印的字符覆盖前打印的字符。 ##### 删除内容 1. 清屏: `u001b[{n}J` > `n=0`从光标清除直到屏幕结束 > > `n=1`从光标清除到屏幕开头 > > `n=2`清除整个屏幕 2. 清行: `u001b[{n}K` > `n=0`从光标清除到行尾 > > `n=1`从光标清除到行首 > > `n=2`清除整行 ### 不忘初心 学习完毕,不忘初心,让我们回到最初的问题上,日志中的这些特殊字符到底什么含义呢? ```shell 2022-04-08 21:48:36[2K[1G[36m⠸[39m [4/43] Installing source-map@^0.5.7 2022-04-08 21:48:36[2K[1G[36m⠼[39m [4/43] Installing worker-farm@^1.7.0 ``` #### 答案 `[2K`该字符前其实有一个不可见字符`u001b`(`Esc`字符),根据上文中的学习资料, `u001b[2K`的含义就是清除整行 `[1G`同理,将光标移动到第一列 `[36m`同理,设置后面的文本样式为青色 如果前端在显示日志的时候能支持这些控制指令的话,那最终效果将和在终端安装依赖类似:安装进度不断在同一行刷新刷新刷新... <ImgView title="shell" url="https://3.z.wiki/images/20220408/1f6b8d5b24e948c29aad2df3035b5e40.gif" /> <TheEnd /> : "学到了学到了👍",
# shell 进度条 在`shell`中输出进度条 ## 初级进度条 ``` #!/bin/bash for((i=1;i<100;i++)) do printf "u001b[1000D 进度:${i}"; sleep 1; done ``` 运行效果:  ## 高级进度条 ``` #!/bin/bash i=0 str="" arry=("\" "|" "/" "-") while [ $i -le 100 ] do let index=i%4 printf "u001b[1000D[%-100s] %d %c" "$str" "$i" "${arry[$index]}" sleep 0.1 let i=i+1 str+="#" done echo "" ``` 运行效果:  > 更信息内容可查看 [ANSI转义序列](https://z.wiki/tech/my-first-post-in-stackoverflow.html);
# find 并执行其他命令 先通过`find`查找文件并对文件执行特定命令 通过`-exec`选项实现 ```shell find . -type f -exec ls -l {} ; ``` 通过`xargs`实现 ```shell find . -maxdepth 1 -name "*.log" | xargs -i du -hs {} ``` ### 应用实战一 查找所有项目并自动拉取`master`分支上的最新代码 ```shell find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master ; ``` ### 应用实战二 查找特定的文件并清空内容 ```shell find . -type f -name "user*" -exec bash -c 'echo 0x0 > {}' ; ``` 找到所有`user`开头的文件,并对每个文件执行脚本`echo 0x0 > {}`清空文件内容, 当脚本执行的时候`{}`会被动态替换成当前文件名, 最后结尾的`;`表示该分号是执行子命令的内容,不是`find`需要处理的分号。
chkconfig 腾讯云上的服务器总有需要重启的时候,每次重启都会需要手动开启一堆服务和应用, 如`nginx`、聊天室、博客对应的后台`Java`服务、`node`服务等等, 针对这种情况,之前的文章中介绍过如何通过`crontab`、`pm2`去解决 ([crontab](https://z.wiki/tech/crontab.html#%E7%94%A8%E6%88%B7%E4%BB%BB%E5%8A%A1)), 这次介绍下`chkconfig`。 ### chkconfig 是什么 `chkconfig`是用来管理系统初始化期间启动服务的程序 通过`man`手册可以更具体的了解`chkconfig` ```text CHKCONFIG(8) System Manager's Manual CHKCONFIG(8) NAME chkconfig - updates and queries runlevel information for system ser‐ vices SYNOPSIS chkconfig [--list] [--type type] [name] chkconfig --add name chkconfig --del name chkconfig --override name chkconfig [--level levels] [--type type] [--no-redirect] name <on|off|reset|resetpriorities> chkconfig [--level levels] [--type type] [--no-redirect] name DESCRIPTION chkconfig provides a simple command-line tool for maintaining the /etc/rc[0-6].d directory hierarchy by relieving system administrators of the task of directly manipulating the numerous symbolic links in those directories. ``` ### 启动基础知识 当`Linux`机器启动时,出现的第一个程序时`init`,再由`init`执行 `/etc/inittab`下的任务。 未完待续...: "烂尾+1",
# docker <ImgView title="docker" url="https://3.z.wiki/autoupload/20230501/VkEH.2160X3840-image.png" /> ### 介绍与基础概念 <TextTitle text="概念" title="介绍与基础概念" /> `Docker`是一种容器化技术,它可以轻松地打包、部署和运行应用程序或服务。 `Docker`的核心组件包括`Docker Engine`、`Docker Hub`和`Docker CLI`。 `Docker Engine`是一个运行在主机上的后台服务,用于管理容器、镜像和网络等`Docker`组件。 `Docker Hub`是一个在线的镜像仓库,用户可以在其中存储、分享和拉取`Docker`镜像。 `Docker CLI`是一个命令行工具,它提供了一系列用于管理`Docker`的命令。 在`Docker`中,容器是一种轻量级、可移植、可自包含的软件单元,它可以在任何地方运行。 `Docker`容器是基于镜像创建的,镜像是一个只读的模板,它包含了应用程序或服务运行所需的所有组件和配置。 `Docker`镜像是由`Dockerfile`定义的,`Dockerfile`是一个包含了一系列指令的文件,它描述了如何构建`Docker`镜像。 `Docker`网络是一个附加的组件,它允许容器之间互相通信,以及容器和主机之间的通信。 ### 常用命令 <TextTitle text="命令" title="常用命令" /> `docker run`:该命令用于在 `Docker` 容器中运行一个新的镜像。语法如下: ```shell docker run [OPTIONS] IMAGE [COMMAND] [ARG...] ``` 其中 `OPTIONS` 可以指定容器的各种选项,如 `-p` 表示指定端口映射,`-v` 表示挂载数据卷等。 举例说明: ```shell docker run -itd -v $(pwd):/var/opt/home -p 80:3000 node:18 ``` 该命令将宿主机的`80`端口映射到容器的`3000`端口,将当前目录挂在到容器的`/var/opt/home`目录。 `docker ps`:该命令用于列出当前正在运行的容器。语法如下: ```shell docker ps [OPTIONS] ``` 其中 `OPTIONS` 可以指定各种筛选条件,如 `-a` 表示列出所有容器,包括已停止的容器。 docker images:该命令用于列出当前系统中所有的镜像。语法如下: ```shell docker images [OPTIONS] [REPOSITORY[:TAG]] ``` 其中`OPTIONS`可以指定各种筛选条件,如 `-a` 表示列出所有镜像,包括中间层镜像。 `docker build`:该命令用于根据 `Dockerfile` 构建一个新的镜像。语法如下: ```shell docker build [OPTIONS] PATH ``` 其中 `OPTIONS` 可以指定各种选项,如 `-t` 表示指定新镜像的名称和标签。 `docker stop`:该命令用于停止运行中的容器。语法如下: ```shell docker stop [OPTIONS] CONTAINER [CONTAINER...] ``` 其中 `OPTIONS` 可以指定停止容器的选项,如 `-t` 表示指定等待容器停止的时间。 `docker rm`:该命令用于删除一个或多个容器。语法如下: ```shell docker rm [OPTIONS] CONTAINER [CONTAINER...] ``` 其中 `OPTIONS` 可以指定删除容器的选项,如 -f 表示强制删除容器。 `docker rmi`:该命令用于删除一个或多个镜像。语法如下: ```shell docker rmi [OPTIONS] IMAGE [IMAGE...] ``` 其中 `OPTIONS` 可以指定删除镜像的选项,如 `-f` 表示强制删除镜像。 `docker exec`:该命令用于在运行中的容器中执行命令。语法如下: ```shell docker exec [OPTIONS] CONTAINER COMMAND [ARG...] ``` 其中 `OPTIONS` 可以指定执行命令的选项,如 `-it` 表示在交互模式下执行命令。 举例说明: ```shell docker exec -it jolly_fermat bash ``` 以上命令以交互模式下执行容器`jolly_fermat`里面的`bash`程序。 ### 创建应用 <TextTitle text="创建" title="创建应用" /> 1. 从[start.spring.io](https://start.spring.io)初始化一个`web`应用 2. 运行`package`生命周期,打包成`jar` <ImgView title="docker" url="https://3.z.wiki/images/20211115/1c75893dcf694b7e94bcba31ef6c9ace.png" /> ### 通过`docker`发布应用 <TextTitle text="发布" title="发布应用" /> #### 找到`OpenJDK`的镜像 地址:[https://hub.docker.com/_/openjdk](https://hub.docker.com/_/openjdk) ```shell docker pull openjdk ``` #### 查看本地镜像 ```shell docker images ``` 运行接入如下:能看到`OpenJDK`镜像即可 ```shell REPOSITORY TAG IMAGE ID CREATED SIZE openjdk latest deaa5a1a5f98 10 days ago 471MB httpd latest 1132a4fc88fa 3 weeks ago 143MB php latest dae5324f443c 3 weeks ago 476MB mysql latest ecac195d15af 3 weeks ago 516MB ubuntu latest ba6acccedd29 4 weeks ago 72.8MB nginx latest 87a94228f133 4 weeks ago 133MB ``` #### 定制镜像 在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容: ```shell # 定制的镜像都是基于 FROM 的镜像,这里的 openjdk 就是定制需要的基础镜像。后续的操作都是基于 openjdk FROM openjdk # 将打包好的应用复制到镜像中 COPY ./springproject/target/springproject-0.0.1-SNAPSHOT.jar /root # 运行程序,监听 8080 端口 CMD java -jar /root/springproject-0.0.1-SNAPSHOT.jar ``` #### 构建镜像 ```shell docker build -t fddweb:latest . ``` 注:命令中的`.`是上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。 构建结果如下: ```shell [+] Building 0.2s (7/7) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 179B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/openjdk:latest 0.0s => [internal] load build context 0.0s => => transferring context: 150B 0.0s => [1/2] FROM docker.io/library/openjdk 0.0s => CACHED [2/2] COPY ./springproject/target/springproject-0.0.1-SNAPSHOT.jar /root 0.0s => exporting to image 0.1s => => exporting layers 0.1s => => writing image sha256:36dbcd1aa38da48e8f6e4bb20346a3320f5f93946c7a812366c4aba151acaaa2 0.0s => => naming to docker.io/library/fddweb:latest 0.0s Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them ``` 查看本地镜像,镜像列表中多了一条 ```shell fddweb latest 36dbcd1aa38d 2 minutes ago 488MB ``` #### 本地运行与测试 ```shell docker run -d -p 8080:8080 fddweb ``` 运行后访问[http://localhost:8080](http://localhost:8080)即可 #### 发布 1. 登陆 ```shell docker login ``` 根据提示输入用户名密码,第一次需要去官网进行注册 2. 打标 ```shell docker tag fddweb fudocker/fddweb:latest ``` 3. 上传 ```shell docker push fudocker/fddweb:latest ``` 运行结果: ```shell The push refers to repository [docker.io/fudocker/fddweb] 04540b06bf06: Pushed bf43d511e1ed: Mounted from library/openjdk 86ab8b6eae75: Mounted from library/openjdk 8178e842e73e: Mounted from library/openjdk latest: digest: sha256:8ad87d86d41e7953f7c2542719b0d82f30f832b0eeb9fd7e8cb2012bc7ed5073 size: 1166 ``` ### 使用应用镜像 <TextTitle text="镜像" title="使用应用镜像" /> 拉取镜像 ```shell docker push fudocker/fddweb:tagname ``` 使用镜像 ```shell docker run -d -p 8811:8080 fudocker/fddweb:latest ``` 运行后访问[http:localhost:8811](http://localhost:8811)即可 ### docker-compose `docker-compose`是用于定义和运行多容器 `Docker` 应用程序的工具。 通过 `docker compose`,您可以使用 `YML` 文件来配置应用程序需要的所有服务。 然后,使用`docker-compose up`或`docker-compose up -d`命令,就可以从 `YML` 文件配置中创建并启动所有服务。 #### docker-compose 安装 ```shell # 下载 docker-compose 可执行文件,具体版本号 [github](https://github.com/docker/compose/releases) 获取 sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加可执行权限 sudo chmod +x /usr/local/bin/docker-compose # 软连接到 /usr/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 检查是否安装成功 docker-compose version ``` [docker-compose 安装文档](https://docs.docker.com/compose/install/) 安装后在有`docker-compose.yml`文件的目录中执行`docker-compose up -d`即可运行程序。 #### docker-compose.yml `docker-compose.yml`的写法可以参考官网文档:[docs.docker.com](https://docs.docker.com/compose/compose-file/03-compose-file/)。 #### 参考文档 1. [runoob](https://www.runoob.com/docker/docker-dockerfile.html) 2. [docker.com](https://docs.docker.com/get-started/): "<p>已经有好几个私人应用通过 docker 部署了 😁</p> ", : "<p>支持一下博主 很厉害</p> ",
# shell 中进行字符串比较 判断字符串是否相等 ```shell #!/bin/bash VAR1="one" VAR2="two" if [ "$VAR1" = "$VAR2" ]; then echo "Strings are equal." else echo "Strings are not equal." fi ``` 字符串子串判断 ```shell #!/bin/bash VAR='GNU/Linux is an operating system' if [[ $VAR == *"Linux"* ]]; then echo "It's there." fi ``` 其他判断方法 ``` var1 = var2 // 判断 var1 和 var2 相等 var1 != var2 // 判断 var1 和 var2 不相等 var1 < var2 // 判断 var1 比 var2 小 var1 > var2 // 判断 var1 比 var2 大 -n var1 // 判断 var1 长度不为 0 -z var1 // 判断 var1 长度为 0 -d file // 判断 file 为目录 -e file // 判断 file 存在 -w file // 判断 file 存在并可写入 -r file // 判断 file 存在并可读 -s file // 判断 file 存在并不为空 -f file // file 存在并且为文件 -O file // file 存在并且 owner 为当前用户 -G file // file 存在并且 owner 和当前用户同为一个 group -x file // file 存在并且具有可执行权限 fA -nt fB // 判断 文件A 比 文件B 新 fA -ot fB // 判断 文件A 比 文件B 旧 ```