我知道撇号 - 碎片 - 导入器可以用于碎片,只是想知道是否有办法通过CSV导入页面和内容。我计划屏蔽废弃我们的旧网站并将其迁移到撇号中。
目前还没有。然而,DIY并不难。如果你看看MongoDB,你会发现一个页面就像你希望的那样简单。将媒体导入为撇号附件是最具挑战性的一点。如果您查看apostrophe-legacy-import
模块,您将找到我们的代码,用于将内容从0.5迁移到2.x,涵盖该用例,并且可以为您的目的非常有利地借用。
DIY的最重要的一点是理解页面之间的关系是如何工作的。每页都有slug
和path
。 slug
就是你在地址栏中看到的,但path
表达了该页面与其他页面之间的真实关系。
主页将path
设置为/
,其直接孩子可能是/about
,/contact
等。他们的孩子将是/about/people
,/about/services
等。这些将保持不变,始终包含父母的路径作为前缀即使最终用户为了简洁而编辑了slug。
此外,每个页面都有rank
属性。这表达了它在同一父母的孩子中的排名,从0
开始。
最后,level
属性表示网站内的页面深度。主页总是水平0
。从技术上讲,这可以复制您可以从path
解析的信息,但是当您想要快速了解页面的深度时,它会更加方便。
此外,所有页面(以及一般的所有文档)都将具有唯一的_id
,它应该是一个字符串(我们建议您使用apos.utils.generateId
,绝不使用自动生成的MongoDB ID)。他们也将有一个title
,tags
至少应该是一个数组,即使它是空的。
还包括什么取决于你;您可以检查mongodb中的任何文档以查看区域的表示方式,并且架构字段更加直接。
对此的正确答案已经改变 - 您现在应该使用apostrophe-headless
模块(https://github.com/apostrophecms/apostrophe-headless)来通过REST API创建内容,然后在生产中删除模块。
还有其他选择,包括用于片段的CSV导入,但AFAICT仅用于片段,不适用于页面和附件,而撇号无头似乎相当全面。
唯一要注意的是所有字段都必须在模块的addFields
中定义,所以有些教程建议您只添加一个带有丰富文本的区域(例如),这是不够的,因为无头不知道它是在那里 - 相反,使用apostrophe-custom-pages
的例子来实现addFields
。
手动创建数据库条目是一项艰苦的工作,当您看到apostrophe-headless
创建的记录与手动编辑相比时,您可以看到很多工作都在进行中 - 图像和附件对于手动编码尤其具有挑战性。