【问题标题】:How to use HTML as input to Hakyll如何使用 HTML 作为 Hakyll 的输入
【发布时间】:2014-02-18 17:20:42
【问题描述】:

我使用Hakyll 作为我的blog。

我目前在 emacs org-mode 然后将 org-mode 导出到 markdown。 然后 Hakyll 将 Markdown 转换为 HTML。

这工作正常,但我希望对 HTML 进行更细粒度的控制 被张贴。我宁愿做的是将 org-mode 导出到 HTML 然后让 Hakyll 使用该 HTML 作为输入。

注意:我的博客在 markdown 输入下运行良好,我只想使用 (org-mode 生成)HTML 作为输入。

Hakyll 的 opening page 说“写你的 内容以您喜欢的任何格式”,因此 HTML 输入确实有效(我 尝试了一些成功)。

哈基尔的 FAQ 表示在输入 HTML 时使用getResourceBody 而不是pandocCompiler。

我还没有弄清楚在使用 HTML 作为输入时如何处理标题、标签和预告片。

典型的降价帖子是

---
title: Switching to Hakyll
tags: hakyll, haskell, pandoc, emacs, org-mode, markdown
---

I chose [Hakyll](http://jaspervdj.be/hakyll/) for blog software ...

<!-- MORE -->

I write posts in [Emacs](https://en.wikipedia.org/wiki/Emacs) ...

问题:

  1. 在哪里/如何在 HTML 输入中放置/格式化标题和标签?
  2. 我使用什么代码来处理标题/标签?

  3. 我在哪里/如何在 HTML 输入中放置/格式化“预告片”标记?

  4. 我使用什么代码来处理预告片?

示例会很棒,或者至少是指向相关文档的指针。

更新

正如@duplode 所建议的,当我将pandocCompiler 替换为getResourceBody 时,它会正确处理内容和预告片。但是看不到标签。它们只是在 HTML 输出中结束。

HTML 输入是这样的:

.
.
.
</head>
<body>
<div id="content">
<h1 class="title">2013-06-30-test-post</h1>
---
title: My first org-mode post
tags: emacs, org-mode
---

<p>
Does it work?
</p>

<!-- MORE -->

<p>
This is the rest.
</p>

【问题讨论】:

    标签: haskell hakyll


    【解决方案1】:

    它应该以完全相同的方式工作。元数据标头(即--- 之间的块)是 Hakyll 特有的,与 Markdown 语法无关。其他功能也是如此。当您将pandocCompiler 替换为getResourceBody 时,唯一的效果是跳过pandoc 标记转换步骤,因此处理中的其他任何内容都不需要更改。

    【讨论】:

    • 替换内容对内容和预告片都有效。但不适用于元数据标头。
    • 您对问题的更新已经澄清了这个问题。元数据标头应该在文件的最顶部,在&lt;head&gt; 和其他所有内容之上。 Hakyll 会从最终的 HTML 输出中去除它,因此您不必担心 HTML 格式错误。
    【解决方案2】:

    如果你想使用你的 HTML 作为模板,你应该看看applyAsTemplate

    您也可以查看我的blog's source code 示例。

    【讨论】:

    • 您的帖子似乎在降价。使用 getResourceBody(而不是 pandocCompiler)适用于帖子和预告片。但我需要了解如何正确处理 HTML 输入中的元数据(即标题和标签)。
    • 我的静态页面(如 about.html、archive.html 等)不在 Markdown 中。它们是 HTML。您基本上需要使用 applyAsTemplate 来指示 Hakyll 将您的资源视为资源和模板。
    • 谢谢 - 我明白这一点。但是您的静态页面没有帖子那样的标签。我试图弄清楚如何在 HTML 中使用 POSTS 处理标签。
    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多