A modern personal website showcasing astrophotography, writing, and blog posts with full LaTeX support.
- Astrophotography Gallery: High-resolution 6K image display with individual photo pages
- Blog Section: Technical articles with LaTeX equation support and syntax highlighting
- Writing Section: Academic papers and research with mathematical notation
- About Page: Personal introduction and background
- LaTeX Support: Full mathematical notation rendering using KaTeX
- Responsive Design: Mobile-friendly layout with dark mode support
- Static Site: Optimized for GitHub Pages deployment
- Framework: Next.js 15 with TypeScript
- Styling: Tailwind CSS
- LaTeX Rendering: KaTeX with react-katex
- Markdown Processing: react-markdown with remark-math and rehype-katex
- Code Highlighting: react-syntax-highlighter
- Deployment: GitHub Pages with automated CI/CD
- Node.js 18 or later
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd PersonalWebsite- Install dependencies:
npm install- Start the development server:
npm run dev- Open http://localhost:3000 in your browser.
Create new Markdown files in content/blog/ with the following frontmatter:
---
title: "Your Post Title"
date: "YYYY-MM-DD"
excerpt: "Brief description of the post"
tags: ["tag1", "tag2"]
---
# Your Content Here
LaTeX equations are supported: $E = mc^2$
And code blocks:
\`\`\`python
print("Hello, world!")
\`\`\`Create new Markdown files in content/writing/ with frontmatter:
---
title: "Paper Title"
date: "YYYY-MM-DD"
type: "Research Paper"
excerpt: "Abstract or summary"
tags: ["research", "astronomy"]
---
Your academic content with full LaTeX support.- Add high-resolution images to
public/photos/ - Update the photo data in
app/astrophotography/page.tsx - Add individual photo details in
app/astrophotography/[slug]/page.tsx
The site supports full LaTeX rendering for mathematical equations:
- Inline math:
$E = mc^2$ - Block equations:
$$\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$ - Complex expressions with matrices, integrals, summations, etc.
The site automatically deploys to GitHub Pages when changes are pushed to the main branch. The GitHub Actions workflow:
- Builds the Next.js site
- Exports static files
- Deploys to GitHub Pages
To build and export manually:
npm run buildThe static files will be generated in the out/ directory.
├── app/ # Next.js app directory
│ ├── astrophotography/ # Gallery pages
│ ├── blog/ # Blog pages
│ ├── writing/ # Writing pages
│ └── about/ # About page
├── components/ # React components
├── content/ # Markdown content
│ ├── blog/ # Blog posts
│ └── writing/ # Academic writing
├── lib/ # Utility functions
├── public/ # Static assets
│ └── photos/ # Astrophotography images
└── .github/workflows/ # GitHub Actions
This is a personal website, but suggestions and improvements are welcome through issues and pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.