这是一个助记词 URL 数据库、重定向器和搜索引擎。
该工具的主要功能是将用户通过 HTTP 直接重定向到与他们正在访问的关键字关联的 URL。 URL 很难记住和输入,但如果命名简洁,则更容易使用。链接被命名或标记并放入由关键字标识的列表中。这些关键字是用户提出的众所周知的、直观的字符串,用于描述正在寻找的列表或链接。
第二个功能是提供一个地方来整理特定主题的最新链接列表。
如果用户想要搜索有关火星的信息,他们可以在浏览器的 URL/搜索栏中输入go2 mars
。这可以直接重定向到有关地球的链接或链接列表。想象一下此列表中存在多个有关火星的链接或文章。用户如何才能通过一次搜索直接找到有关火卫一卫星的更多信息?列表管理员可以使用phobos
标记列表中的链接之一。现在,用户可以在 URL/搜索栏中输入go2 mars/phobos
。该链接现已成为任何寻求有关火星卫星更多信息的人的规范重定向。
go2 重定向器遵循类似维基百科的社区驱动的数据添加、删除和管理模型。如果用户集体同意关键字的含义,并反过来同意该关键字的列表应该是什么,那么结果就是该组在任何给定时刻对这些助记关键字的最准确的理解。使用重定向器的人越多,保持最新状态的编辑器就越多。
要设置应用程序,需要创建初始配置和空链接数据库。为此,请从命令行运行安装脚本。
./install.sh
这将在项目根目录的磁盘上放置一个godb.json
文件,然后它将在同一目录中写入一个通用配置文件go2config.json
。配置文件中的默认设置足以开始使用,但请仔细查看以了解可用的设置。
重定向器需要作为设置的第二步也是最后一步进行编译。在项目根目录中进行简单的go build
应该会生成一个可执行文件。不带参数运行该可执行文件以查看重定向器启动,侦听临时端口。
此处包含多阶段Dockerfile
以简化构建二进制文件并提供可运行容器的过程。最初的构建容器非常巨大,因此被抛弃,取而代之的是更小的基于 alpine Linux 的运行时容器。构建和运行容器包含三个要素:构建、持久化链接数据库和运行容器。
可以通过以下方式构建容器: docker build -t go2redirector .
如果您想检查构建容器本身以检查/调试构建环境,您可以通过按名称定位构建容器来访问它。
docker build --target builder -t go2build .
您可以在本地为godb.json
的容器外持久空间创建一个卷。这将允许您的容器每次执行时都使用相同的 godb。如果您不希望在容器运行之间保存数据库,请忽略此过程。
docker volume create go2
创建本地存储卷docker volume inspect go2
现在使用卷运行容器。这将以守护进程模式运行容器,并在停止时将其删除。
docker run --rm -p 8080:8080 -d -v go2:/home/gouser/data go2redirector
请注意,您没有使用这样的卷。绑定挂载到另一个现有目录也可以。
重定向器将监听容器内的0.0.0.0:8080
,而不是 go2config.json 中的默认值127.0.0.1
(默认值)。
要查看容器中的日志,它们都会重定向到标准输出,因此您可以执行docker logs <name of running container>
go2redirector 现在应该在localhost:8080
上运行。您可以直接执行此操作,或者为了让事情变得更容易,您可以使用新的搜索关键字(例如go2
配置您的浏览器。
每个浏览器启用关键字搜索引擎的配置过程都略有不同。
localhost:8080
(或者您运行重定向器的任何 URL)。go2
的关键字go2
。http://localhost:8080/?keyword=%s
现在您的浏览器可以像搜索引擎一样访问 go2redirector。将关键字设置为go2
并使用搜索框
go2 wiki/es
如果您的浏览器重定向到西班牙语版本的维基百科,则一切就绪。
.
任何关键字的前缀。/
之间的元素。例如, go2 planets/mars/weather
将包含字段“planets”(关键字)、“mars”(标签)和参数“weather”。链接列表的管理从选择直观的关键字开始。这是人们记住此链接列表的名称。考虑一下这个关键词以及它的普遍性。它是否适用于其他潜在的名单?如果是这样,也许想出一个更具体的关键字名称或合并两个列表。
标签是链接列表中链接的名称。标签是用户在 go2 重定向中输入的第二个(可选)字段。如果您有火星卫星列表,您可以将其中一个标记为“phobos”,另一个标记为“deimos”,从而导致像go2 mars/phobos
一样的重定向,直接转到描述该卫星的任何链接。标签是可选的。如果用户指定了第二个字段,重定向器会尝试通过该名称在列表中查找标签。如果找不到,第二个字段将被视为链接的替换参数。
如果添加的链接带有我们已经在其他关键字下有链接的 URL,我们允许您创建一个全新的链接,因为您可能有另一个标题和不同的关键字关联。如果您尝试添加重复的链接,它会在您查看点页时显示已使用该链接的其他关键字。
索引页左上角的输入字段是应用程序的主要入口点。用户可以在此字段中输入关键字/标签/参数组合来进行重定向或创建新的重定向。
链接可以具有指定链接在链接数据库中的生命周期的日期集。默认情况下,链接永不过期。用户可以输入各种链路生命周期。所有选定的链接生命周期中最独特的是“读后即刻”,正如它听起来的那样。当一个人使用该链接作为重定向后,应用程序将销毁该链接。这对于您只使用或共享一次的链接非常有用。如果链接不是永恒的,您应该为它选择合理的生命周期。这是应用程序中的被动管理形式,在链接到期日到来时将其删除。
要强制访问关键字的列表页面(无论列表行为如何),您只需在该关键字前添加句点或使用正斜杠作为后缀即可。这样做将呈现列表页面,其中可以更改或标记链接。
列表中的链接可以将{1}
放置在 URL 中的任意位置,以用作用户提供的单个位置参数的替换字符串。目前,我们仅支持一个参数,但如果有令人信服的理由支持两个或更多参数,情况可能会发生变化。在重定向器的早期版本中,这些带有替换的链接类型称为“特殊”链接,它们使用{*}
作为替换字符串。例如,关键字go2 planets
可以有一些标有各种行星名称的链接。每个链接 URL 都可以包含替换字符串 {1}。
对于go2 planets/mars/weather
的用户输入,go2redirector 将找到planets
关键字,查找标有mars
链接,获取其 URL www.nasa.gov/planets/mars/{1}.php
,并执行替换为www.nasa.gov/planets/mars/weather.php
。最后,用户将被重定向到该 URL。
我需要所有我能得到的帮助,让我的新手级 golang 看起来更好。我们想要添加一些新功能,但没有足够的人来做这件事。如果您想做出贡献,只需分叉存储库并提交 PR!在 go2redirector 项目中的问题跟踪器上提交任何增强请求或错误。
请参阅CONTRIBUTING.md
了解更多信息。
最初的重定向器 f5go 是由 Saul Pwanson 在 Bryce Bockman 和 Treebird(tm) 的协助下设计的。