La documentación de la API para Mylyn Wikitext tiene funciones para convertir el marcado de Wiki a HTML, pero no puedo encontrar funciones para convertir/analizar el código HTML a Wiki Markup. La clase MarkupParser
tiene el método parseToHTML
, pero ¿dónde puedo encontrar el reverso?¿Cómo convierto el código HTML en Confluence Wiki Markup?
Respuesta
puede ser este enlace puede ayudar:
Por lo que yo sé que no hay manera de convertir HTML a Confluencia código wiki. Y dado que Atlassian deja de usar textil como marcado de wiki en Confluence 4.x, no hay necesidad de una conversión. El formato de página es XHTML.
@Graham Hannington ha refutado esta respuesta en los comentarios debajo de su respuesta, y tanto él como yo hemos publicado formas de convertir HTML a lenguaje wiki Confluence. – JoshDM
Probar Wikifier.
No hace exactamente lo que quiere, pero es posible que encuentre suficiente o que sea un punto de partida útil.
Wikifier convierte los fragmentos del formato de almacenamiento Confluence 4 XML (es decir, como los presenta el complemento Confluence Source Editor, sin un solo elemento raíz de documento) en el etiquetado de wiki de Confluence 3.
¿Por qué es esto relevante para su pregunta? El formato de almacenamiento XML Confluence 4 incluye algunos elementos y atributos que tienen los mismos nombres que los elementos y atributos XHTML.
Para obtener más información, haga clic en el enlace Ayuda en la página web de Wikifier.
Nota: La hoja de estilo XSLT utilizada por la página web de Wikifier es un poco más reciente que la hoja de estilos XSLT incluida con el paquete de esquema relacionado.
Esto añadido más tarde: Wikifier RT está aún más cerca de lo que desea.
@Christian Koch: el formato de almacenamiento Confluence 4 no es XHTML. Más bien, el formato de almacenamiento XML de Confluence 4 incluye elementos que tienen los mismos nombres que algunos descendientes del elemento del cuerpo XHTML (y algunos de sus atributos). Atlassian solía referirse al formato de almacenamiento Confluence 4 como XHTML, pero últimamente (con algunas indicaciones) se ha estado refiriendo a él como "basado en XHTML". A la pregunta "¿Qué subconjunto de XHTML admite Confluence?" (2012-04-12), Atlassian respondió: "esta página ya es completa. Es probable que todas las etiquetas que ya no se vean documentadas en esta página se eliminen" –
Intenté Wikifier RT y es perfecto. Gracias. – raisercostin
Así es como lo haces en Mylyn usando el WikiText Standalone. Sustituya el DocumentBuilder
apropiado por el marcado Wiki deseado (deberá verificar la API para ver qué hay disponible; también existe TextileDocumentBuilder
).
Archivo ConvertToConfluence.java:
package com.stackoverflow.mylyn;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.StringWriter;
import org.eclipse.mylyn.internal.wikitext.confluence.core.ConfluenceDocumentBuilder;
import org.eclipse.mylyn.wikitext.core.parser.HtmlParser;
import org.xml.sax.InputSource;
public class ConvertToConfluence {
public static String convertHTML(File htmlFile) {
InputStream in = null;
try {
in = new FileInputStream(htmlFile);
} catch (Exception ex) {
// TODO: handle or re-throw file exception
}
InputSource inputSource = new InputSource(new InputStreamReader(in));
StringWriter writer = new StringWriter();
ConfluenceDocumentBuilder builder = new ConfluenceDocumentBuilder(writer);
HtmlParser parser = new HtmlParser();
try {
parser.parse(inputSource, builder);
} catch (Exception ex) {
// TODO: handle or re-throw parsing exception
}
return writer.toString();
}
public static void main(String args[]) {
File file = new File("c:\\filename.html");
System.out.println(convertHTML(file));
}
}
Archivo filename.html:
<HTML>
<BODY>
<p>This is <b>bold text</b> and some <i>italic text</i>.<br/><br/>TEST!</p>
</BODY>
</HTML>
Produce una salida Confluencia:
This is *bold text* and some _italic text_.
\\TEST!
Descargué el archivo jar a través de Maven pero no pude encontrar el archivo HTMLParser. ¿Podría ayudarme – Tarun
pude alcanzar a HTML Estafa fluence-style WikiMarkup utilizando el DefaultWysiwygConverter
de las propias bibliotecas de Java de Atlassian. Aquí está una prueba unitaria simplificada:
import com.atlassian.renderer.wysiwyg.converter.DefaultWysiwygConverter;
String htmlString = "This is <em>emphasized</em> and <b>bold</b>";
DefaultWysiwygConverter converter = new DefaultWysiwygConverter();
String wikiMarkupString = converter.convertXHtmlToWikiMarkup(htmlString);
Assert.assertEquals("This is _emphasized_ and *bold*", wikiMarkupString);
El POM debe incluir los repositorios correctas y dependencias
<dependency>
<groupId>com.atlassian.renderer</groupId>
<artifactId>atlassian-renderer</artifactId>
<version>8.0.5</version>
<exclusions>
<exclusion>
<!-- This exclusion is necessary if you are in a situation which
it conflicts, EG: using spring-boot -->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<repositories>
<repository>
<!-- https://developer.atlassian.com/docs/advanced-topics/working-with-maven/atlassian-maven-repositories -->
<id>atlassian-public</id>
<url>https://packages.atlassian.com/maven/repository/public</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
? Creo que esta es la mejor opción. Está utilizando directamente el propio analizador de Atlassian. Algunas personas, [en los foros de atlassian] (https://community.atlassian.com/t5/Jira-questions/How-to-convert-html-to-Atlassian-markup-in-java-app/qaq-p/ 657726), tienen problemas para corregir las dependencias, así que le doy este ejemplo con un POM funcional en [github] (https://github.com/paul-nelson-baker/html-to-jira-markup). –
- 1. Confluence wiki XML RPC API system.list método
- 2. ¿Script o utilidad para exportar de ScrewTurn Wiki a Confluence?
- 3. MVC Html Extension return string en lugar de html markup?
- 4. Confluence Persistence
- 5. Cómo exportar wikis desde FogBugz 6 a (casi) cualquier otro wiki (destino final: Confluence)?
- 6. Módulo Python para el marcado wiki
- 7. ¿Cómo convierto el código Java en código C#?
- 8. jinja2 + reStructured Markup
- 9. ¿Cómo convierto NSAttributedString en cadena HTML?
- 10. Convertir de wiki a html
- 11. Github: título de la página Wiki de markup no nombre de archivo/cliente web
- 12. ¿Cómo exporto trac wiki a github wiki?
- 13. w3c markup validator ampersand (&) error
- 14. Mostrar fragmentos de código en Sharepoint wiki
- 15. Cómo minimizar el código HTML?
- 16. Cómo formatear el código en html/css/js/php
- 17. Dónde encontrar el conversor de html to wiki "sin errores"
- 18. Cómo comentar/descomentar en el código HTML
- 19. ¿Cómo resaltar el código fuente en HTML?
- 20. ¿Cómo visualizo el código PHP en HTML?
- 21. Recursividad en Liquid Markup/Liquid Templates
- 22. Confluence - VIM bridge?
- 23. JIRA/confluence alternative
- 24. ¿Cómo convierto un .docx a html usando asp.net?
- 25. ¿Cómo convierto este código jQuery en función jQuery?
- 26. ¿Cómo administrar casos de prueba usando Confluence?
- 27. Cómo imprimir código en HTML
- 28. cómo usar el archivo json en el código html
- 29. Lenguaje de marcado Lighweight (wiki) para documentar
- 30. Cómo integrar una wiki de GitHub en el proyecto principal
, gracias por su respuesta. Pero lo que quiero es una API java que tomará un contenido de archivo HTML como entrada y me dará el texto de marcado de Wiki. –
@Vinay Bedre - vea mi respuesta a su pregunta; Puede usar la biblioteca de Mylyn para realizar su conversión. – JoshDM