<?php
/**
 * Copyright (c) 2014, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *    Denis Roy (Eclipse Foundation) - initial API and implementation
 *    Christopher Guindon (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<h1><?php print $pageTitle; ?></h1>
<h2>Current releases</h2>
<ul class="fa-ul">
  <li><a href="http://help.eclipse.org/2021-06/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2021-06 (4.20) Documentation</a> (HTML Help Center)</li>
</ul>
<h2>Older releases</h2>
<ul class="fa-ul">
  <li><a href="http://help.eclipse.org/2021-03/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2021-03 (4.19) Documentation</a> (HTML Help Center)</li>
  <li><a href="http://help.eclipse.org/2020-12/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2020-12 (4.18) Documentation</a> (HTML Help Center)</li>
  <li><a href="http://help.eclipse.org/2020-09/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2020-09 (4.17) Documentation</a> (HTML Help Center)</li>
  <li><a href="http://help.eclipse.org/2020-06/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2020-06 (4.16) Documentation</a> (HTML Help Center)</li>
  <li><a href="http://help.eclipse.org/2020-03/index.jsp"><i class="fa fa-globe"></i> Eclipse IDE 2020-03 (4.15) Documentation</a> (HTML Help Center)</li>
</ul>

<p>For even older releases (Photon, Oxygen, Neon, etc), please download the corresponding Eclipse SDK or any EPP package and start the Information center locally as described here:</p>
<ul class="fa-ul">
  <li><a href="https://archive.eclipse.org/eclipse/downloads/"><i class="fa fa-globe"></i> Eclipse project archived downloads</a></li>
  <li><a href="https://www.eclipse.org/downloads/packages/release/"><i class="fa fa-globe"></i> Eclipse Packaging Project (EPP) Releases</a></li>
  <li><a href="https://help.eclipse.org/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fua_help_setup_infocenter.htm"><i class="fa fa-globe"></i> How to start or stop information center from command line</a></li>
</ul>


