2008-09-12 4 views
33

Есть ли простой способ превратить HTML в уценку с JAVA?HTML to Markdown с Java

Я в настоящее время использую Java MarkdownJ библиотека для преобразования уценки в 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, это блестящий. – 2010-09-06 21:49:13

2

Я работаю по тому же вопросу, и экспериментировать с несколькими различными методами.

Ответ выше мог работать. Вы можете использовать jTidy library, чтобы выполнить первоначальную работу по очистке и преобразовать из HTML в XHTML. Вы используете связанный выше XSLT stylesheet.

К сожалению, нет библиотеки, которая имеет однонаправленную функцию для этого в Java. Вы можете попробовать использовать скрипт Python html2text с Jython, но я еще не пробовал это!

1

если вы используете редактор ОМП и хотите, чтобы получить код уценки на стороне сервера, просто использовать эти опции перед загрузкой 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 
    }; 
Смежные вопросы