diff --git a/404.html b/404.html
new file mode 100644
index 0000000..3998586
--- /dev/null
+++ b/404.html
@@ -0,0 +1,517 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>404 Page Not Found | The Eclipse Foundation</title>
+<meta property="og:title" content="404 Page Not Found | The Eclipse Foundation" />
+<meta name="twitter:title" content="404 Page Not Found | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/404.html" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/404.html" />
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/404.html">404 Page Not Found</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>404 Page Not Found</h1>
+    
+  
+<main>
+  <div class="container">
+    <div class="row">
+      <div class="col-md-18 padding-bottom-30">
+        <h1>Page not found</h1>
+        <p>We&#39;re sorry, the page you requested cannot be found. Below are some links that may be useful.</p>
+        <ul>
+          <li><a href="//eclipse.org">Eclipse home</a></li>
+          <li><a href='//eclipse.org/projects/searchpage.php'>Search</a> our site</li>
+          <li>Website <a href='//eclipse.org/legal/privacy.php'>privacy policy</a> and <a href='//eclipse.org/legal/termsofuse.php'>terms of use</a></li>
+          <li><a href="//eclipse.org/legal">Legal documents</a></li>
+          <li><a href="//eclipse.org/artwork/">Logos and artwork</a></li>
+          <li><a href="//wiki.eclipse.org/index.php/Webmaster_FAQ">Webmaster FAQ</a></li>
+          <li><a href="mailto:webmaster@eclipse.org">Email the webmaster</a></li>
+        </ul>
+        <br><br>
+      </div>
+      <div class="col-md-18">
+        <div class="sideitem">
+          <h6>Useful links</h6>
+          <ul>
+            <li><a href="//archive.eclipse.org">Eclipse project archives</a></li>
+            <li><a href="//download.eclipse.org/eclipse/downloads">Eclipse project downloads</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+</main>
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+  
+  
+
+  
+    
+    
+      
+        <aside id="main-sidebar" class="subpage-sidebar">
+        <ul id="leftnav" class="ul-left-nav fa-ul hidden-print">
+        <li class="separator">
+          <a class="separator" href="/dash/home">Eclipse Dash</a>
+        </li>
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://projects.eclipse.org/projects/technology.dash" target="_self">About This Project</a>
+            </li>
+          
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://wiki.eclipse.org/Dash_Project" target="_self">Wiki</a>
+            </li>
+          
+        
+        </ul>
+        </aside>
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/_projectCommon.php b/_projectCommon.php
deleted file mode 100644
index 5847a22..0000000
--- a/_projectCommon.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Copyright (c) 2018 Eclipse Foundation and others.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
-
-// Define your project-wide Nav bars here.
-$Nav = new Nav();
-$Nav->addCustomNav("About This Project", "https://projects.eclipse.org/projects/technology.dash", "", 1);
-$Nav->addCustomNav("Wiki", "http://wiki.eclipse.org/Dash_Project", "", 1);
-$Theme->setNav($Nav);
\ No newline at end of file
diff --git a/categories/index.html b/categories/index.html
new file mode 100644
index 0000000..b9cc127
--- /dev/null
+++ b/categories/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>Categories | The Eclipse Foundation</title>
+<meta property="og:title" content="Categories | The Eclipse Foundation" />
+<meta name="twitter:title" content="Categories | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/categories/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/categories/" />
+
+<link rel="alternate" href="/dash/categories/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/categories/">Categories</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Categories</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/categories/index.xml b/categories/index.xml
new file mode 100644
index 0000000..0d598ef
--- /dev/null
+++ b/categories/index.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Categories on The Community for Open Innovation and Collaboration</title>
+    <link>https://www.eclipse.org/dash/categories/</link>
+    <description>Recent content in Categories on The Community for Open Innovation and Collaboration</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <managingEditor>webdev@eclipse-foundation.org (Christopher Guindon)</managingEditor>
+    <webMaster>webdev@eclipse-foundation.org (Christopher Guindon)</webMaster><atom:link href="https://www.eclipse.org/dash/categories/index.xml" rel="self" type="application/rss+xml" />
+  </channel>
+</rss>
diff --git a/categories/page/1/index.html b/categories/page/1/index.html
new file mode 100644
index 0000000..27cab78
--- /dev/null
+++ b/categories/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/categories/</title><link rel="canonical" href="https://www.eclipse.org/dash/categories/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/categories/" /></head></html>
\ No newline at end of file
diff --git a/content/en_index.php b/content/en_index.php
deleted file mode 100644
index f0176c1..0000000
--- a/content/en_index.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Copyright (c) 2018 Eclipse Foundation and others.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-?>
-<div id="maincontent">
-  <div id="midcolumn">
-    <h2>What is the Eclipse Dash Project?</h2>
-    <p>Project Dash is a place where the community itself can collaborate
-      on tools for community awareness and collaboration in support of our
-      ultimate objective of committer quality and cooperation. This is very
-      much a research project as we are not entirely sure what these tools
-      will be.
-    </p>
-    <h2>Components</h2>
-    <h3>Eclipse Project Handbook</h3>
-    <p>This document provides you with the information that you need to
-      create a new Eclipse open source project or become a committer on an
-      existing one.
-    </p>
-    <ul>
-      <li>View <a href="/projects/handbook">the handbook</a>;</li>
-      <li>Clone <a href="https://git.eclipse.org/r/#/admin/projects/dash/org.eclipse.dash.handbook">the repository</a> (via Gerrit); or</li>
-      <li>Report <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Dash&component=Handbook">an issue</a>.</li>
-    </ul>
-    <h3>Gently Dependency Scanner</h3>
-    <p>
-      <strong>Coming soon!</strong>
-    </p>
-    <p>This is a collection of tools for rooting through content to
-      determine dependencies, legal documentation conformance, etc.
-    </p>
-    <h2>The Rest of The Story</h2>
-    <p>
-      See our <a href="http://wiki.eclipse.org/Dash_Project">wiki pages</a>
-      for discussions, directions, plans, accomplishments, and all the
-      rest.
-    </p>
-  </div>
-</div>
-<div id="rightcolumn">
-  <div class="sideitem">
-    <h6>Incubation</h6>
-    <div style="text-align: center">
-      <a href="/projects/what-is-incubation.php"><img
-        src="/images/egg-incubation.png" alt="Incubation" /></a>
-    </div>
-  </div>
-</div>
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..db893f2
--- /dev/null
+++ b/index.html
@@ -0,0 +1,510 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>The Eclipse Dash Project | The Eclipse Foundation</title>
+<meta property="og:title" content="The Eclipse Dash Project | The Eclipse Foundation" />
+<meta name="twitter:title" content="The Eclipse Dash Project | The Eclipse Foundation" />
+
+<meta name="description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
+Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
+<meta property="og:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
+Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
+<meta name="twitter:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate …">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/" />
+
+<link rel="alternate" href="/dash/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+  
+  <h2 id="what-is-the-eclipse-dash-project">What is the Eclipse Dash Project?</h2>
+<div id="rightcolumn" class="float-right">
+  <div class="sideitem">
+    <h6>Incubation</h6>
+    <div style="text-align: center">
+      <a href="//eclipse.org/projects/what-is-incubation.php"><img
+        src="//eclipse.org/images/egg-incubation.png" alt="Incubation" class="padding-left-30 padding-right-"/></a>
+    </div>
+  </div>
+</div>
+<p>Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.</p>
+<h2 id="components">Components</h2>
+<h3 id="eclipse-project-handbook">Eclipse Project Handbook</h3>
+<p>This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.</p>
+<ul>
+<li>View <a href="/projects/handbook">the handbook</a>;</li>
+<li>Clone <a href="https://git.eclipse.org/r/#/admin/projects/dash/org.eclipse.dash.handbook">the repository</a> (via Gerrit); or</li>
+<li>Report <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Dash&amp;component=Handbook">an issue</a>.</li>
+</ul>
+<h3 id="gently-dependency-scanner">Gently Dependency Scanner</h3>
+<p><strong>Coming soon!</strong></p>
+<p>This is a collection of tools for rooting through content to determine dependencies, legal documentation conformance, etc.</p>
+<h2 id="the-rest-of-the-story">The Rest of The Story</h2>
+<p>See our <a href="http://wiki.eclipse.org/Dash_Project">wiki pages</a> for discussions, directions, plans, accomplishments, and all the rest.</p>
+ 
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+  
+  
+
+  
+    
+    
+      
+        <aside id="main-sidebar" class="subpage-sidebar">
+        <ul id="leftnav" class="ul-left-nav fa-ul hidden-print">
+        <li class="separator">
+          <a class="separator" href="/dash/home">Eclipse Dash</a>
+        </li>
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://projects.eclipse.org/projects/technology.dash" target="_self">About This Project</a>
+            </li>
+          
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://wiki.eclipse.org/Dash_Project" target="_self">Wiki</a>
+            </li>
+          
+        
+        </ul>
+        </aside>
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/index.php b/index.php
deleted file mode 100644
index 1755312..0000000
--- a/index.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Copyright (c) 2005, 2017, 2018 Eclipse Foundation and others.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * Contributors:
- *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-
-require_once ($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
-$App = new App();
-$Theme = $App->getThemeClass();
-include($App->getProjectCommon());
-
-// Begin: page-specific settings.  Change these.
-$pageTitle = "The Eclipse Dash Project";
-$Theme->setPageTitle($pageTitle);
-$Theme->setPageKeywords("Eclipse Dash Project, Eclipse Dash, tools for community");
-
-// Place your html content in a file called content/en_pagename.php
-ob_start();
-include("content/en_" . $App->getScriptName());
-$html = ob_get_clean();
-
-$Theme->setHtml($html);
-$Theme->generatePage();
\ No newline at end of file
diff --git a/index.xml b/index.xml
new file mode 100644
index 0000000..505bb70
--- /dev/null
+++ b/index.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>The Eclipse Dash Project on The Community for Open Innovation and Collaboration</title>
+    <link>https://www.eclipse.org/dash/</link>
+    <description>Recent content in The Eclipse Dash Project on The Community for Open Innovation and Collaboration</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <managingEditor>webdev@eclipse-foundation.org (Christopher Guindon)</managingEditor>
+    <webMaster>webdev@eclipse-foundation.org (Christopher Guindon)</webMaster>
+    <lastBuildDate>Sun, 01 Mar 2020 16:09:45 -0400</lastBuildDate><atom:link href="https://www.eclipse.org/dash/index.xml" rel="self" type="application/rss+xml" />
+  </channel>
+</rss>
diff --git a/js/eclipsefdn.adopters.js b/js/eclipsefdn.adopters.js
new file mode 100644
index 0000000..676dc79
--- /dev/null
+++ b/js/eclipsefdn.adopters.js
@@ -0,0 +1 @@
+function _createForOfIteratorHelper(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0,n=function(){};return{s:n,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var EclipseFdnAdopters=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"precompiledRegex",/<([^>]*?)>;(\s?[\w-]*?="(?:\\"|[^"])*";){0,}\s?rel="next"/),_defineProperty(this,"default_options",{project_id:"",selector:".eclipsefdn-adopters",ul_classes:"",logo_white:!1,working_group:"",src_root:"https://api.eclipse.org/adopters",src_projects_prefix:"/projects"}),_defineProperty(this,"getList",(function(e){var t=this,r=this.getMergedOptions(e);this.fireCall(r,(function(e){t.createProjectList(e,r,document.querySelectorAll(r.selector)),t.scrollToAnchor()}))})),_defineProperty(this,"getWGList",(function(e){var t=this,r=this.getMergedOptions(e);this.fireCall(r,(function(e){t.createWGProjectsList(e,r,document.querySelectorAll(r.selector)),t.scrollToAnchor()}))}))}return _createClass(e,[{key:"getMergedOptions",value:function(e){var t=JSON.parse(JSON.stringify(this.default_options));if(void 0!==e&&"object"===_typeof(e))for(var r in this.default_options)void 0===e[r]||"string"!=typeof e[r]&&"boolean"!=typeof e[r]||(t[r]=e[r]);return t}},{key:"fireCall",value:function(e,t){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=this,i=new XMLHttpRequest;i.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var r=JSON.parse(this.responseText);(Array.isArray(o)||o.length)&&(r=o.concat(r));var a=i.getResponseHeader("Link");if(null!==a){var l=a.match(n.precompiledRegex);null!==l?(e.next=l[1],n.fireCall(e,t,r)):t(r)}else t(r)}else 4==this.readyState&&console.log("Error while retrieving adopters data, could not complete operation")},void 0!==e.next?r=e.next:(r=e.src_root+e.src_projects_prefix,void 0!==e.project_id&&""!==e.project_id.trim()&&(r+="/"+e.project_id),void 0!==e.working_group&&""!==e.working_group.trim()&&(r+="?working_group="+e.working_group)),i.open("GET",r,!0),i.send()}},{key:"createWGProjectsList",value:function(e,t,r){var o,n=_createForOfIteratorHelper(e);try{for(n.s();!(o=n.n()).done;){var i=o.value,a=JSON.parse(JSON.stringify(t));a.project_id=i.project_id;var l=document.createElement("h2");l.textContent=i.name,l.setAttribute("id",i.project_id);for(var s=0;s<r.length;s++)r[s].appendChild(l);var c=document.createElement("a");c.setAttribute("class","btn btn-xs btn-secondary margin-left-10 uppercase"),c.setAttribute("href","https://projects.eclipse.org/projects/"+i.project_id),c.textContent=i.project_id,l.appendChild(c),this.createProjectList(e,a,r)}}catch(e){n.e(e)}finally{n.f()}}},{key:"createProjectList",value:function(e,t,r){var o=document.createElement("ul");if(void 0!==e){var n,i=_createForOfIteratorHelper(e);try{for(i.s();!(n=i.n()).done;){var a=n.value;if(t.project_id===a.project_id){var l,s=_createForOfIteratorHelper(a.adopters);try{for(s.s();!(l=s.n()).done;){var c=l.value,p="";void 0!==c.homepage_url&&(p=c.homepage_url);var u="";void 0!==c.name&&(u=c.name);var f="";void 0!==c.logo&&(f=c.logo),!0===t.logo_white&&void 0!==c.logo_white&&(f=c.logo_white);var d=document.createElement("li"),y=document.createElement("a"),h=document.createElement("img");y.setAttribute("href",p),h.setAttribute("alt",u),h.setAttribute("src",t.src_root+"/assets/images/adopters/"+f),h.setAttribute("class","adopters-img"),y.appendChild(h),d.appendChild(y),o.appendChild(d)}}catch(e){s.e(e)}finally{s.f()}}}}catch(e){i.e(e)}finally{i.f()}}for(var _=0;_<r.length;_++)""!==t.ul_classes&&o.setAttribute("class",t.ul_classes),r[_].appendChild(o)}},{key:"scrollToAnchor",value:function(){if(location.hash){var e=location.hash.replace("#","");document.getElementById("".concat(e)).scrollIntoView()}}}]),e}(),eclipseFdnAdopters=new EclipseFdnAdopters;
diff --git a/js/solstice.hugo.js b/js/solstice.hugo.js
new file mode 100644
index 0000000..593306b
--- /dev/null
+++ b/js/solstice.hugo.js
@@ -0,0 +1 @@
+!function(s,a){"undefined"!=typeof tableClasses&&null!=tableClasses&&s(a).ready((function(){s("main table").each((function(a){null==s(this).attr("class")&&s(this).addClass(tableClasses)}))}))}(jQuery,document);
diff --git a/membership_levels/index.html b/membership_levels/index.html
new file mode 100644
index 0000000..ab2f605
--- /dev/null
+++ b/membership_levels/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>Membership_levels | The Eclipse Foundation</title>
+<meta property="og:title" content="Membership_levels | The Eclipse Foundation" />
+<meta name="twitter:title" content="Membership_levels | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/membership_levels/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/membership_levels/" />
+
+<link rel="alternate" href="/dash/membership_levels/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/membership_levels/">Membership_levels</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Membership_levels</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/membership_levels/index.xml b/membership_levels/index.xml
new file mode 100644
index 0000000..93101c7
--- /dev/null
+++ b/membership_levels/index.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Membership_levels on The Community for Open Innovation and Collaboration</title>
+    <link>https://www.eclipse.org/dash/membership_levels/</link>
+    <description>Recent content in Membership_levels on The Community for Open Innovation and Collaboration</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <managingEditor>webdev@eclipse-foundation.org (Christopher Guindon)</managingEditor>
+    <webMaster>webdev@eclipse-foundation.org (Christopher Guindon)</webMaster><atom:link href="https://www.eclipse.org/dash/membership_levels/index.xml" rel="self" type="application/rss+xml" />
+  </channel>
+</rss>
diff --git a/membership_levels/page/1/index.html b/membership_levels/page/1/index.html
new file mode 100644
index 0000000..7894595
--- /dev/null
+++ b/membership_levels/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/membership_levels/</title><link rel="canonical" href="https://www.eclipse.org/dash/membership_levels/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/membership_levels/" /></head></html>
\ No newline at end of file
diff --git a/new-and-noteworthy/compute-n-and-n.php b/new-and-noteworthy/compute-n-and-n.php
index 37a02de..ad3408b 100644
--- a/new-and-noteworthy/compute-n-and-n.php
+++ b/new-and-noteworthy/compute-n-and-n.php
@@ -1,3 +1,4 @@
+
 <style>
 p, table, td, th {  font-family: verdana, arial, helvetica, geneva; font-size: 10pt}
 pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
