2008-09-12 5 views
33

gibt es eine einfache Möglichkeit, HTML in Markdown mit JAVA umzuwandeln?HTML zu Markdown mit Java

Ich verwende derzeit die Java MarkdownJ Bibliothek, um Markdown in HTML umzuwandeln.

import com.petebevin.markdown.MarkdownProcessor; 
... 
public static String getHTML(String markdown) { 
    MarkdownProcessor markdown_processor = new MarkdownProcessor(); 
    return markdown_processor.markdown(markdown); 
} 

public static String getMarkdown(String html) { 
/* TODO Ask stackoverflow */ 
} 

Antwort

38

Verwenden Sie diese XSLT.

Wenn Sie Hilfe benötigen Hilfe von XSLT und Java ist hier ein Code-Schnipsel:

public static void main(String[] args) throws Exception { 

     File xsltFile = new File("mardownXSLT.xslt"); 

     Source xmlSource = new StreamSource(new StringReader(theHTML)); 
     Source xsltSource = new StreamSource(xsltFile); 

     TransformerFactory transFact = 
       TransformerFactory.newInstance(); 
     Transformer trans = transFact.newTransformer(xsltSource); 

     StringWriter result = new StringWriter(); 
     trans.transform(xmlSource, new StreamResult(result)); 
    } 
+2

+1, das ist brillant. –

+4

WICHTIG: Diese XSLT wird unter einer CC-Share-Alike-Lizenz vertrieben, dh: "Wenn Sie [...] auf dieser Arbeit aufbauen, dürfen Sie die entstandene Arbeit nur unter derselben oder einer ähnlichen Lizenz an diese weitergeben" –

+1

@ cx42net - das ist nicht so wichtig))) In vielen Ländern hat CC-share-alike-Lizenz überhaupt keine rechtliche Macht;) – shabunc

2

Ich arbeite an der gleichen Ausgabe, und mit ein paar verschiedenen Techniken zu experimentieren.

Die obige Antwort könnte funktionieren. Sie könnten die jTidy library verwenden, um die erste Bereinigung durchzuführen und von HTML zu XHTML zu konvertieren. Sie verwenden das oben verlinkte XSLT stylesheet.

Leider gibt es keine Bibliothek, die eine einzige Funktion hat, um dies in Java zu tun. Sie könnten versuchen, das Python-Skript html2text mit Jython zu verwenden, aber ich habe das noch nicht ausprobiert!

1

wenn Sie WMD-Editor verwenden und wollen den Abschlags-Code auf der Server-Seite zu bekommen, nur diese Optionen verwenden, bevor Sie das wmd.js Skript laden:

wmd_options = { 
     // format sent to the server. can also be "HTML" 
     output: "Markdown", 

     // line wrapping length for lists, blockquotes, etc. 
     lineLength: 40, 

     // toolbar buttons. Undo and redo get appended automatically. 
     buttons: "bold italic | link blockquote code image | ol ul heading hr", 

     // option to automatically add WMD to the first textarea found. 
     autostart: true 
    };