Esta documentación explica cómo crear un enlace que inicie un nuevo tema en Discourse con información prellenada.
Nivel de usuario requerido: Todos los usuarios
A veces, es posible que desees proporcionar a los usuarios un enlace que abra un compositor de nuevo tema con cierta información prellenada. Esto puede ser útil para varios casos de uso, incluidas plantillas de informes de errores, solicitudes de funciones o publicaciones estandarizadas.
Construcción de la URL
URL Base
Para componer un nuevo tema prellenado sin información adicional, añade /new-topic a la URL de tu sitio, así:
https://discourse.example.com/new-topic
Al hacer clic en esto, se abrirá un compositor de nuevo tema en blanco para cualquier usuario que haya iniciado sesión (si no ha iniciado sesión, se le pedirá que inicie sesión/se registre antes de abrir el compositor).
Parámetros Adicionales
Si bien un enlace para abrir un compositor en blanco puede ser útil en ocasiones, la principal fortaleza de esta función es la capacidad de prellenar el compositor con información adicional.
Para hacer esto, puedes añadir parámetros a la URL base:
https://discourse.example.com/new-topic?title=titulo%20del%20tema&body=cuerpo%20del%20tema&category=categoria/subcategoria&tags=email,planned
Esto abrirá una ventana del compositor prellenada con el título del tema, el cuerpo, la categoría y las etiquetas.
Desglosando el enlace / URL para mostrar las opciones disponibles, tenemos:
- URL Base:
https://discourse.example.com/new-topic - El operador de URL
?para añadir las diferentes opciones - Título del tema:
title=titulo%20del%20tema - El
&, utilizado cada vez al incluir otro parámetro - Cuerpo:
body=cuerpo%20del%20tema - La categoría y la subcategoría separadas por una barra
/si deseas incluirlas:category=categoria/subcategoria - Las etiquetas separadas por coma(s)
,si deseas incluir varias etiquetas:tags=email,planned
Cada uno de los parámetros es opcional y se puede combinar según el resultado final deseado.
Como alternativa a usar el nombre de la categoría/subcategoría, puedes especificar un category_id numérico en su lugar, como:
https://meta.discourse.org/new-topic?title=titulo%20del%20tema&category_id=3
Ejemplo
Puedes probar esto aquí en Meta:
https://meta.discourse.org/new-topic?title=titulo%20del%20tema&body=cuerpo%20del%20tema&category=support/wordpress&tags=wordpress
Aunque por favor no crees el tema realmente
Para explorar la función de forma más práctica, utiliza nuestro sitio de demostración, try.discourse.org
Uso de las Herramientas de Desarrollo del Navegador
Abre la consola del navegador (F12 → Console) y utiliza URLSearchParams incorporado para construir la URL; maneja toda la codificación porcentual automáticamente:
const base = 'https://discourse.example.com/new-topic';
const url = base + '?' + new URLSearchParams({
title: 'Mi título de tema',
body: `Texto del cuerpo aquí...\nadmite varias líneas`,
category: 'support',
tags: 'bug,urgent'
});
console.log(url); // copia esta url
Uso de una URL prellenada con Enlaces Destacados
Esta función también es compatible con los Enlaces Destacados, siempre que el parámetro body no se incluya también.
La URL debe estar codificada en URL para que el enlace funcione.
Por ejemplo, para crear un tema con la siguiente URL https://www.xkcd.com/556, el enlace será:
https://meta.discourse.org/new-topic?title=https%3A%2F%2Fwww.xkcd.com%2F556
Mejores Prácticas
- La Referencia de Codificación de URL HTML de w3Schools es un buen recurso para encontrar cómo se codifican los caracteres de texto en la URL. Si tienes mucho texto que añadir, también hay un convertidor de texto a URL en la sección ‘Pruébalo tú mismo’.
- Codifica siempre en URL los parámetros para evitar problemas con caracteres especiales.
- Si no estás seguro del ID de la categoría, puedes comprobarlo buscando el número en la URL de la categoría. (ej. https://meta.discourse.org/c/documentation/using-discourse/126)
- Prueba los enlaces prellenados para asegurarte de que funcionan como se espera.
Actualmente no es posible tener un enlace prellenado que abra un compositor para responder a un tema específico.