Lumos CLI 使用指南
Lumos CLI 是一个基于 Bun 运行时的静态博客生成器命令行工具。您可以使用两种方式来运行Lumos命令:
- 使用
lumos
命令(需要将Lumos添加到系统PATH) - 使用
bun run
命令(推荐方式)
如果您想了解 Lumos 的更多高级功能,如插件系统和主题系统,请参阅 Lumos 项目介绍 和 Lumos 二次开发教程。
📚 相关文档
- Lumos 项目介绍 - 项目的详细介绍和架构说明
- Lumos 二次开发教程 - 插件和主题开发的详细教程
- README 文档 - 项目完整文档
📋 安装
确保已安装 Bun 运行时:
curl -fsSL https://bun.sh/install | bash
🚀 快速开始
工作流程示例
1. 初始化项目
# 克隆项目
git clone <repository-url>
cd lumos
# 安装依赖
bun install
2. 创建内容
使用 lumos
命令:
# 创建文章
lumos new post "Lumos 使用指南"
# 创建页面
lumos new page "关于" -p "info"
# 创建作者
lumos new author "开发者"
使用 bun run
命令:
# 创建文章
bun run src/cli.ts new post "Lumos 使用指南"
# 创建页面
bun run src/cli.ts new page "关于" -p "info"
# 创建作者
bun run src/cli.ts new author "开发者"
3. 生成数据
使用 lumos
命令:
# 生成数据文件
lumos gen
使用 bun run
命令:
# 生成数据文件
bun run src/cli.ts gen
4. 启动开发服务器
使用 lumos
命令:
# 启动服务器并监听文件变化
lumos server -w
使用 bun run
命令:
# 启动服务器并监听文件变化
bun run src/cli.ts server -w
5. 构建项目
使用 lumos
命令:
# 构建项目用于生产环境
lumos build
使用 bun run
命令:
# 构建项目用于生产环境
bun run src/cli.ts build
6. 构建 Bundler HTML 文件
使用 lumos
命令:
# 构建 HTML 文件
lumos html-gen
# 监听 HTML 文件变化并重新构建
lumos html-gen -w
使用 bun run
命令:
# 构建 HTML 文件
bun run src/cli.ts html-gen
# 监听 HTML 文件变化并重新构建
bun run src/cli.ts html-gen -w
7. 构建 主题 CSS 文件
使用 lumos
命令:
# 构建 CSS 文件
lumos css
# 监听 CSS 文件变化
lumos css -w
使用 bun run
命令:
# 构建 CSS 文件
bun run src/cli.ts css
# 监听 CSS 文件变化
bun run src/cli.ts css -w
🛠️ 命令详解
new 命令
用于创建新的文章、页面或作者文件。
语法
使用 lumos
命令:
lumos new <type> <title> [options]
使用 bun run
命令:
bun run src/cli.ts new <type> <title> [options]
参数
<type>
: 文件类型,支持post
、page
、author
<title>
: 文件标题
选项
-p, --path <path>
: 指定子目录路径
示例
创建新文章
使用
lumos
命令:lumos new post "我的第一篇文章"
使用
bun run
命令:bun run src/cli.ts new post "我的第一篇文章"
在子目录中创建文章
使用
lumos
命令:lumos new post "JavaScript 教程" -p "tutorials"
使用
bun run
命令:bun run src/cli.ts new post "JavaScript 教程" -p "tutorials"
创建新页面
使用
lumos
命令:lumos new page "关于我们"
使用
bun run
命令:bun run src/cli.ts new page "关于我们"
在子目录中创建页面
使用
lumos
命令:lumos new page "联系方式" -p "info"
使用
bun run
命令:bun run src/cli.ts new page "联系方式" -p "info"
创建新作者
使用
lumos
命令:lumos new author "张三"
使用
bun run
命令:bun run src/cli.ts new author "张三"
gen 命令
用于解析所有 Markdown、JSON、YAML 文件,生成 data.json 数据文件。
语法
使用 lumos
命令:
lumos gen
使用 bun run
命令:
bun run src/cli.ts gen
示例
生成数据文件
使用
lumos
命令:lumos gen
使用
bun run
命令:bun run src/cli.ts gen
生成数据文件(别名命令)
使用
lumos
命令:lumos generate
使用
bun run
命令:bun run src/cli.ts generate
server 命令
启动开发服务器,支持监听文件变化自动重新生成。
语法
使用 lumos
命令:
lumos server [options]
使用 bun run
命令:
bun run src/cli.ts server [options]
选项
-p, --port <port>
: 指定服务器端口(默认: 3060)-w, --watch
: 启用监听模式,文件变化自动重新生成
示例
启动开发服务器
使用
lumos
命令:lumos server
使用
bun run
命令:bun run src/cli.ts server
指定端口启动服务器
使用
lumos
命令:lumos server -p 8080
使用
bun run
命令:bun run src/cli.ts server -p 8080
启用监听模式
使用
lumos
命令:lumos server -w
使用
bun run
命令:bun run src/cli.ts server -w
指定端口并启用监听模式
使用
lumos
命令:lumos server -p 8080 -w
使用
bun run
命令:bun run src/cli.ts server -p 8080 -w
build 命令
构建项目,包括生成数据文件和处理资源文件。
语法
使用 lumos
命令:
lumos build
使用 bun run
命令:
bun run src/cli.ts build
示例
构建项目
使用
lumos
命令:lumos build
使用
bun run
命令:bun run src/cli.ts build
assets 命令
处理资源文件,确保资源目录存在并创建必要的子目录。
语法
使用 lumos
命令:
lumos assets
使用 bun run
命令:
bun run src/cli.ts assets
示例
处理资源文件
使用
lumos
命令:lumos assets
使用
bun run
命令:bun run src/cli.ts assets
Bundler html-gen 命令
构建 HTML 文件,支持监听模式重新构建。
语法
使用 lumos
命令:
lumos html-gen [options]
使用 bun run
命令:
bun run src/cli.ts html-gen [options]
选项
-w, --watch
: 启用监听模式,监听 HTML 文件变化并重新构建
示例
构建 HTML 文件
使用
lumos
命令:lumos html-gen
使用
bun run
命令:bun run src/cli.ts html-gen
监听 HTML 文件变化并重新构建
使用
lumos
命令:lumos html-gen -w
使用
bun run
命令:bun run src/cli.ts html-gen -w
css 命令
构建 CSS 文件,支持监听模式。
语法
使用 lumos
命令:
lumos css [options]
使用 bun run
命令:
bun run src/cli.ts css [options]
选项
-w, --watch
: 启用监听模式,监听 CSS 文件变化
示例
构建 主题 CSS 文件
使用
lumos
命令:lumos css
使用
bun run
命令:bun run src/cli.ts css
监听 主题 CSS 文件变化
使用
lumos
命令:lumos css -w
使用
bun run
命令:bun run src/cli.ts css -w
webp 命令
将图片转换为 WebP 格式,以减小文件体积并提升网站加载速度。
语法
使用 lumos
命令:
lumos webp <input> <output> [options]
使用 bun run
命令:
bun run src/cli.ts webp <input> <output> [options]
参数
<input>
: 输入图片文件或目录路径<output>
: 输出 WebP 图片文件或目录路径
选项
--quality <number>
: WebP 图片质量(1-100,默认: 80)--compression <number>
: WebP 压缩级别(0-6,默认: 6)
支持的图片格式
- JPEG / JPG
- PNG
- TIFF
- GIF
- BMP
示例
转换单个图片
使用
lumos
命令:lumos webp ./assets/images/logo.png ./assets/images-webp/logo.webp --quality=85
使用
bun run
命令:bun run src/cli.ts webp ./assets/images/logo.png ./assets/images-webp/logo.webp --quality=85
批量转换目录中的所有图片
使用
lumos
命令:lumos webp ./themes/default/assets/images ./themes/default/assets/images-webp --quality=80
使用
bun run
命令:bun run src/cli.ts webp ./themes/default/assets/images ./themes/default/assets/images-webp --quality=80
高质量转换
使用
lumos
命令:lumos webp ./images ./webp-images --quality=95 --compression=4
使用
bun run
命令:bun run src/cli.ts webp ./images ./webp-images --quality=95 --compression=4
WebP 图片通常比原图小 25-35%,同时保持相近的视觉质量,有助于提升网站性能。
📁 生成的文件结构
文章 (Post)
生成路径: source/_posts/[path/]<title>.md
页面 (Page)
生成路径: source/_pages/[path/]<title>.md
作者 (Author)
生成路径: source/_authors/[path/]<title>.md
📄 模板结构
所有生成的文件都包含以下 Front Matter:
---
id: <自动生成的UUID>
title: <标题>
cover:
created_time: <创建时间>
updated_time: <更新时间>
categories:
tags:
excerpt:
published: true
---
🎨 自定义模板
模板文件位于 templates/
目录下:
templates/post.tsx
- 文章模板templates/page.tsx
- 页面模板templates/author.tsx
- 作者模板
你可以修改这些 TSX 文件来自定义生成的文件格式。
⚙️ 技术特性
- ✅ 使用 JSX 模板
- ✅ 基于 UUID v5 的稳定 ID 生成
- ✅ 自动创建目录结构
- ✅ 重复文件检测
- ✅ 支持中文标题
- ✅ 统一的时间格式
- ✅ 支持子目录路径
- ✅ 自动生成友好 URL
- ✅ 中文标题自动转拼音
🔧 高级用法
使用 package.json 脚本
Lumos 项目提供了预定义的 npm 脚本:
# 启动开发环境(等同于 lumos server -w)
bun run dev
# 创建新内容
bun run new post "文章标题"
# 生成数据
bun run gen
# 构建项目
bun run build
# 构建 Bundler HTML 文件
bun run build:html
# 监听 Bundler HTML 文件变化并重新构建
bun run dev:html
# 构建 主题CSS 文件
bun run build:css
# 监听 主题CSS 文件变化
bun run build:css:watch
命令组合使用
使用 lumos
命令:
# 一次性生成数据并启动服务器
lumos gen && lumos server
# 构建项目并处理资源
bun run src/cli.ts build && bun run src/cli.ts assets
# 构建 Bundler HTML 文件并监听变化
lumos html-gen && lumos html-gen -w
# 构建 主题 CSS 文件并监听变化
lumos css && lumos css -w
使用 bun run
命令:
# 一次性生成数据并启动服务器
bun run src/cli.ts gen && bun run src/cli.ts server
# 构建项目并处理资源
bun run src/cli.ts build && bun run src/cli.ts assets
# 构建 Bundler HTML 文件并监听变化
bun run src/cli.ts html-gen && bun run src/cli.ts html-gen -w
# 构建 主题 CSS 文件并监听变化
bun run src/cli.ts css && bun run src/cli.ts css -w
🎯 推荐使用方式
我们推荐使用 bun run
命令,因为:
- 无需全局安装:不需要将Lumos添加到系统PATH
- 版本一致:确保使用项目中定义的Lumos版本
- 跨平台兼容:在不同操作系统上行为一致
- 易于团队协作:所有团队成员使用相同的命令方式
如果您想深入了解如何扩展 Lumos 的功能,例如创建自定义插件或主题,请参阅 Lumos 二次开发教程。