You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
2.2 KiB

# JOE syntax highlight file for Markdown
# by Christian Nicolai (http://mycrobase.de)
# And yes, this *is* a joke :p
# bold parsing is not that perfect since this works: **bold__
=Idle
=Tag green
=Escape bold
=Bad bold red
=Bold bold
=Headline bold yellow
=Quote green
=Code green
=List yellow
=LinkDesc green
=Link blue
=Rule inverse
:line_start Idle
* idle noeat
"#" headline_prefix recolor=-1
">" quote recolor=-1
" " maybe_code1
"\t" code
"-*" maybe_list
:idle Idle
* idle
"\n" line_start
"<" tag recolor=-1
"\\" escape recolor=-1
"*_" maybe_bold1
"[" maybe_link_desc1
"`" backtick buffer noeat
:headline_prefix Idle
* headline
"#" headline_prefix
:headline Headline
* headline
"\n" line_start
:quote Quote
* quote
"\n" line_start
:maybe_code1 Idle
* idle
" " maybe_code2
:maybe_code2 Idle
* idle
" " maybe_code3
:maybe_code3 Idle
* idle
" " code recolor=-4
:code Code
* code
"\n" line_start
:maybe_list Idle
* idle
" " list
"-*" maybe_rule1
:list List
* list
"\n" line_start
:maybe_rule1 Idle
* idle
"-*" rule recolor=-3
:rule Rule
* rule
"\n" line_start
:tag Tag
* idle
"a-z0-9 /" tag
">" idle
# do escaping of *_ and so on
:escape Escape
* idle
:maybe_bold1 Idle
* idle noeat
"*_" bold recolor=-2
:bold Bold
* bold
"\n" line_start # end if we reach newline during bold
"*_" maybe_end_bold
:maybe_end_bold Bold
* bold
"*_" end_bold
:end_bold Bold
* idle noeat
:maybe_link_desc1 Idle
* maybe_link_desc mark
:maybe_link_desc Idle
* maybe_link_desc
"]" maybe_end_link_desc markend
:maybe_end_link_desc Idle
* idle
"(" link_inline1 recolormark
"[" link_ref1 recolormark
:link_inline1 LinkDesc
* link_inline noeat
:link_inline Link
* link_inline
")" link_end noeat
:link_ref1 LinkDesc
* link_ref noeat
:link_ref Link
* link_ref
"]" link_end noeat
:link_end Idle
* idle
:backtick Quote
* backtick_body save_s noeat
"`" backtick
:backtick_body Code
* backtick_body
"`" backtick_end_maybe buffer
:backtick_end_maybe Code
* backtick_body strings
"&" backtick_end
done
"`" backtick_end_maybe
:backtick_end Quote
* idle noeat