LWN:Ghost 发布系统!

关注了就能看到更多这么棒的文章哦~

The Ghost publishing system

By Jonathan Corbet
October 20, 2022
DeepL assisted translation
https://lwn.net/Articles/911601/

WWW 万维网早期具有的吸引力中,有一部分是来自于可以让任何人都能自己创建一个网站并向世界发布有趣的内容。几十年后,这个承诺似乎已经变了,成为让少数大公司经营的专有平台提供内容了。但是,可以说,在更广的范围内独立出版的梦想正在重新抬头。Ghost publishing platform (出版平台)的目标就是能使用自由软件来进行公开出版,以及盈利的。

Ghost 是一个 MIT license 的应用程序,主要是用 JavaScript 编写的;自 2013 年以来持续在进行开发。该项目归属于非营利性的 Ghost 基金会,该基金会的资金来源似乎主要是一个关联的 Ghost(Pro) hosting business。整个平台都是 free software,并没有采用 open-core 方式。

乍一看,Ghost 像是又一个普通的博客平台,提供了创建、编辑和发布文章的能力。不过,该平台有一个关联得非常紧密的能力,就是通过电子邮件来发送文章;Ghost 似乎被定位为 SubStack 等业务的免费替代品。内置了对付费订阅的支持,能够定义多个订阅级别。Ghost 提供的大部分文档和系统内的帮助都是希望帮助用户利用该平台创建内容并使其盈利。

Getting started with Ghost

编者决定试一试,在 Ubuntu 22.04 平台上按照提供的说明进行了一些操作,最终结果可以在 ghost.lwn.net 看到(截止 2022 年 10 月底左右)(请注意,编者没有花很多功夫来调整该网站的外观,所以结果可以说比通常的 LWN 网站难看一些)。这已经可以清楚地说明它的效果了,而且几乎算是成功了;MySQL 用户账户没有正确设置,必须手动来修复。其他的一切,包括(似乎看起来)不可避免的 curl|bash 步骤,以及登记和安装 Let's Encrypt SSL 证书,都直接能正常工作起来。

不过,目前文档还是有所不足,因为它没有提供下一步。也就是要进入网站的仪表板(dashboard)页面(在新安装的网站的/ghost 下),但似乎没有地方提供该 page 的链接。在找到这个 page,就可以尝试各种主题、配置网站的外观、管理用户账户,还有许多其他的相关细节。

7ab8406581507703658ece4b94efb0af.png

发布文章是在一个相当简单的基于 web 的编辑器中进行的。这个编辑器可以很好地工作,尤其是当用户了解到需要从先选择一段文本之后,才能应用这个范围的格式化选项。整体来说,界面主要依赖鼠标;有一些键盘快捷键,但跟真正的文本编辑器中对快捷键的支持相差甚远。也许更有趣的是插入 "cards" 的能力,也就是将其他类型媒体内容引入一篇文章里。它可以是简单的 Markdown 或 HTML 文本,但也可以扩展支持图像、书签、音频内容、视频内容,或者像 "call to action" 或 "product recommendation" 之类的内容。也可以嵌入许多流行的在线服务的小工具进来。

文章还可以直接预览和发布;也可以将文章的发布安排在稍后的某个时间。文章可以完全公开,也可以只保留给某些订阅者可见。还可以微调文章发布到各种社交媒体网站时的显示方式。总的来说,Ghost 的开发显然是着眼于 social-media 的传播,它能够添加所有常用的链接,鼓励读者传播信息。

Ghost 允许读者在文章上发表评论,但该功能默认是禁用的。评论似乎只能是纯文本,没有复杂格式化功能。

Going deeper

除了直接发布公共文章之外,还需要更多的设置,其中就包括在其他供应商那里创建账户。例如,Ghost 被设计用来发送电子邮件,但它不会直接这样做;相反,它需要使用一个付费的 Mailgun 账户。文档警告说,直接发送大量的电子邮件会导致网站被列入黑名单,所以 Ghost 甚至没有尝试。LWN 的经验是,情况并不十分严峻,但在如今的网络上运行一个独立的电子邮件系统无疑是一个挑战。总之,无法使用任何其他批量电子邮件服务,但这似乎是由于没有人去进行整合,而不是因为某些专门的交易。

