The Programmer's Field Guide: Basics

πŸš€ Project Structure

Inside the project, powered by Starlight, you'll see the following folders and files:

.
β”œβ”€β”€ public/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ content/
β”‚   β”‚   β”œβ”€β”€ docs/
β”‚   β”‚   └── config.ts
β”‚   └── env.d.ts
β”œβ”€β”€ astro.config.mjs
β”œβ”€β”€ package.json
└── tsconfig.json

Starlight looks for .md or .mdx files in the src/content/docs/ directory. Each file is exposed as a route based on its file name.

Images can be added to src/assets/ and embedded in Markdown with a relative link.

Static assets, like favicons, can be placed in the public/ directory.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:3000
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

Custom Components

Image Swiper

To use the image swiper, import the component and pass in an array of image paths. The component will automatically generate a swiper with the images.

// import the component (may need to adjust the level of the import)
import MySwiper from '../../../../../components/react/myswiper.jsx'

// pass in an array of image paths
<MySwiper client:only images={[
  "/test.jpeg",
  "/test.jpeg",
  "/test.jpeg",
]}></MySwiper>

Note: files in the public directory are served at the root path. Instead of /public/test.jpeg, use /test.jpeg.

πŸ‘€ Want to learn more?

Check out Starlight’s docs, read the Astro documentation, or jump into the Astro Discord server.

Programmers Field Guide is licensed under CC BY-NC-ND 4.0