How do you put HTML or XML into a YAML?

Piotr Zolnierek picture Piotr Zolnierek · Nov 23, 2009 · Viewed 24k times · Source

I would like to store HTML snippets inside a YAML file. What is the best way to do that?

Something like:

myhtml: |
  <div>
    <a href="#">whatever</a>
  </div>

Answer

dreftymac picture dreftymac · Nov 23, 2009

Example

Here is a sample record from a YAML-based snippet management system I created years ago:

- caption:    fieldset msie5
  tinycap:    fieldset
  domain:     html
  desc:       fieldset and legend tag
  wwbody: |
      <fieldset>
      <legend>legend</legend>

      </fieldset>

You can repeat that or something like it for all the snippets you want to manage. This particular system stores the snippets as an array of name-value pairs (Perl people would call this an AoH). If you do not need all this extra information, just two name-value pairs will suffice (e.g., caption + body).

The nice thing about this system: YAML indentation prevents "delimiter collision" problems. You never have to use clumsy escape sequences inside your snippet body.

Text Editor or IDE alternative

Note: Increasingly, text editors and IDEs support flexible snippet management options natively, so you may want to consider using the format of a text editor rather than re-inventing your own. If you do re-invent your own, you can write a script to translate your YAML format into the native format of a text editor if you later decide you want to do that.

See also: