我的目标是创建从任何已发布的 jekyll 页面返回到其在 Github 上的位置的链接。
因此,在构建此 url 时,我需要访问页面的路径名。但是,我在提供此信息的模板的 api 中看不到任何内容。我查看了page的源代码,但是当通过模板访问时,所有文件/路径属性都没有值。
我的目标是创建从任何已发布的 jekyll 页面返回到其在 Github 上的位置的链接。
因此,在构建此 url 时,我需要访问页面的路径名。但是,我在提供此信息的模板的 api 中看不到任何内容。我查看了page的源代码,但是当通过模板访问时,所有文件/路径属性都没有值。
更新:现在你可以使用{{page.path}}
.
似乎您可以使用液体代码很好地构建您的链接:{{ page.url }}
例如,如果您希望此页面:http ://railsdocs.org/pages/get-involved.html链接到此页面:https ://github.com/dogweather/railsdocs.org/blob/gh-pages/ pages/get-involved.md
似乎您可以添加以下内容:
[source](https://github.com/dogweather/railsdocs.org/blob/gh-pages/{{page.url | replace:'.html','.md'}})
到降价并获得你想要的链接。
或者,我们可以编写一个允许页面直接访问其文件名的生成器。将此添加到目录中的.rb
文件中_plugins
:
module Jekyll
class PagePathGenerator < Generator
safe true
## See post.dir and post.base for directory information.
def generate(site)
site.posts.each do |post|
post.data['path'] = post.name
end
end
end
end
然后我们可以可靠地将帖子的文件名作为{{ page.path }}
. 此解决方案比从 URL 转换更强大,因为页面名称在将其转换为 URL 时可能包含被“清理”出来的字符。(帖子还需要重新添加他们的日期信息等)。相反,这个插件让我们可以直接访问帖子的名称。
如果还需要该数据,类似的策略可以让我们获得帖子的路径。
我不确定这是什么时候添加的,但page.path
给出了源文件相对于 Jekyll 根目录的路径。