基于异构树编辑器的Django内容管理系统框架。
项目描述
Widgy:Django树编辑器
Widgy类似于CKEditor的内容编辑器。尽管它不是所见即所得编辑器。与CKEditor相比,Widgy更适合用于编辑页面,例如在CMS中,因为它允许您编辑页面的特定部分,并且这些部分知道如何渲染自己。而所见即所得编辑器将数据存储在HTML中,Widgy则将其存储在一个树中,每个节点都可以自己渲染。
Widgy采用Apache 2.0许可协议。在GitHub上贡献。
文档
在http://docs.wid.gy阅读Widgy的文档。
安装
使用pip安装。
pip install django-widgy
在开发Widgy时,克隆存储库然后安装它可能很有用。
git clone git://github.com/fusionbox/django-widgy cd django-widgy pip install -e .
设计理念
在http://docs.wid.gy/en/latest/design/data-model.html阅读有关Widgy数据模型的更多信息。
贡献
有一个开发者邮件列表可供使用,地址为widgy@fusionbox.com
运行测试
pip install -r requirements-test.txt make test
make test 将运行JavaScript和Python测试。要测试其中一个,请使用make test-js 或 make test-py。
$ tox
$ tox 将在所有受支持的 Django 和 Python 版本上运行完整的测试套件。
覆盖率
安装 coverage 后(pip install coverage),Makefile 有两个命令可以帮助报告代码覆盖率。
make coverage
将启用覆盖率运行测试并生成 HTML 覆盖文件。
make browser
将运行测试并在您的网页浏览器中打开覆盖率报告。
变更日志
0.9.2 (2021-11-11)
允许在 CKEditorField 中的图片上使用 alt 属性
0.9.1 (2021-08-25)
按最新创建的 created_at 日期排序表单提交
0.9.0 (2019-07-15)
修复在使用较新版本的 jQuery 时 tabs 小部件的 bug
添加对 Django 1.11 的支持并移除对之前所有版本的支持。
0.8.4 (2016-06-03)
在多步操作周围添加原子块 [#376]
0.8.3 (2016-04-29)
修复 admin 中跨域请求的 bug
0.8.2 (2016-04-15)
修复问题 #371
0.8.1 (2016-04-13)
可能破坏性的更改 从 widgy_common.scss 中移除 node-icon-sprite,这与 django storages 不兼容。
添加 WidgySite.valid_root_of 方法。您可以通过覆盖此方法来指定哪些布局将可用于新页面。
Django 1.9 支持
改进翻译
错误修复
0.7.4 (2015-11-17)
修复与 django-filer 1.0.2 的兼容性
0.7.3 (2015-09-17)
包含并安装 DaisyDiff 二进制文件和许可文件。
0.7.2 (2015-09-15)
与分发一起包含 DaisyDiff.jar。
0.7.1 (2015-08-18)
修复 Python 3 兼容性:SortedDict.keys() 正在返回一个迭代器而不是一个视图。这导致 form_builder/forms/XX 不能正确显示。
0.7.0 (2015-07-31)
可能破坏性的更改 更新了 django-pyscss 依赖。请参阅 django-pyscss 变更日志 了解如何/是否需要更改任何内容。
Django 1.8 兼容性。
Python 3 兼容性
Django 1.7 现在是最低支持的版本
Mezzanine 4.0 现在是最低支持的版本
Content.clone 现在会复制简单的多对多关系。如果您有一个具有多对多字段且具有调用 super 的覆盖克隆方法的 widget,您应该考虑这一点。如果您有使用自定义 through 表的多对多关系,您将不得不继续覆盖克隆来克隆它们。
不兼容性 WidgySite.has_add_permission 签名已更改。
多站点支持
一个 Widgy 项目现在可以响应多个域名。用例可以是 Widgy 作为服务或多品牌网站。
此功能依赖于 Mezzanine 多租户
呼出现在是与 django site 关联的
此功能由 widgy.contrib.widgy_mezzanine.site.MultiSitePermissionMixin 提供
0.6.1 (2015-05-01)
修复 find_media_files 中的非确定性 bug。
0.6.0 (2015-04-30)
改进了兼容性错误消息 [#299, #193]
删除使用 mezzanine.boot 的建议,因为它不是必需的 [#291]
可能破坏性的更改 更新了 django-pyscss 依赖。请参阅 django-pyscss 变更日志 了解如何/是否需要更改任何内容。
默认情况下,Widgy 视图仅限于 staff 成员。之前任何认证用户都被允许。这影响到预览视图和弹出编辑视图等。如果您依赖于任何用户都可以访问这些,请在您的 WidgySite 中覆盖 authorize_view。 [#267]
class MyWidgySite(WidgySite): def authorize_view(self, request, view): if not request.user.is_authenticated() raise PermissionDenied
0.5.0 (2015-04-17)
不兼容性 默认情况下不再取消注册 RichTextPage 在 widgy_mezzanine 中。如果您希望取消注册,可以将以下内容添加到您的 admin.py 文件中
from django.contrib import admin from mezzanine.pages.models import RichTextPage admin.site.unregister(RichTextPage)
Bugfix:以前,如果 CSRF_COOKIE_HTTPONLY 设置为 True,Widgy 编辑器会中断 [#311]
切换到 py.test 进行测试。 [#309]
0.4.0 (2015-03-12)
支持Django 1.7。如果继续使用Django 1.7以下版本,则需要升级到South 1.0(或使用SOUTH_MIGRATION_MODULES)。您可能需要-fake一些迁移以升级到内置的Django迁移。请确保使用South使数据库保持最新,然后升级Django并运行
./manage.py migrate --fake widgy ./manage.py migrate --fake easy_thumbnails ./manage.py migrate
支持安装Widgy而不依赖其contrib应用。‘django-widgy’包只包含Widgy核心所需的依赖。每个contrib包都有一个setuptools的‘extra’。要安装所有内容,请将‘django-widgy’替换为‘django-widgy[all]’。[#221]
切换到tox进行测试运行,并允许在contrib不存在的情况下运行核心测试。[#294]
停止依赖于连续的‘/’字符的urls。[#233]。这为widgy_mezzanine的预览页面和表单提交处理器添加了一个新的urlpattern。旧的urlpattern将保持工作,但您应该使用‘page_pk’而不是‘slug’进行反向解析。例如
url = urlresolvers.reverse('widgy.contrib.widgy_mezzanine.views.preview', kwargs={ 'node_pk': node.pk, 'page_pk': page.pk, })
将小部件表单中字段的help_text视为安全(HTML不会被转义)[#298]。如果您依赖于HTML特殊字符被转义,您应该将< span class="docutils literal">< span class="pre">help_text="1 is < 2"替换为< span class="docutils literal">< span class="pre">help_text=django.utils.html.escape("1 is < 2")。
在form_builder admin中考虑Form子类来反转URL。[#274]。
0.3.5 (2015-01-30)
错误修复版本
在ClonePageView和UnpublishView中在运行时设置模型[Rocky Meza,#286]。
0.3.4 (2015-01-22)
错误修复版本
文档修复[Rocky Meza和Gavin Wahl]。
修复Widgy内容意外水平滚动的错误[Justin Stollsteimer]。
增加了小部件标题段落后的间距[Justin Stollsteimer]。
修复了ckeditor中的样式以显示对齐方式[Zachery Metcalf,#279]。
消除了InvisibleMixin的边距[Rocky Meza]。
为Image添加字段添加CSS支持[Rocky Meza]。
修复了额外的mezzanine容器样式溢出问题[Justin Stollsteimer]。
使用daisydiff修复r.js优化错误[Rocky Meza]。
从widgypage添加表单中删除删除按钮[Gavin Wahl]。
0.3.3 (2014-12-22)
错误修复版本
允许使用覆盖的WIDGY_MEZZANINE_PAGE_MODEL进行克隆[Zach Metcalf,#269]。
SCSS语法错误[Rivo Laks,#271]。
0.3.2 (2014-10-16)
错误修复版本
允许WidgyAdmin检查ReviewedWidgySite而不安装review_queue[Scott Clark,#265]。
修复了ProxyGenericRelation上related_name的处理[#264]。
0.3.1 (2014-10-01)
0.3.0的错误修复版本。[#261,#263]。[#264]
0.3.0 (2014-09-24)
此版本主要关注新保存流程功能,但还包括一些错误修复和一些CSS改进。已经更新了依赖项,因此请务必检查如何升级部分,以确保正确更新所有内容。
主要变化
新保存流程< strong>需要将Mezzanine升级至至少3.1.10 [Gavin Wahl,Rocky Meza,#241]
我们已更新了WidgyPage的工作流程。我们认为这是一个可以希望在未来扩展到所有WidgyAdmins的实验。我们希望这个新的保存流程更直观,更不繁琐。
之前截图
之后截图
如您所见,我们已经重新排列了一些按钮,并去除了已发布的状态按钮。现在在右下角的新保存按钮将控制发布状态以及提交状态。这意味着现在提交和保存不再是两步过程,而是全部在一个按钮中。这应该使编辑和保存过程更加顺畅。此外,我们还更改了一些按钮的名称,使其意图更加明显。
错误修复
更新了覆盖的directory_table模板以兼容django-filer 0.9.6。< strong>需要将django-filer升级至至少0.9.6。[Scott Clark,#179]
修复了ReviewedVersionTrackerQuerySet.published中的错误[Gavin Wahl,#240]
使提交按钮看起来不是禁用的[Justin Stollsteimer,#250,#205]
(演示)向演示设置中添加了ADD_PAGE_ORDER[Zach Metcalf,#248]
(演示)更新了演示项目需求[Scott Clark,#234]
使Widgy的jQuery私有化以防止与其他admin扩展冲突[Gavin Wahl,#246]
文档
更新推荐 ADMIN_MENU_ORDER 以明确 django-filer [Gavin Wahl, #249]
如何升级
在本版本中,widgy 更新了其两个依赖项
现在 django-filer 的最低支持版本是 0.9.6(之前为 0.9.5)。
现在 Mezzanine 的最低支持版本是 3.1.10(之前为 1.3.0)。
如果您 pip install django-widgy==0.3.0,它应该会为您升级依赖项,但为了确保,您可能还想运行
pip install 'django-filer>=0.9.6' 'Mezzanine>=3.1.10'
以确保您获取了更新。
0.2.0 (2014-08-04)
变更
Widgy 现已采用 Apache 许可证
破坏性变更 使用 django-pyscss 进行 SCSS 编译。[Rocky Meza, #175]
需要更新 COMPRESS_PRECOMPILERS 设置
COMPRESS_PRECOMPILERS = ( ('text/x-scss', 'django_pyscss.compressor.DjangoScssFilter'), )
您可能还需要更新您的 SCSS 中的 @import 语句,因为 django-pyscss 使用不同的(更一致的)路径解析规则。例如,@import 'widgy_common' 应该改为 @import '/widgy/css/widgy_common'
为 Section 添加 help_text 以帮助用户避免错误 [Zach Metcalf, #135]
在重新定位后允许 UI 根据 new data 进行更新 [Gavin Wahl, #199]
更改 shelf 中 Button 的 css_classes [Rocky Meza, #203]
当 Ajax 正在飞行时添加加载光标 [Gavin Wahl, #215, #208]
消除“无内容” [Gavin Wahl, #206]
使用精灵为小部件图标 [Gavin Wahl 和 Rocky Meza, #89, #227]
只显示有趣的提交的批准/取消批准按钮 [Gavin Wahl, #228]
更新演示应用程序以包含新的设计和新的小部件 [Justin Stollsteimer, Gavin Wahl, Antoine Catton 和 Rocky Meza, #129, #176]
为 WidgyPages 添加克隆功能 [Gavin Wahl, #235]
使用更真实的环境渲染页面以进行搜索 [Gavin Wahl, #166]
为 Accordion 和 Tabs 添加默认子项 [Rocky Meza, #238]
错误修复
修复与拖拽相关的光标问题 [Gavin Wahl, #155]
更新安全 URL [Gavin Wahl, #212]
修复 Mezzanine==3.1.2 的 widgy_mezzanine 预览 [Rocky Meza, #201]
在管理员中允许 RichTextPage [Zach Metcalf, #197]
不要假设响应有 content-type 标头 [Gavin Wahl, #216]
修复 FileUpload 具有空值的错误 [Rocky Meza, #217]
修复 urlconf_include login_required 的处理 [Gavin Wahl, #200]
修复与 jQuery 1.9 兼容的 fancybox [Gavin Wahl, #222]
修复 SCSS 中的某些导入错误 [Rocky Meza, #230]
修复 Mezzanine 新版本中的还原页面 [Gavin Wahl, #232]
在审查队列中使用 Unicode 格式字符串 [Gavin Wahl, #236]
文档
更新 quickstart 以包含 easy_thumbnails 的 south 迁移 [Zach Metcalf, #202]
添加代理 Widgy 模型教程 [Zach Metcalf, #210]
0.1.6 (2014-09-09)
修复包含 mezzanine 不支持的 KeywordsField 的迁移 [Scott Clark]
将包重命名为 django-widgy
0.1.5 (2013-11-23)
修复 Widgy 迁移而不使用 Mezzanine [Gavin Wahl]
删除目标碰撞检测 [Gavin Wahl]
修复 Figure 和 StrDisplayNameMixin [Gavin Wahl]
避免在未安装时加载 review_queue [Scott Clark]
修复与 LinkFields 相关的多表继承 [Gavin Wahl]
0.1.4 (2013-11-04)
添加 StrDisplayNameMixin
0.1.3 (2013-10-25)
修复与 S3 存储后端的图像小部件验证 [Gavin Wahl]
0.1.2 (2013-10-23)
修复 Widgy 管理员中托管在不同域上的静态文件 [Gavin Wahl]
0.1.1 (2013-10-21)
调整 MANIFEST.in 以修复 PyPi 安装。
修复具有 Unicode verbose_name 的布局
0.1.0 (2013-10-18)
第一个版本。
基本功能
异构树编辑器 (widgy)
CMS (widgy.contrib.widgy_mezzanine)
CMS 插件 (widgy.contrib.urlconf_include)
小部件 (widgy.contrib.page_builder)
表单构建器 (widgy.contrib.form_builder)
多语言页面 (widgy.contrib.widgy_i18n)
审查队列(widgy.contrib.review_queue)
项目详情
django-widgy-0.9.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 92552dc21098e4dc38dfec54c3b80624f7e1f417ad781e40f29c7db69f14807a |
|
MD5 | 451ab30033fdc18ab6c0da0bf5271a8e |
|
BLAKE2b-256 | 545f568ac7d04aaf8b2bc2e46d1451232c80c51606e9cb198ba0ae9d06e997d6 |