Skip to content

Commit e420984

Browse files
authored
[Markdown] Add GitHub Alerts syntax (#3892)
* [Markdown] Add GitHub Alerts syntax Resolves #3891 * [Markdown] Exclude block quote headings from symbol lists Block quotes may contain headings, which are not related with normal documentation structure. Thus exclude them from symbol lists and index.
1 parent ba620ca commit e420984

File tree

3 files changed

+275
-1
lines changed

3 files changed

+275
-1
lines changed

Markdown/Markdown.sublime-syntax

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,56 @@ contexts:
354354

355355
block-quotes:
356356
# https://spec.commonmark.org/0.30/#block-quotes
357+
- match: '[ \t]{,3}(>)[ ]?((\[)!CAUTION(\]))'
358+
captures:
359+
1: punctuation.definition.blockquote.markdown
360+
2: markup.heading.alert.caution.markdown
361+
3: punctuation.definition.heading.begin.markdown
362+
4: punctuation.definition.heading.end.markdown
363+
push:
364+
- block-quote-caution-meta
365+
- block-quote-body
366+
- block-quote-punctuation-body
367+
- match: '[ \t]{,3}(>)[ ]?((\[)!WARNING(\]))'
368+
captures:
369+
1: punctuation.definition.blockquote.markdown
370+
2: markup.heading.alert.warning.markdown
371+
3: punctuation.definition.heading.begin.markdown
372+
4: punctuation.definition.heading.end.markdown
373+
push:
374+
- block-quote-warning-meta
375+
- block-quote-body
376+
- block-quote-punctuation-body
377+
- match: '[ \t]{,3}(>)[ ]?((\[)!IMPORTANT(\]))'
378+
captures:
379+
1: punctuation.definition.blockquote.markdown
380+
2: markup.heading.alert.important.markdown
381+
3: punctuation.definition.heading.begin.markdown
382+
4: punctuation.definition.heading.end.markdown
383+
push:
384+
- block-quote-important-meta
385+
- block-quote-body
386+
- block-quote-punctuation-body
387+
- match: '[ \t]{,3}(>)[ ]?((\[)!NOTE(\]))'
388+
captures:
389+
1: punctuation.definition.blockquote.markdown
390+
2: markup.heading.alert.note.markdown
391+
3: punctuation.definition.heading.begin.markdown
392+
4: punctuation.definition.heading.end.markdown
393+
push:
394+
- block-quote-note-meta
395+
- block-quote-body
396+
- block-quote-punctuation-body
397+
- match: '[ \t]{,3}(>)[ ]?((\[)!TIP(\]))'
398+
captures:
399+
1: punctuation.definition.blockquote.markdown
400+
2: markup.heading.alert.tip.markdown
401+
3: punctuation.definition.heading.begin.markdown
402+
4: punctuation.definition.heading.end.markdown
403+
push:
404+
- block-quote-tip-meta
405+
- block-quote-body
406+
- block-quote-punctuation-body
357407
- match: '[ \t]{,3}(>)[ ]?'
358408
captures:
359409
1: punctuation.definition.blockquote.markdown
@@ -362,6 +412,31 @@ contexts:
362412
- block-quote-body
363413
- block-quote-punctuation-body
364414

415+
block-quote-caution-meta:
416+
- meta_include_prototype: false
417+
- meta_scope: markup.quote.alert.caution.markdown
418+
- include: immediately-pop
419+
420+
block-quote-warning-meta:
421+
- meta_include_prototype: false
422+
- meta_scope: markup.quote.alert.warning.markdown
423+
- include: immediately-pop
424+
425+
block-quote-important-meta:
426+
- meta_include_prototype: false
427+
- meta_scope: markup.quote.alert.important.markdown
428+
- include: immediately-pop
429+
430+
block-quote-note-meta:
431+
- meta_include_prototype: false
432+
- meta_scope: markup.quote.alert.note.markdown
433+
- include: immediately-pop
434+
435+
block-quote-tip-meta:
436+
- meta_include_prototype: false
437+
- meta_scope: markup.quote.alert.tip.markdown
438+
- include: immediately-pop
439+
365440
block-quote-meta:
366441
- meta_include_prototype: false
367442
- meta_scope: markup.quote.markdown
@@ -709,6 +784,56 @@ contexts:
709784
4: markup.list.numbered.markdown
710785

711786
list-block-quotes:
787+
- match: '[ \t]{,3}(>)[ ]?((\[)!CAUTION(\]))'
788+
captures:
789+
1: punctuation.definition.blockquote.markdown
790+
2: markup.heading.alert.caution.markdown
791+
3: punctuation.definition.heading.begin.markdown
792+
4: punctuation.definition.heading.end.markdown
793+
push:
794+
- block-quote-caution-meta
795+
- list-block-quote-body
796+
- block-quote-punctuation-body
797+
- match: '[ \t]{,3}(>)[ ]?((\[)!WARNING(\]))'
798+
captures:
799+
1: punctuation.definition.blockquote.markdown
800+
2: markup.heading.alert.warning.markdown
801+
3: punctuation.definition.heading.begin.markdown
802+
4: punctuation.definition.heading.end.markdown
803+
push:
804+
- block-quote-warning-meta
805+
- list-block-quote-body
806+
- block-quote-punctuation-body
807+
- match: '[ \t]{,3}(>)[ ]?((\[)!IMPORTANT(\]))'
808+
captures:
809+
1: punctuation.definition.blockquote.markdown
810+
2: markup.heading.alert.important.markdown
811+
3: punctuation.definition.heading.begin.markdown
812+
4: punctuation.definition.heading.end.markdown
813+
push:
814+
- block-quote-important-meta
815+
- list-block-quote-body
816+
- block-quote-punctuation-body
817+
- match: '[ \t]{,3}(>)[ ]?((\[)!NOTE(\]))'
818+
captures:
819+
1: punctuation.definition.blockquote.markdown
820+
2: markup.heading.alert.note.markdown
821+
3: punctuation.definition.heading.begin.markdown
822+
4: punctuation.definition.heading.end.markdown
823+
push:
824+
- block-quote-note-meta
825+
- list-block-quote-body
826+
- block-quote-punctuation-body
827+
- match: '[ \t]{,3}(>)[ ]?((\[)!TIP(\]))'
828+
captures:
829+
1: punctuation.definition.blockquote.markdown
830+
2: markup.heading.alert.tip.markdown
831+
3: punctuation.definition.heading.begin.markdown
832+
4: punctuation.definition.heading.end.markdown
833+
push:
834+
- block-quote-tip-meta
835+
- list-block-quote-body
836+
- block-quote-punctuation-body
712837
- match: '[ \t]*(>)[ ]?'
713838
captures:
714839
1: punctuation.definition.blockquote.markdown

Markdown/Symbol List - Heading.tmPreferences

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<plist version="1.0">
33
<dict>
44
<key>scope</key>
5-
<string>text.html.markdown markup.heading - meta.whitespace.newline.markdown</string>
5+
<string>text.html.markdown markup.heading - markup.quote - meta.whitespace.newline.markdown</string>
66
<key>settings</key>
77
<dict>
88
<key>showInSymbolList</key>

Markdown/tests/syntax_test_markdown.md

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8193,6 +8193,155 @@ This is a [[wiki link]].
81938193
| ^^ punctuation.definition.link.end.markdown
81948194
81958195
8196+
# TEST: GITHUB ALERTS #########################################################
8197+
8198+
> [!CAUTION]
8199+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8200+
|^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8201+
| ^^^^^^^^^^ markup.heading.alert.caution.markdown
8202+
| ^ punctuation.definition.heading.begin.markdown
8203+
| ^ punctuation.definition.heading.end.markdown
8204+
8205+
> [!CAUTION]
8206+
>
8207+
> Text
8208+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8209+
|^ markup.quote.alert.caution.markdown - markup.paragraph
8210+
| ^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
8211+
8212+
> [!WARNING]
8213+
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown
8214+
|^^^^^^^^^^^^ markup.quote.alert.warning.markdown
8215+
| ^^^^^^^^^^ markup.heading.alert.warning.markdown
8216+
| ^ punctuation.definition.heading.begin.markdown
8217+
| ^ punctuation.definition.heading.end.markdown
8218+
8219+
> [!WARNING]
8220+
>
8221+
> Text
8222+
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown
8223+
|^ markup.quote.alert.warning.markdown - markup.paragraph
8224+
| ^^^^^ markup.quote.alert.warning.markdown markup.paragraph.markdown
8225+
8226+
> [!IMPORTANT]
8227+
| <- markup.quote.alert.important.markdown punctuation.definition.blockquote.markdown
8228+
|^^^^^^^^^^^^^^ markup.quote.alert.important.markdown
8229+
| ^^^^^^^^^^^^ markup.heading.alert.important.markdown
8230+
| ^ punctuation.definition.heading.begin.markdown
8231+
| ^ punctuation.definition.heading.end.markdown
8232+
8233+
> [!IMPORTANT]
8234+
>
8235+
> Text
8236+
| <- markup.quote.alert.important.markdown punctuation.definition.blockquote.markdown
8237+
|^ markup.quote.alert.important.markdown - markup.paragraph
8238+
| ^^^^^ markup.quote.alert.important.markdown markup.paragraph.markdown
8239+
8240+
> [!NOTE]
8241+
| <- markup.quote.alert.note.markdown punctuation.definition.blockquote.markdown
8242+
|^^^^^^^^^ markup.quote.alert.note.markdown
8243+
| ^^^^^^^ markup.heading.alert.note.markdown
8244+
| ^ punctuation.definition.heading.begin.markdown
8245+
| ^ punctuation.definition.heading.end.markdown
8246+
8247+
> [!NOTE]
8248+
>
8249+
> Text
8250+
| <- markup.quote.alert.note.markdown punctuation.definition.blockquote.markdown
8251+
|^ markup.quote.alert.note.markdown - markup.paragraph
8252+
| ^^^^^ markup.quote.alert.note.markdown markup.paragraph.markdown
8253+
8254+
> [!TIP]
8255+
| <- markup.quote.alert.tip.markdown punctuation.definition.blockquote.markdown
8256+
|^^^^^^^^ markup.quote.alert.tip.markdown
8257+
| ^^^^^^ markup.heading.alert.tip.markdown
8258+
| ^ punctuation.definition.heading.begin.markdown
8259+
| ^ punctuation.definition.heading.end.markdown
8260+
8261+
> [!TIP]
8262+
>
8263+
> Text
8264+
| <- markup.quote.alert.tip.markdown punctuation.definition.blockquote.markdown
8265+
|^ markup.quote.alert.tip.markdown - markup.paragraph
8266+
| ^^^^^ markup.quote.alert.tip.markdown markup.paragraph.markdown
8267+
8268+
8269+
1. list item
8270+
> [!CAUTION]
8271+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8272+
|^^^^^^^^^^^^ markup.quote.alert.caution.markdown
8273+
| ^^^^^^^^^^ markup.heading.alert.caution.markdown
8274+
| ^ punctuation.definition.heading.begin.markdown
8275+
| ^ punctuation.definition.heading.end.markdown
8276+
8277+
> [!CAUTION]
8278+
>
8279+
> Text
8280+
| <- markup.quote.alert.caution.markdown punctuation.definition.blockquote.markdown
8281+
|^ markup.quote.alert.caution.markdown - markup.paragraph
8282+
| ^^^^^ markup.quote.alert.caution.markdown markup.paragraph.markdown
8283+
8284+
1. list item
8285+
> [!WARNING]
8286+
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown
8287+
|^^^^^^^^^^^^ markup.quote.alert.warning.markdown
8288+
| ^^^^^^^^^^ markup.heading.alert.warning.markdown
8289+
| ^ punctuation.definition.heading.begin.markdown
8290+
| ^ punctuation.definition.heading.end.markdown
8291+
8292+
> [!WARNING]
8293+
>
8294+
> Text
8295+
| <- markup.quote.alert.warning.markdown punctuation.definition.blockquote.markdown
8296+
|^ markup.quote.alert.warning.markdown - markup.paragraph
8297+
| ^^^^^ markup.quote.alert.warning.markdown markup.paragraph.markdown
8298+
8299+
1. list item
8300+
> [!IMPORTANT]
8301+
| <- markup.quote.alert.important.markdown punctuation.definition.blockquote.markdown
8302+
|^^^^^^^^^^^^^^ markup.quote.alert.important.markdown
8303+
| ^^^^^^^^^^^^ markup.heading.alert.important.markdown
8304+
| ^ punctuation.definition.heading.begin.markdown
8305+
| ^ punctuation.definition.heading.end.markdown
8306+
8307+
> [!IMPORTANT]
8308+
>
8309+
> Text
8310+
| <- markup.quote.alert.important.markdown punctuation.definition.blockquote.markdown
8311+
|^ markup.quote.alert.important.markdown - markup.paragraph
8312+
| ^^^^^ markup.quote.alert.important.markdown markup.paragraph.markdown
8313+
8314+
1. list item
8315+
> [!NOTE]
8316+
| <- markup.quote.alert.note.markdown punctuation.definition.blockquote.markdown
8317+
|^^^^^^^^^ markup.quote.alert.note.markdown
8318+
| ^^^^^^^ markup.heading.alert.note.markdown
8319+
| ^ punctuation.definition.heading.begin.markdown
8320+
| ^ punctuation.definition.heading.end.markdown
8321+
8322+
> [!NOTE]
8323+
>
8324+
> Text
8325+
| <- markup.quote.alert.note.markdown punctuation.definition.blockquote.markdown
8326+
|^ markup.quote.alert.note.markdown - markup.paragraph
8327+
| ^^^^^ markup.quote.alert.note.markdown markup.paragraph.markdown
8328+
8329+
1. list item
8330+
> [!TIP]
8331+
| <- markup.quote.alert.tip.markdown punctuation.definition.blockquote.markdown
8332+
|^^^^^^^^ markup.quote.alert.tip.markdown
8333+
| ^^^^^^ markup.heading.alert.tip.markdown
8334+
| ^ punctuation.definition.heading.begin.markdown
8335+
| ^ punctuation.definition.heading.end.markdown
8336+
8337+
> [!TIP]
8338+
>
8339+
> Text
8340+
| <- markup.quote.alert.tip.markdown punctuation.definition.blockquote.markdown
8341+
|^ markup.quote.alert.tip.markdown - markup.paragraph
8342+
| ^^^^^ markup.quote.alert.tip.markdown markup.paragraph.markdown
8343+
8344+
81968345
# TEST: MATHJAX BLOCKS MARKUP #################################################
81978346
81988347
$$

0 commit comments

Comments
 (0)