【问题标题】:Keystone.js Content field type rendering best practiceKeystone.js 内容字段类型渲染最佳实践
【发布时间】:2021-04-06 02:38:54
【问题描述】:

我有一个 Content 类型的字段,我想将其呈现为 html。从 GraphQL 端点,我收到一个类似 slate.js 的结构

 "contentExtended": {
          "document": "{\"object\":\"document\",\"data\":{},\"nodes\":[{\"object\":\"block\",\"type\":\"paragraph\",\"data\":{},\"nodes\":[{\"object\":\"text\",\"text\":\"Test extended\",\"marks\":[]}]},{\"object\":\"block\",\"type\":\"paragraph\",\"data\":{},\"nodes\":[{\"object\":\"text\",\"text\":\"\",\"marks\":[]}]},{\"object\":\"block\",\"type\":\"cloudinaryImage\",\"data\":{\"_joinIds\":[\"5feb1aad43a7940689283e62\"]},\"nodes\":[{\"object\":\"block\",\"type\":\"image\",\"data\":{},\"nodes\":[{\"object\":\"text\",\"text\":\"\",\"marks\":[]}]},{\"object\":\"block\",\"type\":\"caption\",\"data\":{},\"nodes\":[{\"object\":\"text\",\"text\":\"\",\"marks\":[]}]}]},{\"object\":\"block\",\"type\":\"paragraph\",\"data\":{},\"nodes\":[{\"object\":\"text\",\"text\":\"\",\"marks\":[]}]}]}"
        },

其中 contentExtended 是我的字段的名称。

请注意,该文档还包含对 GraphQL 查询结果中其他地方的 cloudinaryImage 的引用,因此我假设 Keystone.js 知道如何呈现它。

我想以最少的努力将其呈现为我将在我的博客应用程序中使用的 html 代码。

推荐和正确的方法是什么?

作为参考,我有 keystone graphql 模式;我正在使用 allPosts 查询获取帖子。

https://gist.github.com/Firfi/42c9fd94c738cb463e4d7e7e28de751b

【问题讨论】:

    标签: graphql keystonejs slatejs


    【解决方案1】:

    Keystone 使用 SlateJS v0.47,它的格式与现代 SlateJS 不同。

    基本上你是靠自己的,Keystone 不会帮你渲染的。

    这是我如何进行基本渲染的示例:https://gist.github.com/dimaip/0454b58d360f26c1e6a87310ace61f8c

    我不使用 cloudinary,所以不确定你应该如何渲染它,但我想你可以使用图像的 id (5feb1aad43a7940689283e62) 来构建一个 url?

    【讨论】:

      猜你喜欢
      • 2014-07-14
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多