Astro启动器

DoubleDuckLab — Astro 启动器模板

作者 nightt5879

基于 Astro 的中英双语课题组官网模板,内容以 Markdown 文件驱动,并集成 Decap CMS 后台与 GitHub PR 审核流。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

中英双语站点,默认提供 / 与 /en/ 两个语言入口

02

内容以 Markdown 与 JSON 文件为唯一真源,成员、项目、论文、新闻、招生合作各有固定结构

03

集成 Decap CMS 内容管理后台,通过 GitHub Pull Request 审核流修改受控文件

04

提供 npm run verify 一键验收链路,覆盖内容校验、构建、冒烟测试与 SEO 检查

05

生产域名由 PUBLIC_SITE_URL 驱动,用于 canonical、Open Graph URL 与 hreflang

06

仓库内提供 Cloudflare Worker OAuth 代理部署包,用于 CMS 线上启用

模板详细介绍

DoubleDuckLab 是一个面向课题组或实验室的中英双语官网模板,使用 Astro 构建。它把站点文案、成员、项目、论文、新闻和招生合作页面都组织为本地 Markdown 或 JSON 文件,强调本地优先、文件驱动的内容维护方式。

模板内置 Decap CMS 内容管理后台,当前范围覆盖新闻、成员、论文的新增编辑删除,以及招生合作页面和现有项目 overview/background 文件的编辑;后台通过 GitHub backend 与 editorial_workflow 走 Pull Request 审核流,不提供任意文件浏览器。CMS 需要配置 CMS_GITHUB_REPO、CMS_OAUTH_BASE_URL 和 PUBLIC_SITE_URL 等环境变量后才启用,仓库内提供 Cloudflare Worker OAuth 代理部署包。

内容结构上,成员每人一个 Markdown 文件,项目每个目录包含中英文 overview 与 background 四个文件,新闻每条对应中英两份 Markdown,论文和招生合作也各有固定路径。站点提供 npm run verify 一键验收入口,依次执行内容校验、构建、冒烟测试和 SEO 检查,并配有 Windows 的 verify.bat。生产域名通过 PUBLIC_SITE_URL 配置,用于生成 canonical、Open Graph URL 与 hreflang。

Astro启动器

适合你的项目吗?

适用场景

  • 高校课题组或实验室搭建中英双语官网
  • 需要非技术成员通过后台编辑新闻、成员、论文等内容并走 PR 审核
  • 希望以本地 Markdown 文件维护内容、不依赖数据库的静态站点
  • 需要同时检查 canonical、Open Graph、hreflang 与语言互跳的 SEO 基础配置

适合人群

  • 有 GitHub 仓库写权限、能配置 Cloudflare Pages 与 OAuth 代理的课题组
  • 接受以文件结构约束内容、愿意按模板 schema 维护 Markdown 的团队
  • 需要中英双语展示成员、项目、论文与新闻的实验室站点

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    克隆仓库后执行 npm install,再运行 npm run verify 或 npm run preview 启动本地预览

  2. 2

    默认本地访问 http://localhost:4321/ 与 http://localhost:4321/en/

  3. 3

    生产域名通过本地 .env 中的 PUBLIC_SITE_URL 替换,默认兜底为 https://doubleducklab.com

  4. 4

    CMS 需配置 CMS_GITHUB_REPO、CMS_BRANCH、CMS_OAUTH_BASE_URL 与 PUBLIC_SITE_URL,并在 Cloudflare Pages 和 OAuth 代理上对齐回调地址与仓库权限

  5. 5

    演示图片、字体、图标等第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用内置 Decap CMS 后台编辑内容的人员必须拥有目标 GitHub 仓库的写权限,否则无法通过后台提交修改。
  • CMS 后台并非开箱即用,必须配置 CMS_GITHUB_REPO、CMS_OAUTH_BASE_URL 和 PUBLIC_SITE_URL 三个环境变量后才会启用。
  • 启用 CMS 还需在 Cloudflare Pages 与 OAuth 代理上对齐回调地址和仓库权限,涉及外部服务配置。
  • CMS 线上启用依赖 Cloudflare Worker 作为 OAuth 代理,需要自行部署该外部服务。
  • CMS 使用 GitHub backend 与 editorial_workflow,内容修改需经 GitHub Pull Request 审核流合并。
  • 后台不提供任意文件浏览器,只能编辑受控的固定内容文件,无法自由管理任意文件。
  • CMS 中招生与合作页面仅允许编辑,不能新增或删除。
  • CMS 中项目仅允许编辑现有项目的 overview/background 四个文件,不能新增或删除项目。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

