This guide provides essential information for maintaining and developing this Jekyll-based website.
Jekyll is a static site generator. It takes your content (written in Markdown), applies layouts and includes (using the Liquid templating engine), and generates a complete, static website (HTML, CSS, JS) that can be served by almost any web server.
Key Concepts:
_config.yml: The main configuration file for your Jekyll site. Contains site-wide settings, theme information, plugin configurations, and more._posts/: Blog posts. Filenames must follow YYYY-MM-DD-title.md._pages/: Static pages (e.g., About, Contact)._projects/, _news/, _eigenlucy/): Custom content types. Each collection is a folder prefixed with an underscore and defined in _config.yml. They allow grouping similar content (like projects or specialized blog posts)._layouts/: Defines the basic HTML structure for different types of pages (e.g., default.html, post.html)._includes/: Reusable snippets of HTML/Liquid code that can be included in layouts and pages.---) that defines metadata like layout, title, date, permalink, and custom variables._sass/: Contains SASS (Syntactically Awesome Stylesheets) files. SASS is a CSS preprocessor that adds features like variables, nesting, and mixins. These files are compiled into standard CSS. For this al-folio based theme, _themes.scss and _variables.scss are particularly important for aesthetic customization.assets/): Static files like images, PDFs, and global CSS/JS files.Official Documentation: https://jekyllrb.com/docs/
This site is developed on EndeavourOS/Arch Linux.
sudo pacman -S rubygem --version to check.sudo pacman -S ruby-bundler (or gem install bundler)Gemfile: Lists all direct gem dependencies for the project.Gemfile.lock: Records the exact versions of all gems (direct and indirect) that were last successfully used. Commit this file to your repository.bundle install: Installs all gems specified in Gemfile (and Gemfile.lock if present). Run this after cloning the repo or when Gemfile changes.bundle exec <command>: Crucial! Always prefix Jekyll commands (and other gem commands like rake) with bundle exec. This ensures you are using the gem versions defined in your project’s Gemfile.lock, not system-wide gems.bundle update <gemname>: Updates a specific gem and its dependencies.bundle update: Updates all gems according to Gemfile. Use with caution, test thoroughly after.To view the site locally:
cd /home/lucy/eigenlucy.github.iobundle exec jekyll serve --livereload --port 4002
--livereload: Automatically refreshes the browser when you save changes to files.--port 4002: Specifies the port to run the server on.To build the site (generates static files into _site/):
bundle exec jekyll build
This site is deployed using GitHub Pages.
_config.yml, Markdown files, Gemfile, etc.) to a specific branch (e.g., main or master), and GitHub Actions (or an older internal system) builds the Jekyll site and deploys it._config.yml settings for GitHub Pages:
url: The main URL of your site (e.g., https://username.github.io).baseurl: If your site is served from a subdirectory (e.g., https://username.github.io/repository-name), this should be set to /repository-name. If served from the root of the domain, it’s often an empty string "" or /. Check your site’s specific configuration._site/ content, or use a custom GitHub Actions workflow to build the site with your specific gems.Official Documentation: https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll
This site is based on the al-folio theme, which has several conventions:
_projects/: For project pages._news/: For news items, often displayed on the homepage._eigenlucy/: Custom collection for specific blog posts not on the main page. Ensure this is correctly configured in _config.yml if you want Jekyll to process it as a collection with its own permalinks, layouts, etc._data/):
cv.yml (CV data) and repositories.yml (GitHub repo info) can be used to store structured data that is then pulled into pages/layouts._bibliography/papers.bib):
jekyll-scholar plugin to process BibTeX files and display publications._sass/):
_themes.scss and _variables.scss are key for visual customization.change_log_for_robots.md: Summarizes substantial changes, updates, and errors encountered during site development.robot_reflections.md: Contains broader reflections on site aesthetics, potential improvements, and thematic consistency.CUSTOMIZE.md: Original (now partially outdated) guide for customizing the al-folio theme. Still a useful reference for theme basics.This guide is a living document. Please update it with any new, relevant information as you work on the site.