Jekyll 为所有帖子设置URL变量

Jekyll 为所有帖子设置URL变量,jekyll,github-pages,liquid,Jekyll,Github Pages,Liquid,我正在尝试引用GitHub pages帖子中的图像。我一直在引用版面中的图像,为此,我在我的\u layouts/default.html中使用了以下代码: {% assign custom_url = site.url | append: site.baseurl %} {% assign full_base_url = custom_url | default: site.github.url %} … href="{{ "/images/logo.png" |

我正在尝试引用GitHub pages帖子中的图像。我一直在引用版面中的图像,为此,我在我的
\u layouts/default.html
中使用了以下代码:

{% assign custom_url = site.url | append: site.baseurl %}
{% assign full_base_url = custom_url | default: site.github.url %}
… href="{{ "/images/logo.png" | prepend: full_base_url }}" …
(我不确定前两行到底是怎么写的,但它们似乎在实时页面和本地预览中都很好,所以我倾向于保留它们的语义。)

尝试仅复制帖子正文中的最后一行失败,导致没有任何内容被预先设置。我假设在呈现post时,变量不存在,只有在该呈现插入布局时才存在。在每篇文章中使用所有三行图片感觉有点重复

我读过一本书,它描述了如何对所有帖子进行设置,但它似乎只允许设置静态值,而不像我在作业中那样允许设置计算值


我也读过,它似乎解决了同样的液体问题。但是这个问题是非常简单的,并且标记为Shopify而不是Jekyll,所以一些答案对我来说并不适用。我从答案中得到的要点是,也许我可以在某个地方包含一些“片段”,但我不知道如何做到这一点,更不用说以一种不需要在每篇文章中添加行的方式。术语“snippet”倾向于指代码片段,这一事实并没有使搜索指南变得更容易。

在我的一个Jekyll项目中,我有同样的要求,而与您一样,我没有找到一个真正明确的方法来实现这一点

我花了很长时间试图将其放入_config.yaml中,但由于处理顺序,我意识到它永远不会起作用

我最终得到的可能不是最干净的解决方案,我真的希望有人能拿出比这个更好的解决方案,但这里是:

在_includes文件夹中,我创建了一个variables.html文件,其中包含我知道可以在所有页面上使用的所有全局变量

在您的情况下,文件_includes/variables.html将是

然后在所有需要这些变量的布局中,我只会在
DOCTYPE
之后包含variables.html文件,下面是一个简化的_layouts/default.html示例:


{%include variables.html%}
{{content}}

这样,您的变量
自定义url
完整基本url
在使用默认布局的任何地方都可以全局访问。

我尝试过这一点,但在我看来,这些变量现在既不在布局中也不在帖子中可用。至少在本地运行。
{% assign custom_url = site.url | append: site.baseurl %}
{% assign full_base_url = custom_url | default: site.github.url %}