参与编辑的人需要目标仓库的写权限

README 原文

CMS 只有在 `CMS_GITHUB_REPO`、`CMS_OAUTH_BASE_URL` 和 `PUBLIC_SITE_URL` 都配置完成后才会启用

README 原文

同时还需要在 Cloudflare Pages 和 OAuth 代理上对齐回调地址与仓库权限

README 原文

`1.3.1` 起,仓库内提供 `ops/cms-oauth-worker/` 作为 Cloudflare Worker OAuth 代理部署包

README 原文

仍使用 `GitHub backend + editorial_workflow`

README 原文

不提供任意文件浏览器,避免破坏双语配对、路由和内容 schema

README 原文

`join`:只编辑固定招生与合作页面,不允许新增/删除。

README 原文

`projects`:只编辑现有项目的 overview/background 四文件内容,不允许新增/删除项目。

README 原文
https://github.com/nightt5879/DoubleDuckLab/blob/main/LICENSEhttps://github.com/nightt5879/DoubleDuckLab/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 87 / 100
技术栈
Astro
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-05-19
截图检查日期
2026-10-03

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 105882aba042d1b0c948d7af1046b242971e651778df5e1c071c3fca9510561e

2026-10-03T04:51:21.427Z

来源文件 / 仓库
<p align="center">
  <img src="./sources/DDLab_logo.png" width="350" alt="DoubleDuckLab logo">
</p>

# DoubleDuckLab (DDLab)

<p align="right">
  中文 | <a href="./README_EN.md">English</a>
</p>

一个基于 Astro 的双语课题组官网模板,面向“本地优先、文件驱动、可持续维护”的内容工作流。

## 预览