Stripe 则是作为 "独家" 支付供应商。虽然编者没有 Stripe 账户,无法尝试,但这种整合看起来配置起来很简单。考虑到 "独家" 这种措辞,如果有人提交 pull request 来增加对其他供应商的支持,很想知道会有什么结果。在基本安装中并没有提供对 PayPal 的支持,但可以在后续添加。

网站的仪表板提供了关于网站内容效果如何的相关信息,包括有多少用户,以及其中有多少人最近 "参与" 了进来。关于个人用户的信息,包括了他们在网站上的活动,他们是否以及何时阅读他们的电子邮件通讯(不确定是好事还是坏事)。这里使用了 tracking images 来获取这些信息。网站所有者似乎没有办法控制这些数据的获取以及留存,用户也没有被要求同意收集这些数据。因此,要以符合 GDPR 等法规的方式运行 Ghost 网站,还是会有些额外困难的。

整体来说,Ghost 的用户管理有点奇怪,因为有两种完全不同类型的账户。普通用户拥有他们的用户级别所允许的任何内容的访问权,但无法访问其他内容了。这些账户没有密码;登录是通过提供一个电子邮件地址,然后点击发送到该邮箱的链接来完成的。相反,"staff" 账户有能力(可以配置)创建文章、发布文章、修改其他用户的文章,或对网站进行管理。他们必须由现有的管理账户来创建,并且由密码来控制访问。试图通过正常的登录表单来登录到工作人员的账户将会失败;人们似乎必须进入一个特权页面,然后提供一个电子邮件地址和密码。没有办法把一个普通的用户账户变成一个工作人员账户。

70af1030aba07a59c358f7cc5cbadc18.png

Ghost 内部分成了内容管理系统(content-management system)和 web front end 两部分;可以只使用前者而完全不用后者。可以使用 API 来访问后端……实际上,有两个 API。从前端的网页里很容易找到的 API 提供了对系统中数据的只读访问。更重要的工作则需要使用管理员的 API,而这是比较难以发现的。此外,这些 API 对于实现与网络上的其他专有服务的集成(有很多)也是非常有用的。

Community and closing

Ghost 无疑是一个活跃的项目,每隔几天就会发布一个版本。像这样一个面向互联网的应用程序需要优先考虑安全问题;Ghost 的 security 页面在这方面介绍了很多正确做法。最后一个提到有 security issue 的版本是 2021 年 9 月的 4.15.1。这种性质的应用程序在一年多的时间里都没有安全问题?似乎不太可能,但谁知道呢。对于已经安装好的 Ghost 系统进行升级,似乎还是比较容易的。

4.20.0 版本是在 2021 年 10 月 22 日发布的,差不多正好是一年前。从那时起,该项目已经增加了来自 261 个开发者的 16130 个 non-merge changeset,这肯定算是非常活跃了。这些 patch 中有一半以上来自人数很少的 Ghost 员工,本来就应该是这么个情况。但显然也有来自项目之外的贡献者(长尾部分)。Ghost 的开发似乎以其公共 GitHub 网站为中心,公司员工像其他人一样在那里提交 pull request。

换句话说,Ghost 可能是一个由单一公司所主导的项目,但它看起来有一个健康的社区,并以一种开放的方式进行开发。这看起来不像是一个很容易就会被抛弃掉并且被遗忘的软件。值得注意的是,这个项目的贡献者许可协议中允许 Ghost 基金会在专有许可下发布相关的贡献,尽管此项目的 MIT license 无论如何也都没有阻碍这个做法。

LWN 网站代码的编写始于 2002 年初,在那一年的年底,积极性很高的编者在开发狂潮中加入了订阅支持。20 年前,除了从头开始创建一些内容之外,没有什么其他选择;LWN,似乎是领先于时代的。如果我们今天开始做的话,情况会完全不同;对于那些疯狂到试图在互联网上写作谋生的人来说,其实有很多选项。不确定 Ghost 会不会被选为 LWN 这样的网站的后台系统,但它无疑会是少数几个可选项之一。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值