From aaa1712d1a28f8b055198460b154e7631bbd4f68 Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 18:09:33 +0200 Subject: [PATCH 1/7] Lay the people grid out from the left, and label a card from its heading Three changes to the grid, which are one change to how a row of cards reads. The rows start on the left. Each row caps its width at the number of cards its section asks for and then centred that cap in the column, so a section of three sat in the middle of the page while a section of six filled it, and no two sections shared a left edge. Measured at 1440px on /pybcn_association/organizers/, the four rows started at 245, 150, 340, and 245, and the last row of the old board put its three cards at 441 because the remainder was centred too. They all start at 150 now. On the PyDay BCN 2025 page the "Speakers" heading is at 450 and the first card was at 489; both are at 450. The half gutter each card carries on its left comes back off the row, so what lands on the line is the edge of the card and not the edge of its gutter. The level heading leaves the row. It is a title between two rules, centred, and inside the row it took the row's cap: the four headings of the organizers page were centred at 625, 720, 530, and 625 and their rules ran 950, 1140, 760, and 950. As a sibling of the row it takes the width of the grid: all four are centred at 720, the centre of the window, with a 1140px rule. It drops the col-md-12 class with the row, which it needed only as a column. The role under a name comes from the heading the card is under, through data/roles.yaml, and falls back to the pybcn_position of the person file. A speaker holds no association position, so 118 of the 207 cards of the site printed an empty line, and an organizer who also spoke printed "PyLadiesBCN Organizer" under the Speakers heading, which answers a question nobody asked there. Every card has a role now and none is empty. The heading is the level name when the level has one and the section title when it does not, which is the rule appearances_index.html already indexes the modal's appearance list by, so a card and a modal name the same role for the same listing. An unmapped heading gives nothing and the card falls through, which is why /organizers/ is unchanged: its four level names are not roles, and "Collaborators" under a name is not one either. The sponsor grid uses the same row and level classes and is untouched: the rules are scoped to the people grid. --- data/roles.yaml | 2 +- themes/pybcn_theme/assets/scss/people.scss | 32 +++++++----- .../pybcn_theme/layouts/_default/event.html | 2 +- .../layouts/partials/people-grid.html | 50 +++++++++++++++---- 4 files changed, 62 insertions(+), 24 deletions(-) diff --git a/data/roles.yaml b/data/roles.yaml index 23f6975b..e8dc8c49 100644 --- a/data/roles.yaml +++ b/data/roles.yaml @@ -18,4 +18,4 @@ Speakers: Speaker Organizers: Organizer Mentors: Mentor Volunteers: Volunteer -PyLadiesBCN Organizers: PyLadiesBCN Organizer +PyLadiesBCN Organizers: Organizer diff --git a/themes/pybcn_theme/assets/scss/people.scss b/themes/pybcn_theme/assets/scss/people.scss index ec259eed..c0981a8a 100644 --- a/themes/pybcn_theme/assets/scss/people.scss +++ b/themes/pybcn_theme/assets/scss/people.scss @@ -2,6 +2,15 @@ // people section, so there is no single id to target. .people_grid { + // The card width, the space between two cards, and the count a row + // falls back to on a tablet. Declared here because the rules below use + // them from the first one. + $card: 178px; + $gutter: 12px; + // A literal divisor is not a division in Dart Sass, which emits + // width: 100%/3 and the browser drops the rule. A variable divides. + $tablet_per_line: 3; + // A Bootstrap container adds its own 15px of padding inside the padding // the column already has. On an event page the level heading band spans // the full width of the col-md-9 while the row of cards sat 15px inside @@ -13,12 +22,17 @@ padding-right: 0; } - // The last row of a section rarely fills. Centring it puts the remainder - // in the middle instead of leaving one card alone on the left, and it - // means every section can keep the same cards per row, so no section ends - // up with wider cards than another and reads as more important. + // Every row of cards starts on the same left edge as the heading above + // it, which is the line the eye follows down the page. Three rules are + // needed. The row caps its own width further down, so it must not be + // centred in the column. The cards of a row that does not fill must not + // be centred under the cards above them. And the half gutter each card + // carries on its left has to come back off the row, so the edge of the + // first card, not the edge of its gutter, is what lands on the line. .row.level { - justify-content: center; + justify-content: flex-start; + margin-left: -$gutter / 2; + margin-right: -$gutter / 2; } // Every card is the same width in every section, and so is the space @@ -32,12 +46,6 @@ // dropped that page from four cards a row to three. As a fraction, four // slots of 190px fit, and the card there is the same 178px as on the // organizers page. - $card: 178px; - $gutter: 12px; - // A literal divisor is not a division in Dart Sass, which emits - // width: 100%/3 and the browser drops the rule. A variable divides. - $tablet_per_line: 3; - .person_wrapper { flex: 0 0 auto; // The card is the container the type sizes against, at the end of @@ -61,7 +69,6 @@ @media (min-width: 768px) and (max-width: 991.98px) { .row.level { max-width: ($card + $gutter) * 3; - margin-left: auto; margin-right: auto; .person_wrapper { @@ -76,7 +83,6 @@ @for $n from 1 through 8 { .row.level.per_line_#{$n} { max-width: ($card + $gutter) * $n; - margin-left: auto; margin-right: auto; .person_wrapper { diff --git a/themes/pybcn_theme/layouts/_default/event.html b/themes/pybcn_theme/layouts/_default/event.html index 3b43d4e5..379a55cf 100644 --- a/themes/pybcn_theme/layouts/_default/event.html +++ b/themes/pybcn_theme/layouts/_default/event.html @@ -73,7 +73,7 @@

Sponsors

{{ range $section := .Params.people_sections }} {{ end }} diff --git a/themes/pybcn_theme/layouts/partials/people-grid.html b/themes/pybcn_theme/layouts/partials/people-grid.html index 439c1f79..39ed9f33 100644 --- a/themes/pybcn_theme/layouts/partials/people-grid.html +++ b/themes/pybcn_theme/layouts/partials/people-grid.html @@ -2,9 +2,12 @@ A grid of person cards, one row per level. Arguments: - levels the list of levels, each with a name, people and people_per_line - Site the site, to look the people pages up - key a name unique to this grid on the page, "people" by default + levels the list of levels, each with a name, people and people_per_line + Site the site, to look the people pages up + key a name unique to this grid on the page, "people" by default + section optional, the title of the people section the grid is in, + when the page has sections (an event page does, see + event.html; an association page lists levels and has none) An event page renders this partial once per people section, and the same person can sit in more than one of them. The key goes into every id the @@ -26,6 +29,25 @@ person file with its own id, and the modal of the second one listed none of the events the first one was in. + With no entry role, the role is the one the heading of the grid gives, + and only then the pybcn_position of the person file. The heading is the + level name when the level has one and the section title when it does + not, which is the rule appearances_index.html indexes the modal's + appearance list by, so the card and the modal name the same role for + the same listing. The heading goes through data/roles.yaml: "Speakers" + gives Speaker. A heading that the file does not map gives nothing, and + the card falls through to pybcn_position: the four level names of + /organizers/ (Management Board, Permanent Committee, Collaborators) are + not mapped, so that page keeps the association position of each person, + which is what it is for. The index prints an unmapped heading as it is + written, because there it is a label for a page; here it would be a + role under a name, and "Collaborators" is not one. + + Before this, the card printed the pybcn_position under a speaker, which + was empty for 118 of the 207 cards of the site (most speakers hold no + position), and put the association role of an organizer who also spoke + under the Speakers heading, where it answered the wrong question. + The column width comes from a per_line_N class rather than from Bootstrap's col-md-N. Twelve columns divide by 1, 2, 3, 4, 6 and 12, so people_per_line was silently rounded for any other value: 5 gave col-md-2, which is six @@ -36,15 +58,25 @@ {{ $pages := where .Site.Pages "Section" "people" }} {{ range $idx, $level := .levels }} -
- {{ if $level.name }} -
-

{{ $level.name }}

-
- {{ end }} + {{- /* nil when the heading is not in roles.yaml, or there is none: + 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 + 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 + widths and their rules came out four different lengths. */ -}} + {{ if $level.name }} +
+

{{ $level.name }}