@@ -17,114 +18,45 @@
 </style>
 <h1>Dash M1 - New and Noteworthy</h1>
 <p>This is our first combined Dash + Portal + IPZilla New &amp; Noteworthy.
-  Here are some of the more noteworthy things available in milestone M1 (April 30, 2008) 
+  Here are some of the more noteworthy things available in milestone M1 (April 30, 2008)
   which is, as always, live on the servers.</p>
 
-<?php
-
-$afterdate = "2008-01-01";
-$url = "https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&component=Commits+Explorer&component=Dashboard&component=IPZilla&component=Portal&component=Process&component=Website&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=noteworthy&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=" . $afterdate . "&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=&ctype=rdf&columnlist=bug_id,short_desc";
-$text = file_get_contents( $url );
-$text = preg_replace( "/bz:/", '', $text );
-$text = preg_replace( "/rdf:/", '', $text );
-$text = preg_replace( "/nc:/", '', $text );
-/* */
-$rdf = simplexml_load_string( $text );
-
-$themes_bugs = array();
-foreach( $rdf->result->bugs->Seq->li as $each ) {
-	$id = $each->bug->id;
-	$x = $each->bug->short_desc;
-	preg_match( "/\[([^\]]+)\](.*)/", $x, $matches );
-	$theme = trim($matches[1]);
-	$title = trim($matches[2]);
-	if( !isset($themes_and_bugs[$theme]) ) {
-		$themes_and_bugs[$theme] = array();
-	}
-	$themes_and_bugs[$theme][] = $id;
-}
-?><table border="0" cellpadding="10" cellspacing="0" width="80%">
-<?php
-foreach( $themes_and_bugs as $theme => $bugs ) {
-?><tr>
+<table border="0" cellpadding="10" cellspacing="0" width="80%">
+<tr>
     <td colspan="2"><hr />
-      <h2 style="bottom-border: thick solid gray"><?= $theme ?></h2>
+      <h2 style="bottom-border: thick solid gray">Manage Committers</h2>
       </td>
   </tr>
-<?php
-	foreach( $bugs as $bugid ) {
-		/*
-		 * Default image is blank.
-		 */
-		$image = '';
-
-		$url = "https://bugs.eclipse.org/bugs/show_bug.cgi?id=" . $bugid . "&ctype=xml";
-		$text = file_get_contents( $url );
-		$xml = simplexml_load_string( $text );
-		/*
-		 * Default title is from bug title
-		 */
-		if( preg_match( "/\[([^\]]+)\](.*)/", $xml->bug->short_desc, $matches ) ) {
-			$title = trim($matches[2]);
-		} else {
-			$title = trim($xml->bug->short_desc);
-		}
-
-		/*
-		 * Default description is bug description
-		 */
-		$description = '';
-		foreach( $xml->bug->long_desc as $value ) {
-			$description = trim($value->thetext);
-			break;
-		}
-
-		/*
-		 * Look for N&N TITLE
-		 */
-		foreach( $xml->bug->long_desc as $value ) {
-			if( preg_match( "/N&N TITLE:(.*)/", $value->thetext, $matches ) ) {
-				$title = trim($matches[1]);
-			}
-		}
-		/*
-		 * Look for N&N TEXT
-		 */
-		foreach( $xml->bug->long_desc as $value ) {
-			if( preg_match( "/N&N TEXT:(.*)/s", $value->thetext, $matches ) ) {
-				$description = trim($matches[1]);
-			}
-		}
-		/*
-		 * Look for N&N IMAGE
-		 */
-		if( $xml->bug->attachment ) {
-			if( $xml->bug->attachment->desc == "N&N IMAGE" ) {
-				$image = "https://bugs.eclipse.org/bugs/attachment.cgi?id=" . $xml->bug->attachment->attachid;
-			}
-		}
-		?>
   <tr>
-    <td width="30%" valign="top" align="left"><b><?= $title ?></b></td>
+    <td width="30%" valign="top" align="left"><b>"Committer Emeritus" status</b></td>
 
-    <td width="70%" valign="top"><?= $description ?>
-    <em>(<a href="http://bugs.eclipse.org/<?= $bugid ?>"><?= $bugid ?></a>)</em>
-    <?php
-    if( $image ) {
-    	?>
-      <p><img border="0" src="<?= $image ?>" /></p>
-      <?php
-    }
-    ?>
-    </td>
+    <td width="70%" valign="top">Former Committers who have made significant contributions to the long term success of Eclipse can now be nominated and listed as <a href="http://www.eclipse.org/projects/committers-emeritus.php">Committers Emeritus</a>.    <em>(<a href="http://bugs.eclipse.org/222350">222350</a>)</em>
+          <p><img border="0" src="https://bugs.eclipse.org/bugs/attachment.cgi?id=98165" /></p>
+          </td>
   </tr>
   <tr>
     <td colspan="2"><p style="bottom-border: thin dotted gray">
     </td>
   </tr>
-<?php
-	}
-}
+<tr>
+    <td colspan="2"><hr />
+      <h2 style="bottom-border: thick solid gray">Improve the Experience</h2>
+      </td>
+  </tr>
+  <tr>
+    <td width="30%" valign="top" align="left"><b>Dash hits the fast lane with a major speed boost</b></td>
 
