Terminal-themed site powered by Jekyll (GitHub Pages' built-in engine). The look is defined once; you publish by writing markdown.
- Copy everything in this
site/folder into the root of youreipoverflow/eipoverflow.github.iorepo (the files must be at the top level, not inside asite/subfolder). - Delete
.nojekyllif it exists — Jekyll must run for posts to work. - In
_config.yml, remove any oldtheme:orremote_theme:line you had from before (this site ships its own layouts). - Commit & push to the default branch (
main). - Wait ~1 minute, open https://eipoverflow.github.io/ (hard-refresh).
GitHub builds the site automatically on every push. No Settings to change for
a username.github.io repo.
Add a file to _posts/ named YYYY-MM-DD-title.md:
---
title: "My new finding"
category: research # research | exploits | teaching
tags: [heap, glibc] # optional
description: "One line shown in the terminal listing."
---
Your content in plain markdown...Commit it. It automatically appears when someone types cat research
in the shell, and gets its own page at /research/2025/my-new-finding/.
That's it — no HTML.
Use the plural categories: field with a list. The first item is the
top-level section; everything after is a subfolder:
categories: [research, heap] # -> research/heap/
categories: [exploits, iot] # -> exploits/iot/
categories: [research, web, csp] # -> research/web/csp/ (any depth works)The post's URL follows the path automatically
(/research/heap/2025/my-title/), and the shell treats the sections like
folders:
lslists the top-level sectionscat researchshows its subfolders (heap/,web/) plus any loose postscat research/heaplists the posts in that subfolder- subfolder names in the output are clickable
Top-level sections shown by ls are controlled by the TOP array near the
top of index.html — edit that list to rename or reorder them. Subfolders are
discovered automatically from your posts, so you never register them anywhere.
- Colors and CRT effects:
assets/css/terminal.css - Prompt name + site title:
_config.yml(shell.user,shell.host,title) - ASCII banner,
whoami, andcontact: top ofindex.html(markedEDIT ME) - Page chrome shared by every page:
_layouts/default.html - How a post page renders:
_layouts/post.html
gem install bundler jekyll
jekyll serve # then open http://localhost:4000