Navigation 盖茨比&x2B;Kontent-导航和面包屑

Navigation 盖茨比&x2B;Kontent-导航和面包屑,navigation,gatsby,breadcrumbs,jamstack,kentico-kontent,Navigation,Gatsby,Breadcrumbs,Jamstack,Kentico Kontent,更新 深入阅读《盖茨比文件》,我发现了一些可能的解决方案: 仍然在Kontent中修补我的内容类型,并找出GraphQL位 ============= 原件: 我正在从更传统的开箱即用CMS解决方案过渡到使用JAMStack和headless CMS 在与盖茨比和康滕特(Gatsby and Kontent)一起尝试为迁移建立概念证明的过程中,我陷入了如何生成导航和面包屑的困境,这在传统的CMS内容层次结构中是理所当然的 我阅读了一些文章,逐渐了解了使用内容类型构建导航的概念 这是如何从

更新

深入阅读《盖茨比文件》,我发现了一些可能的解决方案:

仍然在Kontent中修补我的内容类型,并找出GraphQL位

=============

原件:

我正在从更传统的开箱即用CMS解决方案过渡到使用JAMStack和headless CMS

在与盖茨比和康滕特(Gatsby and Kontent)一起尝试为迁移建立概念证明的过程中,我陷入了如何生成导航和面包屑的困境,这在传统的CMS内容层次结构中是理所当然的

我阅读了一些文章,逐渐了解了使用内容类型构建导航的概念

这是如何从一个扁平的内容层次结构拉到一起并生成链接的

e、 g.www.example.com/some/deep/linked/page


谢谢

我刚从传统CMS框架转到Kontent,所以我知道你的感受!我想你已经读过这本书了吧?选项C为您提供了传统的分层CMS内容树,其中包含导航项目内容类型上的链接项目。这样就可以很容易地构建菜单

在《盖茨比》中,我个人刚刚使用URL段塞作为页面创建的路径。这是在gatsby-node.js文件中完成的,您可以在其中使用GraphQL查询内容,然后创建如下节点:

_.each(result.data.allArticles.nodes, node => {
  createPage({
    path: `/articles/${node.elements.article_url_slug.value}/`,
    component: slash(articleTemplate),
    context: { slug: `${node.elements.article_url_slug.value}` },
  })
})
只要你的内容编辑器维护slug,这就行了。如果要根据菜单结构自动生成路径,可以通过为内容项添加链接项(而不是URL字段)来扩展导航项内容类型。然后,在创建节点时,您可以循环浏览导航树,并根据项目标题构建路径,查找内容项目的类型,以便使用适当的组件并将所需的上下文传递给它

然后,您可以在面包屑组件中使用相同的层次结构-您只需要在导航项中搜索当前项,然后返回树。有道理吗


虽然一开始不得不建造所有这些基础设施可能会让人沮丧,但我喜欢完全的自由和为项目的特定需求选择正确方法的能力。

谢谢Rob。我们很乐意让内容编辑器创建单独的页面段塞,但对于深度链接(有些部分深入到4级),我认为通过编程方式生成它们更安全。我现在正在通过盖茨比文档重新学习如何建立网站:)Kentico CMS R.I.P.仅供参考:我们在本期中一直在努力: