【问题标题】:Can I convert a Jekyll markdown page with plugins enabled to PDF?我可以将启用了插件的 Jekyll 降价页面转换为 PDF 吗?
【发布时间】:2017-01-18 05:42:23
【问题描述】:

我想将 Jekyll markdown 页面转换为 PDF,但它不适用于 Pandoc,因为我使用 Jekyll-scholar 插件编译了一些 bibtex 引文。使用浏览器从 html 转换为 pdf 看起来也不太好。源代码在my github repo。您可以找到我要转换为 pdf 的页面的 viat.md。让我知道是否有办法进行转换。提前谢谢!

2017 年 1 月 19 日更新:如果您认为这个问题微不足道,这里有一些挑战。由于我使用了 Jekyll-scholar 插件,所以我所有的出版物列表都以 {% bibliography --file PublicationsFile --query @article %} 格式在 markdown 中调用,Pandoc 无法识别用于 markdown 编译;如果我使用浏览器将 HTML 页面保存为 pdf,那么“下载”和“链接”之类的按钮将显示为 Download (https://downloadlinke.com),我什至不想让无意义的下载按钮显示在 pdf 中,并且我希望为文章标题呈现链接;最后,我当然想从 pdf 文件的 HTML 页面中过滤掉页眉、页脚和侧边栏。您可以预览 vita 页面here 并自行尝试解决方案。理想情况下,我希望所有工作都可以在 Travis-CI 中自动完成,用于我当前的 HTML 和 PDF 版本的下载。希望您能指出一些解决这些问题的方法。

【问题讨论】:

  • 有什么理由不能使用 Pandoc 将(Jekyll 生成的)HTML 转换为 PDF?
  • 另外,浏览器生成 PDF 的具体问题是什么?您如何期望任何其他工具能够提供更好的结果?
  • @Waylan,由于我使用了 Jekyll-scholar 插件,所以我所有的出版物列表都以 {% file=xx.bib --all %} 格式在 markdown 中调用,Pandoc 无法识别 markdown;如果我使用浏览器将页面保存为 pdf,那么像“下载”这样的按钮将显示为 Download (https://downloadlinke.com),我什至不想让毫无意义的下载按钮显示在 pdf 中。我真的不知道如何处理这个。您可以在my vita page 上自行尝试工作选项。非常感谢您的见解。

标签: pdf markdown jekyll file-conversion


【解决方案1】:

由于您的 Jekyll 特定内容,您需要使用 Jekyll 将 Markdown 转换为 HTML。从那里您可以将 HTML 转换为 PDF。你有几个选项来完成它。

  1. 您可以创建一个自定义 Jekyll 主题,其中不包含页眉/页脚和其他您不想要的元素。然后告诉 Jekyll 在转换为 PDF 之前使用该自定义主题。有关 Jekyll 主题的更多信息,请参阅here。

  2. 您可以使用现有的主题并定义一个print CSS 样式表,该样式表在打印时隐藏您不需要的元素。这样,当您使用浏览器的打印功能时,页面将按您的意愿显示。你可以找到一些关于这个here和here的文章。

  3. 结合以上两者以获得完全自定义的输出。

我个人会从选项 2 开始,然后从那里开始工作。请注意,Pandoc 有一个 --css 选项,您可以在其中将其作为 CSS 样式表,用于根据需要设置 HTML 输入的样式。

【讨论】:

  • 这似乎需要复制第二个 Markdown 页面,其前面的内容不同,它调用 Jekyll 下的特定模板和 css 样式文件。这可以在不以某种自动方式复制降价页面的情况下完成吗?
  • Pandoc 可以直接从 HTML 转换为 PDF。无需复制您的 Markdown。使用 Jekyll 将 Markdown 转为 HTML,使用 Pandoc 将 HTML 转为 PDF。除非 Jekyll 有一些 PDF 插件(跳过 HTML 步骤),否则这是您可以在内容中使用 Jekyll 特定内容的唯一方法。
  • 我的意思是,要生成 HTML 页面以便从 markdown 生成 PDF 文件,我需要在前面编写指定新模板的 markdown 页面(包括 css 定义的布局)使用您的方法,这是一个附加的降价页面,除了使用我当前的布局生成 HTML 页面而不是生成我需要保留的 PDF 页面。我觉得这是多余的,可能有一种方法可以使用共享的降价文件生成两种不同类型的 HTML 页面。但我不知道该怎么做。感谢您的洞察力!
  • 啊,我明白了。这就是打印样式表的用武之地。浏览器将忽略打印样式表,除非在打印时,因此您可以在“普通”模板中定义它,它不会对页面在浏览器中的外观产生任何影响。正如我之前所说,无论如何我都会从那里开始。如果这还不够,您应该只需要探索其他选项。我希望它会正常工作。
  • 好的。让我更仔细地考虑一下。我认为并非所有我想在打印中隐藏的部分都被定义为可区分的类。我想我可以以某种方式重新设计它们。谢谢你的提示。如果这最终成功,我会报告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
相关资源
最近更新 更多