Skip to main content

A Django blog app implemented in Wagtail.

Project description

Documentation Status

Puput

Puput is a powerful and simple Django app to manage a blog. It uses the awesome Wagtail CMS as content management system.

Puput is the catalan name for Hoopoe which is indeed a beautiful bird.

http://i.imgur.com/3ByGQb6.png

Features

  • Built with Wagtail CMS and Django

  • Inspired in Wordpress and Zinnia

  • Simple & responsive HTML template by default

  • SEO friendly urls

  • Support for Disqus comments

  • Entries by author, tags, categories, archives and search term

  • Last & popular entries

  • Configurable sidebar widgets

  • RSS feeds

  • Related entries

  • Extensible entry model

http://i.imgur.com/ndZLeWb.png

Setup

If you have a running Django project and you want to add blog site to your project, please follow Standalone blog app steps. Otherwise follow the Wagtail blog app steps if you are currently using Wagtail on your project.

Standalone blog app

  1. Install Puput and its dependencies pip install puput

  2. Add PUPUT_APPS to your INSTALLED_APPS in settings.py file.

from puput import PUPUT_APPS

INSTALLED_APPS += PUPUT_APPS

This includes Puput, Wagtail apps and Third party apps. If you have on of these apps previously defined in your INSTALLED_APPS please include manually this apps in order to avoid apps collisions:

INSTALLED_APPS = (
    ...
    'wagtail.wagtailcore',
    'wagtail.wagtailadmin',
    'wagtail.wagtaildocs',
    'wagtail.wagtailsnippets',
    'wagtail.wagtailusers',
    'wagtail.wagtailimages',
    'wagtail.wagtailembeds',
    'wagtail.wagtailsearch',
    'wagtail.wagtailsites',
    'wagtail.wagtailredirects',
    'wagtail.wagtailforms',
    'wagtail.contrib.wagtailsitemaps',
    'wagtail.contrib.wagtailroutablepage',
    'compressor',
    'taggit',
    'modelcluster',
    'puput',
)
  1. Add Wagtail required middleware classes in settings.py file

MIDDLEWARE_CLASSES = (
    ...
    'wagtail.wagtailcore.middleware.SiteMiddleware',
    'wagtail.wagtailredirects.middleware.RedirectMiddleware',
)
  1. Add request context processor to TEMPLATE_CONTEXT_PROCESSORS structure in settings.py file

TEMPLATE_CONTEXT_PROCESSORS = (
    ...
    'django.core.context_processors.request',
)
  1. Set WAGTAIL_SITE_NAME variable in settings.py file with your site name:

WAGTAIL_SITE_NAME = 'Puput blog'
  1. Set MEDIA_ROOT and MEDIA_URL variable in settings.py as described in the Wagtail Docs:

MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
MEDIA_URL = '/media/'
  1. Place Puput urls at the bottom of the urlpatterns. It also includes Wagtail urls:

urlpatterns = [
    ...
    url(r'', include('puput.urls')),
]
  1. To make your Django project serve your media files (ex: uploaded contents) during development, don’t forget to add this to your urlpatterns:

from django.conf import settings

if settings.DEBUG:
    import os
    from django.conf.urls import patterns
    from django.conf.urls.static import static
    from django.views.generic.base import RedirectView
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns

    urlpatterns += staticfiles_urlpatterns() # tell gunicorn where static files are in dev mode
    urlpatterns += static(settings.MEDIA_URL + 'images/', document_root=os.path.join(settings.MEDIA_ROOT, 'images'))
    urlpatterns += patterns('',
        (r'^favicon\.ico$', RedirectView.as_view(url=settings.STATIC_URL + 'myapp/images/favicon.ico'))
    )
  1. Run python manage.py migrate and python manage.py puput_initial_data to load initial data to start a blog site.

  2. Open your broswer at http://127.0.0.1:8000/blog/ to view your blog home page. Go to http://127.0.0.1:8000/blog_admin/ to view the admin site and edit your content.

Wagtail blog app

  1. Install Puput and its dependencies pip install puput

  2. Add puput, wagtail.contrib.wagtailsitemaps and wagtail.contrib.wagtailroutablepage to your INSTALLED_APPS in settings.py file.

  3. If you have previously defined Wagtail urls in urls.py set PUPUT_AS_PLUGIN = True in the settings.py. This will avoid to include Wagtail urls again when you include necessary Puput urls.

  4. Include Puput urls in urls.py before Wagtail urls.

urlpatterns = [
    ...
    url(r'', include('puput.urls')),
    url(r'', include(wagtail_urls)),
]
  1. Run python manage.py migrate

Docker

If you want to run Puput in a Docker container please visit docker-puput for detailed instructions.

Documentation

Visit Puput documentation for the detailed documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

puput-0.5.2.tar.gz (272.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page