From e7c0a063f5eba8f3a5a279cf1a6b9305078c59ff Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 1 Aug 2024 20:03:55 +0200 Subject: [PATCH] :bug: Fix yaml number rendering --- src/Renderers/CodeNodeRenderer.php | 1 + src/Templates/highlight.php/yaml.json | 127 ++++++++++++++++++ .../expected/blocks/code-blocks/yaml.html | 37 ++++- .../source/blocks/code-blocks/yaml.rst | 9 ++ 4 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 src/Templates/highlight.php/yaml.json diff --git a/src/Renderers/CodeNodeRenderer.php b/src/Renderers/CodeNodeRenderer.php index a9e56434..d5e771ee 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 00000000..3db70a84 --- /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 fceca11e..2de3b7b2 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
+            
+        
diff --git a/tests/fixtures/source/blocks/code-blocks/yaml.rst b/tests/fixtures/source/blocks/code-blocks/yaml.rst index 45ce98d5..f56652d3 100644 --- a/tests/fixtures/source/blocks/code-blocks/yaml.rst +++ b/tests/fixtures/source/blocks/code-blocks/yaml.rst @@ -1,3 +1,12 @@ .. code-block:: yaml # 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