Foro: enlaces de wowhead con nombre/calidad/icono automáticos

Al insertar un enlace de wowhead sin texto, ahora sale el NOMBRE real del ítem/
misión/etc., su color por calidad y su icono, obtenidos automáticamente de wowhead
—sin escribir nada—.

El script global va con renameLinks:false (para no pisar los nombres en español de
la tienda), así que se marca cada enlace del foro con data-wh-rename-link="true",
que sobrescribe ese ajuste solo para esos enlaces. El botón Wowhead del editor deja
el texto opcional: vacío = nombre automático; con texto = se respeta el del usuario.

El saneador conserva data-wh-rename-link y data-wh-icon-size.

Verificado: un enlace insertado sin texto se guarda con data-wh-rename-link="true"
y el href /wotlk/, listo para que tooltips.js le ponga nombre, color e icono.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-16 13:00:22 +00:00
parent 6f0c39025f
commit a8d329ad79
2 changed files with 12 additions and 4 deletions
+8 -3
View File
@@ -49,7 +49,7 @@ export function ForumEditor({
tooltip: es ? 'Insertar enlace de Wowhead' : 'Insert a Wowhead link',
type: es ? 'Tipo' : 'Type',
id: 'ID',
text: es ? 'Texto (opcional)' : 'Text (optional)',
text: es ? 'Texto (vacío = nombre automático)' : 'Text (empty = auto name)',
insert: es ? 'Insertar' : 'Insert',
cancel: es ? 'Cancelar' : 'Cancel',
}
@@ -107,11 +107,16 @@ export function ForumEditor({
return
}
const type = (data.wtype || 'item') as WowheadType
const label = data.wtext.trim() || `${type}=${id}`
const href = wowheadUrl(type, id, locale)
const wh = wowheadData(type, id, locale)
const custom = data.wtext.trim()
// Sin texto: wowhead pone el nombre real (y color+icono) gracias a
// data-wh-rename-link; el `type=id` es solo un marcador hasta que
// corre el script. Con texto: se respeta el que escriba el usuario.
const rename = custom ? '' : ' data-wh-rename-link="true"'
const label = esc(custom || `${type}=${id}`)
editor.insertContent(
`<a href="${href}" data-wowhead="${esc(wh)}" target="_blank" rel="noopener noreferrer">${esc(label)}</a>&nbsp;`,
`<a href="${href}" data-wowhead="${esc(wh)}"${rename} target="_blank" rel="noopener noreferrer">${label}</a>&nbsp;`,
)
api.close()
},
+4 -1
View File
@@ -35,7 +35,10 @@ export function cleanPostHtml(html: string): string {
allowedAttributes: {
// data-wowhead + class dejan que los enlaces de wowhead muestren tooltip,
// color por calidad e icono (los pinta el script global tooltips.js del layout).
a: ['href', 'title', 'target', 'data-wowhead', 'class'],
// data-wh-rename-link deja que wowhead ponga el NOMBRE del ítem/misión/etc.
// automáticamente (sobrescribe el renameLinks:false global, que existe para no
// pisar los nombres en español de la tienda). data-wh-icon-size ajusta el icono.
a: ['href', 'title', 'target', 'data-wowhead', 'data-wh-rename-link', 'data-wh-icon-size', 'class'],
img: ['src', 'alt', 'title', 'width', 'height'],
span: ['style', 'data-wowhead'],
div: ['style'],