+
+ {{ end }} +
{{ range $pidx, $person := $level.people }} {{ $id := $person }}{{ $role := "" }} {{ if reflect.IsMap $person }}{{ $id = $person.id }}{{ $role = $person.role }}{{ end }} + {{ $role = default $section_role $role }} {{ range $page := where $pages ".Params.id" "eq" $id }}
{{ partial "people_summary.html" (dict "person" $page "role" $role "key" (printf "%s_%d_%d" $key $idx $pidx)) }} From 307318d5dd75f1a8060dae0aad7a753c4d8d8fad Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 18:10:08 +0200 Subject: [PATCH 2/7] Build the person modal as the header of a person page The modal is on its way to becoming a page per person with its own URL. This lays it out as that page's header and body, and makes its three lists one list in three flavours. The header. One column, not two: the name and the role on the left and a round 160px photo on the right, then Bio, Roles, Events, and Social Links across the full width. The photo was a 300px square in a left column that nothing went under, so a modal with three short lines of header opened with a column of white down its left side, which is the feedback Laura sent. 160px comes from the 400px file the card has already loaded, so the modal still costs no request and needs no new variant; one source of the 130 is smaller, patricio-reyes-valenzuela.jpg at 120px square, and the rule that never enlarges shows his at 120. The name goes from Bootstrap's 28px to 32px, which is the title of the header it is becoming, and on a phone the photo comes down to 112px: a 360px screen gives the body 310px, 40 of it clears the close button and 20 is the gap, and at 160 the name was left 90px and took three lines. The dialog narrows from 900px to 580px, which is the same sum the 900 was: without the photo column and its gap, 548px of text and 32px of padding. At 900 a bio line ran 866px, 122 characters, about twice a comfortable measure. The lists. Roles was a definition list laid out as a table of label and value; Events and Social Links were bulleted. Every row of all three is now built the same way: a marker, the subject in bold, and the thing it points at as the link. "Permanent Committee at PyBCN". "Speaker at PyDay BCN (2025)". "LinkedIn: /in/davidarcos". The markers all sit at 447px in David Arcos's modal at 1440px, where the section headings are, and all three texts at 485px; Social Links carried a disc as well as its icon and started 20px further right. The marker of a role row and of an event row is an emoji for the role, from the new data/role_emoji.yaml. Close roles share a glyph and an unknown role takes a neutral one, so a role added tomorrow shows up with a mark rather than with a hole. The four level names of the organizers page are in the file too: they are not roles, and without them 26 of the 32 role rows fell back to the silhouette. Every emoji in the file has emoji presentation by default, so none needs U+FE0F and none is a ZWJ sequence: either one is a glyph to one font and two to another, and the row width would then depend on the reader's font. The glyphs are greyed, because a colour emoji is a shaded picture and in grey it stays one; measured in Chromium with Noto Color Emoji over a whole modal of them, grayscale alone gives a mean luminance of 142 with 2% of the ink almost black. The social rows name their network, because two of the four icons are a brand mark a reader may not know and a bare path does not say which network it belongs to: "DZPM" appeared twice under two glyphs. The GitHub and X names take the at sign those networks write them with, added at render time, because the front matter holds the URL and a second copy of a handle would drift from it. The whole row answers the pointer and is the link. The marker comes back in colour, the subject turns the blue of a link, and the link takes an underline; focus-within does the same for the keyboard. The link stretches over the row with a pseudo element rather than by wrapping the row in an anchor, which would put the marker and the role inside the link text. A row with two links keeps its own link areas, through :only-of-type: no row has two today, out of 135 role rows and every event row, but the template allows it. The social icons are grey at rest and blue under the pointer, on the card as well as in the modal. They were solid black on a card and the link blue in a modal, which are two answers to one question on one page. The grey is #6c757d, 4.68:1 on white, above the 3:1 that WCAG 1.4.11 asks of a graphic that carries meaning. appearances_title, read by appearances_index.html, is the name a page goes by in an appearance line. A page title says what a page is, which is not the words a line of this list wants: /pyladies_bcn/organizers-and-speakers/ is titled "PyLadies BCN Organizers" and the line reads "Organizer at PyLadies BCN". Nothing else reads the field. Measured at 1440, 1200, 992, 768, 576, and 360 on the organizers page, the PyLadies page, and PyDay BCN 2025: every row of every list is 24px tall except on a 360px screen, where the long ones take two lines; four social icons stay on one line on every card; and no page or modal gains a horizontal scrollbar. The modal itself used to scroll sideways at 576px, where a 300px photo sat beside a 222px text column, and no longer does. --- data/role_emoji.yaml | 51 ++ themes/pybcn_theme/assets/scss/main.scss | 4 + themes/pybcn_theme/assets/scss/people.scss | 532 +++++++++++++----- .../layouts/partials/appearances_index.html | 9 +- .../layouts/partials/people_summary.html | 143 +++-- .../layouts/partials/person_appearances.html | 56 +- .../layouts/partials/person_links.html | 24 +- 7 files changed, 605 insertions(+), 214 deletions(-) create mode 100644 data/role_emoji.yaml diff --git a/data/role_emoji.yaml b/data/role_emoji.yaml new file mode 100644 index 00000000..41eb4cbe --- /dev/null +++ b/data/role_emoji.yaml @@ -0,0 +1,51 @@ +# The emoji that marks each row of the Roles and the Events lists +# of a person modal (see person_appearances.html). Left side: the role of +# the row. For an events row that is the first of its roles, the heading +# of the event page through roles.yaml. For a roles row it is the label of +# the row, which is a level name of an organizers page through roles.yaml, +# and a level name that is not a role ("Permanent Committee", +# "Collaborators", "Management Board (2026)") is not here and takes the +# "*" entry. Right side: one emoji. A role that is not here takes the "*" +# entry, so a new role shows up with a neutral glyph rather than with +# none, and the row does not change shape when it is added. The four +# level names above are the live test of that fallback. +# +# Every emoji here has emoji presentation by default (Emoji_Presentation +# in the Unicode emoji data), so none of them needs U+FE0F, the variation +# selector, and none is a ZWJ sequence. Both are banned: a selector or a +# joiner is one glyph to one font and two to another, so the marker column +# would depend on the visitor's font. Keep to that set when adding a row: +# a candidate that needs FE0F (a heart, a star, a hammer and pick) is out +# even if it fits the role better. +# +# Close roles share one glyph. A Former X takes the glyph of X: the row +# already prints "Former", and a second glyph for a past post would say +# that the post itself was different, which it was not. +# The four posts of the board have a glyph each, so that the posts tell +# apart at a glance when the board page lists them. +Speaker: đŸŽ€ +Mentor: 🎓 +Volunteer: 🙋 +Organizer: 🧭 +Collaborator: đŸ€ +President: 🔑 +Former President: 🔑 +Secretary: 📝 +Former Secretary: 📝 +Treasurer: đŸ’¶ +Former Treasurer: đŸ’¶ +Communications: 📣 +Events: 📅 +"*": đŸ‘€ + +# The Roles list of the modal is keyed by the level a person sits +# at, not by a role: "Permanent Committee", not "Organizer". Those names +# are below so that the list reads as a group per row rather than as the +# fallback silhouette on every row. A level name that is not here falls +# back to "*", which is why the board rows carry the year: a 2027 board +# needs a row of its own, and until it has one its glyph is the neutral +# one, not a wrong one. +Permanent Committee: 🧭 +Collaborators: đŸ€ +Management Board (2026): 📋 +Management Board (2018 - 2025): 📋 diff --git a/themes/pybcn_theme/assets/scss/main.scss b/themes/pybcn_theme/assets/scss/main.scss index bfef0d21..f3582d45 100644 --- a/themes/pybcn_theme/assets/scss/main.scss +++ b/themes/pybcn_theme/assets/scss/main.scss @@ -1,5 +1,9 @@ $navbar-color: #FFFFFF; $blue-pybcn: #006c9b; +// The rest colour of an icon that lights up under the pointer: a social +// glyph on a card and in a modal. 4.68:1 on white, above the 3:1 WCAG +// 1.4.11 asks of a graphic that carries meaning. +$icon-grey: #6c757d; $yellow-pybcn-OLD: #ffdc39; $yellow-pybcn: #fdbf2e; $dark-grey: #343a40; diff --git a/themes/pybcn_theme/assets/scss/people.scss b/themes/pybcn_theme/assets/scss/people.scss index c0981a8a..86d676a2 100644 --- a/themes/pybcn_theme/assets/scss/people.scss +++ b/themes/pybcn_theme/assets/scss/people.scss @@ -279,10 +279,21 @@ // (see .icon_x in main.scss), so it follows the same rule. i { font-size: clamp(18px, 16cqi, 32px); - color: black; - &:hover { - color: $blue-pybcn; - } + // Grey at rest and the PyBCN blue under the pointer, + // the same treatment the glyph of an appearance row + // takes in the modal. They were solid black here and + // the link blue in the modal, which are two answers to + // the same question on one page. 4.68:1 on white, so + // the grey still passes the 3:1 WCAG asks of a graphic. + color: $icon-grey; + transition: color 0.15s linear; + } + + // On the link and not on the glyph, so the margin each + // link carries is part of the target. + a:hover i, + a:focus i { + color: $blue-pybcn; } } @@ -312,39 +323,49 @@ .modal { .modal-dialog { - // 900px, from the content and not from the window: the - // 300px photo column and its 20px gap, a 548px text - // column, and the 16px of body padding each side. The - // text column holds the longest line the modal renders - // in one line, the 498px event line "Mentor and - // Organizer at Hands-on Django with PyLadiesBCN (2022)" - // behind its 20px list indent, and is about 65 - // characters of the body font, a comfortable measure - // for a bio paragraph. The old cap was 70% of the - // window: 1006px at 1440px, where a line of text ran - // 650px and the foot of the modal was blank to the - // right of the social links, and a percentage of a - // 2560px screen is wider still. Under 900px the dialog - // fits the window, as a max-width does. - max-width: 900px; - - // Two columns: the photo on the left, everything else - // on the right. The photo used to sit in the header - // only, beside the name, the role and the bio, with - // the sections running full width under it: three - // short lines beside a 200px photo left a gap under - // the photo that the first section had to clear. The - // right column now holds the sections too, so nothing - // runs under the photo whatever the length of the text. + // 580px, from the content and not from the window: + // the 548px text column, which is now the whole body, + // and the 16px of body padding each side. The cap was + // 900px while the photo was a 300px column with a + // 20px gap beside that text column. With the photo in + // the header row the column and the gap are gone, and + // 900px put 866px of bio on one line: 122 characters + // of the 16px body font on the first line of Jordi + // Bosch's bio, measured at 1440px, about twice a + // comfortable measure. The 548px holds the longest + // line the modal renders in one line, the 498px event + // line "Mentor and Organizer at Hands-on Django with + // PyLadiesBCN (2022)" behind its 38px marker column, and + // is about 76 characters of the body font at the 7.15px + // the average glyph of that bio measures. The header + // row leaves 422px for the name after the 40px that + // clears the close button, the 20px gap, and the 64px + // photo, and "Elisabeth Ortega Carrasco", the longest + // name on the organizers page, sits on one line there + // at 28px. The cap before 900px was 70% of the window: + // 1006px at 1440px, and a percentage of a 2560px + // screen is wider still. Under 580px the dialog fits + // the window, as a max-width does. + max-width: 580px; + + // One column: a header row, then the sections at the + // full width of the body. The body used to be two + // columns, the photo on the left at 300px and the text + // on the right, so that nothing ran under the photo. + // That put a blank strip under the photo instead, as + // tall as the text beside it, which for a person with + // a bio is most of the modal. The photo is small and + // round now and takes the corner of the header, so the + // text has nothing to clear and the columns are gone. + // The body is a block again, the Bootstrap default, and + // the close button stays where the two-column layout + // put it: absolute in the corner, at the body padding. + // Bootstrap floats it, and a float beside the header + // row would narrow the row by the width of the button + // through the block formatting context a flex + // container opens, which is true but not something a + // reader of this file should have to know. .modal-body { - display: flex; - align-items: flex-start; - - // Bootstrap floats the close button, and a flex - // container ignores floats: the button would become - // the first item of the row and push the photo - // right. It sits in the corner instead, where the - // float put it, at the body padding. .close { position: absolute; top: 1rem; @@ -352,47 +373,148 @@ } } - // The photo column is as wide as the photo and no - // wider: 300px, or the short side of a smaller source - // (see people_summary.html), so a 200px photo leaves - // the room to the text and not to a blank strip. 300px - // is a third of the dialog on a wide screen, half again - // the 200px of before, which was the card's size and - // small next to the text, and under the 400px that was - // a quarter of the modal and the only thing a reader - // saw at first. The 400px file serves it at 1x and the - // 800px file at 2x. - .person_photo { - flex: 0 0 auto; - margin-right: 20px; + // The name and the role on the left, the photo on the + // right, and only those two share the row: a flex row + // and not a float, because a float would let the bio + // run up beside the photo and collide with the section + // headings and their rules. The row is as tall as the + // taller of the two, and the photo is sized so that + // the two are nearly the same height (see .person_photo + // below), so the row ends where the text ends and the + // first section starts right under the role. With the + // 120px photo the row was 120px tall against 60px of + // name and role, and the Bio heading sat 80px under + // the role: a blank band that read as a missing + // section. Centred, not top-aligned: the two differ by + // 4px on one line, so centring moves the name 2px, + // and when a long name wraps to two lines the photo + // sits on the middle of the block instead of hanging + // off its first line. Top alignment was chosen when + // the photo was 120px and centring would have floated + // the name 30px under the close button; at 64px that + // reason is gone. + // + // The right padding is what keeps the photo off the + // close button, which sits in the rightmost 14px of the + // body, 24px tall, at the top right corner the photo + // now takes too. 2.5rem is 40px: the 14px of the button + // and 26px of air, so the ring of the photo does not + // touch the button and the pointer has a clear target. + // The padding is on the row and not on the title, so + // the photo clears the button too, not only the text. + .person_header { + display: flex; + align-items: center; + padding-right: 2.5rem; + // Padding and no rule. A rule under this row put a + // line right above the one the BIO heading carries, + // so the first section opened with two hairlines a + // few pixels apart. + padding-bottom: 16px; } // min-width: 0 lets a long name wrap instead of - // pushing the column wider than the modal: a flex - // item is as wide as its longest word by default. - .person_main { + // pushing the row wider than the modal: a flex item + // is as wide as its longest word by default. The 20px + // to the photo is the gap the two columns had. + .person_heading { flex: 1 1 auto; min-width: 0; + margin-right: 20px; + } + + // The photo: a round frame that clips, with a hairline + // ring, after the avatar on davidarcos.net. 160px is + // the size the markup gives the image too (see + // people_summary.html). This block is on its way to + // becoming the header of a page per person, and a + // portrait is what a person page opens with, so the + // face is shown at a size a reader can read a face at. + // It was 64px for one build, which is the height of + // the name and the role beside it, and at that size it + // is a mark, not a portrait. + // + // The band that costs is under the role: the row is as + // tall as the photo, so a name that fits on one line + // leaves (160 - 60) / 2 of air above the name and the + // same under the role. The heading grows to take a + // share of it, and what is left reads as the padding + // of a header band rather than as a gap, because the + // rule under the row closes it. + // + // The 160px image is the 400px card file scaled down + // by the browser, no new variant and no new request: + // the card has already loaded it when the modal opens. + // + // The ring is a box-shadow and not a border: a border + // takes part in the layout and shifts the image by its + // width, and a shadow is drawn outside the box. 15% + // black on the white of the modal, a hairline, so the + // frame has an edge where the photo is light at the rim. + // The frame clips the zoom below, so the photo never + // spills out of the circle. + .person_photo { + flex: 0 0 auto; + border-radius: 50%; + overflow: hidden; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15); + + // display: block, because an inline image sits on + // the text baseline and leaves a few pixels of + // space under it inside the frame, which the ring + // would show. object-fit covers the fallback image, + // which is not square; a person photo is already + // square from the pipeline. + img { + display: block; + width: 160px; + height: 160px; + border-radius: 50%; + object-fit: cover; + } + + // On hover the photo comes closer inside the frame, + // the same move the card makes. Only for a reader + // who has not asked for less motion: the card + // moves for everyone, and this one is the rule to + // follow from now on. + @media (prefers-reduced-motion: no-preference) { + img { + transition: transform 0.2s linear; + } + + &:hover img { + transform: scale(1.2); + } + } } - // The right padding keeps the name clear of the close - // button, which no longer floats beside it. On the - // title only: the lists below do not reach that - // corner and get the whole column. + // No right padding on the title any more: the header + // row above carries it, for the photo as well. + // Larger than Bootstrap's 28px, because this row is + // on its way to being the header of a page per person + // and the name is its title. It also takes a share of + // the air the 160px photo opens beside a one line + // name: the heading block goes from 60px to 66px. .modal-title { + font-size: 2rem; margin-bottom: 2px; - padding-right: 24px; } // Italic and plain, as on the card, so the pair - // under the photo reads the same in both places. + // beside the photo reads the same in both places. No + // margin under it: the first section brings its own + // 20px, the gap every section keeps from the block + // above it, and the 8px that used to be here put the + // Bio heading 28px under the role, 8px further than + // Roles sits under the bio. .person_role { font-style: italic; - margin-bottom: 8px; + margin-bottom: 0; } // Every block of the modal below the name is a section - // with a heading: Bio, Description, Roles at PyBCN, + // with a heading: Bio, Description, Roles, // Events, Social Links. The modal used to be a stack of // blocks with no label, so a reader had to guess that a bold word was // a role and a list of years was a history. A section @@ -425,34 +547,26 @@ } } - // The roles the person holds, one row per label: the - // label in the first column, the linked page titles - // in the second. A grid rather than a table, so the - // label column is as wide as its longest word and no - // wider. See person_appearances.html. - .appearances { - display: grid; - grid-template-columns: max-content 1fr; - gap: 4px 12px; - margin: 0; - - dt { - font-weight: bold; - } - dd { - margin: 0; - } - } + // The roles the person holds, one line per role, built + // and styled exactly as an event line: the glyph, the + // role in bold, an italic "at", and the page. It was a + // definition list in a two column grid, which put the + // same kind of statement in a different shape from the + // list right under it, and on a phone the label column + // was as wide as "Management Board (2018 - 2025)" and + // left 80px of a 390px screen for the page beside it. + // Nothing is set here: ul.events below carries it, and + // the selector lists both. See person_appearances.html. // The two lists of the modal, the events and the - // social links, with one treatment: a disc marker and - // the indent that goes with it, so each reads as a - // list. Both used to drop the marker and the padding, - // and five events were five loose lines with nothing - // to say they were one list, under a heading styled - // like the one over a table. The indent is the width - // of the marker and a space, no more: the browser - // default of 40px pushed a list in from the headings. + // social links, with one treatment: a marker and the + // indent that goes with it, so each reads as a list. + // Both used to drop the marker and the padding, and + // five events were five loose lines with nothing to + // say they were one list, under a heading styled like + // the one over a table. The indent is the width of + // the marker and a space, no more: the browser default + // of 40px pushed a list in from the headings. .modal_section ul { list-style: disc; padding-left: 1.25em; @@ -464,9 +578,129 @@ } } - // The events, one line per event, newest first, the - // role before the linked title. See - // person_appearances.html. + // The roles and the events, one line each, the role + // before the linked page or title. See + // person_appearances.html. The marker is the role + // glyph that starts the row, not the disc: the row + // carries it as the social rows carry the network + // icon. The padding is the glyph's column, so the + // text starts where it starts under a disc, at the + // padding edge, and a wrapped line starts there too. + // The selector repeats the ul of the rule above, + // because a class alone loses to that class and + // element pair, and the list kept the disc and the + // 1.25em indent under the glyph. + .modal_section ul.appearances, + .modal_section ul.events { + list-style: none; + padding-left: calc(1.875em + 8px); + + // The whole row answers the pointer, not only the + // link in it: the glyph, the role and the link are + // one statement, and a reader aiming at any of the + // three is after the same page. focus-within does + // the same for the keyboard, where the link is what + // takes focus. The glyph drops its grey and comes + // back in colour, which is the only place on the + // page a role shows its own colour. + li:hover, + li:focus-within { + .role_emoji { + filter: none; + } + + strong { + color: $blue-pybcn; + } + + a { + text-decoration: underline; + } + } + + // The whole row is the link, not only its text. The + // link stretches over the row with a pseudo element + // rather than by wrapping the row in an anchor, + // which would put the glyph and the role inside the + // link text and read them out with it. + // + // :only-of-type is the guard. A role held on two + // pages prints two links on one row, and there is + // no one row to stretch: those rows keep their own + // link areas. No row has two links today, out of + // 135 role rows and every event row, but the + // template allows it. + li { + position: relative; + } + + li > a:only-of-type::after { + content: ""; + position: absolute; + inset: 0; + } + + // A colour change, not a move, so there is nothing + // for prefers-reduced-motion to turn off. + .role_emoji, + strong { + transition: color 0.15s linear, filter 0.15s linear; + } + } + + // The role glyph as the marker of a Roles or an Events + // row, from data/role_emoji.yaml. Sized as the network + // icon of .modal_links below: 1.25em in a 1.5em column + // with 8px to the text, so a glyph of any width leaves + // the text on one line down the list. The column is + // 1.875em of the body font plus 8px, which is the + // padding the two lists above set, and the negative + // margin pulls the glyph back into that padding, where + // a disc sits. Pulled back and not placed with + // position, so it stays on the line of its row when + // the row wraps. + // + // Desaturated, so the glyph sits with the black icons + // of Social Links rather than being the one spot of + // colour in the modal. grayscale and nothing else: a + // colour emoji is a shaded picture, and in grey it is + // a light one, which is what this list wants. The + // marker labels the row; the text beside it is what + // the reader is here for, and a grey mark does not + // compete with it. + // + // Measured in Chromium with Noto Color Emoji, over + // the ink of a whole modal of glyphs: grayscale alone + // gives a mean luminance of 142 (0 is black) with 2% + // of the ink almost black. Darkening first and then + // stretching the contrast, which this rule did for one + // build, gives a mean of 53 with 64% of the ink almost + // black: the shaded faces of the compass and the + // calendar fill in and the glyph reads as a blot. A + // flat black glyph like the icons is out of reach for + // a filter either way, because the emoji keeps its + // shading. + // + // Upright and at the normal weight, because the dt is + // bold and a slanted or heavy emoji is a font bug on + // some platforms and never a style. line-height: 1 + // keeps the glyph from opening the line box of its + // row further than its own height, and middle-aligned + // the text sits on the centre of the glyph instead of + // on its bottom edge. + .role_emoji { + display: inline-block; + font-size: 1.25em; + font-style: normal; + font-weight: normal; + line-height: 1; + width: 1.5em; + margin-left: calc(-1.5em - 8px); + margin-right: 8px; + text-align: center; + vertical-align: middle; + filter: grayscale(1); + } // The links of the card, listed with their text at the // foot of the modal, so a reader can see the handle or @@ -474,7 +708,23 @@ // place the modal shows them: a bare icon row next to // the name said the same thing with less. See // person_links.html. - .modal_links { + // The selector repeats the ul, as .events above does: + // a class alone loses to the class and element pair of + // .modal_section ul, and the list kept the disc and the + // 1.25em indent that rule sets. + .modal_section ul.modal_links { + // The network icon is this list's marker, so the + // disc goes: with both, the row carried two + // markers and its text started 20px to the right + // of the text in the two lists above, which now + // start with a glyph of their own. The padding is + // the one those two set, so the three lists share + // one column. The negative margin on the icon is + // what pulls it back into the padding; it is set + // on i below, where the column width is. + list-style: none; + padding-left: calc(1.875em + 8px); + // A link text is one unbroken string, the path of // a LinkedIn profile or a site address, and one of // them is 600px of percent-encoded emoji. A string @@ -485,18 +735,66 @@ overflow-wrap: anywhere; } + // The whole row answers the pointer and is the + // link, as a row of the two lists above is: the + // icon colours, the address takes an underline, + // and a click anywhere on the row follows it. The + // network name is bold, so it lights like the role + // of a role row. + li { + position: relative; + } + + li > a::after { + content: ""; + position: absolute; + inset: 0; + } + + li:hover, + li:focus-within { + i { + color: $blue-pybcn; + } + + strong { + color: $blue-pybcn; + } + + a { + text-decoration: underline; + } + } + // One column for the icon whatever its width, so // the text starts on one line down the list. The // LinkedIn glyph is narrower than the globe, and // the X mark is a box of its own (see .icon_x in // main.scss) that sets neither width nor gap. + // Grey at rest and the PyBCN blue under the + // pointer, the same as the card above and as the + // role glyph of the two lists above. The icon took + // the link colour, so it was blue at rest and the + // row said nothing when the pointer reached it. + strong { + transition: color 0.15s linear; + } + i { display: inline-block; + color: $icon-grey; + transition: color 0.15s linear; // Larger than the text beside it, because these // are now the only icons in the modal. font-size: 1.25em; width: 1.5em; margin-right: 8px; + // Into the padding above, where the disc used + // to sit and where the role glyph of the two + // lists above sits. The margin is in em of the + // icon; the 8px is the gap it sets above, so the + // pull is the column plus the gap. + margin-left: calc(-1.5em - 8px); text-align: center; vertical-align: -2px; } @@ -516,55 +814,23 @@ .modal-dialog { max-width: 100%; - // The columns stack: the photo on top, the text - // under it. Side by side, a 300px photo left 50px - // of a 390px screen for the text, and the 120px - // photo the modal used beside the name left the - // name wrapping one word to a line. Stacked, the - // photo is capped at 200px so the name is still on - // the first screen: at 300px the first section - // started half way down it. The title comes down - // too: at Bootstrap's 28px a three-word name took - // three lines of a 374px dialog. - .modal-body { - flex-direction: column; - } - - .person_photo { - margin: 0 0 12px; - - img { - max-width: 200px; - } - } - - .person_main { - // The column is as wide as the dialog, not as - // wide as its content, so a list does not run - // past the edge. - width: 100%; + // A 360px screen gives the modal body 310px, and + // 40px of that clears the close button and 20px is + // the gap to the photo. At the desktop 160px the + // name is left 90px and "Laura Perez Mayos" takes + // three lines of it. 112px leaves 138px and two. + .person_photo img { + width: 112px; + height: 112px; } + // The title comes down too: at 32px the same name + // takes four lines of that 138px, and two at + // 1.4rem. .modal-title { font-size: 1.4rem; - // No close button beside the first line any - // more: it is above the photo. - padding-right: 0; } - // The roles stack on a phone: the label column is - // as wide as "Management Board (2018 - 2025)", which - // left 80px of a 390px screen for the page title - // beside it, three lines for "PyLadies BCN - // Organizers". The page goes under its label, - // indented, as a definition list does by default. - .appearances { - display: block; - - dd { - margin: 0 0 4px 1em; - } - } } } diff --git a/themes/pybcn_theme/layouts/partials/appearances_index.html b/themes/pybcn_theme/layouts/partials/appearances_index.html index ec707429..d546de9c 100644 --- a/themes/pybcn_theme/layouts/partials/appearances_index.html +++ b/themes/pybcn_theme/layouts/partials/appearances_index.html @@ -87,7 +87,14 @@ current board first, and the list has to read that way rather than alphabetically, which put the 2018 board above the current committee. */ -}} - {{- $entry := dict "label" $label "title" $pg.Title "url" $pg.RelPermalink "year" (int (default 0 $pg.Params.year)) "ord" $ord -}} + {{- /* appearances_title, when the page sets one, is the name this + list calls the page by. A page title says what the page is, + and a line of this list says where a role is held, which is + not the same words: /pyladies_bcn/organizers-and-speakers/ + is titled "PyLadies BCN Organizers", and the line reads + "Organizer at PyLadies BCN". Without it the line repeats + the role in the name of the page it links to. */ -}} + {{- $entry := dict "label" $label "title" (default $pg.Title $pg.Params.appearances_title) "url" $pg.RelPermalink "year" (int (default 0 $pg.Params.year)) "ord" $ord -}} {{- $index = merge $index (dict $id (append $entry (default slice (index $index $id)))) -}} {{- end -}} {{- end -}} diff --git a/themes/pybcn_theme/layouts/partials/people_summary.html b/themes/pybcn_theme/layouts/partials/people_summary.html index 47891fcf..7b2678d2 100644 --- a/themes/pybcn_theme/layouts/partials/people_summary.html +++ b/themes/pybcn_theme/layouts/partials/people_summary.html @@ -2,22 +2,29 @@ One person card, plus the modal that holds the long bio. Photos come from assets/images/people/ and go through the Hugo image - pipeline. The grid slot is 350 px wide at most and the modal shows the - image at 300 px, so one 400 px WebP serves both, with an 800 px variant - for a 2x screen. A person with no photo falls back to anon_member.png. + pipeline. The grid slot is 350 px wide at most, so one 400 px WebP + serves it, with an 800 px variant for a 2x screen. The modal shows the + same file at 64 px: the card has already loaded it by the time the + modal opens, so the modal costs no request, and a file sized for the + modal would be one more download for the same picture. A person with no + photo falls back to anon_member.png. The modal shows the photo no larger than the source. image_square.html enlarges a small source to 400 px for the grid, where every slot has to be one size, and bin/check-content warns about the 28 photos that are - under 400 px. At 300 px the modal would show 21 of them enlarged by half - again, soft, next to a name. The modal has no slot to fill, so a photo - with a short side under 300 px is shown at its own size instead: a - 200 px source is a 200 px photo, which is what the modal showed before. + under 400 px. The modal has no slot to fill, so a photo with a short + side under the shown size is shown at its own size instead. At 160 px + one source is under it, patricio-reyes-valenzuela.jpg at 120 px square, + and it is shown at 120. Every other source is 199 px or more. The rule + matters more than the count: it is what stops the modal showing an + enlarged, soft face, which is what it did at 300 px, where 21 photos + came out half again their size. Arguments: person the person page - role optional, the role to show instead of pybcn_position, when - the page lists the person with one (see people-grid.html) + role optional, the role to show instead of pybcn_position: the + one the page entry carries, or else the one the heading of + the grid gives (see people-grid.html) key the grid key, so the modal id is unique on the page A remote photo is not supported. The template used to accept photo_url @@ -37,11 +44,12 @@ {{- $img = resources.Get "images/anon_member.png" -}} {{- end -}} {{- $small := "" -}}{{- $large := "" -}}{{- $srcset := "" -}} -{{- /* The side the modal shows the photo at: 300 px, or the short side of - the source when that is smaller. See the note at the top. */ -}} -{{- $shown := 300 -}} +{{- /* The side the modal shows the photo at: 64 px, or the short side of + the source when that is smaller. See the note at the top. The same + number is in people.scss, as the size of the round frame. */ -}} +{{- $shown := 160 -}} {{- with $img -}} - {{- $shown = int (math.Min 300 (math.Min .Width .Height)) -}} + {{- $shown = int (math.Min 160 (math.Min .Width .Height)) -}} {{- $anchor := default "Smart" $.person.Params.photo_anchor -}} {{- $small = partial "image_square.html" (dict "img" . "size" 400 "anchor" $anchor) -}} {{- $large = partial "image_square.html" (dict "img" . "size" 800 "anchor" $anchor) -}} @@ -66,7 +74,16 @@ card is cut with an ellipsis (see people.scss). The modal shows it in full as well. */}}

