Mylyn Wikitext の API ドキュメントには Wiki マークアップを HTML に変換する関数がありますが、HTML コードを Wiki マークアップに変換/解析する関数が見つかりません。クラスMarkupParser
にはメソッドparseToHTML
がありますが、その逆はどこにありますか?
4 に答える
ウィキファイアを試してみてください。
それはあなたが望んでいることとまったく同じではありませんが、それで十分であるか、または有用な出発点であることがわかるかもしれません。
Wikiifier は、Confluence 4 XML ストレージ形式のスニペット (つまり、単一のドキュメント ルート要素なしで、Confluence ソース エディター プラグインによって提示される) を Confluence 3 wiki マークアップに変換します。
なぜこれがあなたの質問に関連しているのですか?Confluence 4 XML ストレージ形式には、XHTML 要素および属性と同じ名前を持ついくつかの要素および属性が含まれています。
詳細については、Wikiifier Web ページの [ヘルプ] リンクをクリックしてください。
注: ウィキファイアの Web ページで使用されている XSLT スタイルシートは、関連するスキーマ パッケージにバンドルされている XSLT スタイルシートよりも少し新しいものです。
これは後で追加されました。
Mylyn でWikiText Standaloneを使用して行う方法は次のとおりです。目的の Wiki マークアップを適切なDocumentBuilder
ものに置き換えます (何が利用可能かを確認するには、API を確認する必要があります。APITextileDocumentBuilder
も存在します)。
ファイルConvertToConfluence.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));
}
}
ファイルfilename.html :
<HTML>
<BODY>
<p>This is <b>bold text</b> and some <i>italic text</i>.<br/><br/>TEST!</p>
</BODY>
</HTML>
Confluence の出力を生成します。
This is *bold text* and some _italic text_.
\\TEST!
私の知る限り、HTML を Confluence wiki マークアップに変換する方法はありません。また、Atlassian は Confluence 4.x でテキスタイルを wiki マークアップとして使用しなくなったため、変換の必要はありません。ページ形式は XHTML です。