Getting Started
Get started with the Astro Theme Pure
Installation#
Two way to install. “Template” way is lightweight and simple, but hard to update; while “Fork” way is easy to update but needs some skills for git.
Install Using Template#
-
Install the theme
Execute the following command in the your user directory to install the theme:
Terminal window bun create astro@latest --template cworld1/astro-theme-pureTerminal window pnpm create astro@latest --template cworld1/astro-theme-pureTerminal window yarn create astro --template cworld1/astro-theme-pureTerminal window npm create astro@latest -- --template cworld1/astro-theme-pureBy default, this command will use the template repository’s main branch. To use a different branch name, pass it as part of the
--template
argument:cworld1/astro-theme-pure#<branch>
. -
Answer the questions and follow the instructions of the CLI wizard.
-
VOILA!
You can now start the Astro dev server and see a live preview of your project while you make it your own!
Install Using Fork#
You only need to click fork button at theme repository to create your project; then clone the forked repository to your local machine.
git clone https://github.com/<your-username>/astro-theme-pure.git
Then, you can start the Astro dev server and see a live preview of your project while you make it your own!
Start the Dev Server#
Go to your project directory:
cd ./<your-project>
bun dev
pnpm dev
yarn run dev
npm run dev
Next, please read the configuration notes first and continue configuring the theme.
Migrate to Astro#
See Astro: Migrate an existing project to Astro.
Theme File Structure#
The theme file structure is as follows:
public
: Static resources that will be copied to the root directorysrc
:assets
: Static resourcescomponents
: Components used in the theme, also include user-like components, likeCard
,Collapse
,Spoiler
, etc.layouts
: Basic site layoutspages
: Pages like404
,about
,blog
,docs
,index
, etc.plugins
: Extended plugins used in the themetypes
: Typescript type definitionsutils
: Utilitiessite.config.ts
: Theme configuration file
astro.config.mjs
: Astro configuration fileeslint.config.mjs
: ESLint configuration fileprettier.config.mjs
: Prettier configuration fileuno.config.ts
: UnoCSS configuration filetsconfig.json
: Typescript configuration filepackage.json
: Package information
Simple Setup#
-
Remove docs files
- Remove the
src/pages/docs
directory - Remove the menu declaration in
src/site.config.ts
:
src/site.config.ts export const theme: ThemeUserConfig = {// .../** Configure the header of your site. */header: {menu: [{ title: 'Blog', link: '/blog' },{ title: 'Docs', link: '/docs' }, // [!code --]// ...],},}- Remove the Content Collection for docs in
src/content.config.ts
:
src/content.config.ts const docs = defineCollection({ // [!code --]loader: glob({ base: './src/content/docs', pattern: '**/*.{md,mdx}' }), // [!code --]schema: ({ image }) => // [!code --]z.object({ // [!code --]... // [!code --]}) // [!code --]}) // [!code --]export const collections = { blog, docs } // [!code --]export const content = { blog } // [!code ++] - Remove the
-
Remove
packages
directory (this will be imported by our NPM package) -
Change the site favicon.
Replace the
public/favicon/*
files with your own favicon. -
Replace your avatar image.
Replace the
src/assets/avatar.png
file with your own avatar image. -
Configure the site
You can configure your project inside the
src/site.config.ts
configuration file:src/site.config.ts export const theme: ThemeUserConfig = {author: 'CWorld',title: 'Astro Theme Pure',site: 'https://astro-pure.js.org',description: 'Stay hungry, stay foolish',// ...}export const integ: IntegrationUserConfig = { /* ... */ }// ... -
Typescript Syntax
The configuration file
site.config.ts
uses Typescript syntax. If you are not familiar with TS syntax, please read about it here first.