有没有办法在撇号中通过CSV导入页面

问题描述 投票:0回答:2

我知道撇号 - 碎片 - 导入器可以用于碎片,只是想知道是否有办法通过CSV导入页面和内容。我计划屏蔽废弃我们的旧网站并将其迁移到撇号中。

apostrophe-cms
2个回答
0
投票

目前还没有。然而,DIY并不难。如果你看看MongoDB,你会发现一个页面就像你希望的那样简单。将媒体导入为撇号附件是最具挑战性的一点。如果您查看apostrophe-legacy-import模块,您将找到我们的代码,用于将内容从0.5迁移到2.x,涵盖该用例,并且可以为您的目的非常有利地借用。

DIY的最重要的一点是理解页面之间的关系是如何工作的。每页都有slugpathslug就是你在地址栏中看到的,但path表达了该页面与其他页面之间的真实关系。

主页将path设置为/,其直接孩子可能是/about/contact等。他们的孩子将是/about/people/about/services等。这些将保持不变,始终包含父母的路径作为前缀即使最终用户为了简洁而编辑了slug。

此外,每个页面都有rank属性。这表达了它在同一父母的孩子中的排名,从0开始。

最后,level属性表示网站内的页面深度。主页总是水平0。从技术上讲,这可以复制您可以从path解析的信息,但是当您想要快速了解页面的深度时,它会更加方便。

此外,所有页面(以及一般的所有文档)都将具有唯一的_id,它应该是一个字符串(我们建议您使用apos.utils.generateId,绝不使用自动生成的MongoDB ID)。他们也将有一个titletags至少应该是一个数组,即使它是空的。

还包括什么取决于你;您可以检查mongodb中的任何文档以查看区域的表示方式,并且架构字段更加直接。


0
投票

对此的正确答案已经改变 - 您现在应该使用apostrophe-headless模块(https://github.com/apostrophecms/apostrophe-headless)来通过REST API创建内容,然后在生产中删除模块。

还有其他选择,包括用于片段的CSV导入,但AFAICT仅用于片段,不适用于页面和附件,而撇号无头似乎相当全面。

唯一要注意的是所有字段都必须在模块的addFields中定义,所以有些教程建议您只添加一个带有丰富文本的区域(例如),这是不够的,因为无头不知道它是在那里 - 相反,使用apostrophe-custom-pages的例子来实现addFields

手动创建数据库条目是一项艰苦的工作,当您看到apostrophe-headless创建的记录与手动编辑相比时,您可以看到很多工作都在进行中 - 图像和附件对于手动编码尤其具有挑战性。

© www.soinside.com 2019 - 2024. All rights reserved.