Plugins 如何从Jekyll中的液体块生成文件?
我正在编写一个定义新Jekyll块ditaa的。块中的任何内容都应转换为图像文件,并将该图像插入到文章中,而不是块中。生成文件是可行的,但当复制到_site目录或在_site目录中生成文件时,文件显然已被删除 有没有合适/更好的方法来实现生成自定义资产的块插件?我还没有找到合适的方法来实现它,但找到了一种有效的方法。该解决方案可以在上找到,并使用Jekylls功能将任何未加下划线前缀的内容复制到_站点目录。然而,这种方法也有两个缺点: 源目录被自动生成的文件污染 在没有自动重新生成的情况下进行部署有点尴尬,因为图像是在Jekyll复制了所有文件之后生成的。因此,第二次杰基尔跑步是必要的。 我还没有找到正确的方法,但是一个有效的方法。该解决方案可以在上找到,并使用Jekylls功能将任何未加下划线前缀的内容复制到_站点目录。然而,这种方法也有两个缺点: 源目录被自动生成的文件污染 在没有自动重新生成的情况下进行部署有点尴尬,因为图像是在Jekyll复制了所有文件之后生成的。因此,第二次杰基尔跑步是必要的。 我找到了正确的解决方案:使用Jekyll::StaticFile类 将此类的一个对象添加到site.static_files数组时,将在渲染过程完成后将该文件标记为待复制。事实上,这些文件的复制是在site.write过程中完成的。查看Jekyll安装中的site_process.rb文件 这个类的用法很简单。当需要标记文件以备将来复制时,只需执行如下代码:Plugins 如何从Jekyll中的液体块生成文件?,plugins,jekyll,liquid,Plugins,Jekyll,Liquid,我正在编写一个定义新Jekyll块ditaa的。块中的任何内容都应转换为图像文件,并将该图像插入到文章中,而不是块中。生成文件是可行的,但当复制到_site目录或在_site目录中生成文件时,文件显然已被删除 有没有合适/更好的方法来实现生成自定义资产的块插件?我还没有找到合适的方法来实现它,但找到了一种有效的方法。该解决方案可以在上找到,并使用Jekylls功能将任何未加下划线前缀的内容复制到_站点目录。然而,这种方法也有两个缺点: 源目录被自动生成的文件污染 在没有自动重新生成的情况下进行部
site.static_files << Jekyll::StaticFile.new(site, site.source, path, filename)
其中路径和文件名取决于文件在src文件夹中的位置
我在开发LaTeX->PNG液体标签时遇到了类似的问题。您可以在GitHub上查看我的代码:我找到了合适的解决方案:使用Jekyll::StaticFile类
将此类的一个对象添加到site.static_files数组时,将在渲染过程完成后将该文件标记为待复制。事实上,这些文件的复制是在site.write过程中完成的。查看Jekyll安装中的site_process.rb文件
这个类的用法很简单。当需要标记文件以备将来复制时,只需执行如下代码:
site.static_files << Jekyll::StaticFile.new(site, site.source, path, filename)
其中路径和文件名取决于文件在src文件夹中的位置
我在开发LaTeX->PNG液体标签时遇到了类似的问题。您可以在GitHub上查看我的代码:我已经找到了答案 替换这个
site.static_files << Jekyll::StaticFile.new(site, site.source, path, filename)
write命令在清理过程之后运行。我只有一个液体块和上面的代码。我找到了答案 替换这个
site.static_files << Jekyll::StaticFile.new(site, site.source, path, filename)
write命令在清理过程之后运行。我只有一个液体块和上面的代码。非常感谢。您是否在源代码树之外生成了文件,例如/tmp,并使用StaticFile从那里获取文件?没有,我将生成的文件保存在src中。我复制了这个结构:src/res/latex site/res/latex。这有助于保留生成文件的缓存。如果文件已经存在,则无需重新编译。该插件将删除所有孤立的临时和过时文件。看一下我的代码,如果你喜欢的话,抓取清理过程,或者让我在你的代码中合作,通过拉请求来改进它。事实上,多亏了你的问题,我发现了ditaa,并且一见钟情。多亏了你的澄清,我实际上不想将生成的数据保留在源代码树中,因为在我的案例中它是版本控制的。然而,检查它是否已经被复制到_站点应该是可能的,对吗?您可以自由发出拉取请求;-附言:我会更新你的答案,因为这确实是正确的解决方案。非常感谢。您是否在源代码树之外生成了文件,例如/tmp,并使用StaticFile从那里获取文件?没有,我将生成的文件保存在src中。我复制了这个结构:src/res/latex site/res/latex。这有助于保留生成文件的缓存。如果文件已经存在,则无需重新编译。该插件将删除所有孤立的临时和过时文件。看一下我的代码,如果你喜欢的话,抓取清理过程,或者让我在你的代码中合作,通过拉请求来改进它。事实上,多亏了你的问题,我发现了ditaa,并且一见钟情。多亏了你的澄清,我实际上不想将生成的数据保留在源代码树中,因为在我的案例中它是版本控制的。然而,检查它是否已经被复制到_站点应该是可能的,对吗?您可以自由发出拉取请求;-附言:我会更新你的答案,因为这确实是正确的解决方案。