ringfairy
?这是一个用 Rust 编写的网络环生成器。它类似于静态站点生成器,但专门用于网络环。
与大多数依赖某种服务器端代码(例如 PHP、JS)来重定向访问者的 webring 不同,此方法使用 HTML 重定向。
静态方法允许更简单的托管要求(可以托管在 Neocities、GitHub Pages 等上),因为它消除了服务器端处理的需要。
更新网络环将需要您重新生成整个网络环。这既快速又简单,不需要经常进行。但这是传统服务器端系统可能没有的额外步骤,除非您将其自动化,例如通过 GitHub Actions。
网络环是循环链接在一起的网站的集合。每个网站都包含环中上一个和下一个网站的链接。如果你导航得足够远,最终你会回到起点!
网环在互联网早期很流行,是网站所有者相互宣传内容和鼓励社区参与的一种方式。
对于任何拥有某种个人网站或博客并希望与他人联系的人来说,这是一个工具。您可以使用它从头开始发展您自己的在线社区!
高度优化
自动检测网站上的 webring 链接
通过模板完全可定制
生成包含所有具有 RSS 源的站点的 OPML 文件
选择命令行界面或配置文件
远程配置文件也支持
随机播放选项
HTML 缩小
自动链接网站所有者联系信息
捕获重复条目
详细记录
使用ringfairy
的网环(据我所知):
Ghostring - 恐怖主题网站
手工制作 - 面向 System Crafters 社区
Roboring - 用于机器人
如果您决定使用此工具启动您自己的网络环,请告诉我,我将在此处列出它! :)
下载发行版二进制文件或克隆存储库并从源代码构建。
修改websites.json
(默认)文件以包含要包含在 Webring 中的网站的详细信息。每个网站都必须添加到列表中。
根据您的需要修改config.json
(默认)文件。
(可选)通过修改位于data/templates
文件夹(默认情况下)中的模板来自定义页面。您还可以使用远程文件作为模板。请参阅下面的“模板”部分。
(可选)将任何其他文件添加到data/assets
文件夹中(默认情况下)。该文件夹中的所有内容都将简单地复制到输出目录中。您可以在此处添加图像、HTML/CSS 等附加内容。
运行ringfairy
通过编写包含重定向的 HTML 文件来生成 webring。每个站点都会链接到websites.json
文件中的下一个/上一个站点,形成您的网环!
将生成的文件托管在您首选的托管平台上。
命令行参数优先于配置文件中的任何设置。
-h
, --help
: 打印帮助
-c
, --config
:指定可选配置文件的位置。它可以是远程的;例如,指向 Pastebin、GitHub 等上相应 JSON 文件的 HTTP 链接。
-l
, --list
:指定包含网站列表的文件。默认值: ./websites.json
-o
, --output
:定义输出文件夹,生成的文件将保存在其中。默认值: ./webring
-a
, --assets
:指定资产文件夹。这里的任何文件都将被复制到输出文件夹。这使您可以包含所需的任何额外文件,例如图像或额外网页等。默认值: ./data/assets
-t
, --templates
:指定模板文件夹的路径。使用template.html
进行重定向页面(即组成 webring 的 HTML)。如果您希望用生成的内容填充任何额外的页面,则可以在此处添加任何额外的页面。默认值: ./data/templates
-u
, --url
:网络环的基本 URL。类似于“https://example.com”。
-n
, --name
:网络环的名称。类似于“鬼魂”之类的东西。
-d
, --description
:关于网络环的简短描述。
-m
, --maintainer
:网络环的所有者/维护者,可以是个人或组织。
-w
, --website
:网站所有者的网站链接,而不是网络环的基本 URL。
--skip-minification
:输出页面而不优化或修改它们。如果您希望生成的文件稍后可以手动编辑,或者您在输出中遇到任何意外问题,请尝试此操作。
--skip-verification
:生成文件而不检查潜在问题......不明智!
--dry-run
:运行应用程序而不输出任何文件
-s
, --shuffle
:在生成过程中随机打乱网站的顺序。这完全是内部的,不会影响网站的输入列表;您可以重复打乱同一个网环,而不会丢失原始顺序。
-v
, --verbose
:将信息输出到控制台。 -vv
非常详细模式以查看更多信息。
-V
, --version
: 打印版本
-A
, --audit
:审核模式。抓取列表中的每个网站,检查是否可以找到下一个/上一个链接。否则,该站点将不会添加到该版本的网络环中。这意味着您不必立即删除不合规的网站;在找到链接之前,网站不会显示。如果您在没有详细模式 ( -v
) 的情况下使用此选项,您可能看不到审核结果。如果您正在离线构建网络环,或者如果您想要尽可能快的构建速度,请不要使用审核模式。
-M
, --audit_retries_max
:在审核模式下,尝试重新连接到站点的最大次数。默认值: 2
-D
, --audit_retries_delay
:在审核模式下,尝试重新连接到无响应站点之前的毫秒延迟。默认值: 100
-U
, --client_user_agent
:在审核模式下,网络抓取工具使用的用户代理字符串。
-H
, --client_header
:在审核模式下,网络抓取工具使用的标头字符串。
默认情况下,应用程序仅记录错误消息。通过传递-v
/ --verbose
(在命令行上)或设置"verbose": true
(在配置 JSON 中),您可以告诉应用程序显示警告级别日志。要显示信息级别日志,请传递-vv
;对于调试, -vvv
。
要将这些日志保存到文件中,您可以在运行应用程序时将标准输出和标准错误重定向到文件。例如:
$ ./ringfairy > log.txt 2>&1
模板默认位于./data/templates
文件夹中;该路径可以使用命令行参数--templates
或配置文件中的path_templates
指定。
模板包含将被生成的内容替换的标签。您可以通过在标签之前/之后添加内容来自定义生成的文件。该存储库包含可帮助您入门的基本模板示例。
在 templates 文件夹中, template.html
用于生成每个next.html
/ previous.html
页面,其中包含每个网站的重定向。标签{{ url }}
由生成器插入到每个页面中,并为网络环提供动力。
除了template.html
之外,templates 文件夹还可以包含您想要的任何其他模板。
例如,网络环最好有一个列出所有站点的中央集线器页面。您可以将其放在index.html
上,或者创建一个专用页面,例如list.html
、 table.html
等。只需在模板中使用标记{{ table_of_sites }}
, ringfairy
就会生成一个格式化的站点列表网环。
目前,以下标签可在模板中使用:
{{ table_of_sites }}
生成一个格式化的 HTML 表,列出网络环中所有站点的信息。
{{ number_of_sites }}
显示网络环的当前大小。
{{ current_time }}
显示生成时间,显示页面上次更新的时间。
{{ opml }}
插入环的 OPML 文件的相对路径。
{{ base_url }}
打印用户设置的网络环的主 URL。
{{ ring_name }}
显示网络环的标题。
{{ ring_description }}
根据设置显示网络环的描述。
{{ ring_owner }}
显示网络环所有者的姓名。
{{ ring_owner_site }}
打印网络环所有者网站的 URL。
{{ featured_site_name }}
打印“特色站点”的名称,该名称是随机的。
{{ featured_site_description }}
打印随机特色网站的描述。
{{ featured_site_url }}
打印随机精选网站的 URL。
目前, {{ url }}
是一个特殊标签,仅适用于template.html
中的下一个/上一个链接。
__ .-' | / <| / ' |_.- o-o / C -._) / ', | | `-,_,__,' (,,)====[_]=| '. ____/ | -|-|_ |____)_)
欢迎贡献!如果您对改进或新功能有任何建议,请随时提出问题或提交拉取请求。