如何在变量子目录中生成整个网站? (化身)

时间:2018-01-16 15:02:47

标签: jekyll jekyll-theme

我最近一直在玩Jekyll,最近发现S3不允许我有足够的桶来为每个网站提供一个桶。

所以我很难弄明白两件事

1)如何指定我想要创建一个'child'子目录,以及所有生成的网站文件?

2)如何将变量用作'child'子目录的名称? (因为每个网站都会有所不同)

baseurl配置选项似乎没有做任何事情。欢迎任何想法: - )

非常感谢,祝你有个美好的一天!

1 个答案:

答案 0 :(得分:0)

我不确定子子目录的变量选项:

A)如果您可以将内容放入" child"直接在jekyll内容中的文件夹,然后使用不同的配置文件通过构建属性管理每个站点。请参阅下面示例中的示例。

B)如果您只是想在不同的地方放置相同的内容,也许您可​​以在不同的配置文件中使用不同的baseurldestination属性?使用与下面相同的配置文件方法,但使用这些属性的不同版本而不是/与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/)来管理include文件夹中的共享内容。 html或markdown文件(但是这会让你的问题变得有点紧张,所以我会停在那里......)

编辑:我看到你编辑了一个问题,指明baseurl属性没有做你正在寻找的事情。

我使用了类似于下面的url网站属性baseurldestination的组合。就我而言,我有不同的目的地,具体取决于它是存档还是最新内容,但如果您愿意,可以使用它来构建不同的Web文件夹。

Ex:配置最新内容

url: http://example.com
baseurl: "/latest/"
destination: /path/to/latest/output/

Ex:配置存档内容

url: http://example.com
baseurl: "/archive/content/"
destination: /path/to/archive/output/

然后,使用配置文件的多个版本,我可以调用适用的任何一个版本。