一个专注于数据所有权和持久性的博客引擎。
项目描述
一个专注于 数据所有权 和 持久性 的博客引擎。
它有何不同?
Nefelibata(葡萄牙语为“漫步云端的人”)是一个专注于保留您内容的IndieWeb静态网站生成器,使用Python 3编写。为了实现这一目标,它的工作方式与常见的静态网站生成器类似,以下是一些设计决策:
每篇帖子都是一个独立的目录。实际帖子以Markdown格式编写并存储为电子邮件消息,每篇帖子都可以有自己的图像、CSS、JavaScript和其他文件。
帖子被转换为HTML和/或Gemtext,生成的网站仅由静态文件组成。没有数据库,所有额外数据都存储在JSON文件中。
当构建网站时,外部图像将被本地镜像,链接将被修改以指向本地资源。
外部链接将被保存到Wayback Machine,并附上存档链接和存档日期,以便读者即使链接在未来发生变化也能跟踪原始链接。网站和新帖子也将自动存档。
网站可以通过插件架构发布到不同的位置。目前,nefelibata支持发布到Amazon S3、FTP和任意命令。
独立网络
Nefelibata承认,大多数互动发生在Twitter或Mastodon等社交网络中。该引擎可以配置全局或按帖子的公告者,这些公告者将发布到社交网络,链接回内容,以便人们可以在网站之外对帖子进行评论和讨论,这是独立网络中的一个称为POSSE(在您的网站上发布,在其他地方同步)的概念。
当网站重建时,公告者将收集任何回复并本地存储,以便在您的帖子旁边显示评论。可以宣布多个社交网络上的帖子,并将评论聚合和保存。
入门
安装
首先使用虚拟环境安装nefelibata
$ pip install nefelibata
这将向您的路径添加一个名为nb的程序。
如果您不耐烦,可以运行
$ nb init blog
$ cd blog
$ nb build
然后查看build/目录中的文件。
创建网站目录
安装nefelibata后,您应该初始化一个将存储您内容的目录
$ nb init blog
$ ls blog
nefelibata.yaml nefelibata.yaml.full posts/ templates/
在这里,文件nefelibata.yaml存储您网站的配置。目录posts/将包含您的帖子,并且应该已经有一个名为first/的目录,其中包含一个初始帖子。目录templates/包含用于生成博客及其Atom源和Gemini胶囊的模板。支持多个主题的HTML构建器,但目前只有一个名为“minimal”。
配置您的网站
文件nefelibata.yaml.full包含描述所有部分的注释。
创建新帖子
您的骨架博客已经有一个名为first/的帖子。您可以编辑该帖子,或者使用以下命令创建一个新帖子
$ nb new "Hello, World!"
(注意,您始终需要从您的网站目录中运行nb命令。)
这将创建一个名为hello_world/的新目录,其结构如下
posts/hello_world/
posts/hello_world/index.mkd
如果您设置了EDITOR环境变量,nefelibata将自动打开您的编辑器来编辑index.mkd。您可以将任何自定义CSS、JavaScript或图像放在相应的目录中,或者将任何其他额外文件放在hello_world/目录中。
您会注意到index.mkd文件有标题和正文。该文件实际上以RFC 5322格式存储为电子邮件。最重要的标题包括
subject:这是您帖子的标题。
summary:这是您帖子的一行摘要。
keywords:逗号分隔的关键字/标签。
此外,一旦帖子发布,将添加一个date标题。
构建网站
要构建您的网站,只需运行
$ nb build
这会将Markdown文件转换为HTML和/或Gemtext,并构建网站,包括标签和分类的页面。稍后,一旦帖子已宣布到社交网络,此命令还将收集回复并将它们作为YAML文件本地存储。
发布网站
最后,您可以使用以下命令发布您的网站
$ nb publish
这将使用任何配置的发布者(如S3)上传网站,并将新帖子宣布到社交网络。
接下来是什么?
如果您想自定义网站,请查看您网站内的 templates/ 目录。这些模板使用 Jinja2 编写。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。