【问题标题】:Jekyll extracting filename from url with RubyJekyll 使用 Ruby 从 url 中提取文件名
【发布时间】:2017-07-02 19:41:45
【问题描述】:

我正在尝试使用这个 ruby​​ sn-p 从 Jekyll 上的 url 中提取文件名:

{% assign filename = page.url.split('/')[-1] | replace: '.html', '.md' %}

如果我只是使用:

{% assign filename = page.url | replace: '.html', '.md' %}

我用替换后的文件类型取回了 url,但我的 .split('/')[-1] 似乎不起作用。

我尝试在独立的 ruby​​ 中运行以下命令以确保我的语法正确,并且它按预期返回了 bird

"cat/dog/b­ird".split­('/')[-1]

为什么在我的 Jekyll 实例中不能使用相同的语法? page.url 不是字符串还是别的什么?

【问题讨论】:

    标签: ruby jekyll liquid


    【解决方案1】:

    问题在于将 ruby​​ 代码与 Liquid 标签混合在一起。

    要从 Jekyll 中的 url 中提取文件名,您可以使用纯 Liquid 模板过滤器,使用您尝试过的等效项:

    • .split­('/') -> | split: '/'
    • [-1] -> | last

    以自定义 URL 为例:

    {% assign url_example = "cat/dog/bird.html" %}
    {% assign filename = url_example | split: '/' | last | replace: '.html', '.md' %}
    {{filename}}
    

    输出:

    bird.md
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 2014-12-24
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      相关资源
      最近更新 更多