Hello World
Welcome to my new blog! This is my first post using the markdown-based blog system I built for my portfolio.
Why a Blog?
I wanted a place to share my thoughts on technology, programming, and projects I'm working on. Since this portfolio already has a terminal aesthetic, it made sense to extend that to the blog.
Features
This blog system includes:
- Markdown support with frontmatter for metadata
- Syntax highlighting using Shiki with the github-dark theme
- Static generation for fast page loads
- Terminal aesthetic matching the rest of the site
Code Example
Here's some TypeScript to demonstrate syntax highlighting:
interface Post {
slug: string;
title: string;
date: string;
description: string;
tags: string[];
content: string;
}
async function getPostBySlug(slug: string): Promise<Post> {
const filePath = path.join(postsDirectory, `${slug}.md`);
const fileContents = fs.readFileSync(filePath, 'utf8');
const { data, content } = matter(fileContents);
return {
slug,
title: data.title,
date: data.date,
description: data.description,
tags: data.tags || [],
content: await markdownToHtml(content),
};
}
And some CSS for good measure:
.blog-post {
max-width: 700px;
margin: 0 auto;
line-height: 1.8;
}
.blog-post pre {
background: #0d1117;
padding: 1rem;
border-radius: 8px;
overflow-x: auto;
}
What's Next?
I'll be posting about:
- Projects I'm building
- Things I'm learning
- Interesting problems I've solved
Stay tuned!