Skip to content

Commit bc90f5b

Browse files
committed
developer preview pages
1 parent 0b84686 commit bc90f5b

File tree

11 files changed

+299
-283
lines changed

11 files changed

+299
-283
lines changed

CLAUDE.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,12 @@ Look for `THEME-X` comments throughout codebase for customization points.
167167
1. Copy previous year's repo (e.g., `durham.djangocon.us`)
168168
2. Update `src/_data/site.json`: `conf_year`, `domain`, email addresses, external links
169169
3. Update `CNAME` with new domain (e.g., `2026.djangocon.us`)
170-
4. Update `CODE_OF_CONDUCT.md` year
171170
5. Update landing page content: `src/_includes/home/landing-conf-home.html`
172171
6. Set `"phase": "landing"` in `site.json` until ready to launch full site
173172
7. Deploy via GitHub Pages
174173

175174
## Important Notes
176175

177-
- Liquid syntax highlighting recommended: [VS Code extension](https://marketplace.visualstudio.com/items?itemName=neilding.language-liquid)
178176
- Images below fold should include `loading="lazy"`
179177
- Always add `alt` attributes to images
180178
- Draft pages: Add `draft: true` to front matter to exclude from build

eleventy.config.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,13 @@ module.exports = (config) => {
9999
return collection.filter(item => item.data.presenter_slugs.includes(slug));
100100
});
101101

