Flask 和 Flask-WTF 的 markdown 编辑器 editor.md 的实现。
项目描述
Flask 和 Flask-WTF 的 markdown 编辑器 editor.md 的实现。
描述
它结合了https://github.com/pandao/editor.md版本1.5.0。
用法
from flask_editormd import Editormd editormd = Editormd() editormd.init_app(app)
editormd 对象自动注入到 jinja2 模板中。
编辑
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block content -%}
<form method="POST">
{{ form.hidden_tag() }}
{{ form.body() }}
{{ wtf.form_field(form.submit) }}
</form>
{%- endblock content %}
{% block scripts %}
{{ super() }}
{{ editormd.add_editormd_resource(autoLoadModules=False) }}
{{ editormd.add_editormd(autoHeight=True, autoLoadModules=False)}}
{%- endblock scripts %}
from flask import Flask, render_template
from flask_wtf import FlaskForm
from flask_editormd import Editormd
from flask_bootstrap import Bootstrap
from flask_editormd.fields import EditormdField
from wtforms.fields import SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
editormd = Editormd(app)
Bootstrap(app)
class EditormdForm(FlaskForm):
body = EditormdField()
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def index():
form = EditormdForm()
if form.validate_on_submit():
text = form.body.data
print(text)
return render_template('index.html', form=form)
预习
{% extends "bootstrap/base.html" %}
{% block content -%}
{{ editormd.add_editormd_previewer(content) }}
{%- endblock content %}
{% block scripts %}
{{ super() }}
{{ editormd.add_editormd_previewer_resource() }}
{%- endblock scripts %}
from flask import Flask, render_template
from flask_editormd import Editormd
from flask_bootstrap import Bootstrap
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
editormd = Editormd(app)
Bootstrap(app)
@app.route('/preview', methods=['GET', 'POST'])
def preview():
content = """
###科学公式 TeX(KaTeX)
$$E=mc^2$$
行内的公式$$E=mc^2$$行内的公式,行内的$$E=mc^2$$公式。
$$\(\sqrt{3x-1}+(1+x)^2\)$$
$$\sin(\alpha)^{\theta}=\sum_{i=0}^{n}(x^i + \cos(f))$$
$$X^2 > Y$$
#####上标和下标
上标:X<sup>2</sup>
下标:O<sub>2</sub>
"""
return render_template('preview.html', content=content)
API
可以配置flask下这些配置,默认都为True,即启用cdn资源。
CODEMIRROR_CSS_CDN
CODEMIRROR_JS_CDN
MARKED_JS_CDN
PRETTIFY_JS_CDN
add_editormd 和 add_editormd_resource
针对editormd的示例编辑器的配置接口,之前editormd文档的那些描述都可以提交:
{{ editormd.add_editormd_resource(autoLoadModules=False) }}
{{ editormd.add_editormd(toolbarIcons=["undo", "redo", "|", "bold", "del", "italic","quote", "|", "list-ul", "list-ol", "hr", "|", "link","reference-link","image","|","code-block", "table","html-entities","|", "goto-line", "watch", "unwatch","preview","fullscreen", "help"], autoHeight=True, appendMarkdown="\n\n\n\n\n",autoLoadModules=False, autoLoadPlugins=True) }}
autoLoadModules默认自动加载本地editormd的模块,如果设置为False,记得add_editormd_resource还要设置autoLoadModules=False好加载额外需要的本地模块资源,
autoLoadPlugins 默认为False,你可能不需要加载资源,比如editormd的simple模式,如果需要加载插件那么将其设置为True。
add_editormd_previewer 和 add_editormd_previewer_resource
针对editormd的markdown文件接口,使用起来很简单,除了add_editormd_previewer将markdown内容导入进去,就不用其他具体参数了。
可以在jinja2上文章执行多个add_editormd_previewer添加多个预览。
{{ editormd.add_editormd_previewer(post.body) }}
{{ editormd.add_editormd_previewer_resource() }}
项目详情
关
flask_editormd -0.0.7.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | fc726be9afcd3f0321d1ad3e5dfdd5701febe5ed44955f2503f024924c541a38 |
|
| MD5 | 9168409fbf6278e29eb067fa81f8c57b |
|
| 布莱克2-256 | d4b75f661bc18717fd3a035210b58ed29b44156fd613882819d728cf290de036 |