這是一個助記詞 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) 的協助下設計的。