【问题标题】:Does Jekyll provide a method for extending a master Sass file without importing it?Jekyll 是否提供了一种无需导入即可扩展主 Sass 文件的方法?
【发布时间】:2017-04-26 14:53:04
【问题描述】:

我在一个 Jekyll 项目的多个站点上工作时,正在参考一位大师 base.scss 的全局样式。我的项目目录如下所示:

project | +--_sass | | | +--base.scss | +--_site | | | +--apple | | | | | +--css | | | | | +--style.css | | | +--banana | | | +--css | | | +--style.css | +--apple | | | +--css | | | +--style.scss | |--banana | | | +--css | | | +--style.scss

这很好用,因为每个style.scss 文件都使用@import 来导入base.scss 文件,这使我可以依次@extend 基本样式。这当然会在每个导入它的文件中复制base.scss 的内容。

我想知道是否有办法将 base.scss 编译为 _site/css/base.css,我将从我的共享标头中引用它,同时在编辑我的站点特定 Sass 时保留对其类的访问权限。

Jekyll 是否提供了一种方法来引用扩展 Sass 文件而不在构建中复制它们的内容?

【问题讨论】:

  • 我曾考虑在我的基本样式表中使用 Sass 占位符,但回报会非常小,因为这些是最终会被导入到每个站点的常见样式。

标签: sass jekyll


【解决方案1】:

如果我正确理解您的问题,以下安排应该也可以正常工作:

project
 |
 +--_sass
 |   |
 |   +--base.scss
 |
 +--_css
 |   |
 |   +--main.scss
 |
 +--apples
 |   |
 |   +--css
 |   |   |
 |   |   +--style.css
/* css/main.scss */
---
---
@import "base";
/* apples/css/style.css */
/* No need of front matter dashes here if its not a sass file */

.my_class { color: blue; }
<!-- _site/index.html -->
<head>
  [...]
  <link rel="stylesheet" href="/css/main.css" />
  <link rel="stylesheet" href="/apples/css/style.css" />
</head>

【讨论】:

  • 感谢您的回复。我的问题是在黑暗中拍摄的,而您的答案并不是完全的解决方案。离开你的例子,我正在寻找一种能够从apples/css/style.css.my_class { @extend .color-blue; } 的方法,而不包括base.scss 以及我想要引用基本文件的所有其他目录。也就是说,像您一样编译为共享的main.css 文件,但保留对其要扩展的类的访问权限。这不是 Sass 的一个特性——Jekyll 提供的一些东西让我感到惊讶,所以我想知道它是否为此提供了一个处理程序。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 2019-12-06
  • 2021-09-04
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多