feat: add blog features and meilisearch plugin

develop
Näser 3 years ago
parent dac323a339
commit 1ee718133e

@ -22,6 +22,13 @@ services:
ports:
- "6379:6379"
gs-meili:
image: "getmeili/meilisearch"
ports:
- "7700:7700"
environment:
- MEILI_MASTER_KEY=GuitarMasterKeys
gs_redis_commander:
image: rediscommander/redis-commander:latest
environment:

29
package-lock.json generated

@ -18,6 +18,7 @@
"mysql": "2.18.1",
"pg": "8.8.0",
"strapi-plugin-import-export-entries": "1.18.0",
"strapi-plugin-meilisearch": "^0.9.1",
"strapi-plugin-menus": "1.2.1",
"strapi-plugin-populate-deep": "1.1.2"
},
@ -6950,6 +6951,14 @@
"yarn": ">=1"
}
},
"node_modules/cross-fetch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
"dependencies": {
"node-fetch": "2.6.7"
}
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@ -11209,6 +11218,14 @@
"node": ">= 0.6"
}
},
"node_modules/meilisearch": {
"version": "0.30.0",
"resolved": "https://registry.npmjs.org/meilisearch/-/meilisearch-0.30.0.tgz",
"integrity": "sha512-3y1hALOwTDpquYar+gDREqRasFPWKxkWAhk6h+RF+nKObPVf9N77wcTNvukGwOKbxRyJnKge0OPgAB1BkB9VVw==",
"dependencies": {
"cross-fetch": "^3.1.5"
}
},
"node_modules/memfs": {
"version": "3.4.13",
"resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz",
@ -15472,6 +15489,18 @@
"@strapi/strapi": "^4.0.0"
}
},
"node_modules/strapi-plugin-meilisearch": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/strapi-plugin-meilisearch/-/strapi-plugin-meilisearch-0.9.1.tgz",
"integrity": "sha512-kSZjqYJuuXulqPsIc1ZcpCG7xNbYfCYCNDNRN6CI/aisWFL65dQYVG7HkVOAaJfxdUaboFKNu9c5R1hzbtJwTQ==",
"dependencies": {
"@strapi/utils": "^4.5.4",
"meilisearch": "^0.30.0"
},
"engines": {
"npm": ">=6.0.0"
}
},
"node_modules/strapi-plugin-menus": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/strapi-plugin-menus/-/strapi-plugin-menus-1.2.1.tgz",

@ -22,6 +22,7 @@
"mysql": "2.18.1",
"pg": "8.8.0",
"strapi-plugin-import-export-entries": "1.18.0",
"strapi-plugin-meilisearch": "^0.9.1",
"strapi-plugin-menus": "1.2.1",
"strapi-plugin-populate-deep": "1.1.2"
},

@ -0,0 +1,51 @@
{
"kind": "collectionType",
"collectionName": "articles",
"info": {
"singularName": "article",
"pluralName": "articles",
"displayName": "Article",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"title": {
"type": "string"
},
"description": {
"type": "text"
},
"content": {
"type": "richtext"
},
"slug": {
"type": "uid",
"targetField": "title"
},
"category": {
"type": "relation",
"relation": "manyToOne",
"target": "api::category.category",
"inversedBy": "articles"
},
"image": {
"allowedTypes": [
"images",
"files",
"videos",
"audios"
],
"type": "media",
"multiple": false
},
"author": {
"type": "relation",
"relation": "manyToOne",
"target": "api::writer.writer",
"inversedBy": "articles"
}
}
}

@ -0,0 +1,7 @@
/**
* article controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::article.article');

@ -0,0 +1,7 @@
/**
* article router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::article.article');

@ -0,0 +1,7 @@
/**
* article service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::article.article');

@ -0,0 +1,39 @@
{
"kind": "collectionType",
"collectionName": "categories",
"info": {
"singularName": "category",
"pluralName": "categories",
"displayName": "Category",
"description": ""
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string"
},
"slug": {
"type": "uid",
"targetField": "name"
},
"articles": {
"type": "relation",
"relation": "oneToMany",
"target": "api::article.article",
"mappedBy": "category"
},
"image": {
"allowedTypes": [
"images",
"files",
"videos",
"audios"
],
"type": "media",
"multiple": false
}
}
}

@ -0,0 +1,7 @@
/**
* category controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::category.category');

@ -0,0 +1,7 @@
/**
* category router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::category.category');

@ -0,0 +1,7 @@
/**
* category service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::category.category');

@ -0,0 +1,37 @@
{
"kind": "collectionType",
"collectionName": "writers",
"info": {
"singularName": "writer",
"pluralName": "writers",
"displayName": "Writer"
},
"options": {
"draftAndPublish": true
},
"pluginOptions": {},
"attributes": {
"name": {
"type": "string"
},
"picture": {
"allowedTypes": [
"images",
"files",
"videos",
"audios"
],
"type": "media",
"multiple": false
},
"articles": {
"type": "relation",
"relation": "oneToMany",
"target": "api::article.article",
"mappedBy": "author"
},
"email": {
"type": "string"
}
}
}

@ -0,0 +1,7 @@
/**
* writer controller
*/
import { factories } from '@strapi/strapi'
export default factories.createCoreController('api::writer.writer');

@ -0,0 +1,7 @@
/**
* writer router
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreRouter('api::writer.writer');

@ -0,0 +1,7 @@
/**
* writer service
*/
import { factories } from '@strapi/strapi';
export default factories.createCoreService('api::writer.writer');
Loading…
Cancel
Save