Pet*_*erb 6 ruby liquid jekyll
我有问题,当我使用德语单词与变音符号(例如ä,ü)时,类别不是url编码的.我尝试了Liquid似乎提供的cgi_escape,但是使用以下代码成功:
<strong>Kategorien</strong><br/>
{% for category in site.categories do %}
<small><a href="/categories/{{ category[0] | cgi_escape }}">{{ category[0] }} </a><br/>
</small>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
cgi_escape对于带空格的类别,使用不起作用.生成链接/category/the+category而不是/category/the%20category.
我最终使用的解决方案来自 这篇博文:
# _plugins/url_encode.rb
require 'liquid'
require 'uri'
# Percent encoding for URI conforming to RFC 3986.
# Ref: http://tools.ietf.org/html/rfc3986#page-12
module URLEncoding
def url_encode(url)
return URI.escape(url, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
end
end
Liquid::Template.register_filter(URLEncoding)
Run Code Online (Sandbox Code Playgroud)
加号是一个文字加上任何地方,但在URL的查询部分,它代表一个空格. 好的URL编码参考(archive.org镜像).
然后可以在布局或其他任何地方使用它:
<a href="{{ site.category_dir }}/{{ category | url_encode }}">
Run Code Online (Sandbox Code Playgroud)
@Peterb,你升级到最新版本的 Jekyll 了吗?当前的 1.0x 版本支持 UTF-8 并且可以更好地处理此类 URL。
您可以通过从终端命令行运行以下命令来安装最新版本:
$ [sudo] gem install jekyll --pre
此 GitHub Issue 帖子将进一步阐明该问题: https ://github.com/mojombo/jekyll/issues/960
| 归档时间: |
|
| 查看次数: |
3706 次 |
| 最近记录: |