【问题标题】:Can you use Jekyll page variables in a layout?你可以在布局中使用 Jekyll 页面变量吗?
【发布时间】:2012-02-15 12:49:43
【问题描述】:

我在博客中使用 Jekyll,我希望能够在特定的帖子中使用独特的 CSS 样式。现在,我在 YAML frontmatter 中指定了一个 CSS 文件,如下所示:

style: artdirection.css

并在这样的布局中使用它:

{% if page.style %}
    <link rel="stylesheet" href="{{ page.style }}">
{% endif %}`

这可行,但我更愿意将实际的 CSS 样式包含在页面前端的样式标记中,而不是链接到样式表。

我尝试了几种方法来处理这个问题,包括here 中描述的方法,但我捕获的变量只能在帖子本身内部使用,而不是在布局中使用。

那么,有可能吗?

【问题讨论】:

  • " 我更愿意将 CSS 包含在页面的样式标签中,而不是链接到样式表" 你能解释一下这部分吗?我不明白你想做什么。
  • 好吧,现在我链接到一个外部 css 文件,用于博客文章的艺术方向与博客的其余部分不同。我在 YAML frontmatter 中引用该文件的位置,并使用我的文档头部(位于布局中)中的 page.style 变量链接到它。我更愿意在文档头部的

标签: css jekyll


【解决方案1】:

我很确定这会奏效:

---
title: xxx
style: |
  /* You can put any CSS here */
  /* Just indent it with two spaces */
  /* And don't forget the | after "style: " */
  h2 {
    color: red;
  }
---

Your markdown/textile goes here. h2s will be red

然后在你的布局中:

<style type="text/css">
{{ page.style }}
</style>

应该就是这样。

【讨论】:

  • 是的,这行得通。它给了我一些复杂规则(如渐变等)的语法错误,但它适用于简单的 CSS,我可能会弄清楚如何处理出现的任何错误。非常感谢!
  • 嗨 axelande,可能正在发生的事情是 markdown/textile 试图将您传入的 css 解释为 markdown。在行上再增加一个空格可能会有所帮助。如果没有,请尝试转义该文本,使其不被转换(在纺织品中使用notextile.,我不知道您在降价中是如何做到的)
【解决方案2】:

Jekyll 3 重大变化

现在在布局前端 (_layouts/default.html) 中声明的变量可以通过以下方式看到:

{{ layout.style }}

而不是旧的:

{{ page.style }}

https://github.com/jekyll/jekyll/issues/4123

【讨论】:

  • 一个很难实现的突破性变化,感谢您的加入
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 2010-09-19
相关资源
最近更新 更多