Skip to content

Commit 4a709a7

Browse files
New RSS feeds for NA and WA features
1 parent b5680c9 commit 4a709a7

File tree

6 files changed

+103
-12
lines changed

6 files changed

+103
-12
lines changed

.eleventy.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ function findParentGroupId(group) {
5555
return group.parent;
5656
}
5757

58+
function stripLessThan(dateStr) {
59+
if (dateStr.startsWith("≤")) {
60+
return dateStr.substring(1);
61+
}
62+
return dateStr;
63+
}
64+
5865
function augmentFeatureData(id, feature) {
5966
// Add the id.
6067
feature.id = id;
@@ -194,6 +201,14 @@ function augmentFeatureData(id, feature) {
194201
feature.bcdData = bcdKeysData;
195202
feature.bcdTags = [...new Set(bcdTags)];
196203

204+
// Add the baseline low and high dates as JS objects too.
205+
feature.baselineLowDateAsObject = feature.status.baseline
206+
? new Date(stripLessThan(feature.status.baseline_low_date))
207+
: null;
208+
feature.baselineHighDateAsObject = feature.status.baseline && feature.status.baseline === "high"
209+
? new Date(stripLessThan(feature.status.baseline_high_date))
210+
: null;
211+
197212
// Add impl_url links, if any, per browser.
198213
const browserImplUrls = Object.keys(browsers).reduce((acc, browserId) => {
199214
acc[browserId] = [];
@@ -363,11 +378,7 @@ export default function (eleventyConfig) {
363378
return null;
364379
}
365380

366-
if (dateStr.startsWith("≤")) {
367-
dateStr = dateStr.substring(1);
368-
}
369-
370-
return dateStr.substring(0, 7);
381+
return stripLessThan(dateStr).substring(0, 7);
371382
};
372383

373384
const getBaselineHighMonth = (feature) => getMonth(feature.status.baseline_high_date);

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"devDependencies": {
66
"@11ty/eleventy": "^3.1.0",
77
"@11ty/eleventy-plugin-rss": "^2.0.4",
8-
"@ddbeck/mdn-content-inventory": "^0.2.20250527",
8+
"@ddbeck/mdn-content-inventory": "^0.2.20250528",
99
"@mdn/browser-compat-data": "^6.0.18",
1010
"apexcharts": "^4.7.0",
1111
"browser-specs": "^4.47.0",

site/index.njk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ layout: layout.njk
88
<p>Use the Web platform features explorer to discover new features and APIs and stay up-to-date with changes.</h1>
99

1010
<section class="baseline-low">
11-
<h2>Newly available across browsers</h2>
11+
<h2>Newly available across browsers (<a href="./newly-available.xml">RSS feed</a>)</h2>
1212
<ul>
1313
{% for feature in latest.latestBaselineLow %}
1414
<li>
@@ -20,7 +20,7 @@ layout: layout.njk
2020
</section>
2121

2222
<section class="baseline-high">
23-
<h2>Now widely available across browsers</h2>
23+
<h2>Now widely available across browsers (<a href="./widely-available.xml">RSS feed</a>)</h2>
2424
<ul>
2525
{% for feature in latest.latestBaselineHigh %}
2626
<li>

site/newly-available-feed.njk

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---json
2+
{
3+
"permalink": "/newly-available.xml",
4+
"eleventyExcludeFromCollections": true,
5+
"metadata": {
6+
"title": "Baseline Newly Available Features",
7+
"subtitle": "Features of the web platform which became Baseline Newly Available.",
8+
"language": "en",
9+
"url": "https://web-platform-dx.github.io/web-features-explorer/",
10+
"author": {
11+
"name": "WebDX Community Group"
12+
}
13+
}
14+
}
15+
---
16+
<?xml version="1.0" encoding="utf-8"?>
17+
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.url }}">
18+
<title>{{ metadata.title }}</title>
19+
<subtitle>{{ metadata.subtitle }}</subtitle>
20+
<link href="https://web-platform-dx.github.io/web-features-explorer/newly-available.xml" rel="self"/>
21+
<link href="{{ metadata.url }}"/>
22+
<updated>{{ newlyAvailableFeatures[0].baselineLowDateAsObject | dateToRfc3339 }}</updated>
23+
<id>{{ metadata.url }}</id>
24+
<author>
25+
<name>{{ metadata.author.name }}</name>
26+
</author>
27+
28+
{% for feature in newlyAvailableFeatures %}
29+
<entry>
30+
<title>{% prettyFeatureName feature.name %}</title>
31+
<link href="{{ metadata.url + 'features/' + feature.id | slugify }}"/>
32+
<updated>{{ feature.baselineLowDateAsObject | dateToRfc3339 }}</updated>
33+
<id>{{ metadata.url + 'features/' + feature.id | slugify }}</id>
34+
<content xml:lang="{{ metadata.language }}" type="html"><![CDATA[
35+
<h1><a href="{{ metadata.url + 'features/' + feature.id | slugify }}">{% prettyFeatureName feature.name %}</a></h1>
36+
<p>{{ feature.description_html | safe }}</p>
37+
]]></content>
38+
</entry>
39+
{% endfor %}
40+
</feed>

site/widely-available-feed.njk

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---json
2+
{
3+
"permalink": "/widely-available.xml",
4+
"eleventyExcludeFromCollections": true,
5+
"metadata": {
6+
"title": "Baseline Widely Available Features",
7+
"subtitle": "Features of the web platform which became Baseline Widely Available.",
8+
"language": "en",
9+
"url": "https://web-platform-dx.github.io/web-features-explorer/",
10+
"author": {
11+
"name": "WebDX Community Group"
12+
}
13+
}
14+
}
15+
---
16+
<?xml version="1.0" encoding="utf-8"?>
17+
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="{{ metadata.url }}">
18+
<title>{{ metadata.title }}</title>
19+
<subtitle>{{ metadata.subtitle }}</subtitle>
20+
<link href="https://web-platform-dx.github.io/web-features-explorer/widely-available.xml" rel="self"/>
21+
<link href="{{ metadata.url }}"/>
22+
<updated>{{ widelyAvailableFeatures[0].baselineHighDateAsObject | dateToRfc3339 }}</updated>
23+
<id>{{ metadata.url }}</id>
24+
<author>
25+
<name>{{ metadata.author.name }}</name>
26+
</author>
27+
28+
{% for feature in widelyAvailableFeatures %}
29+
<entry>
30+
<title>{% prettyFeatureName feature.name %}</title>
31+
<link href="{{ metadata.url + 'features/' + feature.id | slugify }}"/>
32+
<updated>{{ feature.baselineHighDateAsObject | dateToRfc3339 }}</updated>
33+
<id>{{ metadata.url + 'features/' + feature.id | slugify }}</id>
34+
<content xml:lang="{{ metadata.language }}" type="html"><![CDATA[
35+
<h1><a href="{{ metadata.url + 'features/' + feature.id | slugify }}">{% prettyFeatureName feature.name %}</a></h1>
36+
<p>{{ feature.description_html | safe }}</p>
37+
]]></content>
38+
</entry>
39+
{% endfor %}
40+
</feed>

0 commit comments

Comments
 (0)