johnzanussi.com
johnzanussi.com copied to clipboard
My personal website built with Astro.
johnzanussi.com
A place where I write about technology, 3D Printing, and other hobby projects I have going on.
Built with Astro. Hosted on Vercel.
Table of Contents
- Project Structure
- Commands
- Built With
- Libraries
- Services
- Writing Content
- Content Frontmatter
- Pages
- Posts
- MDX Components
- Image Shortcut
- Content Frontmatter
๐ Project Structure
/
โโโ public/
โโโ src/
โโโ assets/
โ โโโ image.png
โโโ components/
โ โโโ Component.astro
โโโ content/
โ โโโ pages
โ | โโโ page-title
โ | โโโ index.mdx
โ | โโโ image.jpg
โ โโโ posts
โ โโโ post-slug
โ โโโ index.mdx
โ โโโ image.jpg
โโโ layouts/
โ โโโ Layout.astro
โโโ pages/
โ โโโ posts
โ โโโ [slug].astro
โ โโโ index.astro
โ โโโ [page].astro
โโโ scripts/
โ โโโ script.ts
โโโ styles/
โ โโโ styles.scss
โโโ utils/
โ โโโ util.ts
โโโ package.json
๐ง Commands
| 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 check |
Shortcut for astro check |
npm run update |
Shortcut for npx npm-check-updates |
npm run ts |
Shortcut for tsc --noEmit |
npm run astro -- --help |
Get help using the Astro CLI |
๐ง Built With
Read more about why I chose these libraries and services on the Built With page.
๐ Libraries
๐ ๏ธ Services
๐ Writing Content
- Create a new directory in either
src/content/pagesorsrc/content/posts. The directory name will be used for the generated URL of the content. - Create an
index.mdxfile within the directory. This is where the page or post content lives. - Add any images or other files specific to that content within the directory.
๐๏ธ Content Frontmatter
๐ Pages
| Property | Type | Required | Notes |
|---|---|---|---|
title |
String |
Yes | |
excerpt |
String |
No | |
cover |
ImageMetaData |
Yes | Image should be 16x9 ratio |
draft |
Boolean |
No | Setting to true only displays the page in dev environments |
๐๏ธ Posts
| Property | Type | Required | Notes |
|---|---|---|---|
title |
String |
Yes | |
excerpt |
String |
No | Used on /posts and in meta tags description. |
cover |
ImageMetaData |
Yes | Image should be 16x9 ratio |
date |
String |
Yes | Value is passed to new Date() |
hasAmazonLinks |
Boolean |
No | Default false. If true the <AmazonDisclosure> component will be rendered at the bottom of the post. |
hiddenIntro |
Boolean |
No | Default false. If true and the post contains ## Intro the resulting heading will be removed from the rendered page but the Intro link will remain in the table of contents. |
draft |
Boolean |
No | Setting to true only displays the page in dev environments |
๐งฉ MDX Components
The following components are made available in all .mdx files without the need to explicitly import.
โคด๏ธ Image Shortcut
When writing post content in any src/posts/[post-slug]/index.mdx file you can type img followed by a tab to auto-create the following code.
img โก๏ธ

This behavior lives in .vscode/MDX Image Paths.code-snippets.