docpad中是否有一种有效的方法来保持静态并在同一目录中呈现文件?
我正在用docpad重建一个网站,形成一个文件夹结构,这对我的内容创建工作流程很有意义,但我遇到了docpad将要呈现的内容与“静态”内容进行硬划分的问题 Docpad建议您将图像之类的内容放在/files而不是/documents中,并且文档使其听起来似乎会产生一些处理开销docpad中是否有一种有效的方法来保持静态并在同一目录中呈现文件?,docpad,Docpad,我正在用docpad重建一个网站,形成一个文件夹结构,这对我的内容创建工作流程很有意义,但我遇到了docpad将要呈现的内容与“静态”内容进行硬划分的问题 Docpad建议您将图像之类的内容放在/files而不是/documents中,并且文档使其听起来似乎会产生一些处理开销 首先,我想解释一下,如果有人知道为什么文件中有 单扩展(因此无渲染)且无YAML前端物质, 例如.jpg,放置时会影响站点的重新生成时间 内/文件 第二,真正的问题是:如果它真的创造了 性能受到影响,要减轻它吗?例如,要
- 首先,我想解释一下,如果有人知道为什么文件中有 单扩展(因此无渲染)且无YAML前端物质, 例如.jpg,放置时会影响站点的重新生成时间 内/文件
- 第二,真正的问题是:如果它真的创造了 性能受到影响,要减轻它吗?例如,要指定“忽略” 带有正则表达式的列表等
即使不证明用例的合理性我也不明白为什么docpad会提出如此艰难的划分。如果可以以任何方式避免,性能考虑不应像这样传递给最终用户;由于使用docpad,我可能会通过文件系统管理我的博客,因此我应该完全控制该结构,当然不希望我的内容基于某些框架限制或性能问题而不是基于逻辑内容划分。我认为关键在于“元数据”这一行。即使文件没有双扩展名,它仍可以在需要扫描和读取的文件顶部包含元数据。双扩展名实际上只是告诉docpad将文件从一种格式转换为另一种格式输出。如果我在文档文件夹中创建了一个纯html文件,我仍然可以在表单中包含元数据头:
---
tags: ['tag1','tag2','tag3']
title: 'Some title'
---
将文件复制到out目录时,此元数据将被删除。如果我对files目录中的html文件执行相同的操作,该文件将被复制到out目录,元数据头保持不变。因此,对您的问题的答案是,即使您的文件只有一个扩展名,并且没有“呈现”成这样,它仍然需要打开和处理
然而,你提出的观点是好的。将图像和文档保存在一起。我可以看到一个很好的论据,可以将某些文件扩展名(如图像文件)排除在处理之外。或者,仅包括某些文件扩展名。我在配置文件中找到了一种方法,可以在扫描时选择性地忽略某些目录,但我不认为这是
文件/
和文档/
之间的本质区别,因为与文件/
一起放置并重命名的文件似乎仍然会触发重新构建。但是,对于任何想有选择地避免扫描某些目录的人来说,您可以在配置文件中指定忽略路径:
,根据文件中的docpad文档文件
路径,该配置文件“可以设置为扫描过程中应该忽略的绝对路径数组”“未呈现,不支持元数据。这是您应该放置所有不需要呈现或需要元数据的内容的地方。例如,图像、供应商文件、普通样式表和JavaScript文件等。“这是令人困惑的,因为渲染只会发生在具有两个扩展名的项目上,因此在文件级别已经有了对其的控制,并且引用的图像示例已经不能支持YAML front matter。仍然不确定将JPG放入文件/
会带来什么好处。这也是我对它的理解,但有一点从您的解释中并不完全清楚。您是说Docpad当前打开文档中的每个文件
,并检查YAML元数据,即使文件扩展名表明它是二进制文件(即jpg
)?您是否知道Docpad在没有YAML元数据的情况下处理文件可能会受到的性能影响的重要性?我猜这是可以忽略不计的(特别是考虑到它只会在文件被修改或首次创建时发生?@birchbark是的,我是说我“相信”Docapad会打开documents目录中的每个文件。我不能肯定,因为我还没有做任何深入的调查。但是简单html文件的例子让我相信。我认为你的表现很好,这就是为什么我说你的观点很好的原因。