Search code examples
yamlconfiguration-filescode-snippetsmarkup

How do you put HTML or XML into a YAML?


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>

Solution

  • 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: