here
parser.add_simple_formatter('s',
- u'%(value)s')
+ '%(value)s')
# TODO Why not use built-in tag?
parser.add_simple_formatter('code',
- u'%(value)s
', render_embedded=False)
+ '%(value)s
',
+ render_embedded=False)
text = preparse_text(markup)
return parser.format(text)
diff --git a/boards/migrations/0001_initial.py b/boards/migrations/0001_initial.py
--- a/boards/migrations/0001_initial.py
+++ b/boards/migrations/0001_initial.py
@@ -2,7 +2,6 @@
from __future__ import unicode_literals
from django.db import models, migrations
-import markupfield.fields
import boards.models.image
import boards.models.base
import boards.thumbs
@@ -32,7 +31,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(serialize=False, auto_created=True, primary_key=True, verbose_name='ID')),
('title', models.CharField(max_length=200)),
('pub_time', models.DateTimeField()),
- ('text', markupfield.fields.MarkupField()),
+ ('text', models.TextField(null=True, blank=True)),
('text_markup_type', models.CharField(choices=[('', '--'), ('bbcode', 'bbcode')], max_length=30, default='bbcode')),
('poster_ip', models.GenericIPAddressField()),
('_text_rendered', models.TextField(editable=False)),
diff --git a/boards/models/post.py b/boards/models/post.py
--- a/boards/models/post.py
+++ b/boards/models/post.py
@@ -1,24 +1,25 @@
from datetime import datetime, timedelta, date
from datetime import time as dtime
-from adjacent import Client
import logging
import re
+from adjacent import Client
from django.core.cache import cache
from django.core.urlresolvers import reverse
from django.db import models, transaction
-from django.shortcuts import get_object_or_404
+from django.db.models import TextField
from django.template import RequestContext
from django.template.loader import render_to_string
from django.utils import timezone
-from markupfield.fields import MarkupField
+
from boards import settings
-
+from boards.mdx_neboard import bbcode_extended
from boards.models import PostImage
from boards.models.base import Viewable
from boards.models.thread import Thread
from boards.utils import datetime_to_epoch
+
WS_CHANNEL_THREAD = "thread:"
APP_LABEL_BOARDS = 'boards'
@@ -34,8 +35,6 @@ IMAGE_THUMB_SIZE = (200, 150)
TITLE_MAX_LENGTH = 200
-DEFAULT_MARKUP_TYPE = 'bbcode'
-
# TODO This should be removed
NO_IP = '0.0.0.0'
@@ -127,7 +126,7 @@ class PostManager(models.Manager):
Connects replies to a post to show them as a reflink map
"""
- for reply_number in re.finditer(REGEX_REPLY, post.text.raw):
+ for reply_number in re.finditer(REGEX_REPLY, post.get_raw_text()):
post_id = reply_number.group(1)
ref_post = self.filter(id=post_id)
if ref_post.count() > 0:
@@ -191,8 +190,8 @@ class Post(models.Model, Viewable):
title = models.CharField(max_length=TITLE_MAX_LENGTH)
pub_time = models.DateTimeField()
- text = MarkupField(default_markup_type=DEFAULT_MARKUP_TYPE,
- escape_html=False)
+ text = TextField(blank=True, null=True)
+ _text_rendered = TextField(blank=True, null=True, editable=False)
images = models.ManyToManyField(PostImage, null=True, blank=True,
related_name='ip+', db_index=True)
@@ -220,7 +219,7 @@ class Post(models.Model, Viewable):
title = self.title
if not title:
- title = self.text.rendered
+ title = self.get_text()
return title
@@ -429,8 +428,20 @@ class Post(models.Model, Viewable):
logger.info('Sent post #{} to channel {}'.format(self.id, channel_name))
if recursive:
- for reply_number in re.finditer(REGEX_REPLY, self.text.raw):
+ for reply_number in re.finditer(REGEX_REPLY, self.get_raw_text()):
post_id = reply_number.group(1)
ref_post = Post.objects.filter(id=post_id)[0]
ref_post.send_to_websocket(request, recursive=False)
+
+ def save(self, force_insert=False, force_update=False, using=None,
+ update_fields=None):
+ self._text_rendered = bbcode_extended(self.get_raw_text())
+
+ super().save(force_insert, force_update, using, update_fields)
+
+ def get_text(self):
+ return self._text_rendered
+
+ def get_raw_text(self):
+ return self.text
diff --git a/boards/templates/boards/post.html b/boards/templates/boards/post.html
--- a/boards/templates/boards/post.html
+++ b/boards/templates/boards/post.html
@@ -62,9 +62,9 @@
{% autoescape off %}
{% if truncated %}
- {{ post.text.rendered|truncatewords_html:50 }}
+ {{ post.get_text|truncatewords_html:50 }}
{% else %}
- {{ post.text.rendered }}
+ {{ post.get_text }}
{% endif %}
{% endautoescape %}
{% if post.is_referenced %}
diff --git a/neboard/settings.py b/neboard/settings.py
--- a/neboard/settings.py
+++ b/neboard/settings.py
@@ -199,10 +199,6 @@ HAYSTACK_CONNECTIONS = {
},
}
-MARKUP_FIELD_TYPES = (
- ('bbcode', bbcode_extended),
-)
-
THEMES = [
('md', 'Mystic Dark'),
('md_centered', 'Mystic Dark (centered)'),
diff --git a/readme.markdown b/readme.markdown
--- a/readme.markdown
+++ b/readme.markdown
@@ -7,23 +7,6 @@ Main repository: https://bitbucket.org/n
Site: http://neboard.me/
-# DEPENDENCIES #
-
-## REQUIRED ##
-
-* pillow
-* django >= 1.6
-* django_cleanup
-* django-markupfield
-* markdown
-* python-markdown
-* django-simple-captcha
-* line-profiler
-
-## OPTIONAL ##
-
-* django-debug-toolbar
-
# INSTALLATION #
1. Install all dependencies over pip or system-wide
diff --git a/requirements.txt b/requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,6 +3,5 @@ haystack
pillow
django>=1.7
django_cleanup
-django-markupfield
bbcode
django_compressor
\ No newline at end of file