import { b as createComponent, m as maybeRenderHead, f as renderScript, h as renderTemplate, r as renderComponent, g as renderSlot, a as addAttribute, e as renderHead, c as createAstro } from './astro/server-Cb9ijeGr.js';
/* empty css                         */

const $$FeedbackWidget = createComponent(async ($$result, $$props, $$slots) => {
  return renderTemplate`${maybeRenderHead()}<div class="feedback-widget" id="feedback-widget"> <section class="feedback-panel" id="feedback-panel" aria-label="意见反馈" hidden> <div class="feedback-heading"> <strong>意见反馈</strong> <button class="feedback-close" id="feedback-close" type="button" aria-label="关闭反馈">×</button> </div> <textarea class="feedback-input" id="feedback-input" maxlength="1000" rows="5" placeholder="遇到了什么问题，或希望增加什么功能？"></textarea> <input class="feedback-contact" id="feedback-contact" maxlength="128" type="text" placeholder="联系方式（可选）"> <div class="feedback-actions"> <span class="feedback-status" id="feedback-status" aria-live="polite"></span> <button class="feedback-submit" id="feedback-submit" type="button">发送</button> </div> </section> <button class="feedback-trigger" id="feedback-trigger" type="button" aria-controls="feedback-panel" aria-expanded="false">意见反馈</button> </div> ${renderScript($$result, "/private/tmp/taitan-release-8bef5540/frontend/taitan-extension/src/components/FeedbackWidget.astro?astro&type=script&index=0&lang.ts")}`;
}, "/private/tmp/taitan-release-8bef5540/frontend/taitan-extension/src/components/FeedbackWidget.astro", void 0);

var __freeze = Object.freeze;
var __defProp = Object.defineProperty;
var __template = (cooked, raw) => __freeze(__defProp(cooked, "raw", { value: __freeze(cooked.slice()) }));
var _a;
const $$Astro = createAstro();
const $$ExtLayout = createComponent(($$result, $$props, $$slots) => {
  const Astro2 = $$result.createAstro($$Astro, $$props, $$slots);
  Astro2.self = $$ExtLayout;
  const { title = "\u7406\u609F\u4E07\u6C60", bodyClass = "" } = Astro2.props;
  return renderTemplate(_a || (_a = __template(['<html lang="zh-CN" data-theme="dark"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"><title>', '</title><script>\n      (() => {\n        try {\n          const stored = localStorage.getItem("lvonce-theme");\n          const prefersLight = window.matchMedia("(prefers-color-scheme: light)").matches;\n          const theme = stored || (prefersLight ? "light" : "dark");\n          document.documentElement.dataset.theme = theme;\n        } catch {\n          document.documentElement.dataset.theme = "dark";\n        }\n      })();\n    <\/script>', "</head> <body", "> ", " ", " </body></html>"])), title, renderHead(), addAttribute(bodyClass, "class"), renderSlot($$result, $$slots["default"]), renderComponent($$result, "FeedbackWidget", $$FeedbackWidget, {}));
}, "/private/tmp/taitan-release-8bef5540/frontend/taitan-extension/src/layouts/ExtLayout.astro", void 0);

