📄 Copiar componente de publicación

|||
-|-|-|
:discourse2: | Resumen | Copiar publicación muestra un botón en los controles de cada publicación que copia el contenido completo de la publicación al portapapeles del usuario.
| :eyeglasses: | Vista previa | Vista previa en el Creador de temas de Discourse
:hammer_and_wrench: | Enlace al repositorio | https://github.com/discourse/discourse-copy-post
:open_book:|¿Nuevo en los temas de Discourse?| Guía para principiantes sobre el uso de temas de Discourse

Instalar este componente de tema

Configuración

Nombre Descripción
copy_type Selecciona el tipo de texto copiado que deseas guardar en el portapapeles (Markdown o HTML).
copy_button_allowed_groups Selecciona los grupos que tienen permitido usar el botón de copiar. Por defecto, todos los usuarios del grupo Nivel de confianza 1 lo verán.
Traducción Predeterminado
title Copiar el contenido de esta publicación

Capturas de pantalla

La imagen muestra un hilo de discusión en un foro con varias respuestas discutiendo la película más inspiradora que jamás hayan visto, incluidos comentarios sobre Trees y Albania. (Subtitulado por IA)


:discourse2: ¿Alojado por nosotros? Los componentes de tema están disponibles para su uso en nuestros planes Estándar, Business y Enterprise.

25 Me gusta

¡Gran componente temático! Gracias

2 Me gusta

¿Qué sucede con el formato y los medios?

2 Me gusta

@Zup

Puede que sea necesario hacer algunas mejoras en esta área, pero actualmente:

  • los medios no se copian
  • el formato se perderá (es decir, solo texto sin formato), sin embargo, los saltos de línea de las etiquetas <p> estarán presentes.
3 Me gusta

Espero que esto se pueda actualizar para incluir medios y formato al pegarlo en Discourse.

2 Me gusta

@Zup

Sí, definitivamente es algo que buscaré mejorar en el futuro.

Sin embargo, mientras tanto, he agregado una configuración para copiar el contenido HTML sin procesar en su lugar. Si establece esto en verdadero, el botón de copiar copiará el HTML sin procesar de la publicación en lugar del texto sin formato. De esta manera, debería tener el formato y los medios.

4 Me gusta

¡Genial! :clap:

¿Quizás un segundo botón, Duplicar, (en el área del icono del engranaje del moderador?) para copiar automáticamente todo el contenido de la publicación en un nuevo tema con "DUPLICADO: " añadido al principio del título?

De todos modos, muy útil tal como está, ¡gracias!

4 Me gusta

¿Quizás hacer que el botón realice una solicitud a /raw/topic_id/post_number para que puedas copiar el contenido real de la publicación? De esta manera, actuará como el muy útil botón “Source” de Reddit Enhancement Suite.

7 Me gusta

Ya existe un componente similar: Raw Post Button.

Añadir un botón de copia a la ventana modal de ese componente combinaría ambos enfoques, ¿qué opinas @keegan @Johani?

4 Me gusta

@md-misko Sí, creo que es una gran idea. Como creé un widget para el botón de copiar, creo que se puede copiar fácilmente para usarlo en el modal.

4 Me gusta

¿Hay algún truco para mostrar el botón solo a los usuarios que han iniciado sesión?

1 me gusta

@Jagster

¡Ahora sí! :smiley: He agregado una configuración para aplicar un nivel de confianza mínimo para mostrar el widget. Configurarlo en 0 hará que solo los usuarios registrados puedan ver el botón.

3 Me gusta

¿Por qué no podemos dar dos pulgares arriba cuando se lo merece :wink:

2 Me gusta

:+1: :+1:

Ahora @keegan los tiene. :smiley:

1 me gusta

Esto no funcionaba en una nueva instalación.
El nivel mínimo de confianza (min_trust_level) no se podía seleccionar en Administración.
edición: el componente funcionaba pero no se mostraba correctamente en Administración.

Hice un fork del repositorio y lo hice funcionar, pero establecí min_trust_level como un entero.
Así que (5) = ‘deshabilitado’ (0-4) como se esperaba. Así que una pequeña reescritura.

No he hecho una PR… ya que es una simplificación… ¿quizás alguien más pueda confirmar que el componente no funciona?

2 Me gusta

Hola @geoff777, he probado esto en una nueva instalación y parece que funciona correctamente para mí.
Además, si aplico esos cambios, el problema al usar la configuración de min_trust_level como un entero en el archivo settings.yml es que el valor 0 no aparece en el menú desplegable.

2 Me gusta

Cualquiera de los valores, excepto deshabilitado, no aparece en el cuadro cuando se selecciona. AFAIK, cualquiera de los valores está en uso, sin embargo.

4 Me gusta

Ah, lo siento, fue mi error. Pensé que querías decir que cambiaste las cadenas en el enum a enteros, pero en realidad querías decir que usaste el tipo entero en su lugar. Sí, esa parece ser una mejor aproximación. He actualizado el componente del tema para soportar eso. Espero que esto solucione todos los problemas.

3 Me gusta

¡Este TC es genial! En nuestro caso de uso, queremos que nuestros autores copien publicaciones completas y las peguen en un editor externo de un sitio web de cursos. Sería genial si pudieras copiar la publicación completa, incluidos los medios, en formato HTML o simplemente en formato de texto enriquecido.

1 me gusta

Solo una advertencia para aquellos que lo usaban anteriormente. Ahora he trasladado esto de ser mi proyecto personal a ser un official Theme component :tada:. Con eso, he hecho algunos cambios para modernizar el componente para que funcione correctamente en la última versión de Discourse.

También he actualizado la configuración. En lugar de una configuración exclusiva de nivel de confianza, ahora puedes seleccionar cualquier grupo que desees que tenga permitido usar el botón de copiar. Además, he permitido una configuración de copy_type para que puedas elegir si el texto copiado es el marcado HTML de la publicación o el Markdown sin procesar.

6 Me gusta