提问人:Jan Černý 提问时间:1/21/2023 更新时间:1/22/2023 访问量:84
Jekyll:错误:此文件已加载 + 无法识别的前端内容
Jekyll: Error: This file is already being loaded + unrecognized front matter
问:
我有一个基于 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。
我应该修复什么才能构建我的网站? 谢谢你的帮助
答:
0赞
Jan Černý
1/22/2023
#1
此问题的原因是我的文件名在 和 in 中。直到 3.0 版才出现问题。index.sass
_sass
assets
jekyll-sass-converter
我将一个文件重命名为 .我带来了很多其他问题,但它很容易解决,因为构建日志会告诉您如何修复它。main.sass
不是真正的错误。事情是这样的:
index.sass
有正面物质。Jekyll 将文件读取为字符串,处理并删除前端内容,然后开始编译输入“字符串”。index.sass
imports,根据 sass 规范,自身的相对导入在加载路径之前命中,现在我们正在导入相同的文件,从技术上讲,这是一个循环导入。当 sass 直接从磁盘读取相同的输入时,它对 Jekyll 前端问题一无所知,并且会因语法错误而放弃。index.sass
解决该问题的一种方法是编写一个自定义导入器,用于检查每个导入部分中的前内容,并在读取为 sass 部分之前使用 Jekyll 对其进行编译。但是,这有很大的缺点,不值得这样做:
- Jekyll 的飒飒实施从来不允许偏袒有前台问题。
- 允许部分的前端内容会导致编译性能变慢,因为每个部分都需要由 Jekyll 进行预处理,然后通过 stdio 作为字符串传递 protobuf,而不是 dart-sass-embedded 直接从磁盘读取文件。
- 即使我们允许部分的前端物质,它仍然是循环导入,用户只会收到不同的错误消息。
评论