Skip to content

Commit 618695f

Browse files
Update generate-atom-feed.mjs to add a summary and an image for each blogpost. Fix issue related to the id and link data.
1 parent f616af2 commit 618695f

File tree

5 files changed

+329
-327
lines changed

5 files changed

+329
-327
lines changed

scripts/generate-atom-feed.mjs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,28 @@ if (!fs.existsSync(outputDir)) {
1414
const generateAtomFeedFromBlogDetails = (feed, blogpostsDetails, nbOfBlogPosts) => {
1515
let posts = [];
1616
for (let i = 0; i < nbOfBlogPosts; i++) {
17-
const post = blogpostsDetails[i];
17+
const blogpost = blogpostsDetails[i];
1818
posts.push({
19-
title: post.title,
20-
link: post.url,
21-
description: post.summary,
22-
date: new Date(post.date),
23-
authors: post.authors.split(','),
19+
title: blogpost.title,
20+
link: blogpost.url,
21+
summary: blogpost.summary,
22+
date: new Date(blogpost.date),
23+
authors: blogpost.authors.split(','),
2424
})
2525
};
2626

2727
posts.forEach((post) => {
2828
feed.addItem({
29+
2930
title: post.title,
30-
id: post.url,
31-
link: post.url,
32-
description: post.summary,
31+
id: post.link,
32+
link: post.link,
3333
date: new Date(post.date),
3434
author: [{ name: post.authors }],
35+
content: post.s
36+
3537
});
36-
38+
3739
})
3840
return feed;
3941
}
@@ -55,7 +57,7 @@ const AtomFeedLast20 = new Feed({
5557

5658

5759
const updatedFeedLast20 = generateAtomFeedFromBlogDetails(AtomFeedLast20, blogpostsDetails, 20);
58-
const xml = updatedFeedLast20.atom1(); // Atom format
60+
const xml = updatedFeedLast20.atom1();
5961
fs.writeFileSync(path.join(outputDir, 'atom.xml'), xml);
6062

6163
const AtomFeedAll = new Feed({

static/atom.xml

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<feed xmlns="http://www.w3.org/2005/Atom">
33
<id>https://quantstack.net/</id>
44
<title>Recent blog posts featured by QuantStack team</title>
5-
<updated>2025-07-29T21:14:51.498Z</updated>
5+
<updated>2025-07-30T12:48:07.705Z</updated>
66
<generator>https://github.com/jpmonette/feed</generator>
77
<author>
88
<name>QuantStack Team</name>
@@ -13,17 +13,17 @@
1313
<subtitle>Atom feed for QuantStack website blog page</subtitle>
1414
<entry>
1515
<title type="html"><![CDATA[Create your own layers in JupyterGIS]]></title>
16-
<id/>
17-
<link/>
16+
<id>https://david-brochart.medium.com/create-your-own-layers-in-jupytergis-cbb995a89b16</id>
17+
<link href="https://david-brochart.medium.com/create-your-own-layers-in-jupytergis-cbb995a89b16"/>
1818
<updated>2025-06-25T00:00:00.000Z</updated>
1919
<author>
2020
<name>David Brochart</name>
2121
</author>
2222
</entry>
2323
<entry>
2424
<title type="html"><![CDATA[C++ in Jupyter — Interpreting C++ in the Web]]></title>
25-
<id/>
26-
<link/>
25+
<id>https://blog.jupyter.org/c-in-jupyter-interpreting-c-in-the-web-c9d93542f20b</id>
26+
<link href="https://blog.jupyter.org/c-in-jupyter-interpreting-c-in-the-web-c9d93542f20b"/>
2727
<updated>2025-06-19T00:00:00.000Z</updated>
2828
<author>
2929
<name>Anutosh Bhat</name>
@@ -32,53 +32,53 @@
3232
</entry>
3333
<entry>
3434
<title type="html"><![CDATA[JupyterLite 0.6.0 is released! 🎉]]></title>
35-
<id/>
36-
<link/>
35+
<id>https://blog.jupyter.org/jupyterlite-0-6-0-is-released-b4bc69bfc8f4</id>
36+
<link href="https://blog.jupyter.org/jupyterlite-0-6-0-is-released-b4bc69bfc8f4"/>
3737
<updated>2025-06-12T00:00:00.000Z</updated>
3838
<author>
3939
<name>Jeremy Tuloup</name>
4040
</author>
4141
</entry>
4242
<entry>
4343
<title type="html"><![CDATA[JupyterLab 4.4 and Notebook 7.4 are available!]]></title>
44-
<id/>
45-
<link/>
44+
<id>https://blog.jupyter.org/jupyterlab-4-4-and-notebook-7-4-are-available-aca2782d4f3d</id>
45+
<link href="https://blog.jupyter.org/jupyterlab-4-4-and-notebook-7-4-are-available-aca2782d4f3d"/>
4646
<updated>2025-05-21T00:00:00.000Z</updated>
4747
<author>
4848
<name>Jeremy Tuloup</name>
4949
</author>
5050
</entry>
5151
<entry>
5252
<title type="html"><![CDATA[Congratulations, Distinguished Contributors!]]></title>
53-
<id/>
54-
<link/>
53+
<id>https://blog.jupyter.org/congratulations-distinguished-contributors-2504029fc5a9</id>
54+
<link href="https://blog.jupyter.org/congratulations-distinguished-contributors-2504029fc5a9"/>
5555
<updated>2025-05-15T00:00:00.000Z</updated>
5656
<author>
5757
<name>Johan Mabille</name>
5858
</author>
5959
</entry>
6060
<entry>
6161
<title type="html"><![CDATA[Making Qt collaborative using CRDTs]]></title>
62-
<id/>
63-
<link/>
62+
<id>https://david-brochart.medium.com/making-qt-collaborative-using-crdts-94c470703253</id>
63+
<link href="https://david-brochart.medium.com/making-qt-collaborative-using-crdts-94c470703253"/>
6464
<updated>2025-03-31T00:00:00.000Z</updated>
6565
<author>
6666
<name>David Brochart</name>
6767
</author>
6868
</entry>
6969
<entry>
7070
<title type="html"><![CDATA[R in the Browser: Announcing Our WebAssembly Distribution]]></title>
71-
<id/>
72-
<link/>
71+
<id>https://blog.jupyter.org/r-in-the-browser-announcing-our-webassembly-distribution-9450e9539ed5</id>
72+
<link href="https://blog.jupyter.org/r-in-the-browser-announcing-our-webassembly-distribution-9450e9539ed5"/>
7373
<updated>2025-02-28T00:00:00.000Z</updated>
7474
<author>
7575
<name>Isabel Paredes</name>
7676
</author>
7777
</entry>
7878
<entry>
7979
<title type="html"><![CDATA[Real-time collaboration and collaborative editing for GIS workflows with Jupyter and QGIS]]></title>
80-
<id/>
81-
<link/>
80+
<id>https://blog.jupyter.org/real-time-collaboration-and-collaborative-editing-for-gis-workflows-with-jupyter-and-qgis-d25dbe2832a6</id>
81+
<link href="https://blog.jupyter.org/real-time-collaboration-and-collaborative-editing-for-gis-workflows-with-jupyter-and-qgis-d25dbe2832a6"/>
8282
<updated>2025-02-26T00:00:00.000Z</updated>
8383
<author>
8484
<name>Meriem Ben Ismail</name>
@@ -93,17 +93,17 @@
9393
</entry>
9494
<entry>
9595
<title type="html"><![CDATA[PyData Paris 2025 Keynotes]]></title>
96-
<id/>
97-
<link/>
96+
<id>https://medium.com/@PyDataParis/pydata-paris-2025-50ff2bf2dc39</id>
97+
<link href="https://medium.com/@PyDataParis/pydata-paris-2025-50ff2bf2dc39"/>
9898
<updated>2025-02-19T00:00:00.000Z</updated>
9999
<author>
100100
<name>Sandrine Pataut</name>
101101
</author>
102102
</entry>
103103
<entry>
104104
<title type="html"><![CDATA[Announcing JupyterCAD 3.0]]></title>
105-
<id/>
106-
<link/>
105+
<id>https://blog.jupyter.org/announcing-jupytercad-3-0-d8f4b7b0a719</id>
106+
<link href="https://blog.jupyter.org/announcing-jupytercad-3-0-d8f4b7b0a719"/>
107107
<updated>2025-02-17T00:00:00.000Z</updated>
108108
<author>
109109
<name>Arjun Verma</name>
@@ -113,8 +113,8 @@
113113
</entry>
114114
<entry>
115115
<title type="html"><![CDATA[Sparrow]]></title>
116-
<id/>
117-
<link/>
116+
<id>https://johan-mabille.medium.com/sparrow-1f23817f6696</id>
117+
<link href="https://johan-mabille.medium.com/sparrow-1f23817f6696"/>
118118
<updated>2025-01-31T00:00:00.000Z</updated>
119119
<author>
120120
<name>Johan Mabille</name>
@@ -125,44 +125,44 @@
125125
</entry>
126126
<entry>
127127
<title type="html"><![CDATA[JupyterLite Terminal]]></title>
128-
<id/>
129-
<link/>
128+
<id>https://blog.jupyter.org/jupyterlite-terminal-edb3f80dc1c0</id>
129+
<link href="https://blog.jupyter.org/jupyterlite-terminal-edb3f80dc1c0"/>
130130
<updated>2024-11-13T00:00:00.000Z</updated>
131131
<author>
132132
<name>Ian Thomas</name>
133133
</author>
134134
</entry>
135135
<entry>
136136
<title type="html"><![CDATA[Automate your releases with the Jupyter Releaser 🚀]]></title>
137-
<id/>
138-
<link/>
137+
<id>https://blog.jupyter.org/automate-your-releases-with-the-jupyter-releaser-701e7b9841e6</id>
138+
<link href="https://blog.jupyter.org/automate-your-releases-with-the-jupyter-releaser-701e7b9841e6"/>
139139
<updated>2024-10-28T00:00:00.000Z</updated>
140140
<author>
141141
<name>Jeremy Tuloup</name>
142142
</author>
143143
</entry>
144144
<entry>
145145
<title type="html"><![CDATA[QuantStack Steps Up to Support Apache Arrow with New Dedicated Team]]></title>
146-
<id/>
147-
<link/>
146+
<id>https://medium.com/@QuantStack/quantstack-steps-up-to-support-apache-arrow-with-new-dedicated-team-9ddc952f20e2</id>
147+
<link href="https://medium.com/@QuantStack/quantstack-steps-up-to-support-apache-arrow-with-new-dedicated-team-9ddc952f20e2"/>
148148
<updated>2024-10-22T00:00:00.000Z</updated>
149149
<author>
150150
<name>Sylvain Corlay</name>
151151
</author>
152152
</entry>
153153
<entry>
154154
<title type="html"><![CDATA[Interactive Mapping with ipyopenlayers]]></title>
155-
<id/>
156-
<link/>
155+
<id>https://blog.jupyter.org/interactive-mapping-with-ipyopenlayers-2b8bc93bb6c4</id>
156+
<link href="https://blog.jupyter.org/interactive-mapping-with-ipyopenlayers-2b8bc93bb6c4"/>
157157
<updated>2024-09-06T00:00:00.000Z</updated>
158158
<author>
159159
<name>Nour Cheour</name>
160160
</author>
161161
</entry>
162162
<entry>
163163
<title type="html"><![CDATA[Announcing the 2023 cohort of Jupyter distinguished contributors]]></title>
164-
<id/>
165-
<link/>
164+
<id>https://blog.jupyter.org/announcing-the-2023-jupyter-distinguished-contributor-award-recipients-1b2cc4ba203f</id>
165+
<link href="https://blog.jupyter.org/announcing-the-2023-jupyter-distinguished-contributor-award-recipients-1b2cc4ba203f"/>
166166
<updated>2024-09-04T00:00:00.000Z</updated>
167167
<author>
168168
<name>Johan Mabille</name>
@@ -171,8 +171,8 @@
171171
</entry>
172172
<entry>
173173
<title type="html"><![CDATA[Ipydatagrid is now part of Project Jupyter]]></title>
174-
<id/>
175-
<link/>
174+
<id>https://blog.jupyter.org/ipydatagrid-is-now-part-of-project-jupyter-3b3dfb877664</id>
175+
<link href="https://blog.jupyter.org/ipydatagrid-is-now-part-of-project-jupyter-3b3dfb877664"/>
176176
<updated>2024-08-22T00:00:00.000Z</updated>
177177
<author>
178178
<name>Sylvain Corlay</name>
@@ -181,8 +181,8 @@
181181
</entry>
182182
<entry>
183183
<title type="html"><![CDATA[Introducing Mamba 2.0]]></title>
184-
<id/>
185-
<link/>
184+
<id>https://medium.com/@QuantStack/introducing-mamba-2-0-0e8d5c6d1d0c</id>
185+
<link href="https://medium.com/@QuantStack/introducing-mamba-2-0-0e8d5c6d1d0c"/>
186186
<updated>2024-07-16T00:00:00.000Z</updated>
187187
<author>
188188
<name>Antoine Prouvost</name>
@@ -193,17 +193,17 @@
193193
</entry>
194194
<entry>
195195
<title type="html"><![CDATA[QuantStack open-source internship program]]></title>
196-
<id/>
197-
<link/>
196+
<id>https://medium.com/@QuantStack/quantstack-open-source-internship-program-049755b6d44b</id>
197+
<link href="https://medium.com/@QuantStack/quantstack-open-source-internship-program-049755b6d44b"/>
198198
<updated>2024-07-09T00:00:00.000Z</updated>
199199
<author>
200200
<name>Sylvain Corlay</name>
201201
</author>
202202
</entry>
203203
<entry>
204204
<title type="html"><![CDATA[JupyterCAD 2.0]]></title>
205-
<id/>
206-
<link/>
205+
<id>https://medium.com/@QuantStack/jupytercad-2-0-4b9c4e18d22a</id>
206+
<link href="https://medium.com/@QuantStack/jupytercad-2-0-4b9c4e18d22a"/>
207207
<updated>2024-07-05T00:00:00.000Z</updated>
208208
<author>
209209
<name>Trung Le</name>

0 commit comments

Comments
 (0)