【问题标题】:yaml front matter in a haml filehaml 文件中的 yaml 前端问题
【发布时间】:2018-07-08 15:17:23
【问题描述】:

我正在尝试使用 haml-jekyll-extension 只是我不明白如何包含 yaml 前端问题?我有以下内容:

---
user: hello
---
!!!
%html
  %title RudyIndustries
  %body
    %h1 Hello World! {{ page.user }}

但它最终会被编译成以下 html:

user: hello
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <title>RudyIndustries</title>
  <body>
    <h1>Hello World! {{ page.user }}</h1>
  </body>
</html>

如何标记 yaml 前端,使其正确编译成 html?

【问题讨论】:

  • 您是如何查看这些文件的?...使用服务器(如 jekyll 服务器)或只是打开 html 文件...?
  • @landox 抱歉忘记了我是在弄清楚之后才发布的,但是如果您点击链接,它是一个 jekyll 扩展,您使用 ejekyll 并且该扩展在服务器启动时转换文件。我想我也许可以将它转换为标准的 jekyll 插件,而不必再担心 ejekyll 但我最终想通了。

标签: html haml yaml jekyll jekyll-extensions


【解决方案1】:

使用反斜杠:

haml 文件:

\---
user: hello
\---
%html
  %title RudyIndustries
  %body
    %h1 Hello World! {{ page.user }}

编译成下面的html:

---
user: hello
---
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <title>RudyIndustries</title>
  <body>
    <h1>Hello World! {{ page.user }}</h1>
  </body>
</html>

【讨论】:

  • 这个解决方案有两个问题 - 1)前面的内容打印在输出文件中,2)当你用反斜杠转义纯文本时,你不能使用 YAML 嵌套。
【解决方案2】:

您可以将Haml comments 用于前台。这将允许您在 YAML 中使用嵌套,并且不会在您的 html 中重现前面的内容。以下haml文件

-#
  ---
  user: hello
  ---
!!!
%html
  %title RudyIndustries
  %body
    %h1 Hello World! {{ page.user }}

将生成以下 HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <title>RudyIndustries</title>
  <body>
   <h1>Hello World! {{ page.user }}</h1>
  </body>
</html>

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 2018-06-04
    • 2015-11-24
    • 2020-07-01
    • 2015-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多