N. E. Karantanis — Site Docs View live site ↗
Documentation

File Reference

A quick map of everything in the repo — what it is and where to look for it.

Pages

Path What it is
index.html Home page — hero, impact stats, pillars, featured roles, education strip, CTA
About.html CV page — four jump-linked sections (Leadership, Digital, Research, Education)
Blog.html Blog listing — featured post, filterable/card-list-toggleable grid
_posts/*.md Individual blog posts (rendered through _layouts/post.html)
Publications.html Research listing — header, “By the Numbers” stats, filterable/card-list-toggleable list
_publications/*.md Individual publication pages (rendered through _layouts/publication.html)
Contact.html Contact form (Formspree)
Privacy.html Analytics/cookies policy page

Templates & partials

Path What it is
_layouts/default.html Base HTML shell used by every page: fonts, stylesheets, nav, footer, scripts, the site-wide Umami analytics tag, and a sitewide Person JSON-LD block (name, alternate names, social profile links) for search-engine entity matching
_layouts/post.html Wraps a blog post’s Markdown body with the header/CTA structure. The header also computes a reading-time estimate at build time (word count ÷ 200wpm, ceil‘d, minimum 1) and, if site.pageviews.worker_url is set, adds a #postReads element that site.js fills in client-side
_layouts/publication.html Wraps a publication’s Markdown body with the .pub-shell sticky-TOC + article structure
_layouts/docs.html This documentation site’s layout — sidebar nav, on-page TOC, docs styling
_includes/nav.html The fixed top nav bar
_includes/footer.html Site footer — links every nav item, plus RSS
_includes/post-icon.html Liquid case/when — renders one of 41 named icons as inline SVG path data
_includes/role-company.html Renders one company + its positions on the About page
_includes/contour-lines.html Drifting SVG contour-line background used on dotted headers/sections
_includes/cusdis.html Cusdis comments widget — included at the end of _layouts/post.html and _layouts/publication.html only; renders nothing until site.cusdis.app_id is set. Takes a closing_wave param (used by post.html only) to draw the light-to-dark wave divider into the CTA section that follows, since inserting comments between the article and CTA displaced the wave that used to live there
_includes/docs-nav.html The docs sidebar’s link list

Data

Path What it is
_data/roles.yml All career history shown on the About page — companies, each with a list of positions
_config.yml Jekyll site config — permalink structure, Markdown settings, layout defaults

Theme

Path What it is
css/custom.css The entire hand-written theme: palette, type scale, utilities, every component, every animation keyframe
css/bootstrap.min.css Bootstrap, used only for its grid and a handful of layout utility classes
js/site.js Every animated/interactive behavior — see JavaScript
js/bootstrap.bundle.min.js Bootstrap’s JS, used for the mobile nav’s collapse behavior

CMS (Decap)

Path What it is
admin/index.html The CMS entry point (/admin) — loads Decap CMS (pinned to 3.14.1) plus the two custom scripts below, and the pinned “Umami ↗” / “Cusdis ↗” / “Docs ↗” / “View site ↗” buttons
admin/config.yml Collections (Blog Posts, Publications, About Page), fields, auth backend, editorial workflow settings, site_url (powers Decap’s per-entry live-page preview link) — see CMS Guide
admin/icon-picker.js Custom icon-picker widget — the clickable icon grid, shared by posts, publications, and career roles
admin/preview.js Real-stylesheet live preview for the post editor

External services (not part of this repo)

Two small Cloudflare Workers this site depends on but doesn’t contain the code for — each holds a credential that can’t safely live in this repo’s client-side JS, and exposes only a narrow, purpose-built endpoint back to the site:

Worker What it does
decap-cms-auth (github.com/Eneekay/decap-cms-auth) Relays the GitHub OAuth handshake for Decap CMS logins — see the comment at the top of admin/config.yml
umami-pageviews-proxy Reads Umami’s pageview data server-side and answers “how many times has this URL been viewed” for site.js’s read-count fetch, without exposing the Umami login used to query it. Its URL is set as site.pageviews.worker_url in _config.yml

This documentation site

Path What it is
docs/index.md Overview
docs/design-system.md Colors, typography, buttons, reveal utilities
docs/sections-components.md Backgrounds, blobs, wave dividers, cards, and how they combine
docs/javascript.md Every system in site.js, explained
docs/cms-guide.md How to use the Decap CMS admin panel
docs/assets/docs.css Styling for this docs site specifically (not the live site’s theme)
docs/assets/docs.js On-page TOC generation, mobile nav drawer, code-block copy buttons
docs/assets/screenshots/ Screenshots embedded throughout these pages

Misc

Path What it is
uploads/ Media uploaded through the CMS (logos, post images, publication PDFs)
LICENSE CC BY 4.0 for both code and content, with an exception carved out for published-journal research PDFs under _publications/uploads/publications (those remain under their original publisher’s copyright/license)
robots.txt Crawler rules
sitemap.xml / feed.xml Generated by Jekyll at build time, not source files — no corresponding file to hand-edit in the repo
CNAME GitHub Pages custom domain config
favicon*.png / favicon.svg / apple-touch-icon.png Site favicons
.github/workflows/jekyll.yml GitHub Actions workflow that builds and deploys the site on push to main