anchor.diff:  		header = "<li>"
   
   	var/item
  +	var/name_part = VV_HTML_ENCODE(name)
  +	if(level > 0 || islist(D)) //handling keys in assoc lists
  +		if(istype(name,/datum))
  +			name_part = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(name)]'>[VV_HTML_ENCODE(name)] [REF(name)]</a>"
  +		else if(islist(name))
  +			var/list/L = name
  +			name_part = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(name)]'> /list ([length(L)]) [REF(name)]</a>"
  +
   	if (isnull(value))
  -		item = "[VV_HTML_ENCODE(name)] = <span class='value'>null</span>"
  +		item = "[name_part] = <span class='value'>null</span>"
   
   	else if (istext(value))
  -		item = "[VV_HTML_ENCODE(name)] = <span class='value'>\"[VV_HTML_ENCODE(value)]\"</span>"
  +		item = "[name_part] = <span class='value'>\"[VV_HTML_ENCODE(value)]\"</span>"
   
   	else if (isicon(value))
   		#ifdef VARSICON
  
positive.code: 	else if (istype(value, /datum))
  		var/datum/DV = value
  		if ("[DV]" != "[DV.type]") //if the thing as a name var, lets use it.
  			item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] [REF(value)]</a> = [DV] [DV.type]"
  		else
  			item = "<a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>[VV_HTML_ENCODE(name)] [REF(value)]</a> = [DV.type]"
  
  	else if (islist(value))
  		var/list/L = value
  
negative.code: 
  				items += debug_variable(key, val, level + 1, sanitize = sanitize)
  
  			item = "[name_part] = <a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>/list ([L.len])</a><ul>[items.Join()]</ul>"
  		else
  			item = "[name_part] = <a href='?_src_=vars;[HrefToken()];Vars=[REF(value)]'>/list ([L.len])</a>"
  
  	else if (name in GLOB.bitfields)
  		var/list/flags = list()
  		for (var/i in GLOB.bitfields[name])
  			if (value & GLOB.bitfields[name][i])
  				flags += i
  			item = "[name_part] = [VV_HTML_ENCODE(jointext(flags, ", "))]"
  	else
  		item = "[name_part] = <span class='value'>[VV_HTML_ENCODE(value)]</span>"
  
  	return "[header][item]</li>"
  
  