Skip to content

Commit

Permalink
Add a sitemap for the docs site.
Browse files Browse the repository at this point in the history
Current docs have a higher priority than dev docs. Refs #18922.
  • Loading branch information
aaugustin committed Feb 9, 2013
1 parent 0fd7006 commit 248bc06
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 10 deletions.
2 changes: 2 additions & 0 deletions django_docs/settings.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
CACHE_MIDDLEWARE_KEY_PREFIX = 'djangodocs' CACHE_MIDDLEWARE_KEY_PREFIX = 'djangodocs'


INSTALLED_APPS = [ INSTALLED_APPS = [
'django.contrib.sitemaps',
'django.contrib.sites',
'django.contrib.staticfiles', 'django.contrib.staticfiles',


'djangosecure', 'djangosecure',
Expand Down
9 changes: 7 additions & 2 deletions django_docs/urls.py
Original file line number Original file line Diff line number Diff line change
@@ -1,5 +1,10 @@
from django.conf.urls import patterns, url, include from django.conf.urls import patterns, url, include


from docs.sitemaps import DocsSitemap
from docs.urls import urlpatterns as docs_urlpatterns

sitemaps = {'docs': DocsSitemap}

urlpatterns = patterns('', urlpatterns = patterns('',
url(r'', include('docs.urls')), url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
) ) + docs_urlpatterns
26 changes: 18 additions & 8 deletions docs/models.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ def human_version(self):
""" """
Return a "human readable" version of the version. Return a "human readable" version of the version.
""" """
return "Development trunk" if self.version == 'dev' \ return "Development trunk" if self.is_dev else "Django %s" % self.version
else "Django %s" % self.version
@property
def is_dev(self):
return self.version == 'dev'


class Document(models.Model): class Document(models.Model):
""" """
Expand All @@ -66,9 +69,16 @@ def __unicode__(self):


@models.permalink @models.permalink
def get_absolute_url(self): def get_absolute_url(self):
kwargs = { if self.path:
'lang': self.release.lang, kwargs = {
'version': self.release.version, 'lang': self.release.lang,
'url': self.path 'version': self.release.version,
} 'url': self.path,
return ('document-detail', [], kwargs) }
return ('document-detail', [], kwargs)
else:
kwargs = {
'lang': self.release.lang,
'version': self.release.version,
}
return ('document-index', [], kwargs)
27 changes: 27 additions & 0 deletions docs/sitemaps.py
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,27 @@
from django.contrib.sitemaps import Sitemap

from .models import Document


class DocsSitemap(Sitemap):

def items(self):
return (Document.objects
.order_by('release__lang', '-release__version', 'path')
.select_related('release'))

def changefreq(self, obj):
if obj.release.is_dev:
return 'daily'
elif obj.release.is_default:
return 'monthly'
else:
return 'yearly'

def priority(self, obj):
if obj.release.is_dev:
return 0.5
elif obj.release.is_default:
return 1
else:
return 0.1

0 comments on commit 248bc06

Please sign in to comment.