blogforge
v0.1.14
Published
A powerful CLI tool for managing Nuxt Content v3 blogs
Downloads
20
Maintainers
Readme
BlogForge 🖋️
The craftsman's toolkit for Nuxt Content v3 blogs – forge, shape, and perfect your content with precision.
Overview
BlogForge is a powerful command-line tool designed to streamline the content management process for Nuxt Content v3 blogs. It provides a comprehensive set of commands for managing articles, authors, categories, and images, making it easier to maintain a high-quality blog.
Features
- 📝 Article Management: Create, edit, list, publish/unpublish, validate, and search articles
- 👤 Author Management: Add, edit, list, and delete authors
- 🏷️ Category Management: Create and edit content categories
- 🖼️ Image Management: Optimize, convert, validate, and manage blog images
- 🔍 SEO Tools: Check articles for SEO improvements
- 🩺 Doctor Commands: Diagnose and fix common issues in your blog content
- 🌐 Multilingual Support: Manage content in multiple languages
- 🧙♂️ Interactive Mode: User-friendly interactive command-line interface
Installation
# Install globally
npm install -g blogforge
# Or use with npx
npx blogforgeQuickstart
Initialize a new project:
npx blogforge initThis will guide you through setting up your blog structure and creating sample content.
Usage
Interactive Mode
The easiest way to use BlogForge is in interactive mode:
npx blogforge
This launches an interactive menu where you can select commands to run.
Command Line Mode
You can also run specific commands directly:
# Create a new article
npx blogforge articles create --title="My New Article" --description="This is my article description" --author="johndoe" --tags="nuxt,content,blog" --locale="en"
# List all articles
npx blogforge articles list
# Run the doctor to diagnose issues
npx blogforge doctorCommand Groups
articles- Article management commandsauthor- Author management commandscategory- Category management commandsimages- Image management toolsdoctor- Run diagnostic checks on your blog content
Configuration
BlogForge is configurable through a blogforge.config.js, blogforge.config.ts, or blogforge.config.json file. Create this file in your project root:
// blogforge.config.js
export default {
// Directory structure
directories: {
articles: "articles",
authors: "authors",
categories: "categories",
images: "images",
},
// Multilingual settings
multilingual: true,
languages: ["en", "ar"],
defaultLanguage: "ar",
// Schema extensions
schemaExtensions: {
article: {
// Add custom fields
customField: "string",
},
author: {},
category: {},
},
// Default values
defaultValues: {
article: {
isDraft: true,
},
},
};Requirements
- Node.js 20.x or higher
- A Nuxt Content v3 project (with content.config.ts or nuxt.config.ts)
Documentation
For detailed command documentation, see the docs directory. This includes:
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please read CONTRIBUTING.md for detailed guidelines.
Development Workflow
- Fork the repository
- Clone your fork locally
- Create a feature branch:
git checkout -b feat/your-feature-name - Make your changes following our coding standards
- Commit using conventional commits:
git commit -m "feat(cli): add new article template command" - Push to your fork:
git push origin feat/your-feature-name - Create a Pull Request with a clear description
Quick Commands
# Install dependencies
npm install
# Lint code
npm run lint
# Build project
npm run build
# Run in development
npm run devBranch Protection
Our master branch is protected with the following rules:
- ✅ Pull request reviews required (1 approval)
- ✅ Status checks must pass (Build & Test, PR Validation)
- ✅ Branches must be up to date
- ✅ Conversations must be resolved
- ❌ Force pushes disabled
Release Process
We use Release Drafter to automatically generate release notes from Pull Requests. The release process is:
- Merge PRs to
master- this updates the release draft - Review the generated release notes
- Publish the release - this triggers npm publishing
For more details, see CONTRIBUTING.md.
BlogForge CLI: Future Implementation Roadmap
AI SDK Integration
- [ ] Integrate an AI SDK to enable advanced content operations.
- [ ]
write: Generate new articles, categories, or author bios using AI. - [ ]
expand: Enrich existing content with more details, examples, or explanations. - [ ]
analyze: Review articles/categories for quality, tone, and SEO best practices. - [ ]
correct: Automatically fix grammar, spelling, and style issues in markdown files.
Model Context Protocol (MCP) Support
- [ ] Add MCP server/client integration for collaborative and context-aware content editing.
- [ ] Enable real-time suggestions and AI-driven workflows using MCP.
CLI Stability Improvements
- [ ] Enhance error handling and user feedback throughout the CLI.
- [ ] Add comprehensive tests for all commands and utilities.
- [ ] Improve logging and diagnostics for easier troubleshooting.
- [ ] Ensure compatibility with latest Node.js and Nuxt Content versions.
Additional Planned Features
- [ ] Interactive onboarding and guided setup for new users.
- [ ] Advanced linting and formatting for markdown and frontmatter.
- [ ] Batch operations for bulk content management.
- [ ] Translation helper: Integrate with translation systems and auto-translate content.
Automatic Cross-Linking Between Articles
- [ ] Enable the CLI to automatically create cross-links between articles.
- [ ] The CLI will read all articles, analyze references and related topics, and edit content to add internal links (e.g., "See also: ...") between relevant articles.
Nuxt Content Collection Sources Support
- [ ] Support defining collection sources via glob patterns.
- [ ] Allow configuring
include,exclude,prefix, andcwdfor local collection sources. - [ ] Enable fetching content from remote git repositories, including support for
repository,authToken, andauthBasicconfigurations.
Import & Export Functionality
- [ ] Import and export content to and from popular platforms:
- Ghost (primary focus)
- WordPress
- Medium
- [ ] Easily get your content ready for publishing on these platforms or import existing content from them.
- [ ] Support for platform-specific frontmatter and formatting.
- [ ] Export options for JSON, CSV, and HTML.
Blog Analytics (Planned)
- [ ] Powerful analytics commands to provide insights into your content structure and quality, without requiring external analytics services.
- [ ] Command structure:
blogsmith analytics overview– General content statisticsblogsmith analytics content– Content structure insightsblogsmith analytics authors– Author contribution metricsblogsmith analytics categories– Category distributionblogsmith analytics seo– SEO readiness assessmentblogsmith analytics trends– Content publishing trends
- [ ] Visually appealing console output using tables, ASCII charts, and color-coded metrics.
- [ ] Export analytics reports as JSON, CSV, or HTML.
- [ ] Filter and compare metrics by date, author, category, etc.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgements
- Nuxt Content - The content module for Nuxt.js
- Citty - CLI framework used in this project
- All other dependencies
