| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | /*Language: YAMLAuthor: Stefan Wienert <[email protected]>Requires: ruby.jsDescription: YAML (Yet Another Markdown Language)Category: config*/function(hljs) {  var LITERALS = {literal: '{ } true false yes no Yes No True False null'};  var keyPrefix = '^[ \\-]*';  var keyName =  '[a-zA-Z_][\\w\\-]*';  var KEY = {    className: 'attr',    variants: [      { begin: keyPrefix + keyName + ":"},      { begin: keyPrefix + '"' + keyName + '"' + ":"},      { begin: keyPrefix + "'" + keyName + "'" + ":"}    ]  };  var TEMPLATE_VARIABLES = {    className: 'template-variable',    variants: [      { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible      { begin: '%\{', end: '\}' } // Ruby i18n    ]  };  var STRING = {    className: 'string',    relevance: 0,    variants: [      {begin: /'/, end: /'/},      {begin: /"/, end: /"/}    ],    contains: [      hljs.BACKSLASH_ESCAPE,      TEMPLATE_VARIABLES    ]  };  return {    case_insensitive: true,    aliases: ['yml', 'YAML', 'yaml'],    contains: [      KEY,      {        className: 'meta',        begin: '^---\s*$',        relevance: 10      },      { // multi line string        className: 'string',        begin: '[\\|>] *$',        returnEnd: true,        contains: STRING.contains,        // very simple termination: next hash key        end: KEY.variants[0].begin      },      { // Ruby/Rails erb        begin: '<%[%=-]?', end: '[%-]?%>',        subLanguage: 'ruby',        excludeBegin: true,        excludeEnd: true,        relevance: 0      },      { // data type        className: 'type',        begin: '!!' + hljs.UNDERSCORE_IDENT_RE,      },      { // fragment id &ref        className: 'meta',        begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',      },      { // fragment reference *ref        className: 'meta',        begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'      },      { // array listing        className: 'bullet',        begin: '^ *-',        relevance: 0      },      STRING,      hljs.HASH_COMMENT_MODE,      hljs.C_NUMBER_MODE    ],    keywords: LITERALS  };}
 |