This is the source code for a website served at https://seagl.org.
It uses Jekyll as a static site generator with GitHub Pages.
The site is automatically rendered whenever code is pushed to the shared repository at GitHub.
Basically, the steps to update the site (to publish a new blog post, for instance), are:
There are instructions for each of these steps below. The instructions assume someone with less git/GitHub/technical experience is performing the work. Those with more experience can extrapolate accordingly. :-)
While you probably can work directly on this repository, best practices are that you not. Instead, you can fork or clone the repo and then make your changes on that copy. This allows for testing before making changes live and reduces the risk of a poorly-formatted or -worded change escaping into the world.
To fork the repository:
Voila! That's all there is to it.
If you are adding a new blog post, please follow these filename rules:
_posts
directory.YYYY-MM-DD
format. This is very important as it controls the order in which the website displays blog posts.
--future
when testing your changes. At the moment, it is also required that you trigger a rebuild of the site on or after the scheduled date in order for the post to appear. This can be done with: git commit -m 'rebuild pages' --allow-empty && git push origin main
or by making any actual change to the site.-
) and then a dash-delimited title for the post. This title isn't displayed. It's just to name the file. Please make it brief but descriptive..md
filename extension to denote that the post is composed in Markdown format. (and please only compose posts using Markdown)By these rules, a blog post announcing the opening of the 2017 CFP could have a filename of:
2017-06-19-CFP-open.md
Please also add the following at the top of your file:
---
layout: post
title: 'Example Title'
status: publish
type: post
published: true
categories: news
tags: '2013'
---
Set title
to the title of your blog post and edit tags
to include the conference year that the post is associated with (empty if none). Please leave the rest of the values as-is.
For the actual file content, you can make your changes either in the GitHub web interface or on your local machine.
_posts
).Create a new file
Create a new file
Commit changes
form below the editing interface.
#
) followed by an issue number (#74
). This will automatically be linked in the pull request, which is really handy.TBD (assumption is those using git on their local machines already know this; will fill in later)
Please test-drive all changes locally before pushing to GitHub.
Starting a local development server will make your copy of the site available at http://localhost:4000. There are a few ways to run the server. Take your pick!
Dependencies:
One-time setup:
bundle install
Start the server:
bundle exec jekyll serve --watch
To preview future-dated and unpublished posts, add --future --unpublished
to the above command.
Dependencies:
One-time setup:
docker build --tag 'seagldev' '.'
Start the server:
docker run --rm --interactive --tty --publish '4000:4000' --volume "$PWD:/usr/src/app" 'seagldev'
To preview future-dated and unpublished posts, add --future --unpublished
at the end of the above command.
You can either send a PR in the GitHub interface or from your local machine.
Pull requests
tab.New pull request button
.Create pull request
.#
) followed by an issue number (#74
). This will automatically be linked in the pull request, which is really handy.[Allow edits from maintainers](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork)
so that other team members can make edits, if necessary.Create pull request
.TBD (assumption is those using git on their local machines already know this; will fill in later)
Now someone (perhaps you, if you have that level of access to the repo) must review and then merge your pull request.
Once your pull request is merged, it will go live on the website.
NOTA BENE: The merge itself will not trigger a site rebuild. To rebuild the site, you need to push an empty commit like so:
git commit --allow-empty -m "Rebuild the site, please" && git push
Add your image to the img/posts/
directory, then use the following Markdown:
![Example description](/img/posts/example.jpg)
Tips:
To align the image to the side, add the align-left
or align-right
class:
![Example description](/img/posts/example.jpg){:.align-left}
For the sake of page load times, resize images to a reasonable size before using them in a post.
Past conferences are statically archived as Jekyll collections:
To create the archive of a given year, first import the data from the schedule—
bundle exec rake import[2020]
—then edit the archive files by hand if any corrections are necessary.