写了一个基于 Node.js 的静态博客引擎
写了一个基于 Node.js 的静态博客引擎
GitHub: https://github.com/ericzhang-cn/papery
本来是自己用的玩意,花了几天整成了通用的系统。并且推到 npm 上了。
实例见:http://blog.codinglabs.org
文档在 GitHub 项目的 README 文件里
写了一个基于 Node.js 的静态博客引擎
GitHub: papery
本来是自己用的玩意,花了几天整成了通用的系统。并且推到 npm 上了。
实例见:codinglabs 博客
文档在 GitHub 项目的 README 文件里
简介
papery
是一个轻量级的静态博客生成器,它可以帮助用户将 Markdown 文档转换为 HTML 页面,并提供了一些基本的页面布局和导航功能。它的设计目标是简单易用,同时保持足够的灵活性以满足不同的需求。
主要特性
- Markdown 支持:使用 Markdown 编写文章,支持常见的 Markdown 语法。
- 主题系统:内置多个主题,可以轻松切换不同的样式。
- 自定义页面:可以创建自定义页面,如关于、归档等。
- RSS 生成:自动生成 RSS feed,方便订阅。
- 多语言支持:支持多种语言的文章。
示例代码
以下是一个简单的 papery
配置文件示例:
// config.js
module.exports = {
title: 'My Blog',
description: 'A simple static blog built with papery.',
author: 'Your Name',
theme: 'default', // 可选,默认为 'default'
postsDir: './posts', // 存放文章的目录
outputDir: './public', // 输出目录
rss: {
enabled: true,
limit: 10
}
};
以下是如何使用 papery
来生成静态站点的示例脚本:
// build.js
const papery = require('papery');
const config = require('./config');
papery.build(config).then(() => {
console.log('Blog built successfully!');
}).catch((err) => {
console.error('Error building blog:', err);
});
运行这个脚本后,所有的 Markdown 文件会被转换成 HTML,并输出到指定的目录中。
如何开始使用
-
安装
papery
:npm install -g papery
-
创建一个新的项目目录,并初始化
npm
:mkdir my-blog cd my-blog npm init -y
-
安装
papery
作为开发依赖:npm install --save-dev papery
-
创建配置文件
config.js
和脚本build.js
,并按上述示例进行配置。 -
运行构建脚本:
node build.js
-
查看生成的静态站点,通常位于
./public
目录下。
通过这些简单的步骤,你就可以开始使用 papery
来构建自己的静态博客了。希望这个工具能帮助你快速搭建出满意的个人网站!
关注一下,目测应该没有 https://github.com/tommy351/hexo 这个给力…
不错阿 很好
楼主,你github上这个开源程序,发布新文章:元文本是文章的内容,papery根据元文本和文章配置最终生成文章页面。papery使用GitHub Flavored Markdown(简称gfm)作为元文本书写格式
又要学习gfm… 楼主是否可以引入一个在线编辑器来实现
1楼很不地道啊。。。 楼主这样的精神值得学习。赞一个。
支持一下啊
楼主,你应该也考究一下windows,windows下面process.argv[0]好像不是node是一个绝对路径。
写一个基于 Node.js 的静态博客引擎是一个非常有趣且实用的项目。这样的工具可以帮助用户生成静态网站,而无需服务器端动态处理,从而提高性能和安全性。
以 Eric Zhang 的项目 papery
为例,我们可以看到这是一个简洁且功能完善的静态博客引擎。该引擎能够读取 Markdown 文件,并将其转换成 HTML 页面。以下是一个简单的代码示例,展示如何使用 marked
库来实现这一功能:
- 首先安装必要的库:
npm install marked fs path
- 然后创建一个简单的脚本文件
generate.js
:
const fs = require('fs');
const path = require('path');
const marked = require('marked');
function generateHTML(filePath, outputDir) {
// 读取Markdown文件
const markdownContent = fs.readFileSync(filePath, 'utf-8');
// 使用marked解析Markdown
const htmlContent = marked(markdownContent);
// 获取文件名
const fileName = path.basename(filePath, '.md');
// 输出目录
const outputPath = path.join(outputDir, `${fileName}.html`);
// 将HTML写入文件
fs.writeFileSync(outputPath, htmlContent);
}
// 调用函数
generateHTML('./posts/hello-world.md', './public');
-
在上面的代码中,我们定义了一个
generateHTML
函数,该函数接收Markdown文件路径和输出目录作为参数。它首先读取Markdown文件内容,然后使用marked
库将其转换为HTML,最后将HTML写入指定的输出目录中。 -
运行此脚本:
node generate.js
这个简单的示例展示了如何使用 Node.js 和一些常见的库(如 marked
)来创建一个基本的静态博客引擎。通过扩展这个基础框架,你可以添加更多功能,例如支持模板、多级目录结构、CSS样式等,以满足更复杂的博客需求。
更多详细信息可以查看 Eric Zhang 的 papery
项目文档,网址是 https://github.com/ericzhang-cn/papery。