Wow, this reference card really helps.  You can almost learn YAML from it.

I realize that using single character identifiers is part of what makes YAML data so readable.  If we gotta keep 'em, can we at least avoid overloading them?  Is % the only one that is overloaded?  (Why, after thoroughly studying the spec, don't I have the confidence to answer this question?)

~Joe

At 08:17 PM 7/31/2001 +0200, Oren Ben-Kiki wrote:
YAML special characters
"    " (four spaces)
    for indentation as in list (@) and map (%).
:
    for entry, as in a map entry:
        key : value
    and a list entry:
       : value
@
    for list, as in:
        list: @
            : Entry 1
            : Entry 2
%
    for map, as in:
        map: %
            key1 : value1
            key2 : value2
|
    for block, as in:
        code: |
            main() {
                printf("Hello, world!\n");
            }
-
    for removing the last LF of a block, as in:
        line noise: |-
            !@#\'"$% (no trailing LF)
" and '
    for quoted string, as in:
        "Hello, world!\n" : 'The key says "Hello, world!\n"'
\
    for escaping in quoted strings, as in:
         "The key was written as \"Hello, world!\\n\""
----
    for separating top level maps, as in log files:
        date: 2001-07-01 21:12:34
        request: GET
        protocol: HTTP/1.0
        url: /index.html
        ----
        date: 2001-07-01 21:13:45
        request: GET
        protocol: HTTP/1.0
        url: /toc.html
        ----

!
    for serialization,
=
    for default value, as in:
        delivery: %
            !: date
            %: iso
            =: 2001-07-01
[ and ]
    for shorthand, as in:
        delivery [!date %iso] 2001-07-01

Would that have helped?
 
Have fun,
 
    Oren Ben-Kiki