/*

			Statx Package : JavaScript Syntax Highlighter for Stata

					   Developed by E. F. Haghish (2014)
			  Center for Medical Biometry and Medical Informatics
						University of Freiburg, Germany

						  haghish@imbi.uni-freiburg.de


                   The Statax Package comes with no warranty


	Syntax highlighter CSS


	Statax Versions
	==============================

	Statax 1.0  September, 2015
*/


program define stataxstyle

    version 11
    syntax [anything] , [STYle(name)] [css(str)]

	tempname canvas
	capture file open `canvas' using $statax , write text append

	********************************************************************
	* Stata Style (default)
	********************************************************************
	if missing("`style'") | "`style'" == "stata" {
	local key #00008A
	local str #800000
	local mac #008080
	local com #008000
	local pfn #0052FF
	local fun #0052FF
	local num #0333FF
	local sym black
	local bra #FF0182
	local bac 			// background
	local col			// font color
	}

	if "`style'" == "daring" {
	local key #5E97F4
	local str #73C935
	local mac #95A99F
	local com #CC8C3C
	local pfn #96A6C8
	local fun #96A6C8
	local num #FFDC33
	local sym #FFDC33
	local bra #906
	local bac #282828			//background
	local col #F4F4FF			// font color
	}

	if "`style'" == "sunset" {
	local key #294277
	local str #DF0707
	local mac #646485
	local com #C3741C
	local pfn #466A97
	local fun #466A97
	local num #294277
	local sym #294277
	local bra #CD5C5C
	local bac #FFFCE5			//background
	local col 					// font color
	}

	if "`style'" == "wrangler" {
	local key #00F
	local str #F39
	local mac #1281B7
	local com #555
	local pfn #00F
	local fun #00F
	local num #369
	local sym #A00
	local bra #906
	local bac 					//background
	local col 					// font color
	}


	file write `canvas' _n(2) 												///
	"<!-- " _n 																///
	"Stata Syntax Highlighter Style Sheet " _n                              ///
	"Developed by E. F. Haghish http://www.haghish.com/" _n   				///
	"Center for Medical Biometry and Medical Informatics" _n 				///
	"University of Freiburg, Germany" _n 									///
	"haghish@imbi.uni-freiburg.de" _n										///
	"for documentation visit http://www.haghish.com/statax"	_n				///
	"-->" _n(3)																///
	`"<style type="text/css">"' _n 											///
	_skip(4) "pre.sh_sourceCode .sh_keyword          { color: `key'; }     /* Stata Commands        */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_string           { color: `str'; }     /* strings               */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_macro            { color: `mac'; }     /* local & global macros */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_string .sh_macro { color: `str'; }     /* macro in string       */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_comment          { color: `com'; }     /* Comment               */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_predef_func      { color: `pfn';    }     /* Stata Functions       */" _n    ///
	_skip(4) "pre.sh_sourceCode .sh_function         { color: `fun';    }     /* Any Function()        */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_number           { color: `num'; }     /* Numbers               */" _n  	///
	_skip(4) "pre.sh_sourceCode .sh_symbol           { color: `sym';   }     /* Operators and signs   */" _n 	///
	_skip(4) "pre.sh_sourceCode .sh_cbracket         { color: `bra'; }     /* Braces                */" _n  	///
	_skip(4) "pre.sh_stata{font-family: 'menlo-regular', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', 'sans-serif','Trebuchet MS';background-color:`bac';color:`col'}" _n 	///
	"</style>" _n(4)

	****************************************************************************
	* Importing External style
	****************************************************************************
	if !missing("`css'") file write `canvas' _n(2) 								///
	"<!--     Adding External CSS     -->"	_n									///
	`"<link rel="stylesheet" type="text/css" href="`css'">"' _n(2)


	file close `canvas'
end