Skip to main content

A blog application for Django sites, inspired by classic WordPress.

Project description

DJ Press

A blog application for Django sites, inspired by classic WordPress, available on PyPI.

Warning - very alpha.

Goals

Why build another blog engine? These are my goals...

  • Simple to get started with sensible defaults: install plugin, configure urls.py, and migrate.
  • Follows Django patterns: configuration in settings.py, content management in the Django admin.
  • Configurable to suit a wide variety of use-cases: lots of configuration available, but not required.
  • Customisable with themes: themes can be written using only template tags, no knowledge of models required.
  • Customisable with plugins: simple plugins are easy to write, but complex plugins are possible.
  • Powerful but lightweight: provide core functionality, allow plugins to fill gaps and enhance.

Versioning

This package uses semantic versioning, but until we reach version 1.x.x, the following rules will apply:

  • MAJOR version will remain on 0 until the base functionality is complete.
  • MINOR version indicates that an incompatible or breaking change has been introduced.
  • PATCH version indicates a bug fix or a backward compatible change.

If you choose to use this package prior to version 1.x being release, please pin your requirements to a specific minor version, e.g. djpress~=0.16.0

Installation

  • Install djpress by adding it to your requirements file, e.g. djpress~=0.16.0 (see versioning note, above).
  • Add it to your INSTALLED_APPS in Django:
INSTALLED_APPS = [
    # ...
    "djpress.apps.DjpressConfig",
    # ...
]
  • Add the URLs to your project's main urls.py file.

The following will set DJ Press to be available at the root of your site, e.g. https://example.com/

from django.urls import path, include

urlpatterns = [
    # ...
    path("", include("djpress.urls")),
    # ...
]

If you want your blog to be in a subdirectory, use something like the following:

from django.urls import path, include

urlpatterns = [
    # ...
    path("blog/", include("djpress.urls")),
    # ...
]
  • Run migrations: python3 manage.py migrate

Note that this relies on the Django Admin for content management, so ensure that you have a user with at least staff status to manage content.

Configuration

In your settings.py file, create a DJPRESS_SETTINGS dictionary. Here are some common settings:

# DJPress settings
DJPRESS_SETTINGS = {
    "SITE_TITLE": "My Awesome Blog",
    "POST_PREFIX": "{{ year }}/{{ month }}",  # blog post URLs are prefixed with "year/month": /2024/10/blog-post-slug/
}

There are lots more settings available. Please check the docs or look at the source code: src/djpress/app_settings.py

Documentation

Documentation is a work-in-progress, but is available on GitHub Pages: https://stuartmaxwell.github.io/djpress

Badges

codecov

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

djpress-0.23.0b0.tar.gz (204.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djpress-0.23.0b0-py3-none-any.whl (81.7 kB view details)

Uploaded Python 3

File details

Details for the file djpress-0.23.0b0.tar.gz.

File metadata

  • Download URL: djpress-0.23.0b0.tar.gz
  • Upload date:
  • Size: 204.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for djpress-0.23.0b0.tar.gz
Algorithm Hash digest
SHA256 5291fe9fa060778ece73004a8a6649dafb247bd9630cc8aba255ca618ceac772
MD5 251f27b0f17975a2be7f592d8c816059
BLAKE2b-256 05a2bb8d12ba1b8624810c9064715bbddd45cce8c0df4bc7b4d172151c905ee9

See more details on using hashes here.

Provenance

The following attestation bundles were made for djpress-0.23.0b0.tar.gz:

Publisher: publish.yml on stuartmaxwell/djpress

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file djpress-0.23.0b0-py3-none-any.whl.

File metadata

  • Download URL: djpress-0.23.0b0-py3-none-any.whl
  • Upload date:
  • Size: 81.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for djpress-0.23.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1aeac298646495bac8f69fc33c5b4e17c4e552f04e108447d37f55ea1b8d351
MD5 7120b8c6ef93f480d281a619d8abc6e8
BLAKE2b-256 0f24139f1f8769491a8dbda0cdbe6c7b2d5901c9d8c486155c774b6073f2c7bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for djpress-0.23.0b0-py3-none-any.whl:

Publisher: publish.yml on stuartmaxwell/djpress

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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