This project requires Node v20 or greater.
- Run
npm install
to install Node packages.
This project uses Liquid for templating (except dates, see below). As such, you may wish to install syntax highlighting for Liquid in your text editor.
Build and watch for local changes by running:
npm run serve
This opens a local server at http://localhost:8080/
and watches for changes to the source files.
The conference can be in 3 separate phases, controlled under site.json
:
landing
: The conference site consists of a landing page.active
: The conference site is live and registration may occur.archived
: The conference is over.
This impacts the rendering of the homepage and display of content in various locations.
NOTE: Various pages are still compiled when in landing
mode, but are not linked to from the homepage.
Reference:
src/index.html
src/_includes/home/
Dates are formatted with date-fns, due to some wonkiness with Eleventy's date formatting. You can use the formatDateTime
shortcode in your templates to format dates. Note, that this will take into consideration the timezone defined in site.json
, under timezone
. Example:
{{ post.data.published_datetime | formatDateTime: "MMMM d, yyyy" }}
- Presenter images are created at
/presenters/{{ slug }}/
- Session images are created at
/{{ talks,tutorials }}/{{ slug }}/social/
The graphics that are used to build these are stored in src/assets/img/theme/social-cards
. They are built with default-social.html
.
- When adding images, if they are below the "fold", consider adding a
loading="lazy"
attribute to the image tag. - When adding images, consider adding an
alt
attribute to the image tag. - Keep copy short and to the point. The site is most likely scanned, not read.
- Make sure to keep the styleguide up-to-date with any new components or styles.
The styleguide lives at /styleguide/
(respectively styleguide.html
). The guide is built from content within src/_content/styleguide/
. Each HTML page represents a section. Sections can be ordered with order
. Each section can have a description
.
When using code samples, be sure to use {% capture code %}
to capture sample and pass it to the code-snippet.html
include like so:
{% include "code-snippet.html", code:code, lang:'html' %}
- Copy
durham.djangocon.us
to a new repo. - Check
src/_data/site.json
for the current year and any starting information and update as necessary. - Update CNAME with the correct domain (usually
YYYY.djangocon.us
). - Update
CODE_OF_CONDUCT.md
with the correct year. - Update content within
src/_includes/home/landing-conf-home.html
to reflect hotel information, year, etc. - Deploy the site to the new domain via GH pages.