开发升级过程记录

从零搭建到功能迭代的全过程。日志源文件位于 changelog/*.md

  1. v0.7.0 feature

    热门关键词管理后台与服务端合并

    上线热词简单后台;预置词支持启用/置顶;服务端合并 Redis 实时热度与屏蔽列表,前后端展示同源。

    能力概览

    能力说明
    管理后台admin/hot.phpX-Admin-Token 鉴权
    预置热词data/_hot_keywords.md(词\权重\启用\置顶)
    屏蔽列表data/_hot_blocklist.md,不展示且不计入热度
    服务端合并置顶预置 → 实时热度(live_slots)→ 普通预置补齐
    公开接口GET /api/search/hot.php 返回 merged
    管理接口GET/POST /api/admin/hot-keywords.php

    合并策略

    1. 置顶预置优先占位,不被实时热度挤掉
    2. 实时热度最多占 config.hot_keywords.live_slots(默认 4)
    3. 其余用普通预置按权重补齐到 total(默认 12)
    4. 屏蔽词在合并与 track 上报时一并过滤

    后台操作

    • 编辑预置词:增删改、权重、启用、置顶
    • 维护屏蔽词(一行一个)
    • 查看 Redis 实时榜,可单独移除脏词
    • Token 读取本站 www/api/config.local.php(优先)或 config.php,与仓库根目录 xyxbot.com/api 无关

    相关文件

    • admin/hot.php
    • api/admin/hot-keywords.php
    • api/lib/search_hot.phpSearchHotStore::merge
    • includes/search-box.php / js/search.js(SSR + 前端均用 merged
  2. v0.6.0 feature

    首页精简与全局多引擎搜索

    首页仅展示分类入口;分类列表独立成页;全局支持站内检索、多搜索引擎、热门关键词与本地搜索历史。

    页面调整

    • 首页:品牌 + 搜索面板 + 分类卡片(不再堆条目与开发日志预览)
    • 分类页 category.php:按分类展示完整导航列表
    • 搜索页 search.php:站内结果;非站内引擎可跳转全网

    搜索能力

    能力实现
    站内内容搜索NavStore::search + /api/search/query.php
    多搜索引擎data/_search_engines.md(百度/Google/Bing/搜狗/360/DDG/Brave/夸克/学术)
    预留热词data/_hot_keywords.md + Redis 热度合并(/api/search/hot.php
    用户搜索记录浏览器 localStorage(最近 12 条,可清空)
    热度上报POST /api/search/track.php(失败不影响搜索)
  3. v0.3.0 release

    SEO 页面与开发日志展示上线

    首页、详情页、开发日志页、sitemap/robots 与首批导航数据发布。

    页面

    • 首页 index.php:分类导航网格、搜索、开发过程时间线预览
    • 详情 detail.php:SSR 正文 + Open Graph / JSON-LD + 点击追踪
    • 开发日志 changelog.php:完整升级过程记录
    • sitemap.php / robots.txt:搜索引擎发现入口

    数据示例

    已写入三类目录:

    • data/tools/:VS Code、Git、Redis
    • data/resources/:MDN、Can I Use
    • data/learning/:PHP 手册、免费编程书

    前端交互

    • js/main.js:分类 Tab、本地搜索
    • js/stats.js:浏览/点击上报与数字回填

    后续可迭代

    • 管理后台(鉴权后热编辑 MD)
    • 更细的统计看板(图表)
    • 伪静态路由 /c/{cat}/{slug}
  4. v0.5.0 content

    P0 高频刚需内容补齐

    完成搜索延伸 5 条、AI 垂直工具 10 条,新增办公效率与邮箱网盘分类共 18 条,总条目突破 100。

    本轮完成(对应 CONTENT_PLAN P0)

    方向数量说明
    搜索引擎延伸+5360、Startpage、SearXNG、夸克、Google Scholar
    AI 垂直工具+10v0、Bolt、Runway、Suno、可灵、即梦、秘塔、Monica、扣子、OpenRouter
    办公效率 office/+10飞书~Google Docs
    邮箱网盘 storage/+8Gmail~OneDrive

    合计新增 33 条,站点总条目达到 102,达成 M1(100+)目标。

  5. v0.6.1 chore

    迁移至 51chigua.co 并更新 SEO 域名

    项目目录迁至 51chigua_templte/51chigua.co/www,canonical / sitemap / CORS 统一为 51chigua.co。

    变更

    • 路径:xyxbot.com/www51chigua_templte/51chigua.co/www
    • site.urlhttps://51chigua.co
    • robots.txt Sitemap:https://51chigua.co/sitemap.php
    • CORS 允许:51chigua.co / www.51chigua.co
    • Apache RewriteBase 调整为站点根 /
  6. v0.1.0 init

    项目立项与技术选型

    确定「星域导航」为纯前端静态资源 + PHP 服务端渲染的导航站架构。

    背景

    需要在 www/ 下新建一个 SEO 友好的导航网站,要求:

    • 后端 PHP
    • 前端 HTML / CSS / JS 分离
    • 导航详情用 Markdown 管理,目录区分分类
    • 基础统计:PHP + Redis

    选型结论

    1. 页面渲染:PHP 读取 MD 并输出语义化 HTML(利于 SEO,搜索引擎可直接抓取正文)
    2. 样式与脚本:独立 css/js/,不内联业务逻辑
    3. 数据层data/{category}/*.md + YAML frontmatter
    4. 统计层:独立 api/stats/*,Redis Hash 存储 view/click
    5. 过程记录changelog/*.md,首页时间线 + 独立日志页展示
  7. v0.4.0 content

    大批量导航内容扩充

    新增搜索引擎 Top10、国内外 AI 各10、热门导航10,并扩展设计/社区/云服务等分类,总条目达 69。

    本轮新增分类

    • search 搜索引擎
    • ai AI 智能
    • portals 热门导航
    • design 设计灵感
    • social 社区资讯
    • cloud 云与托管

    数量

    分类条数
    搜索引擎10
    AI(国际+国内)20
    热门导航10
    设计 / 社区 / 云等若干
    合计69

    文档

    完整清单与后续补充计划见仓库内 [CONTENT_PLAN.md](../CONTENT_PLAN.md)。

  8. v0.2.0 feature

    后端骨架与 Redis 统计接口

    完成配置、Markdown 解析、NavStore、统计上报与查询 API。

    完成内容

    核心库

    • api/lib/markdown.php:frontmatter + 常用 Markdown → HTML
    • api/lib/nav.php:按目录扫描分类与条目
    • api/lib/redis.php / stats.php:连接池与计数逻辑
    • api/lib/response.php:统一 JSON / CORS / 限流 IP

    统计 API

    接口方法说明
    /api/stats/track.phpPOST上报 view / click(item 或 site)
    /api/stats/list.phpGET查询单项、批量或站点汇总

    导航 API

    接口方法说明
    /api/nav/list.phpGET分类与条目列表
    /api/nav/get.phpGET单条详情(含 HTML)

    存储设计

    • item:{category}/{slug} → Hash(view, click)
    • site:view / site:click → 站点累计
    • daily:{Ymd} → 日维度计数(保留约 40 天)
    • rl:{ip} → 每分钟限流