A clean, elegant, and fast static blog template! 🚀 Built with Astro
🖥️ Frosti Demo / 🌏 Chinese README / ❤️My Blog
- ✅ Light / Dark mode available
- ✅ Super fast performance with excellent SEO
- ✅ View transition animations (using ClientRouter)
- ✅ Search functionality for your articles (using Pagefind)
- ✅ Responsive design built with Tailwind CSS and daisyUI
- ✅ RSS feed support
- 🛠️ Easy to use blog
- Installation with just one command
- Customize your blog content in
frosti.config.yaml
| Name | Meaning | Required |
|---|---|---|
| title | Article title | Yes |
| description | Article description | Yes |
| pubDate | Publication date | Yes |
| image | Article cover image | No |
| categories | Article categories | No |
| tags | Article tags | No |
| badge | Article badge | No |
| draft | Draft status | No |
Tip
- You can pin your article by setting the
badgeproperty toPin - Setting
draft: truewill mark the article as a draft, and it won't appear in the article list
- Install pnpm package manager (if you haven't already)
npm i -g pnpm- Clone the project
git clone https://github.com/EveSunMaple/Frosti.git Frosti- Enter the project folder
cd Frosti- Install dependencies
pnpm i- Debug and run the project
# If this is your first deployment, build first
pnpm run build
pnpm run devNote
You must build before starting the debug server, otherwise pagefind won't have an index, and the search functionality will not work.
Frosti uses frosti.config.yaml as its configuration file, where you can configure the website's basic information, navigation bar, footer, and more.
site:
tab: Frosti # Text displayed in the browser tab
title: Frosti # Website title
description: A clean, elegant, and fast static blog template! # Website description for SEO
language: en # Website language code, e.g., "en" for English, "zh" for Chinese
favicon: /favicon.ico # Website favicon paththeme:
light: winter # Light mode theme, based on daisyUI themes
dark: dracula # Dark mode theme, based on daisyUI themes
code: github-dark # Code block theme styledate_format: ddd MMM DD YYYY # Date display formatmenu:
- id: home # Unique identifier for the menu item
text: Home # Text displayed in the menu
href: / # Link address
svg: "material-symbols:home-outline-rounded" # Icon
target: _self # Link targetEach menu item includes the following properties:
id: Unique identifiertext: Displayed texthref: Link addresssvg: Icon code using Iconify icon settarget: Link target (_selffor current window or_blankfor new window)
You can configure sub-menu items by adding subItems with the same format as main menu items.
user:
name: EveSunMaple # Username
site: "https://example.com" # User website
avatar: /profile.png # User avatarSidebar and footer can have different social media links:
sidebar:
social:
- href: "https://github.com/username" # Link address
ariaLabel: Github # Accessibility label
title: Github # Tooltip on hover
svg: "ri:github-line" # Icon codeFrosti uses Iconify as its icon library. You can search for icons you like on their website, then copy the icon code to the svg field in the configuration file.
Frosti supports multiple languages, configured through:
- Setting the default language in
frosti.config.yaml:
site:
language: en # Set to "en" for English, "zh" for Chinese- Managing all interface text translations in the
src/i18n/translations.yamlfile:
en: # English translations
label:
noTag: No tags assigned
tagCard: Tags
# Other English labels...
zh: # Chinese translations
label:
noTag: 未分配标签
tagCard: 标签
# Other Chinese labels...To add new language support or modify existing translations:
- Add a new language code and corresponding translations in the
translations.yamlfile, or modify existing translations - Change
site.languageinfrosti.config.yamlto your preferred language code
If you have any questions or suggestions, you can provide feedback or communicate with the developer by submitting Issues!
@Saicaca Their inspiration was the main reason I created this theme
@WRXinYue They helped me a lot when I was first getting started
