Memos 自定义版本:Explore 页面增强与日历修复

慕棱 代码库 / Code 532 字 发布于 20 天前 预计阅读时间: 2 分钟


AI 摘要

为 Memos Explore 页面带来官方缺失的实用功能:支持置顶显示、修复日历导航与数据统计问题,并简化单用户博客的界面。现已发布为 Docker 镜像,欢迎体验优化后的版本。

我对开源项目 Memos 进行了一些自定义修改,主要针对 Explore(发现)页面的体验优化。现已将修改后的版本发布到 Docker Hub。

🐳 Docker 镜像

docker pull charyeahowo/memos:latest

或者指定版本:

docker pull charyeahowo/memos:custom

✨ 主要修改内容

1. Explore 页面支持置顶文章

问题:官方版本的 Explore 页面不支持置顶文章显示,所有公开 memo 按时间排序。

解决方案:启用 pinnedFirstincludePinned 选项,让置顶的 memo 显示在列表顶部。

2. 日历点击导航修复

问题:在 Explore 页面点击日历热力图的日期,会跳转到首页 /?filter=...,而不是留在当前页面。

解决方案:修改 useDateFilterNavigation hook,使其导航到当前页面路径而非硬编码的根路径。此修复已提交 PR 到官方仓库 #5605
10小时后该修改被boojack本人Merged合并

3. 日历统计完整显示

问题:未登录用户访问 Explore 页面时,日历热力图只显示部分日期数据(由于分页限制)。

解决方案:使用 listAllUserStats API 获取所有公开 memo 的完整统计数据,不再受分页限制。

4. 简化 Explore 页面

问题:Explore 页面显示用户头像和名称,对于单用户博客场景显得冗余。

解决方案:移除 showCreator 属性,让页面更专注于内容展示。

🚀 使用方法

Docker Compose 配置

version: "3"
services:
  memos:
    image: charyeahowo/memos:latest
    container_name: memos
    ports:
      - "5230:5230"
    volumes:
      - ./memos-data:/var/opt/memos
    restart: always

直接运行

docker run -d --name memos -p 5230:5230 -v ./memos-data:/var/opt/memos charyeahowo/memos:latest

📁 修改的文件

  • web/src/pages/Explore.tsx - 启用置顶、移除用户显示
  • web/src/hooks/useDateFilterNavigation.ts - 日历导航修复
  • web/src/hooks/useFilteredMemoStats.ts - 使用全局统计 API
  • web/src/hooks/useUserQueries.ts - 添加 useAllUserStats hook
  • web/src/layouts/MainLayout.tsx - Explore 上下文使用全局统计

🔗 相关链接

如果你也在使用 Memos 作为个人博客,欢迎尝试这个版本!