-

{{ $role }}

+ {{/* Left out when empty, as in the modal below: a person with no + position under a heading roles.yaml does not map has no role, + and the line used to print as an empty paragraph. The text + alone: the role glyph of data/role_emoji.yaml sat here for + one commit, and it read as a stray character of the italic + line rather than as a mark. It is the list marker of the + Roles and Events rows of the modal now, where it has a column + of its own, like the network icon in Social Links (see + person_appearances.html). */}} + {{ with $role }}

{{ . }}

{{ end }}
diff --git a/themes/pybcn_theme/layouts/partials/person_appearances.html b/themes/pybcn_theme/layouts/partials/person_appearances.html index c542a254..7ed2d89d 100644 --- a/themes/pybcn_theme/layouts/partials/person_appearances.html +++ b/themes/pybcn_theme/layouts/partials/person_appearances.html @@ -1,9 +1,9 @@ {{- /* - The pages one person appears on, as two labelled lists. + The pages one person appears on, as two lists with one line each. - Roles at PyBCN - Permanent Committee Organizers - PyLadiesBCN Organizer PyLadies BCN Organizers + Roles + Permanent Committee at Organizers + Organizer at PyLadies BCN Events Speaker at PyDay BCN (2025) @@ -11,7 +11,10 @@ Mentor and Speaker at Hands-on Django with PyLadiesBCN (2022) Organizer at PyDay BCN (2021) - In the events the roles are bold and "at" and "and" italic. + Every line of both lists is built the same way: the role glyph, the + role in bold, an italic "at", and the page it is held on. Roles was a + definition list laid out as a table of label and value, which said the + same kind of thing as the line under it in a different shape. Argument: the person page. @@ -38,8 +41,8 @@ history. They are now two lists under two headings, each one left out when it is empty. - Roles: grouped by label, one row per label, the pages that give it as - links. The order is the page and then the order the page itself lists + Roles: grouped by label, one line per label, the pages that give it as + links. A label held on two pages lists both, separated by a comma. The order is the page and then the order the page itself lists its levels, which is current board first: sorting them by label put Management Board (2018 - 2025) above Permanent Committee, and the PyLadies page above both. The page comes from its path, so the PyBCN @@ -63,6 +66,29 @@ Everyone on /organizers/ has at least that page, but the index covers only the people listed there, so a speaker of one event who is not an organizer still has an empty list. The Archive will widen this. + + Each row of both lists starts with the glyph of its role from + data/role_emoji.yaml, as its list marker, the way each row of Social + Links starts with the icon of its network (see person_links.html). The + glyph was on the card, next to the role under the name, and read there + as a stray character of the italic line; as the marker of a row it has + a column of its own, and the three lists of the modal read as one kind + of thing. An events row has its roles, so the glyph is the one of the + first role in the sorted list: Ferran Jovell as "Mentor and Speaker" + gets the mentor's cap, because the row has one marker, as the social + rows have one icon, and the first role is the one the eye meets. A + roles row is keyed by its label, which is a level name through + roles.yaml, so a label that is a role, "Organizer", finds + its glyph, and a level that is not a role, "Permanent Committee" or + "Collaborators", takes the "*" fallback of the table. + + The glyph is hidden from a screen reader in both lists. In the events + list the role is the text right after it, so a label would make the + reader say "Speaker, Speaker" on every row. In the roles list the text + is the level, not the role, but the glyph never says more than the + text does: the table is keyed by role, so a label that finds a glyph + is itself a role name and is read as such, and a label that does not + gets the neutral fallback, which says nothing a name could carry. */ -}} {{- $index := partialCached "appearances_index.html" site "appearances-index" -}} {{- $groups := dict -}} @@ -90,13 +116,17 @@ {{- end -}} {{- with $roles -}} {{- end -}} {{- with $list -}} @@ -111,7 +141,7 @@

