English · 中文
We love writing and sharing, and we appreciate well-crafted products. That’s why we created this minimalist theme, focusing on content itself, providing a smooth and pure writing and reading experience. Built on the latest framework, it’s faster, lighter, and more efficient.
It also works seamlessly with Obsidian, helping you turn your notes into published posts effortlessly.
- Minimalist design theme
- Mobile-first responsive layout
- Light and dark mode support
- Quick setup with zero configuration required
- Draft mode with local preview and automatic production filtering
- Built-in RSS feed with Follow authentication
- Integrated Algolia search functionality
- Comprehensive SEO optimization for better search rankings
- Astro + React + Typescript
- Tailwindcss + @radix-ui/colors
- Updated to Tailwind CSS v4.0 (Jan 10, 2025)
- Docsearch
# Start local server
npm run dev
# or
yarn dev
# or
pnpm dev
# Build
npm run build
# or
yarn build
# or
pnpm build
If you fork the repository and set it to private, you will lose the association with the upstream repository by default. You can sync the latest version of Slate Blog by running
pnpm sync-latest
.
- 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 |
theme | Theme | { mode: 'auto' | 'light' | 'dark', enableUserChange: boolean } |
{ mode: 'auto', enableUserChange: true } |
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 } |
- |
socialLinks | Social Links Configuration | { icon: [SocialLinkIcon](#SocialLinkIcon), link: string, ariaLabel?: string } |
- |
type SocialLinkIcon =
| 'dribbble'
| 'facebook'
| 'figma'
| 'github'
| 'instagram'
| 'link'
| 'mail'
| 'notion'
| 'rss'
| 'threads'
| 'x'
| 'youtube'
| { svg: string }
- Deploy your site first
- Apply for an
apiKey
at algolia - After successful application, configure
algolia
inslate.config.ts
- Redeploy your site
- Register a follow account
- Deploy your site
- Click the
+
button on Follow, 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
---
In addition to standard Markdown syntax, the following extended syntax is supported:
- Headers, lists, blockquotes, code blocks and other basic syntax
- Tables
- Links and images
- Bold, italic, and
strikethroughtext
Using :::
markers
:::info
This is an information prompt
:::
- Inline formula:
- Block formula: $$ E = mc^2 $$

- Support Social Links
- Support i18n (English and Chinese)
- Fixed known issues
- Fixed known issues
- Upgraded to support Tailwind CSS v4.0
- Added dark mode support
- Fixed known issues