2012-05-07 38 views

答えて

3

は、このリンクを助けることができるかもしれませ:

http://labs.seapine.com/htmltowiki.cgi

+0

お返事をありがとうを含まなければならない

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); 

:ここでは単純化されたユニットテストです。しかし、私が望むのは、入力としてHTMLファイルの内容を取り、Wikiのマークアップテキストを与えるjava APIです。 –

+0

@Vinay Bedre - あなたの質問に対する私の答えを見てください。 Mylynライブラリを使用して変換を実行できます。 – JoshDM

-1

は、私の知る限りのConfluence wikiマークアップにHTMLに変換する方法はありません。 AtlassianはConfluence 4.xでwikiマークアップとしてテキスタイルを使用しなくなるため、変換の必要はありません。ページ形式はist XHTMLです。

+2

@Graham Hanningtonは彼の答えの下のコメントにこの回答を反駁しました。彼と私は共にHTMLをConfluence wikiマークアップに変換する方法を投稿しました。 – JoshDM

10

お試しWikifier

それはあなたが望むものを正確には行いませんが、十分であるか、または有用な出発点です。

ウィキファイアは、Confluence 4 XMLストレージフォーマットのスニペット(つまり、単一のドキュメントルート要素を持たないConfluenceソースエディタプラグインのプレゼンテーション)をConfluence 3 wikiマークアップに変換します。

なぜあなたの質問に関連しているのですか? Confluence 4 XMLストレージフォーマットには、XHTMLの要素や属性と同じ名前の要素や属性が含まれています。

詳細については、Wikifier Webページの[Help]リンクをクリックしてください。

注:Wikifier Webページで使用されるXSLTスタイルシートは、関連するスキーマパッケージにバンドルされているXSLTスタイルシートよりも若干新しいものです。

これは後で追加されます:Wikifier RTは、あなたが望むものにさらに近づいています。

+3

@Christian Koch:Confluence 4の保存形式はXHTMLではありません。むしろ、Confluence 4 XMLストレージフォーマットには、XHTML本体要素のいくつかの子孫(およびその属性の一部)と同じ名前を持つ要素が含まれています。 AtlassianはConfluence 4のストレージフォーマットをXHTMLとして参照していましたが、最近(あるプロンプトを表示して)「XHTMLベース」として参照しています。 「ConfluenceはどのようなXHTMLのサブセットをサポートしていますか? (2012-04-12)、Atlassianは「このページはすでに包括的です。あなたがまだこのページに記載されていないタグは、削除される可能性が高い」と回答しました。 –

+0

私はWikifier RTを試してみました。ありがとうございました。 – raisercostin

4

ここでは、WikiText Standaloneを使用してMylynで行う方法です。適切な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> 

は、Confluenceの出力を生成します:

This is *bold text* and some _italic text_. 
\\TEST! 
+0

Maven経由でjarをダウンロードしましたが、HTMLParserファイルが見つかりませんでした。あなたは助けてください – Tarun

1

私はHTMLを達成することができましたコンAtlassian独自のJavaライブラリーのDefaultWysiwygConverterを使用したフルエンススタイルのWikiMarkup。 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> 
+1

私はこれが最良の選択だと思います。これはAtlassian自身のパーサを直接使用しています。いくつかの人々、[atlassian forums](https://community.atlassian.com/t5/Jira-questions/How-to-convert-html-to-Atlassian-markup-in-java-app/qaq-p/ 657726)が依存関係を正しく取得できないため、この例では[github](https://github.com/paul-nelson-baker/html-to-jira-markup)の作業用POMを提供しています。 –

関連する問題