ultraviolet 0.10.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. data/.gitmodules +3 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +28 -0
  4. data/Rakefile +18 -47
  5. data/Readme.md +89 -0
  6. data/bin/theme2latexrender +0 -0
  7. data/bin/theme2xhtmlrender +0 -0
  8. data/bin/uv +0 -0
  9. data/lib/uv.rb +78 -75
  10. data/lib/uv/render_processor.rb +128 -119
  11. data/lib/uv/utility.rb +62 -62
  12. data/lib/uv/version.rb +3 -0
  13. data/spec/spec_helper.rb +2 -0
  14. data/spec/ultraviolet_spec.rb +13 -0
  15. data/ultraviolet.gemspec +15 -0
  16. metadata +123 -271
  17. data/History.txt +0 -25
  18. data/Manifest.txt +0 -233
  19. data/README.txt +0 -52
  20. data/syntax/actionscript.syntax +0 -97
  21. data/syntax/active4d.syntax +0 -276
  22. data/syntax/active4d_html.syntax +0 -311
  23. data/syntax/active4d_ini.syntax +0 -50
  24. data/syntax/active4d_library.syntax +0 -21
  25. data/syntax/ada.syntax +0 -33
  26. data/syntax/antlr.syntax +0 -151
  27. data/syntax/apache.syntax +0 -191
  28. data/syntax/applescript.syntax +0 -384
  29. data/syntax/asp.syntax +0 -70
  30. data/syntax/asp_vb.net.syntax +0 -129
  31. data/syntax/bibtex.syntax +0 -151
  32. data/syntax/blog_html.syntax +0 -41
  33. data/syntax/blog_markdown.syntax +0 -42
  34. data/syntax/blog_text.syntax +0 -27
  35. data/syntax/blog_textile.syntax +0 -27
  36. data/syntax/build.syntax +0 -53
  37. data/syntax/bulletin_board.syntax +0 -287
  38. data/syntax/c++.syntax +0 -109
  39. data/syntax/c.syntax +0 -326
  40. data/syntax/cake.syntax +0 -55
  41. data/syntax/camlp4.syntax +0 -36
  42. data/syntax/cm.syntax +0 -32
  43. data/syntax/coldfusion.syntax +0 -119
  44. data/syntax/context_free.syntax +0 -176
  45. data/syntax/cs.syntax +0 -59
  46. data/syntax/css.syntax +0 -195
  47. data/syntax/css_experimental.syntax +0 -1925
  48. data/syntax/csv.syntax +0 -68
  49. data/syntax/d.syntax +0 -142
  50. data/syntax/diff.syntax +0 -81
  51. data/syntax/dokuwiki.syntax +0 -204
  52. data/syntax/dot.syntax +0 -47
  53. data/syntax/doxygen.syntax +0 -43
  54. data/syntax/dylan.syntax +0 -62
  55. data/syntax/eiffel.syntax +0 -78
  56. data/syntax/erlang.syntax +0 -922
  57. data/syntax/f-script.syntax +0 -80
  58. data/syntax/fortran.syntax +0 -141
  59. data/syntax/fxscript.syntax +0 -142
  60. data/syntax/greasemonkey.syntax +0 -34
  61. data/syntax/gri.syntax +0 -83
  62. data/syntax/groovy.syntax +0 -191
  63. data/syntax/gtd.syntax +0 -22
  64. data/syntax/gtdalt.syntax +0 -143
  65. data/syntax/haml.syntax +0 -88
  66. data/syntax/haskell.syntax +0 -88
  67. data/syntax/html-asp.syntax +0 -27
  68. data/syntax/html.syntax +0 -362
  69. data/syntax/html_django.syntax +0 -36
  70. data/syntax/html_for_asp.net.syntax +0 -424
  71. data/syntax/html_mason.syntax +0 -119
  72. data/syntax/html_rails.syntax +0 -40
  73. data/syntax/html_tcl.syntax +0 -26
  74. data/syntax/icalendar.syntax +0 -32
  75. data/syntax/inform.syntax +0 -48
  76. data/syntax/ini.syntax +0 -55
  77. data/syntax/installer_distribution_script.syntax +0 -77
  78. data/syntax/io.syntax +0 -81
  79. data/syntax/java.syntax +0 -211
  80. data/syntax/javaproperties.syntax +0 -20
  81. data/syntax/javascript.syntax +0 -256
  82. data/syntax/javascript_+_prototype.syntax +0 -72
  83. data/syntax/javascript_+_prototype_bracketed.syntax +0 -140
  84. data/syntax/jquery_javascript.syntax +0 -114
  85. data/syntax/json.syntax +0 -136
  86. data/syntax/languagedefinition.syntax +0 -708
  87. data/syntax/latex.syntax +0 -566
  88. data/syntax/latex_beamer.syntax +0 -41
  89. data/syntax/latex_log.syntax +0 -50
  90. data/syntax/latex_memoir.syntax +0 -64
  91. data/syntax/lexflex.syntax +0 -219
  92. data/syntax/lighttpd.syntax +0 -54
  93. data/syntax/lilypond.syntax +0 -492
  94. data/syntax/lisp.syntax +0 -61
  95. data/syntax/literate_haskell.syntax +0 -24
  96. data/syntax/logo.syntax +0 -29
  97. data/syntax/logtalk.syntax +0 -152
  98. data/syntax/lua.syntax +0 -86
  99. data/syntax/m.syntax +0 -142
  100. data/syntax/macports_portfile.syntax +0 -163
  101. data/syntax/mail.syntax +0 -118
  102. data/syntax/makefile.syntax +0 -36
  103. data/syntax/man.syntax +0 -17
  104. data/syntax/markdown.syntax +0 -543
  105. data/syntax/mediawiki.syntax +0 -567
  106. data/syntax/mel.syntax +0 -92
  107. data/syntax/mips.syntax +0 -66
  108. data/syntax/mod_perl.syntax +0 -50
  109. data/syntax/modula-3.syntax +0 -47
  110. data/syntax/moinmoin.syntax +0 -189
  111. data/syntax/mootools.syntax +0 -572
  112. data/syntax/movable_type.syntax +0 -162
  113. data/syntax/multimarkdown.syntax +0 -39
  114. data/syntax/objective-c++.syntax +0 -18
  115. data/syntax/objective-c.syntax +0 -233
  116. data/syntax/ocaml.syntax +0 -764
  117. data/syntax/ocamllex.syntax +0 -167
  118. data/syntax/ocamlyacc.syntax +0 -184
  119. data/syntax/opengl.syntax +0 -14
  120. data/syntax/pascal.syntax +0 -77
  121. data/syntax/perl.syntax +0 -1115
  122. data/syntax/php.syntax +0 -1253
  123. data/syntax/plain_text.syntax +0 -32
  124. data/syntax/pmwiki.syntax +0 -113
  125. data/syntax/postscript.syntax +0 -114
  126. data/syntax/processing.syntax +0 -106
  127. data/syntax/prolog.syntax +0 -40
  128. data/syntax/property_list.syntax +0 -635
  129. data/syntax/python.syntax +0 -868
  130. data/syntax/python_django.syntax +0 -21
  131. data/syntax/qmake_project.syntax +0 -114
  132. data/syntax/qt_c++.syntax +0 -26
  133. data/syntax/quake3_config.syntax +0 -32
  134. data/syntax/r.syntax +0 -81
  135. data/syntax/r_console.syntax +0 -16
  136. data/syntax/ragel.syntax +0 -201
  137. data/syntax/rd_r_documentation.syntax +0 -91
  138. data/syntax/regexp.syntax +0 -50
  139. data/syntax/regular_expressions_oniguruma.syntax +0 -107
  140. data/syntax/regular_expressions_python.syntax +0 -109
  141. data/syntax/release_notes.syntax +0 -46
  142. data/syntax/remind.syntax +0 -253
  143. data/syntax/restructuredtext.syntax +0 -250
  144. data/syntax/rez.syntax +0 -80
  145. data/syntax/ruby.syntax +0 -1035
  146. data/syntax/ruby_experimental.syntax +0 -145
  147. data/syntax/ruby_on_rails.syntax +0 -88
  148. data/syntax/s5.syntax +0 -69
  149. data/syntax/scheme.syntax +0 -347
  150. data/syntax/scilab.syntax +0 -41
  151. data/syntax/setext.syntax +0 -147
  152. data/syntax/shell-unix-generic.syntax +0 -384
  153. data/syntax/slate.syntax +0 -149
  154. data/syntax/smarty.syntax +0 -63
  155. data/syntax/sql.syntax +0 -237
  156. data/syntax/sql_rails.syntax +0 -18
  157. data/syntax/ssh-config.syntax +0 -33
  158. data/syntax/standard_ml.syntax +0 -121
  159. data/syntax/strings_file.syntax +0 -39
  160. data/syntax/subversion_commit_message.syntax +0 -36
  161. data/syntax/sweave.syntax +0 -84
  162. data/syntax/swig.syntax +0 -57
  163. data/syntax/tcl.syntax +0 -152
  164. data/syntax/template_toolkit.syntax +0 -121
  165. data/syntax/tex.syntax +0 -86
  166. data/syntax/tex_math.syntax +0 -49
  167. data/syntax/textile.syntax +0 -215
  168. data/syntax/tsv.syntax +0 -50
  169. data/syntax/twiki.syntax +0 -241
  170. data/syntax/txt2tags.syntax +0 -79
  171. data/syntax/vectorscript.syntax +0 -57
  172. data/syntax/xhtml_1.0.syntax +0 -4027
  173. data/syntax/xml.syntax +0 -180
  174. data/syntax/xml_strict.syntax +0 -92
  175. data/syntax/xsl.syntax +0 -60
  176. data/syntax/yaml.syntax +0 -160
  177. data/syntax/yui_javascript.syntax +0 -176
  178. data/test/test_uv.rb +0 -0
