Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A code snippet manager, originally written to power djangosnippets.org

branch: master
README.rst

Cab

Build Status

Cab (named for the jazz bandleader and scat singer Cab Calloway) is a Django application which allows users to post and share useful "snippets" of code.

This code is used to power the snippet sharing site, djangosnippets.org

Installation notes

Cab has a couple of external dependencies:

Additionally, the default setup requires a few applications which are bundled with Django itself:

  • django.contrib.comments to enable commenting.
  • django.contrib.markup to handle Markdown formatting of comments.
  • django.contrib.syndication to enable feeds.

It's also recommended that you have django.contrib.admin installed for ease of site maintenance.

Once you've got those taken care of, grab a git checkout of Cab from somewhere on your Python path:

git clone git://github.com/django-de/djangosnippets.org.git

Then add ratings, taggit and cab to the INSTALLED_APPS setting of your Django project, run manage.py syncdb, and either put a call to include('cab.urls.snippets') somewhere inn your root URLConf or copy over the URL patterns from Cab that you want to use.

Note that the get_absolute_url methods of the Language, Snippet and Tag models assume that they will live under the URLs /languages/, /snippets/ and /tags/, so if you want them to go elsewhere you'll need to edit those methods or ovveride them with Django's ABSOLUTE_URL_OVERRIDES setting.

For search support you need to set up a search engine and configure haystack:

# Place where search indexes are stored for snippets - should be non web accessible
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        'PATH': '/some-path/search-index',
        'STORAGE': 'file',
        'POST_LIMIT': 128 * 1024 * 1024,
        'INCLUDE_SPELLING': True,
        'BATCH_SIZE': 100,
    },
}
HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

Templates

The git repo will get you a set of example templates matching those currently in use on djangosnippets.org

OMGWTF Tests?

Yeah, there are tests now. See https://travis-ci.org/django-de/django-cab

Something went wrong with that request. Please try again.