Вот краткий вопрос:
Мои записи в блоге на ...
http://www.seanbradley.biz/blog
... полностью отсутствует форматирование.Они просто большой блок открытого текста.Любой код или теги HTML, такие как / n или
... не говоря уже о h1, h2 и т. Д., Не оказывают заметного влияния на способ отображения текста на странице.
Я работаюКолба с WTForms, развернутой на GAE.Как я могу это исправить?Есть ли способ внедрить редактор WYSGIWYG - например, TinyMCE - в поле формы для новых записей в блоге?
Я собираюсь выглядеть так же просто и элегантно, как ...
http://www.quietwrite.com
или
http://lucumr.pocoo.org/
... или как минимум что-то похожее на собственный редактор Stackoverflow.
Форматирование отображаетсяв сообщениях во всех вышеперечисленных публикациях (а не через раздутую панель инструментов редактора).
Я не уверен, связано ли то, что запрещает показ HTML-тегов в моих сообщениях, с настройкой класса в WTForms, или что-то, что должно быть обработано специально в хранилище данных GAE, или что-то, что мне нужно исправить в Flask(например, модель для постов).Любое четкое решение о том, как я - как относительно младший разработчик - могу включить форматирование в эти сообщения в блоге, приносит награду.Конкретный код из приложения ниже ...
Примечание: есть также расширение Flask-Markdown, но я также не уверен, как его интегрировать для достижения желаемого эффекта.
Вопрос в деталях, плюс фрагменты из базы кода
Я использую Flask (с шаблонами Jinja / маршрутизацией Werkzeug, конечно) в Google App Engine и не понимаю, как интегрироватьWYSIWYG-редактор страницы, которую я выделил для постов в блоге ...
Я предполагаю, что при включении TinyMCE вызов JavaScript включается в заголовок шаблона ... примерно так:
<script type="text/javascript" src="/static/js/tiny_mce/tiny_mce.js">
Но затем - потому что, по сути, в шаблоне или самой отрисованной странице нет, это
не просто - в соответствии с установочной документацией TinyMCE - вопрос также добавленияследующий блок кода в шаблон ...
<textarea cols="80" rows="10" id="articleContent" name="articleContent">
<h1>Article Title</h1>
<p>Here's some sample text</p>
</textarea>
<script type="text/javascript">
tinyMCE.init({
theme : "advanced",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
mode : "exact",
elements : "articleContent"
});
</script>
В настоящее время в тегах файла шаблона ...
<label for="title">{{ form.title.label }}</label>
{{ form.title|safe }}
{% if form.title.errors %}
<ul class="errors">
{% for error in form.title.errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
<label for="prose">{{ form.prose.label }}</label>
{{ 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)
И следующий класс в моем forms.py ...
class PostForm(wtf.Form):
title = wtf.TextField('Title: something buzz-worthy...', validators=[validators.Required()])
prose = wtf.TextAreaField('Content: something beautiful...', validators=[validators.Required()])