从 Jekyll 中排除 emacs 临时文件
Excluding emacs temporary files from Jekyll
Jekyll 似乎很乐意排除 emacs filename~
和 filename.~n~
备份文件,但我无法让它排除 #filename#
或 .#filename#
。虽然它们实际上并没有复制到已发布的站点,但当我在观看模式下编辑文件时,它们会不断触发文件重新生成。
我可以在 exclude
或其他设置中添加什么来阻止这种行为吗?
我试图弄清楚 #
是否是 Ruby 中的特殊字符 WRT 模式匹配,但我正在学习 Ruby,因为我学习 Jekyll 所以... ?作为一个随机的,也许它会工作尝试,\#
和 ##
是没有帮助的。
因此,从 Emacs 方面,我修改了 auto-save-file-name-p
和 make-auto-save-file-name
,在自动保存文件的末尾添加了一个 ~
,所以它们现在是 #filename#~
并且 Jekyll 愉快地忽略以 ~
结尾的文件(参见:https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html)。
最后我还关闭了创建 .#filename
文件的锁文件。
这是有效的,即使从 Jekyll 源端修复它可能会更好。
因此,如果这对您来说是个问题,请在您的 .emacs
中添加以下内容:
(defun auto-save-file-name-p (filename)
"Return non-nil if FILENAME can be yielded by..."
(string-match "^#.*#~$" filename))
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves \
of current buffer.."
(if buffer-file-name
(concat
(file-name-directory buffer-file-name)
"#"
(file-name-nondirectory buffer-file-name)
"#~")
(expand-file-name
(concat "#%" (buffer-name) "#~"))))
(setq create-lockfiles nil)
我找到了一个“部分”解决方案,我遇到了类似的问题,因为我的备份文件名设置为 .~1 .~2 等(部分原因是它不适用于“include:”集中的“_redirects”等文件:我仍然在 _site
中得到一个“_redirects~”文件
尝试了 _config.yml 文件中的所有内容:
# exclude:
# - *~*
# - *.*~1
# - "_*~1"
none 有效,似乎禁止使用不受保护的通配符 * 开头,
直到我注意到“--verbose”记录中排除的文件有一个开始 /
即使对于子目录中的文件,这就是解决方案:在模式的开头使用 /。
有效的方法:
exclude:
- /*#
- /*~*
Jekyll 似乎很乐意排除 emacs filename~
和 filename.~n~
备份文件,但我无法让它排除 #filename#
或 .#filename#
。虽然它们实际上并没有复制到已发布的站点,但当我在观看模式下编辑文件时,它们会不断触发文件重新生成。
我可以在 exclude
或其他设置中添加什么来阻止这种行为吗?
我试图弄清楚 #
是否是 Ruby 中的特殊字符 WRT 模式匹配,但我正在学习 Ruby,因为我学习 Jekyll 所以... ?作为一个随机的,也许它会工作尝试,\#
和 ##
是没有帮助的。
因此,从 Emacs 方面,我修改了 auto-save-file-name-p
和 make-auto-save-file-name
,在自动保存文件的末尾添加了一个 ~
,所以它们现在是 #filename#~
并且 Jekyll 愉快地忽略以 ~
结尾的文件(参见:https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html)。
最后我还关闭了创建 .#filename
文件的锁文件。
这是有效的,即使从 Jekyll 源端修复它可能会更好。
因此,如果这对您来说是个问题,请在您的 .emacs
中添加以下内容:
(defun auto-save-file-name-p (filename)
"Return non-nil if FILENAME can be yielded by..."
(string-match "^#.*#~$" filename))
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves \
of current buffer.."
(if buffer-file-name
(concat
(file-name-directory buffer-file-name)
"#"
(file-name-nondirectory buffer-file-name)
"#~")
(expand-file-name
(concat "#%" (buffer-name) "#~"))))
(setq create-lockfiles nil)
我找到了一个“部分”解决方案,我遇到了类似的问题,因为我的备份文件名设置为 .~1 .~2 等(部分原因是它不适用于“include:”集中的“_redirects”等文件:我仍然在 _site
中得到一个“_redirects~”文件尝试了 _config.yml 文件中的所有内容:
# exclude:
# - *~*
# - *.*~1
# - "_*~1"
none 有效,似乎禁止使用不受保护的通配符 * 开头,
直到我注意到“--verbose”记录中排除的文件有一个开始 /
即使对于子目录中的文件,这就是解决方案:在模式的开头使用 /。
有效的方法:
exclude:
- /*#
- /*~*