2012-05-07 46 views

cevap

3

bu bağlantıyı yardımcı olabilir olabilir:

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

+0

Cevabınız için teşekkürler içermelidir

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

: Burada basitleştirilmiş birim testi. Ama istediğim, bir HTML dosya içeriğini girdi olarak alan ve bana Wiki biçimlendirme metnini veren bir java API'sı. –

+0

@Vinay Bedre - sorunuza cevabımı görün; Dönüşümünüzü gerçekleştirmek için Mylyn kitaplığını kullanabilirsiniz. – JoshDM

-1

olarak bildiğim kadarıyla Confluence wiki biçimlendirme HTML dönüştürmek için bir yolu yoktur. Ve Atlassian, konfluence 4.x'te tekstili wiki işaretlemesi olarak kullanmayı bıraktığı için, bir dönüşüme gerek yoktur. Sayfa formatı ist XHTML.

+2

@Graham Hannington bu cevabı, yanıtının altındaki yorumlarda onaylamamıştır ve hem kendimiz hem de HTML'yi Confluence wiki biçimlendirmesine dönüştürmenin yollarını yayınladık. – JoshDM

10

Wikifier'u deneyin.

Tam olarak ne istediğinizi yapmaz, ancak yeterli olduğunu veya yararlı bir başlangıç ​​noktası olduğunu görebilirsiniz.

Wikifier, Confluence 4 XML depolama biçiminin (diğer bir deyişle, tek bir belge kök öğesi olmadan, Confluence Kaynak Düzenleyicisi eklentisi tarafından sunulan şekilde) Conflicence 3 wiki işaretlemesinin snippet'lerini dönüştürür.

Sorunuzla neden bu kadar alakalı? Confluence 4 XML depolama biçimi, XHTML öğeleri ve öznitelikleriyle aynı isimlere sahip bazı öğeler ve özellikler içerir.

Daha fazla bilgi için, Wikifier web sayfasındaki Yardım bağlantısını tıklatın.

Not: Wikifier web sayfası tarafından kullanılan XSLT stil sayfası, ilgili şema paketi ile birlikte gelen XSLT stil sayfasından biraz daha günceldir.

Bu daha sonra ekledi: Wikifier RT İstediğinize daha yakındır.

+3

@Christian Koch: Confluence 4 depolama biçimi XHTML değil. Daha doğrusu, Confluence 4 XML depolama formatı, XHTML gövde elemanının (ve bazı özelliklerinin bazıları) bazı soyadlarıyla aynı isimlere sahip olan elemanlar içerir. Atlassian, Confluence 4 depolama formatını XHTML olarak ifade ediyordu, ancak son zamanlarda (bazı komutlarla) "XHTML tabanlı" olarak bahsediyorlar. "XHTML'nin hangi alt grubu Konfluence'yi destekliyor?" Sorusuna. (2012-04-12), Atlassian, "bu sayfa zaten kapsamlı - bu sayfada belgelenmiş olan etiketleri görmezden gelinebilir" yanıtını verdi. " –

+0

Wikifier RT'yi denedim ve mükemmel." Teşekkür ederim. – raisercostin

4

WikiText Standalone'u kullanarak Mylyn'de bunu nasıl yapacağınız. İstediğiniz Wiki işaretlemesi için uygun DocumentBuilder'u değiştirin (mevcut olanı görmek için API'yi kontrol etmeniz gerekir; TextileDocumentBuilder da mevcut).

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

Dosya filename.html: Ben HTML elde etmeyi başardı

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

Kavanozu Maven üzerinden indirdim ancak HTMLParser dosyasını bulamadım. – Tarun

1

:

<HTML> 
<BODY> 
<p>This is <b>bold text</b> and some <i>italic text</i>.<br/><br/>TEST!</p> 
</BODY> 
</HTML> 

Kavşak çıkışını üretir aleyhte Atlassian'ın kendi Java kütüphanelerinden DefaultWysiwygConverter kullanarak akıcılık stili WikiMarkup. POM doğru depoları ve bağımlılıkları

<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

'a yardım edebilir misiniz, bence bu en iyi seçenek. Doğrudan Atlassian'ın kendi ayrıştırıcısını kullanıyor. Bazı insanlar, [atlassian forumlarda] (https://community.atlassian.com/t5/Jira-questions/How-to-convert-html-to-Atlassian-markup-in-java-app/qaq-p/ 657726), bağımlılıkları düzeltmede sorun yaşıyor, bu yüzden bu örneği [github] (https://github.com/paul-nelson-baker/html-to-jira-markup) üzerinde çalışan bir POM ile sunarım. –