diff --git a/src/Renderers/CodeNodeRenderer.php b/src/Renderers/CodeNodeRenderer.php index a9e5643..d5e771e 100644 --- a/src/Renderers/CodeNodeRenderer.php +++ b/src/Renderers/CodeNodeRenderer.php @@ -121,6 +121,7 @@ private function configureHighlighter() if (false === self::$isHighlighterConfigured) { Highlighter::registerLanguage('php', __DIR__.'/../Templates/highlight.php/php.json', true); Highlighter::registerLanguage('twig', __DIR__.'/../Templates/highlight.php/twig.json', true); + Highlighter::registerLanguage('yaml', __DIR__.'/../Templates/highlight.php/yaml.json', true); } self::$isHighlighterConfigured = true; diff --git a/src/Templates/highlight.php/yaml.json b/src/Templates/highlight.php/yaml.json new file mode 100644 index 0000000..3db70a8 --- /dev/null +++ b/src/Templates/highlight.php/yaml.json @@ -0,0 +1,127 @@ +{ + "case_insensitive": true, + "aliases": [ + "yml", + "YAML", + "yaml" + ], + "contains": [ + { + "className": "attr", + "variants": [ + { + "begin": "\\w[\\w :\\\/.-]*:(?=[ \t]|$)" + }, + { + "begin": "\"\\w[\\w :\\\/.-]*\":(?=[ \t]|$)" + }, + { + "begin": "'\\w[\\w :\\\/.-]*':(?=[ \t]|$)" + } + ] + }, + { + "className": "meta", + "begin": "^---s*$", + "relevance": 10 + }, + { + "className": "string", + "begin": "[\\|>]([0-9]?[+-])?[ ]*\\n( *)[\\S ]+\\n(\\2[\\S ]+\\n?)*" + }, + { + "begin": "<%[%=-]?", + "end": "[%-]?%>", + "subLanguage": "ruby", + "excludeBegin": true, + "excludeEnd": true, + "relevance": 0 + }, + { + "className": "type", + "begin": "![a-zA-Z_]\\w*" + }, + { + "className": "type", + "begin": "!![a-zA-Z_]\\w*" + }, + { + "className": "meta", + "begin": "&[a-zA-Z_]\\w*$" + }, + { + "className": "meta", + "begin": "\\*[a-zA-Z_]\\w*$" + }, + { + "className": "bullet", + "begin": "\\-(?=[ ]|$)", + "relevance": 0 + }, + { + "className": "comment", + "begin": "#", + "end": "$", + "contains": [ + { + "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b" + }, + { + "className": "doctag", + "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):", + "relevance": 0 + } + ] + }, + { + "beginKeywords": "true false yes no null", + "keywords": { + "literal": "true false yes no null" + } + }, + { + "className": "number", + "begin": "\\b([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(([Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(\\.([0-9]*))?([ \\t]*(Z|([-+])([0-9][0-9]?)(:([0-9][0-9]))?))?)?\\b" + }, + { + "className": "number", + "begin": "(-?)(\\b0[xX][a-fA-F0-9_]+|(\\b\\d[\\d_]*(\\.[\\d_]*)?|\\.\\d[\\d_]*)([eE][-+]?\\d[\\d_]*)?)\\b" + }, + { + "className": "string", + "relevance": 0, + "variants": [ + { + "begin": "'", + "end": "'" + }, + { + "begin": "\"", + "end": "\"" + }, + { + "begin": "\\S+" + } + ], + "contains": [ + { + "begin": "\\\\[\\s\\S]", + "relevance": 0 + }, + { + "className": "template-variable", + "variants": [ + { + "begin": "{{", + "end": "}}" + }, + { + "begin": "%{", + "end": "}" + } + ] + } + ] + } + ] +} diff --git a/tests/fixtures/expected/blocks/code-blocks/yaml.html b/tests/fixtures/expected/blocks/code-blocks/yaml.html index fceca11..2de3b7b 100644 --- a/tests/fixtures/expected/blocks/code-blocks/yaml.html +++ b/tests/fixtures/expected/blocks/code-blocks/yaml.html @@ -1,7 +1,36 @@ -
1-
# some code
-
+ 1 +2 +3 +4 +5 +6 +7 +8 +9 +10+
+
+ # some code
+ parameters:
+ credit_card_number:
+ 1234_5678_9012_3456
+ long_number:
+ 10_000_000_000
+ pi:
+ 3.14159_26535_89793
+ hex_words:
+ 0x_CAFE_F00D
+ canonical:
+ 2001-12-15T02:59:43.1Z
+ iso8601:
+ 2001-12-14t21:59:43.10-05:00
+ spaced:
+ 2001-12-14 21:59:43.10 -5
+ date:
+ 2002-12-14
+
+