const TOOLS = [
  // 现有
  { slug: "mortgage", href: "/tools/mortgage.html", title: "房贷计算器", desc: "等额本息/等额本金、商贷+公积金组合贷、提前还款、通胀对比，全部本地计算。", category: "金融", status: "available" },
  { slug: "tier-list", href: "/tools/tier-list.html", title: "从夯到拉 排名表", desc: "上传图片拖到「夯/顶级/人上人/NPC/拉完了」五档，档位/名字可自定义。", category: "生活", status: "available" },
  // P0
  { slug: "json", href: "/tools/json.html", title: "JSON 工作台", desc: "格式化 / 压缩 / 转义 / 排序 / Tree 视图 / JSONPath 查询，单页搞定。", category: "JSON", status: "available", keywords: ["json 格式化", "json 压缩", "json 校验", "jsonpath"] },
  { slug: "encoder", href: "/tools/encoder.html", title: "编码工具", desc: "Base64 / Hex / URL / HTML 实体 / Unicode 编解码，一栏式 tab 切换。", category: "编解码", status: "available", keywords: ["base64", "url 编码", "unicode"] },
  { slug: "hash", href: "/tools/hash.html", title: "哈希计算", desc: "MD5 / SHA-1 / SHA-256 / SHA-512 / SHA3 / HMAC / CRC32，文本和文件都能算。", category: "加密", status: "available", keywords: ["md5", "sha256", "hmac"] },
  { slug: "jwt", href: "/tools/jwt.html", title: "JWT 解码", desc: "解析 header / payload / signature，支持 HS256/384/512 在线签名校验。", category: "加密", status: "available", keywords: ["jwt", "json web token"] },
  { slug: "uuid", href: "/tools/uuid.html", title: "UUID 生成", desc: "UUID v4/v7、NanoID、Snowflake，可批量生成与导出 CSV。", category: "ID", status: "available", keywords: ["uuid", "nanoid", "snowflake"] },
  { slug: "timestamp", href: "/tools/timestamp.html", title: "时间戳工具", desc: "Unix 秒/毫秒 ↔ 日期时间，多时区平铺 + 自然语言加减。", category: "时间", status: "available", keywords: ["unix 时间戳", "utc"] },
  // P1
  { slug: "token", href: "/tools/token.html", title: "随机串生成", desc: "可配长度 / 大小写 / 数字 / 符号，密码强度评估实时显示。", category: "ID", status: "available", keywords: ["密码生成", "token", "random"] },
  { slug: "otp", href: "/tools/otp.html", title: "OTP / TOTP", desc: "Google Authenticator 兼容的 TOTP 验证码生成与校验。", category: "加密", status: "available", keywords: ["totp", "hotp", "两步验证"] },
  { slug: "chmod", href: "/tools/chmod.html", title: "Chmod 计算器", desc: "8 进制 ↔ rwx 双向转换，可视化勾选。", category: "速查", status: "available", keywords: ["chmod", "权限位"] },
  { slug: "url-parser", href: "/tools/url-parser.html", title: "URL 解析", desc: "URL → scheme/host/port/path/query/hash 全字段拆解 + 编辑回显。", category: "编解码", status: "available", keywords: ["url", "query string"] },
  { slug: "regex", href: "/tools/regex.html", title: "正则测试器", desc: "实时高亮匹配 / 分组捕获表 / 速查表，无需联网。", category: "正则", status: "available", keywords: ["regex", "正则"] },
  { slug: "cron", href: "/tools/cron.html", title: "Cron 表达式", desc: "5/6 段 cron 解析 + 未来 10 次触发预览 + 自然语言描述。", category: "时间", status: "available", keywords: ["cron", "定时任务"] },
  { slug: "diff", href: "/tools/diff.html", title: "文本 Diff", desc: "行级双栏对比，新增 / 删除 / 修改高亮。", category: "文本", status: "available", keywords: ["diff", "差异对比"] },
  { slug: "color", href: "/tools/color.html", title: "颜色工具", desc: "HEX / RGB / HSL / HSV 互转，对比度（WCAG）检测。", category: "颜色", status: "available", keywords: ["hex", "rgb", "配色"] },
  { slug: "list", href: "/tools/list.html", title: "列表工具", desc: "去重 / 排序 / 反转 / 交集 / 并集 / 差集 / 分隔符切换。", category: "文本", status: "available" },
  { slug: "base-converter", href: "/tools/base-converter.html", title: "进制转换", desc: "2/8/10/16/任意进制互转，BigInt 大整数支持。", category: "编解码", status: "available" },
  { slug: "roman", href: "/tools/roman.html", title: "罗马数字", desc: "阿拉伯数字 ↔ 罗马数字双向互转。", category: "编解码", status: "available" },
  { slug: "slugify", href: "/tools/slugify.html", title: "Slugify", desc: "中文 / Unicode → URL 友好 slug，可选拼音化。", category: "文本", status: "available" },
  { slug: "lorem", href: "/tools/lorem.html", title: "Lorem Ipsum", desc: "段 / 句 / 词级别占位文本，中英双语。", category: "文本", status: "available" },
  { slug: "ipv4-subnet", href: "/tools/ipv4-subnet.html", title: "IPv4 子网", desc: "CIDR / 掩码 / 网络号 / 广播 / 主机数 / 范围速算。", category: "网络", status: "available" },
  { slug: "text-stats", href: "/tools/text-stats.html", title: "文本统计", desc: "字符 / 词 / 行 / 段落 / 阅读时长 / Unicode 分布。", category: "文本", status: "available" },
  { slug: "case-converter", href: "/tools/case-converter.html", title: "命名风格", desc: "camelCase / snake_case / kebab-case / PascalCase / CONSTANT 互转。", category: "文本", status: "available" },
  { slug: "email-normalize", href: "/tools/email-normalize.html", title: "邮箱规范化", desc: "去 Gmail dot/+ 别名，常见一次性域名标记。", category: "文本", status: "available" },
  { slug: "basic-auth", href: "/tools/basic-auth.html", title: "Basic Auth", desc: "用户名 + 密码 → HTTP Authorization Header。", category: "编解码", status: "available" },
  { slug: "cheatsheet", href: "/tools/cheatsheet.html", title: "速查手册", desc: "HTTP 状态码 / MIME 类型 / Keycode / Git 命令 一站式速查。", category: "速查", status: "available" },
  { slug: "linux-cheatsheet", href: "/tools/linux-cheatsheet.html", title: "Linux 命令行 Cheatsheet", desc: "文件 / 文本 / 进程 / 网络 / 磁盘 / systemd / 容器 130+ 实战命令，支持中文语义搜索。", category: "速查", status: "available", keywords: ["linux", "bash", "命令行", "grep", "awk", "sed", "systemctl", "curl", "rsync", "docker", "语义搜索"] },
  { slug: "git-cheatsheet", href: "/tools/git-cheatsheet.html", title: "Git 命令行 Cheatsheet", desc: "撤销 / 找回误删 / 冲突解决 / rebase / bisect / reflog 160+ 条问题导向命令，支持中文语义搜索。", category: "速查", status: "available", keywords: ["git", "reflog", "rebase", "cherry-pick", "bisect", "merge", "撤销", "恢复", "冲突", "语义搜索"] },
  { slug: "mirrors", href: "/tools/mirrors.html", title: "国内镜像仓库", desc: "apt/yum/npm/pip/cargo/maven/docker 等国内镜像 + 一键设置命令，支持中文语义搜索。", category: "速查", status: "available", keywords: ["镜像", "换源", "国内镜像", "aliyun", "tuna", "ustc", "rsproxy", "goproxy", "npm", "pip", "cargo", "maven", "docker", "homebrew", "apt"] },
  // 从 taitan-index 整合而来（日常工具箱 + 程序员工具集）
  { slug: "unit", href: "/tools/unit.html", title: "单位换算", desc: "长度 / 重量 / 温度 / 面积 / 体积 / 速度，公制英制互转。", category: "换算", status: "available", keywords: ["单位", "换算", "米", "英尺", "摄氏", "华氏"] },
  { slug: "currency", href: "/tools/currency.html", title: "汇率换算", desc: "常见货币实时汇率换算，支持人民币 / 美元 / 欧元 / 日元等十余种币种。", category: "换算", status: "available", keywords: ["汇率", "货币", "CNY", "USD", "EUR", "JPY"] },
  { slug: "bmi", href: "/tools/bmi.html", title: "BMI 计算", desc: "身高 / 体重 → BMI 指数与健康分级（偏瘦 / 正常 / 偏胖 / 肥胖）。", category: "生活", status: "available", keywords: ["bmi", "体重指数", "身高"] },
  { slug: "timer", href: "/tools/timer.html", title: "倒计时 / 秒表", desc: "倒计时 + 秒表 + 计次记录，毫秒级精度。", category: "时间", status: "available", keywords: ["倒计时", "秒表", "stopwatch", "timer"] },
  { slug: "random", href: "/tools/random.html", title: "随机数 / 抽签", desc: "区间随机数批量生成 + 文本抽签，决策困难症友好。", category: "生活", status: "available", keywords: ["随机数", "抽签", "random", "抽奖"] },
  { slug: "datecalc", href: "/tools/datecalc.html", title: "日期计算", desc: "两日期间隔 + 任意日期 ± N 天 / 周 / 月 / 年。", category: "时间", status: "available", keywords: ["日期", "日期差", "日期偏移", "date"] },
  { slug: "tip", href: "/tools/tip.html", title: "小费计算", desc: "金额 + 小费比例 + 人数 → 总计 / 人均，餐厅 AA 必备。", category: "金融", status: "available", keywords: ["小费", "tip", "AA"] },
  { slug: "ip", href: "/tools/ip.html", title: "我的 IP", desc: "查询当前出口公网 IP / 地理位置 / ISP / 时区。", category: "网络", status: "available", keywords: ["ip", "出口 ip", "地理位置", "isp"] },
  { slug: "qrcode", href: "/tools/qrcode.html", title: "二维码生成", desc: "文本 / 网址 / 联系方式 → 二维码图片，可下载 PNG。", category: "编解码", status: "available", keywords: ["qrcode", "二维码", "qr"] },
  { slug: "hotlist", href: "/tools/hotlist.html", title: "AI热点", desc: "全网热榜聚合：今日头条、百度、微博、B站、抖音等 11 平台实时热点，每 30 分钟更新。", category: "速查", status: "planned", keywords: ["热点", "热搜", "热榜", "trending", "微博", "百度", "抖音"] },
  { slug: "radar", href: "/tools/radar.html", title: "能力雷达图", desc: "自定义 3–18 维雷达图，填写维度名称与数值，实时预览并导出 PNG。", category: "设计", status: "available", keywords: ["雷达图", "radar", "spider", "能力图", "属性图"] },
  { slug: "lottery", href: "/tools/lottery.html", title: "随机抽奖", desc: "转盘 / 老虎机 / 翻牌 / 滚动 4 种动画模式，输入名单即可摇奖。", category: "生活", status: "available", keywords: ["抽奖", "转盘", "摇号", "lottery", "随机"] },
  { slug: "vote", href: "/tools/vote.html", title: "投票器", desc: "创建投票分享链接，无需登录注册，数据存储在 URL 中，结果离线汇总。", category: "生活", status: "available", keywords: ["投票", "vote", "问卷", "决策"] },
  // P0 — 高频刚需
  { slug: "markdown", href: "/tools/markdown.html", title: "Markdown 预览", desc: "左右分栏实时编辑 + 预览，支持 GFM / 数学公式 / Mermaid 图表。", category: "文本", status: "available", keywords: ["markdown", "md", "预览"] },
  { slug: "image-compress", href: "/tools/image-compress.html", title: "图片压缩", desc: "拖入图片，浏览器端 Canvas / WebP 压缩，调质量预览对比，批量下载。", category: "设计", status: "available", keywords: ["图片压缩", "图片优化", "webp"] },
  { slug: "image-convert", href: "/tools/image-convert.html", title: "图片格式转换", desc: "PNG ↔ JPG ↔ WebP ↔ AVIF ↔ SVG，批量拖拽即转。", category: "设计", status: "available", keywords: ["图片转换", "png", "jpg", "webp"] },
  { slug: "css-gradient", href: "/tools/css-gradient.html", title: "CSS 渐变生成", desc: "线性 / 径向 / 锥形渐变可视化编辑，实时预览 + 复制 CSS 代码。", category: "颜色", status: "available", keywords: ["gradient", "渐变", "css"] },
  { slug: "css-shadow", href: "/tools/css-shadow.html", title: "CSS 阴影生成", desc: "Box-shadow / Text-shadow 可视化调节器，多层阴影叠加。", category: "颜色", status: "available", keywords: ["box-shadow", "text-shadow", "css"] },
  { slug: "json-yaml", href: "/tools/json-yaml.html", title: "JSON ↔ YAML", desc: "双向转换 + 格式化 + 语法校验，开发者高频需求。", category: "JSON", status: "available", keywords: ["json", "yaml", "转换"] },
  { slug: "curl-converter", href: "/tools/curl-converter.html", title: "cURL 转代码", desc: "cURL 命令 → Python / JS / Go / Rust / PHP 代码，一键复制。", category: "编解码", status: "available", keywords: ["curl", "http", "代码生成"] },
  { slug: "placeholder", href: "/tools/placeholder.html", title: "占位图生成", desc: "自定义尺寸 / 背景色 / 文字 / 格式，URL 式或下载图片。", category: "设计", status: "available", keywords: ["placeholder", "占位图", "测试图"] },
  // P1 — 开发者进阶
  { slug: "sql-format", href: "/tools/sql-format.html", title: "SQL 格式化", desc: "SQL 语句格式化 / 压缩 / 高亮 / 方言切换（MySQL / PG / SQLite）。", category: "文本", status: "available", keywords: ["sql", "格式化", "mysql", "postgresql"] },
  { slug: "html-preview", href: "/tools/html-preview.html", title: "HTML 实时预览", desc: "输入 HTML/CSS/JS 即时渲染，类 CodePen 单面板。", category: "编解码", status: "available", keywords: ["html", "css", "js", "预览"] },
  { slug: "docker-compose", href: "/tools/docker-compose.html", title: "Docker Run → Compose", desc: "`docker run` 命令一键转 docker-compose.yml 配置。", category: "编解码", status: "available", keywords: ["docker", "compose", "容器"] },
  { slug: "nginx-config", href: "/tools/nginx-config.html", title: "Nginx 配置生成", desc: "反向代理 / SSL / 缓存 / 限流模板，表单式生成 nginx.conf。", category: "网络", status: "available", keywords: ["nginx", "反向代理", "ssl"] },
  { slug: "css-flexbox", href: "/tools/css-flexbox.html", title: "Flexbox 可视化", desc: "拖拽式 Flexbox 布局演练场，实时生成 CSS 代码。", category: "设计", status: "available", keywords: ["flexbox", "布局", "css"] },
  { slug: "css-grid", href: "/tools/css-grid.html", title: "Grid 可视化", desc: "CSS Grid 布局可视化编辑，行列 / gap / 区域定义 + 代码导出。", category: "设计", status: "available", keywords: ["grid", "布局", "css"] },
  { slug: "bezier", href: "/tools/bezier.html", title: "贝塞尔曲线", desc: "cubic-bezier 可视化编辑器 + 动画预览 + 预设库。", category: "设计", status: "available", keywords: ["bezier", "动画", "easing"] },
  { slug: "meta-tag", href: "/tools/meta-tag.html", title: "Meta 标签生成", desc: "Open Graph / Twitter Card / 基本 SEO meta 一键生成 + 预览。", category: "网络", status: "available", keywords: ["meta", "og", "seo"] },
  { slug: "csp-generator", href: "/tools/csp-generator.html", title: "CSP 策略生成", desc: "Content-Security-Policy header 可视化构建 + 验证。", category: "网络", status: "available", keywords: ["csp", "安全策略", "header"] },
  { slug: "morse", href: "/tools/morse.html", title: "摩尔斯电码", desc: "文本 ↔ 摩尔斯编解码 + 音频播放。", category: "编解码", status: "available", keywords: ["morse", "摩尔斯", "电码"] },
  // P2 — 生活 / 趣味
  { slug: "pomodoro", href: "/tools/pomodoro.html", title: "番茄钟", desc: "25/5 分钟周期，自定义时长，铃声提醒，统计今日完成轮数。", category: "生活", status: "available", keywords: ["番茄钟", "pomodoro", "专注"] },
  { slug: "noise", href: "/tools/noise.html", title: "白噪音", desc: "雨声 / 咖啡馆 / 森林 / 海浪等多声源混音，助眠 / 专注。", category: "生活", status: "available", keywords: ["白噪音", "助眠", "专注"] },
  { slug: "habit", href: "/tools/habit.html", title: "打卡日历", desc: "每日 Habit Tracker，数据存 localStorage，连续打卡统计。", category: "生活", status: "available", keywords: ["打卡", "习惯", "habit"] },
  { slug: "expense", href: "/tools/expense.html", title: "记账本", desc: "收支快捷记录 + 月度饼图统计，数据 localStorage + JSON 导出。", category: "金融", status: "available", keywords: ["记账", "收支", "开销"] },
  { slug: "compound", href: "/tools/compound.html", title: "复利计算", desc: "本金 × 利率 × 年限 → 复利终值 + 逐年增长曲线图。", category: "金融", status: "available", keywords: ["复利", "利息", "投资"] },
  { slug: "pixel-art", href: "/tools/pixel-art.html", title: "像素画板", desc: "网格画布 + 调色盘，导出 PNG / CSS box-shadow。", category: "设计", status: "available", keywords: ["像素", "pixel", "画板"] },
  { slug: "mermaid", href: "/tools/mermaid.html", title: "Mermaid 图表", desc: "流程图 / 时序图 / 甘特图，Mermaid 语法实时渲染。", category: "设计", status: "available", keywords: ["mermaid", "流程图", "时序图"] },
  { slug: "ascii-art", href: "/tools/ascii-art.html", title: "ASCII 艺术字", desc: "文本 → FIGlet ASCII Art，多字体可选 + 复制。", category: "文本", status: "available", keywords: ["ascii", "figlet", "艺术字"] },
  { slug: "emoji", href: "/tools/emoji.html", title: "Emoji 搜索", desc: "中英文关键词搜索 Emoji + 一键复制 + 常用分类浏览。", category: "文本", status: "available", keywords: ["emoji", "表情", "复制"] },
  { slug: "ics", href: "/tools/ics.html", title: "ICS 日历事件", desc: "填表生成 .ics 日历文件，可导入 Google/Apple Calendar。", category: "时间", status: "available", keywords: ["ics", "日历", "calendar"] },
  { slug: "password-check", href: "/tools/password-check.html", title: "密码强度检测", desc: "密码强度评分 + 是否被泄露检查（k-Anonymity / HaveIBeenPwned API）。", category: "加密", status: "available", keywords: ["密码", "强度", "泄露"] },
  { slug: "favicon", href: "/tools/favicon.html", title: "Favicon 生成", desc: "上传图片 → 自动裁剪生成 16/32/48/180/512 全尺寸 + manifest.json。", category: "设计", status: "available", keywords: ["favicon", "图标", "ico"] },
  { slug: "og-image", href: "/tools/og-image.html", title: "OG 社交图生成", desc: "标题 + 描述 + Logo → Open Graph / Twitter Card 预览图 1200×630。", category: "设计", status: "available", keywords: ["og", "社交图", "twitter card"] },
  { slug: "screen-ruler", href: "/tools/screen-ruler.html", title: "屏幕标尺", desc: "测量屏幕像素距离 / 角度，前端开发对齐辅助。", category: "设计", status: "available", keywords: ["标尺", "像素", "测量"] },
  { slug: "decision", href: "/tools/decision.html", title: "决策矩阵", desc: "多维度加权打分表，帮助理性决策（买房/选 Offer）。", category: "生活", status: "available", keywords: ["决策", "打分", "对比"] },
  { slug: "mindmap", href: "/tools/mindmap.html", title: "思维导图", desc: "Tab 缩进文本 → 可视化思维导图，可导出 SVG/PNG。", category: "设计", status: "available", keywords: ["思维导图", "mindmap", "脑图"] },
  // P3 — 长尾补充
  { slug: "svg-editor", href: "/tools/svg-editor.html", title: "SVG 编辑器", desc: "简易矢量图形编辑 + 路径优化 + SVGO 压缩。", category: "设计", status: "available", keywords: ["svg", "矢量", "编辑"] },
  { slug: "keycode", href: "/tools/keycode.html", title: "Keycode 查询", desc: "按下键盘按键 → 实时显示 keyCode / key / code / which。", category: "速查", status: "available", keywords: ["keycode", "键盘", "key"] },
  { slug: "useragent", href: "/tools/useragent.html", title: "UA 解析", desc: "User-Agent 字符串 → 浏览器 / OS / 设备类型解析。", category: "网络", status: "available", keywords: ["user-agent", "浏览器", "解析"] },
  { slug: "htpasswd", href: "/tools/htpasswd.html", title: "Htpasswd 生成", desc: "生成 Apache/Nginx .htpasswd 行（bcrypt / SHA / MD5）。", category: "加密", status: "available", keywords: ["htpasswd", "apache", "nginx"] },
  { slug: "gitignore", href: "/tools/gitignore.html", title: ".gitignore 生成", desc: "选择语言 / 框架 → 自动拼接 .gitignore 内容。", category: "速查", status: "available", keywords: ["gitignore", "忽略文件"] },
  { slug: "manifest", href: "/tools/manifest.html", title: "PWA Manifest", desc: "填写应用信息 → 生成 manifest.json + Service Worker 模板。", category: "网络", status: "available", keywords: ["pwa", "manifest", "service worker"] },
  { slug: "vcard", href: "/tools/vcard.html", title: "vCard 名片", desc: "填写联系方式 → 生成 .vcf 文件 + 二维码。", category: "生活", status: "available", keywords: ["vcard", "名片", "vcf"] },
  { slug: "luhn", href: "/tools/luhn.html", title: "银行卡校验", desc: "Luhn 算法校验信用卡/银行卡号合法性 + BIN 识别。", category: "金融", status: "available", keywords: ["luhn", "银行卡", "信用卡"] },
  { slug: "aspect-ratio", href: "/tools/aspect-ratio.html", title: "宽高比计算", desc: "输入宽高 → 计算比例 / 按比例缩放到目标尺寸。", category: "设计", status: "available", keywords: ["宽高比", "比例", "缩放"] },
  { slug: "data-uri", href: "/tools/data-uri.html", title: "Data URI 生成", desc: "文件 → Base64 Data URI，附带文件类型检测 + 预览。", category: "编解码", status: "available", keywords: ["data uri", "base64", "内联"] },
  // 日常生活
  { slug: "relatives", href: "/tools/relatives.html", title: "亲戚称呼计算", desc: "输入关系链（爸爸的妈妈的姐姐）→ 自动给出正确称呼，支持南北方差异。", category: "生活", status: "available", keywords: ["亲戚", "称呼", "关系"] },
  { slug: "what-to-eat", href: "/tools/what-to-eat.html", title: "今天吃什么", desc: "输入备选菜品或使用预设库，随机摇一摇帮你决定今天吃什么。", category: "生活", status: "available", keywords: ["吃什么", "随机", "选择"] },
  { slug: "garbage", href: "/tools/garbage.html", title: "垃圾分类查询", desc: "输入物品名称 → 告诉你是干垃圾/湿垃圾/可回收/有害垃圾。", category: "生活", status: "available", keywords: ["垃圾分类", "干垃圾", "湿垃圾"] },
  { slug: "plate-lookup", href: "/tools/plate-lookup.html", title: "车牌归属地", desc: "输入车牌前缀 → 显示省市归属、区号、邮编等信息。", category: "生活", status: "available", keywords: ["车牌", "归属地", "省份"] },
  { slug: "blood-type", href: "/tools/blood-type.html", title: "血型遗传", desc: "父母血型 → 子女可能血型概率表 + Rh 因子说明。", category: "生活", status: "available", keywords: ["血型", "遗传", "ABO"] },
  { slug: "baby-name", href: "/tools/baby-name.html", title: "起名助手", desc: "输入姓氏 + 性别 + 偏好 → 随机生成名字候选 + 笔画/五行参考。", category: "生活", status: "available", keywords: ["起名", "取名", "姓名"] },
  { slug: "countdown-day", href: "/tools/countdown-day.html", title: "倒数日", desc: "设置重要日期（考试/纪念日/发薪日），桌面级倒计时卡片 + 本地通知。", category: "生活", status: "available", keywords: ["倒数日", "纪念日", "倒计时"] },
  { slug: "shelf-life", href: "/tools/shelf-life.html", title: "保质期计算", desc: "选择食品类别 + 开封日期 → 计算剩余保质期 + 过期预警。", category: "生活", status: "available", keywords: ["保质期", "过期", "食品"] },
  { slug: "size-chart", href: "/tools/size-chart.html", title: "尺码对照表", desc: "鞋码/衣服尺码：中国 ↔ 欧码 ↔ 美码 ↔ 英码 ↔ 日码互查。", category: "生活", status: "available", keywords: ["尺码", "鞋码", "衣服"] },
  // 金融理财
  { slug: "social-insurance", href: "/tools/social-insurance.html", title: "五险一金计算", desc: "选城市 + 输入税前工资 → 计算养老/医疗/失业/工伤/生育/公积金各项及到手工资。", category: "金融", status: "available", keywords: ["五险一金", "社保", "公积金"] },
  { slug: "tax", href: "/tools/tax.html", title: "个税计算", desc: "新版个税：月薪/年终奖/劳务报酬，专项附加扣除一键计算。", category: "金融", status: "available", keywords: ["个税", "工资", "扣税"] },
  { slug: "invest-return", href: "/tools/invest-return.html", title: "投资收益计算", desc: "定投/一次性投入 × 年化收益 × 持有年限 → 终值 + 逐年增长曲线。", category: "金融", status: "available", keywords: ["投资", "收益", "定投"] },
  { slug: "fuel-cost", href: "/tools/fuel-cost.html", title: "油耗计算", desc: "加油金额/油价/公里数 → 百公里油耗 + 每公里花费。", category: "金融", status: "available", keywords: ["油耗", "加油", "百公里"] },
  { slug: "electric-bill", href: "/tools/electric-bill.html", title: "电费计算", desc: "电器功率 × 使用时间 × 电价 → 月/年用电量及费用。", category: "金融", status: "available", keywords: ["电费", "功率", "用电"] },
  // 健康
  { slug: "calories", href: "/tools/calories.html", title: "卡路里查询", desc: "常见食物热量数据库搜索，可多项累加计算一餐总热量。", category: "生活", status: "available", keywords: ["卡路里", "热量", "食物"] },
  { slug: "due-date", href: "/tools/due-date.html", title: "预产期计算", desc: "输入末次月经日期 → 计算预产期 + 当前孕周 + 产检时间表。", category: "生活", status: "available", keywords: ["预产期", "孕周", "怀孕"] },
  { slug: "water-intake", href: "/tools/water-intake.html", title: "每日饮水量", desc: "根据体重/运动量/气温计算建议日饮水量 + 喝水提醒间隔。", category: "生活", status: "available", keywords: ["饮水", "喝水", "健康"] },
  { slug: "vision", href: "/tools/vision.html", title: "视力换算", desc: "旧制（5.0）↔ 新制（1.0）↔ 度数 三种视力表示法互转。", category: "生活", status: "available", keywords: ["视力", "近视", "度数"] },
  // 图片创意
  { slug: "id-photo", href: "/tools/id-photo.html", title: "证件照生成", desc: "上传照片 → 裁剪 + 换底色（白/蓝/红）+ 导出标准尺寸（一寸/两寸/签证）。", category: "设计", status: "available", keywords: ["证件照", "一寸照", "换底色"] },
  { slug: "nine-grid", href: "/tools/nine-grid.html", title: "九宫格切图", desc: "上传图片 → 自动切成 9 张方格图，适合社交平台发布。", category: "设计", status: "available", keywords: ["九宫格", "切图", "朋友圈"] },
  { slug: "watermark", href: "/tools/watermark.html", title: "图片加水印", desc: "批量添加文字/图片水印，可调透明度/位置/角度/间距。", category: "设计", status: "available", keywords: ["水印", "图片", "批量"] },
  { slug: "meme", href: "/tools/meme.html", title: "表情包制作", desc: "预设模板 + 自定义文字 → 生成表情包 GIF/PNG，一键保存。", category: "设计", status: "available", keywords: ["表情包", "meme", "制作"] },
  { slug: "avatar", href: "/tools/avatar.html", title: "头像生成", desc: "随机像素风/渐变/字母头像生成器，可用作论坛/社交默认头像。", category: "设计", status: "available", keywords: ["头像", "avatar", "生成"] },
  { slug: "collage", href: "/tools/collage.html", title: "拼图拼接", desc: "多张图片 → 自由拼接/模板排版 → 导出单张长图。", category: "设计", status: "available", keywords: ["拼图", "拼接", "长图"] },
  // 教育文化
  { slug: "copybook", href: "/tools/copybook.html", title: "字帖生成", desc: "输入文字 → 生成田字格/米字格字帖 PDF，供硬笔/毛笔练字。", category: "设计", status: "available", keywords: ["字帖", "练字", "田字格"] },
  { slug: "periodic-table", href: "/tools/periodic-table.html", title: "元素周期表", desc: "交互式周期表，点击元素显示原子序数/质量/电子构型/用途。", category: "速查", status: "available", keywords: ["元素", "周期表", "化学"] },
  { slug: "idiom", href: "/tools/idiom.html", title: "成语词典", desc: "成语搜索 + 释义 + 出处 + 近反义词 + 成语接龙。", category: "速查", status: "available", keywords: ["成语", "词典", "接龙"] },
  { slug: "pinyin", href: "/tools/pinyin.html", title: "拼音标注", desc: "输入中文 → 自动标注拼音，支持多音字选择 + 儿童注音模式。", category: "文本", status: "available", keywords: ["拼音", "注音", "汉字"] },
  { slug: "stroke-order", href: "/tools/stroke-order.html", title: "笔顺查询", desc: "输入汉字 → 动画演示正确笔顺，适合小学生学写字。", category: "速查", status: "available", keywords: ["笔顺", "笔画", "写字"] },
  // 实用查询
  { slug: "zodiac", href: "/tools/zodiac.html", title: "生肖星座", desc: "输入生日 → 显示生肖 + 星座 + 年龄 + 同龄名人。", category: "生活", status: "available", keywords: ["生肖", "星座", "生日"] },
  { slug: "phone-lookup", href: "/tools/phone-lookup.html", title: "手机号归属地", desc: "输入手机号前 7 位 → 运营商 + 省市归属。", category: "速查", status: "available", keywords: ["手机", "归属地", "运营商"] },
  { slug: "express", href: "/tools/express.html", title: "快递查询", desc: "输入运单号 → 自动识别快递公司 + 物流轨迹（调用公开API）。", category: "速查", status: "available", keywords: ["快递", "物流", "运单"] },
  { slug: "color-blind", href: "/tools/color-blind.html", title: "色盲测试", desc: "石原氏色觉测试图 + 结果判定，自查色觉是否正常。", category: "生活", status: "available", keywords: ["色盲", "色觉", "测试"] },
  { slug: "noise-meter", href: "/tools/noise-meter.html", title: "噪音检测", desc: "使用麦克风实时测量环境分贝值 + 噪音等级参考。", category: "生活", status: "available", keywords: ["噪音", "分贝", "检测"] }
];

export { $$ExtLayout as $, TOOLS as T };
