尽管使用_config.yml,Jekyll在_site中打开了目录。 [英] Jekyll clobbering directory in _site despite _config.yml.
问题描述
我已经使用
exclude配置了_config.yml:[assets]#排除assets / from转换
保留:[assets]#在构建站点时不要删除_site / assets
我的gulpfile.js是:
var gulp = require('gulp');
var sass = require('gulp-ruby-sass');
gulp.task('sass',function(){
return sass('assets / stylesheets / main.scss')
.on('error',sass。 logError)
.pipe(gulp.dest('_ site / assets /'));
});
gulp.task('default',function(){
gulp.start('sass');
});
然后运行:
gulp
jekyll build
当我运行 gulp
,./_sites/assets/目录是按预期创建的,但是当我运行 jekyll build
./_site/assets/时删除。我缺少什么配置?
正如前面提到的keep_files指令是正确的,而不是保留。以下来自Jekyll网站的信息 http://jekyllrb.com/docs/configuration/
目标文件夹在站点构建时清理默认情况下,
的内容会在构建站点
时自动清理。未由您的网站创建的文件或文件夹将被删除
。某些文件可以通过在
配置指令中指定它们来保留。不要使用重要位置
;而是将它用作暂存区域,并将文件
从那里复制到您的Web服务器。
我决定检查这个通过从头开始做事
部分,我追加到默认jekyll的_config.yml文件看起来像这样
排除:[someFolderHere]
keep_files:[someFolderHere]
从头开始创建新的jekyll网站
wolf @ sloth:〜/ blogs $ jekyll新的虚拟博客
安装了新的jekyll站点in / home / wolf / blogs / dummy-blog。
wolf @ sloth:〜/ blogs $ cd dummy-blog /
wolf @ sloth:〜/ blogs / dummy-blog $
检查网站文件夹的内容
wolf @ sloth:〜/ blogs / dummy-blog $ ll -rta
总计40
drwxr-xr-x 12狼狼4096 Jan 30 09:40 ..
-rw-r - r-- 1狼狼435 Jan 30 09:40 _config.yml
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _layouts
-rw-r - r-- 1狼狼451 Jan 30 09:40 index .html
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _includes
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 css
drwxr-xr-x 2狼狼4096 Jan 30 09:40 _posts
-rw-r - r--狼狼192 12年1月30日09:40 feed.xml
-rw-r - r--狼狼470 1月30日09:40 about.md
drwxr-xr-x 6狼狼4096 Jan 30 09:40。
wolf @ sloth:〜/ blogs / dummy-blog
运行第一次构建
wolf @ sloth:〜/ blogs / dummy-blog $ jekyll建立
配置文件:/home/wolf/blogs/dummy-blog/_config.yml
来源:/ home / wolf / blogs / dummy-blog
目的地:/ home / wolf / blogs / dummy-blog / _site
正在生成...
完成。
wolf @ sloth:〜/ blogs / dummy-blog
<再次检查网站文件夹的内容
wolf @ sloth:〜/ blogs / dummy-博客$ ll -rta
总计44
drwxr-xr-x 12狼狼4096 Jan 30 09:40 ..
-rw-r - r-- 1狼狼435 1月30日09:40 _config.yml
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _layouts
-rw-r - r-- 1 wolf wolf 451 Jan 30 09:40 index.html
drwxr-xr-x 2狼狼4096 Jan 30 09:40 _includes
drwxr-xr-x 2狼狼4096 Jan 30 09:40 css
drwxr-xr-x 2狼狼4096 Jan 30 09:40 _posts
-rw-r - r-- 1 wolf wolf 1292 Jan 30 09:40 feed.xml
-rw-r - r-- 1狼狼470 1月30 09:40 about.md
drwxr-xr-x 5狼狼4096 Jan 30 09:41 _site
drwxr-xr-x 7狼狼4096 Jan 30 09:41。
现在我们有_site文件夹
wolf @ sloth:〜/ blogs / dummy-blog $ ll _site /
共32
drwxr- xr-x 3 wolf wolf 4096 Jan 30 09:41 jekyll
-rw-r - r-- 1 wolf wolf 5816 Jan 30 09:41 index.html
-rw-r - r- - 1 wolf wolf 2954 Jan 30 09:41 feed.xml
drwxr-xr-x 2狼狼4096 Jan 30 09:41 css
drwxr-xr-x 2狼狼4096 Jan 30 09:41约
drwxr-xr-x 7狼狼4096 Jan 30 09:41 ..
drwxr-xr-x 5狼狼4096 Jan 30 09:41。
wolf @ sloth:〜/ blogs / dummy-blog
<
wolf @ sloth:〜/ blogs / dummy-blog $ mkdir _site / someFolderHere
wolf @ sloth:〜/ blogs / dummy-blog $ touch _site / someFolderHere / toasttoast123
wolf @ sloth:〜/ blogs / dummy-blog $
检查此文件是否存在...
wolf @ sloth:〜/ blogs / dummy-blog $ ll _site / someFolderHere / toasttoast123
-rw-r - r - 1 wolf wolf 0 Jan 30 09:42 _site / someFolderHere / toasttoast123
wolf @ sloth:〜/ blogs / dummy-blog
再次运行构建
wolf @ sloth:〜/ blogs / dummy-blog $ jekyll build
配置文件:/home/wolf/blogs/dummy-blog/_config.yml
来源:/ home / wolf / blogs / dummy-blog
目的地:/ home / wolf / blogs / dummy-blog / _site
正在生成...
完成。
wolf @ sloth:〜/ blogs / dummy-blog
检查文件toasttoast123是否仍然存在
wolf @ sloth:〜/ blogs / dummy -blog $ ll _site / someFolderHere / toasttoast123
ls:无法访问_site / someFolderHere / toasttoast123:没有这样的文件或目录
wolf @ sloth:〜/ blogs / dummy-blog $
code>
在修改之前为_config.yml创建备份
wolf @ sloth:〜/ blogs / dummy-blog $
wolf @ sloth:〜/ blogs / dummy-blog $ cp - p _config.yml _config.yml.somebackup
添加exclude和keep_files指令并将编辑后的文件与备份进行比较
wolf @ sloth:〜/ blogs / dummy-blog $ rvim _config.yml
wolf @ sloth:〜/ blogs / dummy-blog $ diff -u _config.yml _config.yml.somebackup
--- _config.yml 2016-01-30 09:44: 26.238366056 +0200
+++ _config.yml.somebackup 2016-01-30 09:40:08.422370474 +0200
@@ -10,6 +10,3 @@
#构建设置
markdown:kramdown
permalink:pretty
-
-exclude:[someFolderHere]
-keep_files:[someFolderHere]
wolf @ sloth:〜/ blogs / dummy- blog $
再次创建someFolderHere和dummy toasttoast123文件
wolf @ sloth:〜/ blogs / dummy-blog $ mkdir _site / someFolderHere
wolf @ sloth :〜/ blogs / dummy-blog $ touch _site / someFolderHere / toasttoast123
running build
wolf @ sloth:〜/ blogs / dummy-blog $ jekyll build
配置文件:/home/wolf/blogs/dummy-blog/_config.yml
来源:/ home / wolf / blogs / dummy-blog
目的地:/ home / wolf / blogs / dummy -blog / _site
正在生成...
完成。
wolf @ sloth:〜/ blogs / dummy-blog
检查文件是否仍然存在
wolf @ sloth:〜/ blogs / dummy- blog $ ll _site / someFolderHere / toasttoast123
-rw-r - r-- 1 wolf wolf 0 Jan 30 09:45 _site / someFolderHere / toasttoast123
wolf @ sloth:〜/ blogs / dummy-blog
wolf @ sloth:〜/ blogs / dummy-blog $
I'm building a site with Jekyll and using Gulp to manage the assets. Since I'm using Gulp to manage my assets, I would like Jekyll to ignore ./assets in the conversion process and to leave ./_site/assets/ alone when building the rest of the site.
I've configured the _config.yml with
exclude: [assets] # Exclude assets/ from the conversion
keep: [assets] # Don't delete _site/assets when building the site
My gulpfile.js is:
var gulp = require('gulp');
var sass = require('gulp-ruby-sass');
gulp.task('sass', function() {
return sass('assets/stylesheets/main.scss')
.on('error', sass.logError)
.pipe(gulp.dest('_site/assets/'));
});
gulp.task('default', function() {
gulp.start('sass');
});
I then run:
gulp
jekyll build
When I run gulp
, the ./_sites/assets/ directory is created as expected, but when I run jekyll build
./_site/assets/ is deleted. What configuration am I missing?
As was noted before keep_files directive is correct, instead of just keep. Following information from Jekyll's site http://jekyllrb.com/docs/configuration/
Destination folders are cleaned on site builds The contents of are automatically cleaned, by default, when the site is built. Files or folders that are not created by your site will be removed. Some files could be retained by specifying them within the configuration directive. Do not use an important location for ; instead, use it as a staging area and copy files from there to your web server.
I decided to check this by doing things from scratch step by step part that I appended to default jekyll's _config.yml file looks like this
exclude: [someFolderHere]
keep_files: [someFolderHere]
creating new jekyll site from scratch
wolf@sloth:~/blogs$ jekyll new dummy-blog New jekyll site installed in /home/wolf/blogs/dummy-blog. wolf@sloth:~/blogs$ cd dummy-blog/ wolf@sloth:~/blogs/dummy-blog$
checking contents of site's folder
wolf@sloth:~/blogs/dummy-blog$ ll -rta
total 40
drwxr-xr-x 12 wolf wolf 4096 Jan 30 09:40 ..
-rw-r--r-- 1 wolf wolf 435 Jan 30 09:40 _config.yml
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _layouts
-rw-r--r-- 1 wolf wolf 451 Jan 30 09:40 index.html
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _includes
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 css
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _posts
-rw-r--r-- 1 wolf wolf 1292 Jan 30 09:40 feed.xml
-rw-r--r-- 1 wolf wolf 470 Jan 30 09:40 about.md
drwxr-xr-x 6 wolf wolf 4096 Jan 30 09:40 .
wolf@sloth:~/blogs/dummy-blog$
running first build
wolf@sloth:~/blogs/dummy-blog$ jekyll build
Configuration file: /home/wolf/blogs/dummy-blog/_config.yml
Source: /home/wolf/blogs/dummy-blog
Destination: /home/wolf/blogs/dummy-blog/_site
Generating...
done.
wolf@sloth:~/blogs/dummy-blog$
checking contents of site's folder again
wolf@sloth:~/blogs/dummy-blog$ ll -rta
total 44
drwxr-xr-x 12 wolf wolf 4096 Jan 30 09:40 ..
-rw-r--r-- 1 wolf wolf 435 Jan 30 09:40 _config.yml
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _layouts
-rw-r--r-- 1 wolf wolf 451 Jan 30 09:40 index.html
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _includes
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 css
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:40 _posts
-rw-r--r-- 1 wolf wolf 1292 Jan 30 09:40 feed.xml
-rw-r--r-- 1 wolf wolf 470 Jan 30 09:40 about.md
drwxr-xr-x 5 wolf wolf 4096 Jan 30 09:41 _site
drwxr-xr-x 7 wolf wolf 4096 Jan 30 09:41 .
now we have _site folder
wolf@sloth:~/blogs/dummy-blog$ ll _site/
total 32
drwxr-xr-x 3 wolf wolf 4096 Jan 30 09:41 jekyll
-rw-r--r-- 1 wolf wolf 5816 Jan 30 09:41 index.html
-rw-r--r-- 1 wolf wolf 2954 Jan 30 09:41 feed.xml
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:41 css
drwxr-xr-x 2 wolf wolf 4096 Jan 30 09:41 about
drwxr-xr-x 7 wolf wolf 4096 Jan 30 09:41 ..
drwxr-xr-x 5 wolf wolf 4096 Jan 30 09:41 .
wolf@sloth:~/blogs/dummy-blog$
creating some folder under _site
wolf@sloth:~/blogs/dummy-blog$ mkdir _site/someFolderHere
wolf@sloth:~/blogs/dummy-blog$ touch _site/someFolderHere/toasttoast123
wolf@sloth:~/blogs/dummy-blog$
checking if this file is this there...
wolf@sloth:~/blogs/dummy-blog$ ll _site/someFolderHere/toasttoast123
-rw-r--r-- 1 wolf wolf 0 Jan 30 09:42 _site/someFolderHere/toasttoast123
wolf@sloth:~/blogs/dummy-blog$
running build again
wolf@sloth:~/blogs/dummy-blog$ jekyll build
Configuration file: /home/wolf/blogs/dummy-blog/_config.yml
Source: /home/wolf/blogs/dummy-blog
Destination: /home/wolf/blogs/dummy-blog/_site
Generating...
done.
wolf@sloth:~/blogs/dummy-blog$
checking if file toasttoast123 is still present
wolf@sloth:~/blogs/dummy-blog$ ll _site/someFolderHere/toasttoast123
ls: cannot access _site/someFolderHere/toasttoast123: No such file or directory
wolf@sloth:~/blogs/dummy-blog$
creating backup for _config.yml before modification
wolf@sloth:~/blogs/dummy-blog$
wolf@sloth:~/blogs/dummy-blog$ cp -p _config.yml _config.yml.somebackup
adding exclude and keep_files directives and comparing edited file with backup
wolf@sloth:~/blogs/dummy-blog$ rvim _config.yml
wolf@sloth:~/blogs/dummy-blog$ diff -u _config.yml _config.yml.somebackup
--- _config.yml 2016-01-30 09:44:26.238366056 +0200
+++ _config.yml.somebackup 2016-01-30 09:40:08.422370474 +0200
@@ -10,6 +10,3 @@
# Build settings
markdown: kramdown
permalink: pretty
-
-exclude: [someFolderHere]
-keep_files: [someFolderHere]
wolf@sloth:~/blogs/dummy-blog$
creating someFolderHere and dummy toasttoast123 file again
wolf@sloth:~/blogs/dummy-blog$ mkdir _site/someFolderHere
wolf@sloth:~/blogs/dummy-blog$ touch _site/someFolderHere/toasttoast123
running build
wolf@sloth:~/blogs/dummy-blog$ jekyll build
Configuration file: /home/wolf/blogs/dummy-blog/_config.yml
Source: /home/wolf/blogs/dummy-blog
Destination: /home/wolf/blogs/dummy-blog/_site
Generating...
done.
wolf@sloth:~/blogs/dummy-blog$
checking if file is still there
wolf@sloth:~/blogs/dummy-blog$ ll _site/someFolderHere/toasttoast123
-rw-r--r-- 1 wolf wolf 0 Jan 30 09:45 _site/someFolderHere/toasttoast123
wolf@sloth:~/blogs/dummy-blog$
wolf@sloth:~/blogs/dummy-blog$
这篇关于尽管使用_config.yml,Jekyll在_site中打开了目录。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!