django-xblog
Blogging application for your Django site
Build Status
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 = [
...
'django.contrib.sites',
'markdown_deux',
'xblog',
]
SITE_ID=1
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
subcritical.org::{% block subpagetitle %}top{% endblock %}
{% 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>