es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convertir texto sin formato / sintaxis de wiki a HTML con Jira ScriptRunner (mostrar puntos, emoticonos de marca de verificación, etc.).

Estoy intentando recuperar el texto del comentario más reciente que escribí en una página de problema de JIRA, aquí hay una captura de pantalla del comentario más reciente que escribí: enter image description here

Estoy utilizando este código en el script runner de Jira para recuperar el último comentario que he escrito:

import com.atlassian.jira.component.ComponentAccessor
import java.text.SimpleDateFormat
import com.opensymphony.util.TextUtils
import com.atlassian.jira.issue.comments.*
import org.w3c.dom.*;
import javax.xml.parsers.*;
import groovy.xml.*;
import groovy.util.*;
import org.xml.sax.InputSource;
import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

def commentManager = ComponentAccessor.getCommentManager()

Comment comment = commentManager.getLastComment (issue)

if(comment != null) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MMM/yy HH:mm", Locale.ENGLISH)

    def body = comment.body //.replaceAll("\r\n+","\n")

    body="""<div style="max-height:100px; overflow:auto;" title="${comment.authorFullName} added last comment - ${dateFormat.format(comment.created)}">
    <span style="white-space: pre-wrap;">${TextUtils.htmlEncode(body)}</span>
    </div>"""

    return body
}

La salida del código anterior es la siguiente:

enter image description here

Me gustaría que la salida se muestre en su formato original, es decir, me gustaría que aparezcan los puntos, el emoji y la marca de verificación verde. No quiero ver las estrellas, el color del código y la abreviación del emoji :). Me gustaría que la salida luzca como la siguiente:

enter image description here

¿Cómo puedo solucionar esto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para mostrar la salida en su formato original, debe cambiar la siguiente línea en el código:

    def body = comment.body //.replaceAll("[\r\n]+","\n")
    

    a:

    def body = comment.bodyHtml
    

    Esto devolverá el cuerpo del comentario en formato HTML, el cual preserva el formato original del texto, incluyendo viñetas, emoticonos y marcas de verificación. Luego, puede eliminar la línea que codifica el texto HTML utilizando el método TextUtils.htmlEncode().

    El código actualizado se verá así:

    import com.atlassian.jira.component.ComponentAccessor
    import java.text.SimpleDateFormat
    import com.atlassian.jira.issue.comments.*
    
    def commentManager = ComponentAccessor.getCommentManager()
    
    Comment comment = commentManager.getLastComment(issue)
    
    if(comment != null) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MMM/yy HH:mm", Locale.ENGLISH)
    
        def body = comment.bodyHtml
        body = """<div style="max-height:100px; overflow:auto;" title="${comment.authorFullName} añadió el último comentario - ${dateFormat.format(comment.created)}">${body}</div>"""
        return body
    }
    

    Esto mostrará el comentario tal como aparece en JIRA, preservando todo el formato y caracteres especiales.

Comments are closed.