写了一个基于 Node.js 的静态博客引擎

写了一个基于 Node.js 的静态博客引擎

GitHub: https://github.com/ericzhang-cn/papery

本来是自己用的玩意,花了几天整成了通用的系统。并且推到 npm 上了。

实例见:http://blog.codinglabs.org

文档在 GitHub 项目的 README 文件里

8 回复

写了一个基于 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,并输出到指定的目录中。

如何开始使用

  1. 安装 papery

    npm install -g papery
    
  2. 创建一个新的项目目录,并初始化 npm

    mkdir my-blog
    cd my-blog
    npm init -y
    
  3. 安装 papery 作为开发依赖:

    npm install --save-dev papery
    
  4. 创建配置文件 config.js 和脚本 build.js,并按上述示例进行配置。

  5. 运行构建脚本:

    node build.js
    
  6. 查看生成的静态站点,通常位于 ./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 库来实现这一功能:

  1. 首先安装必要的库:
npm install marked fs path
  1. 然后创建一个简单的脚本文件 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');
  1. 在上面的代码中,我们定义了一个 generateHTML 函数,该函数接收Markdown文件路径和输出目录作为参数。它首先读取Markdown文件内容,然后使用 marked 库将其转换为HTML,最后将HTML写入指定的输出目录中。

  2. 运行此脚本:

node generate.js

这个简单的示例展示了如何使用 Node.js 和一些常见的库(如 marked)来创建一个基本的静态博客引擎。通过扩展这个基础框架,你可以添加更多功能,例如支持模板、多级目录结构、CSS样式等,以满足更复杂的博客需求。

更多详细信息可以查看 Eric Zhang 的 papery 项目文档,网址是 https://github.com/ericzhang-cn/papery

回到顶部