跳转到主要内容

添加可重用动态渲染的富文本片段

项目描述

为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

    1. 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 (34.9 kB 查看哈希值)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面