From d6f625c94361f117d990dde53e883eeac5baf607 Mon Sep 17 00:00:00 2001 From: hamdy Date: Mon, 30 Nov 2020 13:45:04 +0200 Subject: [PATCH] fix tags --- gridsome.config.js | 2 +- gridsome.server.js | 36 +++++++++++++++++++++++++++++++++++- src/templates/Tag.vue | 22 +++++++++++----------- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/gridsome.config.js b/gridsome.config.js index 5c8e3f8d5..e657df240 100644 --- a/gridsome.config.js +++ b/gridsome.config.js @@ -176,7 +176,7 @@ module.exports = { }], ProjectTag: [{ - path: '/projects/tags/:id', + path: '/tags/:id', component: '~/templates/Tag.vue' }], diff --git a/gridsome.server.js b/gridsome.server.js index 0fd7a417e..9bc8ae3dd 100644 --- a/gridsome.server.js +++ b/gridsome.server.js @@ -97,8 +97,9 @@ module.exports = function(api) { private: private } }) - }) + }); + api.createPages(async({ graphql, createPage @@ -178,4 +179,37 @@ module.exports = function(api) { }); }); + + api.createPages(async({ + graphql, + createPage +}) => { + // Use the Pages API here: https://gridsome.org/docs/pages-api + const { + data + } = await graphql(`{ + allProjectTag { + edges { + + node { + id + path + } + } + } +} +`); + + data.allProjectTag.edges.forEach(function(element) { + createPage({ + path: element.node.path, + component: './src/templates/Tag.vue', + context: { + id: element.node.id + } + }); + + }); + +}); } \ No newline at end of file diff --git a/src/templates/Tag.vue b/src/templates/Tag.vue index 32197c12a..a5f223dce 100644 --- a/src/templates/Tag.vue +++ b/src/templates/Tag.vue @@ -2,12 +2,12 @@
-

{{ $page.tag.title }}

+

{{ $page.projectTag.title }}

A {{ $page.tag.belongsTo.totalCount }} Projects + >{{ $page.projectTag.belongsTo.totalCount }} Projects

@@ -15,7 +15,7 @@
@@ -23,11 +23,11 @@
@@ -35,11 +35,11 @@ - query($id: ID!, $page:Int) { - tag(id: $id) { + query($id: ID!) { + projectTag(id: $id) { title path - belongsTo(perPage: 10, page: $page) @paginate { + belongsTo{ totalCount pageInfo { totalPages @@ -90,7 +90,7 @@ export default { metaInfo() { return { - title: this.$page.tag.title + title: "" }; } };