This repository contains the source code for my personal website and portfolio, hosted live at theoteske.github.io via GitHub Pages.
- Technical Writing & Blog: Posts covering machine learning, algorithms, and software development with support for LaTeX math formulas via MathJax and code syntax highlighting via Rouge.
- Projects Portfolio: Showcase of open-source projects and research experiments using a custom Jekyll
projectscollection. - SEO & RSS Integration: Automated sitemap generation, RSS feed (
/feed.xml), and Open Graph metadata viajekyll-seo-tag. - Developer Workflow:
Makefilecommands andjekyll-composeintegration for frictionless local drafting and building.
- Static Site Generator: Jekyll
- Hosting: GitHub Pages
- Theme: Minima with custom SCSS extensions
- Markdown Processor: Kramdown (GitHub Flavored Markdown)
- Math Engine: MathJax
- Syntax Highlighting: Rouge
.
├── _config.yml # Site configurations, metadata, and plugin settings
├── _data/ # Custom site data files
├── _includes/ # Reusable HTML snippets (headers, footers, math scripts)
├── _layouts/ # Page and post layout templates
├── _posts/ # Blog posts (formatted as YYYY-MM-DD-title.md)
├── _projects/ # Portfolio entries (custom Jekyll collection)
├── _sass/ # Custom Sass stylesheets and theme overrides
├── about.md # About page markdown source
├── index.md # Home page markdown source
├── Gemfile # Ruby dependencies for Jekyll & GitHub Pages
└── Makefile # Convenience tasks for local development and workflow
- Ruby (v3.0+)
- Bundler (
gem install bundler) - Make (optional, for simplified commands)
-
Clone the repository:
git clone https://github.com/theoteske/theoteske.github.io.git cd theoteske.github.io -
Install dependencies:
make install # or: bundle install -
Start local development server:
make serve # or: bundle exec jekyll serve --livereload --draftsOpen your browser at
http://localhost:4000.
Convenience make tasks are available to quickly scaffold new posts and projects:
-
Create a new blog post draft:
make new-post
Creates a draft file in
_drafts/with front matter preconfigured. -
Create a new project entry:
make new-project
Creates a new project file in
_projects/.
The site is automatically built and deployed by GitHub Pages whenever changes are pushed to the main branch.
To manually verify production builds locally:
make build
# or: JEKYLL_ENV=production bundle exec jekyll buildContent and source code copyright Theo Teske.