A personal notes website built with Astro and automatically deployed to Vercel.
- ๐ Built with Astro for fast, modern static site generation
- ๐ Markdown-based content
- ๐ Obsidian transclusion syntax support for embedding content from other files
- ๐จ Responsive design with mobile-friendly navigation
- ๐ Automatic deployment to Vercel on every push to main
- ๐ Organized content structure with categories
- Node.js 20.x or higher
- npm
-
Clone the repository
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:4321 in your browser
npm run buildThe built site will be in the dist/ directory.
npm run previewThis site automatically deploys to Vercel when changes are pushed to the main branch.
- Create a new project in Vercel and link it to your GitHub repository
- Install the Vercel CLI:
npm install -g vercel - Link your project:
npx vercel link(follow the prompts) - Add the following secret to your GitHub repository:
VERCEL_TOKEN: Your Vercel API token (get it from https://vercel.com/account/tokens)
The .vercel/project.json file created by vercel link contains your project configuration and will be used during deployment.
Content is organized in markdown files within src/data/notes/. The navigation is automatically generated from the folder structure during the build process. Simply add new markdown files in the appropriate folders, and they will be included in the navigation automatically.
This site supports two syntaxes for embedding content from other markdown files:
Embed a specific section:
![[Filename#Section Heading]]Embed an entire file:
![[Filename]]Embed an entire file:
This syntax also supports URL-encoded filenames:
.md)Note: Images are not affected. Only links to .md files are transcluded.
Example:
## Dark Chocolate Coating
Cover it with dark chocolate
![[Chocolate (tempered)#Dark chocolate]]
## Add Mascarpone Filling
.md)
## Lemon Curd Topping
Add lemon curd topping (optional)
![[Curds#Lemon curd]]The transclusion syntax will automatically:
- Find the referenced file anywhere in the notes directory
- Extract the specified section (case-insensitive heading match)
- Include all content under that heading until the next heading of the same or higher level
- Support URL-encoded filenames (spaces, parentheses, etc.)
- Preserve image links (only
.mdfiles are transcluded) - Gracefully handle missing files or sections by leaving the original syntax in place
ISC