2008-09-12 12 views
33

HTML'yi JAVA ile işaretlemeye dönüştürmenin kolay bir yolu var mı?Java ile Markdown için HTML

Şu anda html'ye işaretçiyi dönüştürmek için Java MarkdownJ kitaplığını kullanıyorum.

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 */ 
} 

cevap

38

Bu XSLT kullanın.

Eğer XSLT kullanarak yardıma ihtiyaç ve Java burada kod parçacığı varsa:

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, bu harika. –

+4

ÖNEMLİ: Bu XSLT, bir CC-share-alike lisansı altında dağıtılır, yani şu anlama gelir: "Eğer bu işin üzerine [...] dayanırsanız, ortaya çıkan çalışmayı sadece bu ya da benzer bir lisans altında dağıtabilirsiniz" –

+1

@ cx42net - çok önemli değil))) Birçok ülkede CC-share-alike lisansı AT TÜMÜNDE herhangi bir yasal güce sahip değildir;) – shabunc

2

Aynı konuda çalışan ve birkaç farklı tekniklerle deney yaşıyorum.

Yukarıdaki yanıt işe yarayabilir. İlk temizleme işini yapmak ve HTML'den XHTML'ye dönüştürmek için jTidy library'u kullanabilirsiniz. Yukarıda bağlantılı XSLT stylesheet kullanın.

Ne yazık ki, Java'da bunu yapmak için tek durak işlevine sahip bir kütüphane yok. Jython ile Python betiğini html2text kullanmayı deneyebilirsiniz, ancak bunu henüz denemedim! bkz Markdown HTML dönüştürmek için

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 
    }; 
1

sadece wmd.js senaryoyu yüklemeden önce bu seçenekleri kullanın KİS editörü kullanarak ve sunucu tarafında markdown kodu almak istiyorum eğer : http://remark.overzealous.com/manual/index.html Gerçek dünya HTML'leriyle çalışmak için güçlü bir Java kütüphanesi olan JSoup'a bağlı.

8

Ben Remark rastladım:

İlgili konular