diff --git a/content/about.html b/content/about.html
index 561bd98..bc345b9 100644
--- a/content/about.html
+++ b/content/about.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/api.html b/content/api.html
index b44eb94..e5e70b0 100644
--- a/content/api.html
+++ b/content/api.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/api_archives.html b/content/api_archives.html
index b89a856..ec3b8a2 100644
--- a/content/api_archives.html
+++ b/content/api_archives.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/archives.html b/content/archives.html
index 57a67ef..cfd9260 100644
--- a/content/archives.html
+++ b/content/archives.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/bylaws.html b/content/bylaws.html
index 459c986..cf6fb6d 100644
--- a/content/bylaws.html
+++ b/content/bylaws.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/cloudstack-faq.html b/content/cloudstack-faq.html
index d2c4df8..1d034e8 100644
--- a/content/cloudstack-faq.html
+++ b/content/cloudstack-faq.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/contribute.html b/content/contribute.html
index 4bd35ce..7cde65f 100644
--- a/content/contribute.html
+++ b/content/contribute.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/developers.html b/content/developers.html
index 6500ec7..f09f47f 100644
--- a/content/developers.html
+++ b/content/developers.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/downloads.html b/content/downloads.html
index 9a4bd8b..3162ef2 100644
--- a/content/downloads.html
+++ b/content/downloads.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/features.html b/content/features.html
index d0fab1b..6f0e905 100644
--- a/content/features.html
+++ b/content/features.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/history.html b/content/history.html
index 50b7e1a..fc715e7 100644
--- a/content/history.html
+++ b/content/history.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/index.html b/content/index.html
index e428cb4..874cb36 100644
--- a/content/index.html
+++ b/content/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
@@ -141,185 +149,274 @@
 
 <div class="row">
   <div class="col-lg-6">
-
     <div class="panel panel-default">
       <div class="panel-heading">
+
+      Latest Announcement
+
+      <a href="https://blogs.apache.org/cloudstack/feed/entries/atom"><img src="/images/feed-icon-14x14.png" class="pull-right" alt=""></a>
+
+      </div>
+
+      <div id="headline" class="panel-body">
+      </div>
+    </div>
+    <div class="panel panel-default">
+      <div class="panel-heading">
+
         About CloudStack
-      </div>
-      <div class="panel-body">
-        <p>Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used by a number of service providers to offer public cloud services, and by many companies to provide an on-premises (private) cloud offering, or as part of a hybrid cloud solution.</p>
-        <p>CloudStack is a turnkey solution that includes the entire "stack" of features most organizations want with an IaaS cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).</p>
-        <p>CloudStack currently supports the most popular hypervisors: VMware, KVM, Citrix XenServer, Xen Cloud Platform (XCP), Oracle VM server and Microsoft Hyper-V.</p>
-        <p>Users can manage their cloud with an easy to use Web interface, command line tools, and/or a full-featured RESTful API. In addition, CloudStack provides an API that's compatible with AWS EC2 and S3 for organizations that wish to deploy hybrid clouds.</p>
-        <a href="about.html"><button type="button" class="btn btn-info">Learn More</button></a>
-      </div>
-    </div>
 
+      </div>
+
+      <div class="panel-body">
+
+<p>
+Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform. CloudStack is used by a number of service providers to offer public cloud services, and by many companies to provide an on-premises (private) cloud offering, or as part of a hybrid cloud solution.
+</p>
+
+<p>
+CloudStack is a turnkey solution that includes the entire "stack" of features most organizations want with an IaaS cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).
+</p>
+
+<p>
+CloudStack currently supports the most popular hypervisors: VMware, KVM, Citrix XenServer, Xen Cloud Platform (XCP), Oracle VM server and Microsoft Hyper-V.
+</p>
+
+<p>
+Users can manage their cloud with an easy to use Web interface, command line tools, and/or a full-featured RESTful API. In addition, CloudStack provides an API that's compatible with AWS EC2 and S3 for organizations that wish to deploy hybrid clouds.
+</p>
+
+<a href="about.html"><button type="button" class="btn btn-info">Learn More</button></a>
+
+      </div>
+
+    </div>
 
     <div class="panel panel-default">
       <div class="panel-heading">
-        Latest Announcements
-        <a href="https://blogs.apache.org/cloudstack/feed/entries/atom"><img src="images/feed-icon-14x14.png" class="pull-right" alt=""></a>
-      </div>
-      <div class="panel-body">
-        <div id="atom-cloudstack" style="margin-left: 4px;"></div>
-      </div>
-    </div>
 
+Join Us
 
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        CloudStack Events
       </div>
-      <div class="panel-body" id="events">
-        <h4>Upcoming CloudStack Events</h4>
-        <p>There's always plenty of Cloudstack Events happening in different parts of the world. These range from Meetups, User Groups to <a href="http://cloudstackcollab.org/">CloudStack Collaboration Conference</a>
-        events. Each event will feature a lot of opportunities to learn,
-        collaborate and engage with the CloudStack community. The CloudStack
-        Collaboration Conferences are valuable for both developers and users, and
-        are a great way to get involved with the community.</p>
-        <ul type="disc" style="padding-inline-start: 15px">
-          <div id="csv-events"></div> 
-        </ul>
-        <p> View videos from previous CloudStack Collaboration Conferences:</p>
-        <ul type="disc" style="padding-inline-start: 15px">
-            <li>
-                <a
-                    href="https://www.youtube.com/playlist?list=PLU2OcwpQkYCwcPxZMKX2BFoKE0Z7g1ENH"
-                    target="_blank">
-                    CloudStack Collaboration Conference June 2018 in Montreal
-                </a>
-            </li>  
-            <li>
-                <a
-                    href="https://www.youtube.com/playlist?list=PLCfLScXpEyAS4YkJpeqDriP7JcU82Tx2r"
-                    target="_blank">
-                    CloudStack Collaboration Conference June 2016 in Montreal
-                </a>
-            </li>
-            <li>
-                <a
-                    href="https://www.youtube.com/playlist?list=PLGeM09tlguZSeNyOyQKJHNX4pxgK-yoTA"
-                    target="_blank">
-                    CloudStack Collaboration Conference Europe 2015 in Dublin
-                </a>
-            </li>
-        </ul>
-      </div>
-    </div>
 
