Мои сообщения в блоге на...
http://www.seanbradley.biz/blog
...полностью отсутствует форматирование. Это просто большой блок открытого текста. Любой код или теги HTML, такие как /n или ... не говоря уже о h1, h2 и т. д., не оказывают заметного влияния на то, как текст отображается на странице.
Я запускаю Flask с WTForms, развернутым в GAE. Как я могу это исправить? Есть ли способ внедрить редактор WYSGIWYG, например TinyMCE, в поле формы для новых записей в блоге?
Я хочу выглядеть просто и элегантно, как...
или
... или, как минимум, что-то вроде собственного редактора Stackoverflow.
Форматирование отображается в сообщениях во всех вышеперечисленных случаях при публикации (а не через отвратительно раздутую панель инструментов редактора).
Я не уверен, связано ли то, что запрещает отображать теги HTML в моих сообщениях, с настройкой класса в WTForms, или с чем-то, что должно быть специально обработано в хранилище данных GAE, или с чем-то, что мне нужно исправить в Flask (например, модель постов). Любое четкое решение о том, как я, как относительно молодой разработчик, могу включить форматирование в эти сообщения в блоге, приносит награду. Конкретный код из приложения ниже...
Примечание: есть также расширение Flask-Markdown, но я также не уверен, как его интегрировать для достижения желаемого эффекта.
Я запускаю Flask (конечно, с шаблонами Jinja/маршрутизацией Werkzeug) в Google App Engine и не понимаю, как интегрировать WYSIWYG-редактор на страницу. Я посвятил посты в блоге...
Я предполагаю, что при включении TinyMCE вызов JavaScript идет в заголовке шаблона... вот так:
В настоящее время в тегах файла шаблона...
{{ form.title|safe }}
{% if form.title.errors %}
{% for error in form.title.errors %}
- {{ error }}
{% endfor %}
{% endif %}
{{ form.prose|safe }}
...more WTForm validation / error handling...
Я подозреваю, что проблема в том, как форма создается/управляется через WTForms. WTForms находится в моем каталоге /packages/flaskext. Где-то требуется что-то вроде следующего...?
class wtforms.fields.TextAreaField(default field arguments, choices=[], coerce=????????, option_widget=????????)
Но TextAreaField импортируется из (я не знаю откуда)... и не знаю, правильно ли это место/вещь для настройки. Находится ли ответ в init.py, file.py и/или html5.py модуля WTForm?
Опять же, я был бы счастлив, если бы только те HTML-теги, которые я включаю в пост, отображались при публикации... но изящный способ упростить форматирование своих сообщений тем, кто не привык к HTML, был бы вдвойне оценен . Любая помощь, указывающая мне в правильном направлении, очень ценится!
При необходимости добавьте код...
У меня есть следующий класс в файле models.py...
class PostModel(db.Model):
"""New Post Model"""
title = db.StringProperty(required = True)
prose = db.TextProperty(required = True)
when = db.DateTimeProperty(auto_now_add = True)
author = db.UserProperty(required = True)
И следующий класс в моем form.py...
class PostForm(wtf.Form):
title = wtf.TextField('Title: something buzz-worthy...', validators=[validators.Required()])
prose = wtf.TextAreaField('Content: something beautiful...', validators=[validators.Required()])