/
githubmirror
/
30-seconds-of-code
Обзор
Документация
Войти
/
githubmirror
/
30-seconds-of-code
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/lib/astroContent.js
59 строк
1 KB
Angelos Chalaris
Generate all snippet pages in development
24 авг 2024, 14:48
Не верифицирован
24 авг 2024, 14:48
4753558
Код
Авторство
О чём код?
import fs from 'fs-extra/esm'; import Page from '#src/adapters/page.js'; import Collection from '#src/models/collection.js'; import Snippet from '#src/models/snippet.js'; import settings from '#src/config/settings.js'; export default class AstroContent { static get outputParams() { return [({ spaces: 2 }, () => {})]; } static generate() { this.prepare(); this.generateHomePage(); this.generateCollectionPages(); this.generateSnippetPages(); } static prepare() { // Ensure dir exists fs.ensureDirSync(settings.paths.out.pages); } static generateHomePage() { const page = Page.home.serialize; // Write to file fs.writeJson(settings.paths.out.home, page, ...this.outputParams); } static generateCollectionPages() { const pages = Collection.all.reduce((acc, collection) => { collection.pages.forEach(page => { acc[page.key] = page.serialize; }); return acc; }, {}); // Write to file fs.writeJson(settings.paths.out.collections, pages, ...this.outputParams); } static generateSnippetPages() { const snippets = process.env.NODE_ENV === 'development' ? Snippet.all : Snippet.scope('published'); const pages = snippets.reduce((acc, snippet) => { const page = snippet.page; acc[page.key] = page.serialize; return acc; }, {}); // Write to file fs.writeJson(settings.paths.out.snippets, pages, ...this.outputParams); } }