跳转到主要内容

deform的Fanstatic打包

项目描述

js.deform

https://travis-ci.org/fanstatic/js.deform.svg?branch=master

简介

此库将 deform 打包为 fanstatic

这需要您的 Web 框架与 fanstatic 之间的集成,并确保原始资源(位于 js.deformresources 目录的)发布到某个 URL。

包含的资源

与大多数 js. 包不同,js.deform 并不包含任何资源本身。它从 deform 中引用资源。由 js.deform 提供的资源只有 deform.jsform.cssbeautify.css。所有其他作为 deform 分发一部分的资源都可以单独使用

如何使用?

JS

您可以从 js.deform 中导入 deform_js 并在需要包含这些资源的页面位置使用它

>>> from js.deform import deform_js
>>> deform_js.need()

CSS

您可以从 js.deform 中导入 deform_css 并在需要包含这些资源的页面位置使用它

>>> from js.deform import deform_css
>>> deform_css.need()

全部

您可以从 js.deform 中导入 deform 并在需要包含这些资源的页面位置使用它

>>> from js.deform import deform
>>> deform.need()

这会自动包含 Deform 的所有 CSS 和 JS,相当于需要上面描述的 deform_jsdeform_css

自动依赖资源

您可以通过使用本包提供的 auto_need 函数来避免手动导入并使用 need()Deform 表单的每个 Fanstatic 依赖项。

>>> import js.deform
>>> import colander
>>> import deform
>>> schema = colander.Schema()
>>> form = deform.Form(schema)
>>> js.deform.auto_need(form)

通过以上操作,任何小部件要求 - 包括 Deform 自身的 - 都将包含在 Fanstatic 中。

因此,您可能有一个表单需要其中一个字段使用 deform.widget.RichTextWidget。此类小部件需要与 TinyMCE 相关的资源。 js.deform.auto_need 将使用 js.tinymce 满足此需求。

以下示例将更好地说明这一点。

初始化 Fanstatic 以查看资源包含情况

>>> import fanstatic
>>> dummy = fanstatic.init_needed()
>>> len(fanstatic.get_needed().resources())
0

创建一个演示模式和表单

>>> schema = colander.Schema()
>>> node = colander.SchemaNode(colander.String(),
...                            widget=deform.widget.RichTextWidget())
>>> schema.add(node)
>>> form = deform.Form(schema)

检查表单的资源要求

>>> form.get_widget_requirements()
[('deform', None), ('tinymce', None)]

auto_need 自动包含资源

>>> js.deform.auto_need(form)
>>> needed = fanstatic.get_needed()

现在我们可以看到已包含的资源

>>> from js.jquery import jquery
>>> jquery in needed.resources()
True
>>> from js.tinymce import tinymce
>>> tinymce in needed.resources()
True
>>> from js.deform import deform_js
>>> deform_js in needed.resources()
True

在相应配置Fanstatic后,上述资源将自动包含在您的页面上。

修补变形以自动需要小部件的资源

如果您不希望在应用程序中的每个表单实例上调用auto_need(form),则可以在启动应用程序时修补deform(例如)以自动在需要的地方need()一切。如果您使用Pyramid,将js.deform添加到pyramid.includes就足够了。

让我们重新初始化fanstatic…

>>> dummy = fanstatic.init_needed()
>>> len(fanstatic.get_needed().resources())
0

…这次修补deform

>>> from js.deform import includeme
>>> includeme()

请注意,您只需要这样做一次,例如在应用程序启动时。

现在像上面那样做,但不要调用auto_need。请注意,在渲染表单之前不会发出need()调用。

>>> schema = colander.Schema()
>>> node = colander.SchemaNode(colander.String(),
...                            widget=deform.widget.RichTextWidget())
>>> schema.add(node)
>>> form = deform.Form(schema)
>>> needed = fanstatic.get_needed()
>>> len(needed.resources())
0
>>> html = form.render()
>>> needed = fanstatic.get_needed()

再次为我们自动包含所有资源

>>> jquery in needed.resources()
True
>>> tinymce in needed.resources()
True
>>> deform_js in needed.resources()
True

变更

2.0.14 (2020-09-08)

  • 支持Python 3.6至3.9以及PyPy3。

  • 放弃支持Python 3.4和3.5。

  • 适应deform >= 2.0.11

2.0.3 - 2016-11-20

  • 依赖deform 2.0.3。

2.0a2-3 2015-01-31

  • 添加select2映射。

2.0a2-1 2014-05-13

  • 使用deform捆绑的类型提示而不是js.typeahead,因为后者在Python 2.6上失败。

2.0a2 2014-05-13

  • 依赖deform 2.0a2(Bootstrap 3)。这**不是向下兼容的,并且会与旧deform冲突**!

0.9.8 - 2013-11-19

  • 通过js.modernizr解决modernizr依赖关系;这是在deform-0.9.6中引入的。

0.9.7 - 2013-03-14

  • deform_basic添加到可用的资源分组中。使用此方法仅包括基本的CSS和JavaScript,不包括“美化”CSS。[davidjb]

0.9.6 - 2013-02-23

  • 没有变更。

0.9.5-6

  • 修复了导致在ValidationFailure上无法加载要求的错误(感谢icemac!)。

0.9.5-5

  • 在setup.py中包含js.jquery_form依赖项(感谢icemac!)。

0.9.5-4

  • 将resource_mapping中的所有项都改为列表,以便第三方包(例如kotti_tinymce)可以追加资源。

0.9.5-3

  • 添加一个includeme,以方便在Pyramid项目中使用。

  • 将修补改为仅修补deform.form.Form,而不是单个小部件。

0.9.5-2

  • 为自动包括给定Deform表单实例的Fanstatic资源添加auto_need方法。

  • 为自动包括Fanstatic资源添加patch_deform函数。当deform获得我们可以订阅的FormRender事件时,此功能将消失。

0.9.5-1

  • 将CSS资源单独以及与JS资源组合在一起提供。

0.9.5

  • 初始版本。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

js.deform-2.0.14.tar.gz (8.4 kB 查看哈希)

构建分发

js.deform-2.0.14-py2.py3-none-any.whl (9.4 kB 查看哈希值)

上传时间: Python 2 Python 3

支持者