From 9eac07d231a626438dfa2f8a8e42f962fa8a58fc Mon Sep 17 00:00:00 2001
From: Claude
Date: Tue, 12 May 2026 14:42:18 +0000
Subject: [PATCH] feat: add filtered newsletter.xml feed for Buttondown
Adds /newsletter.xml that filters conferences to those whose CFP closes
in the next 14 days, with pubDate set to build time so Buttondown's
RSS-to-email picks items up (the existing /feed.xml uses future-dated
CFP deadlines as pubDate, which Buttondown skips).
https://claude.ai/code/session_01BKQ3qcHaToNZyecwyYGoBW
---
newsletter.xml | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
create mode 100644 newsletter.xml
diff --git a/newsletter.xml b/newsletter.xml
new file mode 100644
index 0000000000..a729e10ea5
--- /dev/null
+++ b/newsletter.xml
@@ -0,0 +1,44 @@
+---
+permalink: /newsletter.xml
+---
+
+
+
+ {{ site.title | xml_escape }} Newsletter
+ Python conference CFP deadlines coming up in the next 14 days
+ {{ site.url }}
+
+ en-US
+ {{ site.time | date_to_rfc822 }}
+ Jekyll v{{ jekyll.version }}
+{%- assign today = site.time | date: "%s" | plus: 0 -%}
+{%- assign horizon = site.time | date: "%s" | plus: 1209600 -%}
+{%- for conf in site.data.conferences -%}
+ {%- if conf.cfp_ext -%}
+ {%- assign cfp = conf.cfp_ext -%}
+ {%- else -%}
+ {%- assign cfp = conf.cfp -%}
+ {%- endif -%}
+ {%- if cfp != "TBA" and cfp != "Cancelled" and cfp != "None" -%}
+ {%- assign cfp_epoch = cfp | date: "%s" | plus: 0 -%}
+ {%- if cfp_epoch >= today and cfp_epoch <= horizon %}
+ -
+ {{ conf.conference | xml_escape }} {{ conf.year }} — CFP closes {{ cfp | date: "%b %-d" }}
+ {{ site.url }}{{ site.baseurl }}/conference/{{ conf.conference | slugify: "latin" }}-{{ conf.year }}/
+ {{ conf.conference | slugify: "latin" }}-{{ conf.year }}
+ {{ site.time | date_to_rfc822 }}
+ {{ site.title | xml_escape }}
+ {{ conf.sub }}
+ 📍 {{ conf.place | xml_escape }} · 📅 {% translate_file dates/pretty_dates.html start=conf.start end=conf.end %}
+📝 CfP deadline: {% translate_file dates/pretty_dates.html start=cfp end=cfp %}
+{% if conf.cfp_link %}Submit your proposal →
{% endif %}]]>
+
+ {%- endif -%}
+ {%- endif -%}
+{%- endfor %}
+
+