English · 中文
- Minimalist style theme, adaptable to multiple platforms
- Zero-based quick start, foolproof configuration, easy deployment
- Support for article drafts, local preview, and automatic draft filtering in production builds
- Default RSS generation with Follow subscription authentication
- Integrated Algolia search
- Complete SEO optimization to improve search engine rankings
- Astro + React + Typescript
- Tailwindcss + @radix-ui/colors
- Docsearch
# Start local server
npm run dev
# or
yarn dev
# or
pnpm dev
# Build
npm run build
# or
yarn build
# or
pnpm build
- plugins/ # Custom plugins
- src/
├── assets/ # Asset files
├── components/ # Components
├── content/ # Content collections
├── helpers/ # Business logic
├── pages/ # Pages
└── typings/ # Common types
Articles are stored in the
src/content/post
directory, supporting markdown and mdx formats. The filename is the path name. For example,src/content/post/my-first-post.md
=>https://your-blog.com/blog/my-first-post
.
Theme configuration is done through slate.config.ts
in the root directory.
Option | Description | Type | Default |
---|---|---|---|
site | Final deployment link | string |
- |
title | Website title | string |
- |
description | Website description | string |
- |
lang | Language | string |
zh-CN |
avatar | Avatar | string |
- |
sitemap | Website sitemap configuration | SitemapOptions | - |
readTime | Show reading time | boolean |
false |
lastModified | Show last modified time | boolean |
false |
algolia | Docsearch configuration | { appId: string, apiKey: string, indexName: string } |
- |
follow | Follow subscription authentication configuration | { feedId: string, userId: string } |
- |
footer | Website footer configuration | { copyright: string } |
- |
- Deploy your site first
- Apply for an
apiKey
at algolia - After successful application, configure
algolia
inslate.config.ts
- Redeploy
- Register a follow account
- Deploy your site
- Click the
+
button onfollow
, selectRSS
subscription, and enter therss
link (usually[site]/rss.xml
, wheresite
is the value ofsite
inslate.config.ts
) - Redeploy
Option | Description | Type | Required |
---|---|---|---|
title | Article title | string |
Yes |
description | Article description | string |
No |
tags | Article tags | string[] |
No |
draft | Whether it's a draft. When not provided or false , pubDate must be provided; drafts are only visible in local preview |
boolean |
No |
pubDate | Article publication date | date |
No, required when draft is false |
For more details, check the src/content/config.ts
file
---
title: 40 questions
description: This repo maintains revisons and translations to the list of 40 questions I ask myself each year and each decade.
tags:
- Life
- Thinking
- Writing
pubDate: 2025-01-06
---