+	<div class="panel-body">
 
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        Join Us
-      </div>
-      <div class="panel-body">
-	<p>Learn more about getting involved with Apache CloudStack on the <a href="contribute.html">Contributing to Apache CloudStack</a> page, or go straight to our <a href="developers.html">Developer Resources</a> page.</p>
-      </div>
-    </div>
-    
-    
-  </div>
-  
-  <div class="col-lg-6">
+	<p>
+	Learn more about getting involved with Apache CloudStack on the <a href="contribute.html">Contributing to Apache CloudStack</a> page, or go straight to our <a href="developers.html">Developer Resources</a> page.
+	</p>
+	</div>
 
-
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        Get CloudStack
-      </div>
-      <div class="panel-body">
-        <p class="text-warning">Apache CloudStack 4.12.0.0 is out!</p>
-          <p>This is non-LTS release of CloudStack.</p>
-        <a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
-        <a href="http://docs.cloudstack.apache.org/en/4.12.0.0/"><button type="button" class="btn btn-success">Documentation</button></a>
-        <p style="margin-top: 20px;">If you prefer proven stability rather than the newest features, please take a look at the previous LTS release.</p>
-        <p class="text-warning">Previous Apache CloudStack LTS Release is 4.11.2.0.</p>
-        <a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
-        <a href="http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.11/"><button type="button" class="btn btn-success">Documentation</button></a>
-        <p style="margin-top: 20px;">
-        Looking for other versions of Apache CloudStack? You can find them in our <a href="archives.html">archives</a> page as well.
-        </p>
-      </div>
-    </div>
-
-
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        What are people saying?
-      </div>
-      <div class="panel-body">
-        <div class="tw">
-          <a class="twitter-timeline" data-height="1000" data-theme="light" href="https://twitter.com/CloudStack?ref_src=twsrc%5Etfw">Tweets by CloudStack</a>
-          <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 
-        </div>
-      </div>
-    </div>
-  </div>
+</div>
 </div>
 
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-<script type="text/javascript" src="javascripts/FeedEk.min.js"></script>
+<div class="col-lg-6">
+	<div class="panel panel-default">
+		<div class="panel-heading">
+			Get CloudStack
+		</div>
+		<div class="panel-body">
 
-<script type="text/javascript">
-  $(function () {
-    $('#atom-cloudstack').FeedEk({
-      FeedUrl: 'https://blogs.apache.org/cloudstack/feed/entries/atom',
-      ShowDesc: false,
-      MaxCount: 3,
-      DateFormat: 'D',
-      DateFormatLang: 'en'
-    });
-  });
-</script>
+		<p class="text-warning">Apache CloudStack 4.12.0.0 is out!</p>
+		<p>This is non-LTS release of CloudStack.</p>
 
