我最近一直在玩 Jekyll,最近发现 S3 不允许我有足够的桶来为每个网站设置一个桶。
所以我正在努力弄清楚两件事
1)我如何指定我想要创建一个“子”子目录,并且所有生成的网站文件都在其中?
2) 如何使用变量作为“子”子目录的名称?(因为每个网站会有所不同)
baseurl 配置选项似乎对此没有任何作用。欢迎任何想法:-)
非常感谢,祝您有美好的一天!
我最近一直在玩 Jekyll,最近发现 S3 不允许我有足够的桶来为每个网站设置一个桶。
所以我正在努力弄清楚两件事
1)我如何指定我想要创建一个“子”子目录,并且所有生成的网站文件都在其中?
2) 如何使用变量作为“子”子目录的名称?(因为每个网站会有所不同)
baseurl 配置选项似乎对此没有任何作用。欢迎任何想法:-)
非常感谢,祝您有美好的一天!
但是,对于子子目录,我不确定变量选项:
A)如果您可以将内容直接放入 jekyll 内容内的“子”文件夹中,则使用不同的配置文件通过构建属性来管理每个站点。请参阅以下示例下的示例。
B)如果您只想将相同的内容放在不同的地方,也许您可以在不同的配置文件中使用不同的baseurl
或destination
属性?使用与下面相同的配置文件方法,但使用这些属性的不同版本,而不是/结合 exclude 属性(请参阅https://jekyllrb.com/docs/configuration/#serve-command-options)。
exclude
运行构建时,使用config 属性排除文件夹(以及该文件夹的所有内容)。您还可以为每个站点、基本 URL 等指定不同的输出文件夹位置。我将重点介绍 exclude 属性,但您可以在文档中找到其他有用的属性:https ://jekyllrb.com/docs/configuration/#global-configuration
例如,您可能有以下文件/文件夹:
/siteA-folder/siteA-content/blah.html
/siteB-folder/siteB=content/meh.html
/siteC-folder/siteC=content/foo.html
config.yaml
config_buildA.yaml
config buildB.yaml
使用构建选项--config FILE1[,FILE2...]
( https://jekyllrb.com/docs/configuration/#build-command-options ) 显式调用您的自定义配置文件 A 或 B,每个都有自己的exclude
属性版本。
来自 config_buildA.yaml 的片段:
exclude:
- /siteB-folder/ # While building A, you want to exclude the siteB folder and contents
- /siteC-folder/ # Similarly, exclude siteC contents
来自 config_buildB.yaml 的片段:
exclude:
- /siteA-folder/ # While building B, you want to exclude the siteA folder and contents
- /siteC-folder/ # Similarly, exclude siteC contents
从命令行构建 A:
jekyll build --config config_buildA.yaml
从命令行构建 B:
jekyll build --config config_buildB.yaml
通过在配置文件中管理排除项,您可以重复使用通用模板和 css,并将所有内容放在一起(总体上使用更少的磁盘空间)。
如果有共享内容,您还可以考虑使用更高级的功能includes
(请参阅https://jekyllrb.com/docs/includes/)来管理包含文件夹中的共享内容,在 html 或 markdown 文件中引用(但这对你的问题来说有点老套,所以我会停在那里......)
编辑:我看到您已经编辑了指定 baseurl 属性的问题并没有满足您的要求。
我使用了url
站点属性的组合baseurl
,destination
类似于下面。就我而言,我有不同的目的地,具体取决于它是存档还是最新内容,但如果需要,您可以使用它来构建不同的 Web 文件夹。
例如:配置最新内容
url: http://example.com
baseurl: "/latest/"
destination: /path/to/latest/output/
例如:存档内容的配置
url: http://example.com
baseurl: "/archive/content/"
destination: /path/to/archive/output/
然后,使用配置文件的多个版本,我可以调用任何一个适用的版本。