- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 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
(几乎每个标记都有一个:TextileDocumentBuilder
、ConfluenceDocumentBuilder
等)。
其他维基文本链接:
How to use Mylyn WikiText in Java (有一些示例代码)
SO question about parsing with WikiText (有一些示例代码)
WikiText Developer Guide用于 Eclipse 集成
Getting started with WikiText (2 之 1)
Advanced WikiText (2 之 2)
关于java - 是否有任何使用 Mylyn WikiText 的 Java 示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16424703/
沃盖拉 suggests安装 Mylyn WikiText Extras 来编辑 asciidoc。但在我的(刚刚安装的)Eclipse Oxygen Java EE 上,它拒绝安装。根据instru
当我重新启动 Eclipse 时,我的 Mylyn 任务已存储,但它们的上下文为空。 我正在使用本地存储库,并且希望在重新打开 Eclipse 时恢复任务的上下文。 我使用的是 Eclipse 3.4
我已经找到了这个问题的解决方案,但我会发布这个问题,以防其他人(或将来的我)遇到这个问题,因为我花了很长时间才找到解决方案,希望我可以节省其他人的时间。 在 Eclipse 中,Mylyn 插件允许当
我将 EGit 与 mylyn 一起使用。当我以前将我的代码提交到 git 存储库时,提交对话框将由显示任务 ID、任务描述等的默认消息填充。 现在我再也看不到默认的提交消息了。 我在网上查了一下
我正在使用Eclipse Galileo。我想将Eclipse任务列表连接到Google Code项目。我需要一个连接器来执行此操作。可以通过任务资源库 View ->添加TaskRepopsitor
如果您使用 Mylyn 任务焦点用户界面,则程序包浏览器将显示 sourceFolder/package/fileName/classTypeName/methodName 对于事件任务上下文中的任何
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 3年前关闭。 Improve this questi
如果我尝试安装 GitHub Mylyn Connector,我会收到此错误: Cannot complete the install because one or more required ite
我正在使用 Mylyn 的本地存储库。我想将存储库另存为项目版本控制路径中的文件。这样我就可以为我的任务进行备份和版本控制。如何设置存储库路径? 最佳答案 窗口/偏好设置/任务 打开“高级”下的隐藏字
嘿,我想开发自己的 mylyn 连接器,请帮我看看我应该从哪里开始,并请告诉我在哪里可以找到 mylyn 源代码。我使用 dev.eclipse.org 检查了 CVS 存储库 eclipse,但我没
当我在 Mylyn 中创建一个新任务并激活它时,包资源管理器中的所有资源都默认从新上下文中排除,我必须手动选择一个一个我想要包含的所有资源。有没有办法告诉 Mylyn 默认包含并手动排除我不想要的东西
在我的 Eclipse Preferences -> Java -> Editor -> Content Assist -> Advanced 设置中,我看到以下内容: Java 非类型提案 Java
在 Eclipse 中,我使用 Mylyn 插件从存储库查看我打开的票证。但是,同样在我们的代码中,我们有一些地方可以看到 TODO 标记。 TODO 标记显示在“任务” Pane 中,而 Mylyn
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我已经设置了以下内容: 在 Eclipse 中安装 Mylyn 安装了 Bugzilla 连接器 为 Mylyn 项目安装了颠覆性 SVN 集成 我已经转到 Windows -> Preference
我想为我的团队使用的错误存储库编写一个 mylyn 连接器,我能够设置工作区并通过使用 Web 资源以及 Bugzilla 和 Trac 代码激活一些小东西。 但是我迷路了,这个问题有好的教程吗? 也
我试图让 Mylyn 和 Redmine 一起工作,这样我就可以在 Eclipse 中管理任务。我在 redmine wiki 上看到了这个 http://www.redmine.org/wiki/r
我使用 eclipse 3.5,刚刚安装了 Mylyn 3.4.2。这很棒,但是...... 当我打开旧任务列表 (//TODO) 时,没有用于定义过滤器的菜单选项。 相反,会出现 Mylyn 焦点图
在 Mylyn 中,如果您激活任务并使用上下文 UI 功能,包资源管理器会显示属于该任务上下文的类以及您所在的方法。 是否可以将 Mylyn Context UI 自定义/配置为: 仅显示类名 不要深
是否有类似于 org 模式文件的 mylyn 连接器之类的东西? 和其他一些人一样,我也是 Mylyn 和组织模式的粉丝。 ( How do you organize your work? ) 它们都
我是一名优秀的程序员,十分优秀!