FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

davisethan/davisethan.github.io · GitHub

Repository navigation

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

davisethan.github.io

The personal research site of Ethan Davis: MS thesis, future research directions, additional research, teaching and mentoring, and links to the CV and resume.

Published at https://davisethan.github.io/, built by GitHub Pages from master on every push. There is no build step to run — the site is plain Jekyll and GitHub builds it.

What is where

Path What it is
index.md The whole site. One page, with a hand-maintained table of contents and a reference list per section.
_layouts/default.html Page shell, customized from the Cayman theme.
assets/css/style.scss Site styles, imported on top of the theme.
assets/images/ Figures and the favicon.
assets/files/ CV and resume.
_config.yml Jekyll configuration.

Everything else Cayman provides comes from the jekyll-theme-cayman gem rather than living in this repository.

Where an asset belongs

Anything citable — thesis, papers, posters, datasets, code releases — is deposited on Zenodo and linked by DOI, not committed here. Anything load-bearing for the page — the CV, the resume, an embedded figure — stays in the repository, up to roughly 5 MB per asset counting expected revisions. Anything that is neither, such as a certificate scan, is a line on the CV and is not hosted at all.

The reason is that binaries do not delta-compress, so every revision is stored close to in full, forever, in every clone. Deleting one later cleans the working tree and the published site, not the clone size. Git LFS is not an escape hatch either: Pages does not resolve LFS pointers, so visitors would download the pointer file instead of the PDF.

Previewing locally

GitHub Pages builds the published site, so this is only for checking a change before pushing.

make serve          # http://localhost:4000
make serve PORT=4001

Jekyll runs in a ruby:3.3 container, so no Ruby is installed on the host. Gems are cached in a Docker volume, so only the first run is slow, and the server takes 20–40 seconds to come up — a connection error before then is normal.

The Gemfile affects local previews and CI only. This repository uses a legacy Pages build, so GitHub builds with its own pinned gem set and ignores it.

Checks

Markdown is spell checked with cspell and terminology checked with textlint. The built site is link checked with html-proofer, which is the only check that can see a broken anchor — heading IDs are generated by kramdown, so they do not exist until the site is built.

make                # list available targets
make lint           # spell + prose
make spell          # spelling only
make spell-words    # list unknown words to triage
make spell-version  # print the installed cspell version
make prose          # terminology only
make prose-fix      # auto-apply terminology fixes
make build          # build the site to _site/
make links          # build, then check internal links and anchors
make links-external # build, then also check external links (slow)
make install        # install tooling from the lockfile
make clean          # remove node_modules, _site, .jekyll-cache

Four workflows run these in CI, each calling a Makefile target rather than repeating the command:

Workflow Target Trigger
spellcheck.yml make spell pull request, push
prose.yml make prose pull request, push
links.yml make links pull request, push
links-external.yml make links-external weekly schedule, manual

External links are checked on a schedule rather than per pull request, because hosts outside this repository fail for reasons unrelated to it — Medium returns 403 to automated requests, and Zenodo is slow enough to need a raised timeout. A check that blocks merges for those reasons gets switched off. Do not add htmlproofer-external to the required status checks: it never runs on a pull request, so it would block every merge waiting for a result that cannot arrive.

CI has Ruby natively, so it overrides one variable and the rest follow: make links BUNDLE=bundle.

Node targets install tooling automatically when node_modules/ is missing or the lockfile is newer, so a fresh clone needs no setup step. npm run lint also works — the npm scripts delegate to make. The Ruby targets need Docker running.

When the spell check flags a word, fix the prose if it is a real misspelling, or add the word to the words: list in cspell.config.yaml under the matching comment group if it is a valid term. Do not silence a real error by whitelisting it. When the prose check flags a term, make prose-fix applies every terminology fix; review the diff before committing, since it edits published prose.

Versions are pinned exactly in package.json, without a caret, because a dictionary or rule change in a new release can fail a build that has no content changes.

Credits and license

The theme is Cayman, released under CC0 1.0. _sass/, _layouts/, and _includes/ derive from it, and this repository began as a fork of it.

LICENSE is Cayman's CC0 and covers that theme code. It does not cover the writing, figures, CV, or resume in this repository.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages


Back | FazBrowse Home | New Git URL