<?php

# Set the theme for your project's web pages.
# See the Committer Tools "How Do I" for list of themes
# https://dev.eclipse.org/committers/
# Optional: defaults to system theme 
$theme = "Nova";

# Define your project-wide Nav bars here.
# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
# these are optional
$Nav->addNavSeparator("Henshin", "index.php");
$Nav->addCustomNav("Installation", "install.php", "_self", 2);
#$Nav->addCustomNav("Downloads", "downloads.php", "_self", 2);
$Nav->addCustomNav("Getting Started", "examples.php?example=bank", "_self", 2);
$Nav->addCustomNav("Examples", "examples.php", "_self", 2);
$Nav->addCustomNav("Publications", "publications.php", "_self", 2);
$Nav->addCustomNav("Related Projects", "projects.php", "_self", 2);
$Nav->addCustomNav("Contributors", "contributors.php", "_self", 2);
$Nav->addCustomNav("Mailing Lists", "mail.php", "_self", 2);
$Nav->addCustomNav("Get Involved", "get-involved.php", "_self", 2);
$Nav->addNavSeparator("External", "index.php");
$Nav->addCustomNav("About This Project", "https://projects.eclipse.org/projects/modeling.emft.henshin", "_blank", 2);
$Nav->addCustomNav("Bugzilla", "https://bugs.eclipse.org/bugs/describecomponents.cgi?product=EMFT.Henshin", "_blank", 2);
$Nav->addCustomNav("FAQ", "http://wiki.eclipse.org/Henshin_FAQ", "_blank", 2);
$Nav->addCustomNav("Javadoc", "http://download.eclipse.org/modeling/emft/henshin/javadoc/nightly/", "_blank", 2);
$Nav->addCustomNav("Wiki", "http://wiki.eclipse.org/Henshin", "_blank", 2);
$Nav->addCustomNav("Hudson", "https://hudson.eclipse.org/henshin/", "_blank", 2);

?>
