This repository contains the source for Corrado Maurini's personal website.
It is a Jekyll site with layouts in _layouts, reusable partials in _includes, styles in css/ and _sass/, posts in _posts, and bibliography data in _bibliography.
Install Ruby dependencies:
bundle installRun a local preview server:
./preview.shpreview.sh is a thin wrapper around scripts/preview.sh.
The preview script serves the site with both _config.yml and _config.local.yml.
The local override keeps preview URLs rooted at http://127.0.0.1:4000/ (empty baseurl) so links and assets work locally without production path prefixes.
If port 4000 is already in use, stop the previous server process and rerun ./preview.sh.
You can override preview behavior with environment variables:
OPEN_BROWSER=0 PREVIEW_PORT=4001 ./preview.shMost routine site updates are centralized in data files:
_data/home.yml: homepage text, links, programs, research/teaching bullets._data/navigation.yml: top navbar labels and order._data/contacts.yml: contacts page content.
For a quick map of what to edit, see CONTENT_EDITING.md.
Build the site once:
bundle exec jekyll buildFor a local-config one-shot build matching preview behavior:
bundle exec jekyll build --config _config.yml,_config.local.ymlA workflow is available at .github/workflows/publish.yml.
It builds the site on each push to source (and supports manual trigger from the Actions tab), then:
- deploys to GitHub Pages
- deploys to the LMM host via
rsyncover SSH (when LMM secrets are configured)
To enable it:
- In repository settings, open Pages.
- Set Source to GitHub Actions.
- Push to
source(or run the workflow manually).
To enable LMM deployment from Actions, set repository secrets:
LMM_SSH_PRIVATE_KEY: private key allowed to deploy on LMM hostLMM_HOST: remote host (for examplebipbip)LMM_USER: remote userLMM_SITE_PATH: destination path on remote hostLMM_SSH_PORT(optional): SSH port, default22LMM_SSH_JUMP_HOST(optional): jump host (for examplechagall)LMM_SSH_JUMP_USER(optional): user on jump hostLMM_SSH_JUMP_PORT(optional): jump host SSH port, default22
publish.sh is a thin wrapper around scripts/publish.sh.
The publish script builds the site and uploads _site/ with rsync.
It accepts environment overrides for destination and dry-run mode:
REMOTE_SITE_DEST=example:~/public_html/_site DRY_RUN=1 ./publish.shUseful overrides:
REMOTE_SSH_PORT(default:22)REMOTE_SSH_OPTS(extra SSH options, for example-o ProxyJump=...)REMOTE_SSH_JUMP_HOST(optional): jump host, for examplechagallREMOTE_SSH_JUMP_USER(optional): jump host userREMOTE_SSH_JUMP_PORT(optional): jump host SSH port, default22
Example with custom SSH port:
REMOTE_SITE_DEST=user@example.org:~/public_html/_site REMOTE_SSH_PORT=2222 ./publish.shExample via chagall jump host:
REMOTE_SITE_DEST=user@bipbip:~/public_html/_site REMOTE_SSH_JUMP_HOST=chagall REMOTE_SSH_JUMP_USER=user ./publish.shIf ../articles/ exists, it is synced as well (to REMOTE_ARTICLES_DEST).
This repository is intended to track source files only; generated output and local dependency caches should stay untracked.
MIT