The 6th Workshop on Human-AI Co-Creation with Generative Models, held at ACM IUI 2025.
- On GitHub, create a new repository for the new conference year (e.g.
2025).
https://github.com/hai-gen/2025
- Checkout the repo locally.
$ git clone git@github.com:hai-gen/2025.git- Install
rubyandjekyll(if needed).
On macOS, it seems the system installation of ruby is older and may not work with newer versions of jekyll. Follow the directions given in this guide.
ruby-installwill install arubyruntime in~/.rubies.
$ brew install chruby ruby-install
$ ruby-install ruby 3.3.5Next, add the new ruby runtime to your $PATH:
$ echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc
$ echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc
$ echo "chruby ruby-3.3.5" >> ~/.zshrc # run 'chruby' to see actual version- Install
jekyllandbundler.
$ cd 2025
$ gem install jekyll bundlerNote:
gem installwill installjekyllandbundlein~/.gem(i.e. at the user level).
Next, tell bundler to place dependnecies in vendor/bundle.
$ bundle config set --local path 'vendor/bundle'
$ bundle install- Create a new Jekyll project (note: this is only if you want to start from a clean repo state, such as in the case when we need to update dependencies like
bulma-clean-theme).
$ jekyll new . --force🤷♂️ Is
gem installhanging? You may need to change your IPv6 settings as per this blog post.
- Use
npmto manage running the project locally.
$ npm init
<set up configuration>Edit package.json to include the following line under scripts:
"scripts": {
...
"prestart": "bundle config set --local path 'vendor/bundle' && bundle install",
"start": "bundle exec jekyll serve --livereload",
...
}Here is a full example of package.json:
{
"name": "hai-gen2025",
"version": "1.0.0",
"description": "The 6th Workshop on Human-AI Co-Creation with Generative Models, held at ACM IUI 2025.",
"main": "index.js",
"scripts": {
"prestart": "bundle config set --local path 'vendor/bundle' && bundle install",
"start": "bundle exec jekyll serve --livereload",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/hai-gen/2025.git"
},
"author": "Justin Weisz <jweisz@us.ibm.com>",
"license": "MIT",
"bugs": {
"url": "https://github.com/hai-gen/2025/issues"
},
"homepage": "https://github.com/hai-gen/2025#readme"
}-
Set up GitHub Pages using GitHub Actions. There will be a default action recommended for Jekyll. It seems fine to use as is.
-
View the site: https://hai-gen.github.io/2025
-
Once you're happy, make the base
https://hai-gen.github.ioredirect to the current conference year by editingindex.htmlin thehai-gen.github.iorepository.
- Clone the repo locally if you haven't done so already.
$ git clone git@github.com:hai-gen/2025.git- Run
npm start, which will install dependencies and run the project. The URL to access the site will be shown in the console:
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
On macOS, you may get an error with eventmachine not being able to load libcrypto.1.1.dylib. To fix this:
- Make sure
opensslis installed:brew install openssl - Tell bundle to use openssl:
bundle config build.eventmachine --with-openssl-dir=/usr/local/opt/openssl@1.1 - Run
npm startand it should work. - Failing that, make a symlink of
libcrypto.1.1.dylibin theeventmachinevendor dir:
% cd vendor/bundle/ruby/2.6.0/gems/eventmachine-1.2.7/lib
% ln -s /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib .
Starting from scratch? Here are some files you will need to add or modify.
Make sure the right theme is loaded (i.e. bulma-clean-theme).
#gem "minima", "~> 2.5"
gem "bulma-clean-theme"Make sure (at least) these keys are defined in the _config.yml file.
title: HAI-GEN 2025
tagline: IUI Workshop on Human-AI Co-Creation with Generative Models
email: jweisz@us.ibm.com
description: >- # this means to ignore newlines until "baseurl:"
6th Workshop on Human-AI Co-Creation with Generative Models
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://hai-gen.github.io/2025" # the base hostname & protocol for your site, e.g. http://example.com
permalink: pretty
favicon: favicon.png
# Build settings
theme: bulma-clean-theme
plugins:
- jekyll-feed
- kramdown
livereload: true
# ignore depreciation warnings
sass:
quiet_deps: trueCheck the Bulma documentation and the Bulma Clean Theme documentation for more information on their use of CSS. At the least, make the following definitions. And yes, we need the ---\n--- at the top of the file, otherwise the CSS somehow doesn't propagate correctly into the HTML pages (although VSCode throws an error, it's safe to ignore).
---
---
// set the primary color to black; this is used for the top navbar
// keep this the same every year
$primary: #000000;
// set the text color of navbar items to be white so it's readable
$navbar-item-color: #FFFFFF;
$navbar-background-color: #222222;
// Import Main CSS file from theme
@import "main";
// override the text color on the hero image so it's readable
.hero.is-primary .title, .hero.is-primary .subtitle {
color: rgb(255, 255, 255);
}
// maintain spacing between organizer blocks
.columns:not(:last-child) {
margin-bottom: 2rem;
}This file makes the navbar appear on the top of the site.
- name: Program
link: /program/
- name: Organizers
link: /organizers/
- name: Call for Participation
link: /cfp/Make sure you have corresponding
program.html,organizers.markdown, andcfp.markdownfiles. For some reason,jekyllwasn't happy with.mdfile suffixes, so we use.markdownnow.
Want to override the display of certain pages? Take a look inside vendor/bundle/ruby/3.3.0/gems/bulma-clean-theme-1.1.0/_includes (or _layouts), which has the html templates used to build out different kinds of pages. To override any of these, copy the file into _includes (or _layouts) at the root level of the project and make the edits there.
For example, to remove the "Home" link from the top navbar, copy header.html into _includes and comment out the following line, as so:
<!-- <a href="{{ site.baseurl }}/" class="navbar-item {% if page.url == "/" %}is-active{% endif %}">Home</a> -->Jekyll will use anything defined locally in _includes and _layouts to override files included in the bulma package.
Override this file and make the sidebar include key-dates.html.
Change this:
{% include latest-posts.html %}To this:
{% include key-dates.html %}Include this snippet in the metadata for each page (assuming img/hero.png is the path to the hero image).
hero_image: img/hero.png
Note: On pages one level down in the nav hierarchy (e.g.
/cfpor/program), the image path needs to be relative to the site root. For example,cfp.markdownincludes the hero image ashero_image: ../img/hero.png.