beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From git-site-r...@apache.org
Subject [beam] branch asf-site updated: Publishing website 2021/06/09 18:03:44 at commit de29bc5
Date Wed, 09 Jun 2021 18:04:17 GMT
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 77ab94a  Publishing website 2021/06/09 18:03:44 at commit de29bc5
77ab94a is described below

commit 77ab94a9c6db45902b7146c89652915240daa5aa
Author: jenkins <builds@apache.org>
AuthorDate: Wed Jun 9 18:03:45 2021 +0000

    Publishing website 2021/06/09 18:03:44 at commit de29bc5
---
 .../blog/added-apex-runner/index.html              |   4 +-
 .../blog/adding-data-sources-to-sql/index.html     |   4 +-
 .../generated-content/blog/beam-2.10.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.11.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.12.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.13.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.14.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.15.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.16.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.17.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.18.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.19.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.20.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.21.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.22.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.23.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.24.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.25.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.26.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.27.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.28.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.29.0/index.html  |   4 +-
 .../generated-content/blog/beam-2.3.0/index.html   |   4 +-
 .../generated-content/blog/beam-2.5.0/index.html   |   4 +-
 .../generated-content/blog/beam-2.6.0/index.html   |   4 +-
 .../generated-content/blog/beam-2.7.0/index.html   |   4 +-
 .../generated-content/blog/beam-2.8.0/index.html   |   4 +-
 .../generated-content/blog/beam-2.9.0/index.html   |   4 +-
 .../blog/beam-a-look-back/index.html               |   4 +-
 .../blog/beam-first-stable-release/index.html      |   4 +-
 .../blog/beam-graduates/index.html                 |   4 +-
 .../blog/beam-has-a-logo/index.html                |   4 +-
 .../blog/beam-kata-release/index.html              |   4 +-
 .../blog/beam-katas-kotlin-release/index.html      |   4 +-
 .../generated-content/blog/beam-kotlin/index.html  |   4 +-
 .../blog/beam-summit-aftermath/index.html          |   4 +-
 .../blog/beam-summit-digital-2020/index.html       |   4 +-
 .../blog/beam-summit-europe-2019/index.html        |   4 +-
 .../blog/beam-summit-europe/index.html             |   4 +-
 .../blog/beam-summit-site/index.html               |   4 +-
 .../blog/capability-matrix/index.html              |   4 +-
 .../dataframe-api-preview-available/index.html     |   4 +-
 .../blog/first-release/index.html                  |   4 +-
 .../blog/flink-batch-runner-milestone/index.html   |   4 +-
 .../blog/graduation-media-recap/index.html         |   4 +-
 website/generated-content/blog/gsoc-19/index.html  |   4 +-
 website/generated-content/blog/index.html          |   2 +-
 website/generated-content/blog/index.xml           | 189 ++++++--------
 .../blog/kafka-to-pubsub-example/index.html        |   4 +-
 .../blog/looping-timers/index.html                 |   4 +-
 .../blog/pattern-match-beam-sql/index.html         |   4 +-
 .../blog/presentation-materials/index.html         |   4 +-
 .../blog/python-improved-annotations/index.html    |   4 +-
 .../index.html                                     |   4 +-
 .../blog/python-sdk-now-public/index.html          |   4 +-
 .../blog/python-sdk-release/index.html             |   4 +-
 .../blog/python-typing/index.html                  |   4 +-
 .../review-input-streaming-connectors/index.html   |   4 +-
 .../blog/season-of-docs/index.html                 |   4 +-
 .../generated-content/blog/six-months/index.html   |   4 +-
 .../blog/splitatfraction-method/index.html         |   4 +-
 .../blog/splittable-do-fn-is-available/index.html  |   4 +-
 .../blog/splittable-do-fn/index.html               |   4 +-
 .../blog/stateful-processing/index.html            |   4 +-
 .../blog/strata-hadoop-world-and-beam/index.html   |   4 +-
 .../generated-content/blog/test-stream/index.html  |   4 +-
 .../blog/timely-processing/index.html              |   4 +-
 .../blog/validate-beam-release/index.html          |  72 ++++++
 .../where-is-my-pcollection-dot-map/index.html     |   4 +-
 .../generated-content/categories/blog/index.xml    | 189 ++++++--------
 website/generated-content/categories/index.xml     |   2 +-
 website/generated-content/contribute/index.xml     |   1 +
 .../contribute/release-guide/index.html            |   4 +-
 .../dsls/dataframes/overview/index.html            |   4 +-
 website/generated-content/feed.xml                 | 285 ++++++---------------
 website/generated-content/index.html               |   6 +-
 website/generated-content/sitemap.xml              |   2 +-
 77 files changed, 470 insertions(+), 550 deletions(-)

