From 37671d90409e56112d585ca5c902010c11238196 Mon Sep 17 00:00:00 2001 From: HerrHase Date: Sun, 31 Jul 2022 19:25:54 +0200 Subject: [PATCH] bugfix for post --- packages/frontend/views/templates/post/default.eta | 11 +++++++++++ packages/server/eta/parseMarkdown.js | 9 ++++++++- packages/server/http/notfound.js | 3 ++- packages/server/http/page.js | 3 ++- packages/server/http/post.js | 8 +++++--- packages/server/stores/post.js | 12 ++++++++---- packages/server/stores/settings.js | 6 +++--- 7 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 packages/frontend/views/templates/post/default.eta diff --git a/packages/frontend/views/templates/post/default.eta b/packages/frontend/views/templates/post/default.eta new file mode 100644 index 0000000..92f7600 --- /dev/null +++ b/packages/frontend/views/templates/post/default.eta @@ -0,0 +1,11 @@ +{{# layout('layout') }} + +
+
+
+
+ {{! it.parseMarkdown(it.page.data.content) }} +
+
+
+
\ No newline at end of file diff --git a/packages/server/eta/parseMarkdown.js b/packages/server/eta/parseMarkdown.js index 13e2c5e..8c8d59e 100644 --- a/packages/server/eta/parseMarkdown.js +++ b/packages/server/eta/parseMarkdown.js @@ -7,5 +7,12 @@ import { marked } from 'marked' */ export default function parseMarkdown(value) { - return marked.parse(value) + + let result = '' + + if (value) { + result = marked.parse(value) + } + + return result } \ No newline at end of file diff --git a/packages/server/http/notfound.js b/packages/server/http/notfound.js index 2804823..218833e 100644 --- a/packages/server/http/notfound.js +++ b/packages/server/http/notfound.js @@ -18,6 +18,7 @@ export default async function(fastify, opts) { */ fastify.get('/404', async function(request, response) { + // create object for handling in template const page = { data: { title: '404' @@ -26,7 +27,7 @@ export default async function(fastify, opts) { return response .code(404) - .view('../frontend/views/404', { + .view('../views/404', { page: page }) }) diff --git a/packages/server/http/page.js b/packages/server/http/page.js index aac8895..51f158a 100644 --- a/packages/server/http/page.js +++ b/packages/server/http/page.js @@ -5,7 +5,7 @@ import directusResponseHandler from './../handlers/directusResponse.js' /** - * page + * Page * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License @@ -43,4 +43,5 @@ export default async function(fastify, opts) { fastify.get('/*', async function(request, response) { return response.view('../views/templates/page/' + response.locals.page.data.template) }) + } \ No newline at end of file diff --git a/packages/server/http/post.js b/packages/server/http/post.js index 0f726fe..084e98e 100644 --- a/packages/server/http/post.js +++ b/packages/server/http/post.js @@ -1,4 +1,6 @@ -import PageStore from './../stores/post.js' +import PostStore from './../stores/post.js' +import directusResponseHandler from './../handlers/directusResponse.js' + import path from 'path' /** @@ -25,8 +27,8 @@ export default async function(fastify, opts) { const postStore = new PostStore() // getting single page - let post = await store.findOneBySlug(request.params.slug) - directusResponseHandler.one(post, response) + let post = await postStore.findOneBySlug(request.params.slug) + directusResponseHandler.single(post, response) }) diff --git a/packages/server/stores/post.js b/packages/server/stores/post.js index b0e7152..0c7c718 100644 --- a/packages/server/stores/post.js +++ b/packages/server/stores/post.js @@ -1,14 +1,18 @@ import DirectusAbstractStore from './directusAbstract.js' /** - * Posts from Directus + * Posts from posts * + * @author Björn Hase + * @license http://opensource.org/licenses/MIT The MIT License + * @link https://gitea.node001.net/HerrHase/super-fastify-directus.git * */ class PostStore extends DirectusAbstractStore { /** + * set name of endpoint * * * @param {string} endpoint @@ -41,8 +45,8 @@ class PostStore extends DirectusAbstractStore { 'teaser_media.description', ], filter: { - status : 'published', - published_at : { + status : 'published', + published_at : { '_nnull': true } }, @@ -59,7 +63,7 @@ class PostStore extends DirectusAbstractStore { * @return {object} */ findOneBySlug(slug) { - return this.items.readOne({ + return this.items.readByQuery({ fields: [ 'title', 'slug', diff --git a/packages/server/stores/settings.js b/packages/server/stores/settings.js index 43b737a..264c07f 100644 --- a/packages/server/stores/settings.js +++ b/packages/server/stores/settings.js @@ -1,7 +1,7 @@ import DirectusAbstractStore from './directusAbstract.js' /** - * Settings + * Settings from directus_settings * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License @@ -11,7 +11,7 @@ import DirectusAbstractStore from './directusAbstract.js' class SettingsStore extends DirectusAbstractStore { /** - * + * set name of endpoint * * @param {string} endpoint * @@ -21,7 +21,7 @@ class SettingsStore extends DirectusAbstractStore { } /** - * getting setting + * get settings from endpoint * * * @return {object}