Butter CMS for Django
=========================

https://www.buttercms.com

**Why Butter?**

Butter makes setting up a company blog on Django insanely easy. It's built for Django developers to save us from hosting, DB setup, themeing, maintaining yet another Wordpress install. It's designed to be quickly integrated to an existing Django project.

Butter provides a marketing friendly blogging UI, hosted on buttercms.com, and exposes blog content created via an API.

This package provides thin wrapper that interacts with the Butter API and a quick start blog application.


Setup
-----
Requires Python 2.7.9 or newer. If you're on an older version of 2.7 please take a few seconds to upgrade: https://www.python.org/downloads/

.. code:: bash

    $ pip install buttercms-django


.. code:: python

    # In settings.py
    # Add buttercms to INSTALLED_APPS
    INSTALLED_APPS = (
        ...
        'buttercms-django',
    )

Grab your API token from https://buttercms.com/api_token

.. code:: python

    # In settings.py
    # Add your BUTTER_CMS_TOKEN
    BUTTER_CMS_TOKEN = '<your_api_token>'

Define your blog path

.. code:: python

    # In urls.py
    # Add your new blog path
    urlpatterns = patterns('',
        ...
        url(r'^blog/', include('buttercms-django.urls')),
    )

Now generate your blog templates into one of your existing Django apps with our handy butter_templates command

.. code:: bash

    $ python manage.py butter_templates <app_name>

Open up `<app_name>/templates/blog/blog_base.html` and update the `{% block content %}` to match your existing site's main body content block. Also, if your root parent file is not called `base.html`, update `blog/blog_base.html` to extend whichever template makes sense for your app.

Now check it out:  http://localhost:8000/blog

Log into https://buttercms.com/ to start blogging!

Sitemap + Feeds
=====================
Your new blog comes built-in with a sitemap.xml, RSS + Atom feeds for maximum SEO benefit. You can use these to syndicate your content to social networks, improve search engine indexation, and more.

Sitemap: http://localhost:8000/blog/sitemap.xml

RSS: http://localhost:8000/blog/rss/  (named route blog_rss)

Atom: http://localhost:8000/blog/atom/ (named route blog_atom)


Customizing your blog
=====================

Customize the blog template
---------------------------
We've provided you with a pre-scaffolded blog. Simply crack open any of the files in the newly created /blog/ directory you created in the step above and modify those Django template as you would any other. Customizing your blog is now the same flow as the rest of your site! No longer do you have to hack Wordpress PHP scripts.

Add comments to blog post template
----------------------------------
If you want to customize the blog post template (for example to add `Disqus 
<https://disqus.com/>`_ comments at the bottom), it's simple:

Open `blog_post.html` template

.. code:: html
    
    ...

    {% block blog_content %}
    <div class="post">
        <h2 class="post-title">{{ post.title }}</h2>
        
        <p class="post-byline">
            Posted by 
            <a href="{% url 'blog_author' post.author.slug %}">{{ post.author.first_name }} {{ post.author.last_name }}</a>
        
            <span class="text-muted"> in </span>
            {% for category in post.categories %}
                <span class="label label-default"><a href="{% url 'blog_category' category.slug %}">{{category.name}}</a></span>
            {% endfor %}
        </p>

        <div class="post-body">{{ post.body }}</div>
    </div>

    <hr>

    <!-- Paste your Disqus embed code here --->
    {% endblock %}
