Jekyll:错误:此文件已加载 + 无法识别的前端内容

Jekyll: Error: This file is already being loaded + unrecognized front matter

提问人:Jan Černý 提问时间:1/21/2023 更新时间:1/22/2023 访问量:84

问:

我有一个基于 jekyll 的博客。当我尝试构建它时,出现此错误:

...
     Generating...
       Jekyll Feed: Generating feed for posts
Warning on line 1, column 1 of /home/john/Projects/blackblog/assets/css/index.sass:
This selector doesn't have any properties and won't be rendered.
  ╷
1 │ ---
  │ ^^^
  ╵
Warning on line 2, column 1 of /home/john/Projects/blackblog/assets/css/index.sass:
This selector doesn't have any properties and won't be rendered.
  ╷
2 │ ---
  │ ^^^
  ╵
Error: This file is already being loaded.
  ┌──> /home/john/Projects/blackblog/assets/css/index.sass
4 │ @import index, font, basic, layout
  │         ^^^^^ new load
  ╵
  ┌──> /home/john/Projects/blackblog/assets/css/classes.sass
1 │ @import index, highlight
  │         ━━━━━ original load
  ╵
  /home/john/Projects/blackblog/assets/css/index.sass 4:9    @import
  /home/john/Projects/blackblog/assets/css/classes.sass 1:9  root stylesheet
  Conversion error: Jekyll::Converters::Sass encountered an error while converting 'assets/css/classes.sass':
                    This file is already being loaded.
...

整个网站的代码:github.com/yagarea/blackblog

我应该修复什么才能构建我的网站? 谢谢你的帮助

CSS sass jekyll static-site yaml-front-matter

评论


答:

0赞 Jan Černý 1/22/2023 #1

此问题的原因是我的文件名在 和 in 中。直到 3.0 版才出现问题。index.sass_sassassetsjekyll-sass-converter

我将一个文件重命名为 .我带来了很多其他问题,但它很容易解决,因为构建日志会告诉您如何修复它。main.sass


不是真正的错误。事情是这样的:

  1. index.sass有正面物质。Jekyll 将文件读取为字符串,处理并删除前端内容,然后开始编译输入“字符串”。

  2. index.sassimports,根据 sass 规范,自身的相对导入在加载路径之前命中,现在我们正在导入相同的文件,从技术上讲,这是一个循环导入。当 sass 直接从磁盘读取相同的输入时,它对 Jekyll 前端问题一无所知,并且会因语法错误而放弃。index.sass

解决该问题的一种方法是编写一个自定义导入器,用于检查每个导入部分中的前内容,并在读取为 sass 部分之前使用 Jekyll 对其进行编译。但是,这有很大的缺点,不值得这样做:

  1. Jekyll 的飒飒实施从来不允许偏袒有前台问题。
  2. 允许部分的前端内容会导致编译性能变慢,因为每个部分都需要由 Jekyll 进行预处理,然后通过 stdio 作为字符串传递 protobuf,而不是 dart-sass-embedded 直接从磁盘读取文件。
  3. 即使我们允许部分的前端物质,它仍然是循环导入,用户只会收到不同的错误消息。

来源: github.com/jekyll/jekyll/issues/9265