File: //usr/share/joe/syntax/md.jsf
# 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		+DefinedFunction +DefinedIdent
=Escape
=Bad
=Bold		+Keyword
=Headline	+Title +Preproc +Statement
=Quote		+Comment
=Code		+String +Constant
=List		+TagName +Tag
=LinkDesc	+Title +String
=Link		+Number +Constant
=Rule		+Preproc
: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
: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