blob: 8ab1c7d17a232b18cea6b93f17683520e05186cf [file] [log] [blame]
{"version":3,"sources":["webpack://lib/./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/handlebars.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;AAEA;AACA,WAAW,iBAAiB;AAC5B,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,sBAAsB;AACjC,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,aAAa,EAAE;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,kBAAkB,KAAK,OAAO;AAC/D;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,GAAG;;AAEH,qDAAqD,YAAY,EAAE;AACnE,4DAA4D,iBAAiB,EAAE;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,WAAW,EAAE;AACrC,sBAAsB,EAAE,OAAO,EAAE;AACjC;AACA,+BAA+B,OAAO,2BAA2B,QAAQ;AACzE;AACA,kBAAkB,EAAE,EAAE,EAAE;AACxB,gBAAgB,EAAE,EAAE,EAAE;AACtB;AACA,iBAAiB,QAAQ,EAAE,EAAE,EAAE;AAC/B,OAAO;AACP;AACA;AACA;AACA,kBAAkB,EAAE,EAAE,EAAE;AACxB,gBAAgB,EAAE,EAAE,EAAE;AACtB;AACA,OAAO;AACP;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,gBAAgB,EAAE;AAClB;AACA,OAAO;AACP;AACA;AACA,kBAAkB,EAAE,SAAS,EAAE;AAC/B,gBAAgB,EAAE;AAClB;AACA,OAAO;AACP;AACA;AACA,kBAAkB,EAAE;AACpB,gBAAgB,EAAE;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,gBAAgB,EAAE;AAClB;AACA,OAAO;AACP;AACA;AACA;AACA,kBAAkB,EAAE,EAAE;AACtB,gBAAgB,EAAE,EAAE;AACpB;AACA,OAAO;AACP;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;;AAEA","file":"react-syntax-highlighter_languages_highlight_handlebars.render-page.js","sourcesContent":["/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/*\nLanguage: Handlebars\nRequires: xml.js\nAuthor: Robin Ward <robin.ward@gmail.com>\nDescription: Matcher for Handlebars as well as EmberJS additions.\nWebsite: https://handlebarsjs.com\nCategory: template\n*/\n\nfunction handlebars(hljs) {\n const BUILT_INS = {\n 'builtin-name': [\n 'action',\n 'bindattr',\n 'collection',\n 'component',\n 'concat',\n 'debugger',\n 'each',\n 'each-in',\n 'get',\n 'hash',\n 'if',\n 'in',\n 'input',\n 'link-to',\n 'loc',\n 'log',\n 'lookup',\n 'mut',\n 'outlet',\n 'partial',\n 'query-params',\n 'render',\n 'template',\n 'textarea',\n 'unbound',\n 'unless',\n 'view',\n 'with',\n 'yield'\n ].join(\" \")\n };\n\n const LITERALS = {\n literal: [\n 'true',\n 'false',\n 'undefined',\n 'null'\n ].join(\" \")\n };\n\n // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments\n // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths\n // like a/b, ./abc/cde, and abc.bcd\n\n const DOUBLE_QUOTED_ID_REGEX=/\".*?\"/;\n const SINGLE_QUOTED_ID_REGEX=/'.*?'/;\n const BRACKET_QUOTED_ID_REGEX=/\\[.*?\\]/;\n const PLAIN_ID_REGEX=/[^\\s!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]+/;\n const PATH_DELIMITER_REGEX=/\\.|\\//;\n\n const IDENTIFIER_REGEX = concat(\n '(',\n SINGLE_QUOTED_ID_REGEX, '|',\n DOUBLE_QUOTED_ID_REGEX, '|',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX, '|',\n PATH_DELIMITER_REGEX,\n ')+'\n );\n\n // identifier followed by a equal-sign (without the equal sign)\n const HASH_PARAM_REGEX = concat(\n '(',\n BRACKET_QUOTED_ID_REGEX, '|',\n PLAIN_ID_REGEX,\n ')(?==)'\n );\n\n const HELPER_NAME_OR_PATH_EXPRESSION = {\n begin: IDENTIFIER_REGEX,\n lexemes: /[\\w.\\/]+/\n };\n\n const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: LITERALS\n });\n\n const SUB_EXPRESSION = {\n begin: /\\(/,\n end: /\\)/\n // the \"contains\" is added below when all necessary sub-modes are defined\n };\n\n const HASH = {\n // fka \"attribute-assignment\", parameters of the form 'key=value'\n className: 'attr',\n begin: HASH_PARAM_REGEX,\n relevance: 0,\n starts: {\n begin: /=/,\n end: /=/,\n starts: {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ]\n }\n }\n };\n\n const BLOCK_PARAMS = {\n // parameters of the form '{{#with x as | y |}}...{{/with}}'\n begin: /as\\s+\\|/,\n keywords: { keyword: 'as' },\n end: /\\|/,\n contains: [\n {\n // define sub-mode in order to prevent highlighting of block-parameter named \"as\"\n begin: /\\w+/\n }\n ]\n };\n\n const HELPER_PARAMETERS = {\n contains: [\n hljs.NUMBER_MODE,\n hljs.QUOTE_STRING_MODE,\n hljs.APOS_STRING_MODE,\n BLOCK_PARAMS,\n HASH,\n HELPER_PARAMETER,\n SUB_EXPRESSION\n ],\n returnEnd: true\n // the property \"end\" is defined through inheritance when the mode is used. If depends\n // on the surrounding mode, but \"endsWithParent\" does not work here (i.e. it includes the\n // end-token of the surrounding mode)\n };\n\n const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /\\)/,\n })\n });\n\n SUB_EXPRESSION.contains = [\n SUB_EXPRESSION_CONTENTS\n ];\n\n const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name',\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /}}/,\n })\n });\n\n const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n keywords: BUILT_INS,\n className: 'name'\n });\n\n const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {\n className: 'name',\n keywords: BUILT_INS,\n starts: hljs.inherit(HELPER_PARAMETERS, {\n end: /}}/,\n })\n });\n\n const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {begin: /\\\\\\{\\{/, skip: true};\n const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {begin: /\\\\\\\\(?=\\{\\{)/, skip: true};\n\n return {\n name: 'Handlebars',\n aliases: ['hbs', 'html.hbs', 'html.handlebars', 'htmlbars'],\n case_insensitive: true,\n subLanguage: 'xml',\n contains: [\n ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,\n PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,\n hljs.COMMENT(/\\{\\{!--/, /--\\}\\}/),\n hljs.COMMENT(/\\{\\{!/, /\\}\\}/),\n {\n // open raw block \"{{{{raw}}}} content not evaluated {{{{/raw}}}}\"\n className: 'template-tag',\n begin: /\\{\\{\\{\\{(?!\\/)/,\n end: /\\}\\}\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n starts: {end: /\\{\\{\\{\\{\\//, returnEnd: true, subLanguage: 'xml'}\n },\n {\n // close raw block\n className: 'template-tag',\n begin: /\\{\\{\\{\\{\\//,\n end: /\\}\\}\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]\n },\n {\n // open block statement\n className: 'template-tag',\n begin: /\\{\\{#/,\n end: /\\}\\}/,\n contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else\\}\\})/,\n end: /\\}\\}/,\n keywords: 'else'\n },\n {\n className: 'template-tag',\n begin: /\\{\\{(?=else if)/,\n end: /\\}\\}/,\n keywords: 'else if'\n },\n {\n // closing block statement\n className: 'template-tag',\n begin: /\\{\\{\\//,\n end: /\\}\\}/,\n contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS],\n },\n {\n // template variable or helper-call that is NOT html-escaped\n className: 'template-variable',\n begin: /\\{\\{\\{/,\n end: /\\}\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n },\n {\n // template variable or helper-call that is html-escaped\n className: 'template-variable',\n begin: /\\{\\{/,\n end: /\\}\\}/,\n contains: [BASIC_MUSTACHE_CONTENTS]\n }\n ]\n };\n}\n\nmodule.exports = handlebars;\n"],"sourceRoot":""}