移植自 Jekflix 主题的 Astro 博客模板,提供电影感、Netflix 风格的视觉方向
Astroflix — Astro 博客模板
作者 yunho-c
Astroflix 是一个基于 Astro 的博客模板,移植自 Jekflix 主题,支持 Markdown 或 Notion 作为内容源,构建静态博客站点。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内容源可在本地 Markdown 与构建时读取的 Notion 数据库之间切换
公开配置集中在 src/data/site.ts,包含站点身份、导航、社交、主题色与页脚署名
内置特色首页、文章网格、文章页、阅读进度、搜索与作者/标签/分类归档
生成 RSS、站点地图、robots 元数据与 404 页面
提供 bun test、bun run check、bun run build 与依赖审计等命令
模板详细介绍
Astroflix 是 Jekflix 主题的 Astro 移植版本,定位为电影感、Netflix 风格的博客/出版物模板。它使用 Astro 构建静态站点,内容可以来自本地 Markdown 文件或构建时从 Notion 数据库读取。站点包含特色首页、文章网格、文章详情页、阅读进度、搜索、作者/标签/分类归档、RSS、站点地图、robots 元数据与 404 页面。公开配置集中在 src/data/site.ts,涵盖站点身份、导航、社交链接、主题色、页脚署名与联系方式等,并在 Astro 加载时校验。
内容源通过环境变量 CONTENT_SOURCE 切换:Markdown 为默认,文章位于 src/content/posts/,作者位于 src/content/authors/,About 与 Contact 文案位于 src/content/pages/;Notion 模式需要 NOTION_TOKEN 与 NOTION_DATABASE_ID,并要求数据库具备 Title、Slug、Status、Published At、Author、Category 等属性,只有 Status 为 Published 的文章会被构建。构建会拒绝未知作者、重复文章路由以及会产生空 slug 或 URL 冲突的分类标签。
模板默认的 Contact 页面只展示配置好的邮箱与社交链接,不渲染表单;要启用表单需将 site.contact.formAction 指向 HTTPS 表单服务端点或根相对的服务端端点,表单以 POST 提交,邮件处理由外部服务负责。仓库中检入的 canonical URL 为示例地址,不能直接用于生产部署。部署到 Cloudflare Pages 时建议使用独立仓库,构建命令为 bun run build,输出目录为 dist,并设置 BUN_VERSION 环境变量。
适合你的项目吗?
适用场景
- 搭建以文章为主的静态博客或出版物站点
- 希望用 Markdown 文件管理文章并保持内容与路由代码分离
- 希望用 Notion 数据库作为内容源并在构建时生成静态页面
- 需要特色首页、文章归档、搜索、RSS 与站点地图等基础博客功能
- 计划将站点部署到 Cloudflare Pages 并保留模板作为上游远程仓库
适合人群
- 熟悉 Astro 与命令行构建流程的开发者
- 需要电影感、编辑式视觉风格的博客或出版物项目
- 愿意自行配置域名、托管与表单服务等外部服务的团队
- 接受以 Markdown 或 Notion 作为内容源的静态站点方案
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Bun 1.3.14 与 Node.js 22.12.0 或更新版本
- 2
使用 Notion 内容源时,需创建集成、共享数据库并设置 NOTION_TOKEN 与 NOTION_DATABASE_ID
- 3
发布前需修改 src/data/site.ts 中的示例 canonical URL、站点身份、导航、社交链接与主题色,并替换演示文章、作者、About/Contact 文案与 favicon
- 4
仓库检入的 canonical URL 为 https://astroflix.example.com,不能直接用于生产部署
- 5
部署到 Cloudflare Pages 时建议使用独立仓库,构建命令为 bun run build,输出目录为 dist,并设置 BUN_VERSION=1.3.14
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 仅在使用 Notion 内容源时需要创建 Notion 集成并共享文章数据库,属于可选外部服务依赖。
- Notion 模式必须配置 CONTENT_SOURCE、NOTION_TOKEN、NOTION_DATABASE_ID 三个环境变量,否则无法构建。
- Notion 数据库必须共享给持有 NOTION_TOKEN 的集成,否则构建无法读取内容。
- Notion 内容源中只有 Status 为 Published 的文章会被构建,其他状态文章不会生成页面。
- 启用联系表单需自行配置 HTTPS 表单服务端点或根相对服务端端点,模板本身不处理邮件。
- 项目不处理邮件发送,重定向、反垃圾与投递均需由外部表单服务商配置。
- 部署到 Cloudflare Pages 时应使用独立仓库,而非直接部署模板仓库。
- 仓库内置的 canonical URL 为示例地址,不能直接用于生产部署,发布前必须替换。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
A Notion integration shared with the posts database only when using Notion content
README 原文
Set all three variables for Notion builds:
README 原文
The database must be shared with the integration that owns `NOTION_TOKEN`.
README 原文
Only `Published` posts build
README 原文
To enable a form, set `site.contact.formAction` to an HTTPS form-provider endpoint or a root-relative server endpoint.
README 原文
This static project does not process email itself. Configure redirects, spam controls, and delivery with the provider.
README 原文
use a separate repository rather than deploying this template repository directly.
README 原文
https://github.com/yunho-c/Astroflix/blob/main/LICENSEhttps://github.com/yunho-c/Astroflix/blob/main/README.mdThe checked-in URL is deliberately `https://astroflix.example.com`; it is not suitable for a production deployment.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-12。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料一般 · 72 / 100
- 技术栈
- Astro
- 网站类型
- 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-07-20
- 截图检查日期
- 2026-10-12
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-13
查看当时使用的来源资料
SHA-256: 481e7488c78329cc377da640b560c99058af104254e6e5c5ad9e738500403db1
2026-10-12T23:46:01.555Z
来源文件 / 仓库# Astroflix
A reusable Astro template for a cinematic, Netflix-inspired publication. It combines typed content, static routes, accessible browsing, and a small amount of intentional client JavaScript while preserving the product spirit of the original Jekflix theme.
## Start a publication
Requirements:
- Bun 1.3.14
- Node.js 22.12.0 or newer
- A Notion integration shared with the posts database only when using Notion content
Install and run the Markdown demo:
```sh
bun install
bun run dev
```
Before publishing a site created from this template:
1. Edit `src/data/site.ts`: replace the example canonical URL, site identity, navigation, social links, theme colors, and optional contact settings.
2. Replace the demo posts, authors, About/Contact Markdown, and favicon.
3. Choose Markdown or Notion with `CONTENT_SOURCE`.
4. Run `bun test`, `bun run check`, and `bun run build`.
5. Review the attribution setting and retain required source notices.
The checked-in URL is deliberately `https://astroflix.example.com`; it is not suitable for a production deployment.
## Commands
| Command | Action |
| :-- | :-- |
| `bun install` | Install the pinned dependency graph |
| `bun run dev` | Start the Astro development server |
| `bun test` | Run configuration and content integrity tests |
| `bun run check` | Run Astro and TypeScript diagnostics |
| `bun run content:sync` | Force-refresh the selected content source and generated Astro types |
| `bun run build` | Check and build production output to `dist/` |
| `bun run audit` | Fail on moderate-or-higher dependency advisories |
| `bun run preview` | Preview the production build locally |
## Public configuration
`src/data/site.ts` is the single source-controlled configuration surface for public, non-secret settings. It is validated when Astro loads.
| Area | Settings |
| :-- | :-- |
| Identity | Name, title, description, canonical URL, and language |
| Theme | Accent and browser theme colors |
| Navigation | Header/sidebar and footer links |
| Social | Explicit URL, label, and icon (`github`, `rss`, `x`, `linkedin`, `website`, or `email`) |
| Header | Optional badge and call to action |
| Footer | Optional visible Jekflix attribution, enabled by default |
| Contact | Optional public email and optional form action |
| Content | Default cover URL used when Notion has no cover |
The canonical URL drives Astro, canonical tags, sharing URLs, RSS, sitemap, and `robots.txt`. Date formatting and font selection derive from the configured language.
Font links, font faces, and language-specific stacks remain in `src/data/fonts.ts` because they are a specialized design-system concern; their default language comes from the site configuration.
## Content sources
Posts can load from local Markdown or a Notion database at build time. Copy `.env.example` to `.env` to select a source locally. Environment variables select infrastructure and hold secrets; branding stays in the typed site configuration.
### Markdown
Markdown is the default:
```sh
CONTENT_SOURCE=markdown
```
Posts load from `src/content/posts/`. The filename becomes the route slug unless frontmatter provides an explicit lowercase ASCII `slug`.
Authors load from `src/content/authors/` in both content modes. About and Contact copy load from `src/content/pages/`, keeping downstream editorial changes separate from route code.
### Notion
Set all three variables for Notion builds:
```sh
CONTENT_SOURCE=notion
NOTION_TOKEN=
NOTION_DATABASE_ID=
```
The database must be shared with the integration that owns `NOTION_TOKEN`. Notion assets are downloaded to the gitignored `src/assets/notion/` cache.
Required database properties:
| Property | Type | Notes |
| :-- | :-- | :-- |
| `Title` | Title | Post title |
| `Slug` | Rich text | Lowercase ASCII route slug such as `cinematic-homepages` |
| `Subtitle` | Rich text | Falls back to description or title |
| `Description` | Rich text | Falls back to subtitle or title |
| `Status` | Status | Only `Published` posts build |
| `Published At` | Date | Public publication date |
| `Updated At` | Date | Optional modified date |
| `Author` | Select | Must match a local author ID |
| `Category` | Select | Category label |
| `Tags` | Multi-select | Tag labels |
| `Cover URL` | URL | Optional; falls back to the site configuration |
| `Cover Alt` | Rich text | Optional; falls back to the title |
| `Featured` | Checkbox | Homepage hero candidate |
Builds reject unknown authors, duplicate post routes, taxonomy labels that create empty slugs, and distinct taxonomy labels that collide at the same URL. Tags and categories support Unicode labels and Unicode-safe derived routes.
## Contact forms
The default Contact page shows configured email/social links and does not render a form. To enable a form, set `site.contact.formAction` to an HTTPS form-provider endpoint or a root-relative server endpoint. The form then submits with `POST`.
This static project does not process email itself. Configure redirects, spam controls, and delivery with the provider. `/message-sent/` is available as an optional redirect target but is not used to simulate a successful submission.
## Cloudflare Pages
For a publication created from this template, use a separate repository rather than deploying this template repository directly.
Recommended Pages settings:
| Setting | Value |
| :-- | :-- |
| Production branch | `main` |
| Build command | `bun run build` |
| Output directory | `dist` |
| Environment variable | `BUN_VERSION=1.3.14` |
For a Notion-backed site, set `CONTENT_SOURCE=notion`, store `NOTION_TOKEN` as an encrypted secret, and set `NOTION_DATABASE_ID` for every environment that builds content. Create a Cloudflare Pages deploy hook so publishing in Notion can trigger a rebuild without a Git commit.
Keep this repository as an `upstream` or `template` remote in the publication repo if you want to merge future template improvements deliberately.
## Project structure
```text
/
├── public/
├── src/
│ ├── components/
│ ├── content/{authors,pages,posts}/
│ ├── content-sources/
│ ├── data/
│ ├── layouts/
│ ├── lib/
│ ├── pages/
│ └── styles/
├── tests/
├── astro.config.ts
└── src/content.config.ts
```
The template includes a featured homepage, post grid, article pages, reading progress, deterministic recommendations, search, author/tag/category archives, RSS, sitemap, robots metadata, 404, and optional form-confirmation routes. The footer uses static Astro icon components and adds no client-side icon runtime.
## Security and licensing
CI uses a frozen lockfile and fails on moderate-or-higher dependency advisories. See [SECURITY.md](SECURITY.md) for the currently accepted low-severity development-server advisory.
Astroflix is MIT licensed. It is an independent reproduction informed by the original Jekflix product and visual ideas. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) for attribution and dependency notices.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astrowind
⭕️ AstroWind: A free template using Astro v7 and Tailwind CSS v4. Astro starter theme.
Astro · 博客

astro-paper
A minimal, accessible and SEO-friendly Astro blog theme.
Astro · 博客

fuwari
✨A static blog template built with Astro.
Astro · 博客

Firefly
Firefly 是一款基于 Astro 的静态博客主题,由 CuteLeaf 在 saicaca 的 Fuwari 模板基础上二次开发,主打清新美观的视觉风格。
Astro · 博客

astro-theme-cactus
A simple Astro theme. Use it to create your blog or website.
Astro · 作品集

astrofy
Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCS…
Astro · 作品集
