如何用Jekyll为页面body添加对应URL的类名(去除冗余内容)
解决Jekyll页面body标签添加URL类名的问题
当前代码直接输出page.url会包含开头斜杠和尾部.html,只需通过Jekyll的过滤器对URL字符串做处理,就能得到干净的类名:
修改后的代码
{% assign url = page.url | remove:'index.html' %} {% assign body_class = page.url | remove: '.html' | split: '/' | last %} {% for link in page.navigation %} <body {% if url == link.url %}class="{{ body_class }}"{% endif %}> {% endfor %}
过滤器说明
remove: '.html':移除URL里的.html后缀split: '/':把URL按斜杠分割成数组(比如/page-title.html处理后变成['', 'page-title'])last:取分割后数组的最后一个元素,也就是我们需要的页面名称
如果你的页面都是一级路径(无嵌套目录),也可以用更简洁的写法:
{% assign body_class = page.url | remove: '.html' | remove_first: '/' %}
这样处理后,就能生成你期望的<body class="page-title">效果。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

