用Nodejs做的新一代开源博客平台Ghost发布

用Nodejs做的新一代开源博客平台Ghost发布

网址:http://www.ghost.org/

交互设计师John O’Nolan是WordPress UI组的核心成员。大概一年前,他有感于WordPress越来越脱离博客平台的初衷,变为一个CMS,决定开发新一代的博客平台。

与同样追求简约的Svbtle和Medium不同,Ghost既可以托管在第三方平台,也可以自己下载代码,自己管理服务器或者其他底层设施。

托管源码:https://github.com/TryGhost/Ghost

package.json 好像用的是"sqlite3": “2.1.16”,备用的"mysql": “2.0.0-alpha9”; 比较遗憾,好像没有用mongodb。


4 回复

用Node.js做的新一代开源博客平台Ghost发布

网址: http://www.ghost.org/

背景介绍

Ghost 是一款由交互设计师 John O’Nolan 发起的新一代开源博客平台。John O’Nolan 曾是 WordPress UI 组的核心成员,他在大约一年前发现 WordPress 越来越偏离了博客平台的初衷,逐渐变成了一个内容管理系统(CMS)。因此,他决定创建 Ghost,以专注于博客的核心功能。

特点

Ghost 的设计理念是简洁和专注。它既可以在第三方平台上托管,也可以自行下载代码并管理自己的服务器或其他底层设施。这种灵活性使得 Ghost 成为那些希望拥有更多自主权的博主们的理想选择。

技术栈

Ghost 是基于 Node.js 构建的,使用了 Express 框架来处理 HTTP 请求。下面是 Ghost 项目中的一些关键技术组件:

  • 数据库:目前 Ghost 使用 SQLite 作为默认数据库,但同时也支持 MySQL。遗憾的是,目前还没有集成 MongoDB。
  • 依赖管理:通过 package.json 文件来管理项目的依赖项。例如,SQLite 依赖版本为 "sqlite3": "2.1.16",MySQL 依赖版本为 "mysql": "2.0.0-alpha9"

示例代码

以下是一个简单的示例代码,展示了如何使用 Express 和 SQLite 创建一个基本的博客后端服务:

const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const app = express();

// 连接 SQLite 数据库
let db = new sqlite3.Database(':memory:', (err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connected to the in-memory SQlite database.');
});

// 创建表
db.run(`CREATE TABLE posts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    content TEXT NOT NULL
)`);

// 插入数据
const insertPost = db.prepare(`INSERT INTO posts (title, content) VALUES (?, ?)`);
insertPost.run("我的第一篇博客", "这是我的第一篇博客文章。");
insertPost.finalize();

// 查询数据
app.get('/posts', (req, res) => {
    db.all(`SELECT * FROM posts`, [], (err, rows) => {
        if (err) {
            throw err;
        }
        res.json(rows);
    });
});

// 启动服务器
app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

总结

Ghost 是一个非常有潜力的新一代开源博客平台,它不仅提供了简洁的界面设计,还具备高度的可定制性和灵活性。无论是对于个人博主还是小型团队,Ghost 都是一个值得尝试的选择。你可以访问其官方网站或 GitHub 仓库了解更多详情和参与贡献。

托管源码: https://github.com/TryGhost/Ghost


挺好的,虽然我没用过wordpress,但是感觉Ghost可以满足大部分程序员写博客的需求了。

不过这个是开源的,有点儿好奇怎么赚钱啊。毕竟是kickstart上的项目。

我觉得对于专业的程序员,要么有独立开发的博客,要么托管在github,wordpress感觉越来越不像博客,倒像是一个快速建站工具。

软件都是这样,相同功能的,等上一波的慢慢变得复杂臃肿,简约版的做减法的就能流行开来,直到自己也变得复杂。当人们不能新浪博客那亮瞎眼的闪动广告之后,类似jojoin.com或medium.com就会流行起来。

用Node.js做的新一代开源博客平台Ghost发布

Ghost 是一个现代化、简洁且专注于博客的开源平台,它使用 Node.js 开发,并且支持多种数据库,如 SQLite 和 MySQL。以下是关于 Ghost 的一些关键点和如何开始使用它的简要介绍。

官方网站

主要特点

  • 简洁:Ghost 旨在保持简单和专注,不像 WordPress 那样变成一个全能的内容管理系统。
  • 灵活性:用户可以选择托管在第三方平台上,也可以自己下载源码并部署到自己的服务器上。
  • 技术栈:Ghost 使用 Node.js 进行后端开发,前端则是现代的 JavaScript 技术栈。

源码托管

技术细节

  • 数据库:Ghost 支持 SQLite 和 MySQL。目前,package.json 中配置了 "sqlite3": "2.1.16""mysql": "2.0.0-alpha9"
  • 安装:你可以通过以下命令克隆项目并安装依赖:
    git clone https://github.com/TryGhost/Ghost.git
    cd Ghost
    npm install
    
  • 运行:使用以下命令启动 Ghost:
    npm start
    

示例代码

这里提供一个简单的示例,展示如何创建一个新的 Ghost 博客文章:

const GhostContentAPI = require('@tryghost/content-api');

const api = new GhostContentAPI({
    url: 'https://your-blog-url.com',
    key: 'your-api-key-here',
    version: 'v3'
});

api.posts.add({
    title: 'My New Blog Post',
    html: '<h1>Hello World!</h1><p>This is my first blog post.</p>',
    status: 'published'
}).then((post) => {
    console.log(post);
}).catch((err) => {
    console.error(err);
});

上述代码使用 Ghost 的 Content API 创建一个新的博客文章。你需要将 urlkey 替换为你的实际值。

总结

Ghost 是一个优秀的开源博客平台,它专注于简洁性和易用性。无论是作为开发者还是普通用户,都可以轻松地搭建自己的博客系统。希望这些信息对你有所帮助!

回到顶部