Skip to content

Commit 00e31f7

Browse files
authored
Merge pull request #1 from neural-processing-lab/new-website
New website
2 parents 4b834ea + 2a75d3a commit 00e31f7

File tree

1,346 files changed

+45409
-88245
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,346 files changed

+45409
-88245
lines changed

.DS_Store

6 KB
Binary file not shown.

.claude/settings.local.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"WebFetch(domain:scholar.google.com)",
5+
"Bash(npm run build:*)",
6+
"WebFetch(domain:neural-processing-lab.github.io)",
7+
"Bash(mv:*)"
8+
],
9+
"defaultMode": "acceptEdits"
10+
}
11+
}

.github/workflows/hugo.yaml

Lines changed: 0 additions & 79 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Deploy Next.js static export to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: "pages"
16+
cancel-in-progress: false
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: '20'
29+
cache: 'npm'
30+
31+
- name: Configure Pages
32+
id: pages
33+
uses: actions/configure-pages@v5
34+
35+
- name: Install dependencies
36+
run: npm ci
37+
38+
- name: Derive NEXT_PUBLIC_BASE_PATH from Pages base_url
39+
run: |
40+
BASE_PATH="$(printf '%s' "$BASE_URL" | sed -E 's#^[a-zA-Z]+://[^/]+##; s#/$##')"
41+
echo "NEXT_PUBLIC_BASE_PATH=$BASE_PATH" >> "$GITHUB_ENV"
42+
env:
43+
BASE_URL: ${{ steps.pages.outputs.base_url }}
44+
45+
- name: Build static site
46+
run: npm run build
47+
48+
- name: Upload artifact
49+
uses: actions/upload-pages-artifact@v3
50+
with:
51+
path: ./out
52+
53+
deploy:
54+
environment:
55+
name: github-pages
56+
url: ${{ steps.deployment.outputs.page_url }}
57+
runs-on: ubuntu-latest
58+
needs: build
59+
steps:
60+
- name: Deploy to GitHub Pages
61+
id: deployment
62+
uses: actions/deploy-pages@v4
63+
64+

.gitignore

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.*
7+
.yarn/*
8+
!.yarn/patches
9+
!.yarn/plugins
10+
!.yarn/releases
11+
!.yarn/versions
12+
13+
# testing
14+
/coverage
15+
16+
# next.js
17+
/.next/
18+
/out/
19+
20+
# production
21+
/build
22+
23+
# misc
24+
.DS_Store
25+
*.pem
26+
27+
# debug
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
.pnpm-debug.log*
32+
33+
# env files (can opt-in for committing if needed)
34+
.env*
35+
36+
# vercel
37+
.vercel
38+
39+
# typescript
40+
*.tsbuildinfo
41+
next-env.d.ts
42+
.idea/

.gitmodules

Lines changed: 0 additions & 4 deletions
This file was deleted.

.hugo_build.lock

Whitespace-only changes.

README.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
# PNPL Website
2+
3+
The official website for the Parker Jones Neural Processing Lab at Oxford Robotics Institute.
4+
5+
## Tech Stack
6+
7+
- **Framework**: Next.js 15 (App Router)
8+
- **Language**: TypeScript
9+
- **3D Graphics**: Three.js with React Three Fiber
10+
- **Typography**: Geist font family
11+
- **Markdown**: KaTeX for mathematical expressions
12+
- **Deployment**: Static export ready
13+
14+
## Key Features
15+
16+
### Interactive 3D Hero Section
17+
- ASCII-rendered 3D brain model using Three.js
18+
- Real-time rotation and custom character mapping
19+
- Responsive design with dynamic scaling
20+
21+
### Dynamic Content
22+
- Real publication data from Google Scholar
23+
- Expandable abstracts with formatted content
24+
- Responsive table of contents for blog posts
25+
- Mathematical expression rendering with KaTeX
26+
27+
### Blog System
28+
- Markdown-based blog posts with frontmatter
29+
- Citation management with BibTeX export
30+
- Tag-based filtering
31+
- Responsive design with TOC that hides near footer
32+
33+
### Navigation
34+
- Context-aware navigation (scrolling vs. page navigation)
35+
- Fixed header with blur effects
36+
- Smooth scrolling between sections
37+
38+
### Performance Optimizations
39+
- Static generation with `export` command
40+
- Image optimization with Next.js Image component
41+
- Font optimization with `next/font`
42+
- Component-level code splitting
43+
44+
## Development
45+
46+
### Prerequisites
47+
- Node.js 18+
48+
- npm, yarn, pnpm, or bun
49+
50+
### Getting Started
51+
52+
```bash
53+
# Install dependencies
54+
npm install
55+
56+
# Run development server
57+
npm run dev
58+
59+
# Build for production
60+
npm run build
61+
62+
# Export static site
63+
npm run export
64+
65+
# Serve production build locally
66+
npm start
67+
```
68+
69+
### Project Structure
70+
71+
```
72+
src/
73+
├── app/
74+
│ ├── components/ # Reusable UI components
75+
│ │ ├── Navigation.tsx # Context-aware navigation
76+
│ │ ├── HeroAscii3D.tsx # 3D ASCII brain animation
77+
│ │ ├── Publications.tsx # Research publications
78+
│ │ ├── Team.tsx # Team member grid
79+
│ │ ├── Footer.tsx # Site footer with logos
80+
│ │ └── ...
81+
│ ├── blog/ # Blog pages and components
82+
│ └── globals.css # Global styles and CSS utilities
83+
├── lib/ # Utility functions
84+
├── types/ # TypeScript type definitions
85+
└── content/ # Blog posts and content
86+
```
87+
88+
### Content Management
89+
90+
#### Adding Publications
91+
Edit `src/app/components/Publications.tsx` and add entries to the `publications` array:
92+
93+
```typescript
94+
{
95+
title: "Paper Title",
96+
authors: ["Author 1", "Author 2"],
97+
venue: "Conference/Journal",
98+
year: 2025,
99+
arxiv: "2XXX.XXXXX", // Optional
100+
doi: "10.1000/...", // Optional
101+
description: "Brief description",
102+
abstract: "Full abstract text",
103+
featured: true // Optional
104+
}
105+
```
106+
107+
#### Adding Blog Posts
108+
1. Create markdown files in `content/` directory
109+
2. Include frontmatter with metadata
110+
3. Use KaTeX syntax for mathematical expressions
111+
4. Blog posts auto-generate table of contents from headings
112+
113+
### Styling Guidelines
114+
115+
- Uses CSS-in-JS with inline styles for component-scoped styling
116+
- Global styles in `globals.css` for reusable patterns
117+
- Responsive design with `clamp()` and media queries
118+
- Dark/light theme support via CSS custom properties
119+
120+
### Deployment
121+
122+
The site is configured for static export:
123+
124+
```bash
125+
npm run build && npm run export
126+
```
127+
128+
This generates a `out/` directory that can be deployed to any static hosting service (GitHub Pages, Netlify, Vercel, etc.).
129+
130+
### Performance Notes
131+
132+
- All components use Next.js optimization features
133+
- Images are optimized with `next/image`
134+
- Fonts are self-hosted and optimized
135+
- 3D models are compressed (.glb format)
136+
- Static generation eliminates runtime overhead
137+
138+
## Browser Support
139+
140+
- Modern browsers with ES2020+ support
141+
- WebGL support required for 3D features
142+
- Responsive design supports mobile and desktop

archetypes/default.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

assets/img/PNPL_SQUARE.png

-34.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)