Multiple href fixes (#20967)

Fixes a whole bunch of stuff caused by unclosed hrefs, details in
changelogs

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
This commit is contained in:
Batrachophreno
2025-07-08 23:14:59 +00:00
committed by GitHub
parent d801cddf6d
commit 9fba0357b5
13 changed files with 100 additions and 34 deletions
+1 -1
View File
@@ -598,7 +598,7 @@ var/global/enabled_spooking = 0
dat+="No comments on this story yet!</BR>"
else
for(var/datum/feed_comment/COMMENT in src.admincaster_viewing_message.comments)
dat+="<BLOCKQUOTE style=\"padding:2px 4px;border-left:4px #797979 solid;\"><B>\[[world.time]\] [COMMENT.author]:</B>[COMMENT.message]<BR><A href='byond://?src=[REF(src)];ac_censorcomment=1;ac_comment=[REF(COMMENT)]>Censor Comment</A></BLOCKQUOTE>"
dat+="<BLOCKQUOTE style=\"padding:2px 4px;border-left:4px #797979 solid;\"><B>\[[world.time]\] [COMMENT.author]:</B>[COMMENT.message]<BR><A href='byond://?src=[REF(src)];ac_censorcomment=1;ac_comment=[REF(COMMENT)]'>Censor Comment</A></BLOCKQUOTE>"
dat+="<A href='byond://?src=[REF(src)];ac_setScreen=[9]'>Return</A>"
else
dat+="Please report this on GitHub, along with what you did to make this appear."
@@ -206,7 +206,7 @@ GLOBAL_LIST_INIT(gear_datums, list())
if(thing in pref.gear)
style = "style='color: #FF8000;'"
break
. += " <a href='byond://?src=[REF(src)];select_category=[category]'><font [style]>[category]</font></a> "
. += " <a href='byond://?src=[REF(src)];select_category=[category]'><font [style]'>[category]</font></a> "
. += "</b></center></td></tr>"
var/datum/loadout_category/LC = GLOB.loadout_categories[current_tab]
@@ -102,7 +102,7 @@
. = ..()
if(LAZYLEN(accessories))
for(var/obj/item/clothing/accessory/A in accessories)
. += SPAN_NOTICE("<a href='byond://?src=[REF(user)];lookitem=[REF(A)]>\A [A]</a> [A.gender == PLURAL ? "are" : "is"] attached to it.")
. += SPAN_NOTICE("<a href='byond://?src=[REF(user)];lookitem=[REF(A)]'>\A [A]</a> [A.gender == PLURAL ? "are" : "is"] attached to it.")
/obj/item/clothing/proc/update_accessory_slowdown(mob/user)
slowdown_accessory = 0
+1 -1
View File
@@ -149,7 +149,7 @@
for(var/pilot in pilots)
if(ismob(pilot))
var/mob/M = pilot
. += "It is being <b>piloted</b> by <a href='byond://?src=[REF(src)];examine=[REF(M)]>[M.name]</a>."
. += "It is being <b>piloted</b> by <a href='byond://?src=[REF(src)];examine=[REF(M)]'>[M.name]</a>."
else
. += "It is being <b>piloted</b> by <b>[pilot]</b>."
if(hardpoints.len)
@@ -101,10 +101,10 @@
//Put removable circuits in separate categories from non-removable
for(var/obj/item/integrated_circuit/circuit in contents)
if(!circuit.removable)
HTML += "<a href='byond://?src=[REF(circuit)];examine=1;from_assembly=1>[circuit.displayed_name]</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];rename=1;from_assembly=1>Rename</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];scan=1;from_assembly=1>Scan with Debugger</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];bottom=[REF(circuit)];from_assembly=1>Move to Bottom</a>"
HTML += "<a href='byond://?src=[REF(circuit)];examine=1;from_assembly=1'>'[circuit.displayed_name]</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];rename=1;from_assembly=1'>Rename</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];scan=1;from_assembly=1'>Scan with Debugger</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];bottom=[REF(circuit)];from_assembly=1'>Move to Bottom</a>"
HTML += "<br>"
HTML += "<hr>"
@@ -112,11 +112,11 @@
for(var/obj/item/integrated_circuit/circuit in contents)
if(circuit.removable)
HTML += "<a href='byond://?src=[REF(circuit)];examine=1;from_assembly=1>[circuit.displayed_name]</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];rename=1;from_assembly=1>Rename</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];scan=1;from_assembly=1>Scan with Debugger</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];remove=1;from_assembly=1>Remove</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];bottom=[REF(circuit)];from_assembly=1>Move to Bottom</a>"
HTML += "<a href='byond://?src=[REF(circuit)];examine=1;from_assembly=1'>[circuit.displayed_name]</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];rename=1;from_assembly=1'>Rename</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];scan=1;from_assembly=1'>Scan with Debugger</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];remove=1;from_assembly=1'>Remove</a> | "
HTML += "<a href='byond://?src=[REF(circuit)];bottom=[REF(circuit)];from_assembly=1'>Move to Bottom</a>"
HTML += "<br>"
var/datum/browser/B = new(user, "assembly-[REF(src)]", name, 600, 400)
@@ -120,10 +120,10 @@ a creative player the means to solve many problems. Circuits are held inside an
if(1)
io = get_pin_ref(IC_INPUT, i)
if(io)
words += "<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]>[io.display_pin_type()] [io.name]</a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]>[io.display_data(io.data)]</a></b><br>"
words += "<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]'>[io.display_pin_type()] [io.name]</a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]'>[io.display_data(io.data)]</a></b><br>"
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]>[linked.name]</a> \
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]'>[linked.name]</a> \
@ <a href='byond://?src=[REF(linked.holder)];examine=1;>[linked.holder.displayed_name]</a><br>"
if(outputs.len > inputs.len)
@@ -137,10 +137,10 @@ a creative player the means to solve many problems. Circuits are held inside an
if(3)
io = get_pin_ref(IC_OUTPUT, i)
if(io)
words += "<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]>[io.display_pin_type()] [io.name]</a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]>[io.display_data(io.data)]</a></b><br>"
words += "<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]'>[io.display_pin_type()] [io.name]</a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]'>[io.display_data(io.data)]</a></b><br>"
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]>[linked.name]</a> \
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]'>[linked.name]</a> \
@ <a href='byond://?src=[REF(linked.holder)];examine=1;>[linked.holder.displayed_name]</a><br>"
if(inputs.len > outputs.len)
@@ -151,12 +151,12 @@ a creative player the means to solve many problems. Circuits are held inside an
for(var/activator in activators)
var/datum/integrated_io/io = activator
var/words = list(
"<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]><span class='bad'>[io.name]</span></a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]><span class='bad'>[io.data?"\<PULSE OUT\>":"\<PULSE IN\>"]</span></a></b><br>"
"<b><a href='byond://?src=[REF(src)];pin_name=1;pin=[REF(io)]'><span class='bad'>[io.name]</span></a> <a href='byond://?src=[REF(src)];pin_data=1;pin=[REF(io)]'><span class='bad'>[io.data?"\<PULSE OUT\>":"\<PULSE IN\>"]</span></a></b><br>"
)
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]><span class='bad'>[linked.name]</span></a> \
words += "<a href='byond://?src=[REF(src)];pin_unwire=1;pin=[REF(io)];link=[REF(linked)]'><span class='bad'>[linked.name]</span></a> \
@ <a href='byond://?src=[REF(linked.holder)];examine=1;><span class='bad'>[linked.holder.displayed_name]</span></a><br>"
HTML += "<tr>"
+1 -1
View File
@@ -194,7 +194,7 @@
else
dat += {"<a href='byond://?src=[REF(src)];orderbyid=1'>(Order Book by ISBN)</a><br><br>
<table>
<tr><td><a href='byond://?src=[REF(src)];sort=author>AUTHOR</a></td><td><a href='byond://?src=[REF(src)];sort=title>TITLE</a></td><td><a href='byond://?src=[REF(src)];sort=category>CATEGORY</a></td><td></td></tr>"}
<tr><td><a href='byond://?src=[REF(src)];sort=author'>AUTHOR</a></td><td><a href='byond://?src=[REF(src)];sort=title'>TITLE</a></td><td><a href='byond://?src=[REF(src)];sort=category'>CATEGORY</a></td><td></td></tr>"}
var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT id, author, title, category FROM ss13_library ORDER BY [sortby]")
query.Execute()
@@ -183,9 +183,9 @@
var/dat = {"
<B>Activated Modules</B>
<BR>
Module 1: [module_state_1 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_1)]>[module_state_1]<A>" : "No Module"]<BR>
Module 2: [module_state_2 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_2)]>[module_state_2]<A>" : "No Module"]<BR>
Module 3: [module_state_3 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_3)]>[module_state_3]<A>" : "No Module"]<BR>
Module 1: [module_state_1 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_1)]'>[module_state_1]<A>" : "No Module"]<BR>
Module 2: [module_state_2 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_2)]'>[module_state_2]<A>" : "No Module"]<BR>
Module 3: [module_state_3 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_3)]'>[module_state_3]<A>" : "No Module"]<BR>
<BR>
<B>Installed Modules</B><BR><BR>"}
@@ -200,7 +200,7 @@
else if(activated(O))
module_string += "[O]: <B>Activated</B><BR>"
else
module_string += "[O]: <A href='byond://?src=[REF(src)];act=[REF(O)]>Activate</A><BR>"
module_string += "[O]: <A href='byond://?src=[REF(src)];act=[REF(O)]'>Activate</A><BR>"
var/obj/item/I = O
if((istype(I, /obj/item) || istype(I, /obj/item/device)) && !(I.iscoil()))
@@ -216,7 +216,7 @@
else if(activated(module.emag))
dat += "[module.emag]: <B>Activated</B><BR>"
else
dat += "[module.emag]: <A href='byond://?src=[REF(src)];act=[REF(module.emag)]>Activate</A><BR>"
dat += "[module.emag]: <A href='byond://?src=[REF(src)];act=[REF(module.emag)]'>Activate</A><BR>"
dat += resources
@@ -868,9 +868,9 @@
dat += {"
<B>Activated Modules</B>
<BR>
Module 1: [module_state_1 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_1)]>[module_state_1]<A>" : "No Module"]<BR>
Module 2: [module_state_2 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_2)]>[module_state_2]<A>" : "No Module"]<BR>
Module 3: [module_state_3 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_3)]>[module_state_3]<A>" : "No Module"]<BR>
Module 1: [module_state_1 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_1)]'>[module_state_1]<A>" : "No Module"]<BR>
Module 2: [module_state_2 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_2)]'>[module_state_2]<A>" : "No Module"]<BR>
Module 3: [module_state_3 ? "<A href='byond://?src=[REF(src)];mod=[REF(module_state_3)]'>[module_state_3]<A>" : "No Module"]<BR>
<BR>
<B>Installed Modules</B><BR><BR>"}
@@ -881,17 +881,17 @@
else if(activated(obj))
dat += "[obj]: <B>Activated</B><BR>"
else
dat += "[obj]: <A href='byond://?src=[REF(src)];act=[REF(obj)]>Activate</A><BR>"
dat += "[obj]: <A href='byond://?src=[REF(src)];act=[REF(obj)]'>Activate</A><BR>"
if(emagged)
if(activated(module.emag))
dat += "[module.emag]: <B>Activated</B><BR>"
else
dat += "[module.emag]: <A href='byond://?src=[REF(src)];act=[REF(module.emag)]>Activate</A><BR>"
dat += "[module.emag]: <A href='byond://?src=[REF(src)];act=[REF(module.emag)]'>Activate</A><BR>"
if(malf_AI_module)
if(activated(module.malf_AI_module))
dat += "[module.malf_AI_module]: <B>Activated</B><BR>"
else
dat += "[module.malf_AI_module]: <A href='byond://?src=[REF(src)];act=[REF(module.malf_AI_module)]>Activate</A><BR>"
dat += "[module.malf_AI_module]: <A href='byond://?src=[REF(src)];act=[REF(module.malf_AI_module)]'>Activate</A><BR>"
src << browse(HTML_SKELETON(dat), "window=robotmod")
+1 -1
View File
@@ -333,7 +333,7 @@
/mob/living/silicon/ai/raised_alarm(var/datum/alarm/A)
var/cameratext = ""
for(var/obj/machinery/camera/C in A.cameras())
cameratext += "[(cameratext == "")? "" : "|"]<A href='byond://?src=[REF(src)];switchcamera=[REF(C)]>[C.c_tag]</A>"
cameratext += "[(cameratext == "")? "" : "|"]<A href='byond://?src=[REF(src)];switchcamera=[REF(C)]'>[C.c_tag]</A>"
to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])")