@kitmodule/kitfrontmatter
v1.0.3
Published
Convert JavaScript objects to YAML front matter and Markdown in vanilla JavaScript lightweight, dependency-free, and easy to use.
Maintainers
Readme
📝 KitFrontMatter by Kitmodule
Generate Markdown front matter and convert JavaScript objects to YAML — lightweight, dependency-free, and easy to use.
✨ Features
- 🏷️ Convert JavaScript objects to YAML, supports nested objects and arrays.
- 📄 Generate full Markdown front matter with
---delimiters. - 🔀 Switch array style: inline or block.
- ⚡ Pure vanilla JavaScript, zero dependencies.
- 💨 Quick helpers for one-line conversions:
headerToYAML,objectToYAML,frontMatterMarkdown.
🚀 Installation
Using npm
npm install @kitmodule/kitfrontmatterUsing CDN (latest version automatically)
<script src="https://unpkg.com/@kitmodule/kitfrontmatter/dist/kitfrontmatter.min.js"></script>or with jsDelivr:
<script src="https://cdn.jsdelivr.net/npm/@kitmodule/kitfrontmatter/dist/kitfrontmatter.min.js"></script>⚠️ For production stability, you can lock to a specific version:
<script src="https://cdn.jsdelivr.net/npm/@kitmodule/[email protected]/dist/kitfrontmatter.min.js"></script>
💡 Usage
Browser (CDN)
<script src="https://unpkg.com/@kitmodule/kitfrontmatter/dist/kitfrontmatter.min.js"></script>
<script>
const header = { title: "My Post", tags: ["js", "yaml"] };
const body = "Hello world!";
const fm = new KitFrontMatter(header, body);
console.log(fm.toMarkdown());
</script>Node.js / ES Module
import { KitFrontMatter, headerToYAML, objectToYAML, frontMatterMarkdown } from "@kitmodule/kitfrontmatter";
// Quick YAML conversion
const header = { title: "My Post", tags: ["js", "yaml"] };
console.log(headerToYAML(header, { blockArrays: true }));
// Convert any JS object to YAML
const config = { theme: "dark", plugins: ["seo", "analytics"] };
console.log(objectToYAML(config, { blockArrays: true }));
// Full front matter Markdown
const markdown = frontMatterMarkdown(header, "Hello world!", { blockArrays: true });
console.log(markdown);🧩 API Reference
new KitFrontMatter(header, body)
Create a front matter instance.
| Param | Type | Description | | ------ | ------ | ------------------------------- | | header | object | Front matter header object | | body | string | Body content (Markdown content) |
Instance Methods
| Method | Description |
| ---------------- | --------------------------------------------------- |
| .toYAML() | Convert header object to YAML string |
| .toMarkdown() | Convert header + body to full Markdown front matter |
| .isBlock(true) | Switch arrays to block style |
Quick Helper Functions
| Function | Description |
| -------------------------------------------- | ------------------------------------------ |
| headerToYAML(header, options) | Convert front matter header to YAML string |
| objectToYAML(obj, options) | Convert any JS object to YAML string |
| frontMatterMarkdown(header, body, options) | Generate full Markdown front matter |
🧪 Example Output
const header = { title: "My Post", tags: ["js", "yaml"] };
const body = "This is the content.";
console.log(frontMatterMarkdown(header, body, { blockArrays: true }));Output:
---
title: "My Post"
tags:
- "js"
- "yaml"
---
This is the content.☕ Support the Author
If you find this library useful, you can support me:
🧾 License
Released under the MIT License © 2025 Huỳnh Nhân Quốc · Open Source @Kit Module
