【问题标题】:jekyll and sass; can i use the meta?jekyll 和 sass;我可以使用元数据吗?
【发布时间】:2014-10-12 16:37:49
【问题描述】:

假设我有一个 jekyll 项目,它在 _data/slides.yml 中定义了一些数据:

- number: 1   
  image: image1.jpg   
  class: one
  paragraph: Apa

- number: 2  
  image: image2.jpg  
  class: two
  paragraph: Bepa

...等

然后我也有一个像这样的包含:

{% for slide in site.data.slides %}

  <!-- Section #{{ slide.number }} -->
  <div class="bg-wrapper">
    <div class={{ slide.class }} id={{ slide.class }}>
      <div class="page-bg"></div>
      <div class="center">
        <h1>{{ slide.number }}</h1>
        <hr>
        <h4>{{ slide.paragraph }}</h4>
      </div>
    </div>
  </div>

{% endfor %}

想法是幻灯片中的每张幻灯片都应该有一个部分,以便幻灯片中的图像是背景图像。
现在,我知道我可以在这里添加一些带有类等的内联样式,但我宁愿在我的 sass 文件中再次循环遍历数据并为每个文件创建一个类。有可能做这样的事情吗?

例如在 main.sass 中:

---
---

{% for slide in site.data.slides %}

  .{{ slide.class }}
    background: url(/assets/images/{{ slide.image }}) no-repeat center center fixed

{% endfor %}

此外,如果可能的话,您是否也可以将 {{ slide.image }} 作为 mixin 的参数传递?

提前致谢!

编辑:

接受的答案说明了一切。对我来说,问题是我使用的是 .sass 文件(不是 scss),当我在 for 循环中缩进时没有看到自己的错误,导致 sass 失败。

【问题讨论】:

    标签: css sass yaml jekyll


    【解决方案1】:

    是的,你可以做到!

    - number: 1
      image: image1.jpg
      class: one
      paragraph: Apa
      radius: 5px <-- added radius for example
    

    sass 代码

    @mixin border-radius($radius) {
      -webkit-border-radius: $radius;
         -moz-border-radius: $radius;
          -ms-border-radius: $radius;
              border-radius: $radius;
    }
    
    {% for slide in site.data.slides %}
    .{{ slide.class }}{
      background: url(/assets/images/{{ slide.color }}) no-repeat center center fixed;
      @include border-radius({{slide.radius}});
    }
    {% endfor %}
    

    【讨论】:

    • 不错!要试试看! brb。
    猜你喜欢
    • 2013-03-20
    • 2015-05-25
    • 2021-04-25
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多