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:
@@ -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> `,
|
||||
`<a href="${href}" data-wowhead="${esc(wh)}"${rename} target="_blank" rel="noopener noreferrer">${label}</a> `,
|
||||
)
|
||||
api.close()
|
||||
},
|
||||
|
||||
@@ -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'],
|
||||
|
||||
Reference in New Issue
Block a user