如何将 HTML 代码转换为 Confluence 样式的 Wiki 标记?
2022-09-04 02:53:05
Mylyn Wikitext的API文档具有将Wiki标记转换为HTML的函数,但我找不到将HTML代码转换/解析为Wiki标记的函数。类有方法,但我在哪里可以找到相反的方法?MarkupParser
parseToHTML
Mylyn Wikitext的API文档具有将Wiki标记转换为HTML的函数,但我找不到将HTML代码转换/解析为Wiki标记的函数。类有方法,但我在哪里可以找到相反的方法?MarkupParser
parseToHTML
试试维基过滤器。
它不能完全按照你想要的去做,但你可能会发现它做得足够多,或者是一个有用的起点。
Wikifier将Confluence 4 XML存储格式的片段(即Confluence Source Editor插件所示,没有单个文档根元素)转换为Confluence 3 wiki标记。
为什么这与您的问题有关?Confluence 4 XML 存储格式包括一些与 XHTML 元素和属性同名的元素和属性。
有关更多信息,请单击 Wikifier 网页上的“帮助”链接。
注意:Wikifier 网页使用的 XSLT 样式表比与相关架构包捆绑在一起的 XSLT 样式表略新。
这是后来添加的:Wikifier RT更接近你想要的。
以下是你如何使用WikiText Standalone在Mylyn中做到这一点。用适当的代码替换您想要的Wiki标记(您必须检查API以查看可用的内容; 也存在)。DocumentBuilder
TextileDocumentBuilder
文件转换到汇合.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));
}
}
文件文件名.html:
<HTML>
<BODY>
<p>This is <b>bold text</b> and some <i>italic text</i>.<br/><br/>TEST!</p>
</BODY>
</HTML>
产生汇合输出:
This is *bold text* and some _italic text_.
\\TEST!