如何在 Jekyll 上添加更多内容

Ani*_*waj 9 github jekyll-theme

我有一个 GitHub 托管的网站,该网站目前使用 Jekyll 主题,并在 HTML 上运行。问题是我必须把

---
layout: default
---
Run Code Online (Sandbox Code Playgroud)

进入开始,这需要照顾头部。但是现在,我无法向头部添加任何内容,例如我需要使用的重要脚本。如果有人有这方面的经验,我该怎么办?

Max*_*ter 9

我在 Jessica Reel 的博客上找到了解决方案

在您的default.html布局中,在您的头部(或者更好的是在您的正文末尾,除非您的脚本需要位于头部),添加如下内容:

  {% if page.custom_js %}
    {% for js_file in page.custom_js %}
      <script type="text/javascript" src="{{ site.baseurl }}/assets/js/{{ js_file }}.js"></script>
    {% endfor %}
  {% endif %}
Run Code Online (Sandbox Code Playgroud)

然后在页面的 front-matter 中添加:

custom_js:
- example-js-file-1
- example-js-file-2
Run Code Online (Sandbox Code Playgroud)

完全相同的原理也适用于 CSS。

由于我使用嵌套布局,因此我最终在自己的网站上更进一步。Jekyll 3 因此为布局变量提供了一个单独的变量命名空间,因此在head我的主布局中,我首先指定布局的自定义 css ,然后指定页面的自定义 css:

{% if layout.custom_css %}
  {% for stylesheet in layout.custom_css %}
  <link rel="stylesheet" href="/assets/css/{{ stylesheet }}.css">
  {% endfor %}
{% endif %}
{% if page.custom_css %}
  {% for stylesheet in page.custom_css %}
  <link rel="stylesheet" href="/assets/css/{{ stylesheet }}.css">
  {% endfor %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到它应用了布局前面内容中的自定义 css,然后应用了特定页面前面内容中的自定义 css,以便这些内容正确地从一般样式级联到特定样式。


Arm*_*mel -1

https://jekyllrb.com/docs/layouts/#usage

第一步是将模板源代码放入default.html.

创建以下文件_layouts/default.html

然后你可以把你想要的任何东西放进去并自定义head,例如:

<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{{ page.title }}</title>
    <link rel="stylesheet" href="/css/style.css">
  </head>
  <body>
    <nav>
      <a href="/">Home</a>
      <a href="/blog/">Blog</a>
    </nav>
    <h1>{{ page.title }}</h1>
    <section>
      {{ content }}
    </section>
    <footer>
      &copy; to me
    </footer>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)