diff --git a/website/generated-content/blog/added-apex-runner/index.html b/website/generated-content/blog/added-apex-runner/index.html
index 73a1460..71b355d 100644
--- a/website/generated-content/blog/added-apex-runner/index.html
+++ b/website/generated-content/blog/added-apex-runner/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/01/09</p></div><header class=post-header><h2 itemprop="name headline">Release 0.4.0 adds a runner for Apache Apex</h1><div class=post-info><span>Thomas Weise [<a href=https://twitter.com/thweise>@thweise</a>]</span></div></header><div clas [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/01/09</p></div><header class=post-header><h2 itemprop="name headline">Release 0.4.0 adds a runner for Apache Apex</h1><div class=post-info><span>Thomas Weise [<a href=https://twitter.com/thweise>@thweise</a>]</span></div></header><div clas [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/adding-data-sources-to-sql/index.html b/website/generated-content/blog/adding-data-sources-to-sql/index.html
index 3e007c2..9ff87e9 100644
--- a/website/generated-content/blog/adding-data-sources-to-sql/index.html
+++ b/website/generated-content/blog/adding-data-sources-to-sql/index.html
@@ -132,11 +132,11 @@ us make sure that we&rsquo;re providing the timestamp for each row properly:</p>
 +---------------------+--------------+
 5 rows selected (10.142 seconds)
 </code></pre><p>And voilà! We can start playing with some interesting streaming queries to our
-sequence generator.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+sequence generator.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div> [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.10.0/index.html b/website/generated-content/blog/beam-2.10.0/index.html
index a67d696..f666492 100644
--- a/website/generated-content/blog/beam-2.10.0/index.html
+++ b/website/generated-content/blog/beam-2.10.0/index.html
@@ -36,11 +36,11 @@ Markwick, Pablo Estrada, Prem Kumar Karunakaran, Reuven Lax, robbe, Robbe
 Sneyders, Robert Bradshaw, Robert Burke, Ruoyun Huang, Ryan Williams, Sam
 Whittle, Scott Wegner, Slava Chernyak, Theodore Siu, Thomas Weise, Udi Meiri,
 <a href=mailto:vaclav.plajt@gmail.com>vaclav.plajt@gmail.com</a>, Valentyn Tymofieiev, Won Wook SONG, Wout Scheepers,
-Xinyu Liu, Yueyang Qiu, Zhuo Peng</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category [...]
+Xinyu Liu, Yueyang Qiu, Zhuo Peng</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/0 [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.11.0/index.html b/website/generated-content/blog/beam-2.11.0/index.html
index 992c1b8..815c051 100644
--- a/website/generated-content/blog/beam-2.11.0/index.html
+++ b/website/generated-content/blog/beam-2.11.0/index.html
@@ -31,11 +31,11 @@ Maximilian Michels, Melissa Pashniak, Michael Luckey, Michal Walenia, Mike Peder
 Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Pascal Gula, Reuven Lax, Robbe Sneyders,
 Robert Bradshaw, Robert Burke, Rui Wang, Ruoyun Huang, Ryan Williams, Sam Rohde, Sam Whittle,
 Scott Wegner, Tanay Tummalapalli, Thomas Weise, Tianyang Hu, Tyler Akidau, Udi Meiri,
-Valentyn Tymofieiev, Xinyu Liu, Xu Mingmin, Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class [...]
+Valentyn Tymofieiev, Xinyu Liu, Xu Mingmin, Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-categ [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.12.0/index.html b/website/generated-content/blog/beam-2.12.0/index.html
index 0bf2ba5..f840632 100644
--- a/website/generated-content/blog/beam-2.12.0/index.html
+++ b/website/generated-content/blog/beam-2.12.0/index.html
@@ -37,11 +37,11 @@ Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Radoslaw Stankiewicz,
 Reuven Lax, Robbe Sneyders, Robert Bradshaw, Robert Burke, Rui Wang,
 Ruoyun Huang, Ryan Williams, Slava Chernyak, Shahar Frank, Sunil Pedapudi,
 Thomas Weise, Tim Robertson, Tanay Tummalapalli, Udi Meiri,
-Valentyn Tymofieiev, Xinyu Liu, Yifan Zou, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="po [...]
+Valentyn Tymofieiev, Xinyu Liu, Yifan Zou, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category" [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.13.0/index.html b/website/generated-content/blog/beam-2.13.0/index.html
index 6253698..c1a9119 100644
--- a/website/generated-content/blog/beam-2.13.0/index.html
+++ b/website/generated-content/blog/beam-2.13.0/index.html
@@ -34,11 +34,11 @@ Pablo Estrada, Pranay Nanda, Reuven Lax, Richard Moorhead, Robbe Sneyders,
 Robert Bradshaw, Robert Burke, Roman van der Krogt, rosetn, Rui Wang, Ryan Yuan,
 Sam Whittle, sudhan499, Sylwester Kardziejonek, Ted, Thomas Weise, Tim Robertson,
 ttanay, tvalentyn, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, Yifan Zou,
-yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>bl [...]
+yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.14.0/index.html b/website/generated-content/blog/beam-2.14.0/index.html
index f1d9ca3e..95939715 100644
--- a/website/generated-content/blog/beam-2.14.0/index.html
+++ b/website/generated-content/blog/beam-2.14.0/index.html
@@ -40,11 +40,11 @@ Peter Backx, Rakesh Kumar, Rasmi Elasmar, Reuven Lax, Reza Rokni, Robbe Sneyders
 Robert Bradshaw, Robert Burke, Rose Nguyen, Rui Wang, Ruoyun Huang,
 Shoaib Zafar, Slava Chernyak, Steve Niemitz, Tanay Tummalapalli, Thomas Weise,
 Tim Robertson, Tim van der Lippe, Udi Meiri, Valentyn Tymofieiev, Varun Dhussa,
-Viktor Gerdin, Yichi Zhang, Yifan Mai, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div c [...]
+Viktor Gerdin, Yichi Zhang, Yifan Mai, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-c [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.15.0/index.html b/website/generated-content/blog/beam-2.15.0/index.html
index f5128cf..692813f 100644
--- a/website/generated-content/blog/beam-2.15.0/index.html
+++ b/website/generated-content/blog/beam-2.15.0/index.html
@@ -35,11 +35,11 @@ Pablo Estrada, Paul King, Paul Suganthan, Raheel Khan, Rakesh Kumar,
 Reza Rokni, Robert Bradshaw, Robert Burke, rosetn, Rui Wang, Ryan Skraba, RyanSkraba,
 Sahith Nallapareddy, Sam Rohde, Sam Whittle, Steve Niemitz, Tanay Tummalapalli, Thomas Weise,
 Tianyang Hu, ttanay, tvalentyn, Udi Meiri, Valentyn Tymofieiev, Wout Scheepers,
-yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing Zhou</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories=" [...]
+yanzhi, Yekut, Yichi Zhang, Yifan Zou, yoshiki.obata, Yueyang Qiu, Yunqing Zhou</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class= [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.16.0/index.html b/website/generated-content/blog/beam-2.16.0/index.html
index bb97b60..bf88ade 100644
--- a/website/generated-content/blog/beam-2.16.0/index.html
+++ b/website/generated-content/blog/beam-2.16.0/index.html
@@ -37,11 +37,11 @@ Salman Raza, Sam Rohde, Saul Chavez, Shoaib, Shoaib Zafar, Slava Chernyak, Tanay
 Thinh Ha, Thomas Weise, Tianzi Cai, Tim van der Lippe, Tomer Zeltzer, Tudor Marian,
 Udi Meiri, Valentyn Tymofieiev, Yichi Zhang, Yifan Zou, Yueyang Qiu, gxercavins,
 jesusrv1103, lostluck, matt-darwin, mrociorg, ostrokach, parahul, rahul8383, rosetn,
-sunjincheng121, the1plummie, ttanay, tvalentyn, venn001, yoshiki.obata, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-catego [...]
+sunjincheng121, the1plummie, ttanay, tvalentyn, venn001, yoshiki.obata, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.17.0/index.html b/website/generated-content/blog/beam-2.17.0/index.html
index a49fba0..b1dbcbc 100644
--- a/website/generated-content/blog/beam-2.17.0/index.html
+++ b/website/generated-content/blog/beam-2.17.0/index.html
@@ -38,11 +38,11 @@ Nasyrov, Reuven Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ruslan Altynnikov,
 Ryan Skraba, Salman Raza, Saul Chavez, Sebastian Jambor, sunjincheng121, Tatu
 Saloranta, tchiarato, Thomas Weise, Tomo Suzuki, Tudor Marian, tvalentyn, Udi
 Meiri, Valentyn Tymofieiev, Viola Lyu, Vishwas, Yichi Zhang, Yifan Zou, Yueyang
-Qiu, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+Qiu, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div>< [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.18.0/index.html b/website/generated-content/blog/beam-2.18.0/index.html
index d6381fe..b7224e9 100644
--- a/website/generated-content/blog/beam-2.18.0/index.html
+++ b/website/generated-content/blog/beam-2.18.0/index.html
@@ -22,11 +22,11 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 &
 Ahmet Altay</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy to present the new 2.18.0 release of Beam. This release includes both improvements and new functionality.
 See the <a href=/get-started/downloads/#2180-2020-01-23>download page</a> for this release.</p><p>For more information on changes in 2.18.0, check out the
-<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12346383&projectId=12319527">detailed release notes</a>.</p><h2 id=highlights>Highlights</h2><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-8470>BEAM-8470</a> - Create a new Spark runner based on Spark Structured streaming framework</li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-7636>BEAM-7636</a> - Added SqsIO v2 support.</li><li><a href=https://issues.apache.org/ [...]
+<a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12346383&projectId=12319527">detailed release notes</a>.</p><h2 id=highlights>Highlights</h2><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-8470>BEAM-8470</a> - Create a new Spark runner based on Spark Structured streaming framework</li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-7636>BEAM-7636</a> - Added SqsIO v2 support.</li><li><a href=https://issues.apache.org/ [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.19.0/index.html b/website/generated-content/blog/beam-2.19.0/index.html
index 89f79a5..c78b196 100644
--- a/website/generated-content/blog/beam-2.19.0/index.html
+++ b/website/generated-content/blog/beam-2.19.0/index.html
@@ -25,11 +25,11 @@ See the <a href=/get-started/downloads/#2190-2020-02-04>download page</a> for th
 <a href=https://issues.apache.org/jira/browse/BEAM-8623>BEAM-8623</a>,
 <a href=https://issues.apache.org/jira/browse/BEAM-7949>BEAM-7949</a>,
 <a href=https://issues.apache.org/jira/browse/BEAM-8935>BEAM-8935</a>,
-<a href=https://issues.apache.org/jira/browse/BEAM-8816>BEAM-8816</a></li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-1440>BEAM-1440</a> Create a BigQuery source (that implements iobase.BoundedSource) for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-2572>BEAM-2572</a> Implement an S3 filesystem for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-5192>BEAM-5192</a> Support Elasticsearch 7.x</li><li><a h [...]
+<a href=https://issues.apache.org/jira/browse/BEAM-8816>BEAM-8816</a></li></ul><h3 id=ios>I/Os</h3><ul><li><a href=https://issues.apache.org/jira/browse/BEAM-1440>BEAM-1440</a> Create a BigQuery source (that implements iobase.BoundedSource) for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-2572>BEAM-2572</a> Implement an S3 filesystem for Python SDK</li><li><a href=https://issues.apache.org/jira/browse/BEAM-5192>BEAM-5192</a> Support Elasticsearch 7.x</li><li><a h [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.20.0/index.html b/website/generated-content/blog/beam-2.20.0/index.html
index 0bddda8..71ba3d1 100644
--- a/website/generated-content/blog/beam-2.20.0/index.html
+++ b/website/generated-content/blog/beam-2.20.0/index.html
@@ -26,11 +26,11 @@ See the <a href=/get-started/downloads/#2190-2020-02-04>download page</a> for th
 , Kengo Seki, Kenneth Jung, Kenneth Knowles, Kyle Weaver, Kyle Winkelman, Lukas Drbal, Marek Simunek, Mark Liu, Maximilian Michels, Melissa Pashniak
 , Michael Luckey, Michal Walenia, Mike Pedersen, Mikhail Gryzykhin, Niel Markwick, Pablo Estrada, Pascal Gula, Rehman Murad Ali, Reuven Lax, Rob, Robbe Sneyders
 , Robert Bradshaw, Robert Burke, Rui Wang, Ruoyun Huang, Ryan Williams, Sam Rohde, Sam Whittle, Scott Wegner, Shoaib Zafar, Thomas Weise, Tianyang Hu, Tyler Akidau
-, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, XuMingmin, ttanay, tvalentyn, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-cat [...]
+, Udi Meiri, Valentyn Tymofieiev, Xinyu Liu, XuMingmin, ttanay, tvalentyn, Łukasz Gajowy</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><d [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.21.0/index.html b/website/generated-content/blog/beam-2.21.0/index.html
index 552fdbf..10bd60d 100644
--- a/website/generated-content/blog/beam-2.21.0/index.html
+++ b/website/generated-content/blog/beam-2.21.0/index.html
@@ -53,11 +53,11 @@ see <a href=https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-av
 (<a href=https://issues.apache.org/jira/browse/BEAM-9634>BEAM-9634</a>)</p></li><li><p><code>docker-pull-licenses</code> tag was introduced. Licenses/notices of third party dependencies will be added to the docker images when <code>docker-pull-licenses</code> was set.
 The files are added to <code>/opt/apache/beam/third_party_licenses/</code>.
 By default, no licenses/notices are added to the docker images. (<a href=https://issues.apache.org/jira/browse/BEAM-9136>BEAM-9136</a>)</p></li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>Dataflow runner now requires the <code>--region</code> option to be set, unless a default value is set in the environment (<a href=https://issues.apache.org/jira/browse/BEAM-9199>BEAM-9199</a>). See <a href=https://cloud.google.com/dataflow/docs/concepts/regional-endpoints>here</a> for mor [...]
-Schema Options, it will be removed in version <code>2.23.0</code>. (<a href=https://issues.apache.org/jira/browse/BEAM-9704>BEAM-9704</a>)</li><li>The <code>--zone</code> option in the Dataflow runner is now deprecated. Please use <code>--worker_zone</code> instead. (<a href=https://issues.apache.org/jira/browse/BEAM-9716>BEAM-9716</a>)</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.21.0 release. Thank [...]
+Schema Options, it will be removed in version <code>2.23.0</code>. (<a href=https://issues.apache.org/jira/browse/BEAM-9704>BEAM-9704</a>)</li><li>The <code>--zone</code> option in the Dataflow runner is now deprecated. Please use <code>--worker_zone</code> instead. (<a href=https://issues.apache.org/jira/browse/BEAM-9716>BEAM-9716</a>)</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to git shortlog, the following people contributed to the 2.21.0 release. Thank [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.22.0/index.html b/website/generated-content/blog/beam-2.22.0/index.html
index 1140c9f..a456aaa 100644
--- a/website/generated-content/blog/beam-2.22.0/index.html
+++ b/website/generated-content/blog/beam-2.22.0/index.html
@@ -21,11 +21,11 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2020/06/08</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.22.0</h1><div class=post-info><span>Brian Hulette [<a href=https://twitter.com/BrianHulette>@BrianHulette</a>]</span></div></header><div class="arrow-list  [...]
 See the <a href=/get-started/downloads/#2220-2020-06-08>download page</a> for this release.</p><p>For more information on changes in 2.22.0, check out the
 <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12347144">detailed release notes</a>.</p><h2 id=ios>I/Os</h2><ul><li>Basic Kafka read/write support for DataflowRunner (Python) (<a href=https://issues.apache.org/jira/browse/BEAM-8019>BEAM-8019</a>).</li><li>Sources and sinks for Google Healthcare APIs (Java)(<a href=https://issues.apache.org/jira/browse/BEAM-9468>BEAM-9468</a>).</li></ul><h2 id=new-features--improvements>New Features / Improvemen [...]
-(<a href=https://issues.apache.org/jira/browse/BEAM-9646>BEAM-9646</a>)</li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>The Python SDK now requires <code>--job_endpoint</code> to be set when using <code>--runner=PortableRunner</code> (<a href=https://issues.apache.org/jira/browse/BEAM-9860>BEAM-9860</a>). Users seeking the old default behavior should set <code>--runner=FlinkRunner</code> instead.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to  [...]
+(<a href=https://issues.apache.org/jira/browse/BEAM-9646>BEAM-9646</a>)</li></ul><h2 id=breaking-changes>Breaking Changes</h2><ul><li>The Python SDK now requires <code>--job_endpoint</code> to be set when using <code>--runner=PortableRunner</code> (<a href=https://issues.apache.org/jira/browse/BEAM-9860>BEAM-9860</a>). Users seeking the old default behavior should set <code>--runner=FlinkRunner</code> instead.</li></ul><h2 id=list-of-contributors>List of Contributors</h2><p>According to  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.23.0/index.html b/website/generated-content/blog/beam-2.23.0/index.html
index 6efeea2..9914322 100644
--- a/website/generated-content/blog/beam-2.23.0/index.html
+++ b/website/generated-content/blog/beam-2.23.0/index.html
@@ -29,11 +29,11 @@ Previously nulls could only be represented with explicit null values, as in
 <code>{"foo": "bar", "baz": null}</code>, whereas an implicit null like <code>{"foo": "bar"}</code> would raise an
 exception. Now both JSON strings will yield the same result by default. This behavior can be
 overridden with <code>RowJson.RowJsonDeserializer#withNullBehavior</code>.</li><li>Fixed a bug in <code>GroupIntoBatches</code> experimental transform in Python to actually group batches by key.
-This changes the output type for this transform (<a href=https://issues.apache.org/jira/browse/BEAM-6696>BEAM-6696</a>).</li></ul><h2 id=deprecations>Deprecations</h2><ul><li>Remove Gearpump runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>Remove Apex runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>RedisIO.readAll() is deprecated and will be removed in 2 versions, users must use RedisIO.readKeyPatterns() as a  [...]
+This changes the output type for this transform (<a href=https://issues.apache.org/jira/browse/BEAM-6696>BEAM-6696</a>).</li></ul><h2 id=deprecations>Deprecations</h2><ul><li>Remove Gearpump runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>Remove Apex runner. (<a href=https://issues.apache.org/jira/browse/BEAM-9999>BEAM-9999</a>)</li><li>RedisIO.readAll() is deprecated and will be removed in 2 versions, users must use RedisIO.readKeyPatterns() as a  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.24.0/index.html b/website/generated-content/blog/beam-2.24.0/index.html
index ffd031e..e7c93ad 100644
--- a/website/generated-content/blog/beam-2.24.0/index.html
+++ b/website/generated-content/blog/beam-2.24.0/index.html
@@ -41,11 +41,11 @@ Robert Bradshaw, Robert Burke, Robin Qiu, Rui Wang, Saavan Nanavati, sabhyankar,
 Scott Lukas, Siddhartha Thota, Simone Primarosa, Sławomir Andrian,
 Steve Niemitz, Tobiasz Kędzierski, Tomo Suzuki, Tyson Hamilton, Udi Meiri,
 Valentyn Tymofieiev, viktorjonsson, Xinyu Liu, Yichi Zhang, Yixing Zhang, yoshiki.obata,
-Yueyang Qiu, zijiesong</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+Yueyang Qiu, zijiesong</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></d [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.25.0/index.html b/website/generated-content/blog/beam-2.25.0/index.html
index 240909b..dd5548c 100644
--- a/website/generated-content/blog/beam-2.25.0/index.html
+++ b/website/generated-content/blog/beam-2.25.0/index.html
@@ -40,11 +40,11 @@ Saavan Nanavati, Sam Bourne, Sam Rohde, Sam Whittle, Sergiy Kolesnikov, Sindy Li
 Niemitz, Terry Xian, Thomas Weise, Tobiasz Kędzierski, Truc Le, Tyson Hamilton, Udi Meiri, Valentyn
 Tymofieiev, Yichi Zhang, Yifan Mai, Yueyang Qiu, annaqin418, danielxjd, dennis, dp, fuyuwei,
 lostluck, nehsyc, odeshpande, odidev, pulasthi, purbanow, rworley-monster, sclukas77, terryxian78,
-tvalentyn, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+tvalentyn, yoshiki.obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p>< [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.26.0/index.html b/website/generated-content/blog/beam-2.26.0/index.html
index 9242906..e8bb65c 100644
--- a/website/generated-content/blog/beam-2.26.0/index.html
+++ b/website/generated-content/blog/beam-2.26.0/index.html
@@ -34,11 +34,11 @@ Romain Manni-Bucau, Rui Wang, rworley-monster, Sam Rohde, Sam Whittle, shollyman
 Simone Primarosa, Siyuan Chen, Steve Niemitz, Steven van Rossum, sychen, Teodor Spæren,
 Tim Clemons, Tim Robertson, Tobiasz Kędzierski, tszerszen, Tudor Marian, tvalentyn,
 Tyson Hamilton, Udi Meiri, Vasu Gupta, xasm83, Yichi Zhang, yichuan66, Yifan Mai,
-yoshiki.obata, Yueyang Qiu, yukihira1992</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-c [...]
+yoshiki.obata, Yueyang Qiu, yukihira1992</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.27.0/index.html b/website/generated-content/blog/beam-2.27.0/index.html
index d30dcde..5a9d553 100644
--- a/website/generated-content/blog/beam-2.27.0/index.html
+++ b/website/generated-content/blog/beam-2.27.0/index.html
@@ -36,11 +36,11 @@ Pawel Pasterz, Piotr Szuberski, purbanow, Reuven Lax, rHermes,
 Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde, Sam Whittle,
 Siyuan Chen, Tim Robertson, Tobiasz Kędzierski, tszerszen,
 Valentyn Tymofieiev, Tyson Hamilton, Udi Meiri, vachan-shetty, Xinyu Liu,
-Yichi Zhang, Yifan Mai, yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-i [...]
+Yichi Zhang, Yifan Mai, yoshiki.obata, Yueyang Qiu</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p> [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.28.0/index.html b/website/generated-content/blog/beam-2.28.0/index.html
index 1189584..b50bb04 100644
--- a/website/generated-content/blog/beam-2.28.0/index.html
+++ b/website/generated-content/blog/beam-2.28.0/index.html
@@ -35,11 +35,11 @@ Nelson Osacky, Niel Markwick, Ning Kang, omarismail94, Pablo Estrada, Piotr Szub
 ramazan-yapparov, Reuven Lax, Reza Rokni, rHermes, Robert Bradshaw, Robert Burke, Robert Gruener,
 Romster, Rui Wang, Sam Whittle, shehzaadn-vd, Siyuan Chen, Sonam Ramchand, Tobiasz Kędzierski,
 Tomo Suzuki, tszerszen, tvalentyn, Tyson Hamilton, Udi Meiri, Xinbin Huang, Yichi Zhang,
-Yifan Mai, yoshiki.obata, Yueyang Qiu, Yusaku Matsuki</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="pos [...]
+Yifan Mai, yoshiki.obata, Yueyang Qiu, Yusaku Matsuki</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"> [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.29.0/index.html b/website/generated-content/blog/beam-2.29.0/index.html
index a662733..4aa02ee 100644
--- a/website/generated-content/blog/beam-2.29.0/index.html
+++ b/website/generated-content/blog/beam-2.29.0/index.html
@@ -39,11 +39,11 @@ Williams, Robert Bradshaw, Robert Burke, Rui Wang, Sam Rohde, Sam Whittle,
 Shehzaad Nakhoda, Shehzaad Nakhoda, Siyuan Chen, Sonam Ramchand, Steve Niemitz,
 sychen, Sylvain Veyrié, Tim Robertson, Tobias Kaymak, Tomasz Szerszeń, Tomasz
 Szerszeń, Tomo Suzuki, Tyson Hamilton, Udi Meiri, Valentyn Tymofieiev, Yichi
-Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info p [...]
+Zhang, Yifan Mai, Yixing Zhang, Yoshiki Obata</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog< [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.3.0/index.html b/website/generated-content/blog/beam-2.3.0/index.html
index 6be21f2..2e36a83 100644
--- a/website/generated-content/blog/beam-2.3.0/index.html
+++ b/website/generated-content/blog/beam-2.3.0/index.html
@@ -40,11 +40,11 @@ implicit representations of various Beam entities.</li><li>Introduces two transf
 (approximate element frequency estimation) and HyperLogLog (approximate
 cardinality estimation).</li></ul><h2 id=runners>Runners</h2><ul><li>Staging files on Dataflow shows progress</li><li>Flink runner is based now on Flink version 1.4.0</li></ul><h2 id=ios>IOs</h2><ul><li>BigtableIO now supports ValueProvider configuration</li><li>BigQueryIO supports writing bounded collections to tables with partition
 decorators</li><li>KafkaIO moves to version 1.0 (it is still backwards compatible with versions >= 0.9.x.x)</li><li>Added IO source for VCF files (Python)</li><li>Added support for backoff on deadlocks in JdbcIO.write() and connection
-improvement</li><li>Improved performance of KinesisIO.read()</li><li>Many improvements to TikaIO</li></ul><h1 id=list-of-contributors>List of Contributors</h1><p>According to git shortlog, the following 78 people contributed to the 2.3.0 release. Thank you to all contributors!</p><p>Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Ankur Goenka, Anton Kedin, Arnaud Fournier, Asha Rostamianfar, Ben Chambers, Ben Sidhom, Bill Neubauer, Brian Foo, cclauss, Chamikara Jayalath, Charles [...]
+improvement</li><li>Improved performance of KinesisIO.read()</li><li>Many improvements to TikaIO</li></ul><h1 id=list-of-contributors>List of Contributors</h1><p>According to git shortlog, the following 78 people contributed to the 2.3.0 release. Thank you to all contributors!</p><p>Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Ankur Goenka, Anton Kedin, Arnaud Fournier, Asha Rostamianfar, Ben Chambers, Ben Sidhom, Bill Neubauer, Brian Foo, cclauss, Chamikara Jayalath, Charles [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.5.0/index.html b/website/generated-content/blog/beam-2.5.0/index.html
index 0399d6a..08b723b 100644
--- a/website/generated-content/blog/beam-2.5.0/index.html
+++ b/website/generated-content/blog/beam-2.5.0/index.html
@@ -20,11 +20,11 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/06/26</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.5.0</h1><div class=post-info><span>Alexey Romanenko [<a href=https://twitter.com/alexromdev>@alexromdev</a>]</span></div></header><div class="arrow-list he [...]
 multiple fixes and new functionalities.</p><p>For more information
-please check the detailed release notes.</p><h1 id=new-features--improvements>New Features / Improvements</h1><h2 id=go-sdk-support>Go SDK support</h2><p>The Go SDK has been officially accepted into the project, after an incubation period and community effort. Go pipelines run on Dataflow runner. More details are <a href=/documentation/sdks/go/>here</a>.</p><h2 id=parquet-support>Parquet support</h2><p>Support for Apache Parquet format was added. It uses Parquet 1.10 release which, thank [...]
+please check the detailed release notes.</p><h1 id=new-features--improvements>New Features / Improvements</h1><h2 id=go-sdk-support>Go SDK support</h2><p>The Go SDK has been officially accepted into the project, after an incubation period and community effort. Go pipelines run on Dataflow runner. More details are <a href=/documentation/sdks/go/>here</a>.</p><h2 id=parquet-support>Parquet support</h2><p>Support for Apache Parquet format was added. It uses Parquet 1.10 release which, thank [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.6.0/index.html b/website/generated-content/blog/beam-2.6.0/index.html
index 0a822b7..0bcec94 100644
--- a/website/generated-content/blog/beam-2.6.0/index.html
+++ b/website/generated-content/blog/beam-2.6.0/index.html
@@ -39,11 +39,11 @@ Lukasz Cwik, Maria Garcia Herrero, Mark Liu, Matthias Feys,
 Pablo Estrada, Rafael Fernandez, Reuven Lax, Robert Bradshaw,
 Robert Burke, Robin Qiu, Ryan Williams, Scott Wegner, Rui Weng,
 Sergei Lebedev, Sindy Li, Thomas Weise, Udi Meiri,
-Valentyn Tymofieiev, XuMingmin, and Yifan Zou.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info  [...]
+Valentyn Tymofieiev, XuMingmin, and Yifan Zou.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.7.0/index.html b/website/generated-content/blog/beam-2.7.0/index.html
index 35fe857..a7b3ac7 100644
--- a/website/generated-content/blog/beam-2.7.0/index.html
+++ b/website/generated-content/blog/beam-2.7.0/index.html
@@ -37,11 +37,11 @@ Melissa Pashniak, Mikhail Gryzykhin, Mikhail Sokolov, mingmxu, Norbert
 Chen, Pablo Estrada, Prateek Chanda, Raghu Angadi, Ravi Pathak, Reuven
 Lax, Robert Bradshaw, Robert Burke, Rui Wang, Ryan Williams, Sindy Li,
 Thomas Weise, Tim Robertson, Tormod Haavi, Udi Meiri, Vaclav Plajt,
-Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div c [...]
+Valentyn Tymofieiev, xiliu, XuMingmin, Yifan Zou, Yueyang Qiu.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-c [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.8.0/index.html b/website/generated-content/blog/beam-2.8.0/index.html
index c123fe4..7960d95 100644
--- a/website/generated-content/blog/beam-2.8.0/index.html
+++ b/website/generated-content/blog/beam-2.8.0/index.html
@@ -44,11 +44,11 @@ Xinyu Liu, XuMingmin, Yifan Zou, Yuan, Yueyang Qiu, aalbatross, amaliujia,
 cclauss, connelloG, daidokoro, deepyaman, djhworld, flyisland, huygaa11,
 jasonkuster, jglezt, kkpoon, mareksimunek, nielm, svXaverius, timrobertson100,
 <a href=mailto:vaclav.plajt@gmail.com>vaclav.plajt@gmail.com</a>, vitaliytv, vvarma, xiliu, xinyuiscool, xitep,
-Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+Łukasz Gajowy.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-2.9.0/index.html b/website/generated-content/blog/beam-2.9.0/index.html
index 7149362..f8f330c 100644
--- a/website/generated-content/blog/beam-2.9.0/index.html
+++ b/website/generated-content/blog/beam-2.9.0/index.html
@@ -21,11 +21,11 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/12/13</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam 2.9.0</h1><div class=post-info><span>Chamikara Jayalath</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>We are happy t [...]
 See the <a href=/get-started/downloads/#290-2018-12-13>download page</a> for this release.</p><p>For more information on changes in 2.9.0, check out the
 <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319527&version=12344258">detailed release notes</a>.</p><h2 id=new-features--improvements>New Features / Improvements</h2><h3 id=dependency-upgrades>Dependency Upgrades</h3><ul><li>Update google-api-client libraries to 1.27.0.</li><li>Update byte-buddy to 1.9.3</li><li>Update Flink Runner to 1.5.5</li><li>Upgrade google-apitools to 0.5.24</li></ul><h3 id=portability>Portability</h3><ul><li>Added support for user  [...]
-to the 2.9.0 release. Thank you to all contributors!</p><p>Adam Horky, Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Andrea Foegler, Andrew Fulton, Andrew Pilloud, Ankur Goenka, Anton Kedin, Babu, Ben Song, Bingfeng Shu, Boyuan Zhang, Brian Martin, Brian Quinlan, Chamikara Jayalath, Charles Chen, Christian Schneider, Colm O hEigeartaigh, Cory Brzycki, CraigChambersG, Daniel Oliveira, David Moravek, Dusan Rychnovsky, Etienne Chauchot, Eugene Kirpichov, Fabien Rousseau, Gleb Kan [...]
+to the 2.9.0 release. Thank you to all contributors!</p><p>Adam Horky, Ahmet Altay, Alan Myrvold, Alex Amato, Alexey Romanenko, Andrea Foegler, Andrew Fulton, Andrew Pilloud, Ankur Goenka, Anton Kedin, Babu, Ben Song, Bingfeng Shu, Boyuan Zhang, Brian Martin, Brian Quinlan, Chamikara Jayalath, Charles Chen, Christian Schneider, Colm O hEigeartaigh, Cory Brzycki, CraigChambersG, Daniel Oliveira, David Moravek, Dusan Rychnovsky, Etienne Chauchot, Eugene Kirpichov, Fabien Rousseau, Gleb Kan [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-a-look-back/index.html b/website/generated-content/blog/beam-a-look-back/index.html
index 62733e0..e6edd6f 100644
--- a/website/generated-content/blog/beam-a-look-back/index.html
+++ b/website/generated-content/blog/beam-a-look-back/index.html
@@ -78,11 +78,11 @@ users to constantly learn new SDKs/APIs and rewrite their workloads to
 benefit from new innovation.</li><li>Benefit big-data engines by <em><strong>growing the pie for everyone</strong></em>: Making it
 easier for users to author, maintain, upgrade and migrate their big-data
 workloads will lead to significant growth in the number of production
-big-data deployments.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>b [...]
+big-data deployments.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</ [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-first-stable-release/index.html b/website/generated-content/blog/beam-first-stable-release/index.html
index adafbb2..75973934 100644
--- a/website/generated-content/blog/beam-first-stable-release/index.html
+++ b/website/generated-content/blog/beam-first-stable-release/index.html
@@ -20,11 +20,11 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2017/05/17</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam publishes the first stable release</h1><div class=post-info><span>Davor Bonaci [<a href=https://twitter.com/BonaciDavor>@BonaciDavor</a>]
 &
-Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>The Apache Beam community is pleased to <a href=https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12>announce the availability of version 2.0.0</a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for ent [...]
+Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>The Apache Beam community is pleased to <a href=https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12>announce the availability of version 2.0.0</a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for ent [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-graduates/index.html b/website/generated-content/blog/beam-graduates/index.html
index b2a9678..eaae4e9 100644
--- a/website/generated-content/blog/beam-graduates/index.html
+++ b/website/generated-content/blog/beam-graduates/index.html
@@ -58,11 +58,11 @@ towards our first release with API stability. If you’d like to try out Apache
 Beam today, check out the latest
 <a href=/get-started/downloads/>0.4.0 release</a>. We welcome
 contribution and participation from anyone through our mailing lists, issue
-tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-catego [...]
+tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021 [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-has-a-logo/index.html b/website/generated-content/blog/beam-has-a-logo/index.html
index 463bed8..e0a65a6 100644
--- a/website/generated-content/blog/beam-has-a-logo/index.html
+++ b/website/generated-content/blog/beam-has-a-logo/index.html
@@ -28,11 +28,11 @@ unification of bath and streaming, as beams of light, within the &lsquo;B&rsquo;
 our future website and documentation design around this logo and its coloring. We
 will also make various permutations and resolutions of this logo available in the
 coming weeks. For any questions or comments, send an email to the <code>dev@</code> email list
-for Apache Beam.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+for Apache Beam.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><di [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-kata-release/index.html b/website/generated-content/blog/beam-kata-release/index.html
index aee3ec6..92196b5 100644
--- a/website/generated-content/blog/beam-kata-release/index.html
+++ b/website/generated-content/blog/beam-kata-release/index.html
@@ -37,11 +37,11 @@ also like to welcome you to <a href=https://github.com/apache/beam>contribute</a
 useful for people to learn more about Apache Beam, and eventually become Beam Masters!</p><br><img src=/images/blog/beam-kata/beam-kata-intellij-edu-1.png alt="Beam Kata - IntelliJ Edu" width=363 height=350>
 <img src=/images/blog/beam-kata/beam-kata-intellij-edu-2.png alt="Beam Kata - IntelliJ Edu" width=455 height=350>
 <img src=/images/blog/beam-kata/beam-kata-pycharm-edu-1.png alt="Beam Kata - PyCharm Edu" width=363 height=350>
-<img src=/images/blog/beam-kata/beam-kata-pycharm-edu-2.png alt="Beam Kata - PyCharm Edu" width=459 height=350></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsu [...]
+<img src=/images/blog/beam-kata/beam-kata-pycharm-edu-2.png alt="Beam Kata - PyCharm Edu" width=459 height=350></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-katas-kotlin-release/index.html b/website/generated-content/blog/beam-katas-kotlin-release/index.html
index 17d7e93..268025e 100644
--- a/website/generated-content/blog/beam-katas-kotlin-release/index.html
+++ b/website/generated-content/blog/beam-katas-kotlin-release/index.html
@@ -30,11 +30,11 @@ of engineering teams embracing the two technologies including <a href=https://be
 If you are new to Beam or are an experienced veteran looking for a change of pace, we&rsquo;d encourage you to give
 Kotlin a try.</p><p>You can find the Kotlin and the other excellent Beam Katas below (or by just searching for &ldquo;Beam Katas&rdquo; within
 <a href="https://www.jetbrains.com/education/download/#section=idea">IntelliJ</a> or <a href="https://www.jetbrains.com/education/download/#section=pycharm-edu">PyCharm</a> through <a href=https://plugins.jetbrains.com/plugin/10081-edutools>the EduTools plugin</a>):</p><ul><li><a href=https://stepik.org/course/72488><strong>Kotlin</strong></a></li><li><a href=https://stepik.org/course/54530><strong>Java</strong></a></li><li><a href=https://stepik.org/course/54532><strong>Python</strong>< [...]
-and his support during the review process and making this effort a reality.</p><p><br></p><p><img src=/images/blog/beam-katas-kotlin-release/beam-katas-in-edutools.png alt="Access Beam Katas Kotlin through a JetBrains Educational Product" height=252 width=800></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div> [...]
+and his support during the review process and making this effort a reality.</p><p><br></p><p><img src=/images/blog/beam-katas-kotlin-release/beam-katas-in-edutools.png alt="Access Beam Katas Kotlin through a JetBrains Educational Product" height=252 width=800></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div> [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-kotlin/index.html b/website/generated-content/blog/beam-kotlin/index.html
index ff3dbb4..a38b419 100644
--- a/website/generated-content/blog/beam-kotlin/index.html
+++ b/website/generated-content/blog/beam-kotlin/index.html
@@ -36,11 +36,11 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 <span class=o>}</span></code></pre></div></div></div><h3 id=kotlin-2>Kotlin</h3><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>tableRow</span><span class=o>?.</span><span class=na>let</span><span class=o>{</span>
     <span class=n>formatAndInsert</span><span class=o>(</span><span class=n>it</span><span class=o>)</span>  <span class=c1>// No need for null checks
 </span><span class=c1></span><span class=o>}</span></code></pre></div></div></div><h3 id=java-3>Java</h3><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=n>String</span> <span class=n>tableName</span> <span class=o>=</span> <span class=s>& [...]
-You can find them over here : <a href=https://github.com/apache/beam/tree/master/examples/kotlin>https://github.com/apache/beam/tree/master/examples/kotlin</a></p><p>If you are using Kotlin with Apache Beam already; we would very much appreciate if you went ahead and help us convert the existing samples from Java into Koltin.</p><p>Thank you, and we are looking forward to feedback from you!</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a [...]
+You can find them over here : <a href=https://github.com/apache/beam/tree/master/examples/kotlin>https://github.com/apache/beam/tree/master/examples/kotlin</a></p><p>If you are using Kotlin with Apache Beam already; we would very much appreciate if you went ahead and help us convert the existing samples from Java into Koltin.</p><p>Thank you, and we are looking forward to feedback from you!</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-aftermath/index.html b/website/generated-content/blog/beam-summit-aftermath/index.html
index 17d39e3..0b1bfd5 100644
--- a/website/generated-content/blog/beam-summit-aftermath/index.html
+++ b/website/generated-content/blog/beam-summit-aftermath/index.html
@@ -19,11 +19,11 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/10/31</p></div><header class=post-header><h2 itemprop="name headline">Inaugural edition of the Beam Summit Europe 2018 - aftermath</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaeten [...]
-Google, Spotify, Talend, Sky, Amazon, Data Artisans, Datatonic, Vente Exclusive, ML6, Flumaion, Plantix, Polidea, Seznam and more!</p><br>#### Topics included using Python to run Beam on Flink:<blockquote class=twitter-tweet data-lang=nl><p lang=en dir=ltr>Don't miss <a href="https://twitter.com/snntrable?ref_src=twsrc%5Etfw">@snntrable</a>'s session at Beam Sumit London, Oct. 2, 2018, about <a href="https://twitter.com/hashtag/Python?src=hash&ref_src=twsrc%5Etfw">#Python</a> Streaming P [...]
+Google, Spotify, Talend, Sky, Amazon, Data Artisans, Datatonic, Vente Exclusive, ML6, Flumaion, Plantix, Polidea, Seznam and more!</p><br>#### Topics included using Python to run Beam on Flink:<blockquote class=twitter-tweet data-lang=nl><p lang=en dir=ltr>Don't miss <a href="https://twitter.com/snntrable?ref_src=twsrc%5Etfw">@snntrable</a>'s session at Beam Sumit London, Oct. 2, 2018, about <a href="https://twitter.com/hashtag/Python?src=hash&ref_src=twsrc%5Etfw">#Python</a> Streaming P [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-digital-2020/index.html b/website/generated-content/blog/beam-summit-digital-2020/index.html
index 396837e..062cb56 100644
--- a/website/generated-content/blog/beam-summit-digital-2020/index.html
+++ b/website/generated-content/blog/beam-summit-digital-2020/index.html
@@ -23,11 +23,11 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]
 ,
 &
-Maximilian Michels [<a href=https://twitter.com/stadtlegende>@stadtlegende</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>As some of you are already aware, the 2020 edition of the Beam Summit will be completely <strong>digital and free</strong>. Beam Summit Digital will take place from <strong>August 24th to 28th</strong>. The conference will be spread across the course of one week with a couple of hours of program each day.</p><p><img class=c [...]
+Maximilian Michels [<a href=https://twitter.com/stadtlegende>@stadtlegende</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>As some of you are already aware, the 2020 edition of the Beam Summit will be completely <strong>digital and free</strong>. Beam Summit Digital will take place from <strong>August 24th to 28th</strong>. The conference will be spread across the course of one week with a couple of hours of program each day.</p><p><img class=c [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-europe-2019/index.html b/website/generated-content/blog/beam-summit-europe-2019/index.html
index a3c569a..f0cc33b 100644
--- a/website/generated-content/blog/beam-summit-europe-2019/index.html
+++ b/website/generated-content/blog/beam-summit-europe-2019/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/05/11</p></div><header class=post-header><h2 itemprop="name headline">Beam community update!</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div class [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/05/11</p></div><header class=post-header><h2 itemprop="name headline">Beam community update!</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div class [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-europe/index.html b/website/generated-content/blog/beam-summit-europe/index.html
index f5cd727..8047fcd 100644
--- a/website/generated-content/blog/beam-summit-europe/index.html
+++ b/website/generated-content/blog/beam-summit-europe/index.html
@@ -19,11 +19,11 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2018/08/21</p></div><header class=post-header><h2 itemprop="name headline">Beam Summit Europe 2018</h1><div class=post-info><span>Matthias Baetens [<a href=https://twitter.com/matthiasbaetens>@matthiasbaetens</a>]</span></div></header><div clas [...]
-The Events & Meetups Group</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>bl [...]
+The Events & Meetups Group</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/beam-summit-site/index.html b/website/generated-content/blog/beam-summit-site/index.html
index 295bc11..7700d0c 100644
--- a/website/generated-content/blog/beam-summit-site/index.html
+++ b/website/generated-content/blog/beam-summit-site/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/03/18</p></div><header class=post-header><h2 itemprop="name headline">Announcing Beam Summit Site</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></header><div clas [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/03/18</p></div><header class=post-header><h2 itemprop="name headline">Announcing Beam Summit Site</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></header><div clas [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/capability-matrix/index.html b/website/generated-content/blog/capability-matrix/index.html
index dc52706..d6add04 100644
--- a/website/generated-content/blog/capability-matrix/index.html
+++ b/website/generated-content/blog/capability-matrix/index.html
@@ -169,11 +169,11 @@ Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></he
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#fe5;border-color:#ca1><center><b>~</b>
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#fe5;border-color:#ca1><center><b>~</b>
 <b></b></center></td><td width=25% class=cap-summary style=background-color:#ddd;border-color:#ca1><center><b>&#x2715;</b>
-<b></b></center></td></tr><tr class=cap-summary><td class="cap-summary color-blank cap-blank" colspan=5></td></tr></table></div></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href [...]
+<b></b></center></td></tr><tr class=cap-summary><td class="cap-summary color-blank cap-blank" colspan=5></td></tr></table></div></p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/b [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/dataframe-api-preview-available/index.html b/website/generated-content/blog/dataframe-api-preview-available/index.html
index 89eae17..8594f75 100644
--- a/website/generated-content/blog/dataframe-api-preview-available/index.html
+++ b/website/generated-content/blog/dataframe-api-preview-available/index.html
@@ -128,11 +128,11 @@ and our <a href=https://2020.beamsummit.org/sessions/simpler-python-pipelines/>B
 presentation</a>.
 From there the best way to help is to knock out some of those not implemented
 operations. We&rsquo;re coordinating that work in
-<a href=https://issues.apache.org/jira/browse/BEAM-9547>BEAM-9547</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java [...]
+<a href=https://issues.apache.org/jira/browse/BEAM-9547>BEAM-9547</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-inf [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/first-release/index.html b/website/generated-content/blog/first-release/index.html
index 229515e..2484590 100644
--- a/website/generated-content/blog/first-release/index.html
+++ b/website/generated-content/blog/first-release/index.html
@@ -37,11 +37,11 @@ anticipated, perhaps one every 1-2 months.</p><p>As always, the Beam community w
 the developer experience will be our focus for the next several months. If you
 have any comments or discover any issues, I’d like to invite you to reach out
 to us via <a href=/get-started/support/>user’s mailing list</a> or the
-<a href=https://issues.apache.org/jira/browse/BEAM/>Apache JIRA issue tracker</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categorie [...]
+<a href=https://issues.apache.org/jira/browse/BEAM/>Apache JIRA issue tracker</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div cla [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/flink-batch-runner-milestone/index.html b/website/generated-content/blog/flink-batch-runner-milestone/index.html
index e76b966..e50551d 100644
--- a/website/generated-content/blog/flink-batch-runner-milestone/index.html
+++ b/website/generated-content/blog/flink-batch-runner-milestone/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/06/13</p></div><header class=post-header><h2 itemprop="name headline">How We Added Windowing to the Apache Flink Batch Runner</h1><div class=post-info><span>Aljoscha Krettek [<a href=https://twitter.com/aljoscha>@aljoscha</a>]</span></div> [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/06/13</p></div><header class=post-header><h2 itemprop="name headline">How We Added Windowing to the Apache Flink Batch Runner</h1><div class=post-info><span>Aljoscha Krettek [<a href=https://twitter.com/aljoscha>@aljoscha</a>]</span></div> [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/graduation-media-recap/index.html b/website/generated-content/blog/graduation-media-recap/index.html
index 357cd47..d5f372f 100644
--- a/website/generated-content/blog/graduation-media-recap/index.html
+++ b/website/generated-content/blog/graduation-media-recap/index.html
@@ -36,11 +36,11 @@ as a user or a contributor, as we work towards our first release with API
 stability. If you’d like to try out Apache Beam today, check out the latest
 <a href=/get-started/downloads/>0.4.0 release</a>. We welcome
 contribution and participation from anyone through our mailing lists, issue
-tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-catego [...]
+tracker, pull requests, and events.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021 [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/gsoc-19/index.html b/website/generated-content/blog/gsoc-19/index.html
index 8b39e5e..11b16cf 100644
--- a/website/generated-content/blog/gsoc-19/index.html
+++ b/website/generated-content/blog/gsoc-19/index.html
@@ -36,11 +36,11 @@ I also worked on small issues related to testing.</p><p>This period was marked b
 While working on my project, I was using a pipeline that uses PubSub as a source and BigQuery as a sink to validate my changes. My mentor suggested we add them to the Beam test suite as it would be the ultimate test for BigQueryIO. I also worked on adding this test to Beam.</p><p>You can find the list of PRs I worked on <a href="https://github.com/apache/beam/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Attanay">here</a>.</p><h2 id=conclusion>Conclusion</h2><p>GSoC has been a lesson in discipl [...]
 I had never worked remotely, so this was a new experience. Although I struggled with it initially, I appreciate the flexibility that it comes with.
 I also had a lot of fun learning about Apache Beam’s internals, and other tools in the same ecosystem.
-This was also the first time I had written code with a test-first approach.</p><p>I thank my mentor - Pablo Estrada, Apache Beam, The Apache Software Foundation and Google Summer of Code for this opportunity. I am also grateful to my mentor for helping me with everything I needed and more, and the Apache Beam community for being supportive and encouraging.</p><p>With the right effort, perseverance, conviction, and a plan, anything is possible. Anything.</p></div></div><div class=blog-con [...]
+This was also the first time I had written code with a test-first approach.</p><p>I thank my mentor - Pablo Estrada, Apache Beam, The Apache Software Foundation and Google Summer of Code for this opportunity. I am also grateful to my mentor for helping me with everything I needed and more, and the Apache Beam community for being supportive and encouraging.</p><p>With the right effort, perseverance, conviction, and a plan, anything is possible. Anything.</p></div></div><div class=blog-con [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/index.html b/website/generated-content/blog/index.html
index 27b8888..e0a6114 100644
--- a/website/generated-content/blog/index.html
+++ b/website/generated-content/blog/index.html
@@ -39,7 +39,7 @@ capability</button>
 <button xx class=category-button id=category-sdk onclick=applyFilter(this)>
 sdk</button>
 <button xx class=category-button id=category-website onclick=applyFilter(this)>
-website</button></div><div class=posts-list><a class="post-card tf-filter-item" href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p><div class=post-summary>We are happy to present the new 2.29.0 release of Beam. This release includes both improvements and new functionality. See the download page for this release.</div></a><a class="post-card tf-f [...]
+website</button></div><div class=posts-list><a class="post-card tf-filter-item" href=/blog/validate-beam-release/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/06/08</p></div><p class=post-title>How to validate a Beam Release</p><p class=post-info>Pablo Estrada</p><div class=post-summary>Performing new releases is a core responsibility of any software project. It is even more important in the culture of Apache projects. Releases are the main flow of new cod [...]
                    </p><p>2021/01/15</p></div><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
 Alex Kosolapov</p><div class=post-summary>In this blog post we present an example that creates a pipeline to read data from a single topic or multiple topics from Apache Kafka and write data into a topic in Google Pub/Sub.</div></a><a class="post-card tf-filter-item" href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p><div class=post-summary>We are [...]
diff --git a/website/generated-content/blog/index.xml b/website/generated-content/blog/index.xml
index 5a183cb..e750abd 100644
--- a/website/generated-content/blog/index.xml
+++ b/website/generated-content/blog/index.xml
@@ -1,4 +1,87 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 29 Apr 2021 09:00:00 -0700</lastBuildDate><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.29.0</title><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 -0700</pubDate><gui [...]
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Blogs</title><link>/blog/</link><description>Recent content in Blogs on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 08 Jun 2021 00:00:01 -0800</lastBuildDate><atom:link href="/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: How to validate a Beam Release</title><link>/blog/validate-beam-release/</link><pubDate>Tue, 08 Jun 2021 00:00: [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Performing new releases is a core responsibility of any software project.
+It is even more important in the culture of Apache projects. Releases are
+the main flow of new code / features among the community of a project.&lt;/p>
+&lt;p>Beam is no exception: We aspire to keep a release cadence of about 6 weeks,
+and try to work with the community to release useful new features, and to
+keep Beam useful.&lt;/p>
+&lt;h3 id="configure-a-java-build-to-validate-a-beam-release-candidate">Configure a Java build to validate a Beam release candidate&lt;/h3>
+&lt;p>First of all, it would be useful to have a single property in your &lt;code>pom.xml&lt;/code>
+where you keep the global Beam version that you&amp;rsquo;re using. Something like this
+in your &lt;code>pom.xml&lt;/code>:&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">26&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt; [...]
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sdks&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Second, you can add a new profile to your &lt;code>pom.xml&lt;/code> file. In this new profile,
+add a new repository with the staging repository for the new Beam release. For
+Beam 2.27.0, this was &lt;code>https://repository.apache.org/content/repositories/orgapachebeam-1149/&lt;/code>.&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java"> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">validaterelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">newrelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">release&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">repo&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Once you have a &lt;code>beam.version&lt;/code> property in your &lt;code>pom.xml&lt;/code>, and a new profile
+with the new release, you can run your &lt;code>mvn&lt;/code> command activating the new profile,
+and the new Beam version:&lt;/p>
+&lt;pre>&lt;code>mvn test -Pvalidaterelease \
+-Dbeam.version=2.27.0 \
+-Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
+&lt;/code>&lt;/pre>&lt;p>This should build your project against the new release, and run basic tests.
+It will allow you to run basic validations against the new Beam release.
+If you find any issues, then you can share them &lt;em>before&lt;/em> the release is
+finalized, so your concerns can be addressed by the community.&lt;/p>
+&lt;h3 id="configuring-a-python-build-to-validate-a-beam-release-candidate">Configuring a Python build to validate a Beam release candidate&lt;/h3>
+&lt;p>For Python SDK releases, you can install SDK from Pypi, by enabling the
+installation of pre-release artifacts.&lt;/p>
+&lt;p>First, make sure that your &lt;code>requirements.txt&lt;/code> or &lt;code>setup.py&lt;/code> files allow
+for Beam versions above the current one. Something like this should install
+the latest available version:&lt;/p>
+&lt;pre>&lt;code>apache-beam&amp;lt;=3.0.0
+&lt;/code>&lt;/pre>&lt;p>With that, you can ask &lt;code>pip&lt;/code> to install pre-release versions of Beam in your
+environment:&lt;/p>
+&lt;pre>&lt;code>pip install --pre apache-beam
+&lt;/code>&lt;/pre>&lt;p>With that, the Beam version in your environment will be the latest release
+candidate, and you can go ahead and run your tests to verify that everything
+works well.&lt;/p></description></item><item><title>Blog: Apache Beam 2.29.0</title><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 -0700</pubDate><guid>/blog/beam-2.29.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -4970,106 +5053,4 @@ bugs, and suggest or implement improvements.&lt;/p>
 users) and &lt;a href="mailto:dev@beam.apache.org">dev@beam.apache.org&lt;/a> (mailing list for
 Beam developers)!&lt;/p>
 &lt;/li>
-&lt;/ul></description></item><item><title>Blog: Apache Beam publishes the first stable release</title><link>/blog/beam-first-stable-release/</link><pubDate>Wed, 17 May 2017 00:00:01 -0800</pubDate><guid>/blog/beam-first-stable-release/</guid><description>
-&lt;!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-&lt;p>The Apache Beam community is pleased to &lt;a href="https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12">announce the availability of version 2.0.0&lt;/a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for enterprise deployment.&lt;/p>
-&lt;p>This first stable release is the third important milestone for the Apache Beam community. Beam joined the Apache Incubator in February 2016 and graduated as a top-level project of The Apache Software Foundation in December. Through these fifteen months of concentrated effort, a slightly chaotic codebase, merged from multiple organizations, has been developed into a generalized framework for data processing that is truly engine- and environment-independent. Apache Beam has evolved a [...]
-&lt;p>In the five months since graduation, Apache Beam has seen a significant growth, both in terms of adoption and community contribution. Apache Beam is &lt;a href="https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12">in use&lt;/a> at Google Cloud, PayPal, and Talend, among others.&lt;/p>
-&lt;p>Apache Beam, version 2.0.0 improves user experience across the project, focusing on seamless portability across execution environments, including engines, operating systems, on-premise clusters, cloud providers, and data storage systems. Other highlights include:&lt;/p>
-&lt;ul>
-&lt;li>API stability and future compatibility within this major version.&lt;/li>
-&lt;li>Stateful data processing paradigms that unlock efficient, data-dependent computations.&lt;/li>
-&lt;li>Support for user-extensible file systems, with built-in support for Hadoop Distributed File System, among others.&lt;/li>
-&lt;li>A metrics subsystem for deeper insight into pipeline execution.&lt;/li>
-&lt;/ul>
-&lt;p>Many contributors made this release possible, by participating in different roles: contributing code, writing documentation, testing release candidates, supporting users, or helping in some other way. The following is a partial list of contributors – 76 individuals contributed code to the project since the previous release, assembled from source history:&lt;/p>
-&lt;ul>
-&lt;li>Ahmet Altay&lt;/li>
-&lt;li>Eric Anderson&lt;/li>
-&lt;li>Raghu Angadi&lt;/li>
-&lt;li>Sourabh Bajaj&lt;/li>
-&lt;li>Péter Gergő Barna&lt;/li>
-&lt;li>Chen Bin&lt;/li>
-&lt;li>Davor Bonaci&lt;/li>
-&lt;li>Robert Bradshaw&lt;/li>
-&lt;li>Ben Chambers&lt;/li>
-&lt;li>Etienne Chauchot&lt;/li>
-&lt;li>Chang Chen&lt;/li>
-&lt;li>Charles Chen&lt;/li>
-&lt;li>Craig Citro&lt;/li>
-&lt;li>Lukasz Cwik&lt;/li>
-&lt;li>Márton Elek&lt;/li>
-&lt;li>Pablo Estrada&lt;/li>
-&lt;li>Josh Forman-Gornall&lt;/li>
-&lt;li>Maria García Herrero&lt;/li>
-&lt;li>Jins George&lt;/li>
-&lt;li>Damien Gouyette&lt;/li>
-&lt;li>Thomas Groh&lt;/li>
-&lt;li>Dan Halperin&lt;/li>
-&lt;li>Pei He&lt;/li>
-&lt;li>Hadar Hod&lt;/li>
-&lt;li>Chamikara Jayalath&lt;/li>
-&lt;li>Rekha Joshi&lt;/li>
-&lt;li>Uwe Jugel&lt;/li>
-&lt;li>Sung Junyoung&lt;/li>
-&lt;li>Holden Karau&lt;/li>
-&lt;li>Vikas Kedigehalli&lt;/li>
-&lt;li>Eugene Kirpichov&lt;/li>
-&lt;li>Tibor Kiss&lt;/li>
-&lt;li>Kenneth Knowles&lt;/li>
-&lt;li>Vassil Kolarov&lt;/li>
-&lt;li>Chinmay Kolhatkar&lt;/li>
-&lt;li>Aljoscha Krettek&lt;/li>
-&lt;li>Dipti Kulkarni&lt;/li>
-&lt;li>Radhika Kulkarni&lt;/li>
-&lt;li>Jason Kuster&lt;/li>
-&lt;li>Reuven Lax&lt;/li>
-&lt;li>Stas Levin&lt;/li>
-&lt;li>Julien Lhermitte&lt;/li>
-&lt;li>Jingsong Li&lt;/li>
-&lt;li>Neville Li&lt;/li>
-&lt;li>Mark Liu&lt;/li>
-&lt;li>Michael Luckey&lt;/li>
-&lt;li>Andrew Martin&lt;/li>
-&lt;li>Ismaël Mejía&lt;/li>
-&lt;li>Devon Meunier&lt;/li>
-&lt;li>Neda Mirian&lt;/li>
-&lt;li>Anil Muppalla&lt;/li>
-&lt;li>Gergely Novak&lt;/li>
-&lt;li>Jean-Baptiste Onofré&lt;/li>
-&lt;li>Melissa Pashniak&lt;/li>
-&lt;li>peay&lt;/li>
-&lt;li>David Rieber&lt;/li>
-&lt;li>Rahul Sabbineni&lt;/li>
-&lt;li>Kobi Salant&lt;/li>
-&lt;li>Amit Sela&lt;/li>
-&lt;li>Mark Shalda&lt;/li>
-&lt;li>Stephen Sisk&lt;/li>
-&lt;li>Yuya Tajima&lt;/li>
-&lt;li>Wesley Tanaka&lt;/li>
-&lt;li>JiJun Tang&lt;/li>
-&lt;li>Valentyn Tymofieiev&lt;/li>
-&lt;li>David Volquartz&lt;/li>
-&lt;li>Huafeng Wang&lt;/li>
-&lt;li>Thomas Weise&lt;/li>
-&lt;li>Rafal Wojdyla&lt;/li>
-&lt;li>Yangping Wu&lt;/li>
-&lt;li>wyp&lt;/li>
-&lt;li>James Xu&lt;/li>
-&lt;li>Mingmin Xu&lt;/li>
-&lt;li>Ted Yu&lt;/li>
-&lt;li>Borisa Zivkovic&lt;/li>
-&lt;li>Aviem Zur&lt;/li>
-&lt;/ul>
-&lt;p>Apache Beam, version 2.0.0, is making its debut at Apache: Big Data, taking place this week in Miami, FL, with four sessions featuring Apache Beam. Apache Beam will also be highlighted at numerous face-to-face meetups and conferences, including the Future of Data San Jose meetup, Strata Data Conference London, Berlin Buzzwords, and DataWorks Summit San Jose.&lt;/p>
-&lt;p>We’d like to invite everyone to try out Apache Beam today and consider joining our vibrant community. We welcome feedback, contribution and participation through our mailing lists, issue tracker, pull requests, and events.&lt;/p></description></item></channel></rss>
\ No newline at end of file
+&lt;/ul></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/blog/kafka-to-pubsub-example/index.html b/website/generated-content/blog/kafka-to-pubsub-example/index.html
index e14a8d9..794f02f 100644
--- a/website/generated-content/blog/kafka-to-pubsub-example/index.html
+++ b/website/generated-content/blog/kafka-to-pubsub-example/index.html
@@ -47,11 +47,11 @@ within <a href=https://github.com/GoogleCloudPlatform/DataflowTemplates>Google C
 repository and can be run with no additional code modifications.</li></ul></li></ol><h1 id=next-steps>Next Steps</h1><p>Give this <strong>Beam end-to-end example</strong> a try. If you are new to Beam, we hope this example will give
 you more understanding on how pipelines work and look like. If you are already using Beam, we hope
 some code samples in it will be useful for your use cases.</p><p>Please
-<a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example [...]
+<a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categori [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/looping-timers/index.html b/website/generated-content/blog/looping-timers/index.html
index 93a8928..a6c813a 100644
--- a/website/generated-content/blog/looping-timers/index.html
+++ b/website/generated-content/blog/looping-timers/index.html
@@ -222,11 +222,11 @@ runners will need to add support for it with all of their more advanced
 feature sets. You can experiment with this pattern today using the
 DirectRunner. For other runners, please look out for their release notes on
 support for dealing with this use case in production.</p><p>(<a href=/documentation/runners/capability-matrix/>Capability Matrix</a>)</p><p>Runner specific notes:
-Google Cloud Dataflow Runners Drain feature does not support looping timers (Link to matrix)</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data [...]
+Google Cloud Dataflow Runners Drain feature does not support looping timers (Link to matrix)</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blo [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/pattern-match-beam-sql/index.html b/website/generated-content/blog/pattern-match-beam-sql/index.html
index f85e8e4..54fc226 100644
--- a/website/generated-content/blog/pattern-match-beam-sql/index.html
+++ b/website/generated-content/blog/pattern-match-beam-sql/index.html
@@ -66,11 +66,11 @@ query:</p><div class="language-sql snippet"><div class="notebook-skip code-snipp
 mapped to A and the rest of the rows will be mapped to B. Thus, we will have (1, 5) as the result.</p><blockquote><p>Very important: For my NFA implementation, it slightly breaks the rule in the SQL standard. Since the buffered NFA
 only stores an event to the buffer if the event is a match to some pattern class, There would be no way to get the
 previous event back if the previous row is discarded. So the first row would always be a match (different from the standard)
-if PREV is used.</p></blockquote><h2 id=progress>Progress</h2><ol><li>PRs<ol><li><a href=https://github.com/apache/beam/pull/12232>Support MATCH_RECOGNIZE using regex library</a> (merged)</li><li><a href=https://github.com/apache/beam/pull/12532>Support MATCH_RECOGNIZE using NFA</a> (pending)</li></ol></li><li>Commits<ol><li>partition by: <a href=https://github.com/apache/beam/pull/12232/commits/064ada7257970bcb1d35530be1b88cb3830f242b>commit 064ada7</a></li><li>order by: <a href=https:/ [...]
+if PREV is used.</p></blockquote><h2 id=progress>Progress</h2><ol><li>PRs<ol><li><a href=https://github.com/apache/beam/pull/12232>Support MATCH_RECOGNIZE using regex library</a> (merged)</li><li><a href=https://github.com/apache/beam/pull/12532>Support MATCH_RECOGNIZE using NFA</a> (pending)</li></ol></li><li>Commits<ol><li>partition by: <a href=https://github.com/apache/beam/pull/12232/commits/064ada7257970bcb1d35530be1b88cb3830f242b>commit 064ada7</a></li><li>order by: <a href=https:/ [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/presentation-materials/index.html b/website/generated-content/blog/presentation-materials/index.html
index f25b9b4..2f3204e 100644
--- a/website/generated-content/blog/presentation-materials/index.html
+++ b/website/generated-content/blog/presentation-materials/index.html
@@ -21,11 +21,11 @@ function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam & capability
        </p><p>2016/04/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam Presentation Materials</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]
 &
-Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Are you interested in giving a presentation about Apache Beam? Perhaps you want to talk about Apache Beam at a local Meetup or a convention. Excellent! The Apache Beam community is excited to expand and grow the community. To help kickstart this process, we are excited to announce an initial set of <a href=/contribute/presentation-material [...]
+Tyler Akidau [<a href=https://twitter.com/takidau>@takidau</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Are you interested in giving a presentation about Apache Beam? Perhaps you want to talk about Apache Beam at a local Meetup or a convention. Excellent! The Apache Beam community is excited to expand and grow the community. To help kickstart this process, we are excited to announce an initial set of <a href=/contribute/presentation-material [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-improved-annotations/index.html b/website/generated-content/blog/python-improved-annotations/index.html
index 3e763d9..5b53f11 100644
--- a/website/generated-content/blog/python-improved-annotations/index.html
+++ b/website/generated-content/blog/python-improved-annotations/index.html
@@ -55,11 +55,11 @@ type hints by removing the outer PCollection container.</p><h2 id=pbegin-pdone-n
 </code></pre><h1 id=next-steps>Next Steps</h1><p>What are you waiting for.. start using annotations on your transforms!</p><p>For more background on type hints in Python, see:
 <a href=https://beam.apache.org/documentation/sdks/python-type-safety/>Ensuring Python Type Safety</a>.</p><p>Finally, please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a>
-if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p> [...]
+if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22< [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-performance-runtime-type-checking/index.html b/website/generated-content/blog/python-performance-runtime-type-checking/index.html
index 6b39ee0..f028382 100644
--- a/website/generated-content/blog/python-performance-runtime-type-checking/index.html
+++ b/website/generated-content/blog/python-performance-runtime-type-checking/index.html
@@ -67,11 +67,11 @@ at the point of declaration rather than the point of exception, saving you valua
 while providing higher quality error messages.</p><p>So what would the same error look like using Performance RTC? It&rsquo;s the exact same string but with one additional line:</p><pre><code>[while running 'ParDo(UpstreamDoFn)']
 </code></pre><p>And that&rsquo;s much more actionable for an investigation :)</p><h1 id=next-steps>Next Steps</h1><p>Go play with the new <code>performance_runtime_type_check</code> feature!</p><p>It&rsquo;s in an experimental state so please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a>
-if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p> [...]
+if you encounter any issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22< [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-sdk-now-public/index.html b/website/generated-content/blog/python-sdk-now-public/index.html
index 489aefb..b7c8fec 100644
--- a/website/generated-content/blog/python-sdk-now-public/index.html
+++ b/website/generated-content/blog/python-sdk-now-public/index.html
@@ -20,11 +20,11 @@ function endSearch(){var search=document.querySelector(".searchBar");search.clas
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam, python & sdk
        </p><p>2016/02/25</p></div><header class=post-header><h2 itemprop="name headline">Dataflow Python SDK is now public!</h1><div class=post-info><span>James Malone [<a href=https://twitter.com/chimerasaurus>@chimerasaurus</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>When the Apache Beam project proposed entry into the <a href=http://wiki.apache.org/incubator/BeamProposal>Apache Incubator</a> the proposal
-included the <a href=https://github.com/GoogleCloudPlatform/DataflowJavaSDK>Dataflow Java SDK</a>. In the long term, however, Apache Beam aims to support SDKs implemented in multiple languages, such as Python.</p><p>Today, Google submitted the <a href=http://github.com/GoogleCloudPlatform/DataflowPythonSDK>Dataflow Python (2.x) SDK</a> on GitHub. Google is committed to including the in progress python SDK in Apache Beam and, in that spirit, we&rsquo;ve moved development of the Python SDK [...]
+included the <a href=https://github.com/GoogleCloudPlatform/DataflowJavaSDK>Dataflow Java SDK</a>. In the long term, however, Apache Beam aims to support SDKs implemented in multiple languages, such as Python.</p><p>Today, Google submitted the <a href=http://github.com/GoogleCloudPlatform/DataflowPythonSDK>Dataflow Python (2.x) SDK</a> on GitHub. Google is committed to including the in progress python SDK in Apache Beam and, in that spirit, we&rsquo;ve moved development of the Python SDK [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-sdk-release/index.html b/website/generated-content/blog/python-sdk-release/index.html
index 64cb1fd..01d23e5 100644
--- a/website/generated-content/blog/python-sdk-release/index.html
+++ b/website/generated-content/blog/python-sdk-release/index.html
@@ -44,11 +44,11 @@ p = beam.Pipeline()
 
 p.run()
 </code></pre><p>This example estimates Pi by throwing random darts into the unit square and keeping track of the fraction of those darts that fell into the unit circle (see the full <a href=https://github.com/apache/beam/blob/v0.6.0/sdks/python/apache_beam/examples/complete/estimate_pi.py>example</a> for details). If you are curious, you can check the result of our estimation by looking at the output file.</p><pre><code>$ cat pi_estimate.txt*
-</code></pre><h4 id=roadmap>Roadmap</h4><p>The first thing on the Python SDK’s roadmap is to address two of its limitations. First, the existing runners are currently limited to bounded PCollections, and we are looking forward to extending the SDK to support unbounded PCollections (“streaming”). Additionally, we are working on extending support to more Apache Beam runners, and the upcoming Fn API will do the heavy lifting.</p><p>Both of these improvements will enable the Python SDK to fu [...]
+</code></pre><h4 id=roadmap>Roadmap</h4><p>The first thing on the Python SDK’s roadmap is to address two of its limitations. First, the existing runners are currently limited to bounded PCollections, and we are looking forward to extending the SDK to support unbounded PCollections (“streaming”). Additionally, we are working on extending support to more Apache Beam runners, and the upcoming Fn API will do the heavy lifting.</p><p>Both of these improvements will enable the Python SDK to fu [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/python-typing/index.html b/website/generated-content/blog/python-typing/index.html
index b444dc0..147055b 100644
--- a/website/generated-content/blog/python-typing/index.html
+++ b/website/generated-content/blog/python-typing/index.html
@@ -77,11 +77,11 @@ native typing types. Native types have as these are supported by additional tool
 fixed issues with native type support. There may still be bugs and unsupported
 native types. Please
 <a href=https://beam.apache.org/community/contact-us/>let us know</a> if you encounter
-issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+issues.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=p [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/review-input-streaming-connectors/index.html b/website/generated-content/blog/review-input-streaming-connectors/index.html
index 1f3a2e2..ac80c37 100644
--- a/website/generated-content/blog/review-input-streaming-connectors/index.html
+++ b/website/generated-content/blog/review-input-streaming-connectors/index.html
@@ -22,11 +22,11 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 &
 Julien Phalip [<a href=https://twitter.com/julienphalip>@julienphalip</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>In this post, you&rsquo;ll learn about the current state of support for input streaming connectors in <a href=/>Apache Beam</a>. For more context, you&rsquo;ll also learn about the corresponding state of support in <a href=https://spark.apache.org/>Apache Spark</a>.</p><p>With batch processing, you might load data from any sourc [...]
 and <a href=https://spark.apache.org/docs/latest/api/java/org/apache/spark/streaming/StreamingContext.html#textFileStream-java.lang.String->textFileStream</a></td></tr><tr><td>S3<br>(Using the <code>s3://</code> URI)</td><td><a href=https://beam.apache.org/releases/javadoc/2.29.0/org/apache/beam/sdk/io/FileIO.html>FileIO</a> + <a href=https://beam.apache.org/releases/javadoc/2.29.0/org/apache/beam/sdk/io/aws/options/S3Options.html>S3Options</a></td></tr><tr><td rowspan=3>Messaging Queues [...]
-and <a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream</a></td></tr><tr><td rowspan=2>Object stores</td><td>Google Cloud Storage</td><td><a href=https://beam.apache.org/releases/pydoc/2.29.0/apache_beam.io.gcp.gcsio.html>io.gcp.gcsio</a></td><td rowspan=2><a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream [...]
+and <a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream</a></td></tr><tr><td rowspan=2>Object stores</td><td>Google Cloud Storage</td><td><a href=https://beam.apache.org/releases/pydoc/2.29.0/apache_beam.io.gcp.gcsio.html>io.gcp.gcsio</a></td><td rowspan=2><a href=https://spark.apache.org/docs/latest/api/python/pyspark.streaming.html#pyspark.streaming.StreamingContext.textFileStream>textFileStream [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/season-of-docs/index.html b/website/generated-content/blog/season-of-docs/index.html
index 4bcd53d..8226326 100644
--- a/website/generated-content/blog/season-of-docs/index.html
+++ b/website/generated-content/blog/season-of-docs/index.html
@@ -19,11 +19,11 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2019/04/19</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam is applying to Season of Docs</h1><div class=post-info><span>Aizhamal Nurmamat kyzy [<a href=https://twitter.com/iamaijamal>@iamaijamal</a>]</span></div></he [...]
-This project involves a number of <a href=https://issues.apache.org/jira/browse/BEAM-2888>corrections and improvements to the capability matrix</a>; followed by a few larger set of changes, involving:</p><ul><li>Plain english summaries for each runner’s support of the Beam model.</li><li>A paragraph-length description of the production-readiness for each runner.</li><li>Comparisons for non-model differences between runners.</li><li>Comparison for support of the portability framework for  [...]
+This project involves a number of <a href=https://issues.apache.org/jira/browse/BEAM-2888>corrections and improvements to the capability matrix</a>; followed by a few larger set of changes, involving:</p><ul><li>Plain english summaries for each runner’s support of the Beam model.</li><li>A paragraph-length description of the production-readiness for each runner.</li><li>Comparisons for non-model differences between runners.</li><li>Comparison for support of the portability framework for  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/six-months/index.html b/website/generated-content/blog/six-months/index.html
index 84c34e0..118e2e0 100644
--- a/website/generated-content/blog/six-months/index.html
+++ b/website/generated-content/blog/six-months/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/08/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam: Six Months in Incubation</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]</span></div></header><d [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/08/03</p></div><header class=post-header><h2 itemprop="name headline">Apache Beam: Six Months in Incubation</h1><div class=post-info><span>Frances Perry [<a href=https://twitter.com/francesjperry>@francesjperry</a>]</span></div></header><d [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splitatfraction-method/index.html b/website/generated-content/blog/splitatfraction-method/index.html
index 999915d..2d7f21e 100644
--- a/website/generated-content/blog/splitatfraction-method/index.html
+++ b/website/generated-content/blog/splitatfraction-method/index.html
@@ -18,11 +18,11 @@
 function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
-function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/05/18</p></div><header class=post-header><h2 itemprop="name headline">Dynamic work rebalancing for Beam</h1><div class=post-info><span>Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>This [...]
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2016/05/18</p></div><header class=post-header><h2 itemprop="name headline">Dynamic work rebalancing for Beam</h1><div class=post-info><span>Dan Halperin</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>This [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splittable-do-fn-is-available/index.html b/website/generated-content/blog/splittable-do-fn-is-available/index.html
index 1a0fa8c..fe02a3c 100644
--- a/website/generated-content/blog/splittable-do-fn-is-available/index.html
+++ b/website/generated-content/blog/splittable-do-fn-is-available/index.html
@@ -52,11 +52,11 @@ implementation to a splittable DoFn.</li><li><a href=https://github.com/apache/b
 A wrapper which converts an existing <a href=https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/io/UnboundedSource.html>UnboundedSource</a>
 implementation to a splittable DoFn.</li></ul><p><strong>Python Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/571338b0cc96e2e80f23620fe86de5c92dffaccc/sdks/python/apache_beam/io/iobase.py#L1375>BoundedSourceWrapper</a>:
 A wrapper which converts an existing <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.io.iobase.html#apache_beam.io.iobase.BoundedSource>BoundedSource</a>
-implementation to a splittable DoFn.</li></ul><p><strong>Go Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/ce190e11332469ea59b6c9acf16ee7c673ccefdd/sdks/go/pkg/beam/io/textio/sdf.go#L40>textio.ReadSdf</a> implements reading from text files using a splittable DoFn.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category [...]
+implementation to a splittable DoFn.</li></ul><p><strong>Go Examples</strong></p><ul><li><a href=https://github.com/apache/beam/blob/ce190e11332469ea59b6c9acf16ee7c673ccefdd/sdks/go/pkg/beam/io/textio/sdf.go#L40>textio.ReadSdf</a> implements reading from text files using a splittable DoFn.</li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/splittable-do-fn/index.html b/website/generated-content/blog/splittable-do-fn/index.html
index 0eb9e85..b8c1e96 100644
--- a/website/generated-content/blog/splittable-do-fn/index.html
+++ b/website/generated-content/blog/splittable-do-fn/index.html
@@ -324,11 +324,11 @@ ecosystem more modular:</p><ul><li><p>Use the currently available SDF-based IO c
 bugs, and suggest or implement improvements.</p></li><li><p>Propose or develop a new IO connector based on SDF.</p></li><li><p>Implement or improve support for SDF in your favorite runner.</p></li><li><p>Subscribe and contribute to the occasional SDF-related discussions on
 <a href=mailto:user@beam.apache.org>user@beam.apache.org</a> (mailing list for Beam
 users) and <a href=mailto:dev@beam.apache.org>dev@beam.apache.org</a> (mailing list for
-Beam developers)!</p></li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>b [...]
+Beam developers)!</p></li></ul></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</ [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/stateful-processing/index.html b/website/generated-content/blog/stateful-processing/index.html
index c245ec3..eba7c49 100644
--- a/website/generated-content/blog/stateful-processing/index.html
+++ b/website/generated-content/blog/stateful-processing/index.html
@@ -400,11 +400,11 @@ matrix</a> to
 see the level of support for this new model feature on your favorite
 backend(s).</p><p>And please do join the community at
 <a href=/get-started/support>user@beam.apache.org</a>. We&rsquo;d love to
-hear from you.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-info post-category"><p>blog & java
+hear from you.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/strata-hadoop-world-and-beam/index.html b/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
index 180f927..5486651 100644
--- a/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
+++ b/website/generated-content/blog/strata-hadoop-world-and-beam/index.html
@@ -19,11 +19,11 @@ function addPlaceholder(){$('input:text').attr('placeholder',"What are you looki
 function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
 function blockScroll(){$("body").toggleClass("fixedPosition");}
 function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>beam & update
-       </p><p>2016/10/11</p></div><header class=post-header><h2 itemprop="name headline">Strata+Hadoop World and Beam</h1><div class=post-info><span>Jesse Anderson [<a href=https://twitter.com/jessetanderson>@jessetanderson</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Tyler Akidau and I gave a <a href=https://conferences.oreilly.com/strata/hadoop-big-data-ny/public/schedule/detail/52129>three-hour tutorial</a> on Apache Beam at Strata+Hadoop [...]
+       </p><p>2016/10/11</p></div><header class=post-header><h2 itemprop="name headline">Strata+Hadoop World and Beam</h1><div class=post-info><span>Jesse Anderson [<a href=https://twitter.com/jessetanderson>@jessetanderson</a>]</span></div></header><div class="arrow-list header-top-margin" itemprop=articleBody><p>Tyler Akidau and I gave a <a href=https://conferences.oreilly.com/strata/hadoop-big-data-ny/public/schedule/detail/52129>three-hour tutorial</a> on Apache Beam at Strata+Hadoop [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/test-stream/index.html b/website/generated-content/blog/test-stream/index.html
index 637d542..5d2fa50 100644
--- a/website/generated-content/blog/test-stream/index.html
+++ b/website/generated-content/blog/test-stream/index.html
@@ -199,11 +199,11 @@ TestStream.</p><h2 id=summary>Summary</h2><p>The addition of TestStream alongsid
 has enabled the testing of Pipelines which produce speculative and late panes.
 This permits tests for all styles of pipeline to be expressed directly within the
 Java SDK. If you have questions or comments, we’d love to hear them on the
-<a href=/get-started/support/>mailing lists</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><div class="post-inf [...]
+<a href=/get-started/support/>mailing lists</a>.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>bl [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/timely-processing/index.html b/website/generated-content/blog/timely-processing/index.html
index 97950eb..42fe3c4 100644
--- a/website/generated-content/blog/timely-processing/index.html
+++ b/website/generated-content/blog/timely-processing/index.html
@@ -378,11 +378,11 @@ you, then great! If not, we want to hear about it. Since this is a new feature,
 please check the <a href=/documentation/runners/capability-matrix/>capability matrix</a> to see the level of support for
 your preferred Beam backend(s).</p><p>And please do join the Beam community at
 <a href=/get-started/support>user@beam.apache.org</a> and follow
-<a href=https://twitter.com/ApacheBeam>@ApacheBeam</a> on Twitter.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div class=post><p class=post-title>Apache Beam 2.28.0</p><p class=post-info>Chamikara Jayalath</p></div></a><a class=post-card href=/blog/kafka-to-pubsub-example/ data-categories="blog java"><d [...]
+<a href=https://twitter.com/ApacheBeam>@ApacheBeam</a> on Twitter.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info po [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/validate-beam-release/index.html b/website/generated-content/blog/validate-beam-release/index.html
new file mode 100644
index 0000000..9fb245c
--- /dev/null
+++ b/website/generated-content/blog/validate-beam-release/index.html
@@ -0,0 +1,72 @@
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><title>How to validate a Beam Release</title><meta name=description content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) an [...]
+<a class=navbar-link href=/get-started/beam-overview/>Get Started</a>
+<a class=navbar-link href=/documentation/>Documentation</a>
+<button type=button class="navbar-toggle menu-open" aria-expanded=false aria-controls=navbar onclick=openMenu()>
+<span class=sr-only>Toggle navigation</span>
+<span class=icon-bar></span><span class=icon-bar></span><span class=icon-bar></span></button></div><div class="navbar-mask closed"></div><div id=navbar class="navbar-container closed"><button type=button class=navbar-toggle aria-expanded=false aria-controls=navbar id=closeMenu>
+<span class=sr-only>Toggle navigation</span>
+<span class=icon-bar></span><span class=icon-bar></span><span class=icon-bar></span></button><ul class="nav navbar-nav"><li><div class=searchBar-mobile><script>(function(){var cx='012923275103528129024:4emlchv9wzi';var gcse=document.createElement('script');gcse.type='text/javascript';gcse.async=true;gcse.src='https://cse.google.com/cse.js?cx='+cx;var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(gcse,s);})();</script><gcse:search></gcse:search></div></li><li><a c [...]
+&nbsp;Apache
+<span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class="dropdown-menu dropdown-menu-right"><li><a target=_blank href=http://www.apache.org/>ASF Homepage</a></li><li><a target=_blank href=http://www.apache.org/licenses/>License</a> [...]
+<span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="11" fill="none" viewBox="0 0 12 11"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.666 4.535 5.847 9.108 1.444 4.535"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link href=/documentation/>General</a></li><li><a class=navbar-dropdown-menu-link href=/documentation/sdks/java/>Languages</a></li><li><a class=navbar-dropdown-menu-link href=/documentati [...]
+<a class=navbar-link href=/community/>Community</a>
+<a class=navbar-link href=/contribute/>Contribute</a>
+<a class=navbar-link href=/blog/>Blog</a>
+<a class=navbar-link href=/powered-by/>Powered by</a></div><div id=iconsBar><a type=button onclick=showSearch()><svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" fill="none" viewBox="0 0 25 24"><path stroke="#ff6d00" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.75" d="M10.191 17c3.866.0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM21.191 21l-6-6"/></svg></a><a target=_blank href=https://github.com/apache/beam/edit/master/website/www/site/content/en/blo [...]
+&nbsp;Apache
+<span class=arrow-icon><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><circle cx="10" cy="10" r="10" fill="#ff6d00"/><path stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.535 5.28l4.573 4.818-4.573 4.403"/></svg></span></a><ul class=dropdown-menu><li><a class=navbar-dropdown-menu-link target=_blank href=http://www.apache.org/>ASF Homepage</a></li><li><a class=navbar-dropdown-menu-link target=_blank href=h [...]
+function addPlaceholder(){$('input:text').attr('placeholder',"What are you looking for?");}
+function endSearch(){var search=document.querySelector(".searchBar");search.classList.add("disappear");var icons=document.querySelector("#iconsBar");icons.classList.remove("disappear");}
+function blockScroll(){$("body").toggleClass("fixedPosition");}
+function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__contained center no__padding content-up"><article class=post itemscope itemtype=http://schema.org/BlogPosting><div class=post-content><div class=post-info><p>blog</p><p>2021/06/08</p></div><header class=post-header><h2 itemprop="name headline">How to validate a Beam Release</h1><div class=post-info><span>Pablo Estrada [<a href=https://twitter.com/polecitoem>@polecitoem</a>]</span></div></header><div class="arr [...]
+It is even more important in the culture of Apache projects. Releases are
+the main flow of new code / features among the community of a project.</p><p>Beam is no exception: We aspire to keep a release cadence of about 6 weeks,
+and try to work with the community to release useful new features, and to
+keep Beam useful.</p><h3 id=configure-a-java-build-to-validate-a-beam-release-candidate>Configure a Java build to validate a Beam release candidate</h3><p>First of all, it would be useful to have a single property in your <code>pom.xml</code>
+where you keep the global Beam version that you&rsquo;re using. Something like this
+in your <code>pom.xml</code>:</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java><span class=o>&lt;</span><span class=n>properties</span><span class=o>&gt;</span>
+    <span class=o>...</span>
+    <span class=o>&lt;</span><span class=n>beam</span><span class=o>.</span><span class=na>version</span><span class=o>&gt;</span><span class=n>2</span><span class=o>.</span><span class=na>26</span><span class=o>.</span><span class=na>0</span><span class=o>&lt;/</span><span class=n>beam</span><span class=o>.</span><span class=na>version</span><span class=o>&gt;</span>
+    <span class=o>...</span>
+<span class=o>&lt;/</span><span class=n>properties</span><span class=o>&gt;</span>
+<span class=o>&lt;</span><span class=n>dependencies</span><span class=o>&gt;</span>
+    <span class=o>&lt;</span><span class=n>dependency</span><span class=o>&gt;</span>
+        <span class=o>&lt;</span><span class=n>groupId</span><span class=o>&gt;</span><span class=n>org</span><span class=o>.</span><span class=na>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>&lt;/</span><span class=n>groupId</span><span class=o>&gt;</span>
+        <span class=o>&lt;</span><span class=n>artifactId</span><span class=o>&gt;</span><span class=n>beam</span><span class=o>-</span><span class=n>sdks</span><span class=o>-</span><span class=n>java</span><span class=o>-</span><span class=n>core</span><span class=o>&lt;/</span><span class=n>artifactId</span><span class=o>&gt;</span>
+        <span class=o>&lt;</span><span class=n>version</span><span class=o>&gt;</span><span class=n>$</span><span class=o>{</span><span class=n>beam</span><span class=o>.</span><span class=na>version</span><span class=o>}&lt;/</span><span class=n>version</span><span class=o>&gt;</span>
+    <span class=o>&lt;/</span><span class=n>dependency</span><span class=o>&gt;</span>
+    <span class=o>...</span>
+<span class=o>&lt;/</span><span class=n>dependencies</span><span class=o>&gt;</span></code></pre></div></div></div><p>Second, you can add a new profile to your <code>pom.xml</code> file. In this new profile,
+add a new repository with the staging repository for the new Beam release. For
+Beam 2.27.0, this was <code>https://repository.apache.org/content/repositories/orgapachebeam-1149/</code>.</p><div class="language-java snippet"><div class="notebook-skip code-snippet"><a class=copy type=button data-bs-toggle=tooltip data-bs-placement=bottom title="Copy to clipboard"><img src=/images/copy-icon.svg></a><div class=highlight><pre class=chroma><code class=language-java data-lang=java>        <span class=o>&lt;</span><span class=n>profile</span><span class=o>&gt;</span>
+            <span class=o>&lt;</span><span class=n>id</span><span class=o>&gt;</span><span class=n>validaterelease</span><span class=o>&lt;/</span><span class=n>id</span><span class=o>&gt;</span>
+            <span class=o>&lt;</span><span class=n>repositories</span><span class=o>&gt;</span>
+                <span class=o>&lt;</span><span class=n>repository</span><span class=o>&gt;</span>
+                    <span class=o>&lt;</span><span class=n>id</span><span class=o>&gt;</span><span class=n>apache</span><span class=o>.</span><span class=na>beam</span><span class=o>.</span><span class=na>newrelease</span><span class=o>&lt;/</span><span class=n>id</span><span class=o>&gt;</span>
+                    <span class=o>&lt;</span><span class=n>url</span><span class=o>&gt;</span><span class=n>$</span><span class=o>{</span><span class=n>beam</span><span class=o>.</span><span class=na>release</span><span class=o>.</span><span class=na>repo</span><span class=o>}&lt;/</span><span class=n>url</span><span class=o>&gt;</span>
+                <span class=o>&lt;/</span><span class=n>repository</span><span class=o>&gt;</span>
+            <span class=o>&lt;/</span><span class=n>repositories</span><span class=o>&gt;</span>
+        <span class=o>&lt;/</span><span class=n>profile</span><span class=o>&gt;</span></code></pre></div></div></div><p>Once you have a <code>beam.version</code> property in your <code>pom.xml</code>, and a new profile
+with the new release, you can run your <code>mvn</code> command activating the new profile,
+and the new Beam version:</p><pre><code>mvn test -Pvalidaterelease \
+         -Dbeam.version=2.27.0 \
+         -Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
+</code></pre><p>This should build your project against the new release, and run basic tests.
+It will allow you to run basic validations against the new Beam release.
+If you find any issues, then you can share them <em>before</em> the release is
+finalized, so your concerns can be addressed by the community.</p><h3 id=configuring-a-python-build-to-validate-a-beam-release-candidate>Configuring a Python build to validate a Beam release candidate</h3><p>For Python SDK releases, you can install SDK from Pypi, by enabling the
+installation of pre-release artifacts.</p><p>First, make sure that your <code>requirements.txt</code> or <code>setup.py</code> files allow
+for Beam versions above the current one. Something like this should install
+the latest available version:</p><pre><code>apache-beam&lt;=3.0.0
+</code></pre><p>With that, you can ask <code>pip</code> to install pre-release versions of Beam in your
+environment:</p><pre><code>pip install --pre apache-beam
+</code></pre><p>With that, the Beam version in your environment will be the latest release
+candidate, and you can go ahead and run your tests to verify that everything
+works well.</p></div></div><div class=blog-content><h2>Latest from the blog</h2></div><div class=posts-list><a class=post-card href=/blog/beam-2.29.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/04/29</p></div><div class=post><p class=post-title>Apache Beam 2.29.0</p><p class=post-info>Kenneth Knowles</p></div></a><a class=post-card href=/blog/beam-2.28.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/02/22</p></div><div cla [...]
+                    
+      </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
+Ilya Kozyrev &
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
+<a href=http://www.apache.org>The Apache Software Foundation</a>
+| <a href=/privacy_policy>Privacy Policy</a>
+| <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html b/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
index 3599070..86c81c6 100644
--- a/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
+++ b/website/generated-content/blog/where-is-my-pcollection-dot-map/index.html
@@ -41,11 +41,11 @@ PCollection&lt;O&gt; output = input
     .apply(ParDo.of(...))
     .apply(ExternalLibrary.doStuff(externalLibArgs));
     &nbsp;
-    </pre></td></tr></table><h2 id=configurability>Configurability</h2><p>It makes for a fluent style to let values (PCollections) be the objects passed around and manipulated (i.e. the handles to the deferred execution graph), but it is the operations themselves that need to be composable, configurable, and extendable. Using PCollection methods for the operations doesn&rsquo;t scale well here, especially in a language without default or keyword arguments. For example, a ParDo operation  [...]
+    </pre></td></tr></table><h2 id=configurability>Configurability</h2><p>It makes for a fluent style to let values (PCollections) be the objects passed around and manipulated (i.e. the handles to the deferred execution graph), but it is the operations themselves that need to be composable, configurable, and extendable. Using PCollection methods for the operations doesn&rsquo;t scale well here, especially in a language without default or keyword arguments. For example, a ParDo operation  [...]
                     
       </p><p>2021/01/15</p></div><div class=post><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
 Ilya Kozyrev &
-Alex Kosolapov</p></div></a><a class=post-card href=/blog/beam-2.27.0/ data-categories=blog><div class="post-info post-category"><p>blog</p><p>2021/01/07</p></div><div class=post><p class=post-title>Apache Beam 2.27.0</p><p class=post-info>Pablo Estrada</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg  [...]
+Alex Kosolapov</p></div></a></div></article></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col footer__cols__col__logos"><div class=footer__cols__col__logo><img src=/images/beam_logo_circle.svg class=footer__logo alt="Beam logo"></div><div class=footer__cols__col__logo><img src=/images/apache_logo_circle.svg class=footer__logo alt="Apache logo"></div></div><div class=footer-wrapper><div class=wrapper-grid><div class=footer__cols_ [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/categories/blog/index.xml b/website/generated-content/categories/blog/index.xml
index 3b566e0..b3b1f45 100644
--- a/website/generated-content/categories/blog/index.xml
+++ b/website/generated-content/categories/blog/index.xml
@@ -1,4 +1,87 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – blog</title><link>/categories/blog/</link><description>Recent content in blog on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 29 Apr 2021 09:00:00 -0700</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: Apache Beam 2.29.0</title><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 [...]
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – blog</title><link>/categories/blog/</link><description>Recent content in blog on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 08 Jun 2021 00:00:01 -0800</lastBuildDate><atom:link href="/categories/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: How to validate a Beam Release</title><link>/blog/validate-beam-release/</link><pubDate>Tue [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Performing new releases is a core responsibility of any software project.
+It is even more important in the culture of Apache projects. Releases are
+the main flow of new code / features among the community of a project.&lt;/p>
+&lt;p>Beam is no exception: We aspire to keep a release cadence of about 6 weeks,
+and try to work with the community to release useful new features, and to
+keep Beam useful.&lt;/p>
+&lt;h3 id="configure-a-java-build-to-validate-a-beam-release-candidate">Configure a Java build to validate a Beam release candidate&lt;/h3>
+&lt;p>First of all, it would be useful to have a single property in your &lt;code>pom.xml&lt;/code>
+where you keep the global Beam version that you&amp;rsquo;re using. Something like this
+in your &lt;code>pom.xml&lt;/code>:&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">26&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt; [...]
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sdks&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Second, you can add a new profile to your &lt;code>pom.xml&lt;/code> file. In this new profile,
+add a new repository with the staging repository for the new Beam release. For
+Beam 2.27.0, this was &lt;code>https://repository.apache.org/content/repositories/orgapachebeam-1149/&lt;/code>.&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java"> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">validaterelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">newrelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">release&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">repo&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Once you have a &lt;code>beam.version&lt;/code> property in your &lt;code>pom.xml&lt;/code>, and a new profile
+with the new release, you can run your &lt;code>mvn&lt;/code> command activating the new profile,
+and the new Beam version:&lt;/p>
+&lt;pre>&lt;code>mvn test -Pvalidaterelease \
+-Dbeam.version=2.27.0 \
+-Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
+&lt;/code>&lt;/pre>&lt;p>This should build your project against the new release, and run basic tests.
+It will allow you to run basic validations against the new Beam release.
+If you find any issues, then you can share them &lt;em>before&lt;/em> the release is
+finalized, so your concerns can be addressed by the community.&lt;/p>
+&lt;h3 id="configuring-a-python-build-to-validate-a-beam-release-candidate">Configuring a Python build to validate a Beam release candidate&lt;/h3>
+&lt;p>For Python SDK releases, you can install SDK from Pypi, by enabling the
+installation of pre-release artifacts.&lt;/p>
+&lt;p>First, make sure that your &lt;code>requirements.txt&lt;/code> or &lt;code>setup.py&lt;/code> files allow
+for Beam versions above the current one. Something like this should install
+the latest available version:&lt;/p>
+&lt;pre>&lt;code>apache-beam&amp;lt;=3.0.0
+&lt;/code>&lt;/pre>&lt;p>With that, you can ask &lt;code>pip&lt;/code> to install pre-release versions of Beam in your
+environment:&lt;/p>
+&lt;pre>&lt;code>pip install --pre apache-beam
+&lt;/code>&lt;/pre>&lt;p>With that, the Beam version in your environment will be the latest release
+candidate, and you can go ahead and run your tests to verify that everything
+works well.&lt;/p></description></item><item><title>Blog: Apache Beam 2.29.0</title><link>/blog/beam-2.29.0/</link><pubDate>Thu, 29 Apr 2021 09:00:00 -0700</pubDate><guid>/blog/beam-2.29.0/</guid><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -4970,106 +5053,4 @@ bugs, and suggest or implement improvements.&lt;/p>
 users) and &lt;a href="mailto:dev@beam.apache.org">dev@beam.apache.org&lt;/a> (mailing list for
 Beam developers)!&lt;/p>
 &lt;/li>
-&lt;/ul></description></item><item><title>Blog: Apache Beam publishes the first stable release</title><link>/blog/beam-first-stable-release/</link><pubDate>Wed, 17 May 2017 00:00:01 -0800</pubDate><guid>/blog/beam-first-stable-release/</guid><description>
-&lt;!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-&lt;p>The Apache Beam community is pleased to &lt;a href="https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12">announce the availability of version 2.0.0&lt;/a>. This is the first stable release of Apache Beam, signifying a statement from the community that it intends to maintain API stability with all releases for the foreseeable future, and making Beam suitable for enterprise deployment.&lt;/p>
-&lt;p>This first stable release is the third important milestone for the Apache Beam community. Beam joined the Apache Incubator in February 2016 and graduated as a top-level project of The Apache Software Foundation in December. Through these fifteen months of concentrated effort, a slightly chaotic codebase, merged from multiple organizations, has been developed into a generalized framework for data processing that is truly engine- and environment-independent. Apache Beam has evolved a [...]
-&lt;p>In the five months since graduation, Apache Beam has seen a significant growth, both in terms of adoption and community contribution. Apache Beam is &lt;a href="https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces12">in use&lt;/a> at Google Cloud, PayPal, and Talend, among others.&lt;/p>
-&lt;p>Apache Beam, version 2.0.0 improves user experience across the project, focusing on seamless portability across execution environments, including engines, operating systems, on-premise clusters, cloud providers, and data storage systems. Other highlights include:&lt;/p>
-&lt;ul>
-&lt;li>API stability and future compatibility within this major version.&lt;/li>
-&lt;li>Stateful data processing paradigms that unlock efficient, data-dependent computations.&lt;/li>
-&lt;li>Support for user-extensible file systems, with built-in support for Hadoop Distributed File System, among others.&lt;/li>
-&lt;li>A metrics subsystem for deeper insight into pipeline execution.&lt;/li>
-&lt;/ul>
-&lt;p>Many contributors made this release possible, by participating in different roles: contributing code, writing documentation, testing release candidates, supporting users, or helping in some other way. The following is a partial list of contributors – 76 individuals contributed code to the project since the previous release, assembled from source history:&lt;/p>
-&lt;ul>
-&lt;li>Ahmet Altay&lt;/li>
-&lt;li>Eric Anderson&lt;/li>
-&lt;li>Raghu Angadi&lt;/li>
-&lt;li>Sourabh Bajaj&lt;/li>
-&lt;li>Péter Gergő Barna&lt;/li>
-&lt;li>Chen Bin&lt;/li>
-&lt;li>Davor Bonaci&lt;/li>
-&lt;li>Robert Bradshaw&lt;/li>
-&lt;li>Ben Chambers&lt;/li>
-&lt;li>Etienne Chauchot&lt;/li>
-&lt;li>Chang Chen&lt;/li>
-&lt;li>Charles Chen&lt;/li>
-&lt;li>Craig Citro&lt;/li>
-&lt;li>Lukasz Cwik&lt;/li>
-&lt;li>Márton Elek&lt;/li>
-&lt;li>Pablo Estrada&lt;/li>
-&lt;li>Josh Forman-Gornall&lt;/li>
-&lt;li>Maria García Herrero&lt;/li>
-&lt;li>Jins George&lt;/li>
-&lt;li>Damien Gouyette&lt;/li>
-&lt;li>Thomas Groh&lt;/li>
-&lt;li>Dan Halperin&lt;/li>
-&lt;li>Pei He&lt;/li>
-&lt;li>Hadar Hod&lt;/li>
-&lt;li>Chamikara Jayalath&lt;/li>
-&lt;li>Rekha Joshi&lt;/li>
-&lt;li>Uwe Jugel&lt;/li>
-&lt;li>Sung Junyoung&lt;/li>
-&lt;li>Holden Karau&lt;/li>
-&lt;li>Vikas Kedigehalli&lt;/li>
-&lt;li>Eugene Kirpichov&lt;/li>
-&lt;li>Tibor Kiss&lt;/li>
-&lt;li>Kenneth Knowles&lt;/li>
-&lt;li>Vassil Kolarov&lt;/li>
-&lt;li>Chinmay Kolhatkar&lt;/li>
-&lt;li>Aljoscha Krettek&lt;/li>
-&lt;li>Dipti Kulkarni&lt;/li>
-&lt;li>Radhika Kulkarni&lt;/li>
-&lt;li>Jason Kuster&lt;/li>
-&lt;li>Reuven Lax&lt;/li>
-&lt;li>Stas Levin&lt;/li>
-&lt;li>Julien Lhermitte&lt;/li>
-&lt;li>Jingsong Li&lt;/li>
-&lt;li>Neville Li&lt;/li>
-&lt;li>Mark Liu&lt;/li>
-&lt;li>Michael Luckey&lt;/li>
-&lt;li>Andrew Martin&lt;/li>
-&lt;li>Ismaël Mejía&lt;/li>
-&lt;li>Devon Meunier&lt;/li>
-&lt;li>Neda Mirian&lt;/li>
-&lt;li>Anil Muppalla&lt;/li>
-&lt;li>Gergely Novak&lt;/li>
-&lt;li>Jean-Baptiste Onofré&lt;/li>
-&lt;li>Melissa Pashniak&lt;/li>
-&lt;li>peay&lt;/li>
-&lt;li>David Rieber&lt;/li>
-&lt;li>Rahul Sabbineni&lt;/li>
-&lt;li>Kobi Salant&lt;/li>
-&lt;li>Amit Sela&lt;/li>
-&lt;li>Mark Shalda&lt;/li>
-&lt;li>Stephen Sisk&lt;/li>
-&lt;li>Yuya Tajima&lt;/li>
-&lt;li>Wesley Tanaka&lt;/li>
-&lt;li>JiJun Tang&lt;/li>
-&lt;li>Valentyn Tymofieiev&lt;/li>
-&lt;li>David Volquartz&lt;/li>
-&lt;li>Huafeng Wang&lt;/li>
-&lt;li>Thomas Weise&lt;/li>
-&lt;li>Rafal Wojdyla&lt;/li>
-&lt;li>Yangping Wu&lt;/li>
-&lt;li>wyp&lt;/li>
-&lt;li>James Xu&lt;/li>
-&lt;li>Mingmin Xu&lt;/li>
-&lt;li>Ted Yu&lt;/li>
-&lt;li>Borisa Zivkovic&lt;/li>
-&lt;li>Aviem Zur&lt;/li>
-&lt;/ul>
-&lt;p>Apache Beam, version 2.0.0, is making its debut at Apache: Big Data, taking place this week in Miami, FL, with four sessions featuring Apache Beam. Apache Beam will also be highlighted at numerous face-to-face meetups and conferences, including the Future of Data San Jose meetup, Strata Data Conference London, Berlin Buzzwords, and DataWorks Summit San Jose.&lt;/p>
-&lt;p>We’d like to invite everyone to try out Apache Beam today and consider joining our vibrant community. We welcome feedback, contribution and participation through our mailing lists, issue tracker, pull requests, and events.&lt;/p></description></item></channel></rss>
\ No newline at end of file
+&lt;/ul></description></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/categories/index.xml b/website/generated-content/categories/index.xml
index 9ce2855..c5f4e65 100644
--- a/website/generated-content/categories/index.xml
+++ b/website/generated-content/categories/index.xml
@@ -1 +1 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Categories</title><link>/categories/</link><description>Recent content in Categories on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 29 Apr 2021 09:00:00 -0700</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
\ No newline at end of file
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Beam – Categories</title><link>/categories/</link><description>Recent content in Categories on Apache Beam</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 08 Jun 2021 00:00:01 -0800</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml"/></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/contribute/index.xml b/website/generated-content/contribute/index.xml
index 5e49ade..00aad64 100644
--- a/website/generated-content/contribute/index.xml
+++ b/website/generated-content/contribute/index.xml
@@ -1130,6 +1130,7 @@ The complete staging area is available for your review, which includes:
 * Validation sheet with a tab for 1.2.3 release to help with validation [9].
 * Docker images published to Docker Hub [10].
 The vote will be open for at least 72 hours. It is adopted by majority approval, with at least 3 PMC affirmative votes.
+For guidelines on how to try the release in your projects, check out our blog post at https://beam.apache.org/blog/validate-beam-release/.
 Thanks,
 Release Manager
 [1] https://jira.apache.org/jira/secure/ReleaseNote.jspa?projectId=...
diff --git a/website/generated-content/contribute/release-guide/index.html b/website/generated-content/contribute/release-guide/index.html
index e36407f..a08c97e 100644
--- a/website/generated-content/contribute/release-guide/index.html
+++ b/website/generated-content/contribute/release-guide/index.html
@@ -253,6 +253,8 @@ The complete staging area is available for your review, which includes:
 
 The vote will be open for at least 72 hours. It is adopted by majority approval, with at least 3 PMC affirmative votes.
 
+For guidelines on how to try the release in your projects, check out our blog post at https://beam.apache.org/blog/validate-beam-release/.
+
 Thanks,
 Release Manager
 
@@ -411,7 +413,7 @@ If you end up getting permissions errors ask on the mailing list for assistance.
 Ask other contributors to do the same.</p><p>Also, update <a href=https://en.wikipedia.org/wiki/Apache_Beam>the Wikipedia article on Apache Beam</a>.</p><h3 id=checklist-to-declare-the-process-completed>Checklist to declare the process completed</h3><ol><li>Release announced on the user@ mailing list.</li><li>Blog post published, if applicable.</li><li>Release recorded in reporter.apache.org.</li><li>Release announced on social media.</li><li>Completion declared on the dev@ mailing list. [...]
 Once you’ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified.
 Perhaps parts of this guide can be clarified.</p><p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide.
-Thanks!</p><div class=feedback><p class=update>Last updated on 2021/05/08</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load-button><a href="mailto:dev@beam.apache.org?subject=Beam Website Feedback">SEND FEEDBACK</a></button></div></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col foo [...]
+Thanks!</p><div class=feedback><p class=update>Last updated on 2021/06/09</p><h3>Have you found everything you were looking for?</h3><p class=description>Was it all useful and clear? Is there anything that you would like to change? Let us know!</p><button class=load-button><a href="mailto:dev@beam.apache.org?subject=Beam Website Feedback">SEND FEEDBACK</a></button></div></div></div><footer class=footer><div class=footer__contained><div class=footer__cols><div class="footer__cols__col foo [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></body></html>
\ No newline at end of file
diff --git a/website/generated-content/documentation/dsls/dataframes/overview/index.html b/website/generated-content/documentation/dsls/dataframes/overview/index.html
index 713a7d9..57ce9b3 100644
--- a/website/generated-content/documentation/dsls/dataframes/overview/index.html
+++ b/website/generated-content/documentation/dsls/dataframes/overview/index.html
@@ -46,7 +46,9 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="clearfi
     <span class=n>counted_pc</span> <span class=o>=</span> <span class=n>to_pcollection</span><span class=p>(</span><span class=n>counted</span><span class=p>,</span> <span class=n>include_indexes</span><span class=o>=</span><span class=bp>True</span><span class=p>)</span>
 
     <span class=c1># Do something with counted_pc</span>
-    <span class=o>...</span></code></pre></div></div></div><p>You can <a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/wordcount_dataframe.py>see the full example on GitHub</a>.</p><p>It’s also possible to use the DataFrame API by passing a function to <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.dataframe.transforms.html#apache_beam.dataframe.transforms.DataframeTransform><code>DataframeTransform</code></a>:</p><div class="languag [...]
+    <span class=o>...</span></code></pre></div></div></div><p>You can find the full wordcount example on
+<a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/dataframe/wordcount.py>GitHub</a>,
+along with other <a href=https://github.com/apache/beam/blob/master/sdks/python/apache_beam/examples/dataframe/>example DataFrame pipelines</a>.</p><p>It’s also possible to use the DataFrame API by passing a function to <a href=https://beam.apache.org/releases/pydoc/current/apache_beam.dataframe.transforms.html#apache_beam.dataframe.transforms.DataframeTransform><code>DataframeTransform</code></a>:</p><div class="language-py snippet"><div class="notebook-skip code-snippet"><a class=copy  [...]
 
 <span class=k>with</span> <span class=n>beam</span><span class=o>.</span><span class=n>Pipeline</span><span class=p>()</span> <span class=k>as</span> <span class=n>p</span><span class=p>:</span>
   <span class=o>...</span>
diff --git a/website/generated-content/feed.xml b/website/generated-content/feed.xml
index 8018ec8..c7f6cab 100644
--- a/website/generated-content/feed.xml
+++ b/website/generated-content/feed.xml
@@ -1,4 +1,87 @@
-<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number [...]
+<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Apache Beam</title><description>Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number [...]
+&lt;!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+http://www.apache.org/licenses/LICENSE-2.0
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+&lt;p>Performing new releases is a core responsibility of any software project.
+It is even more important in the culture of Apache projects. Releases are
+the main flow of new code / features among the community of a project.&lt;/p>
+&lt;p>Beam is no exception: We aspire to keep a release cadence of about 6 weeks,
+and try to work with the community to release useful new features, and to
+keep Beam useful.&lt;/p>
+&lt;h3 id="configure-a-java-build-to-validate-a-beam-release-candidate">Configure a Java build to validate a Beam release candidate&lt;/h3>
+&lt;p>First of all, it would be useful to have a single property in your &lt;code>pom.xml&lt;/code>
+where you keep the global Beam version that you&amp;rsquo;re using. Something like this
+in your &lt;code>pom.xml&lt;/code>:&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java">&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">2&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">26&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">0&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">&amp;gt; [...]
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">properties&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">org&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">groupId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">sdks&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">java&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="n">core&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">artifactId&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">version&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">version&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependency&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">...&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">dependencies&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Second, you can add a new profile to your &lt;code>pom.xml&lt;/code> file. In this new profile,
+add a new repository with the staging repository for the new Beam release. For
+Beam 2.27.0, this was &lt;code>https://repository.apache.org/content/repositories/orgapachebeam-1149/&lt;/code>.&lt;/p>
+&lt;div class='language-java snippet'>
+&lt;div class="notebook-skip code-snippet">
+&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
+&lt;img src="/images/copy-icon.svg"/>
+&lt;/a>
+&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-java" data-lang="java"> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">validaterelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">apache&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">newrelease&lt;/span>&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="n">$&lt;/span>&lt;span class="o">{&lt;/span>&lt;span class="n">beam&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">release&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="na">repo&lt;/span>&lt;span class="o">}&amp;lt;/&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repository&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">repositories&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>
+&lt;span class="o">&amp;lt;/&lt;/span>&lt;span class="n">profile&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
+&lt;/div>
+&lt;/div>
+&lt;p>Once you have a &lt;code>beam.version&lt;/code> property in your &lt;code>pom.xml&lt;/code>, and a new profile
+with the new release, you can run your &lt;code>mvn&lt;/code> command activating the new profile,
+and the new Beam version:&lt;/p>
+&lt;pre>&lt;code>mvn test -Pvalidaterelease \
+-Dbeam.version=2.27.0 \
+-Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
+&lt;/code>&lt;/pre>&lt;p>This should build your project against the new release, and run basic tests.
+It will allow you to run basic validations against the new Beam release.
+If you find any issues, then you can share them &lt;em>before&lt;/em> the release is
+finalized, so your concerns can be addressed by the community.&lt;/p>
+&lt;h3 id="configuring-a-python-build-to-validate-a-beam-release-candidate">Configuring a Python build to validate a Beam release candidate&lt;/h3>
+&lt;p>For Python SDK releases, you can install SDK from Pypi, by enabling the
+installation of pre-release artifacts.&lt;/p>
+&lt;p>First, make sure that your &lt;code>requirements.txt&lt;/code> or &lt;code>setup.py&lt;/code> files allow
+for Beam versions above the current one. Something like this should install
+the latest available version:&lt;/p>
+&lt;pre>&lt;code>apache-beam&amp;lt;=3.0.0
+&lt;/code>&lt;/pre>&lt;p>With that, you can ask &lt;code>pip&lt;/code> to install pre-release versions of Beam in your
+environment:&lt;/p>
+&lt;pre>&lt;code>pip install --pre apache-beam
+&lt;/code>&lt;/pre>&lt;p>With that, the Beam version in your environment will be the latest release
+candidate, and you can go ahead and run your tests to verify that everything
+works well.&lt;/p></description><link>/blog/validate-beam-release/</link><pubDate>Tue, 08 Jun 2021 00:00:01 -0800</pubDate><guid>/blog/validate-beam-release/</guid><category>blog</category></item><item><title>Apache Beam 2.29.0</title><description>
 &lt;!--
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -688,202 +771,4 @@ Robert Bradshaw, Robert Burke, Robin Qiu, Rui Wang, Saavan Nanavati, sabhyankar,
 Scott Lukas, Siddhartha Thota, Simone Primarosa, Sławomir Andrian,
 Steve Niemitz, Tobiasz Kędzierski, Tomo Suzuki, Tyson Hamilton, Udi Meiri,
 Valentyn Tymofieiev, viktorjonsson, Xinyu Liu, Yichi Zhang, Yixing Zhang, yoshiki.obata,
-Yueyang Qiu, zijiesong&lt;/p></description><link>/blog/beam-2.24.0/</link><pubDate>Fri, 18 Sep 2020 00:00:01 -0800</pubDate><guid>/blog/beam-2.24.0/</guid><category>blog</category></item><item><title>Pattern Matching with Beam SQL</title><description>
-&lt;!--
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-&lt;h2 id="introduction">Introduction&lt;/h2>
-&lt;p>SQL is becoming increasingly powerful and useful in the field of data analysis. MATCH_RECOGNIZE,
-a new SQL component introduced in 2016, brings extra analytical functionality. This project,
-as part of Google Summer of Code, aims to support basic MATCH_RECOGNIZE functionality. A basic MATCH_RECOGNIZE
-query would be something like this:
-&lt;div class='language-sql snippet'>
-&lt;div class="notebook-skip code-snippet">
-&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
-&lt;img src="/images/copy-icon.svg"/>
-&lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="k">SELECT&lt;/span> &lt;span class="n">T&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">aid&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">T&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">bid&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">T&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">cid&lt;/span>
-&lt;span class="k">FROM&lt;/span> &lt;span class="n">MyTable&lt;/span>
-&lt;span class="n">MATCH_RECOGNIZE&lt;/span> &lt;span class="p">(&lt;/span>
-&lt;span class="n">PARTITION&lt;/span> &lt;span class="k">BY&lt;/span> &lt;span class="n">userid&lt;/span>
-&lt;span class="k">ORDER&lt;/span> &lt;span class="k">BY&lt;/span> &lt;span class="n">proctime&lt;/span>
-&lt;span class="n">MEASURES&lt;/span>
-&lt;span class="n">A&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">id&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">aid&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">B&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">id&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">bid&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="k">C&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">id&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">cid&lt;/span>
-&lt;span class="n">PATTERN&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span> &lt;span class="n">B&lt;/span> &lt;span class="k">C&lt;/span>&lt;span class="p">)&lt;/span>
-&lt;span class="n">DEFINE&lt;/span>
-&lt;span class="n">A&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">name&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="n">B&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">name&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;b&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="k">C&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">name&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;c&amp;#39;&lt;/span>
-&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">T&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
-&lt;/div>
-&lt;/div>
-&lt;/p>
-&lt;p>The above query finds out ordered sets of events that have names &amp;lsquo;a&amp;rsquo;, &amp;lsquo;b&amp;rsquo; and &amp;lsquo;c&amp;rsquo;. Apart from this basic usage of
-MATCH_RECOGNIZE, I supported a few of other crucial features such as quantifiers and row pattern navigation. I will spell out
-the details in later sections.&lt;/p>
-&lt;h2 id="approach--discussion">Approach &amp;amp; Discussion&lt;/h2>
-&lt;p>The implementation is strongly based on BEAM core transforms. Specifically, one MATCH_RECOGNIZE execution composes the
-following series of transforms:&lt;/p>
-&lt;ol>
-&lt;li>A &lt;code>ParDo&lt;/code> transform and then a &lt;code>GroupByKey&lt;/code> transform that build up the partitions (PARTITION BY).&lt;/li>
-&lt;li>A &lt;code>ParDo&lt;/code> transform that sorts within each partition (ORDER BY).&lt;/li>
-&lt;li>A &lt;code>ParDo&lt;/code> transform that applies pattern-match in each sorted partition.&lt;/li>
-&lt;/ol>
-&lt;p>A pattern-match operation was first done with the java regex library. That is, I first transform rows within a partition into
-a string and then apply regex pattern-match routines. If a row satisfies a condition, then I output the corresponding pattern variable.
-This is ok under the assumption that the pattern definitions are mutually exclusive. That is, a pattern definition like &lt;code>A AS A.price &amp;gt; 0, B AS b.price &amp;lt; 0&lt;/code> is allowed while
-a pattern definition like &lt;code>A AS A.price &amp;gt; 0, B AS B.proctime &amp;gt; 0&lt;/code> might results in an incomplete match. For the latter case,
-an event can satisfy the conditions A and B at the same time. Mutually exclusive conditions gives deterministic pattern-match:
-each event can only belong to at most one pattern class.&lt;/p>
-&lt;p>As specified in the SQL 2016 document, MATCH_RECOGNIZE defines a richer set of expression than regular expression. Specifically,
-it introduces &lt;em>Row Pattern Navigation Operations&lt;/em> such as &lt;code>PREV&lt;/code> and &lt;code>NEXT&lt;/code>. This is perhaps one of the most intriguing feature of
-MATCH_RECOGNIZE. A regex library would no longer suffice the need since the pattern definition could be back-referencing (&lt;code>PREV&lt;/code>) or
-forward-referencing (&lt;code>NEXT&lt;/code>). So for the second version of implementation, we chose to use an NFA regex engine. An NFA brings more flexibility
-in terms of non-determinism (see Chapter 6 of SQL 2016 Part 5 for a more thorough discussion). My proposed NFA is based on a paper of UMASS.&lt;/p>
-&lt;p>This is a working project. Many of the components are still not supported. I will list some unimplemented work in the section
-of future work.&lt;/p>
-&lt;h2 id="usages">Usages&lt;/h2>
-&lt;p>For now, the components I supported are:&lt;/p>
-&lt;ul>
-&lt;li>PARTITION BY&lt;/li>
-&lt;li>ORDER BY&lt;/li>
-&lt;li>MEASURES
-&lt;ol>
-&lt;li>LAST&lt;/li>
-&lt;li>FIRST&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;li>ONE ROW PER MATCH/ALL ROWS PER MATCH&lt;/li>
-&lt;li>DEFINE
-&lt;ol>
-&lt;li>Left side of the condition
-&lt;ol>
-&lt;li>LAST&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;li>Right side of the condition
-&lt;ol>
-&lt;li>PREV&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;li>Quantifier
-&lt;ol>
-&lt;li>Kleene plus&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;/ul>
-&lt;p>The pattern definition evaluation is hard coded. To be more specific, it expects the column reference of the incoming row
-to be on the left side of a comparator. Additionally, PREV function can only appear on the right side of the comparator.&lt;/p>
-&lt;p>With these limited tools, we could already write some slightly more complicated queries. Imagine we have the following
-table:&lt;/p>
-&lt;table>
-&lt;thead>
-&lt;tr>
-&lt;th align="center">transTime&lt;/th>
-&lt;th align="center">price&lt;/th>
-&lt;/tr>
-&lt;/thead>
-&lt;tbody>
-&lt;tr>
-&lt;td align="center">1&lt;/td>
-&lt;td align="center">3&lt;/td>
-&lt;/tr>
-&lt;tr>
-&lt;td align="center">2&lt;/td>
-&lt;td align="center">2&lt;/td>
-&lt;/tr>
-&lt;tr>
-&lt;td align="center">3&lt;/td>
-&lt;td align="center">1&lt;/td>
-&lt;/tr>
-&lt;tr>
-&lt;td align="center">4&lt;/td>
-&lt;td align="center">5&lt;/td>
-&lt;/tr>
-&lt;tr>
-&lt;td align="center">5&lt;/td>
-&lt;td align="center">6&lt;/td>
-&lt;/tr>
-&lt;/tbody>
-&lt;/table>
-&lt;p>This table reflects the price changes of a product with respect to the transaction time. We could write the following
-query:&lt;/p>
-&lt;div class='language-sql snippet'>
-&lt;div class="notebook-skip code-snippet">
-&lt;a class="copy" type="button" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Copy to clipboard">
-&lt;img src="/images/copy-icon.svg"/>
-&lt;/a>
-&lt;div class="highlight">&lt;pre class="chroma">&lt;code class="language-sql" data-lang="sql">&lt;span class="k">SELECT&lt;/span> &lt;span class="o">*&lt;/span>
-&lt;span class="k">FROM&lt;/span> &lt;span class="n">MyTable&lt;/span>
-&lt;span class="n">MATCH_RECOGNIZE&lt;/span> &lt;span class="p">(&lt;/span>
-&lt;span class="k">ORDER&lt;/span> &lt;span class="k">BY&lt;/span> &lt;span class="n">transTime&lt;/span>
-&lt;span class="n">MEASURES&lt;/span>
-&lt;span class="k">LAST&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">price&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">beforePrice&lt;/span>&lt;span class="p">,&lt;/span>
-&lt;span class="k">FIRST&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">price&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">afterPrice&lt;/span>
-&lt;span class="n">PATTERN&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="o">+&lt;/span> &lt;span class="n">B&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="p">)&lt;/span>
-&lt;span class="n">DEFINE&lt;/span>
-&lt;span class="n">A&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">price&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="n">PREV&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">price&lt;/span>&lt;span class="p">),&lt;/span>
-&lt;span class="n">B&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">price&lt;/span> &lt;span class="o">&amp;gt;&lt;/span> &lt;span class="n">PREV&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">B&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">price&lt;/span>&lt;span class="p">)&lt;/span>
-&lt;span class="p">)&lt;/span> &lt;span class="k">AS&lt;/span> &lt;span class="n">T&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
-&lt;/div>
-&lt;/div>
-&lt;p>This will find the local minimum price and the price after it. For the example dataset, the first 3 rows will be
-mapped to A and the rest of the rows will be mapped to B. Thus, we will have (1, 5) as the result.&lt;/p>
-&lt;blockquote>
-&lt;p>Very important: For my NFA implementation, it slightly breaks the rule in the SQL standard. Since the buffered NFA
-only stores an event to the buffer if the event is a match to some pattern class, There would be no way to get the
-previous event back if the previous row is discarded. So the first row would always be a match (different from the standard)
-if PREV is used.&lt;/p>
-&lt;/blockquote>
-&lt;h2 id="progress">Progress&lt;/h2>
-&lt;ol>
-&lt;li>PRs
-&lt;ol>
-&lt;li>&lt;a href="https://github.com/apache/beam/pull/12232">Support MATCH_RECOGNIZE using regex library&lt;/a> (merged)&lt;/li>
-&lt;li>&lt;a href="https://github.com/apache/beam/pull/12532">Support MATCH_RECOGNIZE using NFA&lt;/a> (pending)&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;li>Commits
-&lt;ol>
-&lt;li>partition by: &lt;a href="https://github.com/apache/beam/pull/12232/commits/064ada7257970bcb1d35530be1b88cb3830f242b">commit 064ada7&lt;/a>&lt;/li>
-&lt;li>order by: &lt;a href="https://github.com/apache/beam/pull/12232/commits/9cd1a82bec7b2f7c44aacfbd72f5f775bb58b650">commit 9cd1a82&lt;/a>&lt;/li>
-&lt;li>regex pattern match: &lt;a href="https://github.com/apache/beam/pull/12232/commits/8d6ffcc213e30999fc495c119b68da4f62fad258">commit 8d6ffcc&lt;/a>&lt;/li>
-&lt;li>support quantifiers: &lt;a href="https://github.com/apache/beam/pull/12232/commits/f529b876a2c2e43d012c71b3a83ebd55eb16f4ff">commit f529b87&lt;/a>&lt;/li>
-&lt;li>measures: &lt;a href="https://github.com/apache/beam/pull/12232/commits/87935746647611aa139d664ebed10c8e638bb024">commit 8793574&lt;/a>&lt;/li>
-&lt;li>added NFA implementation: &lt;a href="https://github.com/apache/beam/pull/12532/commits/fc731f2b0699d11853e7b76da86456427d434a2a">commit fc731f2&lt;/a>&lt;/li>
-&lt;li>implemented functions PREV and LAST: &lt;a href="https://github.com/apache/beam/pull/12532/commits/fc731f2b0699d11853e7b76da86456427d434a2a">commit 35323da&lt;/a>&lt;/li>
-&lt;/ol>
-&lt;/li>
-&lt;/ol>
-&lt;h2 id="future-work">Future Work&lt;/h2>
-&lt;ul>
-&lt;li>Support FINAL/RUNNING keywords.&lt;/li>
-&lt;li>Support more quantifiers.&lt;/li>
-&lt;li>Add optimization to the NFA.&lt;/li>
-&lt;li>A better way to realize MATCH_RECOGNIZE might be having a Complex Event Processing library at BEAM core (rather than using BEAM transforms).&lt;/li>
-&lt;/ul>
-&lt;!-- Related Documents:
-- proposal
-- design doc
-- SQL 2016 standard
-- UMASS NFA^b paper
--->
-&lt;h2 id="references">References&lt;/h2>
-&lt;ul>
-&lt;li>&lt;a href="https://drive.google.com/file/d/1ZuFZV4dCFVPZW_-RiqbU0w-vShaZh_jX/view?usp=sharing">Project Proposal&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://s.apache.org/beam-sql-pattern-recognization">Design Documentation&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://www.iso.org/standard/65143.html">SQL 2016 documentation Part 5&lt;/a>&lt;/li>
-&lt;li>&lt;a href="https://dl.acm.org/doi/10.1145/1376616.1376634">UMASS paper on NFA with shared buffer&lt;/a>&lt;/li>
-&lt;/ul></description><link>/blog/pattern-match-beam-sql/</link><pubDate>Thu, 27 Aug 2020 00:00:01 +0800</pubDate><guid>/blog/pattern-match-beam-sql/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
+Yueyang Qiu, zijiesong&lt;/p></description><link>/blog/beam-2.24.0/</link><pubDate>Fri, 18 Sep 2020 00:00:01 -0800</pubDate><guid>/blog/beam-2.24.0/</guid><category>blog</category></item></channel></rss>
\ No newline at end of file
diff --git a/website/generated-content/index.html b/website/generated-content/index.html
index f657369..86e7568 100644
--- a/website/generated-content/index.html
+++ b/website/generated-content/index.html
@@ -25,11 +25,7 @@ function openMenu(){addPlaceholder();blockScroll();}</script><div class="body__c
 <img src=/images/model-ellipse.svg>
 <img src=/images/model-sinks-icon.svg class=icon></div><div class=row><div class=column><img src=/images/model-sources-icon.svg class="icon mobile"><h4>Sources</h4><p>Beam reads your data from a diverse set of supported sources, no matter if it’s on-prem or in the cloud.</p></div><div class=column><img src=/images/model-processing-icon.svg class="icon mobile"><h4>Processing</h4><p>Beam executes your business logic for Batch and Streaming use cases.</p></div><div class=column><img src=/im [...]
 <img src=/images/logos/runners/spark.png></div><p class=more>& MORE</p><div><h4>Choose your runner</h4><p>A Beam pipeline can execute in the most popular distributed data processing systems such as Spark, Flink or Samza.</p></div></div><div class=column><div class=logos-row><img class=first_logo src=/images/logos/sdks/python-logo.png>
-<img src=/images/logos/sdks/go.png></div><p class=more>& MORE</p><div><h4>Choose your language</h4><p>You can write Apache Beam pipelines in your programming language of choice: Java, Python and Go. Learn More.</p></div></div></div></div></div><div class=calendar><h2 class=calendar-title>Stay up to date with Beam</h2><div class=calendar-content><div class="calendar-card-big calendar-card-big-left"><div class=desktop><a class=twitter-timeline data-width=381 data-height=460 href="https://t [...]
-                    
-      </p><p>2021/01/15</p></div><div><p class=post-title>Example to ingest data from Apache Kafka to Google Cloud Pub/Sub</p><p class=post-info>Artur Khanin,
-Ilya Kozyrev &
-Alex Kosolapov</p></div></a></div><div class="calendar-card-big calendar-card-big-right"><p class=calendar-card-event-title>Upcoming events</p><div class=calendar-card-events><div class=calendar-desktop><iframe id=calendar src="https://calendar.google.com/calendar/embed?src=r24up18ne2ddgl0t93flk0hsj8%40group.calendar.google.com" style=border:0 width=333 height=320 frameborder=0 scrolling=no></iframe></div><div class=calendar-mobile><iframe id=calendar src="https://calendar.google.com/cal [...]
+<img src=/images/logos/sdks/go.png></div><p class=more>& MORE</p><div><h4>Choose your language</h4><p>You can write Apache Beam pipelines in your programming language of choice: Java, Python and Go. Learn More.</p></div></div></div></div></div><div class=calendar><h2 class=calendar-title>Stay up to date with Beam</h2><div class=calendar-content><div class="calendar-card-big calendar-card-big-left"><div class=desktop><a class=twitter-timeline data-width=381 data-height=460 href="https://t [...]
 <a href=http://www.apache.org>The Apache Software Foundation</a>
 | <a href=/privacy_policy>Privacy Policy</a>
 | <a href=/feed.xml>RSS Feed</a><br><br>Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.</div></div></div></div></footer></div><script src=/js/hero/lottie-light.min.js></script><script src=/js/hero/hero-desktop.js></script><script src=/js/hero/hero-mobile.js></script>< [...]
\ No newline at end of file
diff --git a/website/generated-content/sitemap.xml b/website/generated-content/sitemap.xml
index 83c0942..e68d19e 100644
--- a/website/generated-content/sitemap.xml
+++ b/website/generated-content/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/blog/beam-2.29.0/</loc><lastmod>2021-04-15T20:51:50-07:00</lastmod></url><url><loc>/categories/blog/</loc><lastmod>2021-04-15T20:51:50-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2021-04-15T20:51:50-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2021-05-25T17:22:37-07:00</lastmod></url><url><loc>/blog/b [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>/categories/blog/</loc><lastmod>2021-06-09T10:56:20-07:00</lastmod></url><url><loc>/blog/</loc><lastmod>2021-06-09T10:56:20-07:00</lastmod></url><url><loc>/categories/</loc><lastmod>2021-06-09T10:56:20-07:00</lastmod></url><url><loc>/blog/validate-beam-release/</loc><lastmod>2021-06-09T10:56:20-07:00</lastmod></url><url><l [...]
\ No newline at end of file

Mime
View raw message