自定义页面模板

Custom Page Template

我正在尝试添加一个自定义页面,该页面不会与特定类型的文章或其他数据集相关联。它将用于 运行 报告操作和 processing/showing 数据,因此它需要相当独立。我希望它是一种页面类型,因此它将在导航中以与任何其他页面相同的方式进行处理。我大部分时间都在使用它,但是 运行 遇到了一个问题 - 无论我如何设置它,当我尝试导航到创建的页面实例时,它总是在 lib/modules/apostrophe-pages/views/pages 而不是模块文件夹。

在这种情况下,我目前正在调用模块测试项(一旦我弄清楚问题是什么,就会重命名)。因此,我有一个名为 lib/modules/test-item 的文件夹,其中包含 index.js 和 views/index.html。我还尝试将 views 文件夹中的模板重命名为 show.html 和 test-item.html 以确保这不是命名问题。下面是模块在 index.js 中的配置方式:

module.exports = {
    name: 'test-item',
    extend: 'apostrophe-custom-pages',
    construct: function(self, options) {
        //more logic stuff
    }
}

此外,如果我向模块添加一个字段,当我尝试创建一个类型为 test-item 的新页面时它会显示,所以我知道正在加载模块本身。

在 app.js 中,我加载了这个模块:

'test-item': {},

页面类型不会添加到新页面对话框的类型列表中,除非我将它添加到 apostrophe-pages 模块中,所以我这样添加它:

types: [
    {
        name: 'test-item',
        label: 'Test Page'
    }
]

我是否需要做一些不同的事情来让模块从 lib/modules/test-item/views/index.html 加载模板,而不是在找不到模板时抛出错误lib/modules/apostrophe-pages/views/pages/测试-item.html?

谢谢!

apostrophe-custom-pages 模板仍然存在于项目级别 lib/modules/apostrophe-pages/views/pages/MODULE-NAME.html

如果您尝试将自定义页面完全模块化为 npm 模块,您可以制作一个基于 improve 的模块,该模块可以向 apostrophe-pages 模块添加视图。