【问题标题】:Including CSS stylesheets in Jekyll pages在 Jekyll 页面中包含 CSS 样式表
【发布时间】:2015-12-19 19:36:13
【问题描述】:

我已经用 Jekyll 玩了几个星期了,我正在尝试为我的每篇博客文章创建一个默认样式,但我不确定应该在哪里以及如何完成。我的主索引页面在样式方面工作得很好,但我的帖子没有任何 CSS 被传递给他们,尽管尝试了各种方法。

博客文章的 CSS 是否应该用 _layouts/default.html_layouts/posts.html 编写,我是否必须指定要在 YAML 中使用哪些样式表,使用 {% include ...%} 或编写

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

我无法找到给出明确答案的信息。

【问题讨论】:

    标签: html css jekyll


    【解决方案1】:

    Jekyll 的方法是采用您要用于最终页面的任何布局(例如 _layouts/posts.html)并在那里创建您的 HTML 文档骨架(即 htmlhead 和 @987654325 @标签)。在布局 HTML 的 head 中,放入 {% include blog-head.html %}。这个blog-head.html 文件将包含每个博客页面所需的所有 CSS、JS 等。

    然后在您的blog-head.html 中,您可以只为自定义 CSS 文件编写 CSS 文件包含:

    <link rel="stylesheet" href="blogposts.css">
    

    这样,您可以轻松地在所有博客文章页面中包含相同的 head 部分,并且您可以轻松地更新该 head 部分(添加、删除或更改 CSS/JS),它会自动影响您所有的博客文章。

    以下链接提供了覆盖主题默认值的一般步骤:Jekyll: Overriding Theme Defaults。该页面提供了获取 html 基本布局文件副本(来自您的主题)的说明,您需要使用新的 CSS 链接对其进行修改。

    如果您希望我澄清任何事情,请跟进!

    【讨论】:

    • 感谢您的指导。曾经的问题。 blog-head.html 文件是否应该在 _layouts 文件夹中?
    • @gabed123 blog_head.html 进入_includes 文件夹。希望有帮助!
    • CSS 文件必须放在哪里。因为由于某种原因,在完成所有这些操作后它仍然没有渲染。很抱歉提出这些荒谬的问题。
    • @gabed123 如果我没记错的话,CSS 文件应该位于 Jekyll 主文件夹中。 (如果您希望将 CSS 放在子目录中,可以在 link 标签上使用绝对或相对路径。)
    • 你需要在那个标签上加上一个“/”吗?例如。 &lt;link rel="stylesheet" href="blogposts.css" /&gt;?
    【解决方案2】:

    您可能会因包含而变得非常疯狂,毫无疑问,代码最终看起来经过精心设计且很酷。但是,生产力可能会受到影响。尤其是最初,当您可能使用像Brackets.io 这样的“实时预览”工具完成大部分工作时。在早期,您可能还没有准备好开始您的“jekyll serve”工作流程模式。我怀疑您的部分问题不包括“baseurl”配置参数。

    一个适合我的快乐媒体解决方案是有条件地包含标题链接。

    {% if site.baseurl %}
      {% include links.html %}
    {% else %}
      <link rel="stylesheet" href="/solarized-dark.css">
      <link rel="stylesheet" href="/site.css">
    {% endif %}
    

    这处理所有工作流程:实时预览、jekyll 服务器和生产。

    如果你在本地使用 jekyll 进行测试,你可以传递一个空的 baseurl 参数。

    jekyll serve --baseurl ''
    

    http://jekyllrb.com/docs/github-pages/#project-page-url-structure

    【讨论】:

    • 关于urlbaseurl 问题,我创建了一个“ruby 插件”website_url 参见here
    【解决方案3】:

    如果我想以一种快速而肮脏的方式将一些 CSS 添加到帖子中,我将在帖子正文中添加一个 &lt;style&gt; 标签。

    ---
    layout: post
    title: "quick and dirty CSS in jekyll posts"
    date: 2016-04-08 13:04:00
    ---
    
    <style type="text/css">
      p {
        border: 1px solid black;
      }
    </style>
    
    whoa this paragraph has a border around it, such magic
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-26
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多