Skip to content

project-polymorph/platform-home

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

多元性别中文数字图书馆 (Polymorph)

Website License

跨性别与多元性别中文资料数字归档平台

🌐 在线访问

🏗️ 技术架构

前端

  • 框架: Next.js 14 (App Router)
  • 样式: Tailwind CSS
  • 内容管理: Contentlayer
  • 搜索: 客户端搜索 (pako.js 解压 gzip 索引)

部署

  • 平台: Cloudflare Pages
  • CI/CD: GitHub Actions
  • 构建: 静态导出 (EXPORT=true UNOPTIMIZED=true)

搜索索引

搜索使用客户端实现,索引文件位于 public/search-index/

  • 10 个仓库索引,gzip 压缩后约 13MB
  • 支持渐进式加载,按优先级获取
  • 使用 pako.js 在浏览器端解压

🚀 开发

环境要求

  • Node.js 20+
  • Yarn

本地开发

# 安装依赖
yarn install

# 启动开发服务器
yarn dev

访问 http://localhost:3000

构建

# 静态导出构建
EXPORT=true UNOPTIMIZED=true yarn build

# 输出目录: out/

📁 项目结构

platform-home/
├── app/                    # Next.js App Router
│   ├── search/            # 搜索页面
│   └── ...
├── components/            # React 组件
├── data/                  # 站点元数据、导航等
├── lib/                   # 工具函数
│   └── clientSearch.ts   # 客户端搜索实现
├── public/                # 静态资源
│   └── search-index/     # 搜索索引 (gzip)
├── scripts/               # 构建脚本
│   ├── prebuild.mjs      # 预构建处理
│   ├── postbuild.mjs     # 后构建处理
│   └── rss.mjs           # RSS 生成
└── .github/workflows/     # CI/CD 配置
    └── cf-pages-deploy.yml

🔍 搜索实现

搜索功能完全在客户端实现:

  1. 索引加载: 按需加载仓库索引文件
  2. 解压: 使用 pako.js 解压 gzip 数据
  3. 查询: 在内存中执行关键词匹配
  4. 限制: 最多返回 100 条结果

索引配置见 lib/clientSearch.ts 中的 REPO_INDEXES

🔄 CI/CD

GitHub Actions 工作流 (.github/workflows/cf-pages-deploy.yml):

  • PR/手动触发: 部署到 transchinese-test (预览)
  • main 分支推送: 部署到 transchinese-org (生产)

需要配置 GitHub Secrets:

  • CLOUDFLARE_API_TOKEN
  • CLOUDFLARE_ACCOUNT_ID

📝 内容管理

内容通过 Contentlayer 管理,源文件位于:

  • data/blog/ - 博客文章
  • data/authors/ - 作者信息
  • data/projects/ - 项目展示

🤝 参与贡献

  1. Fork 本仓库
  2. 创建功能分支
  3. 提交更改
  4. 创建 Pull Request

📄 许可证

AGPL-3.0 © 多元性别中文数字图书馆


基于 Tailwind Nextjs Starter Blog 构建

About

homepage and platform for chinese trans digital archive

Resources

License

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors