路由器我是指將URL映射到名稱的組件- 又稱A.K.A. 路由 - 因此您可以安全地更改URL不必爬行您的代碼庫即可更新前往已過時位置的所有鏈接。 為什麼我們需要這樣的東西?
>我目前正在為Sassdoc V2的文檔努力工作(尚未發布,截至撰寫本文時尚未發布)。我們有很多內容。超過20頁,分別在包含許多代碼示例和交叉參考的4個不同部分分開。這就是為什麼我們需要路由組件的原因。然後,我們將用名稱而不是通過其路徑來指代URL,從而使我們更改路徑,同時保持名稱完全有效。
>那麼,我們需要做什麼才能完成這項工作?如果您正在運行Jekyll,但不限於安全模式(不幸的是,使用GitHub頁面進行託管),則可以肯定地找到/構建一個Ruby插件來執行此操作。這將是最好的解決方案,因為這通常是服務器端語言處理的內容。
>現在,如果您在GitHub頁面上託管您的網站,這比Jekyll更常見,您不能使用插件,也無法使用自定義Ruby代碼擴展Jekyll的Core,因此您最終會用可用的內容來入侵一個解決方案:液體和降價。>主要想法是將一個包含我們所有映射到實際URL的路由的文件。值得慶幸的是,Jekyll允許我們通過存儲在_DATA文件夾中的YAML/JSON/CSV文件來定義自定義全局變量,後來通過site.data。 data。
>
>要在上面添加一點句法糖,我們將創建允許友好語法的Markdown鏈接引用 - 但讓我們不要太快。>
創建路由器名稱)。可以在任何jekyll項目的_data文件夾中創建yaml/json/csv文件,所以讓我們一起使用名為doutes.yml的yaml文件:
home: "/" about: "/about-us/" faq: "/frequently-asked-questions/" repository: "https://github.com/user/repository"
如您所見,我們不再是指URL,而是參考路線。這不是魔術,它只告訴jekyll訪問在給定路徑上存儲的全局變量(例如site.data.routes.faq)。
現在,如果存儲庫不再在Github上託管,或者“關於我們”頁面的URL現在 /關於 /,請不要擔心!通過更新路由器,我們可以使其正常工作,而無需回到我們的頁面以更新我們的鏈接。
--- layout: default title: "About us" --- <span><!-- Content about us --> </span> Go to our [GitHub repository]({{ site.data.routes.repository }}). Or read the section dedicated to [Frequently Asked Questions]({{ site.data.routes.faq }}).
在這一點上,我們有一個功能性路由器,允許我們更改任何URL,而無需爬網即可修復損壞的鏈接。因此,您可以說這已經很酷了。但是,必須鍵入site.data.routes.faq並不是很方便。我們肯定可以使它更加優雅!
> 是的,是的。首先,我想到建立一個小路由()函數,該功能接受一個密鑰名稱並返回存儲在site.data.routes.然後,我想到了以前從未使用過的降價功能:鏈接引用。這就是在Markdown中表示鏈接的方式:
home: "/" about: "/about-us/" faq: "/frequently-asked-questions/" repository: "https://github.com/user/repository"
:
--- layout: default title: "About us" --- <span><!-- Content about us --> </span> Go to our [GitHub repository]({{ site.data.routes.repository }}). Or read the section dedicated to [Frequently Asked Questions]({{ site.data.routes.faq }}).
注意:使用參考而不是URL時,括號被括號替換為括號。
>這可以使您可以將所有鏈接定義在同一位置(例如在底部),而不是整個文檔。我必須說我沒有太多使用此功能,但是在這種情況下,它很方便。>
>這個想法是從我們的路由器中自動化鏈接引用,以便我們可以將路由用作任何文件中的參考。事實證明,在液體中進行此操作非常容易:
[I am a link](http://link.url/)
>
[I am a link][id_reference] [id_reference]: http://link.url
> 但是,我們仍然可以做一些使它變得更好的事情。我們可以將此循環放在液體部分中,並將部分包含在每個頁面中,而不是複制循環。說我們在_的文件夾中創建一個路由。
>然後在我們的頁面中:
# _includes/route.html {% for route in site.data.routes %} [{{ route[0] }}]: {{ route[1] }} {% endfor %}
>
注意:您可以在頁面中的任何位置都包含部分。您可以將其完全放在文件的最後一行中。--- layout: default title: "About us" --- <span><!-- Content about us --> </span> Go to our [GitHub repository][repository]. Or read the section dedicated to [Frequently Asked Questions][faq]. {% for route in site.data.routes %} [{{ route[0] }}]: {{ route[1] }} {% endfor %}
就是這樣,我們已經在Jekyll Safe-Mode中砍了一些路由組件。現在這有什麼缺點?有一些次要的:
>您不能在鏈接中添加錨點;如果需要
>您必須在所有頁面中包括HTML部分,這可能很乏味(即使您認為這是YAML前部問題的擴展,您還是必須寫的)。>在我的網站上使用jekyll有什麼好處? ,博客意識,靜態網站生成器,非常適合個人,項目或組織網站。它非常靈活,並支持自定義的URL結構,主題,插件等。另外,由於它會生成靜態站點,因此與傳統的CMS平台相比,它非常快速,安全。
>使用Jekyll構建的網站的一些示例? ,從個人博客到大型組織網站。一些示例包括官方的Jekyll網站,GitHub頁面等等。您可以在官方的Jekyll網站上找到Jekyll網站的展示。
>
>如何優化SEO的Jekyll網站? > Jekyll提供了幾個功能,可以幫助您優化SEO網站。這包括自定義URL結構,對元標籤的支持以及生成XML站點地圖的能力。此外,由於Jekyll會生成靜態站點,因此它可以非常快,可以改善您網站的搜索引擎排名。以上是在jekyll中黑客路由組件的詳細內容。更多資訊請關注PHP中文網其他相關文章!