The navigation mechanism is fairly complex; unfortunately, there’s no real way around that - without a lot of equally complex code that you are quite welcome to write and contribute! ;-)
For this guide, we’ll assume that you have the setup described in Getting started with philo. We’ll be adding a main Navigation to the root Node and making it display as part of the Template.
Before getting started, make sure that you’ve added philo.contrib.shipherd to your INSTALLED_APPS. shipherd template tags also require the request context processor, so make sure to set TEMPLATE_CONTEXT_PROCESSORS appropriately:
TEMPLATE_CONTEXT_PROCESSORS = (
# Defaults
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages"
...
"django.core.context_processors.request"
)
Edit the main Navigation again to add another NavigationItem. This time give it the text Google and set the url_or_subpath field to http://google.com. A navigation item will show up on the Hello World page that points to google.com! Granted, your navigation probably shouldn’t do that, because confusing navigation is confusing; the point is that it is possible to provide navigation to arbitrary URLs.
url_or_subpath can also be used in conjuction with a Node to link to a subpath beyond that Node‘s url.