Gridsome source-filesystem 添加标签说明

Gridsome source-filesystem add tag description

我正在使用 @gridsome/source-filesystem 这个配置:

{
  use: '@gridsome/source-filesystem',
  options: {
    typeName: 'Post',
    path: 'content/posts/**/*.md',
    refs: {
      tags: {
        typeName: 'Tag',
        create: true
      },
      author: {
        typeName: 'Author',
        create: true
      }
    }
  },
}

现在我只想为一个标签添加 description ,所以我在 content/posts/my-tag.md:

中创建了一个新文档
---
title: Tag-Title
description:tag description
---

如何将此文档连接到 allTags 集合?

或任何其他方式(例如 Tags 没有 @gridsome/source-filesystem),将 description 添加到 collection 中存在的 node

如果您只想添加 allTags,您可以为其创建 markdown。

gridsome.config.js

...
    {
      use: '@gridsome/source-filesystem',
      options: {
        path: 'content/tags/**/*.md',
        typeName: 'Tag'
      },
    }
...

添加文件content/tags/my-tag.md

---
title: Tag-Title
description: tag description
---

你可以探索

{
  allTag {
    edges {
      node {
        id
        title
        description
      }
    }
  }
}
{
  "data": {
    "allTag": {
      "edges": [
        {
          "node": {
            "id": "******", // random hash
            "title": "Tag-Title",
            "description": "tag description"
          }
        },
        {
          "node": {
            "id": "foo",
            "title": "foo",
            "description": ""
          }
        },
...

但是,这无法连接到您的 Post

或者只是在Tag中添加了说明,可以使用addSchemaResolvers。 在 gridsome.server.js

module.exports = function(api) {
  api.loadSource(async ({ addSchemaResolvers }) => {
    addSchemaResolvers({
      Tag: {
        description: {
          type: "String",
          resolve(obj) {
            if (!obj.description) {
              // coding your logic
              return "set description";
            } else {
              return obj.description;
            }
          }
        }
      }
    });
  });
};