为使用django的人提供直观的文本编辑。

django-text的Python项目详细描述


Join the chat at https://gitter.im/antonagestam/django-textGet downloads at https://pypi.python.org/pypi/django-textSee latest build status at https://travis-ci.org/antonagestam/django-textCoverage

为使用django的人提供直观的文本编辑。

The django-text toolbar

此项目处于早期开发阶段,请测试并报告任何错误!

安装

用pip安装包。

$ pip install django-text

text添加到已安装的软件包中。

# settings.pyINSTALLED_APPS=(# ...'text',)

text.middleware.TextMiddleware'text.middleware.ToolbarMiddleware'添加到中间件类中。

# settings.pyMIDDLEWARE_CLASSES=(# ...'text.middleware.TextMiddleware','text.middleware.ToolbarMiddleware',)

确保安装了这些上下文处理器,它们与django一起提供。

# settings.pyTEMPLATE_CONTEXT_PROCESSORS=(# ...'django.contrib.auth.context_processors.auth','django.core.context_processors.request',)

text.urls附加到urls.py中的urlpatterns。

# urls.pyfromdjango.conf.urlsimportpatterns,include,urlfromtext.urlsimporturlpatternsasdjango_text_patternsurlpatterns=patterns('',url(r'^django_text/',include(django_text_patterns,namespace='django_text')),)

运行migrate

$ python manage.py migrate

用法

标签

editable标记添加到模板中。

{% load text %}

<h1>{% text "header" "My Header" %}</h1><divclass="content">
    {% text "text_body" %}
</div>

text标记将默认文本作为第二个参数。如果没有 传递默认文本,即文本节点的名称(即第一个 如果在 数据库。

标签

您还可以使用blocktext标记来包装内容 用作默认文本。

{% load text %}

<divclass="content"><h1>
        {% blocktext "header" %}
            Read My Awesome Text
        {% endblocktext %}
    </h1>

    {% blocktext "content" %}
        Put your default text here!
    {% endblocktext %}
</div>

blocktext标记与内部的翻译标记一起工作。所以 如果你已经有一个翻译过的网站,你可以用 此标记只为您所使用的某些语言添加文本节点 支持。

指定内容类型

textblocktext标记都支持指定 其默认文本的内容类型。选择是“html”“markdown”和默认的“text”

{% text "html_node" "<h1>Hello World!</h1>" "html" %}

{% blocktext "markdown_node" "markdown" %}
# Hello there,

I can have markdown in my templates!
{% endblocktext %}

如果未提供内容类型,则两者都将默认为文本。

禁用即时更新

默认情况下,templatetags将用一个跨度包装所有文本节点 元素以启用“即时更新”,如果 TEXT_TOOLBAR_INSTANT_UPDATE设置为True。有时候 可能会带来麻烦,例如当您希望 <title><meta>元素中的文本。

通过设置 templateTag关键字参数instant_updateFalse

<title>{% text "title" "Welcome!" instant_update=False %}</title><title>
    {% blocktext "block_title" instant_update=False %}
    Welcome one, welcome all!
    {% endblocktext %}
</title>

内容编辑

工具栏允许您直接在页面上编辑文本 以职员身份登录并拥有权限'text.change_text',或者 你的签名是超级用户。

当 它们的模板标记被渲染。

设置

autopopulate\u文本

默认值:True

设置为false可禁用django text将缺少的文本节点添加到 数据库。

text_工具栏已启用

默认值:True

设置为false可禁用工具栏界面。

text_toolbar_form_前缀

默认值:'djtext_form'

它被传递到工具栏窗体,可以更改以避免名称 冲突。

文本工具栏即时更新

默认值:True

设置为false以禁用在中保存文本时对dom的即时更新 工具栏。

text_inline_包装器

默认值:('<spandata-text-name="{0}"class="{1}">','</span>')

一个二元组,用于包装模板中的文本以启用 即时更新。

text_inline_wrapper_类

默认值:'dj_text_inline_wrapper'

更改此项以更改环绕的元素的类 文本。

贡献

贡献是非常受欢迎的。使用 issues到 报告错误并建议功能。对于要接受的拉取请求 他们需要好好测试。

运行测试

安装测试依赖项。

$ brew install phantomjs
$ pip install -r test-requirements.txt

运行测试。

$ make test

运行覆盖率测试。

$ make test-coverage

许可证

版权所有(c)2015 Anton Agestam。django文本发布于麻省理工学院 执照。有关更多信息和许可证,请参见许可证文件或 捆绑代码。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPARepository save:在插入约束冲突后继续保存   java将一行字符串拆分为多行   java可以让任何计算机(多核或单核)同时运行多个线程   java mr nom无法执行   如何使用Java在MySQL数据库中插入日期?   java LinkedList在创建加权图时不添加对象元素   java将字符串拆分为等长的子字符串   java鼠标单击坐标仅第一次出现,其他鼠标单击坐标始终相同   java Apache POI,处理WorkbookFactory。创建()异常以获得更好的用户体验   具有属性和复合id的java ManyToMany   java如何定义自定义注释以使用目标元素的子集?   java HttpClient 4.3更改的参数(查询)处理?   java在运行时动态添加实体类   java我们通过phpMyAdmin访问的mysql数据库的数据库URL是什么?   java中LeftToPCorner练习的Codibility MaxPath   java如何将json对象列表转换为包含每个对象中某些字段的pojo字符串列表?   Eclipse中的java编译器遵从性和问题   java不可解析日期:“null”(偏移量为0)安卓