钥匙要点
- > >可以在jekyll中创建路由器,通过将URL映射到存储在_DATA文件夹中的YAML文件中的名称(路由)。这允许更改URL,而无需更新所有指向旧URL的链接,因为链接现在是指路由名称而不是URL路径。 为了使路由器更加用户友好,可以从路由器自动化降低链接引用,从而可以将路由用作任何文件中的参考。这是通过创建循环循环所有路线的液体部分来完成的,并为每个路线创建一个降价参考。
- >该解决方案在Jekyll中提供了功能路由器,但存在一些局限性。它仅在降级中起作用,而不是普通的HTML,并且无法将锚添加到链接中。此外,HTML部分必须包含在所有页面中,这可能很乏味。尽管存在这些缺点,但这种解决方法为Jekyll中缺乏路由组件提供了可行的解决方案。
- 最初,当用Markdown,Liquid和YAML
- 托管在GitHub页面上时,我将在Jekyll中删除Jekyll中的路由组件的标题。显然,这有点长,所以我不得不缩短它。无论如何,这一点并没有改变:Jekyll缺少某种路由器,我想我发现一个不太可能的 解决方案。
路由器我是指将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链接引用 - 但让我们不要太快。>
创建路由器路由器的点是示出映射到URL(一对一)的路由(又称
名称)。可以在任何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/)>通过将其添加到页面中的任何位置,这将指示Jekyll作为液体代码处理,然后将其作为Markdown参考进行处理。因此,例如,回到我们以前的示例,我们可以做:
>
[I am a link][id_reference] [id_reference]: http://link.url现在我们在说话,对吗?唯一的问题是必须在任何页面中包括此循环。首先,我想到将其添加到布局中,因此它会使用相关布局自动添加到任何页面。问题在于,布局在jekyll中没有作为降级处理,因此参考文献实际上在DOM的底部可见。更糟糕的是,它们在我们的页面中不可用,因为它们没有被作为Markdown处理……太糟糕了。
> 但是,我们仍然可以做一些使它变得更好的事情。我们可以将此循环放在液体部分中,并将部分包含在每个页面中,而不是复制循环。说我们在_的文件夹中创建一个路由。
>然后在我们的页面中:
# _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中砍了一些路由组件。现在这有什么缺点?有一些次要的:
>它可以在Markdown中工作;如果您碰巧在平原HTML中具有一个链接,则必须返回到{{site.data.Routes。}}}},这还不错,因为它仍然可以使链接免受URL更新的安全。
>
>您不能在链接中添加锚点;如果需要
>您必须在所有页面中包括HTML部分,这可能很乏味(即使您认为这是YAML前部问题的扩展,您还是必须写的)。-
除了那些缺点之外,这一切都很好。你怎么看?
-
>常见问题(常见问题解答)有关在jekyll中攻击路由组件的问题(常见问题解答)
Jekyll中路由组件的重要性是什么?它负责将每个页面映射到特定的URL,这对于站点导航和SEO至关重要。通过黑客入侵路由组件,您可以自定义网站的URL结构以满足您的特定需求,改善用户体验和搜索引擎可见性。 >如何自定义Jekyll中的URL结构?允许您通过使用永久链接来自定义URL结构。您可以在帖子的前提中指定自定义的永久链接,该链接将覆盖默认的URL结构。这使您可以创建更具描述性和用户友好的URL,它可以改善您的网站的SEO和用户体验。
>>在我的网站上使用jekyll有什么好处? ,博客意识,静态网站生成器,非常适合个人,项目或组织网站。它非常灵活,并支持自定义的URL结构,主题,插件等。另外,由于它会生成静态站点,因此与传统的CMS平台相比,它非常快速,安全。
>如何将我的jekyll网站部署到第三方平台?第三方部署平台,包括GitHub页面,Netlify等。要部署网站,您需要在本地构建它,然后将生成的静态文件推到所选平台。每个平台都有自己的特定部署流程,因此请务必检查其文档以获取详细说明。
>使用Jekyll构建的网站的一些示例? ,从个人博客到大型组织网站。一些示例包括官方的Jekyll网站,GitHub页面等等。您可以在官方的Jekyll网站上找到Jekyll网站的展示。
>我如何使用CloudFlare部署我的Jekyll网站?
cloudflare页面是jamstack的平台,是jamstack的平台网站。它与Jekyll高度兼容,并提供了一个简单的简化部署过程。您可以将github存储库连接到CloudFlare页面,只要您推到存储库,它将自动构建和部署您的网站。>如何将插件添加到我的jekyll网站?
> jekyll支持各种插件,这些插件可以为您的网站添加新功能和功能。要添加插件,您需要安装它,然后将其添加到网站的_config.yml文件中。某些插件也可能需要其他配置,因此请确保检查插件的文档以获取详细说明。>我可以将jekyll与其他编程语言一起使用吗?jekyll是使用Ruby构建的,但它可以通过使用插件和集成与其他编程语言一起使用。例如,您可以将jekyll与JavaScript一起使用为您的站点添加动态功能,或者使用SASS(例如Sass)等CSS预处理程序来简化您的样式过程。 >
>如何优化SEO的Jekyll网站? > Jekyll提供了几个功能,可以帮助您优化SEO网站。这包括自定义URL结构,对元标签的支持以及生成XML站点地图的能力。此外,由于Jekyll会生成静态站点,因此它可以非常快,可以改善您网站的搜索引擎排名。>
以上是在jekyll中黑客路由组件的详细内容。更多信息请关注PHP中文网其他相关文章!

与这些顶级开发人员新闻通讯有关最新技术趋势的了解! 这个精选的清单为每个人提供了一些东西,从AI爱好者到经验丰富的后端和前端开发人员。 选择您的收藏夹并节省时间搜索REL

该教程通过使用AWS服务来指导您通过构建无服务器图像处理管道。 我们将创建一个部署在ECS Fargate群集上的next.js前端,与API网关,Lambda函数,S3桶和DynamoDB进行交互。 Th

该试点程序是CNCF(云本机计算基础),安培计算,Equinix金属和驱动的合作,简化了CNCF GitHub项目的ARM64 CI/CD。 该计划解决了安全问题和绩效


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3汉化版
中文版,非常好用