支持知识卡片、文章、幻灯片、公告、课程、产品展示等多种内容格式
monakit — Astro 启动器模板
作者 monakit
MonaKit 是一个基于 Astro 的多格式内容平台模板,支持知识卡片、文章、幻灯片演示、公告与课程等多种内容类型。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
幻灯片基于 reveal.js,支持 Mermaid 图表与数学公式
内置 Pagefind 全文搜索、RSS 订阅、动态 OG 图片与站点地图
课程支持章节、分卷与幻灯片章节,可选接入 Cloudflare Stream 视频
使用 Astro 内容集合,内容以 Markdown/MDX 编写并按 year/month 组织
提供 Biome 代码检查与格式化脚本,以及构建分析命令
模板详细介绍
MonaKit 是一个用 Astro 构建的多格式内容平台模板,面向需要同时发布多种内容形态的场景。它把知识卡片、长文博客、reveal.js 幻灯片、公告(Doodles)、课程以及产品/链接展示(Creations)统一在同一套内容集合中,内容以 Markdown/MDX 编写,并按 year/month 子目录组织,课程则按 course-id 单独组织。
模板内置全文搜索(Pagefind)、RSS 订阅、动态 OG 图片和站点地图,支持通过 Cloudflare Stream 为课程章节和预告片接入视频。课程结构由 toc.md 定义元数据与章节顺序,章节文件按数字编号排序,可通过 frontmatter 中的 theme 字段把某一章变为 reveal.js 幻灯片,也可用 <Slide id="slug" /> 在 MDX 中嵌入独立幻灯片资源。
使用限制方面:视频功能依赖 Cloudflare Stream,需要自行生成签名密钥并配置相关环境变量;CLOUDFLARE_ACCOUNT_ID 与 CLOUDFLARE_API_TOKEN 仅在运行密钥生成脚本时使用,不参与运行时。产品展示数据来自 src/assets/creations.json。代码采用 MIT 许可,但演示图片、字体、图标等第三方素材需单独核对许可,域名、托管等外部服务可能产生费用。
适合你的项目吗?
适用场景
- 搭建同时发布文章、知识卡片和幻灯片演示的个人知识库
- 创建带章节结构和可选视频的在线课程站点
- 发布产品与链接展示页,并配合公告记录更新日志
- 需要全文搜索、RSS 与动态 OG 图片的静态内容站点
适合人群
- 熟悉 Astro 与 Markdown/MDX 内容集合的前端开发者
- 需要在一个站点内混合多种内容格式的创作者或团队
- 计划使用 Cloudflare Stream 承载课程视频的项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
使用 npm create astro@latest 命令并指定 monakit/monakit 模板初始化项目
- 2
安装依赖后复制 .env.example 为 .env,并至少配置 SITE_URL
- 3
如需课程视频,运行 scripts/generate-stream-key.ts 生成密钥并填写 Cloudflare Stream 相关环境变量
- 4
构建时 pnpm build 会自动生成搜索索引,也可用 pnpm build:search-index 单独执行
- 5
演示图片、字体、图标等第三方素材需按各自许可核对,不能仅凭 MIT 许可判断
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 课程视频功能为可选,需自行生成签名密钥对并配置 Cloudflare Stream 相关环境变量才能启用。
- 使用视频功能需提供 Cloudflare 账号 ID、API Token、Stream 客户代码及签名密钥等凭据,属于外部服务依赖。
- Cloudflare 账号 ID 与 API Token 仅在运行密钥生成脚本时需要,不参与运行时。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
To enable video in courses, generate a signing key pair and set the following env vars
README 原文
CLOUDFLARE_ACCOUNT_ID= CLOUDFLARE_API_TOKEN= CLOUDFLARE_STREAM_CUSTOMER_CODE= CLOUDFLARE_STREAM_KEY_ID= CLOUDFLARE_STREAM_PRIVATE_KEY=
README 原文
https://github.com/monakit/monakit/blob/main/LICENSEhttps://github.com/monakit/monakit/blob/main/README.mdCLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` are only needed to run the key generation script
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- Astro Themes
- 资料与维护参考分
- 资料较完整 · 87 / 100
- 技术栈
- Astro
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-05-20
- 截图检查日期
- 2026-10-04
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-04
查看当时使用的来源资料
SHA-256: bf15ecab707ada887e31a66c3fd78967b86f6e37d34ca15072fa596e05e3fc86
2026-10-04T04:51:10.771Z
来源文件 / 仓库# MonaKit
Multi-format content platform built with Astro, featuring knowledge cards, articles, presentations, announcements, and courses.
## Features
- **Knowledge Cards** - Research summaries with customizable themes
- **Articles** - Long-form blog content
- **Slide Presentations** - Interactive reveal.js presentations with Mermaid and math support
- **Doodles** - Release logs and announcements
- **Courses** - Structured learning with chapters, parts, and slide chapters
- **Video** - Course video support via Cloudflare Stream
- **Search** - Full-text search with Pagefind
- **Creations** - Product and link showcase
- **RSS Feed** - Auto-generated feed for blogs
- **OG Images** - Dynamic Open Graph image generation
- **Sitemap** - Auto-generated sitemap
## Tech Stack
- Astro 6 (SSR, Vercel adapter)
- React 19
- TailwindCSS 4
- Reveal.js
- Pagefind
- Biome (lint + format)
## Quick Start
```bash
npm create astro@latest my-astro-project -- --template monakit/monakit
```
## Development
```bash
pnpm install
cp .env.example .env
pnpm dev
```
### Available Scripts
```bash
pnpm dev # Start dev server
pnpm build # Production build (auto-builds search index)
pnpm preview # Preview production build
pnpm build:search-index # Build search index manually
pnpm build:analyze # Build with bundle analyzer report
pnpm check # Type check and lint
pnpm fix # Auto-fix issues
pnpm format # Format files with Biome
```
## Content Structure
```
src/content/
├── cards/ # Knowledge cards (Markdown/MDX)
├── blogs/ # Blog articles (Markdown/MDX)
├── slides/ # Presentations (Markdown/MDX)
├── doodles/ # Announcements (Markdown/MDX)
└── courses/ # Courses (Markdown/MDX)
└── <course-id>/
├── toc.md # Course metadata + chapter order
├── 01-chapter.md # Chapter file (text or slide)
└── slides/ # Slide resources (embedded in chapters)
```
Content organized by `year/month` subdirectories, except courses which are organized by `course-id`.
## Courses
Each course lives in `src/content/courses/<course-id>/`:
- **`toc.md`** — course metadata (`title`, `description`, `pubDate`, `structure`, optional `video` for course trailer) and optional intro body
- **`NN-slug.md`** — chapter files, numbered for ordering; add `theme:` frontmatter to make a chapter a reveal.js slide
- **`slides/`** — standalone slide resources that can be embedded in chapter `.mdx` files via `<Slide id="slug" />`
Chapters can optionally include video via Cloudflare Stream. See [MonaKit in Action](https://www.mymona.xyz/courses/monakit-in-action) for a full walkthrough.
### Cloudflare Stream (optional)
To enable video in courses, generate a signing key pair and set the following env vars:
```bash
# Generate KEY_ID and PRIVATE_KEY (only needed once)
npx tsx scripts/generate-stream-key.ts
```
```env
SITE_URL=https://yourdomain.com
# Cloudflare Stream (optional — for video chapters and course trailers)
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_API_TOKEN=
CLOUDFLARE_STREAM_CUSTOMER_CODE=
CLOUDFLARE_STREAM_KEY_ID=
CLOUDFLARE_STREAM_PRIVATE_KEY=
```
Note: `CLOUDFLARE_ACCOUNT_ID` and `CLOUDFLARE_API_TOKEN` are only needed to run the key generation script — they are not used at runtime.
## Product Data
All creations data is defined in `src/assets/creations.json`.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astrowind
⭕️ AstroWind: A free template using Astro v7 and Tailwind CSS v4. Astro starter theme.
Astro · 博客
accessible-astro-starter
Accessible Astro Starter 是一个以无障碍为核心理念的 Astro 6 启动模板,由 incluud 团队维护。
Astro · 博客

astro-erudite
An opinionated, unstyled static blogging template built with Astro and native CSS.
Astro · 作品集

astro-shopify
astro-shopify 是一个面向开发者的轻量级电商启动模板,用于构建基于 Shopify 的无头店面。
Astro · 电商

brutal
A neobrutalism Astro starter theme
Astro · 启动器

qwind
⭕️ Qwind: A template to make your website using Qwik + Tailwind CSS.
Astro · 工具站
