The StARLinG Lab website template (starling.utdallas.edu) is a Jekyll-based academic research lab site that generates a static HTML website from YAML data files and Markdown pages, built on the minimal-mistakes theme and maintained by Alexander L. Hayes and Harsha Kokel. The repository is the development source for the StARLinG Lab's public webpage at UT Dallas.
What is the StARLinG Lab website template?
This is a development repository for the StARLinG Lab's webpage, a static site generated with Jekyll, jQuery, and the minimal-mistakes Jekyll theme. It takes structured data — publications in /_data/publication.yml, lab member profiles in /_data/authors.yml, and navigation in /_data/_navigation.yml — and produces a complete static site in a _site folder that is published to an Apache server. The project is licensed under Creative Commons Attribution 4.0 International, while the underlying minimal-mistakes theme and Jekyll themselves are MIT-licensed.
Key Features
- Jekyll static generation — Runs with
bundle exec jekyll servefor local development and outputs a_sitefolder for production withJEKYLL_ENV=production bundle exec jekyll build. - minimal-mistakes theme — Built on the widely used Jekyll theme by Michael Rose, which provides the visual layout and components out of the box.
- YAML-driven content management — Publication, author, and navigation data live in YAML files under
/_data/, so content edits don't require touching HTML. - News and gallery sections — News items are added as files in
/_news/, and gallery photos are listed in/_pages/photo-gallery.md. - SemVer release workflow — The README documents tagging releases (e.g.
v1.0.7) and building a production version, then deploying by copying the_sitefolder to/var/wwwon the target server. - jQuery homepage enhancement — A random student loader on the homepage uses jQuery and JSON, based on a technique from James W. Thorne.
Who is it for?
- Academic lab maintainers — Graduate students or staff responsible for a research group's website who need a low-maintenance static site that separates content (YAML/Markdown) from presentation.
- Jekyll users — Developers seeking a working example of minimal-mistakes configured with data files, custom navigation, a news collection, and a production build/deploy pipeline.
- University departments at UT Dallas — The template is specific to the StARLinG Lab but can be adapted for any lab that needs a similar online presence on Apache hosting.
What can you do with this template?
- Lab members: Edit
/_data/authors.ymlto add or update member bios, photos, and links; the homepage's random student loader reflects the data automatically. - Researchers: Append new entries to
/_data/publication.ymlto keep the publications list current without rebuilding page templates. - Site deployers: Follow the documented scp and sudo steps to move a built
_sitefolder to the server's/var/wwwdirectory, backing up the previous version first.
How does it work?
The quick-start guide installs Ruby and RubyGems, clones the repository, runs bundle install and then bundle exec jekyll serve, and views the site at 127.0.0.1:4000. For production, maintainers tag the repo with a SemVer version, build with Jekyll, and deploy the resulting _site folder over SSH to the starling.utdallas.edu Apache server.
FAQ
Is this template free to use?
The repository is licensed under a Creative Commons Attribution 4.0 International License, so it is free to use with attribution. The integrated minimal-mistakes theme and Jekyll are distributed under the MIT License, and the StARLinG logo is used with permission from designer Gautam Kunapuli.
How do I add a new news item?
Create a new file inside the /_news/ directory. The README identifies this as the single location for news updates, and Jekyll will pick it up on the next build.
What data files power the site?
Publications are stored in /_data/publication.yml, lab member details in /_data/authors.yml, and top navigation in /_data/_navigation.yml. Editing these YAML files is the intended way to update site content.
How do I run the site locally?
Install Ruby and RubyGems, clone the repository, then run gem install jekyll bundler, bundle install, and bundle exec jekyll serve. The site is available at 127.0.0.1:4000.
How is a production build created?
Make sure your branch is even with master, tag the current state with a SemVer version like v1.0.7, then run JEKYLL_ENV=production bundle exec jekyll build. The generated _site folder is deployed to the Apache server.