-?>
-</table>
+    <td width="70%" valign="top">We migrated the commits explorer back end to one of the new servers donated by AMD.  The speed differential is sometimes an order of magnitude over the old server.  The resulting increase in access speed for the web application is phenomenal and adds a much needed boost to the usability of the commits explorer.  Here's how much of an improvement this can be:
+
+SELECT YEAR AS X, PROJECT AS Y, COUNT(*) AS COUNT FROM commits WHERE TOPPROJECT LIKE 'technology' GROUP BY YEAR, PROJECT
+
+old dash server:  1m7.64s
+new AMD server: 6.47s    <em>(<a href="http://bugs.eclipse.org/226714">226714</a>)</em>
+          <p><img border="0" src="https://bugs.eclipse.org/bugs/attachment.cgi?id=98343" /></p>
+          </td>
+  </tr>
+  <tr>
+    <td colspan="2"><p style="bottom-border: thin dotted gray">
+    </td>
+  </tr>
+</table>
\ No newline at end of file
diff --git a/page/1/index.html b/page/1/index.html
new file mode 100644
index 0000000..8e09df1
--- /dev/null
+++ b/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/</title><link rel="canonical" href="https://www.eclipse.org/dash/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/" /></head></html>
\ No newline at end of file
diff --git a/participation_levels/index.html b/participation_levels/index.html
new file mode 100644
index 0000000..9a47947
--- /dev/null
+++ b/participation_levels/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>Participation_levels | The Eclipse Foundation</title>
+<meta property="og:title" content="Participation_levels | The Eclipse Foundation" />
+<meta name="twitter:title" content="Participation_levels | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/participation_levels/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/participation_levels/" />
+
+<link rel="alternate" href="/dash/participation_levels/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/participation_levels/">Participation_levels</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Participation_levels</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/participation_levels/index.xml b/participation_levels/index.xml
new file mode 100644
index 0000000..bfcf428
--- /dev/null
+++ b/participation_levels/index.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Participation_levels on The Community for Open Innovation and Collaboration</title>
+    <link>https://www.eclipse.org/dash/participation_levels/</link>
+    <description>Recent content in Participation_levels on The Community for Open Innovation and Collaboration</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <managingEditor>webdev@eclipse-foundation.org (Christopher Guindon)</managingEditor>
+    <webMaster>webdev@eclipse-foundation.org (Christopher Guindon)</webMaster><atom:link href="https://www.eclipse.org/dash/participation_levels/index.xml" rel="self" type="application/rss+xml" />
+  </channel>
+</rss>
diff --git a/participation_levels/page/1/index.html b/participation_levels/page/1/index.html
new file mode 100644
index 0000000..6f71d47
--- /dev/null
+++ b/participation_levels/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/participation_levels/</title><link rel="canonical" href="https://www.eclipse.org/dash/participation_levels/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/participation_levels/" /></head></html>
\ No newline at end of file
diff --git a/robots.txt b/robots.txt
new file mode 100644
index 0000000..4f9540b
--- /dev/null
+++ b/robots.txt
@@ -0,0 +1 @@
+User-agent: *
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 0000000..790b17c
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,16 @@
+<?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>https://www.eclipse.org/dash/</loc>
+    <lastmod>2020-03-01T16:09:45-04:00</lastmod>
+  </url><url>
+    <loc>https://www.eclipse.org/dash/categories/</loc>
+  </url><url>
+    <loc>https://www.eclipse.org/dash/membership_levels/</loc>
+  </url><url>
+    <loc>https://www.eclipse.org/dash/participation_levels/</loc>
+  </url><url>
+    <loc>https://www.eclipse.org/dash/tags/</loc>
+  </url>
+</urlset>
diff --git a/tags/index.html b/tags/index.html
new file mode 100644
index 0000000..89f6a9c
--- /dev/null
+++ b/tags/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<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>Tags | The Eclipse Foundation</title>
+<meta property="og:title" content="Tags | The Eclipse Foundation" />
+<meta name="twitter:title" content="Tags | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/tags/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/tags/" />
+
+<link rel="alternate" href="/dash/tags/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/tags/">Tags</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Tags</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/tags/index.xml b/tags/index.xml
new file mode 100644
index 0000000..fc0b1c5
--- /dev/null
+++ b/tags/index.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Tags on The Community for Open Innovation and Collaboration</title>
+    <link>https://www.eclipse.org/dash/tags/</link>
+    <description>Recent content in Tags on The Community for Open Innovation and Collaboration</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <managingEditor>webdev@eclipse-foundation.org (Christopher Guindon)</managingEditor>
+    <webMaster>webdev@eclipse-foundation.org (Christopher Guindon)</webMaster><atom:link href="https://www.eclipse.org/dash/tags/index.xml" rel="self" type="application/rss+xml" />
+  </channel>
+</rss>
diff --git a/tags/page/1/index.html b/tags/page/1/index.html
new file mode 100644
index 0000000..83a60db
--- /dev/null
+++ b/tags/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/tags/</title><link rel="canonical" href="https://www.eclipse.org/dash/tags/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/tags/" /></head></html>
\ No newline at end of file
