我有一个YAML文件,它包含一些数据,需要在客户端处理。
---
some: content
...
Jekyll使用Front Matter处理所有内容,这导致整个YAML内容被视为Front Matter,然后页面没有内容。
有没有办法告诉Jekyll将文件视为静态,即使它有YAML标题?
我尝试了exclude
和keep_files
的不同组合,同时在我的_config.yml
中设置了Front Matter默认值,但没有任何效果。
我现在的解决方法是在内容前面添加一个额外的Front Matter块:
---
layout: null
---
---
some: content
...
YAML文件虽然是一个昂首阔步的定义,但添加这个额外的块都是:
理想情况下,我想存储文件而不做任何修改,并以某种方式教Jekyll不管它。
答案 0 :(得分:2)
没有办法告诉Jekyll在没有插件的情况下避免处理带有前端内容的文件。
一个简单的解决方案是使用Jekyll hook's在生成整个网站后立即将带有前端内容的原始未处理文件复制到生成的网站。
例如,添加_plugins/copyfile.rb
:
Jekyll::Hooks.register :site, :post_write do |site|
src = "_unprocessed/about.md"
dest = "_site/assets"
puts "Copying #{src} to #{dest}"
FileUtils.cp(src, dest)
end
这会将_unprocessed/about.md
与前端问题复制到最终网站assets
目录。
当_unprocessed
以下划线开头时,它不会出现在结果网站中。
构建网站:
/tmp/s⟫jekyll b
Configuration file: /tmp/s/_config.yml
Source: /tmp/s
Destination: /tmp/s/_site
Incremental build: disabled. Enable with --incremental
Generating...
Copying _unprocessed/about.md to _site/assets
done in 0.884 seconds.
Auto-regeneration: disabled. Use --watch to enable.
/tmp/s⟫ tree _site/
_site/
├── 404.html
├── assets
│ ├── about.md
│ └── main.css
├── feed.xml
├── index.html
└── jekyll
└── update
└── 2017
└── 11
└── 09
└── welcome-to-jekyll.html
6 directories, 6 files
答案 1 :(得分:1)
在这里交叉发布我的答案,因为它可能是相关的(不确定;我不是Jekyll用户,但github页面使用它。)https://stackoverflow.com/a/48954668/1461007