Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
4ce3ff1
bundle(deps-dev): bump json from 2.7.2 to 2.7.4 (#546)
dependabot[bot] Oct 29, 2024
9fb6035
Fixed broken youtube link (#545)
TimOsahenru Oct 29, 2024
916e2d6
bundle(deps-dev): bump execjs from 2.9.1 to 2.10.0 (#547)
dependabot[bot] Oct 29, 2024
1b8fe12
bundle(deps-dev): bump activesupport from 7.2.1.1 to 7.2.1.2 (#549)
dependabot[bot] Oct 29, 2024
37363c0
bundle(deps): bump rexml from 3.3.8 to 3.3.9 (#548)
dependabot[bot] Oct 29, 2024
ee3fa3d
A recap blog-post for pyconug (#541)
TobiasHT5 Oct 29, 2024
0a45867
Update 2024-10-25-pycon-ug-2024.md (#552)
kjaymiller Oct 29, 2024
59d6b7e
new dsf election post October 2024 (#551)
kjaymiller Oct 29, 2024
e5868f4
Merge branch 'gh-pages' of into new-carousel
TimOsahenru Nov 2, 2024
6ae62fc
Limit carousel posts to 3 recent posts
TimOsahenru Nov 2, 2024
1a73940
Changed `object-fit` to `contain` in `.email-circle img` for full ima…
TimOsahenru Nov 2, 2024
b42c244
Add default image for posts without featured images in carousel
TimOsahenru Nov 2, 2024
0747882
changed slider carousel width from 85 to 100
TimOsahenru Nov 2, 2024
4278491
Proper naming convention - changed email-circle to image-circle
TimOsahenru Nov 2, 2024
337b9e7
Add a recap blog-post for pyho-2024 (#555)
kafui4k Nov 4, 2024
b1ba32b
bundle(deps-dev): bump json from 2.7.4 to 2.7.6 (#558)
dependabot[bot] Nov 5, 2024
20e18e4
bundle(deps): bump webrick from 1.8.2 to 1.9.0 (#559)
dependabot[bot] Nov 5, 2024
5a69682
bundle(deps-dev): bump activesupport from 7.2.1.2 to 7.2.2 (#560)
dependabot[bot] Nov 5, 2024
b181b9d
add ollama_summarizer.py
kjaymiller Nov 5, 2024
a17d2e2
update requirements
kjaymiller Nov 5, 2024
152a84d
update layouts to include descriptions
kjaymiller Nov 5, 2024
60558f2
update posts
kjaymiller Nov 5, 2024
f530e97
update posts with default layout
kjaymiller Nov 6, 2024
cd44c5a
update posts with default layout
kjaymiller Nov 6, 2024
d2d55f2
update MAINTAINERS with update_layout
kjaymiller Nov 6, 2024
9e5af7d
simplify cli
kjaymiller Nov 6, 2024
667497a
update pre-commit
kjaymiller Nov 6, 2024
b3b23c6
resizing featured images (#543)
JohananOppongAmoateng Nov 6, 2024
98aeeae
Revert "resizing featured images (#543)" (#565)
kjaymiller Nov 6, 2024
0e0013f
Merge pull request #563 from BlackPythonDevs/556-auto-generate-post-d…
TimOsahenru Nov 6, 2024
e8142c2
Merge upstream into current branch
TimOsahenru Nov 9, 2024
af46ba5
bundle(deps-dev): bump uri from 0.13.1 to 1.0.1 (#568)
dependabot[bot] Nov 11, 2024
f2c2d1c
bundle(deps-dev): bump net-http from 0.4.1 to 0.5.0 (#569)
dependabot[bot] Nov 11, 2024
fe0a1e0
bundle(deps-dev): bump securerandom from 0.3.1 to 0.3.2 (#570)
dependabot[bot] Nov 11, 2024
6edc53c
bundle(deps-dev): bump benchmark from 0.3.0 to 0.4.0 (#571)
dependabot[bot] Nov 11, 2024
223a693
bundle(deps-dev): bump activesupport from 7.2.2 to 8.0.0 (#572)
dependabot[bot] Nov 11, 2024
6d530c9
bundle(deps-dev): bump json from 2.7.6 to 2.8.1 (#573)
dependabot[bot] Nov 11, 2024
b704eb6
manually update conferences (#576)
kjaymiller Nov 14, 2024
b027abc
Merge 'gh-pages' of into new-carousel
TimOsahenru Nov 17, 2024
e5f731f
bundle(deps-dev): bump uri from 1.0.1 to 1.0.2 (#583)
dependabot[bot] Nov 19, 2024
4a75029
bundle(deps-dev): bump faraday-net_http from 3.3.0 to 3.4.0 (#584)
dependabot[bot] Nov 19, 2024
4f9bcc0
bundle(deps-dev): bump json from 2.8.1 to 2.8.2 (#582)
dependabot[bot] Nov 19, 2024
2d32f97
Merge branch 'gh-pages' of github.com:BlackPythonDevs/blackpythondevs…
TimOsahenru Nov 21, 2024
14c997e
Uninstalled bootstrap
TimOsahenru Nov 22, 2024
41f3ae0
custom carousel slider with passing test cases
TimOsahenru Nov 24, 2024
bbe500b
de-emphasized the recent blogs section to make it smaller
TimOsahenru Nov 24, 2024
fbb8d00
custom carousel slider with passing test cases
TimOsahenru Nov 24, 2024
cc46f74
custom carousel slider with passing test cases
TimOsahenru Nov 24, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,11 @@ repos:
rev: 23.9.1
hooks:
- id: black
- repo: local
hooks:
- id: check-for-layout
name: check-for-layout
files: _posts/.*.md
entry: python update_layout.py
language: python
additional_dependencies: [typer, python-frontmatter, typing-extensions]
42 changes: 21 additions & 21 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
source "https://rubygems.org"
ruby RUBY_VERSION
gem "jekyll"
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jemoji"
gem "github-pages"
gem "jekyll-remote-theme"
gem "jekyll-feed"
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'webrick', '~> 1.7'
# gem "rake"
# gem 'prism', '~> 0.17.1'
# gem 'ruby-lsp', '~> 0.12.4'
source "https://rubygems.org"
ruby RUBY_VERSION

gem "jekyll"

# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jemoji"
gem "github-pages"
gem "jekyll-remote-theme"
gem "jekyll-feed"
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'webrick', '~> 1.9'

# gem "rake"
# gem 'prism', '~> 0.17.1'
# gem 'ruby-lsp', '~> 0.12.4'
29 changes: 16 additions & 13 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.2.1.1)
activesupport (8.0.0)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
Expand All @@ -12,9 +13,11 @@ GEM
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.8)
coffee-script (2.4.1)
coffee-script-source
Expand All @@ -34,13 +37,13 @@ GEM
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
execjs (2.9.1)
faraday (2.12.0)
faraday-net_http (>= 2.0, < 3.4)
execjs (2.10.0)
faraday (2.12.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.3.0)
net-http
faraday-net_http (3.4.0)
net-http (>= 0.5.0)
ffi (1.17.0-aarch64-linux-gnu)
ffi (1.17.0-aarch64-linux-musl)
ffi (1.17.0-arm-linux-gnu)
Expand Down Expand Up @@ -221,7 +224,7 @@ GEM
gemoji (>= 3, < 5)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
json (2.7.2)
json (2.8.2)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
Expand All @@ -237,7 +240,7 @@ GEM
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
minitest (5.25.1)
net-http (0.4.1)
net-http (0.5.0)
uri
nokogiri (1.16.7-aarch64-linux)
racc (~> 1.4)
Expand All @@ -261,7 +264,7 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.3.8)
rexml (3.3.9)
rouge (3.30.0)
rubyzip (2.3.2)
safe_yaml (1.0.5)
Expand All @@ -273,7 +276,7 @@ GEM
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
securerandom (0.3.1)
securerandom (0.3.2)
simpleidn (0.2.3)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
Expand All @@ -282,8 +285,8 @@ GEM
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (1.8.0)
uri (0.13.1)
webrick (1.8.2)
uri (1.0.2)
webrick (1.9.0)

PLATFORMS
aarch64-linux
Expand All @@ -308,7 +311,7 @@ DEPENDENCIES
jekyll-remote-theme
jemoji
tzinfo-data
webrick (~> 1.7)
webrick (~> 1.9)

RUBY VERSION
ruby 3.3.5p100
Expand Down
29 changes: 29 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ First off, thank you for considering contributing to Black Python Devs website.
- [Translations](#translations)
- [Styling](#styling)
- [Adding New Pages](#adding-new-pages)
- Post Validation

# Before You Get Started

Expand Down Expand Up @@ -203,6 +204,34 @@ ROUTES = [

- Make sure your new page renders correctly and all links work as expected.

## Layout Validation

### Automatic Layout Updates

To ensure consistency across all blog posts, we've implemented automatic layout validation and updating functionality. This helps maintain proper frontmatter configuration for all Markdown files in the `_posts` directory.

### Tools and Features

#### `update_layout.py` CLI Tool

- Checks and applies missing layout fields to post files
- Can process multiple posts simultaneously
- Usage:
```bash
python update_layout.py fix|check path/to/post1.md [path/to/post2.md ...]
```

#### Pre-commit Hook

We've implemented a custom pre-commit hook that automatically runs the `update_layout.py` update check on any `.md` files in the `_posts` directory that are being committed. The hook will:

- Run automatically before each commit
- Check all modified `.md` files in the `_posts` directory
- Apply the necessary layout field if missing
- Fail the commit initially but fix the issue, allowing you to commit again

For manual layout checks and updates, you can always run the `update_layout.py` tool directly.

---

Remember, when in doubt, don't hesitate to ask for help in our Discord community or in a GitHub issue!
24 changes: 7 additions & 17 deletions _data/conferences.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,12 @@
[
{
"conference_name": "PyconUg",
"url": "https://ug.pycon.org",
"conference_start_date": "2024-10-09",
"conference_end_date": "2024-10-13",
"conference_name": "DELSU Tech Invasion 2.0",
"url": "https://dti.hamplustech.com/",
"conference_start_date": "2024-12-04",
"conference_end_date": "2024-12-05",
"conference_type": "in-person",
"conference_location": "NWSC International Resource Centre (IREC), Kampala, Uganda",
"summary": "The conference is a five-day event, 9-13 October. PyconUganda inherit this tradition of an annual event that brings together python enthusiasts, tech audiences and technology business in uganda and around the world.",
"speaking": null
},
{
"conference_name": "PyHo",
"url": "https://twitter.com/pythonho",
"conference_start_date": "2024-10-25",
"conference_end_date": "2024-10-26",
"conference_type": "in-person",
"conference_location": "University of Health and Allied Sciences, Trafalgar, Ho. Ho, Volta Region, Ghana.",
"summary": "PyHo, champion the leverage of Python in education promote diversity and inclusion from underrepresented communities within\nthe/beyond our region. Provide the foundational platform for new and experienced speakers alike to share ideas and resources.",
"speaking": null
"conference_location": "Abraka, Delta State, Nigeria",
"summary": "This is the second edition of DELSU Tech Invasion (DTI) with the theme: Learn . Innovate . Earn. The subject or focus area is Python for Academics: Spreadsheet and Data Manipulation, Data Analytics and Visualization.",
"speaking": "- Developing lite web apps using Flask and Python - [Michael Oghenerukevwe Edward](http://linkedin.com/in/airdward/)\n- Transitioning in Tech Ecosystem as a Female - [Precious Ogbuka](https://www.linkedin.com/in/precious-ogbuka)\n- Rapid Development of Desktop Apps using Tkinter and Python - [Azubuike Uche Nathan](https://x.com/NathanAzub10827)\n- Why Learn, Innovate and Earn - [Naomi Apomejevwe Egbe](https://x.com/IamNaomiEgbe)\n- Gender diversity and inclusion in the tech ecosystem - [Elozino Onorie](https://x.com/_hush_7)\n- others can be found in the links below:\n - https://dti.hamplustech.com/pages/speaker/\n - https://dti.hamplustech.com/pages/schedule/"
}
]
2 changes: 0 additions & 2 deletions _includes/conferences.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ <h2>
{% endif %}
{% if conference.speaking %}
<h3>Speaking:</h3>
<li>
{{ conference.speaking | markdownify }}
</li>
{% endif %}
</article>
{% endfor %}
Expand Down
21 changes: 13 additions & 8 deletions _includes/latest-posts.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,20 @@
<h2 class="post-list-heading">{{ page.list_title }}</h2>
{%- endif -%}
<article class="post-list">
{%- assign date_format = site.bpdevs.date_format | default: "%b %-d, %Y" -%} {% assign count = 0 %} {% assign limit_posts = 3 %} {%- for post in posts -%} {%- if count < limit_posts -%}
<div>
<h3>
<a class="" href="{{ post.url | relative_url }}"> {{ post.title | escape }} </a>
</h3>
<span class="post-meta">{{ post.date | date: date_format }}</span>
{%- if site.show_excerpts -%} {{ post.excerpt }} {%- endif -%}
{%- assign date_format = site.bpdevs.date_format | default: "%b %-d, %Y" -%}
<div class="latest-posts-grid">
{% assign count = 0 %} {% assign limit_posts = 3 %} {%- for post in posts -%} {%- if count < limit_posts -%}
<div class="post-item">
<h3>
<a class="" href="{{ post.url | relative_url }}"> {{ post.title | escape }} </a>
</h3>
<p>{{ post.date | date: date_format }}</p>
{%- if site.show_excerpts -%}
<p class="post-description">{{ post.description }}</p>
{%- endif -%}
</div>
{%- assign count = count | plus: 1 -%} {%- endif -%} {%- endfor -%}
</div>
{%- assign count = count | plus:1 -%} {%- endif -%} {%- endfor -%}
</article>

{% if site.paginate %}
Expand Down
6 changes: 4 additions & 2 deletions _includes/posts.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ <h3>
</h3>
<span class="post-meta">{{ post.date | date: date_format }}</span>
{%- if site.show_excerpts -%}
{{ post.excerpt }}
{%- endif -%}
<p class="post-description">
{{ post.description }}
</p>
{%- endif -%}
</div>
{%- assign count = count | plus:1 -%}
{%- endfor -%}
Expand Down
4 changes: 1 addition & 3 deletions _layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}" />
<meta name="description" content="{% if page.description%}{{ page.description | escape }}{% else %}{{ site.description }}{% endif %}" />
<title>{% if page.title %}{{ site.title }} | {{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}" />
<link rel="stylesheet" href="{{ '/assets/css/pico.min.css' | relative_url }}" />
Expand All @@ -12,7 +12,6 @@
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}" />
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ '/feed.xml' | prepend: site.baseurl | prepend: site.url }}" />
<link rel="icon" href="https://fav.farm/%E2%9C%8A%F0%9F%8F%BE" type="image/svg" />
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
{% if page.lang and page.untranslated != true and site.data.locales.size > 1 %}
{% assign locales = site.data.locales | sort %}
{% for locale in locales %}
Expand All @@ -37,6 +36,5 @@
{%- include footer.html -%}
<script src="{{ '/assets/js/index.js' | relative_url }}"></script>
<script src="https://kit.fontawesome.com/1bbe56de49.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
37 changes: 15 additions & 22 deletions _layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,24 @@
---
<div class="home">
{% assign t = site.data.locales[page.lang][page.lang] %} {% if page.title %} {% assign header = page.title %} {% else %} {% assign header = site.title %} {% endif %}
<header>
<div id="postSlider" class="carousel slide slider-container" data-bs-ride="carousel">
<div class="carousel-inner">
{% for post in site.posts %}
<div class="carousel-item {% if forloop.first %}active{% endif %}">
<div class="email-circle">
<img src="{{ post.featured_image | default: post.content | split: '!' | first | split: '(' | last | split: ')' | first | default: 'default-image.jpg' }}" alt="{{ post.title }}">
</div>
<h3 class="post-title">{{ post.title }}</h3>
<p class="post-summary">{{ post.excerpt | strip_html | truncatewords: 20 }}</p>
<div class="slider">
<div class="slides">
{% assign recent_posts = site.posts | slice: 0, 3 %}
{% for post in recent_posts %}
<div class="slide {% if forloop.first %}active{% endif %}">
<div class="image-wrapper">
<img src="{{ post.featured_image | default: '/assets/images/bpd_stacked.png' }}" alt="{{ post.title }}">
</div>
<div class="info">
<h2>{{ post.title }}</h2>
<p>{{ post.excerpt | strip_html | truncatewords: 20 }}</p>
</div>
{% endfor %}
</div>

<!-- Controls -->
<button class="carousel-control-prev" type="button" data-bs-target="#postSlider" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#postSlider" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
{% endfor %}
</div>
</header>
<button class="prev" onclick="moveSlide(-1)">&#10094;</button>
<button class="next" onclick="moveSlide(1)">&#10095;</button>
</div>
{{ content }}

<img src="{{'/assets/images/dcus.jpg' | relative_url }}" alt="DjangoCon US 2023"/>
Expand Down
8 changes: 5 additions & 3 deletions _posts/2023-10-20-djangoconus.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
---
layout: post
lang: en
title: "DjangoCon US 2023"
date: 2023-10-20
description: Join us for a behind-the-scenes look at DjangoCon US 2023, where diversity
and inclusion came together to shape a powerful community of Python developers.
lang: en
layout: post
title: DjangoCon US 2023
---

In Durham, North Carolina, approximately 300 Django developers gathered from all over the world for [DjangoCon US](https://2023.djangocon.us/). This event showcased the knowledge of the community and celebrated its cultural diversity and the diversity of its hosting city. The event was located at the Marriot Convention Center, in the heart of the city. There were many resturants and smaller attractions.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
---
title: "What is the US Conference City Diversity Metric"
layout: post
lang: en
date: 2023-11-11
author: Jay Miller
date: 2023-11-11
description: Discover how the US Conference Diversity Metric can inform your event's
location and create a more inclusive experience for attendees, with expert analysis
from Jay Miller.
lang: en
layout: post
title: What is the US Conference City Diversity Metric
---

In 2022 at DjangoCon I took a look at the location of all of the PyCon US locations and their makeup by race. I highlighted that in the first 10 years of PyCon's existence, 9 of those 10 events were in culturally diverse cities like Atlanta, Washington DC and Chicago. The second half was during Python's boom and the need for larger venues started pushing conferences to more affordable areas with large international airports. These were places like Salt Lake City, Portland, and Montreal.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
---
title: "Black Python Devs Represent in DSF Elections"
date: 2023-11-13
author: Jay Miller
date: 2023-11-13
description: Find out how the growing presence of Black Python Developers is shaping
the future of diversity in the tech industry through the DSF Elections.
lang: en
layout: post
title: Black Python Devs Represent in DSF Elections
---

The DSF Board Elections have opened and voting is available for DSF members now until 27 November 2023 (Anywhere on Earth).
Expand Down
Loading
Loading