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
- Customize your blog content in
frosti.config.yaml
- Customize your blog content in
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
badge
property toPin
- Setting
draft: true
will 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 dev
Note
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 path
theme:
light: winter # Light mode theme, based on daisyUI themes
dark: dracula # Dark mode theme, based on daisyUI themes
code: github-dark # Code block theme style
date_format: ddd MMM DD YYYY # Date display format
menu:
- 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 target
Each menu item includes the following properties:
id
: Unique identifiertext
: Displayed texthref
: Link addresssvg
: Icon code using Iconify icon settarget
: Link target (_self
for current window or_blank
for 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 avatar
Sidebar 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 code
Frosti 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.yaml
file:
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.yaml
file, or modify existing translations - Change
site.language
infrosti.config.yaml
to 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