CREATE_MISSING_ARTICLE and document settings

This commit is contained in:
James Turk 2010-04-06 16:25:41 -04:00
parent 39b59fd0f6
commit 18c1dae495
3 changed files with 29 additions and 32 deletions

View File

@ -21,9 +21,22 @@ libraries for whichever markup options you wish to include.
Settings Settings
======== ========
To best make use of MarkupField you should define the
``MARKUPWIKI_MARKUP_TYPES`` setting, a dictionary of strings to callables that ``MARKUPWIKI_WRITE_LOCK_SECONDS`` - number of seconds that a user can hold a
'render' a markup type:: write lock (default: 300)
``MARKUPWIKI_CREATE_MISSING_ARTICLES`` - if True when attempting to go to an
article that doesn't exist, user will be redirected to the /edit/ page. If
False user will get a 404.
``MARKUPWIKI_DEFAULT_MARKUP_TYPE`` - default markup type to use
(default: markdown)
``MARKUPWIKI_MARKUP_TYPE_EDITABLE`` - if False user won't have option to change
markup type (default: True)
``MARKUPWIKI_MARKUP_TYPES`` - a tuple of string and callable pairs the
callable is used to 'render' a markup type. Example::
import markdown import markdown
from docutils.core import publish_parts from docutils.core import publish_parts
@ -32,30 +45,7 @@ To best make use of MarkupField you should define the
parts = publish_parts(source=markup, writer_name="html4css1") parts = publish_parts(source=markup, writer_name="html4css1")
return parts["fragment"] return parts["fragment"]
MARKUPWIKI_MARKUP_TYPES = { MARKUPWIKI_MARKUP_TYPES = (
'markdown': markdown.markdown, ('markdown', markdown.markdown),
'ReST': render_rest, ('ReST', render_rest)
} )
If you do not define a ``MARKUPWIKI_MARKUP_TYPES`` then one is provided with the
following markup types available:
html:
allows HTML, potentially unsafe
plain:
plain text markup, calls urlize and replaces text with linebreaks
markdown:
default `markdown`_ renderer (only if `python-markdown`_ is installed)
restructuredtext:
default `ReST`_ renderer (only if `docutils`_ is installed)
textile:
default `textile`_ renderer (only if `textile`_ is installed)
.. _`markdown`: http://daringfireball.net/projects/markdown/
.. _`ReST`: http://docutils.sourceforge.net/rst.html
.. _`textile`: http://hobix.com/textile/quick.html
.. _`python-markdown`: http://www.freewisdom.org/projects/python-markdown/
.. _`docutils`: http://docutils.sourceforge.net/
.. _`python-textile`: http://pypi.python.org/pypi/textile

View File

@ -9,7 +9,7 @@ from markupfield import markup
from markupwiki.utils import wikify_markup_wrapper from markupwiki.utils import wikify_markup_wrapper
DEFAULT_MARKUP_TYPE = getattr(settings, 'MARKUPWIKI_DEFAULT_MARKUP_TYPE', 'markdown') DEFAULT_MARKUP_TYPE = getattr(settings, 'MARKUPWIKI_DEFAULT_MARKUP_TYPE', 'markdown')
WRITE_LOCK_SECONDS = getattr(settings, 'MARKUPWIKI_WRITE_LOCK_SECONDS', 60) WRITE_LOCK_SECONDS = getattr(settings, 'MARKUPWIKI_WRITE_LOCK_SECONDS', 300)
MARKUP_TYPES = getattr(settings, 'MARKUPWIKI_MARKUP_TYPES', markup.DEFAULT_MARKUP_TYPES) MARKUP_TYPES = getattr(settings, 'MARKUPWIKI_MARKUP_TYPES', markup.DEFAULT_MARKUP_TYPES)
# add make_wiki_links to MARKUP_TYPES # add make_wiki_links to MARKUP_TYPES

View File

@ -1,14 +1,18 @@
from difflib import HtmlDiff from difflib import HtmlDiff
from django.shortcuts import get_object_or_404, render_to_response, redirect from django.shortcuts import get_object_or_404, render_to_response, redirect
from django.http import HttpResponseForbidden from django.http import HttpResponseForbidden
from django.conf import settings
from django.views.decorators.http import require_POST from django.views.decorators.http import require_POST
from django.contrib.auth.decorators import login_required, user_passes_test from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib import messages from django.contrib import messages
from django.http import Http404
from django.template import RequestContext from django.template import RequestContext
from django.utils.functional import wraps from django.utils.functional import wraps
from markupwiki.models import Article, PUBLIC, DELETED, LOCKED from markupwiki.models import Article, PUBLIC, DELETED, LOCKED
from markupwiki.forms import ArticleForm, StaffModerationForm, ArticleRenameForm from markupwiki.forms import ArticleForm, StaffModerationForm, ArticleRenameForm
CREATE_MISSING_ARTICLE = getattr(settings, 'MARKUPWIKI_CREATE_MISSING_ARTICLES', False)
def title_check(view): def title_check(view):
def new_view(request, title, *args, **kwargs): def new_view(request, title, *args, **kwargs):
newtitle = title.replace(' ', '_') newtitle = title.replace(' ', '_')
@ -39,7 +43,10 @@ def view_article(request, title, n=None):
try: try:
article = Article.objects.get(title=title) article = Article.objects.get(title=title)
except Article.DoesNotExist: except Article.DoesNotExist:
return redirect('edit_article', title) if CREATE_MISSING_ARTICLE:
return redirect('edit_article', title)
else:
raise Http404()
if article.redirect_to_id: if article.redirect_to_id:
return redirect(article.redirect_to) return redirect(article.redirect_to)