Events

and left "Mentor and Speaker" as one italic run where the "and" looked like part of a role name. */ -}} {{- $labels := .labels }} -
  • {{ range $i, $label := $labels }}{{ if $i }}{{ if eq $i (sub (len $labels) 1) }} and {{ else }}, {{ end }}{{ end }}{{ $label }}{{ end }} at {{ .title }}
  • +
  • {{ range $i, $label := $labels }}{{ if $i }}{{ if eq $i (sub (len $labels) 1) }} and {{ else }}, {{ end }}{{ end }}{{ $label }}{{ end }} at {{ .title }}
  • {{- end }} diff --git a/themes/pybcn_theme/layouts/partials/person_links.html b/themes/pybcn_theme/layouts/partials/person_links.html index cb94f3d8..b8e3362c 100644 --- a/themes/pybcn_theme/layouts/partials/person_links.html +++ b/themes/pybcn_theme/layouts/partials/person_links.html @@ -1,7 +1,9 @@ {{- /* - The social links of one person as a list, each with its icon and the - text a reader needs to know where the link goes: the LinkedIn path, the - GitHub or X user name, or the address of a personal site. + The social links of one person as a list, each one a line built the way + a role line and an event line are built: the icon, the name of the + network in bold, and then the part a reader needs to know where the + link goes, as the link. That is the LinkedIn path, the GitHub or X user + name with its at sign, or the address of a personal site. Argument: the person page. @@ -16,7 +18,13 @@ enforces: https://www.linkedin.com/..., https://github.com/ and https://x.com/. Cutting the known prefix is therefore safe, and it keeps a second copy of the handle out of the front matter, where - it would drift from the URL. A site is a free URL and is shown whole. + it would drift from the URL. A GitHub or X name is shown with the at + sign the two networks write it with, which the URL does not carry. A + site is a free URL and is shown whole. + + The icon and the name of the network are outside the link, as the glyph + and the role are outside the link of a role line. The whole row is the + target anyway: see the stretched link in people.scss. The heading says "Social Links", not "Links": the modal links to event pages and to the organizers pages as well, and "Links" alone did not say @@ -28,16 +36,16 @@

    Social Links

    From f17a294efb2a79bd87cea3a0392eb353da6cce98 Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 18:10:22 +0200 Subject: [PATCH 3/7] Correct the roles the person files claim Four corrections, all of them a role a card prints under a name. Toni Espadas carried "Treasurer" and Peter Krupa "Communications", and neither took the post: both bios are the candidacy they wrote for the 2026 board and both end by asking for the job. The field is gone from the two files. That also ends two clashes with the people who do hold those posts, Yago Tafalla and Mauricio Volcanes, which is one of the open items of #190: a free-text position carries no term, so nothing stopped a second person taking one. The seven files that carried "PyLadiesBCN Organizer" carry "Organizer". The role made the line "PyLadiesBCN Organizer at PyLadies BCN Organizers", which says PyLadies BCN twice and Organizer twice. data/roles.yaml maps the heading of that page to the short role, so the cards there read Organizer as well. /pybcn_association/information.md said "Board member of Comunication" and "Board member of Events" where the 2026 board cards say Communications and Events, and the first also spelled it with one m. PyBCN is a small association and the post is the work, not the seat on the board. On /pybcn_association/organizers/ 14 cards read Organizer where 11 did, and the board posts are as they were. --- content/people/amalia_vradi.md | 2 +- content/people/ariadna_fernandez_estevez.md | 2 +- content/people/elisabeth-ortega-carrasco.md | 2 +- content/people/lpmayos.md | 2 +- content/people/natalia.md | 2 +- content/people/nuria.md | 2 +- content/people/paula_szewach.md | 2 +- content/people/peter-krupa.md | 2 -- content/people/toni-espadas.md | 2 -- content/pybcn_association/information.md | 4 ++-- 10 files changed, 9 insertions(+), 13 deletions(-) diff --git a/content/people/amalia_vradi.md b/content/people/amalia_vradi.md index a8748d80..b9690a4a 100644 --- a/content/people/amalia_vradi.md +++ b/content/people/amalia_vradi.md @@ -2,7 +2,7 @@ id: amalia_vradi name: "Amalia Vradi" photo: amalia-vradi.jpg -pybcn_position: PyLadiesBCN Organizer +pybcn_position: Organizer linkedin: "https://www.linkedin.com/in/amaliavradi" github: "https://github.com/amaliavr" diff --git a/content/people/ariadna_fernandez_estevez.md b/content/people/ariadna_fernandez_estevez.md index e49559bb..7d14dc7e 100644 --- a/content/people/ariadna_fernandez_estevez.md +++ b/content/people/ariadna_fernandez_estevez.md @@ -2,7 +2,7 @@ id: ariadna_fernandez_estevez name: Ariadna FernĂĄndez photo: ariadna-fernandez.jpg -pybcn_position: PyLadiesBCN Organizer +pybcn_position: Organizer linkedin: "https://www.linkedin.com/in/ariadna-fernandez-estevez" github: "https://github.com/afernaes" --- diff --git a/content/people/elisabeth-ortega-carrasco.md b/content/people/elisabeth-ortega-carrasco.md index 13af0796..85ed965d 100644 --- a/content/people/elisabeth-ortega-carrasco.md +++ b/content/people/elisabeth-ortega-carrasco.md @@ -4,7 +4,7 @@ name: Elisabeth Ortega Carrasco photo: elisabeth-ortega-carrasco.jpg -pybcn_position: PyLadiesBCN Organizer +pybcn_position: Organizer twitter: https://x.com/draentropia github: https://github.com/draentropia diff --git a/content/people/lpmayos.md b/content/people/lpmayos.md index d056a2c9..6d4fe4cb 100644 --- a/content/people/lpmayos.md +++ b/content/people/lpmayos.md @@ -4,7 +4,7 @@ name: "Laura PĂ©rez Mayos" photo: laura-perez-mayos.jpg site: https://lpmayos.github.io -pybcn_position: "PyLadiesBCN Organizer" +pybcn_position: "Organizer" linkedin: "https://www.linkedin.com/in/lpmayos" github: "https://github.com/lpmayos" diff --git a/content/people/natalia.md b/content/people/natalia.md index eca41bcc..55bc90b9 100644 --- a/content/people/natalia.md +++ b/content/people/natalia.md @@ -2,7 +2,7 @@ id: natalia name: "NatĂ lia Padilla" photo: natalia-padilla.jpg -pybcn_position: "PyLadiesBCN Organizer" +pybcn_position: "Organizer" twitter: "https://x.com/nataliasirera" linkedin: "https://www.linkedin.com/in/natĂ lia-padilla-sirera-8112305a" diff --git a/content/people/nuria.md b/content/people/nuria.md index 28025277..5455d87c 100644 --- a/content/people/nuria.md +++ b/content/people/nuria.md @@ -3,7 +3,7 @@ id: nuria name: "NĂșria Pujol Vilanova" github: https://github.com/llevaNEUS photo: nuria-pujol-vilanova.jpg -pybcn_position: "PyLadiesBCN Organizer" +pybcn_position: "Organizer" twitter: "https://x.com/llevaneus" linkedin: "https://www.linkedin.com/in/n%C3%BAria-pujol-780a145" diff --git a/content/people/paula_szewach.md b/content/people/paula_szewach.md index 37fbe70d..cefe0a1e 100644 --- a/content/people/paula_szewach.md +++ b/content/people/paula_szewach.md @@ -1,7 +1,7 @@ --- id: paula_szewach name: "Paula Szewach" -pybcn_position: PyLadiesBCN Organizer +pybcn_position: Organizer site: "https://www.paulaszewach.com" linkedin: "https://www.linkedin.com/in/paulaszewach" github: "https://github.com/pszewach" diff --git a/content/people/peter-krupa.md b/content/people/peter-krupa.md index 52acae74..87bd26f9 100644 --- a/content/people/peter-krupa.md +++ b/content/people/peter-krupa.md @@ -5,8 +5,6 @@ name: "Peter Krupa" photo: peter-krupa.jpg photo_anchor: Bottom -pybcn_position: "Board member of Communications" - --- Originari dels Estats Units, tinc dues dĂšcades d'experiĂšncia com a periodista i traductor, i em sento molt cĂČmode escrivint per a les xarxes socials i gestionant campanyes per augmentar la visibilitat i fomentar la participaciĂł. Actualment estic cursant un Bachelor of Science amb especialitzaciĂł en Data Analytics a la Western Governors University, i fa dos anys que treballo amb Python i assisteixo a les trobades de PyBCN. M'encantaria tenir l'oportunitat d'ajudar aquesta organitzaciĂł a crĂ©ixer augmentant-ne el perfil a les xarxes socials, actualitzant els materials de difusiĂł i col·laborant en tot allĂČ que calgui. \ No newline at end of file diff --git a/content/people/toni-espadas.md b/content/people/toni-espadas.md index 4b800668..64b3d628 100644 --- a/content/people/toni-espadas.md +++ b/content/people/toni-espadas.md @@ -5,8 +5,6 @@ name: "Toni Espadas" photo: toni-espadas.jpg photo_anchor: Bottom -pybcn_position: "Treasurer" - linkedin: "https://www.linkedin.com/in/toni-espadas" github: "https://github.com/anthonyswords" diff --git a/content/pybcn_association/information.md b/content/pybcn_association/information.md index 3bb0c502..95ba205c 100644 --- a/content/pybcn_association/information.md +++ b/content/pybcn_association/information.md @@ -29,8 +29,8 @@ We have a Management Board and a Permanent Committee to make decisions, and work * President: Jordi Bosch Alibau * Secretary: Daniel Mesejo Leon * Treasurer: Yago Tafalla - * Board member of Comunication: Mauricio Volcanes - * Board member of Events: Sergi RamĂ­rez Mitjans + * Communications: Mauricio Volcanes + * Events: Sergi RamĂ­rez Mitjans * **Permanent Committee**: It is mostly a consultive board and help coordinate the work groups. From 7fe470817f1f0d6f73f622c4071813adf109c886 Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 18:10:22 +0200 Subject: [PATCH 4/7] Name the two organizers pages the way an appearance line needs An appearance line says where a role is held, which is not the same words as the title of the page it links to. "Permanent Committee at Organizers" names the page and repeats in its name the role the line already gives; "Organizer at PyLadies BCN Organizers" repeats both halves. The two pages set appearances_title, the field the index reads: PyBCN and PyLadies BCN. The lines read "Permanent Committee at PyBCN" and "Organizer at PyLadies BCN". Both pages keep their titles, "Organizers" and "PyLadies BCN Organizers", which are what the menu and their own headings say. No other page sets the field, and nothing but the appearance list reads it. --- content/pybcn_association/organizers.md | 5 +++++ content/pyladies_bcn/organizers-and-speakers.md | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/content/pybcn_association/organizers.md b/content/pybcn_association/organizers.md index 2737f170..850014f1 100644 --- a/content/pybcn_association/organizers.md +++ b/content/pybcn_association/organizers.md @@ -1,5 +1,10 @@ --- title: "Organizers" +# The name the appearance list of a person modal calls this page by. The +# line there reads "Permanent Committee at PyBCN", where the title would +# read "Permanent Committee at Organizers" and repeat the role. See +# appearances_index.html. +appearances_title: "PyBCN" description: "Get to know the people behind PyBCN!" menu: main: diff --git a/content/pyladies_bcn/organizers-and-speakers.md b/content/pyladies_bcn/organizers-and-speakers.md index 9c4a576b..d301952c 100644 --- a/content/pyladies_bcn/organizers-and-speakers.md +++ b/content/pyladies_bcn/organizers-and-speakers.md @@ -1,5 +1,9 @@ --- title: "PyLadies BCN Organizers" +# The name the appearance list of a person modal calls this page by. The +# line there reads "Organizer at PyLadies BCN", where the title would +# repeat the role. See appearances_index.html. +appearances_title: "PyLadies BCN" description: "The people that makes it possible!" menu: main: From 4b598260bbbdb6179f87b760bb96455d9789b3de Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 13:02:28 +0200 Subject: [PATCH 5/7] Merge the two person files of Daniel Mesejo Daniel Mesejo had two cards. daniel_mesejo was written for PyDay BCN 2020 and daniel-mesejo for the Management Board of 2026, so the organizers page and the 2025 event showed one of them and the 2020 event the other, and neither modal listed the appearances held by the other file. This is the same split lpmayos and natalia had. daniel-mesejo is the one that stays: it is the current card, it carries the Secretary position, the LinkedIn profile, and a bio he wrote himself in Catalan. PyDay BCN 2020 now lists that id. Every field of the old file was checked before it was dropped. The GitHub profile is the same account and was already there. The photo, daniel-mesejo.jpg, is replaced by daniel-mesejo-leon.jpg, which the kept file already uses, so the old image goes with it. The site field pointed at https://stackoverflow.com/users/story/4001592, a Developer Story, a StackOverflow feature that was withdrawn in 2022: the URL still answers 200 but the page it returns has an empty title and no story, so the link is not carried over. Nothing else was left to merge: the old bio says in English what the kept one says in Catalan. The person count in bin/check-content falls from 137 to 136. Both checks stay green and the build is clean. --- content/events/pyday_bcn/pyday_bcn_2020.md | 2 +- content/people/daniel_mesejo.md | 8 -------- .../assets/images/people/daniel-mesejo.jpg | Bin 108385 -> 0 bytes 3 files changed, 1 insertion(+), 9 deletions(-) delete mode 100644 content/people/daniel_mesejo.md delete mode 100644 themes/pybcn_theme/assets/images/people/daniel-mesejo.jpg diff --git a/content/events/pyday_bcn/pyday_bcn_2020.md b/content/events/pyday_bcn/pyday_bcn_2020.md index 589ef091..f9330f9f 100644 --- a/content/events/pyday_bcn/pyday_bcn_2020.md +++ b/content/events/pyday_bcn/pyday_bcn_2020.md @@ -36,7 +36,7 @@ people_sections: - ankit-mahato - carles_barrobes - christian-adell - - daniel_mesejo + - daniel-mesejo - edgar-riba - eduard_cespedes - elisabeth-ortega-carrasco diff --git a/content/people/daniel_mesejo.md b/content/people/daniel_mesejo.md deleted file mode 100644 index 36adb131..00000000 --- a/content/people/daniel_mesejo.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -id: daniel_mesejo -name: Daniel Mesejo -photo: daniel-mesejo.jpg -github: https://github.com/mesejo -site: https://stackoverflow.com/users/story/4001592 ---- -Has worked as research engineer, data scientist and backend engineer. When he is not working you can find him at StackOverflow. Has minor contributions to open source projects like eland, scikit-image, cvxpy. I As an interesting fact, he has Erdos 3 number. diff --git a/themes/pybcn_theme/assets/images/people/daniel-mesejo.jpg b/themes/pybcn_theme/assets/images/people/daniel-mesejo.jpg deleted file mode 100644 index 24dc697afc85cca800b3318bdbb3b95d14eed035..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108385 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%0Dfy5?DX3Dt(x71d?%28QV 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

    (5JE(4$4FxKS2R0)Qn;;s()R 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

    W7Htx9)CF+C{?D^)KoJm8fG`&})<&&d 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%0At(>dy`*~IA~ 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 X#c)s}9Dw5TJ Date: Wed, 7 Oct 2026 13:03:35 +0200 Subject: [PATCH 6/7] Merge the two person files of Alvaro Duran Barata The second duplicate found by a sweep of every person file for a repeated name, GitHub account, LinkedIn profile, X account, personal site, or photo. It is the only other one: 135 people, no other pair. alvaro_duran was written for PyDay BCN 2020 and alvaro-duran-barata for PyData BCN 2023, so the two events listed the same speaker under two ids and neither modal held the appearances of the other. alvaro-duran-barata is the one that stays: it is the later card, it carries the LinkedIn profile and the GitHub account, and its bio is a rewrite of the older one with the same sentence in it. PyDay BCN 2020 now lists that id. The name takes the accents the older file spelled it with, in the front matter and in the bio: Alvaro Duran Barata is the same name with the diacritics dropped. The site field of the old file pointed at https://alvaroduran.com, which answers 404 with the "Site not found" page of GitHub Pages, so it is not carried over. The old photo goes with the file; the kept card already uses alvaro-duran-barata.jpeg with a Top anchor. The person count in bin/check-content falls from 136 to 135. --- content/events/pyday_bcn/pyday_bcn_2020.md | 2 +- content/people/alvaro-duran-barata.md | 4 ++-- content/people/alvaro_duran.md | 8 -------- .../assets/images/people/alvaro_duran.jpg | Bin 41571 -> 0 bytes 4 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 content/people/alvaro_duran.md delete mode 100644 themes/pybcn_theme/assets/images/people/alvaro_duran.jpg diff --git a/content/events/pyday_bcn/pyday_bcn_2020.md b/content/events/pyday_bcn/pyday_bcn_2020.md index f9330f9f..2902101b 100644 --- a/content/events/pyday_bcn/pyday_bcn_2020.md +++ b/content/events/pyday_bcn/pyday_bcn_2020.md @@ -32,7 +32,7 @@ people_sections: - people_per_line: 4 people: - alberto - - alvaro_duran + - alvaro-duran-barata - ankit-mahato - carles_barrobes - christian-adell diff --git a/content/people/alvaro-duran-barata.md b/content/people/alvaro-duran-barata.md index 14072e47..381eb603 100644 --- a/content/people/alvaro-duran-barata.md +++ b/content/people/alvaro-duran-barata.md @@ -1,6 +1,6 @@ --- id: alvaro-duran-barata -name: Alvaro Duran Barata +name: Álvaro Durån Barata photo: alvaro-duran-barata.jpeg photo_anchor: Top @@ -9,4 +9,4 @@ github: https://github.com/ohduran --- NLP/ML engineer -Alvaro is a Python developer with a unique blend of expertise in finance, software engineering, and data. He brings curiosity, intensity and an analytical mind to the table. When not in front of the keyboard, Alvaro is likely to be found reading voraciously, near a pizza shop, or working out. \ No newline at end of file +Álvaro is a Python developer with a unique blend of expertise in finance, software engineering, and data. He brings curiosity, intensity and an analytical mind to the table. When not in front of the keyboard, Álvaro is likely to be found reading voraciously, near a pizza shop, or working out. diff --git a/content/people/alvaro_duran.md b/content/people/alvaro_duran.md deleted file mode 100644 index b95c4545..00000000 --- a/content/people/alvaro_duran.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -id: alvaro_duran -name: Álvaro Durån Barata -photo: alvaro_duran.jpg - -site: https://alvaroduran.com ---- -An experienced software engineer, Álvaro has worked in top tier global banks and small software vendors. Having majored in Physics, he brings curiosity, intensity and an analytical mind to the table. diff --git a/themes/pybcn_theme/assets/images/people/alvaro_duran.jpg b/themes/pybcn_theme/assets/images/people/alvaro_duran.jpg deleted file mode 100644 index 74b6790c21008e84b97877c79455476fa3624a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41571 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 From 0b07293e603f678478a1fd681dcee3771ec8c2c1 Mon Sep 17 00:00:00 2001 From: David Arcos Date: Wed, 7 Oct 2026 13:05:54 +0200 Subject: [PATCH 7/7] Name every person file after the person 43 of the 135 person files were named after something other than the person in them. Some were a first name alone, which is a name the site cannot hold twice: david.md is David Arcos, jordi.md is Jordi Soucheiron, alberto.md is Alberto Camara. Some were a handle: lpmayos.md is Laura Perez Mayos, ifosch.md is Ignasi Fosch, rberenguel.md is Ruben Berenguel. Some used an underscore where the rest of the directory uses a hyphen: alvaro_duran, carles_barrobes, jose_haro, miroslav_sedivy, paula_szewach. And some carried one surname of two. Every file is now named after the name it holds: the name field, with the diacritics dropped, lowercased, and the spaces turned into hyphens. The id moves with it, because bin/check-content requires the id and the file name to match, and the 93 references to those ids across 11 event and association pages move with the id. canary.md keeps its name. It is the fixture bin/check-rendered uses, its name field is a markup payload, and a file named after it would be unreadable. No alias is needed and none is added. config.toml cascades _build.render = "never" over content/people, so a person file has built no page and no URL since #201: the file name reaches nothing a reader can link to. It reaches the grids, which look a person up by id, and the modal ids, which are built from it. Verified against the build: 316 person cards are rendered across the site, every page lists the same people in the same order as before, and no modal id holds an old id. Both checks stay green. The personal links are untouched, so a card can still carry a handle that no longer matches its file name: Laura Perez Mayos links to github.com/lpmayos. That is her account and it is right. --- .../other_events/django_pyladies_2022.md | 20 ++++++------- content/events/pydatabcn/pydatabcn_2023.md | 20 ++++++------- content/events/pyday_bcn/pyday_bcn_2018.md | 4 +-- content/events/pyday_bcn/pyday_bcn_2020.md | 28 +++++++++---------- content/events/pyday_bcn/pyday_bcn_2021.md | 18 ++++++------ content/events/pyday_bcn/pyday_bcn_2022.md | 10 +++---- content/events/pyday_bcn/pyday_bcn_2023.md | 12 ++++---- content/events/pyday_bcn/pyday_bcn_2024.md | 14 +++++----- content/events/pyday_bcn/pyday_bcn_2025.md | 22 +++++++-------- ...albert-franzi.md => albert-franzi-cros.md} | 2 +- .../people/{alberto.md => alberto-camara.md} | 2 +- ...-morales.md => alicia-morales-carrasco.md} | 2 +- .../{amalia_vradi.md => amalia-vradi.md} | 2 +- .../{angel.md => angel-fernandez-ibanez.md} | 2 +- ...nandez_estevez.md => ariadna-fernandez.md} | 2 +- ...ilo-chacon.md => camilo-chacon-sartori.md} | 2 +- ...{carles_barrobes.md => carles-barrobes.md} | 2 +- ...daniel-mesejo.md => daniel-mesejo-leon.md} | 2 +- content/people/{david.md => david-arcos.md} | 2 +- ...d-blazquez.md => david-blazquez-garcia.md} | 2 +- .../people/{dimitri.md => dimitri-herrero.md} | 2 +- ..._cespedes.md => eduard-cespedes-borras.md} | 2 +- .../people/{eloi.md => eloi-puertas-prats.md} | 2 +- ...{ely-farres.md => ely-farres-palomeras.md} | 2 +- .../people/{esteve.md => esteve-fernandez.md} | 2 +- .../{guille-abad.md => guillermo-abad.md} | 2 +- content/people/{ifosch.md => ignasi-fosch.md} | 2 +- ...{israel-saeta.md => israel-saeta-perez.md} | 2 +- ...-escobar.md => jimena-escobar-bermudez.md} | 2 +- .../people/{jordi.md => jordi-soucheiron.md} | 2 +- .../{jose_haro.md => jose-haro-peralta.md} | 2 +- .../{jose-riera.md => jose-riera-sanchez.md} | 2 +- .../{josep.md => josep-martinez-vila.md} | 2 +- ...is-cano.md => juan-luis-cano-rodriguez.md} | 2 +- ...vin-sanchez.md => kevin-sanchez-sancho.md} | 2 +- .../{lpmayos.md => laura-perez-mayos.md} | 2 +- .../people/{loris.md => loris-mularoni.md} | 2 +- ...{manuel-gijon.md => manuel-gijon-agudo.md} | 2 +- ...{mireia.md => mireia-alvarez-dominguez.md} | 2 +- ...{miroslav_sedivy.md => miroslav-sedivy.md} | 2 +- .../people/{natalia.md => natalia-padilla.md} | 2 +- .../{nuria.md => nuria-pujol-vilanova.md} | 2 +- ...amadrid.md => patricia-lamadrid-robles.md} | 2 +- ...-reyes.md => patricio-reyes-valenzuela.md} | 2 +- ...assaganas.md => paula-bassaganas-odena.md} | 2 +- .../{paula_szewach.md => paula-szewach.md} | 2 +- ...er-egg.md => ricardo-ander-egg-aguilar.md} | 2 +- .../{ricardo.md => ricardo-martinez.md} | 2 +- .../{rberenguel.md => ruben-berenguel.md} | 2 +- ...nia-estrade.md => sonia-estrade-albiol.md} | 2 +- ...r-garcia.md => victor-garcia-dominguez.md} | 2 +- .../{xavi.md => xavi-francisco-gilabert.md} | 2 +- content/pybcn_association/organizers.md | 12 ++++---- .../pyladies_bcn/organizers-and-speakers.md | 2 +- 54 files changed, 124 insertions(+), 124 deletions(-) rename content/people/{albert-franzi.md => albert-franzi-cros.md} (96%) rename content/people/{alberto.md => alberto-camara.md} (97%) rename content/people/{alicia-morales.md => alicia-morales-carrasco.md} (96%) rename content/people/{amalia_vradi.md => amalia-vradi.md} (96%) rename content/people/{angel.md => angel-fernandez-ibanez.md} (93%) rename content/people/{ariadna_fernandez_estevez.md => ariadna-fernandez.md} (90%) rename content/people/{camilo-chacon.md => camilo-chacon-sartori.md} (96%) rename content/people/{carles_barrobes.md => carles-barrobes.md} (96%) rename content/people/{daniel-mesejo.md => daniel-mesejo-leon.md} (97%) rename content/people/{david.md => david-arcos.md} (94%) rename content/people/{david-blazquez.md => david-blazquez-garcia.md} (82%) rename content/people/{dimitri.md => dimitri-herrero.md} (74%) rename content/people/{eduard_cespedes.md => eduard-cespedes-borras.md} (96%) rename content/people/{eloi.md => eloi-puertas-prats.md} (94%) rename content/people/{ely-farres.md => ely-farres-palomeras.md} (88%) rename content/people/{esteve.md => esteve-fernandez.md} (93%) rename content/people/{guille-abad.md => guillermo-abad.md} (97%) rename content/people/{ifosch.md => ignasi-fosch.md} (95%) rename content/people/{israel-saeta.md => israel-saeta-perez.md} (90%) rename content/people/{jimena-escobar.md => jimena-escobar-bermudez.md} (94%) rename content/people/{jordi.md => jordi-soucheiron.md} (93%) rename content/people/{jose_haro.md => jose-haro-peralta.md} (94%) rename content/people/{jose-riera.md => jose-riera-sanchez.md} (92%) rename content/people/{josep.md => josep-martinez-vila.md} (91%) rename content/people/{juan-luis-cano.md => juan-luis-cano-rodriguez.md} (97%) rename content/people/{kevin-sanchez.md => kevin-sanchez-sancho.md} (84%) rename content/people/{lpmayos.md => laura-perez-mayos.md} (93%) rename content/people/{loris.md => loris-mularoni.md} (92%) rename content/people/{manuel-gijon.md => manuel-gijon-agudo.md} (91%) rename content/people/{mireia.md => mireia-alvarez-dominguez.md} (85%) rename content/people/{miroslav_sedivy.md => miroslav-sedivy.md} (94%) rename content/people/{natalia.md => natalia-padilla.md} (93%) rename content/people/{nuria.md => nuria-pujol-vilanova.md} (90%) rename content/people/{patricia-lamadrid.md => patricia-lamadrid-robles.md} (92%) rename content/people/{patricio-reyes.md => patricio-reyes-valenzuela.md} (91%) rename content/people/{paula-bassaganas.md => paula-bassaganas-odena.md} (97%) rename content/people/{paula_szewach.md => paula-szewach.md} (95%) rename content/people/{ricardo-ander-egg.md => ricardo-ander-egg-aguilar.md} (90%) rename content/people/{ricardo.md => ricardo-martinez.md} (74%) rename content/people/{rberenguel.md => ruben-berenguel.md} (97%) rename content/people/{sonia-estrade.md => sonia-estrade-albiol.md} (92%) rename content/people/{victor-garcia.md => victor-garcia-dominguez.md} (85%) rename content/people/{xavi.md => xavi-francisco-gilabert.md} (91%) diff --git a/content/events/other_events/django_pyladies_2022.md b/content/events/other_events/django_pyladies_2022.md index f04af2a1..3aaa8f9a 100644 --- a/content/events/other_events/django_pyladies_2022.md +++ b/content/events/other_events/django_pyladies_2022.md @@ -87,9 +87,9 @@ people_sections: - people_per_line: 4 people: - elisabeth-ortega-carrasco - - lpmayos - - natalia - - nuria + - laura-perez-mayos + - natalia-padilla + - nuria-pujol-vilanova - title: Mentors, speakers & volunteers id: main_organizers levels: @@ -97,15 +97,15 @@ people_sections: people_per_line: 4 people: - carlton-gibson - - david + - david-arcos - elisabeth-ortega-carrasco - ferran-jovell - - israel-saeta + - israel-saeta-perez - johanna-sanchez - - natalia - - nuria + - natalia-padilla + - nuria-pujol-vilanova - selen-ozkan - - xavi + - xavi-francisco-gilabert - name: Speakers people_per_line: 4 people: @@ -114,11 +114,11 @@ people_sections: - johanna-sanchez - nakchidil-melisse-chaumont - roser-parellada - - sonia-estrade + - sonia-estrade-albiol - name: Volunteers people_per_line: 4 people: - - mireia + - mireia-alvarez-dominguez previous_editions: diff --git a/content/events/pydatabcn/pydatabcn_2023.md b/content/events/pydatabcn/pydatabcn_2023.md index db0d27d9..50b9e3d8 100644 --- a/content/events/pydatabcn/pydatabcn_2023.md +++ b/content/events/pydatabcn/pydatabcn_2023.md @@ -57,20 +57,20 @@ people_sections: - adrian-garcia-riber - albert-pujol-torras - alvaro-duran-barata - - amalia_vradi + - amalia-vradi - carmen-iniesta-lopez - daniel-sanchez-santolaya - diego-quintana - edgar-sarria-tenes - fiorella-piriz-sapio - juan-bernardo-lince - - juan-luis-cano + - juan-luis-cano-rodriguez - miquel-sarrias - monica-dominguez - nikita-polovinkin - oriol-abril-pla - rajdeep-pal - - ricardo-ander-egg + - ricardo-ander-egg-aguilar - ruben-afonso - sergi-baena-miret - thais-ruiz-de-alda @@ -79,14 +79,14 @@ people_sections: levels: - people_per_line: 4 people: - - lpmayos - - natalia + - laura-perez-mayos + - natalia-padilla - elisabeth-ortega-carrasco - - amalia_vradi - - ariadna_fernandez_estevez - - paula_szewach - - nuria - - mireia + - amalia-vradi + - ariadna-fernandez + - paula-szewach + - nuria-pujol-vilanova + - mireia-alvarez-dominguez spansDuration: 15 numTracks: 4 diff --git a/content/events/pyday_bcn/pyday_bcn_2018.md b/content/events/pyday_bcn/pyday_bcn_2018.md index 4c7da9b3..5da1b2aa 100644 --- a/content/events/pyday_bcn/pyday_bcn_2018.md +++ b/content/events/pyday_bcn/pyday_bcn_2018.md @@ -84,7 +84,7 @@ heroBackground: /images/photos/people-pyday-2016.jpg

    Workshops descriptions

    Developing a small application with git

    - Speaker: Ignasi Fosch (@ifosch)
    + Speaker: Ignasi Fosch (@ignasi-fosch)
    Language: English
    Description: In this workshop, the attendees will participate in collaborative developing a small simple application using git and GitHub for the workflow. The goals of the exercise is to practice some simple concepts about contributing code.
    Level: Beginner
    @@ -112,7 +112,7 @@ heroBackground: /images/photos/people-pyday-2016.jpg

  • Guide to install Pytorch.
  • Data analysis with Jupyter Notebook, Pandas and Plotly

    -

    Speaker: Natàlia Padilla (@nataliasirera) and Laura Pérez (@lpmayos) (@PyLadiesBCN)
    +

    Speaker: Natàlia Padilla (@nataliasirera) and Laura Pérez (@laura-perez-mayos) (@PyLadiesBCN)
    Language: English
    Description: A hands-on session where you will learn how to analyze data with Jupyter Notebook, Pandas and Plotly. This will be a guided workshop, suitable for both experienced users and beginners with an interest in data analysis.
    Level: Beginner
    diff --git a/content/events/pyday_bcn/pyday_bcn_2020.md b/content/events/pyday_bcn/pyday_bcn_2020.md index 2902101b..05046d82 100644 --- a/content/events/pyday_bcn/pyday_bcn_2020.md +++ b/content/events/pyday_bcn/pyday_bcn_2020.md @@ -31,37 +31,37 @@ people_sections: levels: - people_per_line: 4 people: - - alberto + - alberto-camara - alvaro-duran-barata - ankit-mahato - - carles_barrobes + - carles-barrobes - christian-adell - - daniel-mesejo + - daniel-mesejo-leon - edgar-riba - - eduard_cespedes + - eduard-cespedes-borras - elisabeth-ortega-carrasco - ferran-fabregas - francesco-faraone - gajendra-deshpande - joan-fontanals-martinez - - jose_haro + - jose-haro-peralta - julio-martinez - marc-pous - maria-teresa-grifa - - miroslav_sedivy + - miroslav-sedivy - title: Organizers id: organizers levels: - people_per_line: 4 people: - - david - - eloi - - ifosch - - lpmayos - - mireia - - natalia - - nuria - - rberenguel + - david-arcos + - eloi-puertas-prats + - ignasi-fosch + - laura-perez-mayos + - mireia-alvarez-dominguez + - natalia-padilla + - nuria-pujol-vilanova + - ruben-berenguel previous_editions: - name: PyDay BCN 2019 diff --git a/content/events/pyday_bcn/pyday_bcn_2021.md b/content/events/pyday_bcn/pyday_bcn_2021.md index ac0af524..94a6901b 100644 --- a/content/events/pyday_bcn/pyday_bcn_2021.md +++ b/content/events/pyday_bcn/pyday_bcn_2021.md @@ -42,7 +42,7 @@ people_sections: levels: - people_per_line: 4 people: - - albert-franzi + - albert-franzi-cros - alejandro-nicolas - alexandre-savio - anton-caceres @@ -66,14 +66,14 @@ people_sections: levels: - people_per_line: 4 people: - - lpmayos - - natalia - - david - - nuria - - xavi - - rberenguel - - eloi - - mireia + - laura-perez-mayos + - natalia-padilla + - david-arcos + - nuria-pujol-vilanova + - xavi-francisco-gilabert + - ruben-berenguel + - eloi-puertas-prats + - mireia-alvarez-dominguez previous_editions: - name: PyDay BCN 2020 diff --git a/content/events/pyday_bcn/pyday_bcn_2022.md b/content/events/pyday_bcn/pyday_bcn_2022.md index a7d7bf07..60b6b7a2 100644 --- a/content/events/pyday_bcn/pyday_bcn_2022.md +++ b/content/events/pyday_bcn/pyday_bcn_2022.md @@ -57,7 +57,7 @@ people_sections: - cheuk-ting-ho - eva-martin-del-pico - gema-parreno - - jimena-escobar + - jimena-escobar-bermudez - kemalcan-bora - marc-pous - pavel-lonkin @@ -67,10 +67,10 @@ people_sections: levels: - people_per_line: 4 people: - - natalia - - lpmayos - - xavi - - mireia + - natalia-padilla + - laura-perez-mayos + - xavi-francisco-gilabert + - mireia-alvarez-dominguez previous_editions: - name: PyDay BCN 2021 diff --git a/content/events/pyday_bcn/pyday_bcn_2023.md b/content/events/pyday_bcn/pyday_bcn_2023.md index 7d9a3259..6c47a9d2 100644 --- a/content/events/pyday_bcn/pyday_bcn_2023.md +++ b/content/events/pyday_bcn/pyday_bcn_2023.md @@ -50,7 +50,7 @@ people_sections: - noe-casas - vyron-vasileiadis - adria-blanco - - guille-abad + - guillermo-abad - javier-sabariego - christian-adell - pavel-sulimov @@ -59,8 +59,8 @@ people_sections: - diego-giaquinta - oriol-abril-pla - gabriel-de-maeztu - - camilo-chacon - - israel-saeta + - camilo-chacon-sartori + - israel-saeta-perez - emanuel-frazao - title: Organizers @@ -68,9 +68,9 @@ people_sections: levels: - people_per_line: 4 people: - - natalia - - alicia-morales - - patricia-lamadrid + - natalia-padilla + - alicia-morales-carrasco + - patricia-lamadrid-robles - elisabeth-ortega-carrasco previous_editions: diff --git a/content/events/pyday_bcn/pyday_bcn_2024.md b/content/events/pyday_bcn/pyday_bcn_2024.md index 1f2441c5..f022c1db 100644 --- a/content/events/pyday_bcn/pyday_bcn_2024.md +++ b/content/events/pyday_bcn/pyday_bcn_2024.md @@ -43,14 +43,14 @@ people_sections: levels: - people_per_line: 4 people: - - jimena-escobar + - jimena-escobar-bermudez - kemalcan-bora - xiang-xu - dave-pitts - - paula-bassaganas + - paula-bassaganas-odena - raul-cumplido - marc-ramirez - - manuel-gijon + - manuel-gijon-agudo - oriol-abril-pla - alex-molas - marina-palma @@ -61,11 +61,11 @@ people_sections: levels: - people_per_line: 4 people: - - alicia-morales - - david + - alicia-morales-carrasco + - david-arcos - ferran-jovell - - lpmayos - - jose-riera + - laura-perez-mayos + - jose-riera-sanchez previous_editions: diff --git a/content/events/pyday_bcn/pyday_bcn_2025.md b/content/events/pyday_bcn/pyday_bcn_2025.md index 5f70a966..98cf6034 100644 --- a/content/events/pyday_bcn/pyday_bcn_2025.md +++ b/content/events/pyday_bcn/pyday_bcn_2025.md @@ -49,21 +49,21 @@ people_sections: - enric-domingo - ester-jara - javier-ramos-panduro - - natalia + - natalia-padilla - amir-azam - - david + - david-arcos - javier-sabariego - - ely-farres + - ely-farres-palomeras - flavie-le-bars - cristina-cosma - - ricardo-ander-egg - - alberto + - ricardo-ander-egg-aguilar + - alberto-camara - jordi-bosch - kemalcan-bora - - kevin-sanchez + - kevin-sanchez-sancho - oriol-abril-pla - - camilo-chacon - - victor-garcia + - camilo-chacon-sartori + - victor-garcia-dominguez - eric-massip - ubaldo-hervas - kevin-albes @@ -77,7 +77,7 @@ people_sections: - sergi-ramirez - toni-espadas - jordi-bosch - - daniel-mesejo + - daniel-mesejo-leon # - title: Staff # id: staff @@ -87,8 +87,8 @@ people_sections: # - sergi-ramirez # - toni-espadas # - jordi-bosch -# - daniel-mesejo -# - jose-riera +# - daniel-mesejo-leon +# - jose-riera-sanchez # - mauricio # - brian-power # - eva-casas diff --git a/content/people/albert-franzi.md b/content/people/albert-franzi-cros.md similarity index 96% rename from content/people/albert-franzi.md rename to content/people/albert-franzi-cros.md index 723a07d9..de9aea3c 100644 --- a/content/people/albert-franzi.md +++ b/content/people/albert-franzi-cros.md @@ -1,5 +1,5 @@ --- -id: albert-franzi +id: albert-franzi-cros name: Albert Franzi Cros photo: albert-franzi-cros.jpg photo_anchor: Left diff --git a/content/people/alberto.md b/content/people/alberto-camara.md similarity index 97% rename from content/people/alberto.md rename to content/people/alberto-camara.md index 15b14a5e..8272251e 100644 --- a/content/people/alberto.md +++ b/content/people/alberto-camara.md @@ -1,5 +1,5 @@ --- -id: alberto +id: alberto-camara name: "Alberto CĂĄmara" github: https://github.com/ber2 photo: alberto-camara.jpg diff --git a/content/people/alicia-morales.md b/content/people/alicia-morales-carrasco.md similarity index 96% rename from content/people/alicia-morales.md rename to content/people/alicia-morales-carrasco.md index 69bb6917..bb0ea675 100644 --- a/content/people/alicia-morales.md +++ b/content/people/alicia-morales-carrasco.md @@ -1,5 +1,5 @@ --- -id: alicia-morales +id: alicia-morales-carrasco name: Alicia Morales Carrasco photo: alicia-morales-carrasco.jpg # Smart cropped below the face on this portrait. diff --git a/content/people/amalia_vradi.md b/content/people/amalia-vradi.md similarity index 96% rename from content/people/amalia_vradi.md rename to content/people/amalia-vradi.md index b9690a4a..e015a1ea 100644 --- a/content/people/amalia_vradi.md +++ b/content/people/amalia-vradi.md @@ -1,5 +1,5 @@ --- -id: amalia_vradi +id: amalia-vradi name: "Amalia Vradi" photo: amalia-vradi.jpg pybcn_position: Organizer diff --git a/content/people/angel.md b/content/people/angel-fernandez-ibanez.md similarity index 93% rename from content/people/angel.md rename to content/people/angel-fernandez-ibanez.md index 7039edbc..e47ca881 100644 --- a/content/people/angel.md +++ b/content/people/angel-fernandez-ibanez.md @@ -1,5 +1,5 @@ --- -id: angel +id: angel-fernandez-ibanez name: Àngel FernĂĄndez Ibåñez twitter: "https://x.com/anxodio" linkedin: "https://www.linkedin.com/in/anxodio" diff --git a/content/people/ariadna_fernandez_estevez.md b/content/people/ariadna-fernandez.md similarity index 90% rename from content/people/ariadna_fernandez_estevez.md rename to content/people/ariadna-fernandez.md index 7d14dc7e..0ce476e3 100644 --- a/content/people/ariadna_fernandez_estevez.md +++ b/content/people/ariadna-fernandez.md @@ -1,5 +1,5 @@ --- -id: ariadna_fernandez_estevez +id: ariadna-fernandez name: Ariadna FernĂĄndez photo: ariadna-fernandez.jpg pybcn_position: Organizer diff --git a/content/people/camilo-chacon.md b/content/people/camilo-chacon-sartori.md similarity index 96% rename from content/people/camilo-chacon.md rename to content/people/camilo-chacon-sartori.md index 416862b1..aabb0d1a 100644 --- a/content/people/camilo-chacon.md +++ b/content/people/camilo-chacon-sartori.md @@ -1,5 +1,5 @@ --- -id: camilo-chacon +id: camilo-chacon-sartori name: Camilo ChacĂłn Sartori photo: camilo-chacon-sartori.jpg twitter: https://x.com/camilo_chacon_s diff --git a/content/people/carles_barrobes.md b/content/people/carles-barrobes.md similarity index 96% rename from content/people/carles_barrobes.md rename to content/people/carles-barrobes.md index 6969b8bc..c8e3fc30 100644 --- a/content/people/carles_barrobes.md +++ b/content/people/carles-barrobes.md @@ -1,5 +1,5 @@ --- -id: carles_barrobes +id: carles-barrobes name: Carles BarrobĂ©s photo: carles-barrobes.jpg linkedin: https://www.linkedin.com/in/carlesbarrobes diff --git a/content/people/daniel-mesejo.md b/content/people/daniel-mesejo-leon.md similarity index 97% rename from content/people/daniel-mesejo.md rename to content/people/daniel-mesejo-leon.md index b61b39b8..341e94c5 100644 --- a/content/people/daniel-mesejo.md +++ b/content/people/daniel-mesejo-leon.md @@ -1,5 +1,5 @@ --- -id: daniel-mesejo +id: daniel-mesejo-leon name: "Daniel Mesejo Leon" linkedin: https://www.linkedin.com/in/daniel-alejandro-mesejo-leon github: https://github.com/mesejo diff --git a/content/people/david.md b/content/people/david-arcos.md similarity index 94% rename from content/people/david.md rename to content/people/david-arcos.md index a091efad..730906ab 100644 --- a/content/people/david.md +++ b/content/people/david-arcos.md @@ -1,5 +1,5 @@ --- -id: david +id: david-arcos name: David Arcos photo: david-arcos.jpg pybcn_position: Organizer diff --git a/content/people/david-blazquez.md b/content/people/david-blazquez-garcia.md similarity index 82% rename from content/people/david-blazquez.md rename to content/people/david-blazquez-garcia.md index e9174103..af2fcf68 100644 --- a/content/people/david-blazquez.md +++ b/content/people/david-blazquez-garcia.md @@ -1,5 +1,5 @@ --- -id: david-blazquez +id: david-blazquez-garcia name: "David BlĂĄzquez GarcĂ­a" photo: david-blazquez-garcia.jpg linkedin: "https://www.linkedin.com/in/dblazquezg" diff --git a/content/people/dimitri.md b/content/people/dimitri-herrero.md similarity index 74% rename from content/people/dimitri.md rename to content/people/dimitri-herrero.md index 77c5ba02..7123047e 100644 --- a/content/people/dimitri.md +++ b/content/people/dimitri-herrero.md @@ -1,5 +1,5 @@ --- -id: dimitri +id: dimitri-herrero name: Dimitri Herrero pybcn_position: Organizer diff --git a/content/people/eduard_cespedes.md b/content/people/eduard-cespedes-borras.md similarity index 96% rename from content/people/eduard_cespedes.md rename to content/people/eduard-cespedes-borras.md index e3c4c820..690e2aff 100644 --- a/content/people/eduard_cespedes.md +++ b/content/people/eduard-cespedes-borras.md @@ -1,5 +1,5 @@ --- -id: eduard_cespedes +id: eduard-cespedes-borras name: Eduard CĂ©spedes BorrĂ s photo: eduard-cespedes-borras.jpg twitter: https://x.com/haduart diff --git a/content/people/eloi.md b/content/people/eloi-puertas-prats.md similarity index 94% rename from content/people/eloi.md rename to content/people/eloi-puertas-prats.md index a1f1ef7d..645640aa 100644 --- a/content/people/eloi.md +++ b/content/people/eloi-puertas-prats.md @@ -1,5 +1,5 @@ --- -id: eloi +id: eloi-puertas-prats name: Eloi Puertas Prats pybcn_position: "Organizer" photo: eloi-puertas-prats.jpg diff --git a/content/people/ely-farres.md b/content/people/ely-farres-palomeras.md similarity index 88% rename from content/people/ely-farres.md rename to content/people/ely-farres-palomeras.md index e762edbe..60483ce6 100644 --- a/content/people/ely-farres.md +++ b/content/people/ely-farres-palomeras.md @@ -1,5 +1,5 @@ --- -id: ely-farres +id: ely-farres-palomeras name: "Ely FarrĂ©s Palomeras" photo: ely-farres-palomeras.jpg linkedin: "https://www.linkedin.com/in/ely-farr%C3%A9s-palomeras-4459882b7" diff --git a/content/people/esteve.md b/content/people/esteve-fernandez.md similarity index 93% rename from content/people/esteve.md rename to content/people/esteve-fernandez.md index 74a59eab..17c14608 100644 --- a/content/people/esteve.md +++ b/content/people/esteve-fernandez.md @@ -1,5 +1,5 @@ --- -id: esteve +id: esteve-fernandez name: "Esteve FernĂ ndez" photo: esteve-fernandez.jpg pybcn_position: "Collaborator" diff --git a/content/people/guille-abad.md b/content/people/guillermo-abad.md similarity index 97% rename from content/people/guille-abad.md rename to content/people/guillermo-abad.md index cc232790..8f71a9cc 100644 --- a/content/people/guille-abad.md +++ b/content/people/guillermo-abad.md @@ -1,5 +1,5 @@ --- -id: guille-abad +id: guillermo-abad name: "Guillermo Abad" photo: guillermo-abad.jpg linkedin: "https://www.linkedin.com/in/guillermo-abad-l%C3%B3pez" diff --git a/content/people/ifosch.md b/content/people/ignasi-fosch.md similarity index 95% rename from content/people/ifosch.md rename to content/people/ignasi-fosch.md index a8fbda39..9cd2b0b9 100644 --- a/content/people/ifosch.md +++ b/content/people/ignasi-fosch.md @@ -1,5 +1,5 @@ --- -id: ifosch +id: ignasi-fosch name: Ignasi Fosch photo: ignasi-fosch.jpg pybcn_position: Organizer diff --git a/content/people/israel-saeta.md b/content/people/israel-saeta-perez.md similarity index 90% rename from content/people/israel-saeta.md rename to content/people/israel-saeta-perez.md index 970e3076..e8d67ac2 100644 --- a/content/people/israel-saeta.md +++ b/content/people/israel-saeta-perez.md @@ -1,5 +1,5 @@ --- -id: israel-saeta +id: israel-saeta-perez name: "Israel Saeta PĂ©rez" photo: israel-saeta-perez.jpg twitter: "https://x.com/dukebody" diff --git a/content/people/jimena-escobar.md b/content/people/jimena-escobar-bermudez.md similarity index 94% rename from content/people/jimena-escobar.md rename to content/people/jimena-escobar-bermudez.md index 0bd6e381..ab302a39 100644 --- a/content/people/jimena-escobar.md +++ b/content/people/jimena-escobar-bermudez.md @@ -1,5 +1,5 @@ --- -id: jimena-escobar +id: jimena-escobar-bermudez name: "Jimena Escobar BermĂșdez" photo: jimena-escobar-bermudez.jpg linkedin: "https://www.linkedin.com/in/jimena-eb" diff --git a/content/people/jordi.md b/content/people/jordi-soucheiron.md similarity index 93% rename from content/people/jordi.md rename to content/people/jordi-soucheiron.md index c8f32781..cf7b1b5b 100644 --- a/content/people/jordi.md +++ b/content/people/jordi-soucheiron.md @@ -1,5 +1,5 @@ --- -id: jordi +id: jordi-soucheiron name: Jordi Soucheiron photo: jordi-soucheiron.jpg photo_anchor: Top diff --git a/content/people/jose_haro.md b/content/people/jose-haro-peralta.md similarity index 94% rename from content/people/jose_haro.md rename to content/people/jose-haro-peralta.md index db2c8c32..0218cb31 100644 --- a/content/people/jose_haro.md +++ b/content/people/jose-haro-peralta.md @@ -1,5 +1,5 @@ --- -id: jose_haro +id: jose-haro-peralta name: Jose Haro Peralta photo: jose-haro-peralta.png photo_anchor: Top diff --git a/content/people/jose-riera.md b/content/people/jose-riera-sanchez.md similarity index 92% rename from content/people/jose-riera.md rename to content/people/jose-riera-sanchez.md index f2da07af..86ba8d2b 100644 --- a/content/people/jose-riera.md +++ b/content/people/jose-riera-sanchez.md @@ -1,5 +1,5 @@ --- -id: jose-riera +id: jose-riera-sanchez name: "JosĂ© Riera SĂĄnchez" photo: jose-riera-sanchez.jpg diff --git a/content/people/josep.md b/content/people/josep-martinez-vila.md similarity index 91% rename from content/people/josep.md rename to content/people/josep-martinez-vila.md index d9304ce1..c0b8fc89 100644 --- a/content/people/josep.md +++ b/content/people/josep-martinez-vila.md @@ -1,5 +1,5 @@ --- -id: josep +id: josep-martinez-vila name: "Josep MartĂ­nez VilĂ " pybcn_position: "Organizer" twitter: "https://x.com/jmartinezvila" diff --git a/content/people/juan-luis-cano.md b/content/people/juan-luis-cano-rodriguez.md similarity index 97% rename from content/people/juan-luis-cano.md rename to content/people/juan-luis-cano-rodriguez.md index 201cdcf5..2d92bef4 100644 --- a/content/people/juan-luis-cano.md +++ b/content/people/juan-luis-cano-rodriguez.md @@ -1,5 +1,5 @@ --- -id: juan-luis-cano +id: juan-luis-cano-rodriguez name: Juan Luis Cano RodrĂ­guez photo: juan-luis-cano-rodriguez.jpg linkedin: https://www.linkedin.com/in/juanluiscanor diff --git a/content/people/kevin-sanchez.md b/content/people/kevin-sanchez-sancho.md similarity index 84% rename from content/people/kevin-sanchez.md rename to content/people/kevin-sanchez-sancho.md index 0147d45b..57eded5c 100644 --- a/content/people/kevin-sanchez.md +++ b/content/people/kevin-sanchez-sancho.md @@ -1,5 +1,5 @@ --- -id: kevin-sanchez +id: kevin-sanchez-sancho name: "Kevin Sanchez Sancho" photo: kevin-sanchez-sancho.jpg linkedin: "https://www.linkedin.com/in/kevin-sanchez-sancho-807b7268" diff --git a/content/people/lpmayos.md b/content/people/laura-perez-mayos.md similarity index 93% rename from content/people/lpmayos.md rename to content/people/laura-perez-mayos.md index 6d4fe4cb..aaaf4276 100644 --- a/content/people/lpmayos.md +++ b/content/people/laura-perez-mayos.md @@ -1,5 +1,5 @@ --- -id: lpmayos +id: laura-perez-mayos name: "Laura PĂ©rez Mayos" photo: laura-perez-mayos.jpg site: https://lpmayos.github.io diff --git a/content/people/loris.md b/content/people/loris-mularoni.md similarity index 92% rename from content/people/loris.md rename to content/people/loris-mularoni.md index fabf8558..c56dab9e 100644 --- a/content/people/loris.md +++ b/content/people/loris-mularoni.md @@ -1,5 +1,5 @@ --- -id: loris +id: loris-mularoni name: Loris Mularoni photo: loris-mularoni.jpg diff --git a/content/people/manuel-gijon.md b/content/people/manuel-gijon-agudo.md similarity index 91% rename from content/people/manuel-gijon.md rename to content/people/manuel-gijon-agudo.md index dfe52020..f692e419 100644 --- a/content/people/manuel-gijon.md +++ b/content/people/manuel-gijon-agudo.md @@ -1,5 +1,5 @@ --- -id: manuel-gijon +id: manuel-gijon-agudo name: Manuel GijĂłn Agudo photo: manuel-gijon-agudo.jpg linkedin: https://www.linkedin.com/in/manuel-gij%C3%B3n-agudo diff --git a/content/people/mireia.md b/content/people/mireia-alvarez-dominguez.md similarity index 85% rename from content/people/mireia.md rename to content/people/mireia-alvarez-dominguez.md index 84e0c543..adb4cf54 100644 --- a/content/people/mireia.md +++ b/content/people/mireia-alvarez-dominguez.md @@ -1,5 +1,5 @@ --- -id: mireia +id: mireia-alvarez-dominguez name: Mireia Álvarez DomĂ­nguez photo: mireia-alvarez-dominguez.jpg pybcn_position: "Former Treasurer" diff --git a/content/people/miroslav_sedivy.md b/content/people/miroslav-sedivy.md similarity index 94% rename from content/people/miroslav_sedivy.md rename to content/people/miroslav-sedivy.md index cf967311..3295aeda 100644 --- a/content/people/miroslav_sedivy.md +++ b/content/people/miroslav-sedivy.md @@ -1,5 +1,5 @@ --- -id: miroslav_sedivy +id: miroslav-sedivy name: "Miroslav Ć edivĂœ" photo: miroslav-sedivy.jpg twitter: "https://x.com/eumiro" diff --git a/content/people/natalia.md b/content/people/natalia-padilla.md similarity index 93% rename from content/people/natalia.md rename to content/people/natalia-padilla.md index 55bc90b9..dd5bbec3 100644 --- a/content/people/natalia.md +++ b/content/people/natalia-padilla.md @@ -1,5 +1,5 @@ --- -id: natalia +id: natalia-padilla name: "NatĂ lia Padilla" photo: natalia-padilla.jpg pybcn_position: "Organizer" diff --git a/content/people/nuria.md b/content/people/nuria-pujol-vilanova.md similarity index 90% rename from content/people/nuria.md rename to content/people/nuria-pujol-vilanova.md index 5455d87c..0e2fecc5 100644 --- a/content/people/nuria.md +++ b/content/people/nuria-pujol-vilanova.md @@ -1,5 +1,5 @@ --- -id: nuria +id: nuria-pujol-vilanova name: "NĂșria Pujol Vilanova" github: https://github.com/llevaNEUS photo: nuria-pujol-vilanova.jpg diff --git a/content/people/patricia-lamadrid.md b/content/people/patricia-lamadrid-robles.md similarity index 92% rename from content/people/patricia-lamadrid.md rename to content/people/patricia-lamadrid-robles.md index fdfdd37e..822bac45 100644 --- a/content/people/patricia-lamadrid.md +++ b/content/people/patricia-lamadrid-robles.md @@ -1,5 +1,5 @@ --- -id: patricia-lamadrid +id: patricia-lamadrid-robles name: Patricia Lamadrid Robles photo: patricia-lamadrid-robles.jpg diff --git a/content/people/patricio-reyes.md b/content/people/patricio-reyes-valenzuela.md similarity index 91% rename from content/people/patricio-reyes.md rename to content/people/patricio-reyes-valenzuela.md index ababed58..1e445670 100644 --- a/content/people/patricio-reyes.md +++ b/content/people/patricio-reyes-valenzuela.md @@ -1,5 +1,5 @@ --- -id: patricio-reyes +id: patricio-reyes-valenzuela name: "Patricio Reyes Valenzuela" photo: patricio-reyes-valenzuela.jpg twitter: "https://x.com/pareyesv" diff --git a/content/people/paula-bassaganas.md b/content/people/paula-bassaganas-odena.md similarity index 97% rename from content/people/paula-bassaganas.md rename to content/people/paula-bassaganas-odena.md index edaa856b..e4f6b55d 100644 --- a/content/people/paula-bassaganas.md +++ b/content/people/paula-bassaganas-odena.md @@ -1,5 +1,5 @@ --- -id: paula-bassaganas +id: paula-bassaganas-odena name: Paula Bassagañas Òdena photo: paula-bassaganas-odena.jpg diff --git a/content/people/paula_szewach.md b/content/people/paula-szewach.md similarity index 95% rename from content/people/paula_szewach.md rename to content/people/paula-szewach.md index cefe0a1e..b7ab2163 100644 --- a/content/people/paula_szewach.md +++ b/content/people/paula-szewach.md @@ -1,5 +1,5 @@ --- -id: paula_szewach +id: paula-szewach name: "Paula Szewach" pybcn_position: Organizer site: "https://www.paulaszewach.com" diff --git a/content/people/ricardo-ander-egg.md b/content/people/ricardo-ander-egg-aguilar.md similarity index 90% rename from content/people/ricardo-ander-egg.md rename to content/people/ricardo-ander-egg-aguilar.md index a3a30c39..78f9cfb0 100644 --- a/content/people/ricardo-ander-egg.md +++ b/content/people/ricardo-ander-egg-aguilar.md @@ -1,5 +1,5 @@ --- -id: ricardo-ander-egg +id: ricardo-ander-egg-aguilar name: Ricardo Ander-Egg Aguilar photo: ricardo-ander-egg-aguilar.jpg photo_anchor: Top diff --git a/content/people/ricardo.md b/content/people/ricardo-martinez.md similarity index 74% rename from content/people/ricardo.md rename to content/people/ricardo-martinez.md index 16eb55ae..139d2d51 100644 --- a/content/people/ricardo.md +++ b/content/people/ricardo-martinez.md @@ -1,5 +1,5 @@ --- -id: ricardo +id: ricardo-martinez name: Ricardo MartĂ­nez pybcn_position: Collaborator diff --git a/content/people/rberenguel.md b/content/people/ruben-berenguel.md similarity index 97% rename from content/people/rberenguel.md rename to content/people/ruben-berenguel.md index 29cd50a1..56bc52df 100644 --- a/content/people/rberenguel.md +++ b/content/people/ruben-berenguel.md @@ -1,5 +1,5 @@ --- -id: rberenguel +id: ruben-berenguel name: "Ruben Berenguel" photo: ruben-berenguel.png pybcn_position: Organizer diff --git a/content/people/sonia-estrade.md b/content/people/sonia-estrade-albiol.md similarity index 92% rename from content/people/sonia-estrade.md rename to content/people/sonia-estrade-albiol.md index 5c360a2b..5c322807 100644 --- a/content/people/sonia-estrade.md +++ b/content/people/sonia-estrade-albiol.md @@ -1,5 +1,5 @@ --- -id: sonia-estrade +id: sonia-estrade-albiol name: "SĂČnia EstradĂ© Albiol" photo: sonia-estrade-albiol.jpg twitter: "https://x.com/estrade_sonia" diff --git a/content/people/victor-garcia.md b/content/people/victor-garcia-dominguez.md similarity index 85% rename from content/people/victor-garcia.md rename to content/people/victor-garcia-dominguez.md index 5d595702..f88acb67 100644 --- a/content/people/victor-garcia.md +++ b/content/people/victor-garcia-dominguez.md @@ -1,5 +1,5 @@ --- -id: victor-garcia +id: victor-garcia-dominguez name: "VĂ­ctor Garcia DomĂ­nguez" photo: victor-garcia-dominguez.jpg linkedin: "https://www.linkedin.com/in/v%C3%ADctor-garcia-dom%C3%ADnguez-9083571a3" diff --git a/content/people/xavi.md b/content/people/xavi-francisco-gilabert.md similarity index 91% rename from content/people/xavi.md rename to content/people/xavi-francisco-gilabert.md index 2da3d064..04acbaf8 100644 --- a/content/people/xavi.md +++ b/content/people/xavi-francisco-gilabert.md @@ -1,5 +1,5 @@ --- -id: xavi +id: xavi-francisco-gilabert name: Xavi Francisco Gilabert photo: xavi-francisco-gilabert.jpg pybcn_position: Organizer diff --git a/content/pybcn_association/organizers.md b/content/pybcn_association/organizers.md index 850014f1..742a502a 100644 --- a/content/pybcn_association/organizers.md +++ b/content/pybcn_association/organizers.md @@ -16,22 +16,22 @@ heroBackground: /images/photos/reg-desk-pyday-2019.jpg people_levels: - people_per_line: 5 - people: [jordi-bosch, daniel-mesejo, yago-tafalla, mauricio-volcanes, sergi-ramirez] + people: [jordi-bosch, daniel-mesejo-leon, yago-tafalla, mauricio-volcanes, sergi-ramirez] name: Management Board (2026) - people_per_line: 6 - people: [alberto, david, ifosch, natalia, alicia-morales, ferran-jovell] + people: [alberto-camara, david-arcos, ignasi-fosch, natalia-padilla, alicia-morales-carrasco, ferran-jovell] name: Permanent Committee - people_per_line: 4 - people: [elisabeth-ortega-carrasco, josep, loris, lpmayos, nuria, jose-riera, rberenguel, xavi] + people: [elisabeth-ortega-carrasco, josep-martinez-vila, loris-mularoni, laura-perez-mayos, nuria-pujol-vilanova, jose-riera-sanchez, ruben-berenguel, xavi-francisco-gilabert] name: Collaborators - people_per_line: 5 name: Management Board (2018 - 2025) # An entry with a role shows that role on this page instead of the # pybcn_position of the person file. See people-grid.html. people: - - id: lpmayos + - id: laura-perez-mayos role: Former President - - mireia - - id: natalia + - mireia-alvarez-dominguez + - id: natalia-padilla role: Former Secretary --- diff --git a/content/pyladies_bcn/organizers-and-speakers.md b/content/pyladies_bcn/organizers-and-speakers.md index d301952c..dc4a95ac 100644 --- a/content/pyladies_bcn/organizers-and-speakers.md +++ b/content/pyladies_bcn/organizers-and-speakers.md @@ -15,6 +15,6 @@ heroBackground: /images/photos/pyladies/header/header2.jpeg people_levels: - people_per_line: 4 - people: [nuria, lpmayos, natalia, elisabeth-ortega-carrasco] + people: [nuria-pujol-vilanova, laura-perez-mayos, natalia-padilla, elisabeth-ortega-carrasco] name: PyLadiesBCN Organizers ---