添加可重用动态渲染的富文本片段
项目描述
为Plone添加动态更新的富文本片段。更新一个片段将在所有使用片段的地方(页面、新闻条目、事件等)显示更改。
Plone版本兼容性
2.x版本与Plone 5.0+兼容
早期版本与Plone 4兼容
简介
uwosh.snippets包允许您在网站中使用TinyMCE编辑器(即任何富文本字段)的任何位置包含动态更新的富文本片段(富文本块),包括页面、新闻条目和事件。
片段可以在任何可以使用富文本的地方使用。它们被插入到页面上的方式就像插入图片或超链接一样。
由于代码片段是动态渲染的,如果您编辑了代码片段,其更新后的富文本将在您插入代码片段的所有位置显示。
与在您网站的多个位置复制和粘贴富文本相比,这种方法效率更高且错误更少。
示例
一所大学希望在其网站中一致地显示其注册学生人数。与其手动更新提及注册学生人数的每个页面,并记住在注册人数变更时(例如每年)更改这些页面,不如内容编辑器创建一个名为“注册人数”的代码片段,包含富文本“13,491名学生”,并将该代码片段插入需要显示注册人数的任何位置。
每当官方注册人数发生变化时,内容编辑器会编辑“注册人数”代码片段以更新计数,例如“14,120名学生”,并保存更改。所有后续查看包含该代码片段的页面的视图都将显示更新后的数字。
如何使用
编辑您的buildout.cfg以将uwosh.snippets添加到您的egg中。
运行buildout。
重新启动您的实例或客户端。
转到“网站设置”->“插件”
激活uwosh.snippets
将在您网站的根目录下创建一个名为“代码片段”(ID为“.snippets”)的新文件夹;这是插件默认查找代码片段的位置。
要添加代码片段
导航到代码片段文件夹。
添加一个页面。为它提供一个有意义的标题和摘要,以帮助您和其他内容编辑员最容易地找到代码片段。在正文中,输入任何富文本。您可以使用TinyMCE的“工具”->“源代码”(HTML)视图插入任意复杂的HTML,只要它满足您网站的HTML过滤设置。
单击“保存”按钮。
您已创建您的第一个代码片段!您可以在您网站的任意一个或多个位置使用此代码片段,只要TinyMCE用作编辑器。
要插入代码片段
添加或编辑一个页面(或事件、新闻条目或任何其他具有使用TinyMCE编辑器的富文本字段的 内容项)。
在TinyMCE编辑器中,将光标放在您希望代码片段的富文本出现的位置。
单击TinyMCE的新“{{}}”工具栏图标以打开代码片段搜索对话框,默认情况下,该对话框将在您网站的代码片段文件夹中查找。
使用搜索对话框查找您要插入的代码片段。在搜索对话框的文本字段中单击。您将看到一个包含您代码片段文件夹中所有代码片段的列表。如果您在搜索字段中输入文本,您将仅看到与您输入的搜索词匹配的代码片段。
单击您要插入的代码片段。代码片段预览将显示您选择的代码片段的内容。使用“选择部分”下拉菜单选择您想要预览的代码片段部分(如果您有特别长的代码片段,这将很有用)。
单击“插入”按钮。一个代码片段的引用(“插件”)将插入到光标位置处的富文本中。它看起来像“代码片段:[ID=82341234bcda]”。
单击“保存”按钮。
现在,您将看到代码片段的内容而不是代码片段插件。
设置
uwosh.snippets包括一个控制面板,可在“网站设置”->“代码片段”(“@@snippets-controlpanel”)中找到。
相关项设置
使用此功能来更改查找代码片段的目录(默认情况下,ID为.snippets且标题为代码片段的文件夹)。例如,要在您网站的根目录中查找ID为blabla的文件夹中的代码片段,请将basePath的值从/.snippets更改为/blabla。
您还可以修改用作代码片段的内容类型。默认情况下,这是页面(文档)。例如,要使用新闻条目的富文本字段,请将selectableTypes的值从[Document]更改为[News Item]。
代码显示表达式
使用此功能来修改TinyMCE编辑区域中代码片段引用(“插件”)的显示方式。默认为 字符串:代码片段:[ID=${context/@@uuid}]。这可能是您不需要更改的设置。
渲染表达式
使用此功能来指定渲染代码片段的TAL表达式。默认为 context/text/output|context/getText|nothing。这可能是您不需要更改的设置。请参阅TAL表达式文档。
说明
如果您希望代码片段在渲染时不引起换行(因为TinyMCE围绕富文本包裹了
标签),请编辑代码片段,并在TinyMCE富文本编辑区域下方,使用文本下拉菜单选择 text/x-web-textile。然后手动移除代码片段富文本周围的
标签并点击保存。富文本将保存而不被TinyMCE重新包裹
标签,当您在其他地方使用该代码片段时,它不会开始新段落。
要求
需要安装并启用TinyMCE WYSIWYG编辑器。了解其使用方法也非常推荐。有关TinyMCE的更多信息,请访问他们的网站。
待办事项
很好:在模态对话框中重新添加添加/编辑/删除代码片段的支持
不适合我们现在允许代码片段从网站任何地方添加的方式
鸣谢
最初的概念由Sam Schwartz为威斯康星大学奥什科什分校国际教育办公室开发。
Plone 5兼容性由Nathan Van Gheem / Wildcard Corp.为Philip Bauer / Starzel.de开发。
维护者
此附加组件由Wildcard Corp.维护,https://wildcardcorp.com,Plone增强发行版的Castle CMS的开发者,https://castlecms.io
贡献者
Sam Schwartz,作者
Nathan Van Gheem
Gil Forcada
Kim Nguyen
变更日志
2.0.4 (2017-08-30)
添加关于内联渲染代码片段的说明 [tkimnguyen]
2.0.3 (2017-08-29)
添加更多逐步用户文档 [tkimnguyen]
2.0.2 (2017-08-27)
在README中增强用户文档 [tkimnguyen]
2.0.1 (2017-08-27)
修复MANIFEST以包含缺失的标记文件,以启用激活时创建.snippets文件夹 [tkimnguyen]
2.0.0 (2017-06-13)
添加网站设置配置 [vangheem]
集成链接完整性 [vangheem]
能够为代码片段添加任何内容 [vangheem]
使用lxml解析文档 [vangheem]
0.9.29 (12/19/2014)
用户现在可以在禁用tinyMCE后重新启用它
修复了导致后端正则表达式捕获正常(非代码片段)span标签的问题
0.9.27 (12/17/2014)
添加了在创建代码片段时禁用tinyMCE的链接
0.9.26 (8/26/2014)
更改了多个链接/按钮的措辞,使其更易于理解
修复了损坏的预览系统
删除相关代码片段时,现在会从当前页面删除代码片段插件
0.9.24 (8/21/2014)
更改了代码片段UI不同部分的用户角色要求
修复了导致XMLSyntaxError...真的这次的问题。
如果没有权限使用它们,UI不再显示添加/编辑/删除按钮。
更新README
添加额外的机器人测试
0.9.2 (8/13/2014)
重构和重新排列代码,使其符合Plone的JS标准
使JS符合jslint标准
0.9.18 (8/13/2014)
调整了一些机器人测试,并添加了几个
添加了针对XMLSyntaxError错误的异常
修复了导致AJAX请求不需要时发送的问题
0.9.15 (8/8/2014)
将机器人测试从另一个分支迁移过来
在编辑页面加载时更改JS,以一次性获取所有所需的代码片段,而不是逐个获取
重新设计了SnippetList类以适应上述JS更改
0.9.11 (8/8/2014)
删除代码片段插件后,不再保留“删除”按钮
HTML视图不再破坏所有东西。
0.9.10 (8/6/2014)
添加了按钮,允许用户从当前页面删除代码片段插件
0.9.03 (8/5/2014)
修复了阻止预览窗口中显示图片的bug
修复了代码片段包含图片时点击打开失败的bug
0.9.01 (8/5/2014)
修复了无用的卸载配置文件
0.8.9 (8/4/2014)
修复了在0.8.8中引入的小JS bug
0.8.9b (2014年8月4日)
当片段没有描述时,浏览器UI不再崩溃。
0.8.9a (2014年8月4日)
再次修复了缺少 .snippet 文件夹的问题...
修复了 tinymce 图标不显示的问题
0.8.8 (8/4/2014)
修复了缺少 .snippets 文件夹的问题。
描述字段现在不再需要。
已修复点击打开功能崩溃的问题。
0.8.6a (2014年6月5日)
现在不允许片段ID包含任何CSS-ID不安全字符
当基础片段被编辑时,片段插件将自动更新
(据我所知)片段插件内的文本不能再编辑了
修复了多个阻止“所选片段”框填充的bug
0.8.5a (2014年5月27日)
添加了contenteditable标签,防止用户在行内编辑片段
添加了JS来完善删除功能
添加了片段删除功能
添加了JS来完善删除功能
0.8.3a
修复了新正则表达式的问题
0.8.2a
重新制作了片段解析器使用的正则表达式。
0.8a
向TinyMCE插件添加了创建/编辑扩展
我忽略记录的无数bug :(
添加了层以防止过早执行
重新编写JS以使其更灵活
.3
扩展TinyMCE插件,使片段在编辑页面上可点击。
向TinyMCE插件添加了片段浏览器窗口。
移除了对YouTube嵌入的支持(其他产品处理得更好)。
.2
添加了嵌入youtube视频的能力。
.1
基本的概念验证实现
添加了TinyMCE插件
项目详情
uwosh.snippets-2.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6fba9b31bdf9e53a4aabc2662024db7e93f44a386f5f204d758b00e6c808137f |
|
MD5 | 4c0a336e1fe0f6313b6b484e75ec9a93 |
|
BLAKE2b-256 | d3399c9da006afe6aede0e9cc9b75bc55403d431dc990f1e942eb63d7b7136ab |