繁体   English   中英

Jekyll中有多个转换器/发电机?

[英]Multiple Converters/Generators in Jekyll?

我想编写一个Jekyll插件,该插件可以利用Kramdown的LaTeX导出功能以PDF格式提供所有帖子。 对于Markdown格式的每篇文章,我都希望以正常的.html文章以及包含LaTeX标记的.tex文件以及最后一个.pdf

有关创建插件文档之后,我看到了使用Converter或Generator来解决该问题的两种方法。

Converter插件似乎在内置Converters之后运行,因此.markdown文件在到达Converter时已全部转换为.html

当我尝试实现一个Generator时,我能够使用fileutils成功写入一个文件,但是到Jekyll循环结束时,该文件已被删除。 似乎有一个StaticFile类,可用于在Jekyll中注册新的输出文件,但是我找不到如何使用它的任何实际指导。

如果您在以下代码中查看ThumbGenerator类: https : //github.com/matthewowen/jekyll-slideshow/blob/master/_plugins/jekyll_slideshow.rb,您将看到类似的示例。 这个特定的插件可制作站点中所有图像的缩略图大小版本。 希望它对如何与Jekyll的StaticFile类进行交互提供了有用的指导(尽管我不是Ruby专业人士,所以请原谅任何不良的样式)。

不幸的是,并没有真正的文档-我从阅读源代码中收集到了它。

我是几个月前写的,不特别记得细节(这就是为什么我举一个例子而不是一个通关),但是如果这不能使您走上正确的路,请告诉我,我将尽力救命。

我尝试做同样的事情,但是直接进行html-> pdf转换。 目前,它无法在gitlab-ci管道中运行,尽管如此,它仍可以在我的工作站上运行( 请参阅此处 ),还有第三种可能:钩子!

(此处为pdfkit)

require 'pdfkit'

module Jekyll

  Jekyll::Hooks.register :site, :post_write do |post|

      post.posts.docs.each do |post|
          filename = post.site.dest + post.id + ".pdf"
          dirname = File.dirname(filename)
          Dir.mkdir(dirname) unless File.exists?(dirname)

          kit = PDFKit.new(post.content, :page_size => 'Letter')
          kit.stylesheets << './css/bootstrap.min.css'
          kit.to_file(filename)
      end
  end

end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM