all repos — kushiyaki @ c4d087483d9dd802b16dc357a1f870aed249c609

🍢 A tiny static site generator for grilling markdown files to perfection

feat: merge createSiteIndex into index.js
trickyni trickyniv56@gmail.com
Mon, 25 May 2026 13:38:10 +0300
commit

c4d087483d9dd802b16dc357a1f870aed249c609

parent

a88e58b9e2b28e34e033040a9e88f501efa05788

4 files changed, 18 insertions(+), 19 deletions(-)

jump to
M .npmignore.npmignore

@@ -2,4 +2,5 @@ .git

.gitignore input out +templates node_modules
D createSiteIndex.js

@@ -1,17 +0,0 @@

-import { glob } from "glob"; -import { resolve } from "path"; -import { read } from "to-vfile"; -import { matter } from "vfile-matter"; - -export async function createSiteIndex() { - const inputDir = resolve(process.cwd(), "input"); - let site = await glob(`${inputDir}/**/*.md`, { nodir: true }); - return Promise.all( - site.map(async (page) => { - let file = await read(page, "utf-8"); - matter(file); - file.data.matter.filename = file.stem; - return file.data.matter; - }), - ); -}
M index.jsindex.js

@@ -12,20 +12,34 @@ import remarkRehype from "remark-rehype";

import { matter } from "vfile-matter"; import { read, write } from "to-vfile"; import { unified } from "unified"; -import { createSiteIndex } from "./createSiteIndex.js"; import { emptyDir } from "fs-extra"; import cpy from "cpy"; import { glob } from "glob"; import { resolve } from "path"; +// Resolve input/putput directories respecting a project's root folder. const inputDir = resolve(process.cwd(), "input"); const outputDir = resolve(process.cwd(), "out"); + +async function createSiteIndex() { + let site = await glob(`${inputDir}/**/*.md`, { nodir: true }); + return Promise.all( + site.map(async (page) => { + let file = await read(page, "utf-8"); + matter(file); + file.data.matter.filename = file.stem; + return file.data.matter; + }), + ); +} +// mise en place emptyDir(`${outputDir}`, { recursive: true }); // clears the output folder await cpy([`${inputDir}/**`, `!${inputDir}/**/*.md`], `${outputDir}`, { flat: true, }); //copies all assets into out/ const siteIndex = await createSiteIndex(); +// main function export async function kushiyaki(filepath) { const file = await read(filepath, "utf-8"); matter(file, { strip: true });

@@ -54,6 +68,7 @@ output.dirname = outputDir;

return output; } +// Loop through function for each page for (const file of await glob(`${inputDir}/**/*.md`, { nodir: true })) { await write(await kushiyaki(file)); }
M package.jsonpackage.json

@@ -1,6 +1,6 @@

{ "name": "kushiyaki", - "version": "0.1.0", + "version": "0.1.1", "description": "A tiny static site generator for grilling markdown files to perfection ", "funding": "ko-fi.com/trickyni", "repository": {