diff --git a/themes/pybcn_theme/layouts/partials/agenda_entry.html b/themes/pybcn_theme/layouts/partials/agenda_entry.html
index 08510b78a..0270c2973 100644
--- a/themes/pybcn_theme/layouts/partials/agenda_entry.html
+++ b/themes/pybcn_theme/layouts/partials/agenda_entry.html
@@ -5,7 +5,7 @@
slot one entry of the agenda list of the page
talks the talks of the page, keyed by id
rooms the rooms of the page, keyed by id
- colors the colour of each room, keyed by room id
+ colors the color of each room, keyed by room id
people the name of every person record, keyed by id
event_url the RelPermalink of the event page, or absent. It is half
the key of partials/talk_pages_index.html, so a caller
@@ -29,11 +29,11 @@
What this partial computes rather than reads from the page:
- - The colour. It used to be written on every entry, and it meant
- nothing: across the eight editions 24 colour-and-room combinations
+ - The color. It used to be written on every entry, and it meant
+ nothing: across the eight editions 24 color-and-room combinations
covered more than one room and only 20 mapped to a single room, and
- the colour followed neither the type, nor the topic, nor the level.
- Now every room of an event gets one colour of the palette below and
+ the color followed neither the type, nor the topic, nor the level.
+ Now every room of an event gets one color of the palette below and
keeps it for the whole day, so a reader can follow a track down the
grid. A slot with no room gets grey.
@@ -118,7 +118,7 @@
is what fails the build for it; the page still reads.
A slot with no talk reads its own speakers, and a slot that credits
- no person carries none: the organising committee of an edition is not
+ no person carries none: the organizing committee of an edition is not
a person and gets no record. */ -}}
{{- $names := slice -}}
{{- range $id := $source.speakers -}}
@@ -131,7 +131,7 @@
{{- end -}}
{{- /* credited_as is the credit of something that is not a person, so it has
- no record to point at: the organising committee of an edition runs the
+ no record to point at: the organizing committee of an edition runs the
registration, the breaks, and the closing. Moving speakers to person
ids dropped those eight credits, because a committee cannot have a
person record. A session never has both: speakers names people, and
diff --git a/themes/pybcn_theme/layouts/partials/appearances_index.html b/themes/pybcn_theme/layouts/partials/appearances_index.html
index bd5c2c318..650d8751d 100644
--- a/themes/pybcn_theme/layouts/partials/appearances_index.html
+++ b/themes/pybcn_theme/layouts/partials/appearances_index.html
@@ -38,7 +38,7 @@
speakers index like a curated entry, under the heading "Speakers". The
curated lists are the only source for the two pages with no year and the
only source of the other roles; the talks are the only source for the
- three editions that carry a programme and no people_sections, PyData
+ three editions that carry a program and no people_sections, PyData
Barcelona 2017, PyDay BCN 2018, and PyDay BCN 2019.
The heading is the level name when the level has one, and the section
diff --git a/themes/pybcn_theme/layouts/partials/attendees_note.html b/themes/pybcn_theme/layouts/partials/attendees_note.html
index c9bee8588..07af4715f 100644
--- a/themes/pybcn_theme/layouts/partials/attendees_note.html
+++ b/themes/pybcn_theme/layouts/partials/attendees_note.html
@@ -18,5 +18,5 @@
diff --git a/themes/pybcn_theme/layouts/partials/count_card.html b/themes/pybcn_theme/layouts/partials/count_card.html
index a27f78f11..5934a9e49 100644
--- a/themes/pybcn_theme/layouts/partials/count_card.html
+++ b/themes/pybcn_theme/layouts/partials/count_card.html
@@ -51,9 +51,9 @@
the figures). The talk and the photo take their icon from
event_types.html, the vocabulary of agenda entry types, by token, so
the comment of a talk and the camera of a photo are the glyphs the
- programme grid already draws for them, and a change there reaches
+ program grid already draws for them, and a change there reaches
here. The nouns are this table's own: the "photo" entry of that table
- is the group photo slot of a programme, and a photo counted here is a
+ is the group photo slot of a program, and a photo counted here is a
picture of a gallery. The other three kinds are not entry types,
which is why they are not added to that table: a token of
event_types.html is a value a talk's type field may hold, and a talk
diff --git a/themes/pybcn_theme/layouts/partials/event_detail.html b/themes/pybcn_theme/layouts/partials/event_detail.html
index 7bc87cf93..3dba89044 100644
--- a/themes/pybcn_theme/layouts/partials/event_detail.html
+++ b/themes/pybcn_theme/layouts/partials/event_detail.html
@@ -6,7 +6,7 @@
the strings it replaces held more than one address, with a label around
each in raw HTML. The label is data here and this template owns the
markup, so the
scaffolding those two carried is gone. A single
- unlabelled address renders as it did: markdownify turns a bare URL into
+ unlabeled address renders as it did: markdownify turns a bare URL into
a link. */ -}}
{{ $title_lang := partial "title_lang.html" $.event }}
diff --git a/themes/pybcn_theme/layouts/partials/event_row.html b/themes/pybcn_theme/layouts/partials/event_row.html
index 66793f623..268f1467a 100644
--- a/themes/pybcn_theme/layouts/partials/event_row.html
+++ b/themes/pybcn_theme/layouts/partials/event_row.html
@@ -46,7 +46,7 @@
front matter when the table has no row for it. venue is the place, and
it comes from the Meetup export, which records one per event. It is not
rooms: that lists the rooms inside the venue, so its first entry is the
- first column of the programme, which printed "B6" where the reader
+ first column of the program, which printed "B6" where the reader
expects "Universitat de Barcelona". It goes through the escaping of the
template and never through safeHTML: a venue is content, and AGENTS.md
says to assume any content field can inject HTML.
@@ -59,7 +59,7 @@
data/venues.yaml is what decides
how a venue reads, and the page of the event holds the whole record.
- The card: what the day holds, the talks of its programme, the photos
+ The card: what the day holds, the talks of its program, the photos
its gallery renders, and the videos it prints, from
partials/listing_counts.html, the one walk of the site. The card
leaves out a count of zero, so no row reads "0 photos", and a day with
diff --git a/themes/pybcn_theme/layouts/partials/event_type_icon.html b/themes/pybcn_theme/layouts/partials/event_type_icon.html
index 92df04f28..f0d4e8374 100644
--- a/themes/pybcn_theme/layouts/partials/event_type_icon.html
+++ b/themes/pybcn_theme/layouts/partials/event_type_icon.html
@@ -10,7 +10,7 @@
facts of a talk page. A named icon carries the label of its type as its
accessible name and as its hover, from the one field of
event_types.html, so the two cannot disagree. The rows of a listing
- (/talks/, the programme of a meetup) want that: nothing else on the row
+ (/talks/, the program of a meetup) want that: nothing else on the row
says that a talk was a workshop or a lightning talk. A title attribute
on a hidden icon would have been a hover for a mouse and nothing for a
screen reader, which is the reader the name is for, so the icon is an
diff --git a/themes/pybcn_theme/layouts/partials/event_videos.html b/themes/pybcn_theme/layouts/partials/event_videos.html
index 74a0c1a1e..77aad3d37 100644
--- a/themes/pybcn_theme/layouts/partials/event_videos.html
+++ b/themes/pybcn_theme/layouts/partials/event_videos.html
@@ -1,6 +1,6 @@
{{- /*
The videos of one edition page, as rows for the Videos subsection of
- its gallery, in the order of the programme.
+ its gallery, in the order of the program.
Argument: the event page.
@@ -21,7 +21,7 @@
Why rows of their own. A player belongs on a page about one talk and
a link belongs on a row. The grid of the
- programme is neither: a block of the grid is a slot, at its hour and
+ program is neither: a block of the grid is a slot, at its hour and
in its room, and the grid of PyDay BCN 2020 was the one schedule of
the site that printed a video, 20 links on 20 blocks, while the page
of every other edition printed none. The links left the grid and
@@ -35,15 +35,15 @@
photographs, because a recording is material added after the day
(the header of partials/gallery_content.html has the decision).
- One row per video, in programme order. The agenda is walked first,
+ One row per video, in program order. The agenda is walked first,
slot by slot: a slot with a talk takes the video of its talk, a slot
with none takes its own (the Welcome Session is the one case, see
partials/listing_counts.html), and a talk the grid places twice is
printed once. Then the talks the agenda does not place, in the order
of the talks block, so a video reaches the page whether or not the
- programme has a slot for it; none is in that state today. A session
+ program has a slot for it; none is in that state today. A session
with no video has no row: this is the list of what was recorded, not
- a second programme. The first link of type video is the one, the rule
+ a second program. The first link of type video is the one, the rule
of partials/agenda_entry.html; no session of the archive carries two.
The one caller is partials/gallery_content.html, for every edition
@@ -52,7 +52,7 @@
order of its talks block; its Talks block prints the Watch line on
each row as well, and the Gallery lists the same 29 recordings
together, a mild redundancy on purpose: the
- row says this talk was filmed while you read the programme.
+ row says this talk was filmed while you read the program.
*/ -}}
{{- $page := . -}}
{{- $pages := partialCached "talk_pages_index.html" site "talk-pages-index" -}}
diff --git a/themes/pybcn_theme/layouts/partials/facts_box.html b/themes/pybcn_theme/layouts/partials/facts_box.html
index 8561775a6..1b354929a 100644
--- a/themes/pybcn_theme/layouts/partials/facts_box.html
+++ b/themes/pybcn_theme/layouts/partials/facts_box.html
@@ -1,5 +1,5 @@
{{- /*
- facts_box: the box of facts about the subject of a page, one labelled
+ facts_box: the box of facts about the subject of a page, one labeled
row per fact.
[ (user) Speaker Marc Pous ]
@@ -98,14 +98,14 @@
longest label. At 390px the two columns still fit: the longest label,
RSVPs, takes about a third of the width, and a long value
wraps inside its cell. The box is the bordered pill of
- partials/count_card.html at full width, in the colour of the facts,
+ partials/count_card.html at full width, in the color of the facts,
so the two read as the same kind of thing: a box of figures.
The icons are Font Awesome and not emoji, one per line. The site
already keeps three vocabularies of glyph with one
job each: an emoji is the type of an event (data/event_emoji.yaml,
the rows of /events/ and /people/), a Font Awesome icon is a count
- (partials/count_card.html) or a type of session (the programme grid,
+ (partials/count_card.html) or a type of session (the program grid,
partials/event_types.html), and a Font Awesome brand mark is where a
link goes (partials/person_social_icons.html). An emoji per fact
would be a fourth, and it would sit on the page of a person next to
diff --git a/themes/pybcn_theme/layouts/partials/footer.html b/themes/pybcn_theme/layouts/partials/footer.html
index 13f02a157..2a08f4248 100644
--- a/themes/pybcn_theme/layouts/partials/footer.html
+++ b/themes/pybcn_theme/layouts/partials/footer.html
@@ -6,7 +6,7 @@
- The Association, with the capital A.
- Contact us is here as "Contact PyBCN", in the How we behave
column, and nowhere in the header.
- - "Our Github", the organisation on GitHub. It sits in The website,
+ - "Our Github", the organization on GitHub. It sits in The website,
the one column that is
about the site and its sources rather than about the pages of the
association.
@@ -18,13 +18,13 @@
association, under the four columns.
- The feed and the sitemap left that line. The Follow us column is
The website: plain text links to the search first (the second
- review), then the feed, the sitemap, and the GitHub organisation,
+ review), then the feed, the sitemap, and the GitHub organization,
no glyph.
- The last line is the legal name of the association and its short
name, from config.toml, so it is "Associació Python Barcelona
(PyBCN)" and not the English extended_name.
- The licence line names the two licences LICENSING.md states and
+ The license line names the two licenses LICENSING.md states and
links the file, as in the other options.
*/ -}}
{{- $rss := "" -}}
diff --git a/themes/pybcn_theme/layouts/partials/footer_link.html b/themes/pybcn_theme/layouts/partials/footer_link.html
index b41cf400c..5500f4e77 100644
--- a/themes/pybcn_theme/layouts/partials/footer_link.html
+++ b/themes/pybcn_theme/layouts/partials/footer_link.html
@@ -3,7 +3,7 @@
Argument: a dict with either path, an internal page resolved through
site.GetPage so a moved page fails the build, or name and url, for
- the feed, the sitemap, and the GitHub organisation. name overrides
+ the feed, the sitemap, and the GitHub organization. name overrides
the title of a page ("Contact PyBCN" for /contact). external marks a
link that leaves the site, which opens in a new tab as the accounts
of the social line do.
diff --git a/themes/pybcn_theme/layouts/partials/gallery_content.html b/themes/pybcn_theme/layouts/partials/gallery_content.html
index b5ab3097f..e0f6cd025 100644
--- a/themes/pybcn_theme/layouts/partials/gallery_content.html
+++ b/themes/pybcn_theme/layouts/partials/gallery_content.html
@@ -7,9 +7,9 @@
thread the URL of the thread of the day, or ""
photos a slice of the photos the gallery renders, in page order
videos a slice of the recordings of the day, the rows of
- partials/event_videos.html in programme order, on an
+ partials/event_videos.html in program order, on an
edition page (layouts/_default/event.html) whose
- programme is a grid; an empty slice on every other page,
+ program is a grid; an empty slice on every other page,
and on an edition page that prints its talks as rows
Each photo is a dict:
@@ -75,17 +75,17 @@
became one list: the Talks heading reads
"Talks (32) & Videos (29)" and the gallery of that page holds its
photographs alone. The Videos subsection stays for a page whose
- programme is a grid, PyDay BCN 2020 today, where the video of a slot
+ program is a grid, PyDay BCN 2020 today, where the video of a slot
is in the block and its modal and no list of recordings exists. The
link on the row of a slot stays as well, a mild redundancy on purpose:
the block says this talk was filmed while you read the
- programme, and the Gallery lists the recordings of the day together.
+ program, and the Gallery lists the recordings of the day together.
Edition pages only, the pages with layout event. A meetup page
(layouts/_default/meetup.html) prints its talks as rows with the Watch
line on each, and the recording of a whole session, which belongs to
no talk, under its own Recordings heading (partials/session_videos.html,
- which an edition page prints under the programme too); its gallery is
+ which an edition page prints under the program too); its gallery is
its photographs. partials/listing_counts.html counts the videos of a
day from the front matter itself, not from here, so the row of /events/
and this subsection agree by reading the same records.
@@ -123,7 +123,7 @@
"talk" $talk) -}}
{{- end -}}
{{- end -}}
-{{- /* The videos, on an edition page with a programme grid and no other:
+{{- /* The videos, on an edition page with a program grid and no other:
see the header. A page with talks and no agenda prints its Talks
block instead. The partial reads the talk pages and the person
names through partialCached, so a second edition pays for neither
diff --git a/themes/pybcn_theme/layouts/partials/head-meta.html b/themes/pybcn_theme/layouts/partials/head-meta.html
index 817f28c29..c29d999ec 100644
--- a/themes/pybcn_theme/layouts/partials/head-meta.html
+++ b/themes/pybcn_theme/layouts/partials/head-meta.html
@@ -45,8 +45,8 @@
file and not a crop of the logo: the logo is 920x273, and filling
it into the 1200x630 a card wants cut 43 per cent of the width,
so the card read "python barcelo" on a transparent background
- that each client painted its own colour. social-card.png is the
- whole logo, centred, on white. */ -}}
+ that each client painted its own color. social-card.png is the
+ whole logo, centered, on white. */ -}}
{{- with resources.Get "images/social-card.png" -}}
{{- $image = .Permalink -}}
{{- end -}}
diff --git a/themes/pybcn_theme/layouts/partials/jump_bar.html b/themes/pybcn_theme/layouts/partials/jump_bar.html
index 0d05151a2..b05fd132f 100644
--- a/themes/pybcn_theme/layouts/partials/jump_bar.html
+++ b/themes/pybcn_theme/layouts/partials/jump_bar.html
@@ -8,7 +8,7 @@
anchor the id of the heading of the group
text what the link reads
class optional, one more class on the nav: /people/ passes
- jump_bar_centered, which centres the letters, and
+ jump_bar_centered, which centers the letters, and
/events/ keeps its years at the left edge of the table
under them. See .jump_bar in main.scss.
diff --git a/themes/pybcn_theme/layouts/partials/level_badge.html b/themes/pybcn_theme/layouts/partials/level_badge.html
index b323b5082..71290bc5f 100644
--- a/themes/pybcn_theme/layouts/partials/level_badge.html
+++ b/themes/pybcn_theme/layouts/partials/level_badge.html
@@ -4,10 +4,10 @@
Context: the level token as a string. Valid tokens are:
beginner, intermediate, advanced
- The badge shows a coloured dot AND the text label. The level is never
- given by colour alone (WCAG 1.4.1 Use of Color). The badge has its own
+ The badge shows a colored dot AND the text label. The level is never
+ given by color alone (WCAG 1.4.1 Use of Color). The badge has its own
light background, so the dot keeps at least 3:1 contrast whatever the
- colour of the agenda cell behind it (WCAG 1.4.11 Non-text Contrast).
+ color of the agenda cell behind it (WCAG 1.4.11 Non-text Contrast).
The token is matched against the table below before it goes into a class
name. An unknown token prints as escaped text and logs a build warning.
diff --git a/themes/pybcn_theme/layouts/partials/link_mark.html b/themes/pybcn_theme/layouts/partials/link_mark.html
index a746dbd4c..67dd7e023 100644
--- a/themes/pybcn_theme/layouts/partials/link_mark.html
+++ b/themes/pybcn_theme/layouts/partials/link_mark.html
@@ -33,7 +33,7 @@
mark with the long tail.
Before this partial only YouTube and x.com carried a mark, each printed
- where it was used, and the YouTube mark took the colour of the link
+ where it was used, and the YouTube mark took the color of the link
around it while every other icon of the site is grey. There is one
mark per destination now, grey like the rest. The grey
is .link_mark in main.scss, and a caller that needs a different gap or
diff --git a/themes/pybcn_theme/layouts/partials/people-grid.html b/themes/pybcn_theme/layouts/partials/people-grid.html
index 952c34bda..1a1d93398 100644
--- a/themes/pybcn_theme/layouts/partials/people-grid.html
+++ b/themes/pybcn_theme/layouts/partials/people-grid.html
@@ -71,10 +71,10 @@
index of "" finds no key, and default then falls through. */ -}}
{{- $section_role := index site.Data.roles (default $.section $level.name) -}}
{{- /* The heading is a sibling of the row, not a child of it. It
- is a title between two rules, centred on the page, and the row
+ is a title between two rules, centered on the page, and the row
below caps its own width at the number of cards the section
asks for: inside the row the heading took that cap, so the
- four headings of /organizers/ were centred on four different
+ four headings of /organizers/ were centered on four different
widths and their rules came out four different lengths. */ -}}
{{- /* The heading carries an id from its name, "board-2026" for
"Board (2026)", so a link can land on one level: the Board
diff --git a/themes/pybcn_theme/layouts/partials/people_letters.html b/themes/pybcn_theme/layouts/partials/people_letters.html
index be7d0cdcc..bdd384bd3 100644
--- a/themes/pybcn_theme/layouts/partials/people_letters.html
+++ b/themes/pybcn_theme/layouts/partials/people_letters.html
@@ -47,7 +47,7 @@
h1, h2, h3 with no level skipped: the hero prints the h1, a letter is
an h2, and the name of a row is an h3 (partials/person_row.html).
- The bar of letters is partials/jump_bar.html, centred. Only the
+ The bar of letters is partials/jump_bar.html, centered. Only the
letters that have a row are in it: a dead A to Z bar would send a
reader to a heading that is not on the page.
*/ -}}
diff --git a/themes/pybcn_theme/layouts/partials/person_appearances.html b/themes/pybcn_theme/layouts/partials/person_appearances.html
index b82898975..16acca93e 100644
--- a/themes/pybcn_theme/layouts/partials/person_appearances.html
+++ b/themes/pybcn_theme/layouts/partials/person_appearances.html
@@ -60,7 +60,7 @@
index and parsed through partials/event_date.html with the URL as the
cache key, the key the listings use, so an edition parsed for /talks/
is a cache hit here. Within one year the rows are newest first, then
- the event title and URL, then the place of the talk in the programme
+ the event title and URL, then the place of the talk in the program
of the day, so the rows of one event are together and the day cell
spans them. The markup is the one of layouts/talks/list.html, with
every table element carrying its role written out, because under lg
diff --git a/themes/pybcn_theme/layouts/partials/person_placeholder.html b/themes/pybcn_theme/layouts/partials/person_placeholder.html
index 4ce128bc5..f16c48b02 100644
--- a/themes/pybcn_theme/layouts/partials/person_placeholder.html
+++ b/themes/pybcn_theme/layouts/partials/person_placeholder.html
@@ -1,9 +1,9 @@
{{- /*
The mark of a person with no photo: the initials of the name on a
- colour derived from the name. In the 48 px slot of a row of /people/,
+ color derived from the name. In the 48 px slot of a row of /people/,
and at 240 px where the portrait of the page of the person would be.
- [ DA ] on one of ten colours, always the same one for one name
+ [ DA ] on one of ten colors, always the same one for one name
Argument: a dict with
name the name of the person, as the record writes it (required)
@@ -13,20 +13,20 @@
else draws it, so a different placeholder (a pattern drawn by CSS, a
figure, a glyph) is a change to this file and to its block of
people_index.scss, and to no layout. The size is the caller's: the
- colours and the letters are the shared rule of people_index.scss, the
+ colors and the letters are the shared rule of people_index.scss, the
48 px of the row sit under .people_rows there, and the 240 px of the
page under .person_page in people_page.scss. The page showed nothing
where the portrait goes until 2026-10-15, and the placeholder of the
- row is drawn there now: the initials on a colour.
+ row is drawn there now: the initials on a color.
- Why initials and a colour. 250 of the 378 records carry no photo. The
+ Why initials and a color. 250 of the 378 records carry no photo. The
row used to print the emoji of the first role of the person there
(data/role_emoji.yaml), which put 🎤 on some 230 rows in a column: a
marker that nearly every row shares marks nothing, and it read as an
icon of the site and not as a stand-in for a face. The initials are
the one fact about the person the row already has, and they differ
from row to row, so a reader who scans the column can tell the rows
- apart; the colour does the same for a reader who does not read the
+ apart; the color does the same for a reader who does not read the
letters. No image is requested for them, which the anonymous
silhouette of the grid (anon_member.webp) would have cost 250 times.
@@ -36,13 +36,13 @@
archive is built. A name of one word gives one letter. The letters are
cut by rune, not by byte, so an accented initial stays one letter.
- The colour. One of ten, picked by the FNV-1a hash of the name modulo
- ten, so one name gets one colour on every build and on every page
+ The color. One of ten, picked by the FNV-1a hash of the name modulo
+ ten, so one name gets one color on every build and on every page
that may draw it, and two builds cannot disagree. The ten are set in
people_index.scss, every one of them at 5:1 or more under white text
(WCAG 1.4.3 asks 4.5:1 for text of this size), and the class carries
the index, hue_0 to hue_9: no inline style, which bin/check-rendered
- inspects, and no colour value in the markup.
+ inspects, and no color value in the markup.
Hidden from a screen reader, as the photo it stands in for is: the
name is the heading right beside it, and the initials said aloud
diff --git a/themes/pybcn_theme/layouts/partials/person_row.html b/themes/pybcn_theme/layouts/partials/person_row.html
index 17aae374b..82ca16d02 100644
--- a/themes/pybcn_theme/layouts/partials/person_row.html
+++ b/themes/pybcn_theme/layouts/partials/person_row.html
@@ -25,7 +25,7 @@
The avatar: the photo, or the placeholder of
partials/person_placeholder.html when there is none, the initials of
- the name on a colour derived from the name. One column either way, so
+ the name on a color derived from the name. One column either way, so
the names line up down the page. The link around the photo repeats
the name link beside it, so it is out of the tab order and hidden
from a screen reader (tabindex -1, aria-hidden): two links to one
@@ -38,7 +38,7 @@
not 128 times on load (see people_index.scss).
Line one: the name, which is the link to the page of the person, then
- the post when the caller gives one, in the colour of the facts under a
+ the post when the caller gives one, in the color of the facts under a
row so the name stays what the eye reads first, then the social links
of the record as brand marks (partials/person_social_icons.html). The name
is an h3 at the size of the text around it: an h3 at its default size
diff --git a/themes/pybcn_theme/layouts/partials/person_talks_index.html b/themes/pybcn_theme/layouts/partials/person_talks_index.html
index 77094c35c..16c8c0be9 100644
--- a/themes/pybcn_theme/layouts/partials/person_talks_index.html
+++ b/themes/pybcn_theme/layouts/partials/person_talks_index.html
@@ -23,7 +23,7 @@
video the URL of the video of the talk, or "" when the day
published none (see agenda_entry.html)
key a sort key: newest day first, then the event, then
- the place of the talk in the programme of that day
+ the place of the talk in the program of that day
No argument is read: the data comes from site.RegularPages. Call it
through partialCached with a constant variant, so the site is walked
diff --git a/themes/pybcn_theme/layouts/partials/photo_gallery.html b/themes/pybcn_theme/layouts/partials/photo_gallery.html
index d4ca0ef6d..154096373 100644
--- a/themes/pybcn_theme/layouts/partials/photo_gallery.html
+++ b/themes/pybcn_theme/layouts/partials/photo_gallery.html
@@ -27,7 +27,7 @@
and not under the schedule; the gallery was photographs only for one
day, from 2026-10-14). The row of a talk keeps its own video link as
well, a mild redundancy on purpose: the row says this talk was
- filmed while you read the programme, and the Gallery lists the
+ filmed while you read the program, and the Gallery lists the
recordings of the day together. A video prints as the row of the
Talks block of a meetup page (partials/talk_rows.html): the icon of
the type, the title as the link to the page of the talk, where the
@@ -145,7 +145,7 @@
2026-10-17: the hr it opened with was a second rule over a title
that draws its own. Each photograph is a card of its own, on the
white of the page, in the frame of every card of the site: the band
- of colour that held every card until 2026-10-14 is gone. See
+ of color that held every card until 2026-10-14 is gone. See
assets/scss/photo_gallery.scss.
The section does not carry link_anchor, the class the other sections of
@@ -317,7 +317,7 @@
Photos ({
{{- end }}
{{- end }}
- {{- /* The recordings of the day: one row per video, in programme
+ {{- /* The recordings of the day: one row per video, in program
order, from partials/event_videos.html. The title links to the
page of the talk, where the player is; the Welcome Session of
PyDay BCN 2020 is a slot with no talk and no page, and prints
diff --git a/themes/pybcn_theme/layouts/partials/search_kind.html b/themes/pybcn_theme/layouts/partials/search_kind.html
index 448debebd..6baac8e24 100644
--- a/themes/pybcn_theme/layouts/partials/search_kind.html
+++ b/themes/pybcn_theme/layouts/partials/search_kind.html
@@ -6,7 +6,7 @@
Pagefind indexes a page only where it finds data-pagefind-body, and
every attribute that says what a page is (the kind meta and filter
- the results are labelled and filtered by) is written from this one
+ the results are labeled and filtered by) is written from this one
answer: partials/hero_header.html puts them on the h1, and the layouts
of the three kinds mark their record. So a page is one kind in one
place, and a kind that is added or taken out of the search is one
diff --git a/themes/pybcn_theme/layouts/partials/session_videos.html b/themes/pybcn_theme/layouts/partials/session_videos.html
index 8fcab7ef3..01a4b199e 100644
--- a/themes/pybcn_theme/layouts/partials/session_videos.html
+++ b/themes/pybcn_theme/layouts/partials/session_videos.html
@@ -27,8 +27,8 @@ Recordings
2026-10-15 (see the header of partials/gallery_content.html), and the
video of a talk sits on the row of its talk as well. A session
recording has no row to sit on and no talk, so it is printed here,
- under the programme of the day and before the gallery: it is part of
- what happened that evening, where the programme is. The player is partials/video_frame.html, the
+ under the program of the day and before the gallery: it is part of
+ what happened that evening, where the program is. The player is partials/video_frame.html, the
frame the page of a talk uses: a recording of a session has no page of
its own, so the page of its day is the page about it, and a player
belongs on the page about the thing it plays (the block printed a
diff --git a/themes/pybcn_theme/layouts/partials/sponsor_summary.html b/themes/pybcn_theme/layouts/partials/sponsor_summary.html
index 534cf777e..35b4b7cb4 100644
--- a/themes/pybcn_theme/layouts/partials/sponsor_summary.html
+++ b/themes/pybcn_theme/layouts/partials/sponsor_summary.html
@@ -19,11 +19,11 @@
A sponsor with no usable logo shows its name as text, and a sponsor with no
web address is not wrapped in an empty link. A broken image reads as a
- mistake, and an organisation that supported the event deserves better than
+ mistake, and an organization that supported the event deserves better than
looking like a missing asset.
The link carries the name of the sponsor as its title, so a reader who
- does not recognise a logo can hover it and read who it is. It is the
+ does not recognize a logo can hover it and read who it is. It is the
same string as the alt of the image, which is
what a screen reader announces.
*/ -}}
diff --git a/themes/pybcn_theme/layouts/partials/talk_pages_index.html b/themes/pybcn_theme/layouts/partials/talk_pages_index.html
index d8cb044b3..81909b29e 100644
--- a/themes/pybcn_theme/layouts/partials/talk_pages_index.html
+++ b/themes/pybcn_theme/layouts/partials/talk_pages_index.html
@@ -1,6 +1,6 @@
{{- /*
The page of each talk, keyed by the event that gave it and the id of the
- talk, so an event page can link a row of its programme or a photo of its
+ talk, so an event page can link a row of its program or a photo of its
gallery to the talk itself.
Returns a flat map. The key is "|" and the
@@ -13,7 +13,7 @@
partialCached "talk_pages_index.html" site "talk-pages-index"
- There are 607 talk pages, 10 programme grids with 138 rows that hold a
+ There are 607 talk pages, 10 program grids with 138 rows that hold a
talk, and 107 gallery photos that name one. An index built per event
page would walk the talk pages ten times, and one built per row 138.
diff --git a/themes/pybcn_theme/layouts/partials/talk_record.html b/themes/pybcn_theme/layouts/partials/talk_record.html
index 33cd10274..86ab89374 100644
--- a/themes/pybcn_theme/layouts/partials/talk_record.html
+++ b/themes/pybcn_theme/layouts/partials/talk_record.html
@@ -10,7 +10,7 @@
event the event page, or "" when the path resolves to nothing
talk the talk record, as the front matter of that event writes it
- position the place of the talk in the programme of that event,
+ position the place of the talk in the program of that event,
counted from 1, which is the order the index at /talks/
lists the talks of one day in
entry what partials/agenda_entry.html resolves for that record:
@@ -50,7 +50,7 @@
site.Pages, so the pages are added with the two ids above and the data
is joined here, at render time, out of the event front matter. That is
the decision this archive already took for the talks: the event owns its
- programme, and a page of one talk is a view of it.
+ program, and a page of one talk is a view of it.
Why agenda_entry.html and not a second join. That partial is where the
archive resolves a talk already: it turns the speaker ids into the names
@@ -63,7 +63,7 @@
It takes a slot of an agenda, because that is what the grid has. A talk
page has no slot: it is the talk, wherever the grid put it. So the slot
passed in names the talk and a start of "0:00", and the start, the end,
- the room, and the colour of the answer are not read. The fields a slot
+ the room, and the color of the answer are not read. The fields a slot
owns rather than the talk, python_level, topic_level, requirements, and
sponsor, come back empty for the same reason, and this page does not
print them: they describe a session of a day, and the row of the grid
diff --git a/themes/pybcn_theme/layouts/partials/talk_rows.html b/themes/pybcn_theme/layouts/partials/talk_rows.html
index adf2e0408..7d3885658 100644
--- a/themes/pybcn_theme/layouts/partials/talk_rows.html
+++ b/themes/pybcn_theme/layouts/partials/talk_rows.html
@@ -20,7 +20,7 @@
The markup is the one the meetup page carried until the edition page
needed the same rows: PyData Barcelona 2017 holds 32 talks and no
- programme grid, and listed its slides in its body as a numbered list
+ program grid, and listed its slides in its body as a numbered list
with the speaker names typed in, a worse copy of its own talk records.
One partial, so the two pages read alike and a change reaches both.
The styles are .talk_rows of talks.scss, which the person page uses as
diff --git a/themes/pybcn_theme/layouts/partials/talks_index.html b/themes/pybcn_theme/layouts/partials/talks_index.html
index 9b0f5cd53..aa7fe2fd6 100644
--- a/themes/pybcn_theme/layouts/partials/talks_index.html
+++ b/themes/pybcn_theme/layouts/partials/talks_index.html
@@ -19,7 +19,7 @@
month_group "|", the key of the month group
event_group "|", the key of the event group
key the sort key: newest day first, then the event,
- then the place of the talk in its programme
+ then the place of the talk in its program
No argument is read: the data comes from site.RegularPages. Call it
through partialCached with a constant variant, so the 607 records are
@@ -71,7 +71,7 @@
{{- $talk := $record.talk -}}
{{- /* The year of the event, with the date of the page as the fallback
- for a programme whose event carries no year. */ -}}
+ for a program whose event carries no year. */ -}}
{{- $year := 0 -}}
{{- with $event }}{{ with .Params.year }}{{ $year = int . }}{{ end }}{{ end -}}
{{- if and (not $year) (not $pg.Date.IsZero) }}{{ $year = $pg.Date.Year }}{{ end -}}
@@ -124,7 +124,7 @@
{{- end -}}
{{- /* The type as the counts key it: lower case and trimmed, the
- normalisation of partials/event_type_icon.html. */ -}}
+ normalization of partials/event_type_icon.html. */ -}}
{{- $type := "" -}}
{{- with $entry.type }}{{ $type = lower (trim (printf "%v" .) " ") }}{{ end -}}
diff --git a/themes/pybcn_theme/layouts/partials/talks_table.html b/themes/pybcn_theme/layouts/partials/talks_table.html
index e4038991e..cf27a87a8 100644
--- a/themes/pybcn_theme/layouts/partials/talks_table.html
+++ b/themes/pybcn_theme/layouts/partials/talks_table.html
@@ -81,7 +81,7 @@
The order. Years newest first, and inside a year the rows by the
date of their event newest first, then the event title and its URL as
the tiebreak for two events on one day, then the place of the talk in
- the programme of its event: a day is a sequence, and the first talk of
+ the program of its event: a day is a sequence, and the first talk of
the morning is not the one whose title starts with an A. The months
and the events fall out of that order as runs of rows, and the render
loop opens a group where the key of a row differs from the row before
diff --git a/themes/pybcn_theme/layouts/partials/video_frame.html b/themes/pybcn_theme/layouts/partials/video_frame.html
index 29bed4c88..b18298573 100644
--- a/themes/pybcn_theme/layouts/partials/video_frame.html
+++ b/themes/pybcn_theme/layouts/partials/video_frame.html
@@ -26,7 +26,7 @@
on the home page, in the About PyBCN block (layouts/_default/home.html),
which plays the presentation of the community at PyConES 2020, the one
video of the channel that belongs to no event and so to no page of the
- archive. A listing or a programme grid prints a link and no frame: the
+ archive. A listing or a program grid prints a link and no frame: the
PyDay BCN 2020 page has a video on almost every row, and a frame per
row would make one request to Google per row before a reader asked for
any of them. bin/check-rendered allows the frame on those paths with
diff --git a/themes/pybcn_theme/layouts/partials/video_link.html b/themes/pybcn_theme/layouts/partials/video_link.html
index 4c1cc1abb..8c4ff3602 100644
--- a/themes/pybcn_theme/layouts/partials/video_link.html
+++ b/themes/pybcn_theme/layouts/partials/video_link.html
@@ -17,9 +17,9 @@
YouTube, so the words said it twice, and they are gone
wherever the phrase appeared.
blank optional. true opens the video in a new tab, for the block
- of the programme grid and its modal, which did so before.
+ of the program grid and its modal, which did so before.
- One partial, so the row of a meetup page, the block of the programme
+ One partial, so the row of a meetup page, the block of the program
grid, the modal behind it, the page of the talk, and the recording of
a whole session print the same link in the same words. The mark is
partials/link_mark.html, the one mark per destination the whole site
diff --git a/themes/pybcn_theme/layouts/people/list.html b/themes/pybcn_theme/layouts/people/list.html
index 411a50c32..d732c1d17 100644
--- a/themes/pybcn_theme/layouts/people/list.html
+++ b/themes/pybcn_theme/layouts/people/list.html
@@ -29,7 +29,7 @@
What an identity record looks like here. 240 of the 378 records carry
an id and a name and nothing else: they exist so that a talk of a
- programme can credit its speaker by id. A row of one of those is a
+ program can credit its speaker by id. A row of one of those is a
name, the role the archive credits it with, and the day it was
credited, which is everything the site knows. It gets no photo,
because it has none: the anonymous silhouette of the grid,
diff --git a/themes/pybcn_theme/layouts/people/single.html b/themes/pybcn_theme/layouts/people/single.html
index 1a11c0bd6..099a72cb4 100644
--- a/themes/pybcn_theme/layouts/people/single.html
+++ b/themes/pybcn_theme/layouts/people/single.html
@@ -80,7 +80,7 @@
read off an event description. AGENTS.md has the rule.
The header: the portrait, or the placeholder of the row of /people/
- (partials/person_placeholder.html, the initials on a colour) when the
+ (partials/person_placeholder.html, the initials on a color) when the
record has no photo, which is 250 of the 378 records. The page showed
nothing there until 2026-10-15. Beside it the Bio, the body of the
record, and then the social links under a "Social links" heading, as
@@ -144,7 +144,7 @@
{{- end -}}
{{- /* The photos and the videos of the talks, in the order of the talks:
- newest day first, then the place in the programme of the day.
+ newest day first, then the place in the program of the day.
Guarded by with: sort of a nil list is a build error, and 25 of the
378 records are credited by no talk, so the list is nil on their
pages. */ -}}
@@ -260,7 +260,7 @@ Videos ({{ len . }})
{{- with .File }}
About this page
- This page is generated from the archive of past events. The events, the photos, and the videos come from the programmes of the days this person took part in; the name, the bio, and the links come from one file. To change or remove anything on it, {{ partial "link_mark.html" "https://github.com/" }}edit that file on GitHub and open a pull request, or write to {{ site.Params.main_contact_email }}.
+ This page is generated from the archive of past events. The events, the photos, and the videos come from the programs of the days this person took part in; the name, the bio, and the links come from one file. To change or remove anything on it, {{ partial "link_mark.html" "https://github.com/" }}edit that file on GitHub and open a pull request, or write to {{ site.Params.main_contact_email }}.
{{- end }}
diff --git a/themes/pybcn_theme/layouts/talks/list.html b/themes/pybcn_theme/layouts/talks/list.html
index b75066d8a..40b487c9e 100644
--- a/themes/pybcn_theme/layouts/talks/list.html
+++ b/themes/pybcn_theme/layouts/talks/list.html
@@ -1,5 +1,5 @@
{{- /*
- The /talks/ page: every talk of every programme the association has
+ The /talks/ page: every talk of every program the association has
published, in one table, under the tabs that filter it by type.
[ All 607 ] [ 💬 Talks 398 ] [ 💻 Workshops 172 ] [ ⚡ Lightning talks 27 ] ...
diff --git a/themes/pybcn_theme/layouts/talks/single.html b/themes/pybcn_theme/layouts/talks/single.html
index 9d1f29edd..971381f6d 100644
--- a/themes/pybcn_theme/layouts/talks/single.html
+++ b/themes/pybcn_theme/layouts/talks/single.html
@@ -5,7 +5,7 @@
The page itself holds no data. content/talks/_content.gotmpl adds it
with the id of the talk and the content path of its event, and
partials/talk_record.html joins the record out of the front matter of
- that event at render time. So this page and the row of the programme
+ that event at render time. So this page and the row of the program
grid of that day print the same facts from the same place.
The h1 is the title of the talk, printed by partials/hero_header.html
@@ -21,7 +21,7 @@
youtube-nocookie.com player, and its header says what the frame asks
of Google, where the privacy policy says so, and which other pages
carry a player: the Recordings block of a day and the Videos block of
- a person. A listing or a programme grid prints a link and no frame.
+ a person. A listing or a program grid prints a link and no frame.
What is not here: the room, the start, and the end of the session.
Those belong to the slot of the grid and not to the talk, and the
@@ -201,7 +201,7 @@
The scheme of an http URL is raised to https first. This
page is the first to render these descriptions: the
- PyDataBCN 2017 programme carries no eventTimes, so it
+ PyDataBCN 2017 program carries no eventTimes, so it
draws no grid and opens no modal, and the text of its
talks reached no page of this site until now. The site
publishes no insecure link, which bin/check-rendered
From 83c39af6e39632825c8259e8953d4f763387b0b2 Mon Sep 17 00:00:00 2001
From: David Arcos
Date: Mon, 26 Oct 2026 12:56:44 +0100
Subject: [PATCH 7/7] Answer the review of #222: say how to object, and drop
the counts from comments
Two points from the review by @mesejo:
- The privacy policy says a person can object to a page built from our
announcements, or to an event photograph, but not how. Both bullets now
link to "Your rights", which says to write to pybcn@googlegroups.com.
- The comments that draw the tab bars of /talks/, /people/, and /events/
carried the counts of the day (All 371, Speakers 356, ...), which read
as numbers to update by hand. The tabs count their rows at build time;
the comments now show N. The /people/ example also used the old role
name, Organizer, and now says Event organizers.
bin/check-content: 0 errors, 79 warnings. bin/check-html-safety: PASS.
The anchor #your-rights is the id Hugo gives the heading "Your rights",
the same one the live policy has.
---
content/pybcn_association/privacy-policy.md | 4 ++--
themes/pybcn_theme/layouts/partials/events_tabs.html | 2 +-
themes/pybcn_theme/layouts/partials/filter_tabs.html | 2 +-
themes/pybcn_theme/layouts/partials/people_tabs.html | 2 +-
themes/pybcn_theme/layouts/people/list.html | 2 +-
themes/pybcn_theme/layouts/talks/list.html | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/content/pybcn_association/privacy-policy.md b/content/pybcn_association/privacy-policy.md
index 684b8747a..034e797c2 100644
--- a/content/pybcn_association/privacy-policy.md
+++ b/content/pybcn_association/privacy-policy.md
@@ -31,7 +31,7 @@ The Board handles requests about personal data. We have no data protection offic
The site has pages for the people who organize our events, speak at them, mentor at workshops, or collaborate with the association. Each page shows a name, a photograph, a short biography, the role in PyBCN or at an event, and links to the person's own profiles (GitHub, LinkedIn, Twitter, personal site).
- **Where it comes from**: for most people, the person. They sent the photograph and wrote or approved the text for publication here. For speakers that the archive credits, the public announcements of our own Meetup events: the page then shows the name, the talks, and the events. A page with no photograph shows the initials of the name on a color instead; the grid of organizers or speakers on an event page shows a silhouette.
-- **Why we have it**: for a page that the person sent, their consent (GDPR article 6.1.a). You can withdraw it at any time, and we remove the page. Withdrawing consent does not affect what was published before. For a page built from our announcements, our legitimate interest in keeping the history of the community (GDPR article 6.1.f). You can object to it, and we remove the page.
+- **Why we have it**: for a page that the person sent, their consent (GDPR article 6.1.a). You can withdraw it at any time, and we remove the page. Withdrawing consent does not affect what was published before. For a page built from our announcements, our legitimate interest in keeping the history of the community (GDPR article 6.1.f). You can object to it, and we remove the page (see [Your rights](#your-rights)).
- **How long we keep it**: until the person asks us to remove it, or until we take the page down ourselves because it is out of date.
- **One thing to know**: the source of this site is a public Git repository on GitHub. When we remove a page, it disappears from the site and from the current version of the repository. The old text remains in the repository history, as with any Git project. Tell us if you also want it gone from there and we will work it out with you. Copies kept by search engines and web archives are outside our control.
@@ -40,7 +40,7 @@ The site has pages for the people who organize our events, speak at them, mentor
Some event pages show photographs from the posts of the association on X, with the caption they were posted with. Only photographs that the association published itself are on the site. They show the event in general: a speaker gave the talk in public and accepted that it was recorded, and the audience appears in the background and from a distance.
- **Where it comes from**: the public posts of the association on X.
-- **Why we have it**: our legitimate interest in keeping the history of the community (GDPR article 6.1.f). You can object to a photograph in which you appear, and we remove it.
+- **Why we have it**: our legitimate interest in keeping the history of the community (GDPR article 6.1.f). You can object to a photograph in which you appear, and we remove it (see [Your rights](#your-rights)).
- **How long we keep it**: until someone objects to it, or until we remove the gallery.
### Forms
diff --git a/themes/pybcn_theme/layouts/partials/events_tabs.html b/themes/pybcn_theme/layouts/partials/events_tabs.html
index eb1eeb324..c58b09513 100644
--- a/themes/pybcn_theme/layouts/partials/events_tabs.html
+++ b/themes/pybcn_theme/layouts/partials/events_tabs.html
@@ -3,7 +3,7 @@
/events/ that holds an event, each with its count, through
partials/filter_tabs.html.
- [ All 281 ] [ Monthly meetups 268 ] [ PyDay BCN 9 ] [ PyDataBCN 1 ] [ Other events 3 ]
+ [ All N ] [ Monthly meetups N ] [ PyDay BCN N ] [ PyDataBCN N ] [ Other events N ]
Argument: the page being rendered, /events/ or the index of one
series, so that its tab is marked current.
diff --git a/themes/pybcn_theme/layouts/partials/filter_tabs.html b/themes/pybcn_theme/layouts/partials/filter_tabs.html
index 66b42f7b7..0375ab7f0 100644
--- a/themes/pybcn_theme/layouts/partials/filter_tabs.html
+++ b/themes/pybcn_theme/layouts/partials/filter_tabs.html
@@ -2,7 +2,7 @@
The tabs above a listing: one link per view of the list, with the
current one marked.
- [ All 607 ] [ 💬 Talks 398 ] [ 💻 Workshops 172 ] [ ⚡ Lightning talks 27 ] ...
+ [ All N ] [ 💬 Talks N ] [ 💻 Workshops N ] [ ⚡ Lightning talks N ] ...
Arguments:
label the aria-label of the nav, "Talk types", "Roles", or
diff --git a/themes/pybcn_theme/layouts/partials/people_tabs.html b/themes/pybcn_theme/layouts/partials/people_tabs.html
index 983f965a6..271cde82a 100644
--- a/themes/pybcn_theme/layouts/partials/people_tabs.html
+++ b/themes/pybcn_theme/layouts/partials/people_tabs.html
@@ -4,7 +4,7 @@
then any view with no rows behind it, through
partials/filter_tabs.html.
- [ All 371 ] [ 🎤 Speakers 356 ] [ 🧭 Event organizers 23 ] ... [ 📋 Board (2026) 5 ] ... [ 🪑 Attendees ]
+ [ All N ] [ 🎤 Speakers N ] [ 🧭 Event organizers N ] ... [ 📋 Board (2026) N ] ... [ 🪑 Attendees ]
Argument: the page being rendered, /people/ or the page of one role,
so that its tab is marked current.
diff --git a/themes/pybcn_theme/layouts/people/list.html b/themes/pybcn_theme/layouts/people/list.html
index d732c1d17..45232deda 100644
--- a/themes/pybcn_theme/layouts/people/list.html
+++ b/themes/pybcn_theme/layouts/people/list.html
@@ -3,7 +3,7 @@
first letter of its id, A first, under the tabs that filter it by
role.
- [ All 371 ] [ 📋 Board (2026) 4 ] [ 🧭 Permanent Committee 6 ] [ 🧭 Organizer 21 ] ...
+ [ All N ] [ 📋 Board (2026) N ] [ 🧭 Permanent Committee N ] [ 🧭 Event organizers N ] ...
A | B | C | ...
M
[photo] Marc Pous [in] [gh]
diff --git a/themes/pybcn_theme/layouts/talks/list.html b/themes/pybcn_theme/layouts/talks/list.html
index 40b487c9e..c182505d0 100644
--- a/themes/pybcn_theme/layouts/talks/list.html
+++ b/themes/pybcn_theme/layouts/talks/list.html
@@ -2,7 +2,7 @@
The /talks/ page: every talk of every program the association has
published, in one table, under the tabs that filter it by type.
- [ All 607 ] [ 💬 Talks 398 ] [ 💻 Workshops 172 ] [ ⚡ Lightning talks 27 ] ...
+ [ All N ] [ 💬 Talks N ] [ 💻 Workshops N ] [ ⚡ Lightning talks N ] ...
2025 | 2024 | ... | 2007
Year Month Day Event Talk Gallery
...