-->

如何转换HTML代码汇合式的维基标记?(How do I convert HTML code to

2019-07-29 07:20发布

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?