2008-09-12 5 views
33

JAVAを使ってHTMLをマークダウンに変換する簡単な方法はありますか?HTMLでマークダウンするには

私は現在、JavaをMarkdownJライブラリを使用してmarkdownをhtmlに変換しています。

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

答えて

38

これはXSLTを使用します。

あなたはXSLTとJavaを使用して支援が必要な場合は、ここでのコードスニペットです:

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、それは素晴らしいです。 –

+4

重要:このXSLTは、CC-share-alikeライセンスの下で配布されています。つまり、あなたが[...]この作業に基づいて構築された場合、あなたはこの作品と同じまたは同様のライセンスの下でのみ作品を配布することができます " –

+1

@ cx42net - それは重要ではない)))多くの国では、CC-share-alikeライセンスには法的権限は全くありません) – shabunc

2

私は同じ問題に取り組んで、そして夫婦の異なる技術を実験しています。

上記の回答がうまくいく可能性があります。 jTidy libraryを使用して初期クリーンアップ作業を行い、HTMLからXHTMLに変換することができます。上にリンクされたXSLT stylesheetを使用します。

残念ながら、Javaでこれを行うためのワンストップ機能を持つライブラリはありません。あなたはPythonスクリプトhtml2textをJythonで試してみることができますが、私はこれをまだ試していません!

1

あなたはWMDエディタを使用して、サーバー側の値下げコードを取得したい、ちょうどwmd.jsスクリプトをロードする前に、これらのオプションを使用している場合:

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 
    }; 
関連する問題