Graphql Gridsome源文件系统添加标记说明

Graphql Gridsome源文件系统添加标记说明,graphql,gridsome,yaml-front-matter,gridsome-plugin,gridsome-source-filesystem,Graphql,Gridsome,Yaml Front Matter,Gridsome Plugin,Gridsome Source Filesystem,我正在使用此配置: { use: '@gridsome/source-filesystem', options: { typeName: 'Post', path: 'content/posts/**/*.md', refs: { tags: { typeName: 'Tag', create: true }, author: { typeName: 'Author',

我正在使用此配置:

{
  use: '@gridsome/source-filesystem',
  options: {
    typeName: 'Post',
    path: 'content/posts/**/*.md',
    refs: {
      tags: {
        typeName: 'Tag',
        create: true
      },
      author: {
        typeName: 'Author',
        create: true
      }
    }
  },
}
现在我只想为一个标签添加
说明
,因此我在
内容/posts/my tag.md
中创建了一个新文档:

---
标题:标签标题
描述:标签描述
---
如何将此文档连接到
allTags
集合


或者任何其他方式(例如,不使用for
标记),将
描述添加到
集合中的exists
节点

如果您只想添加
所有标记
,您可以为其创建标记

gridsome.config.js中

。。。
{
使用:“@gridsome/source filesystem”,
选项:{
路径:“content/tags/***.md”,
typeName:'标记'
},
}
...
添加文件
content/tags/my tag.md

---
title: Tag-Title
description: tag description
---
你可以爆炸

{
  allTag {
    edges {
      node {
        id
        title
        description
      }
    }
  }
}
但是,这无法连接到您的
Post

或者只是将说明添加到
标记
,您可以使用
addSchemaResolvers
。 在
gridsome.server.js中

module.exports=函数(api){
api.loadSource(异步({addSchemaResolvers})=>{
addSchemaResolvers({
标签:{
说明:{
键入:“字符串”,
解决(obj){
如果(!对象描述){
//编写逻辑代码
返回“集合描述”;
}否则{
返回对象描述;
}
}
}
}
});
});
};

这似乎是一个好的方向。我知道只要访问属性,逻辑就会运行。是否不可能一次加载所有信息?也就是说,在源文件系统生成的信息之上添加信息?若您不需要在Post中创建标记,则可以将标记文件相互关联
{typeName:'Tag',create:false}
并将
id:your id
添加到
content/tags/my Tag.md
,将
标记:['your-id']
添加到
content/posts/***.md
。如果您需要一个示例,我将添加另一个答案,只需请求它。但通过这种方式,我必须为
content/posts/***.md
中的每个标记创建一个
x-tag.md
文件,对吗?这里有一个折衷办法-在单独的文件中或通过
post
创建标记,但是如果另一个文件中不存在标记,则没有正式的方法**从post创建标记**?如果否,我会将此Q标记为答案,因为在我的问题中,不为每个标记创建
.md
是有限制的,因此其他解决方案将不接受。你是对的。对不起,我想不出更好的办法了:(thx)
{
  "data": {
    "allTag": {
      "edges": [
        {
          "node": {
            "id": "******", // random hash
            "title": "Tag-Title",
            "description": "tag description"
          }
        },
        {
          "node": {
            "id": "foo",
            "title": "foo",
            "description": ""
          }
        },
...