Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

yaml front matter in a haml file

I am attempting to use the haml-jekyll-extension only I do not understand how to include yaml front matter? I have the following:

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

but it ends up getting compiled into the following 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>

How to do I mark the yaml front matter such that it gets compiled into html properly?

like image 553
rudolph9 Avatar asked May 05 '12 01:05

rudolph9


2 Answers

Use a back slash:

haml file:

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

compiles into the following 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>
like image 132
rudolph9 Avatar answered Sep 23 '22 23:09

rudolph9


You can use Haml comments for front matter. This will let you use nesting in your YAML and it won't reproduce the front matter in your html. The following haml file

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

will generate the following 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>
like image 39
Andre Dickson Avatar answered Sep 26 '22 23:09

Andre Dickson