2012-05-07 19 views

Odpowiedz

3

Może ten link pomoże:

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

+0

Dzięki za odpowiedź. Ale potrzebuję interfejsu API języka Java, który pobierze zawartość pliku HTML i udostępni tekst znaczników Wiki. –

+0

@Vayay Bedre - zobacz moją odpowiedź na twoje pytanie; Możesz użyć biblioteki Mylyn, aby wykonać konwersję. – JoshDM

-1

O ile wiem, nie ma sposobu, aby przekonwertować HTML do zbieżnym wiki znaczników. A ponieważ Atlassian przestaje używać tekstyliów jako znaczników Wiki w Confluence 4.x, nie ma potrzeby konwersji. Format strony ist XHTML.

+2

@Graham Hannington obalił tę odpowiedź w komentarzach poniżej swojej odpowiedzi, a zarówno on, jak i ja napisaliśmy sposoby konwertowania znaczników HTML na Confluence. – JoshDM

10

Wypróbuj .

Nie robi dokładnie tego, czego oczekujesz, ale może się okazać, że działa wystarczająco lub jest przydatnym punktem początkowym.

Wikifier konwertuje fragmenty formatu Confluence 4 XML (czyli prezentowanego przez wtyczkę Confluence Source Editor, bez pojedynczego elementu głównego dokumentu) do marży Wiki Confluence 3.

Dlaczego to w ogóle dotyczy Twojego pytania? Format przechowywania Confluence 4 XML zawiera niektóre elementy i atrybuty, które mają takie same nazwy jak elementy i atrybuty XHTML.

Aby uzyskać więcej informacji, kliknij link Pomoc na stronie WikiFier.

Uwaga: Arkusz stylów XSLT używany przez stronę WWW WikiFier jest nieco nowszy niż arkusz stylów XSLT w pakiecie z powiązanym pakietem schematu.

Dodana później: Wikifier RT jest jeszcze bliższa temu, co chcesz.

+3

@ Chrześcijański Koch: format przechowywania Confluence 4 nie jest XHTML. Zamiast tego, format zapisu Confluence 4 XML zawiera elementy, które mają takie same nazwy jak niektóre elementy potomne elementu treści XHTML (i niektóre z ich atrybutów). Atlassian odwoływał się do formatu przechowywania Confluence 4 jako XHTML, ale ostatnio (z pewnym podpowiadaniem) odnosił się do niego jako "oparty na XHTML". Na pytanie "Jaki podzbiór XHTML obsługuje Confluence?" (2012-04-12), Atlassian odpowiedział "ta strona jest już wyczerpująca - wszelkie tagi, których jeszcze nie widzisz, udokumentowane na tej stronie, prawdopodobnie zostaną usunięte" –

+0

Próbowałem Wikifier RT i jest doskonały. Dziękuję Ci. – raisercostin

4

Oto jak to zrobić w Mylyn przy użyciu WikiText Standalone. Zastąp odpowiednie DocumentBuilder dla potrzebnego znacznika Wiki (musisz sprawdzić API, aby zobaczyć, co jest dostępne, istnieje również TextileDocumentBuilder).

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

pliku nazwapliku.html:

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

Produkuje wyjście Confluence:

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

Pobrałem słoik za pośrednictwem Mavena, ale nie mogłem zlokalizować pliku HTMLParser. Czy mógłbyś pomóc – Tarun

1

udało mi się osiągnąć HTML Kon w stylu Fluent WikiMarkup przy użyciu DefaultWysiwygConverter z własnych bibliotek Java Atlassiana. Oto uproszczony testów jednostkowych:

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 musi zawierać poprawne repozytoria i zależności

<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

Myślę, że to najlepsza opcja. Używa bezpośrednio parsera Atlassiana. Niektórzy ludzie [na forach atlasowych] (https://community.atlassian.com/t5/Jira-questions/How-to-convert-html-to-Atlassian-markup-in-java-app/qaq-p/ 657726), mają problemy z uzyskaniem poprawnych zależności, więc dostarczam ten przykład działającego POM na [github] (https://github.com/paul-nelson-baker/html-to-jira-markup). –

Powiązane problemy