- 在线预览:[https://doubleducklab.com](https://doubleducklab.com)

<p align="center">
  <a href="https://doubleducklab.com" target="_blank">
    <img src="./sources/preview_light.png" alt="Preview light" width="48%"/>
  </a>
  <a href="https://doubleducklab.com" target="_blank">
    <img src="./sources/preview_dark.png" alt="Preview dark" width="48%"/>
  </a>
</p>

## 快速开始

```bash
git clone https://github.com/nightt5879/doubleducklab.git
cd doubleducklab
npm install
npm run verify
npm run preview
```

Windows 一键校验:

```bat
verify.bat
```

默认访问:

- `http://localhost:4321/`
- `http://localhost:4321/en/`

## 生产域名配置

默认生产域名兜底为 `https://doubleducklab.com`。如需替换,请在本地 `.env` 中设置:

```bash
PUBLIC_SITE_URL=https://your-domain.example
```

构建时会使用这个地址生成 canonical、Open Graph URL 与 hreflang。

## `1.3.x` 内容文件管理 CMS

当前 `/admin/` 已从 `news` 试点扩展为 Decap CMS 内容文件管理后台。内容同学可以通过后台修改受控 Markdown 文件,再走 GitHub Pull Request 审核流合并到主分支。

当前后台范围如下:

- `news`:可新增、编辑、删除双语新闻。
- `members`:可新增、编辑、删除成员文件。
- `papers`:可新增、编辑、删除论文文件。
- `join`:只编辑固定招生与合作页面,不允许新增/删除。
- `projects`:只编辑现有项目的 overview/background 四文件内容,不允许新增/删除项目。

约束如下:

- 仍使用 `GitHub backend + editorial_workflow`
- 参与编辑的人需要目标仓库的写权限
- CMS 配置通过环境变量驱动,不把仓库、分支和 OAuth 地址写死在模板里
- 不提供任意文件浏览器,避免破坏双语配对、路由和内容 schema

建议配置的环境变量如下:

```bash
CMS_GITHUB_REPO=nightt5879/DoubleDuckLab
CMS_BRANCH=main
CMS_OAUTH_BASE_URL=https://doubleducklab-cms-oauth.<account>.workers.dev
PUBLIC_SITE_URL=https://doubleducklab.pages.dev
```

`PUBLIC_SITE_URL` 继续作为站点域名来源,用于构建 canonical、Open Graph URL 和 hreflang。CMS 只有在 `CMS_GITHUB_REPO`、`CMS_OAUTH_BASE_URL` 和 `PUBLIC_SITE_URL` 都配置完成后才会启用;同时还需要在 Cloudflare Pages 和 OAuth 代理上对齐回调地址与仓库权限。`1.3.1` 起,仓库内提供 `ops/cms-oauth-worker/` 作为 Cloudflare Worker OAuth 代理部署包。

## 当前唯一真源

### 站点级文案
- `src/data/site.zh.json`
- `src/data/site.en.json`

### 内容集合
- 成员:`src/content/members/*.md`
- 项目:`src/content/projects/<slug>/`
- 论文:`src/content/papers/*.md`
- 新闻:`src/content/news/<slug>.zh.md`、`src/content/news/<slug>.en.md`
- 招生与合作:`src/content/join/recruitment/`

> `src/data/content/*` 已废弃,不再使用。

## 内容结构

### 成员

每位成员一个文件:

```text
src/content/members/<id>.md
```

最小模板:

```md
---
id: "zhang-wei"
name:
  zh: "张伟"
  en: "Wei Zhang"
role:
  zh: "博士生"
  en: "PhD"
area:
  zh: "多模态智能体"
  en: "Multimodal Agents"
---
```

### 项目

每个项目一个目录:

```text
src/content/projects/<slug>/
  overview_cn.md
  overview_en.md
  background_cn.md
  background_en.md
```

`overview_cn.md` 示例:

```md
---
title: "猎户座项目"
tag: "Embodied AI"
time: "2026"
status: "进行中"
---
这里写项目概览。
```

### 新闻

每条新闻两份 Markdown 文件(中英各一份):

```text
src/content/news/<slug>.zh.md
src/content/news/<slug>.en.md
```

新闻正文文件最少包含:

```md
---
slug: "my-news"
date: "2026-03-25"
title:
  zh: "中文标题"
  en: "English Title"
---

这里写新闻正文。
```

### 论文

```text
src/content/papers/<slug>.md
```

最小模板:

```md
---
year: 2026
title: "Paper Title"
venue: "Conference Name"
---
```

## 验证链路

- `npm run verify`
  - 推荐的一键验收入口,依次执行 `validate:content`、`build`、`test:smoke`、`test:seo`
  - 统一本地、Windows 和 CI 的稳定性检查流程
- `npm run validate:content`
  - 校验站点文案、成员、项目、论文、新闻、招生与合作的文件结构
- `npm run build`
  - 生成静态站点,并默认清理旧 `dist/` 与关闭 Astro telemetry
- `npm run test:smoke`
  - 检查 `/`、`/en/`、`/members`、`/projects`、`/papers`、`/news` 的构建结果
- `npm run test:seo`
  - 检查 canonical、Open Graph、hreflang、404 noindex 与当前页语言互跳
- `verify.bat`
  - Windows 下的一键验收入口,与 `npm run verify` 保持一致

## 文档入口

- 内容地图:[content-map.md](./content-map.md)
- 内容编辑指南:[docs/content-edit-guide.md](./docs/content-edit-guide.md)
- 内容维护清单:[docs/content-ops-checklist.md](./docs/content-ops-checklist.md)
- 发布验收清单:[docs/release-baseline-checklist.md](./docs/release-baseline-checklist.md)
- 路线图:[docs/roadmap.md](./docs/roadmap.md)

## Roadmap

- `1.0.1`:基线修复,修乱码、收真源、补 CI / smoke
- `1.1.0`:生产域名、SEO 元信息、当前页中英互跳与构建后 SEO 校验
- `1.1.1`:review follow-up,修 alternate 可用性、内部链接 URL 一致性与 `test:seo` 站点地址读取,已完成
- `1.1.2`:稳定性硬化,统一 `verify` 入口、干净构建与发布验收流程
- `1.2.0`:`news` CMS 试点,Decap + GitHub PR 审核流已落地,保持模板化配置
- `1.2.1`:CMS 试点收口 / ops hardening,补 locale/news 校验与启用前置条件硬化
- `1.3.0`:CMS 文件管理后台,扩展到新闻、成员、论文、招生与现有项目文件
- `1.3.1`:CMS 线上启用跟进,补 Cloudflare Worker OAuth 代理部署包与生产环境变量验收说明
- `1.3.2`:CMS 稳定性补丁,补齐旧新闻 `slug`、清理后台测试残留,并收紧新闻 slug 校验
- `1.3.3`:构建日志清理,构建前清理 Astro 内容缓存,消除重复 news id warning

## License

MIT
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。