【问题标题】:How to have variables in Rich Text Editor如何在富文本编辑器中拥有变量
【发布时间】:2020-01-13 16:47:26
【问题描述】:

我有许多不同网站上相同的隐私政策文件。 我将文档存储在 Document 内容类型中,其中包含一个名为“body”的富文本字段。 我想以编程方式更改网站名称和网址,而不复制条目。

我尝试使用嵌入式条目。例如,有另一个名为 WebSite 的内容类型,并且有两个字段,标题和 url。但是无法访问富文本中的每个特定字段,因此当我解析有效负载时,我不知道何时使用标题以及何时使用 url。

我可以为网站标题和网站名称设置不同的内容类型,但感觉有点矫枉过正。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: modeling contentful


    【解决方案1】:

    您可以通过多种方式解决此问题。

    您通常在 WordPress 中看到的短代码可以在这里发挥很大的作用。例如,在您的文本中放置[[website_name]][[website_url]],并在渲染期间对其进行解析将是一种非常简单的实现方式。

    或者,如果您确实沿着嵌入式进入路线...

    如果您通过 GraphQL 获取内容,则可以使用以下语法获取此内容,您需要在解析 RichText 时查找条目,但它可以让您访问字段:

    content {
        json
        links {
          entries {
            inline {
              sys {
                id
              }
              ... on SiteContentMention { // Have a fragment for each content type you can embed
                title
                url
              }
              __typename
            }
          }
        }
      }
    

    您将在链接对象中看到与 sys.id 匹配的字段的所需数据

    如果您通过常规内容交付 API 获取内容。您将在包含顶级字段中看到所需的数据,再次与 sys.id 匹配。您可能需要增加include 参数的值。记录在这里:https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/links/retrieval-of-linked-items

    【讨论】:

    • 是的,这可行。我唯一的问题是它有点脆。自从我发布了这个问题后,我就阅读了这些关于缩微拷贝的文章,这就是我想说的我想要避免的,但另一方面可能不太容易出错? contentful.com/r/knowledgebase/dynamic-microcopylevelup.gitconnected.com/…contentful.com/blog/2019/05/31/…
    • 我认为这取决于您如何管理呈现 RichText 内容的代码。如果短代码方法感觉很脆弱,因为有很多网站呈现 RichText 内容,并且您必须使用呈现网站链接所需的代码来维护它们中的每一个,那么该文章中的方法可能更适合您。如果它是共享代码库,那么我认为短代码方法很好,如果代码在 Contentful 中输入错误,那么很容易更新。
    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多