Skip to content

Commit 0a2db49

Browse files
committed
Initial Jekyll blog setup (by Claude)
1 parent fbcf1c7 commit 0a2db49

File tree

8 files changed

+263
-4
lines changed

8 files changed

+263
-4
lines changed

.github/workflows/deploy.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Deploy Jekyll 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 Ruby
26+
uses: ruby/setup-ruby@v1
27+
with:
28+
ruby-version: '3.2'
29+
bundler-cache: true
30+
31+
- name: Setup Pages
32+
id: pages
33+
uses: actions/configure-pages@v4
34+
35+
- name: Build with Jekyll
36+
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
37+
env:
38+
JEKYLL_ENV: production
39+
40+
- name: Upload artifact
41+
uses: actions/upload-pages-artifact@v3
42+
43+
deploy:
44+
environment:
45+
name: github-pages
46+
url: ${{ steps.deployment.outputs.page_url }}
47+
runs-on: ubuntu-latest
48+
needs: build
49+
steps:
50+
- name: Deploy to GitHub Pages
51+
id: deployment
52+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1+
# Jekyll build output
12
_site/
23
.sass-cache/
34
.jekyll-cache/
45
.jekyll-metadata
5-
# Ignore folders generated by Bundler
6-
.bundle/
6+
7+
# Ruby/Bundler
78
vendor/
9+
.bundle/
10+
Gemfile.lock
11+
12+
# IDE
13+
.idea/
14+
.vscode/
15+
*.swp
16+
*.swo
17+
18+
# OS
19+
.DS_Store
20+
Thumbs.db

Gemfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
source "https://rubygems.org"
2+
3+
gem "jekyll", "~> 4.3"
4+
gem "minima", "~> 2.5"
5+
6+
group :jekyll_plugins do
7+
gem "jekyll-feed", "~> 0.12"
8+
gem "jekyll-seo-tag", "~> 2.8"
9+
end
10+
11+
# Windows and JRuby does not include zoneinfo files
12+
platforms :mingw, :x64_mingw, :mswin, :jruby do
13+
gem "tzinfo", ">= 1", "< 3"
14+
gem "tzinfo-data"
15+
end

README.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,76 @@
1-
# blog
2-
Blog website and content for Simplex Lab, built with Jekyll
1+
# AI Research Blog
2+
3+
A personal blog about AI research and ML theory, built with Jekyll and deployed via GitHub Pages.
4+
5+
## Local Development
6+
7+
### Prerequisites
8+
9+
- Ruby 3.x
10+
- Bundler (`gem install bundler`)
11+
12+
### Setup
13+
14+
```bash
15+
# Install dependencies
16+
bundle install
17+
18+
# Run local server
19+
bundle exec jekyll serve
20+
```
21+
22+
Visit `http://localhost:4000/blog/` in your browser.
23+
24+
### Live reload
25+
26+
```bash
27+
bundle exec jekyll serve --livereload
28+
```
29+
30+
## Writing Posts
31+
32+
Create new posts in the `_posts/` directory with the naming convention:
33+
34+
```
35+
YYYY-MM-DD-title-of-post.md
36+
```
37+
38+
Each post needs front matter:
39+
40+
```yaml
41+
---
42+
layout: post
43+
title: "Your Post Title"
44+
date: YYYY-MM-DD
45+
categories: category1 category2
46+
---
47+
48+
Your content here...
49+
```
50+
51+
## Deployment
52+
53+
The blog is automatically deployed to GitHub Pages when you push to the `main` branch.
54+
55+
### First-time Setup
56+
57+
1. Push this repository to GitHub
58+
2. Go to **Settings → Pages**
59+
3. Under "Build and deployment", select **GitHub Actions** as the source
60+
4. The workflow will automatically build and deploy on push to `main`
61+
62+
Your blog will be available at: `https://<username>.github.io/blog/`
63+
64+
## Configuration
65+
66+
Edit `_config.yml` to customize:
67+
68+
- `title`: Your blog's name
69+
- `description`: Blog description for SEO
70+
- `author`: Your name
71+
- `url`: Your GitHub Pages URL (update `YOUR_GITHUB_USERNAME`)
72+
- `baseurl`: Repository name (default: `/blog`)
73+
74+
## License
75+
76+
MIT

_config.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Site settings
2+
title: AI Research Blog
3+
description: Thoughts on AI research and ML theory
4+
author: Your Name
5+
email: your-email@example.com
6+
7+
# URL settings (update with your GitHub username)
8+
baseurl: "/blog" # repository name
9+
url: "https://mattbuot.github.io"
10+
11+
# Build settings
12+
theme: minima
13+
plugins:
14+
- jekyll-feed
15+
- jekyll-seo-tag
16+
17+
# Minima theme settings
18+
minima:
19+
skin: auto # auto switches between light/dark based on user preference
20+
21+
# Markdown settings
22+
markdown: kramdown
23+
highlighter: rouge
24+
25+
kramdown:
26+
syntax_highlighter: rouge
27+
input: GFM # GitHub Flavored Markdown
28+
29+
# Permalink structure
30+
permalink: /:year/:month/:day/:title/
31+
32+
# Exclude from build
33+
exclude:
34+
- Gemfile
35+
- Gemfile.lock
36+
- README.md
37+
- LICENSE
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
layout: post
3+
title: "Welcome to the Blog"
4+
date: 2026-01-13
5+
categories: general
6+
---
7+
8+
Welcome to my AI research blog! This is a space where I'll share thoughts on machine learning theory, deep learning, and the latest developments in AI research.
9+
10+
## What to Expect
11+
12+
Posts will cover topics such as:
13+
14+
- **Learning Theory**: Understanding generalization, sample complexity, and the theoretical foundations of ML
15+
- **Optimization**: Gradient descent dynamics, convergence analysis, and loss landscapes
16+
- **Neural Networks**: Architectures, expressivity, and training dynamics
17+
- **Research Insights**: Commentary on interesting papers and emerging trends
18+
19+
## Code Examples
20+
21+
Posts may include code snippets. Here's a simple example:
22+
23+
```python
24+
import torch
25+
import torch.nn as nn
26+
27+
class SimpleNetwork(nn.Module):
28+
def __init__(self, input_dim: int, hidden_dim: int, output_dim: int):
29+
super().__init__()
30+
self.layers = nn.Sequential(
31+
nn.Linear(input_dim, hidden_dim),
32+
nn.ReLU(),
33+
nn.Linear(hidden_dim, output_dim),
34+
)
35+
36+
def forward(self, x: torch.Tensor) -> torch.Tensor:
37+
return self.layers(x)
38+
```
39+
40+
## Math Support
41+
42+
Jekyll with Kramdown supports LaTeX-style math. For example, the cross-entropy loss:
43+
44+
$$
45+
\mathcal{L}(\theta) = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c})
46+
$$
47+
48+
Stay tuned for more content!

about.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
layout: page
3+
title: About
4+
permalink: /about/
5+
---
6+
7+
This blog explores topics in AI research and machine learning theory.
8+
9+
Topics include:
10+
- Deep learning foundations
11+
- Optimization theory
12+
- Generalization and learning theory
13+
- Neural network architectures
14+
- Emerging research directions
15+
16+
Feel free to reach out via email for discussions.

index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
layout: home
3+
title: Home
4+
---

0 commit comments

Comments
 (0)