gpt4 book ai didi

java - 是否有任何使用 Mylyn WikiText 的 Java 示例?

转载 作者:太空狗 更新时间:2023-10-29 15:46:13 24 4
gpt4 key购买 nike

我想使用 Java 编写从 Mylyn Wiki 支持的格式到 HTML 的转换代码。我没有找到任何有用的在线示例来演示如何使用 Java 为 Mylyn WikiText 编码。我只找到了 this page on Eclipse ,但它使用 Ant。我请求一些示例代码。

最佳答案

虽然你总是可以code Ant Scripts and launch them from Java ,下面是我刚刚编写的一个完整的实用程序类,它可以让您通过注册到 WikiText 独立部署的各种核心语言来转换 wiki 文本。

请注意,最简单的做法是 download the Standalone Deployment ,展开它并通读 API 以查看您需要应用哪些其他配置。

将 WikiText 转换为 HTML

package com.stackoverflow.mylyn;

import java.io.StringWriter;
import java.util.Set;
import java.util.TreeSet;

import org.eclipse.mylyn.wikitext.core.parser.MarkupParser;
import org.eclipse.mylyn.wikitext.core.parser.builder.HtmlDocumentBuilder;
import org.eclipse.mylyn.wikitext.core.parser.markup.MarkupLanguage;
import org.eclipse.mylyn.wikitext.core.util.ServiceLocator;

/**
* Utility to parse Wiki Text of varying languages and convert to HTML.
*/
public final class ParseWikiToHTMLUtility {

public static final String NAME_TEXTILE = "Textile";
public static final String NAME_TRACWIKI = "TracWiki";
public static final String NAME_MEDIAWIKI = "MediaWiki";
public static final String NAME_CONFLUENCE = "Confluence";
public static final String NAME_TWIKI = "TWiki";

private ParseWikiToHTMLUtility() {
/* Do not instantiate utility classes */
}

public static String parseTextile(String wikiText) {

return parseByLanguage(NAME_TEXTILE, wikiText);
}

public static String parseTracWiki(String wikiText) {

return parseByLanguage(NAME_TRACWIKI, wikiText);
}

public static String parseMediaWiki(String wikiText) {

return parseByLanguage(NAME_MEDIAWIKI, wikiText);
}

public static String parseConfluence(String wikiText) {

return parseByLanguage(NAME_CONFLUENCE, wikiText);
}

public static String parseTWiki(String wikiText) {

return parseByLanguage(NAME_TWIKI, wikiText);
}

public static String parseByLanguage(String name, String wikiText) {

return parseByLanguage(ServiceLocator.getInstance().getMarkupLanguage(name), wikiText);
}

public static String parseByLanguage(MarkupLanguage language, String wikiText) {

StringWriter writer = new StringWriter();
HtmlDocumentBuilder builder = new HtmlDocumentBuilder(writer);
MarkupParser parser = new MarkupParser(language, builder);
parser.parse(wikiText);
return writer.toString();
}

/**
* MarkupLanguage API prefers we retrieve the MarkupLanguge by name from
* the ServiceLocator; since there are no name constants, we obtain the names
* from this method or alternately use the hard-coded names from this utility class,
* which were pulled directly from a prior call to this very method.
*/
public static Set<String> getLanguageNames() {

Set<String> languages = new TreeSet<String>();
for (MarkupLanguage s : ServiceLocator.getInstance().getAllMarkupLanguages()) {
languages.add(s.getName());
}

return languages;
}
}

要从 HTML 转换,请使用 HtmlParser.parse() 方法。将您的 HTML 作为 InputSource 提交并提供 DocumentBuilder 目标。 DocumentBuilder 实现包括 XslfoDocumentBuilder(用于 XSL-Fo 和最终转换为 PDF 或 PostScript)、DocBookDocumentBuilder(用于 Docbook 格式)和扩展的类AbstractMarkupDocumentBuilder(几乎每个标记都有一个:TextileDocumentBuilderConfluenceDocumentBuilder 等)。

其他维基文本链接:

关于java - 是否有任何使用 Mylyn WikiText 的 Java 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com