Mylyn的wikitext的API文档具有功能wiki标记转换为HTML,但我找不到功能转换/解析HTML代码维基标记。 类MarkupParser
有方法parseToHTML
,但我在哪里可以找到相反的?
Answer 1:
可能是这个链接可以帮助:
http://labs.seapine.com/htmltowiki.cgi
Answer 2:
尝试Wikifier 。
它不会做你想要什么,但你可能会发现它确实不够,或者是一个很好的起点。
Wikifier转换合流4 XML存储格式的片段(即,由合流源代码编辑器插件作为呈现,没有一个单一文件的根元素)进入合流3维基标记。
这是为什么在所有有关你的问题? 合流4 XML存储格式包括一些元素和属性具有相同的名称作为XHTML元素和属性。
欲了解更多信息,请点击Wikifier网页上的帮助链接。
注:由Wikifier网页使用XSLT样式表是略高于与相关架构包捆绑在一起的XSLT样式表更近一些。
这后来又说: Wikifier RT是更接近你想要什么。
Answer 3:
这里是你用如何做到这一点的Mylyn的wikitext的独立 。 替代相应DocumentBuilder
您所需的Wiki标记(你必须检查API来看看有什么可用; TextileDocumentBuilder
也存在)。
文件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>
产生合流的输出:
This is *bold text* and some _italic text_.
\\TEST!
Answer 4:
我是能够实现HTML wiki标记语言使用到合流式DefaultWysiwygConverter
从Atlassian的自己的Java库。 这里有一个简单的单元测试:
import com.atlassian.renderer.wysiwyg.converter.DefaultWysiwygConverter;
String htmlString = "This is <em>emphasized</em> and <b>bold</b>";
DefaultWysiwygConverter converter = new DefaultWysiwygConverter();
String wikiMarkupString = converter.convertXHtmlToWikiMarkup(htmlString);
Assert.assertEquals("This is _emphasized_ and *bold*", wikiMarkupString);
该POM必须包括正确的信息库和依赖关系
<dependency>
<groupId>com.atlassian.renderer</groupId>
<artifactId>atlassian-renderer</artifactId>
<version>8.0.5</version>
<exclusions>
<exclusion>
<!-- This exclusion is necessary if you are in a situation which
it conflicts, EG: using spring-boot -->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<repositories>
<repository>
<!-- https://developer.atlassian.com/docs/advanced-topics/working-with-maven/atlassian-maven-repositories -->
<id>atlassian-public</id>
<url>https://packages.atlassian.com/maven/repository/public</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
</repository>
</repositories>
Answer 5:
据我所知是没有办法将HTML转换成合流维基标记。 而且,由于Atlassian的停止使用纺织品作为合流4.x版的维基标记没有必要的转换。 页面格式IST XHTML。
文章来源: How do I convert HTML code to Confluence-style Wiki Markup?