From 0e0e76771eb0a6b2bf8a14e9f0d58c6d69cc4af4 Mon Sep 17 00:00:00 2001 From: Jesper Reenberg Date: Fri, 22 Dec 2023 00:32:16 +0100 Subject: [PATCH] Generalized the Codebraid support to MkDocs In #57 support for Codebraid syntax was added, which essentially is just Pandoc attribute syntax, but with a specific class attribute added. The support was added as an extra `identifier` in the list of languages, for which Codebraid has support, such as for python: `\\{\\.python.+?\\}`. The below example would give the following scope: "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown" to the entire line: ```{.python .cb.nb jupyter_kernel=python3} ``` However the "language scope" should only be given to the "python" part, and the current support doesn't allow spaces between the curly braces, and it lacks support for all languages. MkDocs allows a few ways to annotate fenced code blocks, but if additional classes, id or key/value pairs are used, then the curly braces must be used and the language must be prefixed with a dot. In simple cases where only the language is specified, then the curly braces and the dot may be omitted. The following are quick examples: ``` { .python #id .class title="My Title"} ``` or ``` python ``` This change removes the Codebraid support from the specific languages as an `identifier` attribute, and moved into the RegEx by defining it as two alternative cases: surrounded by curly braces or allowing them after the language: 1. The case where the entire line after the code fence is wrapped in curly braces. In this case the curly braces is not part of the language and attribute scope. 2. The case where the attributes follows the language specification in all sorts of ways (I'm specifically thinking of you Gatsby #62). In this case the curly braces are included in the attribute scope as it is not trivial to handle all the various ways it may be used, and since this is the current behavior. @microsoft-github-policy-service agree Closes #153 Refs: https://github.com/Python-Markdown/markdown/blob/master/docs/extensions/fenced_code_blocks.md --- build.js | 16 +- syntaxes/markdown.tmLanguage | 392 +++++++++-- test/colorize-fixtures/issue-153-1.md | 32 + test/colorize-fixtures/issue-153-2.md | 33 + test/colorize-results/issue-153-1_md.json | 660 ++++++++++++++++++ test/colorize-results/issue-153-2_md.json | 800 ++++++++++++++++++++++ test/colorize-results/pr-57_md.json | 328 ++++++++- 7 files changed, 2167 insertions(+), 94 deletions(-) create mode 100644 test/colorize-fixtures/issue-153-1.md create mode 100644 test/colorize-fixtures/issue-153-2.md create mode 100644 test/colorize-results/issue-153-1_md.json create mode 100644 test/colorize-results/issue-153-2_md.json diff --git a/build.js b/build.js index 3eb1449..77eb790 100644 --- a/build.js +++ b/build.js @@ -13,7 +13,7 @@ const languages = [ { name: 'lua', language: 'lua', identifiers: ['lua'], source: 'source.lua' }, { name: 'makefile', language: 'makefile', identifiers: ['Makefile', 'makefile', 'GNUmakefile', 'OCamlMakefile'], source: 'source.makefile' }, { name: 'perl', language: 'perl', identifiers: ['perl', 'pl', 'pm', 'pod', 't', 'PL', 'psgi', 'vcl'], source: 'source.perl' }, - { name: 'r', language: 'r', identifiers: ['R', 'r', 's', 'S', 'Rprofile', '\\{\\.r.+?\\}'], source: 'source.r' }, + { name: 'r', language: 'r', identifiers: ['R', 'r', 's', 'S', 'Rprofile'], source: 'source.r' }, { name: 'ruby', language: 'ruby', identifiers: ['ruby', 'rb', 'rbx', 'rjs', 'Rakefile', 'rake', 'cgi', 'fcgi', 'gemspec', 'irbrc', 'Capfile', 'ru', 'prawn', 'Cheffile', 'Gemfile', 'Guardfile', 'Hobofile', 'Vagrantfile', 'Appraisals', 'Rantfile', 'Berksfile', 'Berksfile.lock', 'Thorfile', 'Puppetfile'], source: 'source.ruby' }, // Left to its own devices, the PHP grammar will match HTML as a combination of operators // and constants. Therefore, HTML must take precedence over PHP in order to get proper @@ -37,7 +37,7 @@ const languages = [ { name: 'groovy', language: 'groovy', identifiers: ['groovy', 'gvy'], source: 'source.groovy' }, { name: 'pug', language: 'pug', identifiers: ['jade', 'pug'], source: 'text.pug' }, - { name: 'js', language: 'javascript', identifiers: ['js', 'jsx', 'javascript', 'es6', 'mjs', 'cjs', 'dataviewjs', '\\{\\.js.+?\\}'], source: 'source.js' }, + { name: 'js', language: 'javascript', identifiers: ['js', 'jsx', 'javascript', 'es6', 'mjs', 'cjs', 'dataviewjs'], source: 'source.js' }, { name: 'js_regexp', identifiers: ['regexp'], source: 'source.js.regexp' }, { name: 'json', language: 'json', identifiers: ['json', 'json5', 'sublime-settings', 'sublime-menu', 'sublime-keymap', 'sublime-mousemap', 'sublime-theme', 'sublime-build', 'sublime-project', 'sublime-completions'], source: 'source.json' }, { name: 'jsonc', language: 'jsonc', identifiers: ['jsonc'], source: 'source.json.comments' }, @@ -48,12 +48,12 @@ const languages = [ { name: 'perl6', language: 'perl6', identifiers: ['perl6', 'p6', 'pl6', 'pm6', 'nqp'], source: 'source.perl.6' }, { name: 'powershell', language: 'powershell', identifiers: ['powershell', 'ps1', 'psm1', 'psd1'], source: 'source.powershell' }, - { name: 'python', language: 'python', identifiers: ['python', 'py', 'py3', 'rpy', 'pyw', 'cpy', 'SConstruct', 'Sconstruct', 'sconstruct', 'SConscript', 'gyp', 'gypi', '\\{\\.python.+?\\}'], source: 'source.python' }, - { name: 'julia', language: 'julia', identifiers: ['julia', '\\{\\.julia.+?\\}'], source: 'source.julia' }, + { name: 'python', language: 'python', identifiers: ['python', 'py', 'py3', 'rpy', 'pyw', 'cpy', 'SConstruct', 'Sconstruct', 'sconstruct', 'SConscript', 'gyp', 'gypi'], source: 'source.python' }, + { name: 'julia', language: 'julia', identifiers: ['julia'], source: 'source.julia' }, { name: 'regexp_python', identifiers: ['re'], source: 'source.regexp.python' }, - { name: 'rust', language: 'rust', identifiers: ['rust', 'rs', '\\{\\.rust.+?\\}'], source: 'source.rust' }, + { name: 'rust', language: 'rust', identifiers: ['rust', 'rs'], source: 'source.rust' }, { name: 'scala', language: 'scala', identifiers: ['scala', 'sbt'], source: 'source.scala' }, - { name: 'shell', language: 'shellscript', identifiers: ['shell', 'sh', 'bash', 'zsh', 'bashrc', 'bash_profile', 'bash_login', 'profile', 'bash_logout', '.textmate_init', '\\{\\.bash.+?\\}'], source: 'source.shell' }, + { name: 'shell', language: 'shellscript', identifiers: ['shell', 'sh', 'bash', 'zsh', 'bashrc', 'bash_profile', 'bash_login', 'profile', 'bash_logout', '.textmate_init'], source: 'source.shell' }, { name: 'ts', language: 'typescript', identifiers: ['typescript', 'ts'], source: 'source.ts' }, { name: 'tsx', language: 'typescriptreact', identifiers: ['tsx'], source: 'source.tsx' }, { name: 'csharp', language: 'csharp', identifiers: ['cs', 'csharp', 'c#'], source: 'source.cs' }, @@ -86,7 +86,7 @@ const fencedCodeBlockDefinition = (name, identifiers, sourceScope, language, add return `fenced_code_block_${name}: begin: - (^|\\G)(\\s*)(\`{3,}|~{3,})\\s*(?i:(${identifiers.join('|')})((\\s+|:|,|\\{|\\?)[^\`]*)?$) + (^|\\G)(\\s*)([\`~]{3,})\\s*(?i:(?:\\{\\s*\\.?(${identifiers.join('|')})(?:\\}|\\s+([^\`\\r\\n]*?)?\\s*\\}))|(?:\\.?(\\g<4>)((?:\\s+|:|,|\\{|\\?)[^\`\\r\\n]*?)?))$ name: markup.fenced_code.block.markdown end: @@ -95,6 +95,8 @@ const fencedCodeBlockDefinition = (name, identifiers, sourceScope, language, add '3': {name: 'punctuation.definition.markdown'} '4': {name: 'fenced_code.block.language.markdown'} '5': {name: 'fenced_code.block.language.attributes.markdown'} + # '6' is tagged through '4' as we back reference it. + '7': {name: 'fenced_code.block.language.attributes.markdown'} endCaptures: '3': {name: 'punctuation.definition.markdown'} patterns: diff --git a/syntaxes/markdown.tmLanguage b/syntaxes/markdown.tmLanguage index 6b596a8..ccf09bf 100644 --- a/syntaxes/markdown.tmLanguage +++ b/syntaxes/markdown.tmLanguage @@ -99,7 +99,7 @@ fenced_code_block_css begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(css|css.erb)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(css|css.erb)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -121,6 +121,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -152,7 +157,7 @@ fenced_code_block_basic begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(html|htm|shtml|xhtml|inc|tmpl|tpl)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -174,6 +179,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -205,7 +215,7 @@ fenced_code_block_ini begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(ini|conf)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(ini|conf)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -227,6 +237,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -258,7 +273,7 @@ fenced_code_block_java begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(java|bsh)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(java|bsh)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -280,6 +295,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -311,7 +331,7 @@ fenced_code_block_lua begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(lua)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(lua)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -333,6 +353,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -364,7 +389,7 @@ fenced_code_block_makefile begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(Makefile|makefile|GNUmakefile|OCamlMakefile)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -386,6 +411,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -417,7 +447,7 @@ fenced_code_block_perl begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(perl|pl|pm|pod|t|PL|psgi|vcl)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -439,6 +469,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -470,7 +505,7 @@ fenced_code_block_r begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(R|r|s|S|Rprofile|\{\.r.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(R|r|s|S|Rprofile)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -492,6 +527,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -523,7 +563,7 @@ fenced_code_block_ruby begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -545,6 +585,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -576,7 +621,7 @@ fenced_code_block_php begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(php|php3|php4|php5|phpt|phtml|aw|ctp)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -598,6 +643,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -633,7 +683,7 @@ fenced_code_block_sql begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(sql|ddl|dml)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(sql|ddl|dml)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -655,6 +705,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -686,7 +741,7 @@ fenced_code_block_vs_net begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(vb)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(vb)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -708,6 +763,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -739,7 +799,7 @@ fenced_code_block_xml begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -761,6 +821,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -792,7 +857,7 @@ fenced_code_block_xsl begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(xsl|xslt)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(xsl|xslt)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -814,6 +879,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -845,7 +915,7 @@ fenced_code_block_yaml begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(yaml|yml)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(yaml|yml)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -867,6 +937,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -898,7 +973,7 @@ fenced_code_block_dosbatch begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(bat|batch)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(bat|batch)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -920,6 +995,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -951,7 +1031,7 @@ fenced_code_block_clojure begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(clj|cljs|clojure)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(clj|cljs|clojure)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -973,6 +1053,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1004,7 +1089,7 @@ fenced_code_block_coffee begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(coffee|Cakefile|coffee.erb)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(coffee|Cakefile|coffee.erb)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1026,6 +1111,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1057,7 +1147,7 @@ fenced_code_block_c begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(c|h)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(c|h)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1079,6 +1169,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1110,7 +1205,7 @@ fenced_code_block_cpp begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(cpp|c\+\+|cxx)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(cpp|c\+\+|cxx)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1132,6 +1227,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1163,7 +1263,7 @@ fenced_code_block_diff begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(patch|diff|rej)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(patch|diff|rej)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1185,6 +1285,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1216,7 +1321,7 @@ fenced_code_block_dockerfile begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(dockerfile|Dockerfile)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(dockerfile|Dockerfile)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1238,6 +1343,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1269,7 +1379,7 @@ fenced_code_block_git_commit begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(COMMIT_EDITMSG|MERGE_MSG)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1291,6 +1401,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1322,7 +1437,7 @@ fenced_code_block_git_rebase begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(git-rebase-todo)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(git-rebase-todo)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1344,6 +1459,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1375,7 +1495,7 @@ fenced_code_block_go begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(go|golang)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(go|golang)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1397,6 +1517,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1428,7 +1553,7 @@ fenced_code_block_groovy begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(groovy|gvy)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(groovy|gvy)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1450,6 +1575,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1481,7 +1611,7 @@ fenced_code_block_pug begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(jade|pug)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(jade|pug)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1503,6 +1633,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1534,7 +1669,7 @@ fenced_code_block_js begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\{\.js.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(js|jsx|javascript|es6|mjs|cjs|dataviewjs)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1556,6 +1691,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1587,7 +1727,7 @@ fenced_code_block_js_regexp begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(regexp)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(regexp)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1609,6 +1749,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1640,7 +1785,7 @@ fenced_code_block_json begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1662,6 +1807,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1693,7 +1843,7 @@ fenced_code_block_jsonc begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(jsonc)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(jsonc)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1715,6 +1865,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1746,7 +1901,7 @@ fenced_code_block_less begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(less)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(less)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1768,6 +1923,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1799,7 +1959,7 @@ fenced_code_block_objc begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(objectivec|objective-c|mm|objc|obj-c|m|h)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1821,6 +1981,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1852,7 +2017,7 @@ fenced_code_block_swift begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(swift)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(swift)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1874,6 +2039,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1905,7 +2075,7 @@ fenced_code_block_scss begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(scss)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(scss)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1927,6 +2097,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -1958,7 +2133,7 @@ fenced_code_block_perl6 begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(perl6|p6|pl6|pm6|nqp)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(perl6|p6|pl6|pm6|nqp)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -1980,6 +2155,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2011,7 +2191,7 @@ fenced_code_block_powershell begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(powershell|ps1|psm1|psd1)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(powershell|ps1|psm1|psd1)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2033,6 +2213,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2064,7 +2249,7 @@ fenced_code_block_python begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\{\.python.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2086,6 +2271,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2117,7 +2307,7 @@ fenced_code_block_julia begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(julia|\{\.julia.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(julia)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2139,6 +2329,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2170,7 +2365,7 @@ fenced_code_block_regexp_python begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(re)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(re)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2192,6 +2387,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2223,7 +2423,7 @@ fenced_code_block_rust begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(rust|rs|\{\.rust.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(rust|rs)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2245,6 +2445,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2276,7 +2481,7 @@ fenced_code_block_scala begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(scala|sbt)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(scala|sbt)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2298,6 +2503,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2329,7 +2539,7 @@ fenced_code_block_shell begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\{\.bash.+?\})((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2351,6 +2561,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2382,7 +2597,7 @@ fenced_code_block_ts begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(typescript|ts)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(typescript|ts)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2404,6 +2619,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2435,7 +2655,7 @@ fenced_code_block_tsx begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(tsx)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(tsx)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2457,6 +2677,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2488,7 +2713,7 @@ fenced_code_block_csharp begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(cs|csharp|c#)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(cs|csharp|c#)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2510,6 +2735,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2541,7 +2771,7 @@ fenced_code_block_fsharp begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(fs|fsharp|f#)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(fs|fsharp|f#)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2563,6 +2793,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2594,7 +2829,7 @@ fenced_code_block_dart begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(dart)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(dart)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2616,6 +2851,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2647,7 +2887,7 @@ fenced_code_block_handlebars begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(handlebars|hbs)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(handlebars|hbs)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2669,6 +2909,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2700,7 +2945,7 @@ fenced_code_block_markdown begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(markdown|md)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(markdown|md)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2722,6 +2967,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2753,7 +3003,7 @@ fenced_code_block_log begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(log)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(log)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2775,6 +3025,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2806,7 +3061,7 @@ fenced_code_block_erlang begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(erlang)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(erlang)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2828,6 +3083,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2859,7 +3119,7 @@ fenced_code_block_elixir begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(elixir)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(elixir)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2881,6 +3141,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2912,7 +3177,7 @@ fenced_code_block_latex begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(latex|tex)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(latex|tex)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2934,6 +3199,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -2965,7 +3235,7 @@ fenced_code_block_bibtex begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(bibtex)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(bibtex)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -2987,6 +3257,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures @@ -3018,7 +3293,7 @@ fenced_code_block_twig begin - (^|\G)(\s*)(`{3,}|~{3,})\s*(?i:(twig)((\s+|:|,|\{|\?)[^`]*)?$) + (^|\G)(\s*)([`~]{3,})\s*(?i:(?:\{\s*\.?(twig)(?:\}|\s+([^`\r\n]*?)?\s*\}))|(?:\.?(\g<4>)((?:\s+|:|,|\{|\?)[^`\r\n]*?)?))$ name markup.fenced_code.block.markdown end @@ -3040,6 +3315,11 @@ name fenced_code.block.language.attributes.markdown + 7 + + name + fenced_code.block.language.attributes.markdown + endCaptures diff --git a/test/colorize-fixtures/issue-153-1.md b/test/colorize-fixtures/issue-153-1.md new file mode 100644 index 0000000..26f5e0f --- /dev/null +++ b/test/colorize-fixtures/issue-153-1.md @@ -0,0 +1,32 @@ +# MkDocs / Python-Markdown + + +The language should be dot prefixed + +``` { .sh } +# Shell comment +``` + +but if no other options are specified, then it may be excluded (including the curly braced) + +``` sh +# Shell comment +``` + +When additional options such as an id and/or one or more classes are added, then the curly braces and dot prefixed language is required. + +``` { .sh #id .class1 .class2 } +# Shell comment +``` + +Key/Value pairs may also be used inside curly braces + +``` { .sh #id .class1 .class2 hl_lines="1 3" title="My Title" } +# Shell comment +``` + +However if only the language and key/value pairs are used, then it parses without curly braces + +``` sh title="My Title" +# Shell comment +``` diff --git a/test/colorize-fixtures/issue-153-2.md b/test/colorize-fixtures/issue-153-2.md new file mode 100644 index 0000000..a652bbb --- /dev/null +++ b/test/colorize-fixtures/issue-153-2.md @@ -0,0 +1,33 @@ +# MkDocs / Python-Markdown + +The spaces are optional + +```.sh +# Shell comment +``` + +```{.sh} +# Shell comment +``` + +``` {.sh} +# Shell comment +``` + +```{ .sh} +# Shell comment +``` + +```{.sh } +# Shell comment +``` + +Spaces are also optional when attributes are defined + +```{.sh .class} +# Shell comment +``` + +```{.sh .class } +# Shell comment +``` diff --git a/test/colorize-results/issue-153-1_md.json b/test/colorize-results/issue-153-1_md.json new file mode 100644 index 0000000..de5b532 --- /dev/null +++ b/test/colorize-results/issue-153-1_md.json @@ -0,0 +1,660 @@ +[ + { + "c": "#", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": "MkDocs / Python-Markdown", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": "The language should be dot prefixed", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " { .", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " }", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "but if no other options are specified, then it may be excluded (including the curly braced)", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "When additional options such as an id and/or one or more classes are added, then the curly braces and dot prefixed language is required.", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " { .", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#id .class1 .class2", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " }", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "Key/Value pairs may also be used inside curly braces", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " { .", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#id .class1 .class2 hl_lines=\"1 3\" title=\"My Title\"", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " }", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "However if only the language and key/value pairs are used, then it parses without curly braces", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " title=\"My Title\"", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + } +] \ No newline at end of file diff --git a/test/colorize-results/issue-153-2_md.json b/test/colorize-results/issue-153-2_md.json new file mode 100644 index 0000000..17f4bcb --- /dev/null +++ b/test/colorize-results/issue-153-2_md.json @@ -0,0 +1,800 @@ +[ + { + "c": "#", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": "MkDocs / Python-Markdown", + "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", + "r": { + "dark_plus": "markup.heading: #569CD6", + "light_plus": "markup.heading: #800000", + "dark_vs": "markup.heading: #569CD6", + "light_vs": "markup.heading: #800000", + "hc_black": "markup.heading: #6796E6", + "dark_modern": "markup.heading: #569CD6", + "hc_light": "markup.heading: #0F4A85", + "light_modern": "markup.heading: #800000" + } + }, + { + "c": "The spaces are optional", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " {.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "{ .", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " }", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "Spaces are also optional when attributes are defined", + "t": "text.html.markdown meta.paragraph.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".class", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "sh", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".class", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": " }", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "#", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell punctuation.definition.comment.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": " Shell comment", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript comment.line.number-sign.shell", + "r": { + "dark_plus": "comment: #6A9955", + "light_plus": "comment: #008000", + "dark_vs": "comment: #6A9955", + "light_vs": "comment: #008000", + "hc_black": "comment: #7CA668", + "dark_modern": "comment: #6A9955", + "hc_light": "comment: #515151", + "light_modern": "comment: #008000" + } + }, + { + "c": "```", + "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + } +] \ No newline at end of file diff --git a/test/colorize-results/pr-57_md.json b/test/colorize-results/pr-57_md.json index 4624a85..2ec1136 100644 --- a/test/colorize-results/pr-57_md.json +++ b/test/colorize-results/pr-57_md.json @@ -14,7 +14,21 @@ } }, { - "c": "{.python .cb.nb jupyter_kernel=python3}", + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "python", "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", "r": { "dark_plus": "default: #D4D4D4", @@ -27,6 +41,48 @@ "light_modern": "default: #3B3B3B" } }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".cb.nb jupyter_kernel=python3", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, { "c": "def", "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.python meta.function.python storage.type.function.python", @@ -182,7 +238,21 @@ } }, { - "c": "{.r .cb.run}", + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "r", "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", "r": { "dark_plus": "default: #D4D4D4", @@ -195,6 +265,48 @@ "light_modern": "default: #3B3B3B" } }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".cb.run", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, { "c": "library", "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r support.function.r", @@ -280,7 +392,21 @@ } }, { - "c": "{.js .cb.run}", + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "js", "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", "r": { "dark_plus": "default: #D4D4D4", @@ -293,6 +419,48 @@ "light_modern": "default: #3B3B3B" } }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".cb.run", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, { "c": "const", "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.javascript meta.var.expr.js storage.type.js", @@ -434,7 +602,21 @@ } }, { - "c": "{.rust .cb.run}", + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "rust", "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", "r": { "dark_plus": "default: #D4D4D4", @@ -448,36 +630,64 @@ } }, { - "c": "println", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r variable.other.r", + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE", - "dark_modern": "variable: #9CDCFE", - "hc_light": "variable: #001080", - "light_modern": "variable: #001080" + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" } }, { - "c": "!", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r keyword.operator.logical.r", + "c": ".cb.run", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", "r": { - "dark_plus": "keyword.operator: #D4D4D4", - "light_plus": "keyword.operator: #000000", - "dark_vs": "keyword.operator: #D4D4D4", - "light_vs": "keyword.operator: #000000", - "hc_black": "keyword.operator: #D4D4D4", - "dark_modern": "keyword.operator: #D4D4D4", - "hc_light": "keyword.operator: #000000", - "light_modern": "keyword.operator: #000000" + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "println!", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust meta.macro.rust entity.name.function.macro.rust", + "r": { + "dark_plus": "entity.name.function: #DCDCAA", + "light_plus": "entity.name.function: #795E26", + "dark_vs": "meta.embedded: #D4D4D4", + "light_vs": "meta.embedded: #000000", + "hc_black": "entity.name.function: #DCDCAA", + "dark_modern": "entity.name.function: #DCDCAA", + "hc_light": "entity.name.function: #5E2CBC", + "light_modern": "entity.name.function: #795E26" } }, { "c": "(", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r punctuation.section.parens.begin.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust punctuation.brackets.round.rust", "r": { "dark_plus": "meta.embedded: #D4D4D4", "light_plus": "meta.embedded: #000000", @@ -491,7 +701,7 @@ }, { "c": "\"", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r string.quoted.double.r punctuation.definition.string.begin.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust string.quoted.double.rust punctuation.definition.string.rust", "r": { "dark_plus": "string: #CE9178", "light_plus": "string: #A31515", @@ -505,7 +715,7 @@ }, { "c": "hello there!", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r string.quoted.double.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust string.quoted.double.rust", "r": { "dark_plus": "string: #CE9178", "light_plus": "string: #A31515", @@ -519,7 +729,7 @@ }, { "c": "\"", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r string.quoted.double.r punctuation.definition.string.end.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust string.quoted.double.rust punctuation.definition.string.rust", "r": { "dark_plus": "string: #CE9178", "light_plus": "string: #A31515", @@ -533,7 +743,7 @@ }, { "c": ")", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r punctuation.section.parens.end.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust punctuation.brackets.round.rust", "r": { "dark_plus": "meta.embedded: #D4D4D4", "light_plus": "meta.embedded: #000000", @@ -547,7 +757,7 @@ }, { "c": ";", - "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.r", + "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.rust punctuation.semi.rust", "r": { "dark_plus": "meta.embedded: #D4D4D4", "light_plus": "meta.embedded: #000000", @@ -588,7 +798,21 @@ } }, { - "c": "{.bash .cb.run}", + "c": "{.", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "bash", "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown", "r": { "dark_plus": "default: #D4D4D4", @@ -601,6 +825,48 @@ "light_modern": "default: #3B3B3B" } }, + { + "c": " ", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": ".cb.run", + "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.attributes.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, + { + "c": "}", + "t": "text.html.markdown markup.fenced_code.block.markdown", + "r": { + "dark_plus": "default: #D4D4D4", + "light_plus": "default: #000000", + "dark_vs": "default: #D4D4D4", + "light_vs": "default: #000000", + "hc_black": "default: #FFFFFF", + "dark_modern": "default: #CCCCCC", + "hc_light": "default: #292929", + "light_modern": "default: #3B3B3B" + } + }, { "c": "ls", "t": "text.html.markdown markup.fenced_code.block.markdown meta.embedded.block.shellscript meta.statement.shell meta.statement.command.shell meta.statement.command.name.shell entity.name.function.call.shell entity.name.command.shell",