From ad393f4243a10f9a5ab0ecd8afa5e6c07a088f5d Mon Sep 17 00:00:00 2001 From: eug-vs Date: Sun, 23 Oct 2022 01:30:18 +0300 Subject: feat: add pre-render hook --- src/config.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/config.ts') diff --git a/src/config.ts b/src/config.ts index 544d15c..ab0ec12 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,3 +1,4 @@ +import _ from 'lodash'; import { BenzinConfig } from './lib/types'; import nginxAdapter from './lib/nginxAdapter'; @@ -11,6 +12,24 @@ const config: BenzinConfig = { emojiRoot: '/public/emoji', css: '/public/style.css?h=benzin-next-cdn', }, + hooks: { + async preRender(path, data, adapter, cdn) { + if (path.length === 1 && path[0] === 'index') { + // Inject blog preview into home page + const blog = await adapter.getMarkdownSource(cdn, ['blog', 'index']); + const previewContent = blog + .split('\n') + .filter(line => line.startsWith('-')) + .slice(0, 4) + .join('\n'); + + const split = data.split('# Recent blog posts'); + return [split[0], '# Recent blog posts\n', previewContent, split[1]].join(''); + } + + return data; + } + }, }; export default config; -- cgit v1.2.3