-<script type="text/javascript">
-  $(document).ready(function() {
-    $.ajax({
-      type: "GET",
-      // github controlled datasource
-      url: "https://raw.githubusercontent.com/apache/cloudstack-www/master/data/acs-events.csv",
-      dataType: "text",
-      success: function(data) {processData(data);}
-    });
-  });
-  
- function processData(data) {
-      var lines = data.split(/\r\n|\n/);
+		<a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
+		<a href="http://docs.cloudstack.apache.org/en/4.12.0.0/"><button type="button" class="btn btn-success">Documentation</button></a>
+		
+		<p style="margin-top: 20px;">If you prefer proven stability rather than the newest features, please take a look at the previous LTS release.</p>
+		<p class="text-warning">Previous Apache CloudStack LTS Release is 4.11.2.0.</p>
+		<a href="downloads.html"><button type="button" class="btn btn-success">Download</button></a>
+		<a href="http://docs.cloudstack.apache.org/projects/cloudstack-installation/en/4.11/"><button type="button" class="btn btn-success">Documentation</button></a>
 
-      //Set up the data arrays
+		<p style="margin-top: 20px;">
+		Looking for other versions of Apache CloudStack? You can find them in our <a href="archives.html">archives</a> page as well.
+		</p>
 
-      var event_title = [];
-      var event_link = [];
-      var event_location = [];
-      var event_date = [];
+		</div>
 
-      var headings = lines[0].split(','); // Splice up the first row to get the headings - not used after atm
+	</div>
 
-      for (var j=1; j<lines.length; j++) {
-      var values = lines[j].split(','); // Split up the comma seperated values
-         // read in event details as arrays 
-         event_title.push(values[0]); 
-         event_link.push(values[1]);
-         event_location.push(values[2]);
-         event_date.push(values[3]);
-      }
-// alert(lines);
+	<div class="panel panel-default">
+		<div class="panel-heading">
+		CloudStack Events
+		</div>
 
-    var div = document.getElementById("csv-events");
-    var html = "";
-    for (var i=0;i<lines.length;i++) {
-      if (typeof event_location[i] !== "undefined") {
-        html += '<li> <a href=\"' + event_link[i] + '\" target=\"_blank\">' + event_title[i] + "</a> , " + event_location[i] + ", " + event_date[i] + "</li>";
-      }
-    }
-    
-    // write html to page
-    div.innerHTML = html;
+		<div class="panel-body" id="events">
+
+			<h4>Upcoming CloudStack Events</h4>
+<p>
+    There's always plenty of Cloudstack Events happening in different parts of
+    the world. These range from Meetups, User Groups to
+    <a href="http://cloudstackcollab.org/">
+        CloudStack Collaboration Conference
+    </a>
+    events. Each event will feature a lot of opportunities to learn,
+    collaborate and engage with the CloudStack community. The CloudStack
+    Collaboration Conferences are valuable for both developers and users, and
+    are a great way to get involved with the community.
+</p>
+<ul type="disc">
+    <li>
+        <a
+            href="https://www.meetup.com/de-DE/german-CloudStack-user-group/events/259269366/"
+            target="_blank"
+        >
+            April CloudStack Meetup (Germany)
+        </a>
+        , Sankt Augustin (Bonn), 11<sup>th</sup> April
+    </li>
+    <li>
+        <a
+            href="http://br.cloudstackcollab.org/"
+            target="_blank"
+        >
+            CloudStack Collaboration Conference Brazil
+        </a>
+        , Florianopolis, 26<sup>th</sup> April
+    </li>
+    <li>
+        <a
+            href="https://www.eventbrite.co.uk/e/cloudstack-european-user-group-meetup-tickets-55911193886"
+            target="_blank"
+        >
+            CloudStack European User Group meetup
+        </a>
+        , Sofia, 13<sup>th</sup> June
+    </li>          
+    <li>
+        <a
+            href="http://us.cloudstackcollab.org/"
+            target="_blank"
+        >
+            CloudStack Collaboration Conference North America
+        </a>
+        , Las Vegas, 9<sup>th</sup> - 11<sup>th</sup> September
+    </li>    
+</ul>
+<p>
+    View videos from previous CloudStack Collaboration Conferences:
+</p>
+<ul type="disc">
+    <li>
+        <a
+            href="https://www.youtube.com/playlist?list=PLU2OcwpQkYCwcPxZMKX2BFoKE0Z7g1ENH"
+            target="_blank">
+            CloudStack Collaboration Conference June 2018 in Montreal
+        </a>
+    </li>  
+    <li>
+        <a
+            href="https://www.youtube.com/playlist?list=PLCfLScXpEyAS4YkJpeqDriP7JcU82Tx2r"
+            target="_blank">
+            CloudStack Collaboration Conference June 2016 in Montreal
+        </a>
+    </li>
+    <li>
+        <a
+            href="https://www.youtube.com/playlist?list=PLGeM09tlguZSeNyOyQKJHNX4pxgK-yoTA"
+            target="_blank">
+            CloudStack Collaboration Conference Europe 2015 in Dublin
+        </a>
+    </li>
+</ul>
+
+
+		</div>
+
+	</div>
+
+	<div class="panel panel-default">
+		<div class="panel-heading">
+			What are people saying?
+		</div>
+		<div class="panel-body">
+
+			<a class="twitter-timeline" href="https://twitter.com/search?q=cloudstack" data-widget-id="383337162126544896" data-chrome="nofooter transparent noheader noborders noscrollbar">Tweets about "CloudStack"</a>
+			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+		</div>
+
+	</div>
+
+</div>
+
+</div>
+
+<script>
+var maxEntries = 3; // if 0 then there will be no limit
+
+function slug(str){
+ return str.replace(/\s/g,'-').replace(/[^a-zA-Z0-9\-]/g,'').toLowerCase();
 }
-	
+/**
+ * This function appends rss feed items to divs with the same slug
+ * Name is the title of the feed, when slugged i use it as a div id
+ * File is the rss feed
+ */
+function newFeed(id, file) {
+ $.getJSON("//query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22"+encodeURIComponent(file)+"%22&format=json&callback=?", function(d) {
+  var count = 0;
+  $(d.query.results.feed.entry).each(function() {
+    if(maxEntries == 0 || maxEntries>count){
+     var title = this.title.content;
+     var content = this.content.content;
+     var pubDate = new Date(this.published);
+     // Format however you want, I only went for link and title
+     var anItem = "<h4>"+title+"</h4><p>"+pubDate+"</p>"+content+"<hr />";
+     $("#"+id).append(anItem);
+     if (count==0)
+      $("#headline").append("<p>"+title+"<br/><a href='#news'>Read more here.</a></p>");
+     count++;
+    }
+   });
+ });
+};
 </script>
 
+<p><a name='news'></a><br /> </p><p> </p>
+
+<div class="panel panel-default">
+	<div class="panel-heading">
+		Project Announcements
+	</div>
+	<div class="panel-body">
+		<div id="feed">
+		</div>
+
+	</div>
+
+</div>
+
+<script>
+newFeed("feed", "https://blogs.apache.org/cloudstack/feed/entries/atom");
+</script>
+
+<script>
+var maxEvents = 3; // if 0 then there will be no limit
+
+/**
+ * This function appends rss feed items to divs with the same slug
+ * Name is the title of the feed, when slugged i use it as a div id
+ * File is the rss feed
+ */
+function newEventList(id, file) {
+ $.getJSON("//query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22"+encodeURIComponent(file)+"%22&format=json&callback=?", function(d) {
+  var count = 0;
+  $(d.query.results.feed.entry).each(function() {
+    if(maxEvents == 0 || maxEvents>count){
+     var title = this.title;
+     var link = this.link.href;
+     var anItem = "<p><a href='"+link+"' target='_blank'>"+title+"</a></p>";
+     $("#"+id).append(anItem);
+     count++;
+    }
+   });
+   $("#events").append("<p><small>For more events, take a look at the <a href='http://lanyrd.com/topics/apache-cloudstack/' target='_blank'>Apache CloudStack topic page</a> on Lanyrd.</small></p>");
+ });
+};
+
+newEventList("events", "http://lanyrd.com/topics/apache-cloudstack/feed/");
+
+</script>
 
 
             <footer>
diff --git a/content/javascripts/FeedEk.min.js b/content/javascripts/FeedEk.min.js
deleted file mode 100644
index dd0dcca..0000000
--- a/content/javascripts/FeedEk.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! FeedEk jQuery RSS/ATOM Feed Plugin v3.1.1
-* https://jquery-plugins.net/FeedEk/FeedEk.html  https://github.com/enginkizil/FeedEk
-* Author : Engin KIZIL */
-!function (r) { r.fn.FeedEk = function (t) { var a, i = r.extend({ MaxCount: 5, ShowDesc: !0, ShowPubDate: !0, DescCharacterLimit: 0, TitleLinkTarget: "_blank", DateFormat: "", DateFormatLang: "en" }, t), e = r(this).attr("id"), n = ""; r("#" + e).empty(), null != i.FeedUrl && (r("#" + e).append('<img src="loader.gif" />'), r.ajax({ url: "https://feed.jquery-plugins.net/load?url=" + encodeURIComponent(i.FeedUrl) + "&maxCount=" + i.MaxCount + "&dateCulture=" + i.DateFormatLang + "&dateFormat=" + i.DateFormat, dataType: "json", success: function (t) { r("#" + e).empty(), null != t.data && (r.each(t.data, function (t, e) { n += '<li><div class="itemTitle"><a href="' + e.link + '" target="' + i.TitleLinkTarget + '" >' + e.title + "</a></div>", i.ShowPubDate && (a = new Date(e.publishDate), n += '<div class="itemDate">', 0 < r.trim(i.DateFormat).length ? n += e.publishDateFormatted : n += a.toLocaleDateString(), n += "</div>"), i.ShowDesc && (n += '<div class="itemContent">', 0 < i.DescCharacterLimit && e.description.length > i.DescCharacterLimit ? n += e.description.substring(0, i.DescCharacterLimit) + "..." : n += e.description, n += "</div>") }), r("#" + e).append('<ul class="feedEkList">' + n + "</ul>")) } })) } }(jQuery);
diff --git a/content/javascripts/custom.css b/content/javascripts/custom.css
deleted file mode 100644
index ef5f820..0000000
--- a/content/javascripts/custom.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You 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.
-*/
-
-a.button {
-    -webkit-appearance: button;
-    -moz-appearance: button;
-    appearance: button;
-
-    text-decoration: none;
-    color: initial;
-}
-
-.feedEkList li{border-bottom:1px solid #D3CAD7; padding: 10px 0px 10px 0px; left-magrin: 0px;}
-.feedEkList{padding-inline-start: 10px; margin 15px;}
-/*
-.feedEkList ul{border-bottom:1px solid #D3CAD7; padding:10px; left-magrin: 0px;}
-.feedEkList li:last-child{border-bottom:none;}
-.itemTitle a{font-weight:bold; color:#4EBAFF !important; text-decoration:none }
-.itemTitle a:hover{ text-decoration:underline }
-.itemDate{font-size:11px;color:#AAAAAA;}
-8?
diff --git a/content/loader.gif b/content/loader.gif
deleted file mode 100644
index 1d4bfaf..0000000
--- a/content/loader.gif
+++ /dev/null
Binary files differ
diff --git a/content/mailing-lists.html b/content/mailing-lists.html
index 137ad28..6d39b7b 100644
--- a/content/mailing-lists.html
+++ b/content/mailing-lists.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/security.html b/content/security.html
index aa571c5..fa4c007 100644
--- a/content/security.html
+++ b/content/security.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/software.html b/content/software.html
index 1e035c9..c05c403 100644
--- a/content/software.html
+++ b/content/software.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/stylesheets/bootstrap.css b/content/stylesheets/bootstrap.css
index c0e73a2..d7527a0 100644
--- a/content/stylesheets/bootstrap.css
+++ b/content/stylesheets/bootstrap.css
@@ -5299,8 +5299,8 @@
 
 @media screen and (min-width: 768px) {
   .jumbotron {
-    padding-top: 24px;
-    padding-bottom: 24px;
+    padding-top: 48px;
+    padding-bottom: 48px;
   }
   .container .jumbotron {
     padding-right: 60px;
diff --git a/content/stylesheets/custom.css b/content/stylesheets/custom.css
index 3f51ba3..bd91bb7 100644
--- a/content/stylesheets/custom.css
+++ b/content/stylesheets/custom.css
@@ -22,71 +22,4 @@
 
     text-decoration: none;
     color: initial;
-}
-
-.ul {
-  padding-inline-start: 4px;
-}
-
-.feedEkList { 
-  padding:4px 6px;
-  color:#3E3E3E;
-  margin-left: 4px;
-  margin-bottom: 0px;
-}
-
-.feedEkList li {
-  border-bottom:1px;
-  padding:4px 0px 4px;
-}
-
-.feedEkList li:last-child {
-  border-bottom:none;
-}
-
-.feedEkList ul {
-  margin-bottom: 0;
-}
-
-
-
-/*
-UNUSED BUT LEFT IN FOR REFERENCE
-.itemTitle a{font-weight:bold; color:#4EBAFF !important; text-decoration:none }
-.itemTitle a:hover{ text-decoration:underline }
-.itemDate{font-size:11px;color:#AAAAAA;}
-*/
-
-blockquote.twitter-tweet {
-  display: inline-block;
-  font-family: "Helvetica Neue", Roboto, "Segoe UI", Calibri, sans-serif;
-  font-size: 9px;
-  font-weight: bold;
-  line-height: 12px;
-  border-color: #eee #ddd #bbb;
-  border-radius: 5px;
-  border-style: solid;
-  border-width: 1px;
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
-  margin: 10px 5px;
-  padding: 0 16px 16px 16px;
-  max-width: 468px;
-}
-
-blockquote.twitter-tweet p {
-  font-size: 12px;
-  font-weight: normal;
-  line-height: 16px;
-}
-
-blockquote.twitter-tweet a {	
-  color: inherit;
-  font-weight: normal;
-  text-decoration: none;
-  outline: 0 none;
-}
-
-blockquote.twitter-tweet a:hover,
-blockquote.twitter-tweet a:focus {
-  text-decoration: underline;
 }
\ No newline at end of file
diff --git a/content/survey.html b/content/survey.html
index 2c7946a..29253c6 100644
--- a/content/survey.html
+++ b/content/survey.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/trademark-guidelines.html b/content/trademark-guidelines.html
index 0564497..9a40bf9 100644
--- a/content/trademark-guidelines.html
+++ b/content/trademark-guidelines.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/users.html b/content/users.html
index 6e8fc89..104cf51 100644
--- a/content/users.html
+++ b/content/users.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/videos.html b/content/videos.html
index 8974ac4..89f59bc 100644
--- a/content/videos.html
+++ b/content/videos.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
diff --git a/content/who.html b/content/who.html
index b8d8fa1..7a35ea6 100644
--- a/content/who.html
+++ b/content/who.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!doctype html>
 <html>  
   <head>
     <title>Apache CloudStack: Open Source Cloud Computing</title>
@@ -29,7 +29,15 @@
 
     <link rel="shortcut icon" href="images/favicon.ico">
     <link rel="icon" href="images/favicon.ico">
-    
+
+<!-- Commenting out this template stuff until we figure out how to make it work with middleman
+    {% if headers.atom %}
+      <link rel="alternate" href="{{ headers.atom.url }}"
+            type="application/atom+xml" title="{{ headers.atom.title }}" />
+    {% endif %}
+
+    {% if headers.base %}<base href="{{ headers.base }}" />{% endif %}
+-->
 <!--    {% if headers.notice %}{{ headers.notice }}{% endif %} -->
         <!-- Twitter Bootstrap and jQuery after this line. -->
         <script src="https://code.jquery.com/jquery-latest.js"></script>
@@ -138,189 +146,53 @@
 
 <h2 id="pmc">PMC</h2>
 
-<p>Active Project Management Committee contains (in alphabetical order of their usernames):</p>
-
-<table class="table-bordered">
-  <thead>
-    <tr>
-      <th>Username</th>
-      <th>Name</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>akarasulu</td>
-      <td>Alex Karasulu</td>
-    </tr>
-    <tr>
-      <td>alena1108</td>
-      <td>Alena Prokharchyk</td>
-    </tr>
-    <tr>
-      <td>animesh</td>
-      <td>Animesh</td>
-    </tr>
-    <tr>
-      <td>boris</td>
-      <td>Boris Schrijver</td>
-    </tr>
-    <tr>
-      <td>chipchilders</td>
-      <td>Chip Childers</td>
-    </tr>
-    <tr>
-      <td>chiradeep</td>
-      <td>Chiradeep Vittal</td>
-    </tr>
-    <tr>
-      <td>dahn</td>
-      <td>Daan</td>
-    </tr>
-    <tr>
-      <td>ekho</td>
-      <td>Wilder Rodrigues</td>
-    </tr>
-    <tr>
-      <td>erikw</td>
-      <td>Erik Weber</td>
-    </tr>
-    <tr>
-      <td>giles</td>
-      <td>Giles Sirett</td>
-    </tr>
-    <tr>
-      <td>gochiba</td>
-      <td>Go Chiba</td>
-    </tr>
-    <tr>
-      <td>hogstrom</td>
-      <td>Matt Richard Hogstrom</td>
-    </tr>
-    <tr>
-      <td>hugo</td>
-      <td>Hugo Trippaers</td>
-    </tr>
-    <tr>
-      <td>ilya</td>
-      <td>Ilya Musayev</td>
-    </tr>
-    <tr>
-      <td>jburwell</td>
-      <td>John Burwell</td>
-    </tr>
-    <tr>
-      <td>jlk</td>
-      <td>John Kinsella</td>
-    </tr>
-    <tr>
-      <td>jzb</td>
-      <td>Joe Brockmeier</td>
-    </tr>
-    <tr>
-      <td>karenv</td>
-      <td>Karen Vuong</td>
-    </tr>
-    <tr>
-      <td>ke4qqq</td>
-      <td>David Nalley</td>
-    </tr>
-    <tr>
-      <td>kluge</td>
-      <td>Kevin Kluge</td>
-    </tr>
-    <tr>
-      <td>milamber</td>
-      <td>Bruno Demion</td>
-    </tr>
-    <tr>
-      <td>mlsorensen</td>
-      <td>Marcus Sorensen</td>
-    </tr>
-    <tr>
-      <td>mnour</td>
-      <td>Mohammad Nour El-Din</td>
-    </tr>
-    <tr>
-      <td>mrhinkle</td>
-      <td>Mark R. Hinkle</td>
-    </tr>
-    <tr>
-      <td>mtutkowski</td>
-      <td>Mike Tutkowski</td>
-    </tr>
-    <tr>
-      <td>nslater</td>
-      <td>Naomi Slater</td>
-    </tr>
-    <tr>
-      <td>nux</td>
-      <td>Nux</td>
-    </tr>
-    <tr>
-      <td>paul_a</td>
-      <td>Paul Angus</td>
-    </tr>
-    <tr>
-      <td>pdion891</td>
-      <td>Pierre-Luc Dion</td>
-    </tr>
-    <tr>
-      <td>rafael</td>
-      <td>Rafael Weingärtner</td>
-    </tr>
-    <tr>
-      <td>rajani</td>
-      <td>Rajani Karuturi</td>
-    </tr>
-    <tr>
-      <td>remi</td>
-      <td>Remi Bergsma</td>
-    </tr>
-    <tr>
-      <td>resmo</td>
-      <td>Rene Moser</td>
-    </tr>
-    <tr>
-      <td>rohit</td>
-      <td>Rohit Yadav</td>
-    </tr>
-    <tr>
-      <td>sebgoa</td>
-      <td>Sebastien Goasguen</td>
-    </tr>
-    <tr>
-      <td>sweller</td>
-      <td>Simon Weller</td>
-    </tr>
-    <tr>
-      <td>swill</td>
-      <td>Will Stevens</td>
-    </tr>
-    <tr>
-      <td>syed</td>
-      <td>Syed Ahmed</td>
-    </tr>
-    <tr>
-      <td>tsp</td>
-      <td>Prasanna</td>
-    </tr>
-    <tr>
-      <td>weizhou</td>
-      <td>Wei Zhou</td>
-    </tr>
-    <tr>
-      <td>widodh</td>
-      <td>Wido den Hollander</td>
-    </tr>
-    <tr>
-      <td>willchan</td>
-      <td>William Chan</td>
-    </tr>
-  </tbody>
-</table>
+<p class="table-bordered">Active Project Management Committee contains (in alphabetical order of their usernames):</p>
+<p>| Username | Name |
+|———-|——|
+|akarasulu|Alex Karasulu|
+|alena1108|Alena Prokharchyk|
+|animesh|Animesh|
+|boris|Boris Schrijver|
+|chipchilders|Chip Childers|
+|chiradeep|Chiradeep Vittal|
+|dahn|Daan|
+|ekho|Wilder Rodrigues|
+|erikw|Erik Weber|
+|giles|Giles Sirett|
+|gochiba|Go Chiba|
+|hogstrom|Matt Richard Hogstrom|
+|hugo|Hugo Trippaers|
+|ilya|Ilya Musayev|
+|jburwell|John Burwell|
+|jlk|John Kinsella|
+|jzb|Joe Brockmeier|
+|karenv|Karen Vuong|
+|ke4qqq|David Nalley|
+|kluge|Kevin Kluge|
+|milamber|Bruno Demion|
+|mlsorensen|Marcus Sorensen|
+|mnour|Mohammad Nour El-Din|
+|mrhinkle|Mark R. Hinkle|
+|mtutkowski|Mike Tutkowski|
+|nslater|Naomi Slater|
+|nux|Nux|
+|paul_a|Paul Angus|
+|pdion891|Pierre-Luc Dion|
+|rafael|Rafael Weingärtner|
+|rajani|Rajani Karuturi|
+|remi|Remi Bergsma|
+|resmo|Rene Moser|
+|rohit|Rohit Yadav|
+|sebgoa|Sebastien Goasguen|
+|sweller|Simon Weller|
+|swill|Will Stevens|
+|syed|Syed Ahmed|
+|tsp|Prasanna|
+|weizhou|Wei Zhou|
+|widodh|Wido den Hollander|
+|willchan|William Chan|</p>
 
 <h2 id="emeritus-pmc-members">Emeritus PMC Members</h2>
-
 <p>PMC members who are no longer active include:</p>
 
 <ul>
@@ -332,489 +204,130 @@
 
 <h2 id="committers">Committers</h2>
 
-<p>Active list of committers (in alphabetical order of their usernames):</p>
+<p>Active list of committers (in alphabetical order of their usernames)</p>
 
-<table class="table-bordered">
-  <thead>
-    <tr>
-      <th>Username</th>
-      <th>Name</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>ahmad</td>
-      <td>Ahmad Emneina</td>
-    </tr>
-    <tr>
-      <td>akarasulu</td>
-      <td>Alex Karasulu</td>
-    </tr>
-    <tr>
-      <td>alena1108</td>
-      <td>Alena Prokharchyk</td>
-    </tr>
-    <tr>
-      <td>amoghvk</td>
-      <td>Amogh Vasekar</td>
-    </tr>
-    <tr>
-      <td>andrijapanic</td>
-      <td>Andrija Panic</td>
-    </tr>
-    <tr>
-      <td>animesh</td>
-      <td>Animesh</td>
-    </tr>
-    <tr>
-      <td>anthonyxu</td>
-      <td>Anthony Xu</td>
-    </tr>
-    <tr>
-      <td>aprateek</td>
-      <td>Abhinandan Prateek</td>
-    </tr>
-    <tr>
-      <td>bfederle</td>
-      <td>Brian Federle</td>
-    </tr>
-    <tr>
-      <td>boris</td>
-      <td>Boris Schrijver</td>
-    </tr>
-    <tr>
-      <td>brett</td>
-      <td>Brett Porter</td>
-    </tr>
-    <tr>
-      <td>bstoyanov</td>
-      <td>Boris Stoyanov</td>
-    </tr>
-    <tr>
-      <td>chipchilders</td>
-      <td>Chip Childers</td>
-    </tr>
-    <tr>
-      <td>chiradeep</td>
-      <td>Chiradeep Vittal</td>
-    </tr>
-    <tr>
-      <td>claytonweise</td>
-      <td>Clayton Weise</td>
-    </tr>
-    <tr>
-      <td>csuich2</td>
-      <td>Chris Suich</td>
-    </tr>
-    <tr>
-      <td>dahn</td>
-      <td>Daan</td>
-    </tr>
-    <tr>
-      <td>darren</td>
-      <td>Darren Shepherd</td>
-    </tr>
-    <tr>
-      <td>dcahill</td>
-      <td>Dave Cahill</td>
-    </tr>
-    <tr>
-      <td>demetriust</td>
-      <td>Demetrius Tsitrelis</td>
-    </tr>
-    <tr>
-      <td>devdeep</td>
-      <td>Devdeep Singh</td>
-    </tr>
-    <tr>
-      <td>dkonrad</td>
-      <td>Dennis Konrad</td>
-    </tr>
-    <tr>
-      <td>dsonstebo</td>
-      <td>Dag Sonstebo</td>
-    </tr>
-    <tr>
-      <td>ekho</td>
-      <td>Wilder Rodrigues</td>
-    </tr>
-    <tr>
-      <td>erikw</td>
-      <td>Erik Weber</td>
-    </tr>
-    <tr>
-      <td>fmaximus</td>
-      <td>Frank Maximus</td>
-    </tr>
-    <tr>
-      <td>frankzhang</td>
-      <td>Xin Zhang</td>
-    </tr>
-    <tr>
-      <td>gabriel</td>
-      <td>Gabriel Beims Bräscher</td>
-    </tr>
-    <tr>
-      <td>gaurav</td>
-      <td>Gaurav Nandkumar Aradhye</td>
-    </tr>
-    <tr>
-      <td>gavinlee</td>
-      <td>Gavin Lee</td>
-    </tr>
-    <tr>
-      <td>giles</td>
-      <td>Giles Sirett</td>
-    </tr>
-    <tr>
-      <td>girish</td>
-      <td>Girish Prabhakar Shilamkar</td>
-    </tr>
-    <tr>
-      <td>gochiba</td>
-      <td>Go Chiba</td>
-    </tr>
-    <tr>
-      <td>haeena</td>
-      <td>Toshiaki Hatano</td>
-    </tr>
-    <tr>
-      <td>harikrishna</td>
-      <td>Harikrishna Patnala</td>
-    </tr>
-    <tr>
-      <td>higster</td>
-      <td>Geoff Higginbottom</td>
-    </tr>
-    <tr>
-      <td>hogstrom</td>
-      <td>Matt Richard Hogstrom</td>
-    </tr>
-    <tr>
-      <td>hugo</td>
-      <td>Hugo Trippaers</td>
-    </tr>
-    <tr>
-      <td>ilya</td>
-      <td>Ilya Musayev</td>
-    </tr>
-    <tr>
-      <td>isaacchiang</td>
-      <td>Isaac Chiang</td>
-    </tr>
-    <tr>
-      <td>jayapal</td>
-      <td>Jayapal</td>
-    </tr>
-    <tr>
-      <td>jbausewein</td>
-      <td>Jason Bausewein</td>
-    </tr>
-    <tr>
-      <td>jburwell</td>
-      <td>John Burwell</td>
-    </tr>
-    <tr>
-      <td>jessicawang</td>
-      <td>Jessica Wang</td>
-    </tr>
-    <tr>
-      <td>jim</td>
-      <td>Jim Jagielski</td>
-    </tr>
-    <tr>
-      <td>jlk</td>
-      <td>John Kinsella</td>
-    </tr>
-    <tr>
-      <td>jtomechak</td>
-      <td>Jessica Tomechak</td>
-    </tr>
-    <tr>
-      <td>jzb</td>
-      <td>Joe Brockmeier</td>
-    </tr>
-    <tr>
-      <td>karenv</td>
-      <td>Karen Vuong</td>
-    </tr>
-    <tr>
-      <td>kawai</td>
-      <td>Hiroaki Kawai</td>
-    </tr>
-    <tr>
-      <td>kdamage</td>
-      <td>Kelcey Damage</td>
-    </tr>
-    <tr>
-      <td>ke4qqq</td>
-      <td>David Nalley</td>
-    </tr>
-    <tr>
-      <td>kelveny</td>
-      <td>Kelven Yang</td>
-    </tr>
-    <tr>
-      <td>kirk</td>
-      <td>Kirk Kosinski</td>
-    </tr>
-    <tr>
-      <td>kishan</td>
-      <td>Kishan</td>
-    </tr>
-    <tr>
-      <td>kluge</td>
-      <td>Kevin Kluge</td>
-    </tr>
-    <tr>
-      <td>kocka</td>
-      <td>Laszlo Hornyak</td>
-    </tr>
-    <tr>
-      <td>koushik</td>
-      <td>Koushik Das</td>
-    </tr>
-    <tr>
-      <td>likithas</td>
-      <td>Likitha Shetty</td>
-    </tr>
-    <tr>
-      <td>marcaurele</td>
-      <td>Marc-Aurèle Brothier</td>
-    </tr>
-    <tr>
-      <td>mchen</td>
-      <td>Min Chen</td>
-    </tr>
-    <tr>
-      <td>mice</td>
-      <td>Mice Xia</td>
-    </tr>
-    <tr>
-      <td>milamber</td>
-      <td>Bruno Demion</td>
-    </tr>
-    <tr>
-      <td>mlsorensen</td>
-      <td>Marcus Sorensen</td>
-    </tr>
-    <tr>
-      <td>mnour</td>
-      <td>Mohammad Nour El-Din</td>
-    </tr>
-    <tr>
-      <td>mrhinkle</td>
-      <td>Mark R. Hinkle</td>
-    </tr>
-    <tr>
-      <td>msinhore</td>
-      <td>Marco Sinhoreli</td>
-    </tr>
-    <tr>
-      <td>mtutkowski</td>
-      <td>Mike Tutkowski</td>
-    </tr>
-    <tr>
-      <td>muralireddy</td>
-      <td>Murali Mohan Reddy</td>
-    </tr>
-    <tr>
-      <td>nathanejohnson</td>
-      <td>Nathan Johnson</td>
-    </tr>
-    <tr>
-      <td>nitin</td>
-      <td>Nitin</td>
-    </tr>
-    <tr>
-      <td>noa</td>
-      <td>Noa Resare</td>
-    </tr>
-    <tr>
-      <td>nslater</td>
-      <td>Naomi Slater</td>
-    </tr>
-    <tr>
-      <td>nux</td>
-      <td>Nux</td>
-    </tr>
-    <tr>
-      <td>nvazquez</td>
-      <td>Nicolás Vázquez</td>
-    </tr>
-    <tr>
-      <td>olgasmola</td>
-      <td>Olga Smola</td>
-    </tr>
-    <tr>
-      <td>paul_a</td>
-      <td>Paul Angus</td>
-    </tr>
-    <tr>
-      <td>pdion891</td>
-      <td>Pierre-Luc Dion</td>
-    </tr>
-    <tr>
-      <td>pnguyen</td>
-      <td>Phong Nguyen</td>
-    </tr>
-    <tr>
-      <td>prachidamle</td>
-      <td>Prachi Damle</td>
-    </tr>
-    <tr>
-      <td>pranavs</td>
-      <td>Pranav Saxena</td>
-    </tr>
-    <tr>
-      <td>pyr</td>
-      <td>Pierre-Yves Ritschard</td>
-    </tr>
-    <tr>
-      <td>radhika</td>
-      <td>Radhika Nair</td>
-    </tr>
-    <tr>
-      <td>rafael</td>
-      <td>Rafael Weingärtner</td>
-    </tr>
-    <tr>
-      <td>rajani</td>
-      <td>Rajani Karuturi</td>
-    </tr>
-    <tr>
-      <td>rajeshbattala</td>
-      <td>Rajesh Battala</td>
-    </tr>
-    <tr>
-      <td>remi</td>
-      <td>Remi Bergsma</td>
-    </tr>
-    <tr>
-      <td>resmo</td>
-      <td>Rene Moser</td>
-    </tr>
-    <tr>
-      <td>rohit</td>
-      <td>Rohit Yadav</td>
-    </tr>
-    <tr>
-      <td>sailajamada</td>
-      <td>Sailaja Mada</td>
-    </tr>
-    <tr>
-      <td>saksham</td>
-      <td>Saksham Srivastava</td>
-    </tr>
-    <tr>
-      <td>sangeethah</td>
-      <td>Sangeetha Hariharan</td>
-    </tr>
-    <tr>
-      <td>sanjaytripathi</td>
-      <td>Sanjay Tripathi</td>
-    </tr>
-    <tr>
-      <td>sanjeev</td>
-      <td>Sanjeev Neelarapu</td>
-    </tr>
-    <tr>
-      <td>santhoshedukulla</td>
-      <td>Santhosh</td>
-    </tr>
-    <tr>
-      <td>sateesh</td>
-      <td>Sateesh Chodapuneedi</td>
-    </tr>
-    <tr>
-      <td>schhen</td>
-      <td>Sonny Heng Chhen</td>
-    </tr>
-    <tr>
-      <td>sebgoa</td>
-      <td>Sebastien Goasguen</td>
-    </tr>
-    <tr>
-      <td>serg38</td>
-      <td>Sergey Levitskiy</td>
-    </tr>
-    <tr>
-      <td>slriv</td>
-      <td>Sam Robertson</td>
-    </tr>
-    <tr>
-      <td>snuf</td>
-      <td>Funs Kessen</td>
-    </tr>
-    <tr>
-      <td>sowmya</td>
-      <td>Sowmya Krishnan</td>
-    </tr>
-    <tr>
-      <td>sudhap</td>
-      <td>Sudhap</td>
-    </tr>
-    <tr>
-      <td>svogel</td>
-      <td>Sven Vogel</td>
-    </tr>
-    <tr>
-      <td>swamy</td>
-      <td>Venkata Swamy</td>
-    </tr>
-    <tr>
-      <td>sweller</td>
-      <td>Simon Weller</td>
-    </tr>
-    <tr>
-      <td>swill</td>
-      <td>Will Stevens</td>
-    </tr>
-    <tr>
-      <td>syed</td>
-      <td>Syed Ahmed</td>
-    </tr>
-    <tr>
-      <td>talluri</td>
-      <td>Srikanteswararao Talluri</td>
-    </tr>
-    <tr>
-      <td>tsp</td>
-      <td>Prasanna</td>
-    </tr>
-    <tr>
-      <td>tuna</td>
-      <td>Anh Tu Nguyen</td>
-    </tr>
-    <tr>
-      <td>vijayendrabvs</td>
-      <td>Vijayendra Bhamidipati</td>
-    </tr>
-    <tr>
-      <td>weizhou</td>
-      <td>Wei Zhou</td>
-    </tr>
-    <tr>
-      <td>widodh</td>
-      <td>Wido den Hollander</td>
-    </tr>
-    <tr>
-      <td>willchan</td>
-      <td>William Chan</td>
-    </tr>
-    <tr>
-      <td>yasker</td>
-      <td>Sheng Yang</td>
-    </tr>
-    <tr>
-      <td>ynojima</td>
-      <td>Yoshikazu Nojima</td>
-    </tr>
-  </tbody>
-</table>
+<p class="table-bordered">Active list of committers (in alphabetical order of their usernames):</p>
+<p>| Username | Name |
+|———-|——|
+|ahmad|Ahmad Emneina|
+|akarasulu|Alex Karasulu|
+|alena1108|Alena Prokharchyk|
+|amoghvk|Amogh Vasekar|
+|andrijapanic|Andrija Panic|
+|animesh|Animesh|
+|anthonyxu|Anthony Xu|
+|aprateek|Abhinandan Prateek|
+|bfederle|Brian Federle|
+|boris|Boris Schrijver|
+|brett|Brett Porter|
+|bstoyanov|Boris Stoyanov|
+|chipchilders|Chip Childers|
+|chiradeep|Chiradeep Vittal|
+|claytonweise|Clayton Weise|
+|csuich2|Chris Suich|
+|dahn|Daan|
+|darren|Darren Shepherd|
+|dcahill|Dave Cahill|
+|demetriust|Demetrius Tsitrelis|
+|devdeep|Devdeep Singh|
+|dkonrad|Dennis Konrad|
+|dsonstebo|Dag Sonstebo|
+|ekho|Wilder Rodrigues|
+|erikw|Erik Weber|
+|fmaximus|Frank Maximus|
+|frankzhang|Xin Zhang|
+|gabriel|Gabriel Beims Bräscher|
+|gaurav|Gaurav Nandkumar Aradhye|
+|gavinlee|Gavin Lee|
+|giles|Giles Sirett|
+|girish|Girish Prabhakar Shilamkar|
+|gochiba|Go Chiba|
+|haeena|Toshiaki Hatano|
+|harikrishna|Harikrishna Patnala|
+|higster|Geoff Higginbottom|
+|hogstrom|Matt Richard Hogstrom|
+|hugo|Hugo Trippaers|
+|ilya|Ilya Musayev|
+|isaacchiang|Isaac Chiang|
+|jayapal|Jayapal|
+|jbausewein|Jason Bausewein|
+|jburwell|John Burwell|
+|jessicawang|Jessica Wang|
+|jim|Jim Jagielski|
+|jlk|John Kinsella|
+|jtomechak|Jessica Tomechak|
+|jzb|Joe Brockmeier|
+|karenv|Karen Vuong|
+|kawai|Hiroaki Kawai|
+|kdamage|Kelcey Damage|
+|ke4qqq|David Nalley|
+|kelveny|Kelven Yang|
+|kirk|Kirk Kosinski|
+|kishan|Kishan|
+|kluge|Kevin Kluge|
+|kocka|Laszlo Hornyak|
+|koushik|Koushik Das|
+|likithas|Likitha Shetty|
+|marcaurele|Marc-Aurèle Brothier|
+|mchen|Min Chen|
+|mice|Mice Xia|
+|milamber|Bruno Demion|
+|mlsorensen|Marcus Sorensen|
+|mnour|Mohammad Nour El-Din|
+|mrhinkle|Mark R. Hinkle|
+|msinhore|Marco Sinhoreli|
+|mtutkowski|Mike Tutkowski|
+|muralireddy|Murali Mohan Reddy|
+|nathanejohnson|Nathan Johnson|
+|nitin|Nitin|
+|noa|Noa Resare|
+|nslater|Naomi Slater|
+|nux|Nux|
+|nvazquez|Nicolás Vázquez|
+|olgasmola|Olga Smola|
+|paul_a|Paul Angus|
+|pdion891|Pierre-Luc Dion|
+|pnguyen|Phong Nguyen|
+|prachidamle|Prachi Damle|
+|pranavs|Pranav Saxena|
+|pyr|Pierre-Yves Ritschard|
+|radhika|Radhika Nair|
+|rafael|Rafael Weingärtner|
+|rajani|Rajani Karuturi|
+|rajeshbattala|Rajesh Battala|
+|remi|Remi Bergsma|
+|resmo|Rene Moser|
+|rohit|Rohit Yadav|
+|sailajamada|Sailaja Mada|
+|saksham|Saksham Srivastava|
+|sangeethah|Sangeetha Hariharan|
+|sanjaytripathi|Sanjay Tripathi|
+|sanjeev|Sanjeev Neelarapu|
+|santhoshedukulla|Santhosh|
+|sateesh|Sateesh Chodapuneedi|
+|schhen|Sonny Heng Chhen|
+|sebgoa|Sebastien Goasguen|
+|serg38|Sergey Levitskiy|
+|slriv|Sam Robertson|
+|snuf|Funs Kessen|
+|sowmya|Sowmya Krishnan|
+|sudhap|Sudhap|
+|svogel|Sven Vogel|
+|swamy|Venkata Swamy|
+|sweller|Simon Weller|
+|swill|Will Stevens|
+|syed|Syed Ahmed|
+|talluri|Srikanteswararao Talluri|
+|tsp|Prasanna|
+|tuna|Anh Tu Nguyen|
+|vijayendrabvs|Vijayendra Bhamidipati|
+|weizhou|Wei Zhou|
+|widodh|Wido den Hollander|
+|willchan|William Chan|
+|yasker|Sheng Yang|
+|ynojima|Yoshikazu Nojima|</p>
 
 <h2 id="emeritus-committers">Emeritus Committers</h2>
-
 <p>Committers who are no longer active include:</p>
 
 
