Skip to main content

A full-featured blogging application for your Django site

Project description

django-xblog

Blogging application for your Django site

Build Status

Build Status PyPI version

Installation

Install from PyPi:

    pip install django-xblog

Using git:

    mkdir blog_project
    cd blog_project
    virtualenv .
    . bin/activate
    git clone git@github.com:rubeon/django-xblog.git
    cd django-xblog
    python setup install

This will install xblog and its requirements.

Creating a Site

After the above, go through the usual process:

django-admin startproject mysite
cd mysite/
vi mysite/settings

Add the dependencies to INSTALLED_APPS:

    INSTALLED_APPS = [
        ...
        # following are for xblog
        'django.contrib.sites',
        'markdown_deux',
        'xblog',
    ]
    # Define a site, if not done already!
    SITE_ID=1
    MIDDLEWARE = [
        # add sites middleware
        # ...
        'django.contrib.sites.middleware.CurrentSiteMiddleware',
    ]
./manage.py migrate
./manage.py createsuperuser --username=admin --email=admin@example.com
Password:
Password (again):
Superuser created successfully.
./manage.py runserver 

URL Setup

Add a place to your site's root urls.py reach your blog, and don't forget to add the xblog namespace:

    from django.urls import path, include
    import xblog.urls

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('blog/', include(xblog.urls, namespace="xblog"),
    ]

Creating users

XBlog uses the Django authentication framework to keep track of users. Users are linked to Authors, which can serve as the User profile model.

Author profiles are created automatically in the User model's post_save signal. See xblog/models.py:create_profile for reference.

Adding to your templates

XBlog defines the following content blocks:

  • maincontent - the main Blog content with archives, posts, etc.

  • rightnav - Blog roll, archive links, etc.

  • leftnav - navigation block including ...(FIXME: whut?)

  • extrahead - adds meta tags depending on the content being shown:

<title>subcritical.org::{% block subpagetitle %}top{% endblock %}</title>
{% block extrahead %}{% endblock %}
  • subpagetitle - returns title of article or archive
<title>subcritical.org::{% block subpagetitle %}top{% endblock %}</title>
  • pagestyle - can be placed in body tag for CSS styling:
<body class="{% block pagestyle}{% endblock %}">
  • blogheaders - Returns metadata about blog, such as EditURI, author, etc., for you HTML <head> section

    <title>subcritical.org::{% block subpagetitle %}top{% endblock %}</title> {% block extrahead %}{% endblock %}
  • navigation - Can be pulled into your navigation block to allow blog-specific navigation elements:

<nav>
	<ul>
	  <li>Top</li>
    	{% block navigation %}{% endblock %}
	</ul>
</nav>

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

django-xblog-0.1.0.tar.gz (143.1 kB view hashes)

Uploaded Source

Built Distribution

django_xblog-0.1.0-py3-none-any.whl (183.7 kB view hashes)

Uploaded Python 3

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