@@ -1,163 +0,0 @@
1
- ---
2
- name: MacPorts Portfile
3
- fileTypes: []
4
-
5
- scopeName: source.tcl.macports
6
- repository:
7
- escape:
8
- name: constant.character.escape.tcl
9
- match: \\(\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\n)
10
- comment: imported from Tcl grammar
11
- bare-string:
12
- endCaptures:
13
- "1":
14
- name: invalid.illegal.tcl
15
- begin: (?:^|(?<=\s))"
16
- end: "\"(\\S*)"
17
- patterns:
18
- - include: "#escape"
19
- - include: "#variable"
20
- comment: imported from Tcl grammar
21
- braces:
22
- endCaptures:
23
- "1":
24
- name: invalid.illegal.tcl
25
- begin: (?:^|(?<=\s))\{
26
- end: \}(\S*)
27
- patterns:
28
- - name: constant.character.escape.tcl
29
- match: \\[{}\n]
30
- - include: "#inner-braces"
31
- comment: imported from Tcl grammar
32
- inner-braces:
33
- begin: \{
34
- end: \}
35
- patterns:
36
- - name: constant.character.escape.tcl
37
- match: \\[{}\n]
38
- - include: "#inner-braces"
39
- comment: imported from Tcl grammar
40
- variable:
41
- name: variable.other.tcl
42
- captures:
43
- "1":
44
- name: punctuation.definition.variable.tcl
45
- match: (\$)([a-zA-Z0-9_:]+(\([^\)]+\))?|\{[^\}]*\})
46
- comment: imported from Tcl grammar
47
- string:
48
- name: string.quoted.double.tcl
49
- begin: (?:^|(?<=\s))(?=")
50
- applyEndPatternLast: 1
51
- end: ""
52
- patterns:
53
- - include: "#bare-string"
54
- comment: imported from Tcl grammar
55
- embedded:
56
- name: source.tcl.embedded
57
- endCaptures:
58
- "0":
59
- name: punctuation.section.embedded.end.tcl
60
- begin: \[
61
- beginCaptures:
62
- "0":
63
- name: punctuation.section.embedded.begin.tcl
64
- end: \]
65
- patterns:
66
- - include: source.tcl.macports
67
- comment: imported from Tcl grammar
68
- uuid: 33EC56FE-2BD4-4B73-A6CD-73395F4E5E58
69
- foldingStartMarker: \{\s*$
70
- patterns:
71
- - begin: ^\s*(PortGroup)\s+ruby(?!\S)
72
- beginCaptures:
73
- "1":
74
- name: keyword.other.tcl.macports
75
- end: $.^
76
- patterns:
77
- - include: $base
78
- - name: keyword.other.tcl.macports
79
- match: ^\s*ruby\.setup(?!\S)
80
- comment: special case for ruby PortGroup
81
- - begin: ^\s*(PortGroup)\s+perl5(?!\S)
82
- beginCaptures:
83
- "1":
84
- name: keyword.other.tcl.macports
85
- end: $.^
86
- patterns:
87
- - include: $base
88
- - name: keyword.other.tcl.macports
89
- match: ^\s*perl5\.setup(?!\S)
90
- comment: special case for the perl5 PortGroup
91
- - captures:
92
- "1":
93
- name: keyword.other.tcl.macports
94
- match: ^\s*(PortSystem|PortGroup)(?!\S)
95
- comment: Base commands
96
- - captures:
97
- "1":
98
- name: keyword.other.tcl.macports
99
- match: ^\s*(use_(?:configure|build|automake|autoconf|xmkmf|libtool|destroot|extract|cvs|svn|patch|test)|(?:configure|build|automake|autoconf|xmkmf|libtool|destroot|extract|cvs|svn|patch|test)\.(?:dir|(?:pre_|post_)?args|env|type|cmd)(?:-(?:delete|append))?)(?!\S)
100
- comment: Procs defined with the `commands` keyword (ignore use_option-{delete,append} as it is useless)
101
- - captures:
102
- "1":
103
- name: keyword.other.tcl.macports
104
- match: ^\s*((?:(?:pre|post)-)?(?:activate|build|checksum|clean|configure|destroot|distcheck|extract|fetch|install|livecheck|main|mirror|patch|pkg|mpkg|submit|test))(?!\S)
105
- comment: Procs defined with the `target_provides` keyword
106
- - captures:
107
- "1":
108
- name: keyword.other.tcl.macports
109
- match: ^\s*((?:build\.target|categories|checksum\.skip|checksums|cvs\.(?:date|module|password|root|tag)|default_variants|depends_(?:build|lib|run)|destroot\.(?:clean|destdir|keepdirs|target|umask)|dist_subdir|distcheck\.check|distfiles|distname|distpath|epoch|extract\.(?:only|suffix)|fetch\.(?:password|type|use_epsv|user)|filesdir|gnustep\.domain|homepage|install\.(?:group|user)|libpath|livecheck\.(?:check|md5|name|distname|regex|url|version)|maintainers|(?:master|patch)_sites(?:\.mirror_subdir)?|name|os\.(?:arch|endian|platform|version)|patchfiles|platforms|portdbpath|portname|prefix|revision|sources_conf|startupitem\.(?:create|executable|init|logevents|logfile|name|pidfile|requires|restart|start|stop|type)|svn\.(?:tag|url)|test\.(?:run|target)|use_bzip2|use_zip|version|workdir|worksrcdir|xcode\.(?:build\.settings|configuration|destroot\.(?:path|settings|type)|project|target)|zope\.need_subdir)(?:-(?:delete|append))?)(?!\S)
110
- comment: Procs defined with the `options` keyword
111
- - begin: ^\s*((?:long_)?description)(?!\S)
112
- contentName: string.unquoted.tcl.macports
113
- beginCaptures:
114
- "1":
115
- name: keyword.other.tcl.macports
116
- end: "[\\n;]"
117
- patterns:
118
- - include: "#escape"
119
- - include: "#string"
120
- - include: "#braces"
121
- - include: "#embedded"
122
- - include: "#variable"
123
- comment: special-case description and long_description for backslash-newline escapes and string scoping
124
- - name: meta.variant.tcl.macports
125
- captures:
126
- "1":
127
- name: keyword.other.variant.tcl.macports
128
- begin: ^(variant)(?!\S)
129
- end: \n
130
- patterns:
131
- - name: keyword.other.variant.tcl.macports
132
- match: (?<=\s)(?:provides|requires|conflicts)(?!\S)
133
- - name: entity.name.function.variant.tcl.macports
134
- match: (?<=\s)([\w-]+)
135
- - endCaptures:
136
- "1":
137
- name: punctuation.terminator.variant.tcl.macports
138
- begin: (\{)
139
- beginCaptures:
140
- "1":
141
- name: punctuation.section.variant.tcl.macports
142
- end: (\})
143
- patterns:
144
- - include: source.tcl.macports
145
- - name: meta.variant.platform.tcl.macports
146
- endCaptures:
147
- "1":
148
- name: punctuation.terminator.variant.platform.tcl.macports
149
- begin: ^(platform)(?:\s+(\S+))?(?:\s+(\S+))?(?:\s+(\S+))?\s+(\{)
150
- beginCaptures:
151
- "1":
152
- name: keyword.other.variant.platform.tcl.macports
153
- "2":
154
- name: entity.name.function.variant.platform.tcl.macports
155
- "5":
156
- name: punctuation.section.variant.platform.tcl.macports
157
- end: (\})
158
- patterns:
159
- - include: source.tcl.macports
160
- - name: keyword.other.tcl.macports
161
- match: (?<=^|[\[{;])\s*(adduser|addgroup|dirSize|binaryInPath|archiveTypeIsSupported|variant_isset|xinstall|system|reinplace|flock|readdir|strsed|mkstemp|mktemp|existsuser|existsgroup|nextuid|nextgid|md5|find|filemap|rpm-vercomp|rmd160|sha1|compat|umask|sudo|mkfifo|unixsocketpair|mkchannelfromfd|pipe|curl|readline|rl_history|getuid|geteuid|setuid|seteuid|name_to_uid|uid_to_name|ldelete|delete|include)\b
162
- - include: source.tcl
163
- foldingStopMarker: ^\s*\}
@@ -1,118 +0,0 @@
1
- ---
2
- name: Mail
3
- fileTypes:
4
- - mail
5
- firstLineMatch: "^From: .*(?=\\w+@[\\w-]+\\.\\w+)"
6
- scopeName: text.mail.markdown
7
- repository:
8
- reference:
9
- name: constant.other.reference.mail
10
- captures:
11
- "0":
12
- name: punctuation.definition.constant.mail
13
- begin: <
14
- end: ">"
15
- patterns:
16
- - include: "#string"
17
- - include: "#comment"
18
- - include: "#domain_literal"
19
- - include: "#atom"
20
- encoded_text:
21
- name: meta.encoded-text.mail
22
- captures:
23
- "1":
24
- name: constant.other.charset.mail
25
- "2":
26
- name: constant.other.encoding.mail
27
- match: =\?(.*?)(?:\*[^?]+)?\?([QB])\?(.*?)\?=
28
- any:
29
- patterns:
30
- - include: "#group"
31
- - include: "#reference"
32
- - include: "#string"
33
- - include: "#comment"
34
- - include: "#domain_literal"
35
- - include: "#atom"
36
- domain_literal:
37
- name: meta.domain-literal.mail
38
- begin: \[
39
- end: \]
40
- patterns:
41
- - include: "#quote_pair"
42
- - include: "#group"
43
- - include: "#reference"
44
- - include: "#string"
45
- - include: "#comment"
46
- - include: "#atom"
47
- quote_pair:
48
- name: constant.other.escape.mail
49
- match: \\.
50
- group:
51
- name: meta.group.mail
52
- begin: ":(?=.*;)"
53
- end: ;
54
- patterns:
55
- - include: "#reference"
56
- - include: "#string"
57
- - include: "#comment"
58
- - include: "#domain_literal"
59
- - include: "#atom"
60
- comment: "this is to group addresses, RFC822 says that these \xE2\x80\x9Cmust occur in matched pairs,\xE2\x80\x9D but e.g. the date header uses : as a time separator."
61
- comment:
62
- name: comment.line.parentheses.mail
63
- captures:
64
- "0":
65
- name: punctuation.definition.comment.mail
66
- begin: \(
67
- end: \)
68
- patterns:
69
- - include: "#quote_pair"
70
- - include: "#comment"
71
- string:
72
- name: string.quoted.double.mail
73
- endCaptures:
74
- "0":
75
- name: punctuation.definition.string.end.mail
76
- begin: "\""
77
- beginCaptures:
78
- "0":
79
- name: punctuation.definition.string.begin.mail
80
- end: "\""
81
- patterns:
82
- - include: "#quote_pair"
83
- - include: "#encoded_text"
84
- atom:
85
- name: string.unquoted.atom.mail
86
- match: "[^ \\t\\v\\n()<>@,;:\\\\\".\\[\\]]+"
87
- uuid: 15615A0C-37B0-4B3F-9105-53ED536AFBB4
88
- patterns:
89
- - name: meta.header.mail
90
- begin: ((?i:subject))(:)\s*
91
- contentName: entity.name.section.mail
92
- beginCaptures:
93
- "1":
94
- name: keyword.other.mail
95
- "2":
96
- name: punctuation.separator.key-value.mail
97
- end: ^(?![ \t\v])
98
- - name: meta.header.mail
99
- begin: ([\x{21}-\x{39}\x{3B}-\x{7E}]+)(:)\s*
100
- beginCaptures:
101
- "1":
102
- name: keyword.other.mail
103
- "2":
104
- name: punctuation.separator.key-value.mail
105
- end: ^(?![ \t\v])
106
- patterns:
107
- - include: "#string"
108
- - include: "#comment"
109
- - include: "#reference"
110
- - include: "#atom"
111
- - name: text.html.markdown
112
- begin: ^(?![A-Za-z0-9]+:)
113
- end: ^(?=not)possible$
114
- patterns:
115
- - name: meta.separator.signature.mail
116
- match: ^-- $\n
117
- - include: text.html.markdown
118
- keyEquivalent: ^~M
@@ -1,36 +0,0 @@
1
- ---
2
- name: Makefile
3
- fileTypes:
4
- - GNUmakefile
5
- - makefile
6
- - Makefile
7
- - OCamlMakefile
8
- scopeName: source.makefile
9
- uuid: FF1825E8-6B1C-11D9-B883-000D93589AF6
10
- patterns:
11
- - name: variable.other.makefile
12
- begin: ^(\w|[-_])+\s*\??=
13
- end: $
14
- patterns:
15
- - match: \\\n
16
- - name: string.interpolated.backtick.makefile
17
- begin: `
18
- end: `
19
- patterns:
20
- - include: source.shell
21
- - name: comment.line.number-sign.makefile
22
- begin: "#"
23
- beginCaptures:
24
- "0":
25
- name: punctuation.definition.comment.makefile
26
- end: $\n?
27
- patterns:
28
- - name: punctuation.separator.continuation.makefile
29
- match: (?<!\\)\\$\n
30
- - name: keyword.control.makefile
31
- match: ^(\s*)\b(\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)\b
32
- - name: meta.function.makefile
33
- captures:
34
- "1":
35
- name: entity.name.function.makefile
36
- match: ^([^\t ]+:(?!\=))\s*.*
@@ -1,17 +0,0 @@
1
- ---
2
- name: Man
3
- fileTypes:
4
- - man
5
- scopeName: text.man
6
- uuid: E8BAC30A-16BF-498D-941D-73FBAED37891
7
- foldingStartMarker: ^[A-Z](?:(?:\S+\s\S+)+|\S+)$
8
- patterns:
9
- - name: markup.heading.man
10
- match: ^[A-Z](?:(?:\S+\s\S+)+|\S+)$
11
- - name: markup.underline.link.man
12
- match: ((https?|ftp|file|txmt)://|mailto:)[-:@a-zA-Z0-9_.~%+/?=&#]+(?<![.?:])
13
- - name: markup.underline.link.internal.man
14
- match: ([\w\.]+\(\d[a-z]?\))
15
- - name: meta.foldingStopMarker.man
16
- match: ^_{2,}$
17
- foldingStopMarker: ^_{2,}$
@@ -1,543 +0,0 @@
1
- ---
2
- name: Markdown
3
- fileTypes:
4
- - markdown
5
- - mdown
6
- - markdn
7
- - md
8
- scopeName: text.html.markdown
9
- repository:
10
- image-inline:
11
- name: meta.image.inline.markdown
12
- captures:
13
- "6":
14
- name: punctuation.definition.metadata.markdown
15
- "11":
16
- name: punctuation.definition.string.markdown
17
- "7":
18
- name: punctuation.definition.link.markdown
19
- "12":
20
- name: punctuation.definition.string.markdown
21
- "8":
22
- name: markup.underline.link.image.markdown
23
- "13":
24
- name: string.other.link.description.title.markdown
25
- "9":
26
- name: punctuation.definition.link.markdown
27
- "14":
28
- name: punctuation.definition.string.markdown
29
- "15":
30
- name: punctuation.definition.string.markdown
31
- "16":
32
- name: punctuation.definition.metadata.markdown
33
- "1":
34
- name: punctuation.definition.string.begin.markdown
35
- "2":
36
- name: string.other.link.description.markdown
37
- "3":
38
- name: punctuation.definition.string.end.markdown
39
- "10":
40
- name: string.other.link.description.title.markdown
41
- "5":
42
- name: invalid.illegal.whitespace.markdown
43
- match: "(?x:\n\
44
- \t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\
45
- \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
46
- \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
47
- \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
48
- \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
49
- \t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
50
- \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
51
- \t\t\t\t\t(?:\n\
52
- \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
53
- \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
54
- \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
55
- \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
56
- \t\t\t\t(\\))\n\
57
- \t\t\t )"
58
- image-ref:
59
- name: meta.image.reference.markdown
60
- captures:
61
- "6":
62
- name: constant.other.reference.link.markdown
63
- "7":
64
- name: punctuation.definition.constant.markdown
65
- "1":
66
- name: punctuation.definition.string.begin.markdown
67
- "2":
68
- name: string.other.link.description.markdown
69
- "4":
70
- name: punctuation.definition.string.begin.markdown
71
- "5":
72
- name: punctuation.definition.constant.markdown
73
- match: \!(\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\])
74
- escape:
75
- name: constant.character.escape.markdown
76
- match: \\[-`*_#+.!(){}\[\]\\>]
77
- bracket:
78
- name: meta.other.valid-bracket.markdown
79
- match: <(?![a-z/?\$!])
80
- comment: "\n\
81
- \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
82
- \t\t\t\tHTML grammar will not mark it up as invalid.\n\
83
- \t\t\t"
84
- list-paragraph:
85
- patterns:
86
- - name: meta.paragraph.list.markdown
87
- begin: \G\s+(?=\S)
88
- end: ^\s*$
89
- patterns:
90
- - include: "#inline"
91
- link-ref-literal:
92
- name: meta.link.reference.literal.markdown
93
- captures:
94
- "6":
95
- name: punctuation.definition.constant.end.markdown
96
- "1":
97
- name: punctuation.definition.string.begin.markdown
98
- "2":
99
- name: string.other.link.title.markdown
100
- "4":
101
- name: punctuation.definition.string.end.markdown
102
- "5":
103
- name: punctuation.definition.constant.begin.markdown
104
- match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\])
105
- link-email:
106
- name: meta.link.email.lt-gt.markdown
107
- captures:
108
- "1":
109
- name: punctuation.definition.link.markdown
110
- "2":
111
- name: markup.underline.link.markdown
112
- "4":
113
- name: punctuation.definition.link.markdown
114
- match: (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>)
115
- inline:
116
- patterns:
117
- - include: "#escape"
118
- - include: "#ampersand"
119
- - include: "#bracket"
120
- - include: "#raw"
121
- - include: "#bold"
122
- - include: "#italic"
123
- - include: "#line-break"
124
- - include: "#image-inline"
125
- - include: "#link-inline"
126
- - include: "#link-inet"
127
- - include: "#link-email"
128
- - include: "#image-ref"
129
- - include: "#link-ref-literal"
130
- - include: "#link-ref"
131
- block_quote:
132
- name: markup.quote.markdown
133
- begin: \G[ ]{,3}(>)(?!$)[ ]?
134
- beginCaptures:
135
- "1":
136
- name: punctuation.definition.blockquote.markdown
137
- end: |-
138
- (?x)^
139
- (?= \s*$
140
- | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
141
- | [ ]{,3}>.
142
- )
143
- patterns:
144
- - begin: |-
145
- (?x)\G
146
- (?= [ ]{,3}>.
147
- )
148
- end: ^
149
- patterns:
150
- - include: "#block_quote"
151
- - begin: |-
152
- (?x)\G
153
- (?= ([ ]{4}|\t)
154
- | [#]{1,6}\s*+
155
- | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
156
- )
157
- applyEndPatternLast: 1
158
- end: ^
159
- patterns:
160
- - include: "#block_raw"
161
- - include: "#heading"
162
- - include: "#separator"
163
- - begin: |-
164
- (?x)\G
165
- (?! $
166
- | [ ]{,3}>.
167
- | ([ ]{4}|\t)
168
- | [#]{1,6}\s*+
169
- | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
170
- )
171
- end: $|(?<=\n)
172
- patterns:
173
- - include: "#inline"
174
- comment: "\n\
175
- \t\t\t\tWe terminate the block quote when seeing an empty line, a\n\
176
- \t\t\t\tseparator or a line with leading > characters. The latter is\n\
177
- \t\t\t\tto \xE2\x80\x9Creset\xE2\x80\x9D the quote level for quoted lines.\n\
178
- \t\t\t"
179
- link-ref:
180
- name: meta.link.reference.markdown
181
- captures:
182
- "6":
183
- name: constant.other.reference.link.markdown
184
- "7":
185
- name: punctuation.definition.constant.end.markdown
186
- "1":
187
- name: punctuation.definition.string.begin.markdown
188
- "2":
189
- name: string.other.link.title.markdown
190
- "4":
191
- name: punctuation.definition.string.end.markdown
192
- "5":
193
- name: punctuation.definition.constant.begin.markdown
194
- match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\])
195
- block_raw:
196
- name: markup.raw.block.markdown
197
- match: \G([ ]{4}|\t).*$\n?
198
- separator:
199
- name: meta.separator.markdown
200
- match: \G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?
201
- link-inline:
202
- name: meta.link.inline.markdown
203
- captures:
204
- "6":
205
- name: punctuation.definition.metadata.markdown
206
- "11":
207
- name: punctuation.definition.string.begin.markdown
208
- "7":
209
- name: punctuation.definition.link.markdown
210
- "12":
211
- name: punctuation.definition.string.end.markdown
212
- "8":
213
- name: markup.underline.link.markdown
214
- "13":
215
- name: string.other.link.description.title.markdown
216
- "9":
217
- name: punctuation.definition.link.markdown
218
- "14":
219
- name: punctuation.definition.string.begin.markdown
220
- "15":
221
- name: punctuation.definition.string.end.markdown
222
- "16":
223
- name: punctuation.definition.metadata.markdown
224
- "1":
225
- name: punctuation.definition.string.begin.markdown
226
- "2":
227
- name: string.other.link.title.markdown
228
- "4":
229
- name: punctuation.definition.string.end.markdown
230
- "10":
231
- name: string.other.link.description.title.markdown
232
- "5":
233
- name: invalid.illegal.whitespace.markdown
234
- match: "(?x:\n\
235
- \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
236
- \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
237
- \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
238
- \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
239
- \t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\
240
- \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
241
- \t\t\t\t\t(?:\n\
242
- \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
243
- \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
244
- \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
245
- \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
246
- \t\t\t\t(\\))\n\
247
- \t\t\t )"
248
- bold:
249
- name: markup.bold.markdown
250
- captures:
251
- "1":
252
- name: punctuation.definition.bold.markdown
253
- begin: "(?x)\n\
254
- \t\t\t\t\t\t(\\*\\*|__)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\
255
- \t\t\t\t\t\t(?=\n\
256
- \t\t\t\t\t\t\t(\n\
257
- \t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\
258
- \t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\
259
- \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\
260
- \t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\
261
- \t\t\t\t\t\t\t | \\[\n\
262
- \t\t\t\t\t\t\t\t(\t\t\t\t\n\
263
- \t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\
264
- \t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\
265
- \t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\
266
- \t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\
267
- \t\t\t\t\t\t\t\t )*+\n\
268
- \t\t\t\t\t\t\t\t\t\\]\n\
269
- \t\t\t\t\t\t\t\t\t(\n\
270
- \t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\
271
- \t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\
272
- \t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\
273
- \t\t\t\t\t\t\t\t\t\t)\n\
274
- \t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\
275
- \t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\
276
- \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
277
- \t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\
278
- \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
279
- \t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\
280
- \t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\
281
- \t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\
282
- \t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\
283
- \t\t\t\t\t\t\t\t\t\t\t\t)?\n\
284
- \t\t\t\t\t\t\t\t\t\t\t\\)\n\
285
- \t\t\t\t\t\t\t\t\t\t)\n\
286
- \t\t\t\t\t\t\t\t\t)\n\
287
- \t\t\t\t\t\t\t\t)\n\
288
- \t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\
289
- \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\
290
- \t\t\t\t\t\t\t)++\n\
291
- \t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\
292
- \t\t\t\t\t\t)\n\
293
- \t\t\t\t\t"
294
- end: (?<=\S)(\1)
295
- patterns:
296
- - begin: (?=<[^>]*?>)
297
- applyEndPatternLast: 1
298
- end: (?<=>)
299
- patterns:
300
- - include: text.html.basic
301
- - include: "#escape"
302
- - include: "#ampersand"
303
- - include: "#bracket"
304
- - include: "#raw"
305
- - include: "#italic"
306
- - include: "#image-inline"
307
- - include: "#link-inline"
308
- - include: "#link-inet"
309
- - include: "#link-email"
310
- - include: "#image-ref"
311
- - include: "#link-ref-literal"
312
- - include: "#link-ref"
313
- heading:
314
- name: markup.heading.markdown
315
- captures:
316
- "1":
317
- name: punctuation.definition.heading.markdown
318
- begin: \G(#{1,6})(?!#)\s*(?=\S)
319
- contentName: entity.name.section.markdown
320
- end: \s*(#*)$\n?
321
- patterns:
322
- - include: "#inline"
323
- link-inet:
324
- name: meta.link.inet.markdown
325
- captures:
326
- "1":
327
- name: punctuation.definition.link.markdown
328
- "2":
329
- name: markup.underline.link.markdown
330
- "3":
331
- name: punctuation.definition.link.markdown
332
- match: (<)((?:https?|ftp)://.*?)(>)
333
- raw:
334
- name: markup.raw.inline.markdown
335
- captures:
336
- "1":
337
- name: punctuation.definition.raw.markdown
338
- "3":
339
- name: punctuation.definition.raw.markdown
340
- match: (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1)
341
- italic:
342
- name: markup.italic.markdown
343
- captures:
344
- "1":
345
- name: punctuation.definition.italic.markdown
346
- begin: "(?x)\n\
347
- \t\t\t\t\t\t(\\*|_)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\
348
- \t\t\t\t\t\t(?=\n\
349
- \t\t\t\t\t\t\t(\n\
350
- \t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\
351
- \t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\
352
- \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\
353
- \t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\
354
- \t\t\t\t\t\t\t | \\[\n\
355
- \t\t\t\t\t\t\t\t(\t\t\t\t\n\
356
- \t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\
357
- \t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\
358
- \t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\
359
- \t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\
360
- \t\t\t\t\t\t\t\t )*+\n\
361
- \t\t\t\t\t\t\t\t\t\\]\n\
362
- \t\t\t\t\t\t\t\t\t(\n\
363
- \t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\
364
- \t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\
365
- \t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\
366
- \t\t\t\t\t\t\t\t\t\t)\n\
367
- \t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\
368
- \t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\
369
- \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
370
- \t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\
371
- \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
372
- \t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\
373
- \t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\
374
- \t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\
375
- \t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\
376
- \t\t\t\t\t\t\t\t\t\t\t\t)?\n\
377
- \t\t\t\t\t\t\t\t\t\t\t\\)\n\
378
- \t\t\t\t\t\t\t\t\t\t)\n\
379
- \t\t\t\t\t\t\t\t\t)\n\
380
- \t\t\t\t\t\t\t\t)\n\
381
- \t\t\t\t\t\t\t | \\1\\1\t\t\t\t\t\t\t\t# Must be bold closer\n\
382
- \t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\
383
- \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\
384
- \t\t\t\t\t\t\t)++\n\
385
- \t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\
386
- \t\t\t\t\t\t)\n\
387
- \t\t\t\t\t"
388
- end: (?<=\S)(\1)((?!\1)|(?=\1\1))
389
- patterns:
390
- - begin: (?=<[^>]*?>)
391
- applyEndPatternLast: 1
392
- end: (?<=>)
393
- patterns:
394
- - include: text.html.basic
395
- - include: "#escape"
396
- - include: "#ampersand"
397
- - include: "#bracket"
398
- - include: "#raw"
399
- - include: "#bold"
400
- - include: "#image-inline"
401
- - include: "#link-inline"
402
- - include: "#link-inet"
403
- - include: "#link-email"
404
- - include: "#image-ref"
405
- - include: "#link-ref-literal"
406
- - include: "#link-ref"
407
- line-break:
408
- name: meta.dummy.line-break
409
- match: " {2,}$"
410
- ampersand:
411
- name: meta.other.valid-ampersand.markdown
412
- match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"
413
- comment: "\n\
414
- \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
415
- \t\t\t\tHTML grammar will not mark it up as invalid.\n\
416
- \t\t\t"
417
- uuid: 0A1D9874-B448-11D9-BD50-000D93B6E43C
418
- foldingStartMarker: |-
419
- (?x)
420
- (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
421
- |<!--(?!.*-->)
422
- |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
423
- )
424
- patterns:
425
- - name: meta.block-level.markdown
426
- begin: |-
427
- (?x)^
428
- (?= [ ]{,3}>.
429
- | ([ ]{4}|\t)
430
- | [#]{1,6}\s*+
431
- | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
432
- )
433
- end: |-
434
- (?x)^
435
- (?! [ ]{,3}>.
436
- | ([ ]{4}|\t)
437
- | [#]{1,6}\s*+
438
- | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
439
- )
440
- patterns:
441
- - include: "#block_quote"
442
- - include: "#block_raw"
443
- - include: "#heading"
444
- - include: "#separator"
445
- comment: "\n\
446
- \t\t\t\tWe could also use an empty end match and set\n\
447
- \t\t\t\tapplyEndPatternLast, but then we must be sure that the begin\n\
448
- \t\t\t\tpattern will only match stuff matched by the sub-patterns.\n\
449
- \t\t\t"
450
- - name: markup.list.unnumbered
451
- captures:
452
- "1":
453
- name: punctuation.definition.list_item.markdown
454
- begin: ^[ ]{0,3}([*+-])(?=\s)
455
- end: ^(?=\S)
456
- patterns:
457
- - include: "#list-paragraph"
458
- - name: markup.list.numbered
459
- captures:
460
- "1":
461
- name: punctuation.definition.list_item.markdown
462
- begin: ^[ ]{0,3}[0-9]+(\.)(?=\s)
463
- end: ^(?=\S)
464
- patterns:
465
- - include: "#list-paragraph"
466
- - name: meta.disable-markdown
467
- begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)(?!.*?</\1>)
468
- end: (?<=^</\1>$\n)
469
- patterns:
470
- - include: text.html.basic
471
- comment: "\n\
472
- \t\t\t\tMarkdown formatting is disabled inside block-level tags.\n\
473
- \t\t\t"
474
- - name: meta.disable-markdown
475
- begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)
476
- end: $\n?
477
- patterns:
478
- - include: text.html.basic
479
- comment: Same rule but for one line disables.
480
- - name: meta.link.reference.def.markdown
481
- captures:
482
- "6":
483
- name: markup.underline.link.markdown
484
- "11":
485
- name: string.other.link.description.title.markdown
486
- "7":
487
- name: punctuation.definition.link.markdown
488
- "12":
489
- name: punctuation.definition.string.begin.markdown
490
- "8":
491
- name: string.other.link.description.title.markdown
492
- "13":
493
- name: punctuation.definition.string.end.markdown
494
- "9":
495
- name: punctuation.definition.string.begin.markdown
496
- "1":
497
- name: punctuation.definition.constant.markdown
498
- "2":
499
- name: constant.other.reference.link.markdown
500
- "3":
501
- name: punctuation.definition.constant.markdown
502
- "4":
503
- name: punctuation.separator.key-value.markdown
504
- "10":
505
- name: punctuation.definition.string.end.markdown
506
- "5":
507
- name: punctuation.definition.link.markdown
508
- match: "(?x:\n\
509
- \t\t\t\t\\s*\t\t\t\t\t\t# Leading whitespace\n\
510
- \t\t\t\t(\\[)(.+?)(\\])(:)\t\t# Reference name\n\
511
- \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
512
- \t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
513
- \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
514
- \t\t\t\t(?:\n\
515
- \t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in quotes\xE2\x80\xA6\n\
516
- \t\t\t\t\t| ((\").+?(\"))\t\t# or in parens.\n\
517
- \t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
518
- \t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
519
- \t\t\t\t$\n\
520
- \t\t\t)"
521
- - name: meta.paragraph.markdown
522
- begin: ^(?=\S)(?![=-]{3,}(?=$))
523
- end: ^(?:\s*$|(?=[ ]{,3}>.))|(?=[ \t]*\n)(?<=^===|^====|=====|^---|^----|-----)[ \t]*\n
524
- patterns:
525
- - include: "#inline"
526
- - include: text.html.basic
527
- - name: markup.heading.1.markdown
528
- captures:
529
- "1":
530
- name: punctuation.definition.heading.markdown
531
- match: ^(={3,})(?=[ \t]*$)
532
- - name: markup.heading.2.markdown
533
- captures:
534
- "1":
535
- name: punctuation.definition.heading.markdown
536
- match: ^(-{3,})(?=[ \t]*$)
537
- foldingStopMarker: |-
538
- (?x)
539
- (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
540
- |^\s*-->
541
- |(^|\s)\}
542
- )
543
- keyEquivalent: ^~M