| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | module.exports = // TODO support filter tags like :javascript, support inline HTMLfunction(hljs) {  return {    case_insensitive: true,    contains: [      {        className: 'meta',        begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',        relevance: 10      },      // FIXME these comments should be allowed to span indented lines      hljs.COMMENT(        '^\\s*(!=#|=#|-#|/).*$',        false,        {          relevance: 0        }      ),      {        begin: '^\\s*(-|=|!=)(?!#)',        starts: {          end: '\\n',          subLanguage: 'ruby'        }      },      {        className: 'tag',        begin: '^\\s*%',        contains: [          {            className: 'selector-tag',            begin: '\\w+'          },          {            className: 'selector-id',            begin: '#[\\w-]+'          },          {            className: 'selector-class',            begin: '\\.[\\w-]+'          },          {            begin: '{\\s*',            end: '\\s*}',            contains: [              {                begin: ':\\w+\\s*=>',                end: ',\\s+',                returnBegin: true,                endsWithParent: true,                contains: [                  {                    className: 'attr',                    begin: ':\\w+'                  },                  hljs.APOS_STRING_MODE,                  hljs.QUOTE_STRING_MODE,                  {                    begin: '\\w+',                    relevance: 0                  }                ]              }            ]          },          {            begin: '\\(\\s*',            end: '\\s*\\)',            excludeEnd: true,            contains: [              {                begin: '\\w+\\s*=',                end: '\\s+',                returnBegin: true,                endsWithParent: true,                contains: [                  {                    className: 'attr',                    begin: '\\w+',                    relevance: 0                  },                  hljs.APOS_STRING_MODE,                  hljs.QUOTE_STRING_MODE,                  {                    begin: '\\w+',                    relevance: 0                  }                ]              }            ]          }        ]      },      {        begin: '^\\s*[=~]\\s*'      },      {        begin: '#{',        starts: {          end: '}',          subLanguage: 'ruby'        }      }    ]  };};
 |