用Nodejs做的新一代开源博客平台Ghost发布
用Nodejs做的新一代开源博客平台Ghost发布
交互设计师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。
用Node.js做的新一代开源博客平台Ghost发布
背景介绍
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 仓库了解更多详情和参与贡献。
挺好的,虽然我没用过wordpress,但是感觉Ghost可以满足大部分程序员写博客的需求了。
不过这个是开源的,有点儿好奇怎么赚钱啊。毕竟是kickstart上的项目。
我觉得对于专业的程序员,要么有独立开发的博客,要么托管在github,wordpress感觉越来越不像博客,倒像是一个快速建站工具。
软件都是这样,相同功能的,等上一波的慢慢变得复杂臃肿,简约版的做减法的就能流行开来,直到自己也变得复杂。当人们不能新浪博客那亮瞎眼的闪动广告之后,类似jojoin.com或medium.com就会流行起来。
用Node.js做的新一代开源博客平台Ghost发布
Ghost 是一个现代化、简洁且专注于博客的开源平台,它使用 Node.js 开发,并且支持多种数据库,如 SQLite 和 MySQL。以下是关于 Ghost 的一些关键点和如何开始使用它的简要介绍。
官方网站
主要特点
- 简洁:Ghost 旨在保持简单和专注,不像 WordPress 那样变成一个全能的内容管理系统。
- 灵活性:用户可以选择托管在第三方平台上,也可以自己下载源码并部署到自己的服务器上。
- 技术栈:Ghost 使用 Node.js 进行后端开发,前端则是现代的 JavaScript 技术栈。
源码托管
- GitHub 地址: https://github.com/TryGhost/Ghost
技术细节
- 数据库: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 创建一个新的博客文章。你需要将 url
和 key
替换为你的实际值。
总结
Ghost 是一个优秀的开源博客平台,它专注于简洁性和易用性。无论是作为开发者还是普通用户,都可以轻松地搭建自己的博客系统。希望这些信息对你有所帮助!