将Plone内容发布为epub格式
项目描述
一个产品,允许您将epub文件导入到Plone中。
内容
简介
EEA Epub产品允许您将Plone epub文件导入。上传时,Epub内容将作为Plone文件夹、文件、图片和文档导入。
也支持导出为Epub格式。
截至版本4.3,使用Adobe InDesign CS4和Sigil创建的epub文件经过测试,已知与此包兼容,此包的先前版本仅支持使用InDesign创建的epubs。
主要功能
EEA Epub功能
将epub文件作为Plone内容导入。
将原始epub存储在主文件夹中以方便检索。
将Plone内容导出为epub。
在导入epub时,文件名干净,且包含Plone ID不允许的字符。此行为默认开启,但可以通过在portal_properties/site_properties中取消选中布尔标志clean_epub_file_names来禁用。如果您发现Epub进程添加的文档页面有损坏的链接,请尝试不使用此布尔标志重新上传。
可以通过在上下文中添加名为‘action-download-epub’的项来临时禁用动态epub创建。
异步生成epub文件,并在epub准备好时通过电子邮件通知用户。
epub兼容性
EEA Epub对加载的epub做出以下假设
您不会在epub名称、图片或链接中使用unicode或其他特殊字符
您使用“Adobe InDesign CS4”或“Sigil”创建了epub,后者使用以下标准
目录名为toc.ncx,位于OEBPS内部
书籍文本和图片放置在OEBPS文件夹或OEBPS的子文件夹中
项ID不包含以下字符 . /(如果可能,请坚持使用字母、数字和 - _)
创建epub的最佳实践
章节名称不应全部为大写或使用特殊字符
图片名称不应包含空格、句点、/ 或其他特殊字符
调试
目前,网站上的任何错误都会被抑制为info消息。
如果您想查看详细的错误,请检查Plone实例日志,通常位于buildout-folder/var/log。
安装
要使用此包在Plone 4中获得eea.epub支持,最简单的方法是与基于zc.buildout的安装一起工作。其他类型的安装也可能可行,但可能有些棘手。
要开始,您只需将包添加到您的eggs和zcml部分,运行buildout,重新启动您的Plone实例,并使用快速安装器或通过“Site Setup”中的“Add-on Products”部分安装eea.epub包。
[instance] eggs = eea.epub zcml = eea.epub
您可以在以下位置下载示例buildout:
https://github.com/eea/eea.epub/tree/master/buildouts/plone4
异步设置
默认情况下,所有epubs都不会异步生成。您需要安装eea.pdf才能启用异步下载,或者您可以为os环境提供名为EEACONVERTER_ASYNC的值。
为此,您在buildout中还需要进行一些额外的配置。
首先,您需要有一个用于存储生成的epub文件的文件夹。为此,您可以在buildout中手动创建它:directory/var/,或者您可以让buildout处理它
[buildout] parts += media-downloads media-downloads-temp media-downloads-path = ${buildout:directory}/var/downloads/pdf media-downloads-temp = ${buildout:directory}/var/downloads/tmp [media-downloads] recipe = ore.recipe.fs:mkdir path = ${buildout:media-downloads-path} mode = 0700 createpath = true [media-downloads-temp] recipe = ore.recipe.fs:mkdir path = ${buildout:media-downloads-temp} mode = 0700 createpath = true
这将在buildout:directory/var/中创建一个名为downloads的文件夹
接下来,为了使此文件夹对您的网站可见,并使用户能够下载生成的epubs,您需要将有关该文件夹的信息告知zope实例
[buildout] media-downloads-name = downloads media-downloads-path = ${buildout:directory}/var/downloads/pdf media-downloads-temp = ${buildout:directory}/var/downloads/tmp [instance] environment-vars += EEADOWNLOADS_NAME ${buildout:media-downloads-name} EEADOWNLOADS_PATH ${buildout:media-downloads-path} EEACONVERTER_TEMP ${buildout:media-downloads-temp} EEACONVERTER_ASYNC True
此外,别忘了设置plone.app.async
[buildout] [instance] eggs += plone.app.async zcml += plone.app.async-single_db_worker
入门
导入
从“添加新”菜单选择“EpubFile”并上传epub文件。
导出
- 转到主页并点击页面底部的“下载为ePub”图标
自定义权限
此包添加的自定义权限
可以下载ePub (eea.epub.download)
将此权限分配给您想要能够下载内容为ePub的角色,默认为所有者、经理、编辑
可以自定义ePub (eea.epub.customize)
将此权限分配给您想要能够上下文自定义输出ePub外观和感觉的角色,默认为经理、网站管理员
内容规则
此包使用Plone内容规则通过电子邮件通知用户异步ePub作业完成。因此,将在Plone > 网站设置 > 内容规则中添加3个自定义内容规则
ePub导出成功
通知请求ePub导出的个人ePub导出成功,并提供可下载的ePub链接
ePub导出失败
通知请求ePub导出的个人ePub导出失败
ePub导出失败(管理员)
通知管理员在导出ePub时出现问题时
内容规则电子邮件字符串替换
为了能够轻松自定义此包发送的电子邮件,可以进行以下自定义电子邮件模板字符串替换
${download_came_from_url}
作为ePub下载的Plone对象的绝对URL
${download_email}
触发下载为ePub操作的用户的电子邮件地址
${download_error}
下载为ePub作业失败时的错误跟踪
${download_from_email}
通过Plone > 网站设置 > 邮件可自定义网站管理员电子邮件地址
${download_from_name}
通过Plone > 网站设置 > 邮件可自定义网站管理员姓名
${download_title}
作为ePub下载的Plone对象的标题
${download_url}
生成的输出ePub可以下载的绝对URL
${download_type}
下载类型。默认为此包的EPUB。它是特定于包的,可以是EPUB、PDF等。
禁用ePub导出
您有通过在名为action-download-epub的上下文中添加静态ePub文件(或Python脚本、页面模板等)来暂时上下文禁用动态ePub导出的可能性。这样,/download.epub将返回此文件,而不是基于上下文数据生成一个。
内容规则
此包使用Plone内容规则通过电子邮件通知用户异步ePub作业完成。因此,将在Plone > 网站设置 > 内容规则中添加3个自定义内容规则
故障排除
使用并行zc.async队列配额异步生成ePub文件。将并行生成ePUBs的工作者数量将自动根据注册到plone.app.async-*_db_worker的zeo客户端数量计算。
由于每个db_worker可以同时处理最多3个作业(在zc.async代理中硬编码),如果您有2个工作者,则同时生成的最大ePub文件数将是6(2个工作者 * 3)。如果您有5个,您将同时生成15个ePub文件。
如果您不希望它们同时生成,可以在buildout中设置环境变量EEAEPUB_ASYNC_THREADS为1
[buildout] ... [instance] ... environment-vars += EEAEPUB_ASYNC_THREADS 1
另外,如果您因为同时有太多的ePub作业而遇到问题,您可以像上面那样限制它们。
依赖项
BeautifulSoup
Lxml
Plone 4.x
eea.pdf(用于高级主题和异步下载,可选)
实时演示
以下是一些EEA(欧洲环境局)的现场生产演示
源代码
- 最新源代码(与Plone 4兼容)
- 与Plone 2和3兼容
版权和许可证
原始代码的初始所有者是欧洲环境局(EEA)。版权所有。
EEA Epub(原始代码)是免费软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它;许可证的第2版,或者(根据您的选择)任何较新版本。
更多详细信息请参阅docs/License.txt
链接
资助
EEA - 欧洲环境局(欧盟)
变更日志
7.4 - (2018-09-06)
更改:添加了卸载配置文件 [avoinea refs #96114]
更改:更新了指向 eea.europa.eu 的 URL,使用 https:// [alecghica refs #95849]
更改:修复了 BeautifulSoup 的使用 [alecghica refs #96974]
7.3 - (2018-05-25)
错误修复:加快反向引用的缓存失效速度 [avoinea refs #95020]
7.2 - (2018-04-24)
更改:使 zc.async 日志在 ePub 下载方面不那么冗长 [avoinea]
7.1 - (2017-12-12)
更改:用 eeacms/plone-test:4 zptlint 替换 eeacms/zptlint [avoinea refs #90415]
7.0 - (2017-11-07)
更改:删除了 Sphinx 生成的文档 [petchesi-iulian refs #88212]
6.9 - (2017-05-22)
更改:并行运行异步 ePub 任务 [avoinea refs #84915]
更改:修复了 PyLint 警告和错误 [valipod refs #84949]
6.8 - (2017-05-15)
更改:修复了 PyLint 警告和错误 [eduard-fironda refs #84949]
6.7 - (2017-04-24)
更改:更新了包信息 [eduard-fironda]
6.6 - (2016-10-03)
更改:更新到使用 plone.stringinterp IContextWrapper 适配器 [avoinea]
6.5 - (2016-05-19)
错误修复:修复了 pylint 警告 [chiridra refs #71940]
6.4 - (2016-05-04)
更改:更新 eea.translations 以包含最新的翻译字符串 - 修复了模板中的错误 [chiridra refs #69753]
6.3 - (2015-08-18)
更改:自动在 plone 上下文中包含 zcml,以便在不将此包添加到 buildout zcml 指令的情况下使此包工作。 [avoinea]
6.2 - (2015-03-17)
更改:在 Jenkins 构建安装脚本中切换到 curl [olimpiurob refs #22402]
更改:更改 Jenkins 构建安装脚本的获取 URL,以使用主 EEA CPB 存储库中的安装脚本 [olimpiurob refs #22402]
错误修复:添加了一种方法,即使异步工作进程已关闭或队列太忙,也可以知道 ePub 是否正在生成。 [voineali refs #23411]
6.1 - (2015-02-27)
错误修复:修复了导出 ePub 的验证错误(epubchecker) [avoinea]
6.0 - (2015-02-25)
升级步骤:I. 在“Plone > 站点设置 > 扩展”中安装“EEA Converter”。II. 在 Plone > 站点设置 > 内容规则 中:1. 通过 异步 PDF 导出(失败) 和 异步 PDF 导出(成功) 过滤 2. 禁用找到的规则 3. 通过 异步导出(失败) 和 异步导出(成功) 过滤 4. 通过将 PDF 更改为 ${download_type} 更新这些规则的 电子邮件文本,以使用之前禁用的(PDF)规则 5. 删除与 异步 PDF 导出(失败) 和 异步 PDF 导出(成功) 相关的规则 [voineali refs #22971]
功能:添加了异步下载文档为 ePub 的可能性 [voineali refs #22971]
错误修复:修复了下载.epub 模板中的 UnicodeDecodeError [voineali refs #23338]
5.9 - (2015-02-16)
功能:添加了在上下文中添加回退 ePub 文件的可能性,该上下文称为 action-download-epub,以暂时停止动态 ePub 生成并静态返回此项目。 [voineali refs #22970]
5.8 - (2015-02-03)
功能:在 export_actions 类别中添加了“下载为 ePub”操作 [voineali refs #22686]
5.7 - (2014-09-15)
更改:使 @@epub.support/can_download 可从 URL 访问 [voineali refs #20846]
5.6 - (2014-08-12)
错误修复:修复了测试 [ghicaale refs #20451]
5.5 - (2014-08-12)
升级步骤:将“可以下载 ePub”权限分配给 CommonEditor
升级步骤:在“Plone > 站点设置 > 扩展”中单击 eea.epub 可用的升级按钮
更改:将 epub_view 重命名为 download.epub [voineali refs #20393]
功能:添加了“可以下载 ePub”和“可以自定义 ePub”权限 [voineali refs #20436]
5.4 - (2014-07-15)
错误修复:即使没有为内容类型设置 PDF 封面,也导出到 epub [voineali refs #20268]
更改:删除了 collective.sendaspdf 依赖关系 [voineali refs #20268]
5.3 - (2014-06-06)
升级步骤:在“Plone > 站点设置 > 扩展”中单击 eea.epub 可用的升级按钮 [voineali refs #19882]
变更:将EPUB相关图片和操作从eea.soercontent包移动 [voineali 引用 #19882]
5.2 - (2014-01-21)
特性:添加Sphinx生成的文档,格式为Page Template [batradav 引用 #9502]
错误修复:从README.rst中删除了错误添加的引用块 [ichim-david 引用 #18064]
错误修复:更新了指向Trac的旧URL [ghicaale 引用 #18003]
5.1 - (2013-11-20)
错误修复:链接缺少任何样式 [simiamih 引用 #16799]
5.0 - (2013-10-22)
特性:改进了epub - daviz引用、目录、样式和封面 [simiamih 引用 #16799]
4.9 - (2013-10-07)
特性:主要导出改进 - 图像文件、封面照片、CSS [simiamih 引用 #16799]
4.8 - (2013-10-04)
变更:更新了zope导入,以支持eea.epub所需的最低Plone 4.1版本 [ichimdav 引用 #15651]
4.7 - (2013-06-17)
变更:使用BeautifulSoup4代替已弃用的BS 3 [tiberich #14584]
4.6 - (2013-01-15)
升级步骤:在“Plone > 网站设置 > 扩展”中,点击eea.epub可用的升级按钮 [ichimdav #9068]
特性:注册epubs为application/epub+zip MIME类型 [ichimdav #9068]
4.5 - (2012-11-22)
升级步骤:在“Plone > 网站设置 > 扩展”中,点击eea.epub可用的升级按钮 [ichimdav #3621]
特性:在创建Plone内容时使用文件名ID,如果启用clean_epub_filename布尔属性,则在文件名ID包含非法字符时清理它 [ichimdav #3621]
4.4 - (2012-06-12)
错误修复:修复了HISTORY.txt文件的标记 [ciobabog 引用 #5231]
变更:修改eea.epub中的代码以修复翻译问题 [prospchr 引用 #5159]
4.3 - (2012-04-26)
特性:导入由Adobe InDesign以外的程序创建的epubs,这些epubs的图像和HTML页面位于单独的文件夹中,类似于由Sigil创建的 [ichimdav #5054]
4.2 - (2012-02-06)
无更改
4.1 - (2012-02-06)
错误修复:在setup.py中添加了依赖项 [voineali]
4.0 - (2011-11-06)
错误修复:使用HTML解析器而不是XML解析器正确解析HTML实体 [ichimdav #4523]
错误修复:清理了定义为   的空格,这些空格不能作为XML读取 [ichimdav #4271]
清理:修复了所有pylint、pyflakes违规行为 [voineali #4121]
特性:添加了升级步骤 [voineali @4392]
特性:Plone 4.0.4兼容版本 [tiberich #4121]
0.6 - (2011-04-07)
错误修复:清理epub导入以防止导航组件表现不佳 [ichimdav #4242]
错误修复:修复了#4242,移除/清理,epub和目录组件,我们可以使用标准的Plone导航 [demarant]
特性:强制在标题更改后不重命名文档/章节 [demarant]
0.5 - (2011-03-17)
错误修复:修复了跨越段落的错误锚点 [ichimdav #4196]
错误修复:向ZCML文件添加了翻译域 [voineali #4139]
0.4 - (2011-03-09)
变更:清理了测试,添加了文档类型,修复了pylint违规警告 [ichimdav #4140]
0.3 - (2011-03-01)
变更:抑制错误消息,显示为信息状态消息 [ichimdav #3883]
错误修复:修复了epub文件导入 [ichimdav #3883]
0.2 - (2010-10-29)
特性:添加到文件夹菜单项 [thuliper #3627]
错误修复:修复了图像链接 [thuliper #3711]
0.1 - (2010-10-11)
初始版本
项目详情
eea.epub-7.4.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5df266778c9d5fab3f8e9e158d0606a36a95e8c184a2d95bdded115837012712 |
|
MD5 | a9b1d4240d927da4058b3c6097e2b0ed |
|
BLAKE2b-256 | 98668b95af9a5b864d249c0a1761657ab7c445abb4bf4f3f7e6fdb7dd8a1fa81 |