diff --git a/404.html b/404.html
deleted file mode 100644
index 3998586..0000000
--- a/404.html
+++ /dev/null
@@ -1,517 +0,0 @@
-
-<!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/categories/index.html b/categories/index.html
deleted file mode 100644
index b9cc127..0000000
--- a/categories/index.html
+++ /dev/null
@@ -1,472 +0,0 @@
-
-<!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/page/1/index.html b/categories/page/1/index.html
deleted file mode 100644
index 27cab78..0000000
--- a/categories/page/1/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!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/index.html b/index.html
deleted file mode 100644
index db893f2..0000000
--- a/index.html
+++ /dev/null
@@ -1,510 +0,0 @@
-
-<!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/js/eclipsefdn.adopters.js b/js/eclipsefdn.adopters.js
deleted file mode 100644
index 676dc79..0000000
--- a/js/eclipsefdn.adopters.js
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 593306b..0000000
--- a/js/solstice.hugo.js
+++ /dev/null
@@ -1 +0,0 @@
-!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
deleted file mode 100644
index ab2f605..0000000
--- a/membership_levels/index.html
+++ /dev/null
@@ -1,472 +0,0 @@
-
-<!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/page/1/index.html b/membership_levels/page/1/index.html
deleted file mode 100644
index 7894595..0000000
--- a/membership_levels/page/1/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!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/page/1/index.html b/page/1/index.html
deleted file mode 100644
index 8e09df1..0000000
--- a/page/1/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!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
deleted file mode 100644
index 9a47947..0000000
--- a/participation_levels/index.html
+++ /dev/null
@@ -1,472 +0,0 @@
-
-<!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/page/1/index.html b/participation_levels/page/1/index.html
deleted file mode 100644
index 6f71d47..0000000
--- a/participation_levels/page/1/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!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/tags/index.html b/tags/index.html
deleted file mode 100644
index 89f6a9c..0000000
--- a/tags/index.html
+++ /dev/null
@@ -1,472 +0,0 @@
-
-<!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/page/1/index.html b/tags/page/1/index.html
deleted file mode 100644
index 83a60db..0000000
--- a/tags/page/1/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!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
