Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
bb04a4a
feat: enhance `Featured Talk` section with improved layout and video …
roguepikachu Sep 12, 2025
57f7d85
feat: add site configuration and career timeline to portfolio
roguepikachu Sep 12, 2025
34ce3c5
feat: restructure career data and enhance UI strings for improved con…
roguepikachu Sep 12, 2025
da685ba
feat: add styles for various components and pages
roguepikachu Sep 12, 2025
25116e5
feat: add CSS Modules for Index, NotFound, Project, Projects, and Pub…
roguepikachu Sep 12, 2025
f0c9fc5
chore: remove unused style files for various components and pages to …
roguepikachu Sep 12, 2025
bbb5612
feat: add project and publication pages with filtering and loading st…
roguepikachu Sep 12, 2025
46cc10b
feat: fix timeline for careers
roguepikachu Sep 12, 2025
4579db7
feat: enhance contact modal with LinkedIn and resume buttons, update …
roguepikachu Sep 12, 2025
d6a288c
feat: update deployment workflow to remove pull request trigger and e…
roguepikachu Sep 12, 2025
107e441
feat: add GitHub Actions workflow for testing build process
roguepikachu Sep 12, 2025
1d019f5
feat: update featured talk section with new title, subtitle, and desc…
roguepikachu Sep 12, 2025
cbdbb94
feat: enhance ProfileSlideshow with improved navigation and visibilit…
roguepikachu Sep 12, 2025
b5b56cb
feat: implement centralized content registry for blogs, projects, and…
roguepikachu Sep 12, 2025
beb11a9
feat: refactor badge styles to use centralized utility classes; remov…
roguepikachu Sep 12, 2025
f47ad21
feat: refactor badge styles to utilize centralized badge classes; rem…
roguepikachu Sep 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Test Build

on:
pull_request:
branches: [ main ]

jobs:
test-build:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Test Build
run: npm run build
env:
VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
143 changes: 143 additions & 0 deletions CONTENT_GUIDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
# Content Management Guide

## Centralized Content Management System

You now have a **single place** to manage all your content! No more managing titles and metadata in multiple places.

## Quick Start - Adding New Content

### 1. Adding a New Blog Post

**Step 1:** Add entry to `/src/config/content-registry.ts` in the `BLOG_REGISTRY` array:

```typescript
{
id: 'my-new-blog-post',
title: 'My Amazing New Blog Post',
excerpt: 'A brief description of what this post is about',
date: '2024-01-20',
tags: ['React', 'TypeScript', 'Web Development'],
order: 4, // This determines the display order
featured: true, // Will show on homepage if true
pinned: false, // Optional: pin to top
image: 'https://example.com/image.jpg' // Optional: custom image
}
```

**Step 2:** Create your markdown file at `/public/content/blog/my-new-blog-post.md`:

```markdown
# My Amazing New Blog Post

Your blog content goes here. You can write in markdown format.

## Subheading

More content...
```

**That's it!** Your blog post will automatically appear in the correct order.

### 2. Adding a New Project

**Step 1:** Add entry to the `PROJECT_REGISTRY` array:

```typescript
{
id: 'my-awesome-project',
title: 'My Awesome Project',
description: 'A brief description of your project',
tags: ['React', 'Node.js', 'MongoDB'],
githubUrl: 'https://github.com/yourusername/project',
demoUrl: 'https://your-project-demo.com', // Optional
order: 7,
featured: true, // Will show on homepage if true
}
```

**Step 2:** Create your project markdown file at `/public/content/projects/my-awesome-project.md`:

```markdown
# My Awesome Project

Detailed description of your project, installation instructions, usage, etc.

## Features

- Feature 1
- Feature 2

## Getting Started

Installation and setup instructions...
```

### 3. Adding a New Publication

**Step 1:** Add entry to the `PUBLICATION_REGISTRY` array:

```typescript
{
id: 'my-research-paper',
title: 'My Research Paper Title',
date: '2024-01-15',
summary: 'A brief summary of your research findings',
link: 'https://arxiv.org/abs/your-paper',
tags: ['Machine Learning', 'Deep Learning', 'Computer Vision'],
order: 5,
featured: true, // Will show on homepage if true
}
```

**Step 2:** Create your publication markdown file at `/public/content/publications/my-research-paper.md`:

```markdown
# My Research Paper Title

## Abstract

Your abstract goes here...

## Introduction

Your paper content...
```

## Key Benefits

1. **Single Source of Truth**: All titles, order, and metadata in one file
2. **Automatic Ordering**: Content displays in the order you specify
3. **Featured Control**: Easy toggle for homepage display
4. **Type Safety**: TypeScript ensures all required fields are present
5. **Fallback Support**: Markdown frontMatter still works as backup

## Important Notes

- **Order numbers** determine display sequence (1, 2, 3, etc.)
- **Featured items** appear on the homepage
- **IDs** must match your markdown filenames exactly
- **Markdown files** are optional - content can be empty if you only want the registry metadata

## File Structure

```
/public/content/
├── blog/
│ ├── my-blog-post.md
│ └── another-post.md
├── projects/
│ ├── my-project.md
│ └── another-project.md
└── publications/
├── my-paper.md
└── another-paper.md
```

## Migration from Old System

Your existing content will continue to work! The new system:
- Uses registry data as the primary source
- Falls back to markdown frontMatter if registry entry is missing
- Maintains backward compatibility

Now you can manage everything from one place! 🎉
20 changes: 10 additions & 10 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
import { ThemeProvider } from "@/components/theme-provider";
import { Layout } from "@/components/layout";
import Home from "./pages/Home";
import Projects from "./pages/Projects";
import Project from "./pages/Project";
import Blog from "./pages/Blog";
import BlogPost from "./pages/BlogPost";
import About from "./pages/About";
import Publications from "./pages/Publications";
import Publication from "./pages/Publication";
import NotFound from "./pages/NotFound";
import Home from "./pages/home/Home";
import Projects from "./pages/projects/Projects";
import Project from "./pages/project/Project";
import Blog from "./pages/blog/Blog";
import BlogPost from "./pages/blogpost/BlogPost";
import About from "./pages/about/About";
import Publications from "./pages/publications/Publications";
import Publication from "./pages/publication/Publication";
import NotFound from "./pages/notfound/NotFound";
import { sectionConfig } from "./config/sectionConfig";
import AuthCallback from "@/pages/AuthCallback";
import AuthCallback from "./pages/authcallback/AuthCallback";

const queryClient = new QueryClient();

Expand Down
Loading