102-
// Only build pages that aren't marked as drafts, usage below
103-
// draft: true
102+
// Only build pages that aren't marked as drafts in production
103+
// In development mode, draft pages are built for preview purposes
104+
// Usage: draft: true
104105
config.addGlobalData("eleventyComputed.permalink", function() {
105106
return (data) => {
106-
if (data.draft) {
107+
// In production, exclude draft pages
108+
if (data.draft && process.env.NODE_ENV === 'production') {
107109
return false;
108110
}
109111

src/_data/site.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"domain": "https://2025.djangocon.us",
33
"timezone": "America/Chicago",
44
"conf_year": 2025,
5-
"phase": "archived",
5+
"phase": "active",
66
"conduct_email": "conduct@djangocon.us",
77
"contact_us_email": "hello@djangocon.us",
88
"opportunity_grants_email": "grants@djangocon.us",
@@ -20,8 +20,8 @@
2020
"slack_link": "",
2121
"sponsorship_prospectus": "https://drive.google.com/file/d/1VCLBvvEu2erQ3_k0f_Ldpo-8alKw_4BR/view?usp=sharing",
2222
"ticket_link": "https://ti.to/defna/djangocon-us-2025",
23-
"photos_link": "",
24-
"youtube_link": "",
23+
"photos_link": "https://www.flickr.com/photos/djangocon/albums/72177720328945576",
24+
"youtube_link": "https://www.youtube.com/playlist?list=PL2NFhrDSOxgUSZVGkmbMhUpaaZ1ORfpCl",
2525

2626
"social": {
2727
"flickr": "https://flickr.com/photos/djangocon/albums/",

src/_includes/header.html

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
{% if site.banner %}
1+
{% comment %}
2+
Unified header component for all conference phases.
3+
Supports optional `preview_phase` variable for phase preview pages.
4+
{% endcomment %}
5+
6+
{% assign current_phase = preview_phase | default: site.phase %}
7+
8+
{% if current_phase == "active" and site.banner %}
29
<aside class="fixed lg:relative lg:py-6 text-center justify-around leading-tight h-[40px] xl:text-lg z-[200] top-0 block bg-pink text-white flex items-center justify-center px-4 w-full">
310
<a href="/schedule" class="hidden text-white no-underline md:inline-flex">
411
🎉 &nbsp; <strong class="underline">Welcome to Chicago!</strong> &nbsp; 🎉
@@ -9,29 +16,31 @@
916
</aside>
1017
{% endif %}
1118

12-
<header id="SiteHeader" class="lg:top-0 site-header is-closed lg:is-open">
13-
<div class="wrapper">
14-
<nav class="flex flex-wrap" role="navigation">
15-
<div class="flex items-center justify-between w-full lg:max-w-max lg:flex-1">
16-
<a
17-
href="/"
18-
aria-label="Go to homepage">
19-
<img src="/assets/img/theme/logo.svg" alt="DjangoCon US" class="h-16 h-11 xl:h-24">
20-
</a>
21-
<button id="NavToggler" class="site-nav-toggler is-closed">
22-
<span aria-hidden="true" class="hidden xs:block">Menu</span>
23-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 icon-menu" aria-hidden="true">
24-
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
25-
</svg>
26-
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 icon-close" aria-hidden="true">
27-
<path d="M6 6L17.6673 17.6673" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
28-
<path d="M6 18L17.6673 6.33274" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
29-
</svg>
30-
<span class="sr-only">Toggle navigation</span>
31-
</button>
32-
</div>
33-
34-
{% include "nav.html" %}
35-
</nav>
36-
</div>
37-
</header>
19+
<header id="SiteHeader" class="{% if current_phase == 'landing' %}fixed top-0 z-40 w-full py-4 bg-white lg:py-6 lg:relative{% elsif current_phase == 'archived' %}absolute top-0 z-40 w-full py-4 lg:py-6{% else %}lg:top-0 site-header is-closed lg:is-open{% endif %}">
20+
<div class="wrapper">
21+
<nav class="flex flex-wrap" role="navigation">
22+
<div class="flex items-center justify-between w-full lg:max-w-max lg:flex-1">
23+
<a href="/" aria-label="Go to homepage"{% if current_phase == 'archived' %} class="fill-white"{% endif %}>
24+
<img
25+
src="/assets/img/theme/{% if current_phase == 'archived' %}logo-recap.svg{% else %}logo.svg{% endif %}"
26+
alt="DjangoCon US"
27+
class="{% if current_phase == 'landing' %}h-12 lg:h-20{% else %}h-16 h-11 xl:h-24{% endif %}">
28+
</a>
29+
<button id="NavToggler" class="{% if current_phase == 'landing' %}lg:hidden{% elsif current_phase == 'archived' %}p-2 bg-white lg:hidden{% else %}site-nav-toggler is-closed{% endif %}">
30+
{% if current_phase == 'active' %}<span aria-hidden="true" class="hidden xs:block">Menu</span>{% endif %}
31+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8{% if current_phase == 'active' %} icon-menu{% endif %}" aria-hidden="true">
32+
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
33+
</svg>
34+
{% if current_phase == 'active' %}
35+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 icon-close" aria-hidden="true">
36+
<path d="M6 6L17.6673 17.6673" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
37+
<path d="M6 18L17.6673 6.33274" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
38+
</svg>
39+
{% endif %}
40+
<span class="sr-only">Toggle navigation</span>
41+
</button>
42+
</div>
43+
{% include "nav.html" %}
44+
</nav>
45+
</div>
46+
</header>
Lines changed: 67 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -1,171 +1,92 @@
1-
<div class="pt-2 xl:pb-10 bg-cream">
1+
<div class="pt-0 lg:pt-8 block-container">
22
<div class="wrapper">
3-
<div class="flex flex-col my-4 gap-8 lg:flex-row">
4-
<section class="mx-auto 0 pb-4 text-center lg:flex-1 max-w-4xl">
5-
<h1 class="mb-4 text-3xl font-extrabold leading-tight md:text-4xl lg:text-5xl">
6-
Join us for five days of inspiration, education, and networking
7-
</h1>
8-
9-
<p class="mb-4 text-xl md:text-2xl lg:text-3xl">
10-
September 8-12th, 2025
11-
</p>
12-
13-
<a
14-
href="https://www.ihg.com/voco/hotels/us/en/chicago/chiwp/hoteldetail"
15-
target="_blank"
16-
class="mb-6 text-xl md:text-2xl underline-offset-4 decoration-[2px] lg:text-3xl">voco Chicago Downtown</a>
17-
18-
<p class="mb-6 text-xl md:text-2xl">
19-
Chicago, Illinois
20-
</p>
21-
22-
<div class="button-group justify-center">
23-
<a class="button w-full sm:w-auto text-lg" href="{{ site.ticket_link }}">Buy Tickets</a>
24-
<a class="button w-full sm:w-auto text-lg" href="{{ site.hotel_reservation_link }}">Book a Hotel Room</a>
25-
26-
{% comment %}
27-
<a class="button" href="/schedule/">Conference Schedule</a>
28-
{% endcomment %}
29-
</div>
30-
<div class="button-group justify-center p-5">
31-
<!-- <a
32-
class="font-bold"
33-
href="{{ site.hotel_reservation_link }}"
34-
>Book a Room</a> -->
35-
<a
36-
class="font-bold"
37-
href="{{ site.mailing_list }}">Join Mailing List</a>
38-
</div>
39-
</section>
40-
</div>
41-
</div>
42-
</div>
43-
44-
<div class=" block-container">
45-
<div class="wrapper">
46-
<div class="grid-1-2">
47-
<section class="flex flex-col items-start justify-center mb-6 sm:mb-0">
48-
<h2 class="mb-4 text-3xl font-bold leading-relaxed font-heading lg:text-5xl">For Django fans<br/> of all&nbsp;levels</h2>
3+
<div class="grid-cols-2 gap-8 text-center lg:grid lg:text-left align-center">
4+
<section class="my-6">
5+
<h2 class="mb-4 text-3xl font-bold text-center lg:text-left lg:leading-relaxed font-heading lg:text-4xl">For Djangonauts of all levels</h2>
496
<p class="mb-6 text-xl lg:text-2xl">
507
DjangoCon US has something for everyone, from the person who develops Django applications for a living to the person who just tinkers in their spare time.
518
</p>
52-
<a class="button" href="/about">About DjangoCon US</a>
9+
<a class="w-full text-xl button sm:w-auto" href="/about">About DjangoCon US</a>
5310
</section>
54-
<div>
55-
<ul class="space-y-10">
56-
<li>
57-
{%
58-
include 'date-card.html',
59-
month:"Sep",
60-
days:"8-10",
61-
heading:"Talks: Dozens of talks chosen by the community"
62-
%}
63-
</li>
64-
<li>
65-
{%
66-
include 'date-card.html',
67-
month:"Sep",
68-
days:"11-12",
69-
heading:"Sprints: Team up to work on Django!"
70-
%}
71-
</li>
72-
</ul>
73-
</div>
11+
12+
<ul class="items-center self-end gap-6 py-4 text-left lg:gap-0 md:flex lg:flex-col lg:items-start">
13+
<li>
14+
{%
15+
include 'date-card.html',
16+
month:"Sep",
17+
days:"8-10",
18+
heading:"Talks: Dozens of talks chosen by the community"
19+
%}
20+
</li>
21+
<li>
22+
{%
23+
include 'date-card.html',
24+
month:"Sep",
25+
days:"11-12",
26+
heading:"Sprints: Team up to work on Django!"
27+
%}
28+
</li>
29+
</ul>
7430
</div>
7531
</div>
7632
</div>
7733

78-
<div class="block-container bg-white">
79-
<div class="wrapper">
80-
<h2 class="mb-8 text-2xl font-bold text-center font-heading lg:text-5xl max-w-[20ch] mx-auto">A friendly conference for a friendly community</h2>
81-
<div class="space-y-8">
82-
<section>
83-
<h2 class="mb-4 text-2xl font-bold font-heading lg:text-4xl">Latest News</h2>
84-
85-
<ol class="divide-y" reversed>
86-
{%- for post in collections.posts reversed -%}
87-
{% unless post.hidden or post.category == 'talk' or post.category == 'tutorial' %}
88-
{% if forloop.index0 < 3 %}
89-
<li>
90-
<article class="py-4">
91-
<time
92-
class="mb-2 text-sm tracking-wide text-gray-600 uppercase"
93-
datetime="{{ post.date }}">{{ post.data.published_datetime | formatDateTime: "MMMM d, yyyy" }}</time>
94-
<h3 class="text-xl font-semibold font-heading lg:text-2xl"><a href="{{ post.url }}" class="reverse-link">{{ post.data.title | escape }}</a></h3>
95-
</article>
96-
</li>
97-
{% endif %}
98-
{% endunless %}
99-
{%- endfor -%}
100-
</ol>
101-
102-
<a class="button" href="/news/">Read more news</a>
103-
</section>
104-
105-
<div class="grid gap-8 lg:grid-cols-3 lg:gap-16">
106-
<section class="relative flex flex-col gap-4 p-6 bg-white lg:pt-10 card-effect-1">
107-
<img src="/assets/img/theme/icons/People.svg" alt="Two people. One person is standing slightly in front of the other." class="w-16 h-16 icon" />
108-
<h3 class="text-lg font-bold lg:text-2xl font-heading">Code of Conduct</h3>
109-
<p class="lg:text-lg">Participants are expected to be respectful to each other. For details on our expectations, and who to contact if you need assistance, see our <strong><a href="/conduct/" class="link">Code of Conduct</a></strong>.</p>
110-
</section>
111-
112-
<section class="relative flex flex-col gap-4 p-6 bg-white lg:pt-10 card-effect-2">
113-
<img src="/assets/img/theme/icons/Document.svg" alt="An official document with words written on it." class="w-16 h-16 icon" />
114-
<h3 class="text-lg font-bold lg:text-2xl font-heading">COVID-19</h3>
115-
<p class="lg:text-lg">Read our <strong><a href="/public-health" class="link">Public Health Policy</a></strong>, including mask and testing requirements.</p>
116-
</section>
117-
118-
<section class="relative flex flex-col gap-4 p-6 bg-white lg:pt-10 card-effect-3">
119-
<img src="/assets/img/theme/icons/Heart.svg" alt="A heart." class="w-16 h-16 icon" />
120-
<h3 class="text-lg font-bold lg:text-2xl font-heading">Accessibility</h3>
121-
<p class="lg:text-lg">We offer a range of accommodations, including live captioning, thoughtful lunch options, and a dedicated accessibility team to ensure everyone can fully participate.</p>
122-
</section>
34+
<div class="bg-white block-container wrapper">
35+
<div class="space-y-8">
36+
<h3 class="mb-4 text-xl font-bold tracking-wide text-center uppercase md:text-2xl font-heading">Learn more about Our Values</h3>
37+
38+
<div class="grid gap-8 lg:grid-cols-2">
39+
{%
40+
include 'value-card.html',
41+
bg:"/assets/img/2025/54088239977_6e8fb060a5_c.jpg",
42+
heading:"Code of Conduct"
43+
paragraph:"Participants are expected to be respectful to each other. For details on our expectations, and who to contact if you need assistance, see our <a href='/conduct/'>Code of Conduct</a>."
44+
%}
45+
{%
46+
include 'value-card.html',
47+
heading:"Accessibility"
48+
bg:"/assets/img/2025/53300199096_3d72d83ebd_c.jpg",
49+
paragraph:"We offer a range of accommodations, including live captioning, thoughtful lunch options, and a dedicated accessibility team to ensure everyone can fully participate."
50+
%}
12351
</div>
12452
</div>
12553
</div>
12654

127-
<!-- <div class="block-container">
55+
<div class="block-container">
12856
<div class="wrapper">
129-
<div class="grid-1-2">
130-
<figure>
131-
<span class="block h-full photo-effect">
132-
<img
133-
src="/assets/img/noah.jpg"
134-
loading="lazy"
135-
alt="Noah Alorwu smiling for a picture."
136-
class="object-cover w-full h-full">
137-
</span>
138-
</figure>
139-
<section>
140-
<h2 class="mb-8 text-2xl font-bold font-heading lg:text-5xl">Latest News</h2>
57+
<section class="items-center justify-between grid-cols-4 gap-8 py-4 sm:grid">
58+
<img src="/assets/img/theme/blog.svg" alt="An official document with words written on it." class="hidden w-full sm:block"/>
14159

142-
<ol class="divide-y" reversed>
60+
<div class="col-span-3">
61+
<h2 class="mb-4 text-3xl font-bold text-center md:text-left font-heading lg:text-4xl">Featured News</h2>
62+
63+
<ol class="flex flex-col items-center col-span-2 md:items-start" reversed>
14364
{%- for post in collections.posts reversed -%}
144-
{% unless post.hidden or post.category == 'talk' or post.category == 'tutorial' %}
145-
{% if forloop.index0 < 3 %}
146-
<li>
147-
<article class="py-6">
148-
<time
149-
class="mb-2 tracking-wide text-gray-600 uppercase"
150-
datetime="{{ post.date }}">{{ post.data.published_datetime | formatDateTime: "MMMM d, yyyy" }}</time>
151-
<h2 class="text-xl font-semibold font-heading lg:text-2xl"><a href="{{ post.url }}" class="reverse-link">{{ post.data.title | escape }}</a></h2>
152-
</article>
153-
</li>
154-
{% endif %}
155-
{% endunless %}
65+
{% if post.data.featured %}
66+
<li>
67+
<article class="gap-8 py-4">
68+
<time class="mb-2 tracking-wide text-gray-600 uppercase" datetime="{{ post.date }}">
69+
{{ post.data.published_datetime | formatDateTime: "MMMM d, yyyy" }}
70+
</time>
71+
<h3 class="text-xl font-semibold font-heading">
72+
<a href="{{ post.url }}" class="">{{ post.data.title | escape }}</a>
73+
</h3>
74+
</article>
75+
</li>
76+
{%- endif -%}
15677
{%- endfor -%}
15778
</ol>
158-
159-
<a class="button" href="/news/">Read More News</a>
160-
</section>
161-
</div>
79+
</div>
80+
</section>
16281
</div>
163-
</div> -->
82+
</div>
16483

16584
<div class="block-container">
166-
<div class="wrapper">
167-
<h2 class="mb-10 text-2xl font-bold text-center font-heading lg:text-5xl">Our Sponsors</h2>
85+
<div class="text-center wrapper">
86+
<h2 class="mb-10 text-3xl font-bold font-heading lg:text-4xl">Our Sponsors</h2>
16887

16988
{% include "sponsor-listing.html" %}
89+
90+
<a href="/sponsors/" class="mt-20 text-xl button">Become a Sponsor</a>
17091
</div>
17192
</div>

0 commit comments

Comments
 (0)