jekyll - 过滤以从 post.url 中删除尾部斜杠

问题描述 投票:0回答:1

Jekyll 生成带有尾部斜杠的 post url。我想从所有网址中删除这个尾部斜杠,所以我正在创建一个液体过滤器“remove_trailing_slash”,我想在我的模板中使用它,如下所示:

<a class="blog-article" href="{{ post.url | remove_trailing_slash }}">

这是我的插件的内容(

_plugins/remove_trailing_slash.rb
):

module Jekyll
  module RemoveTrailingSlash

    def remove_trailing_slash(url)
      if url[-1] == '/'
        url[0..-2]
      else
        url
      end
    end
  end
end

Liquid::Template.register_filter(Jekyll::RemoveTrailingSlash)

我期待的

<a class="blog-article" href="/path/to/post">

我得到的

<a class="blog-article" href="/path/to/post/">

看来我的过滤器没有做任何事情。 我做错了什么?

ruby jekyll
1个回答
0
投票

谢谢你的回答,我不懂ruby,你能做一个

{{ page.url }}
的变体吗,因为使用
permalink: pretty
时,
{{ page.url }}

的末尾会有一个斜线

PS当前红宝石块无效

{{ page.url }}


对不起,我更正我的答案,虽然他没有去掉page.url中的斜线,但是他生效了(因为我重启了jekyll serve)。 用例:用于检测导航页中的导航页是否等于

page.url
,添加一个
active

代码示例

{% for item in site.data.navigation.nav %}
<a href="{{ item.link }}" class="nav-link {% assign no_xiegang = page.url | remove_trailing_slash %}{% if item.link == no_xiegang %}active{% endif %}">{{ item.name }}</a>
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.