diff --git a/404.html b/404.html
new file mode 100644
index 0000000..3998586
--- /dev/null
+++ b/404.html
@@ -0,0 +1,517 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>404 Page Not Found | The Eclipse Foundation</title>
+<meta property="og:title" content="404 Page Not Found | The Eclipse Foundation" />
+<meta name="twitter:title" content="404 Page Not Found | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/404.html" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/404.html" />
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/404.html">404 Page Not Found</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>404 Page Not Found</h1>
+    
+  
+<main>
+  <div class="container">
+    <div class="row">
+      <div class="col-md-18 padding-bottom-30">
+        <h1>Page not found</h1>
+        <p>We&#39;re sorry, the page you requested cannot be found. Below are some links that may be useful.</p>
+        <ul>
+          <li><a href="//eclipse.org">Eclipse home</a></li>
+          <li><a href='//eclipse.org/projects/searchpage.php'>Search</a> our site</li>
+          <li>Website <a href='//eclipse.org/legal/privacy.php'>privacy policy</a> and <a href='//eclipse.org/legal/termsofuse.php'>terms of use</a></li>
+          <li><a href="//eclipse.org/legal">Legal documents</a></li>
+          <li><a href="//eclipse.org/artwork/">Logos and artwork</a></li>
+          <li><a href="//wiki.eclipse.org/index.php/Webmaster_FAQ">Webmaster FAQ</a></li>
+          <li><a href="mailto:webmaster@eclipse.org">Email the webmaster</a></li>
+        </ul>
+        <br><br>
+      </div>
+      <div class="col-md-18">
+        <div class="sideitem">
+          <h6>Useful links</h6>
+          <ul>
+            <li><a href="//archive.eclipse.org">Eclipse project archives</a></li>
+            <li><a href="//download.eclipse.org/eclipse/downloads">Eclipse project downloads</a></li>
+          </ul>
+        </div>
+      </div>
+    </div>
+  </div>
+</main>
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+  
+  
+
+  
+    
+    
+      
+        <aside id="main-sidebar" class="subpage-sidebar">
+        <ul id="leftnav" class="ul-left-nav fa-ul hidden-print">
+        <li class="separator">
+          <a class="separator" href="/dash/home">Eclipse Dash</a>
+        </li>
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://projects.eclipse.org/projects/technology.dash" target="_self">About This Project</a>
+            </li>
+          
+        
+          
+            <li>
+              <i class="fa fa-caret-right fa-fw"></i>
+              <a href="https://wiki.eclipse.org/Dash_Project" target="_self">Wiki</a>
+            </li>
+          
+        
+        </ul>
+        </aside>
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/categories/index.html b/categories/index.html
new file mode 100644
index 0000000..b9cc127
--- /dev/null
+++ b/categories/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>Categories | The Eclipse Foundation</title>
+<meta property="og:title" content="Categories | The Eclipse Foundation" />
+<meta name="twitter:title" content="Categories | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/categories/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/categories/" />
+
+<link rel="alternate" href="/dash/categories/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/categories/">Categories</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Categories</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/categories/page/1/index.html b/categories/page/1/index.html
new file mode 100644
index 0000000..27cab78
--- /dev/null
+++ b/categories/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/categories/</title><link rel="canonical" href="https://www.eclipse.org/dash/categories/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/categories/" /></head></html>
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..97dc12f
--- /dev/null
+++ b/index.html
@@ -0,0 +1,510 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>The Eclipse Dash Project | The Eclipse Foundation</title>
+<meta property="og:title" content="The Eclipse Dash Project | The Eclipse Foundation" />
+<meta name="twitter:title" content="The Eclipse Dash Project | The Eclipse Foundation" />
+
+<meta name="description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
+Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
+<meta property="og:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.
+Components Eclipse Project Handbook This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.">
+<meta name="twitter:description" content="What is the Eclipse Dash Project? Incubation     Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate …">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/" />
+
+<link rel="alternate" href="/dash/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+  
+  <h2 id="what-is-the-eclipse-dash-project">What is the Eclipse Dash Project?</h2>
+<div id="rightcolumn" class="float-right">
+  <div class="sideitem">
+    <h6>Incubation</h6>
+    <div style="text-align: center">
+      <a href="//eclipse.org/projects/what-is-incubation.php"><img
+        src="//eclipse.org/images/egg-incubation.png" alt="Incubation" class="padding-left-30 padding-right-"/></a>
+    </div>
+  </div>
+</div>
+<p>Project Dash is a place where the community itself can collaborate on tools for community awareness and collaboration in support of our ultimate objective of committer quality and cooperation. This is very much a research project as we are not entirely sure what these tools will be.</p>
+<h2 id="components">Components</h2>
+<h3 id="eclipse-project-handbook">Eclipse Project Handbook</h3>
+<p>This document provides you with the information that you need to create a new Eclipse open source project or become a committer on an existing one.</p>
+<ul>
+<li>View <a href="/projects/handbook">the handbook</a>;</li>
+<li>Clone <a href="https://gitlab.eclipse.org/eclipse/dash/org.eclipse.dash.handbook">the repository</a> (via Gitlab); or</li>
+<li>Report <a href="https://gitlab.eclipse.org/eclipse/dash/org.eclipse.dash.handbook/-/issues/new">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
new file mode 100644
index 0000000..676dc79
--- /dev/null
+++ b/js/eclipsefdn.adopters.js
@@ -0,0 +1 @@
+function _createForOfIteratorHelper(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0,n=function(){};return{s:n,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(l)throw i}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var EclipseFdnAdopters=function(){function e(){_classCallCheck(this,e),_defineProperty(this,"precompiledRegex",/<([^>]*?)>;(\s?[\w-]*?="(?:\\"|[^"])*";){0,}\s?rel="next"/),_defineProperty(this,"default_options",{project_id:"",selector:".eclipsefdn-adopters",ul_classes:"",logo_white:!1,working_group:"",src_root:"https://api.eclipse.org/adopters",src_projects_prefix:"/projects"}),_defineProperty(this,"getList",(function(e){var t=this,r=this.getMergedOptions(e);this.fireCall(r,(function(e){t.createProjectList(e,r,document.querySelectorAll(r.selector)),t.scrollToAnchor()}))})),_defineProperty(this,"getWGList",(function(e){var t=this,r=this.getMergedOptions(e);this.fireCall(r,(function(e){t.createWGProjectsList(e,r,document.querySelectorAll(r.selector)),t.scrollToAnchor()}))}))}return _createClass(e,[{key:"getMergedOptions",value:function(e){var t=JSON.parse(JSON.stringify(this.default_options));if(void 0!==e&&"object"===_typeof(e))for(var r in this.default_options)void 0===e[r]||"string"!=typeof e[r]&&"boolean"!=typeof e[r]||(t[r]=e[r]);return t}},{key:"fireCall",value:function(e,t){var r,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=this,i=new XMLHttpRequest;i.onreadystatechange=function(){if(4==this.readyState&&200==this.status){var r=JSON.parse(this.responseText);(Array.isArray(o)||o.length)&&(r=o.concat(r));var a=i.getResponseHeader("Link");if(null!==a){var l=a.match(n.precompiledRegex);null!==l?(e.next=l[1],n.fireCall(e,t,r)):t(r)}else t(r)}else 4==this.readyState&&console.log("Error while retrieving adopters data, could not complete operation")},void 0!==e.next?r=e.next:(r=e.src_root+e.src_projects_prefix,void 0!==e.project_id&&""!==e.project_id.trim()&&(r+="/"+e.project_id),void 0!==e.working_group&&""!==e.working_group.trim()&&(r+="?working_group="+e.working_group)),i.open("GET",r,!0),i.send()}},{key:"createWGProjectsList",value:function(e,t,r){var o,n=_createForOfIteratorHelper(e);try{for(n.s();!(o=n.n()).done;){var i=o.value,a=JSON.parse(JSON.stringify(t));a.project_id=i.project_id;var l=document.createElement("h2");l.textContent=i.name,l.setAttribute("id",i.project_id);for(var s=0;s<r.length;s++)r[s].appendChild(l);var c=document.createElement("a");c.setAttribute("class","btn btn-xs btn-secondary margin-left-10 uppercase"),c.setAttribute("href","https://projects.eclipse.org/projects/"+i.project_id),c.textContent=i.project_id,l.appendChild(c),this.createProjectList(e,a,r)}}catch(e){n.e(e)}finally{n.f()}}},{key:"createProjectList",value:function(e,t,r){var o=document.createElement("ul");if(void 0!==e){var n,i=_createForOfIteratorHelper(e);try{for(i.s();!(n=i.n()).done;){var a=n.value;if(t.project_id===a.project_id){var l,s=_createForOfIteratorHelper(a.adopters);try{for(s.s();!(l=s.n()).done;){var c=l.value,p="";void 0!==c.homepage_url&&(p=c.homepage_url);var u="";void 0!==c.name&&(u=c.name);var f="";void 0!==c.logo&&(f=c.logo),!0===t.logo_white&&void 0!==c.logo_white&&(f=c.logo_white);var d=document.createElement("li"),y=document.createElement("a"),h=document.createElement("img");y.setAttribute("href",p),h.setAttribute("alt",u),h.setAttribute("src",t.src_root+"/assets/images/adopters/"+f),h.setAttribute("class","adopters-img"),y.appendChild(h),d.appendChild(y),o.appendChild(d)}}catch(e){s.e(e)}finally{s.f()}}}}catch(e){i.e(e)}finally{i.f()}}for(var _=0;_<r.length;_++)""!==t.ul_classes&&o.setAttribute("class",t.ul_classes),r[_].appendChild(o)}},{key:"scrollToAnchor",value:function(){if(location.hash){var e=location.hash.replace("#","");document.getElementById("".concat(e)).scrollIntoView()}}}]),e}(),eclipseFdnAdopters=new EclipseFdnAdopters;
diff --git a/js/solstice.hugo.js b/js/solstice.hugo.js
new file mode 100644
index 0000000..593306b
--- /dev/null
+++ b/js/solstice.hugo.js
@@ -0,0 +1 @@
+!function(s,a){"undefined"!=typeof tableClasses&&null!=tableClasses&&s(a).ready((function(){s("main table").each((function(a){null==s(this).attr("class")&&s(this).addClass(tableClasses)}))}))}(jQuery,document);
diff --git a/membership_levels/index.html b/membership_levels/index.html
new file mode 100644
index 0000000..ab2f605
--- /dev/null
+++ b/membership_levels/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>Membership_levels | The Eclipse Foundation</title>
+<meta property="og:title" content="Membership_levels | The Eclipse Foundation" />
+<meta name="twitter:title" content="Membership_levels | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/membership_levels/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/membership_levels/" />
+
+<link rel="alternate" href="/dash/membership_levels/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/membership_levels/">Membership_levels</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Membership_levels</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/membership_levels/page/1/index.html b/membership_levels/page/1/index.html
new file mode 100644
index 0000000..7894595
--- /dev/null
+++ b/membership_levels/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/membership_levels/</title><link rel="canonical" href="https://www.eclipse.org/dash/membership_levels/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/membership_levels/" /></head></html>
\ No newline at end of file
diff --git a/page/1/index.html b/page/1/index.html
new file mode 100644
index 0000000..8e09df1
--- /dev/null
+++ b/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/</title><link rel="canonical" href="https://www.eclipse.org/dash/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/" /></head></html>
\ No newline at end of file
diff --git a/participation_levels/index.html b/participation_levels/index.html
new file mode 100644
index 0000000..9a47947
--- /dev/null
+++ b/participation_levels/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>Participation_levels | The Eclipse Foundation</title>
+<meta property="og:title" content="Participation_levels | The Eclipse Foundation" />
+<meta name="twitter:title" content="Participation_levels | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/participation_levels/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/participation_levels/" />
+
+<link rel="alternate" href="/dash/participation_levels/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/participation_levels/">Participation_levels</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Participation_levels</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/participation_levels/page/1/index.html b/participation_levels/page/1/index.html
new file mode 100644
index 0000000..6f71d47
--- /dev/null
+++ b/participation_levels/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/participation_levels/</title><link rel="canonical" href="https://www.eclipse.org/dash/participation_levels/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/participation_levels/" /></head></html>
\ No newline at end of file
diff --git a/tags/index.html b/tags/index.html
new file mode 100644
index 0000000..89f6a9c
--- /dev/null
+++ b/tags/index.html
@@ -0,0 +1,472 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  
+<meta charset="utf-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<title>Tags | The Eclipse Foundation</title>
+<meta property="og:title" content="Tags | The Eclipse Foundation" />
+<meta name="twitter:title" content="Tags | The Eclipse Foundation" />
+
+<meta name="description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta property="og:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="twitter:description" content="The Eclipse Foundation provides our global community of individuals and organizations with a mature, scalable, and business-friendly environment for open source software collaboration and innovation.">
+<meta name="author" content="Christopher Guindon"/>
+<link href='https://www.eclipse.org/favicon.ico' rel='icon' type='image/x-icon'/>
+<meta name="twitter:card" content="summary" />
+<meta name="twitter:site" content="@ECDTools" />
+<meta name="twitter:creator" content="@ECDTools" />
+<meta property="og:url" content="https://www.eclipse.org/dash/tags/" />
+<meta property="og:type" content="website" />
+<meta property="og:site_name" content="The Community for Open Innovation and Collaboration" />
+<meta name="keywords" content="eclipse, project, plug-ins, plugins, java, ide, swt, refactoring, free java ide, tools, platform, open source, development environment, development, ide">
+
+
+<meta name="generator" content="Hugo 0.81.0" />
+<link rel="canonical" href="https://www.eclipse.org/dash/tags/" />
+
+<link rel="alternate" href="/dash/tags/index.xml" type="application/rss+xml" title="">
+
+
+<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
+  
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
+  
+<script>
+	
+		var tableClasses = "table";
+	
+</script>
+  
+<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>
+
+  
+</head>
+<body>
+  
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
+height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<a class="sr-only" href="#content">Skip to main content</a>
+<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
+  
+
+<div class="clearfix toolbar-container-wrapper">
+  <div class="container">
+    <div class="text-right toolbar-row row hidden-print">
+      <div class="col-md-24 row-toolbar-col">
+        <ul class="list-inline">
+          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
+          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
+          
+        </ul>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="navbar-wrapper">
+  <div class="container">
+    <div class="row" id="header-row">
+      <div class="col-sm-5 col-md-4" id="header-left">
+        <div class="wrapper-logo-default">
+
+            
+
+            
+            
+            
+
+            
+        
+            <a title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+            </a>
+            
+
+        </div>
+      </div>
+      
+      
+        
+      
+      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
+        
+        
+        
+        
+        
+        
+        
+        
+          <div class="float-right hidden-xs" id="btn-call-for-action">
+            <div id="btn-call-for-action"><a href="//eclipse.org/donate/" class="btn btn-huge btn-info"><i class="fa fa-star"></i> Donate</a></div>
+          </div>
+        
+        <div class="navbar float-sm-right yamm" id="main-menu">
+          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
+            <ul class="nav navbar-nav">
+              
+
+
+
+<li>
+  <a class="" href="/dash/projects">
+  
+  Projects
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/org/workinggroups">
+  
+  Working Groups
+  </a>
+  
+</li>
+
+
+<li>
+  <a class="" href="/dash/membership">
+  
+  Members
+  </a>
+  
+</li>
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Community</strong></p>
+            </li>
+            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
+            <li><a href="http://events.eclipse.org">Events</a></li>
+            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
+            <li><a href="https://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
+            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
+            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Participate</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+            <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
+            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
+          </ul>
+          <ul class="col-sm-8 list-unstyled">
+            <li>
+              <p><strong>Eclipse IDE</strong></p>
+            </li>
+            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
+            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
+            <li><a href="https://help.eclipse.org">Documentation</a></li>
+            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
+            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</a></li>
+          </ul>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+
+
+
+<li class="dropdown eclipse-more hidden-xs">
+  <a data-toggle="dropdown" class="dropdown-toggle" role="button"><i class="fa fa-search"></i> <b class="caret"></b></a>
+  <ul class="dropdown-menu">
+    <li>
+      
+      <div class="yamm-content">
+        <div class="row">
+          <div class="col-sm-24">
+            <p><strong>Search</strong></p>
+            <div class="row">
+              <div class="col-md-24">
+                <div id="custom-search-form" class="reset-box-sizing">
+                  <script>
+                    (function() {
+                      var cx = '011805775785170369411:p3ec0igo0qq';
+                      var gcse = document.createElement('script');
+                      gcse.type = 'text/javascript';
+                      gcse.async = true;
+                      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
+                      '//cse.google.com/cse.js?cx=' + cx;
+                      var s = document.getElementsByTagName('script')[0];
+                      s.parentNode.insertBefore(gcse, s);
+                    })();
+                  </script>
+                  <gcse:searchbox-only gname="main" resultsUrl="https://www.eclipse.org/home/search.php"></gcse:searchbox-only>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </li>
+  </ul>
+</li>
+
+            </ul>
+          </div>
+          
+<div class="navbar-header">
+  
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-main-menu">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+  
+  <div class="wrapper-logo-mobile">
+      
+      
+      
+
+        
+
+      <a class="navbar-brand visible-xs" title="The Community for Open Innovation and Collaboration" href="https://www.eclipse.org/dash/">
+        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" alt="The Community for Open Innovation and Collaboration" />
+      </a>
+    
+  </div>
+</div>
+
+        </div>
+      </div>
+    </div>
+  </div>
+</div>
+  
+
+
+</header>
+
+  
+<section class="default-breadcrumbs hidden-print" id="breadcrumb">
+  <div class="container">
+    <h3 class="sr-only">Breadcrumb</h3>
+    <div class="row">
+      <div class="col-sm-24">
+        <ol class="breadcrumb">
+          
+          
+          
+          
+          <li>
+            <a href="https://www.eclipse.org/dash/">The Eclipse Dash Project</a>
+          </li>
+        
+          
+          <li class="active">
+            <a href="https://www.eclipse.org/dash/tags/">Tags</a>
+          </li>
+        
+        </ol>
+        
+      </div>
+    </div>
+  </div>
+</section>
+
+  
+  
+
+
+
+
+
+
+ 
+ 
+<main>
+  <div class="container">
+    
+      <div class="row">
+        <div class="col-md-18 padding-bottom-30">
+    
+
+    
+      <h1>Tags</h1>
+    
+  
+   
+  
+  
+
+  
+
+     
+      
+      </div>
+        <div class="col-md-6  padding-bottom-30">
+          
+            
+
+
+  
+  
+
+  
+    
+  
+  
+  
+
+  
+    
+    
+      
+  
+
+          
+        </div>
+      </div>
+    
+  </div>
+</main>
+  
+  
+  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
+    <div class="container">
+      <div class="row">
+        <div class="col-sm-24 featured-container">
+        </div>
+      </div>
+    </div>
+  </div>
+
+  
+<p id="back-to-top">
+  <a class="visible-xs" href="#top">Back to the top</a>
+</p>
+<footer id="solstice-footer" class="">
+  <div class="container">
+    <div class="row">
+      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
+        <h2 class="section-title">Eclipse Foundation</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/org/">About Us</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
+          <li><a href="https://www.eclipse.org/donate">Donate</a></li>
+          <li><a href="https://www.eclipse.org/membership">Members</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
+          <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
+          <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
+          <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-legal">
+        <h2 class="section-title">Legal</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+          <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+          <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+          <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
+          <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-useful-links">
+        <h2 class="section-title">Useful Links</h2>
+        <ul class="nav">
+          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
+          <li><a href="//help.eclipse.org/">Documentation</a></li>
+          <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
+          <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
+          <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
+          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
+        </ul>
+      </section>
+      <section class="col-sm-6 hidden-print" id="footer-other">
+        <h2 class="section-title">Other</h2>
+        <ul class="nav">
+          <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
+          <li><a href="https://www.eclipse.org/projects">Projects</a></li>
+          <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
+          <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
+          <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
+          <li><a href="https://status.eclipse.org">Service Status</a></li>
+        </ul>
+      </section>
+      <div class="col-sm-24 margin-top-20">
+        <div class="row">
+          <div id="copyright" class="col-md-16">
+            <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
+          </div>
+          
+<div class="col-md-8 social-media">
+  <ul class="list-inline">
+    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
+        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
+    </a></li>
+    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
+        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
+    </a></li>
+  </ul>
+</div>
+        </div>
+      </div>
+      <a href="#" class="scrollup">Back to the top</a>
+    </div>
+  </div>
+</footer>
+
+<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>
+
+
+    <script src="https://www.eclipse.org/js/solstice.hugo.js"></script>
+
+
+
+
+
+<script>
+(function($, document) {
+  
+  
+  
+    $("#featured-story").eclipseFdnApi({
+      type: "featuredStory"
+    });
+  
+  
+    $("#featured-footer").eclipseFdnApi({
+      type: "featuredFooter"
+    });
+  
+})(jQuery, document);
+</script>
+
+  
+</body>
+</html>
+
diff --git a/tags/page/1/index.html b/tags/page/1/index.html
new file mode 100644
index 0000000..83a60db
--- /dev/null
+++ b/tags/page/1/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>https://www.eclipse.org/dash/tags/</title><link rel="canonical" href="https://www.eclipse.org/dash/tags/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://www.eclipse.org/dash/tags/" /></head></html>
\ No newline at end of file
