2012-05-07 34 views

Trả lời

3

Có thể liên kết này có thể giúp:

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

+0

Cảm ơn trả lời của bạn. Nhưng những gì tôi muốn là một API java mà sẽ có một nội dung tập tin HTML như đầu vào và cho tôi văn bản đánh dấu Wiki. –

+0

@Vinay Bedre - xem câu trả lời của tôi cho câu hỏi của bạn; Bạn có thể sử dụng thư viện Mylyn để thực hiện chuyển đổi của mình. – JoshDM

-1

Theo như tôi biết không có cách nào để chuyển đổi HTML để đánh dấu wiki Confluence. Và kể từ khi Atlassian ngừng sử dụng dệt may như đánh dấu wiki trong Confluence 4.x không cần chuyển đổi. Định dạng trang ist XHTML.

+2

@Graham Hannington đã bác bỏ câu trả lời này trong phần bình luận bên dưới câu trả lời của anh ấy, và cả anh ấy và tôi đã đăng cách chuyển đổi HTML sang đánh dấu wiki Confluence. – JoshDM

10

Hãy thử Wikifier.

Nó không làm chính xác những gì bạn muốn, nhưng bạn có thể tìm thấy nó đủ, hoặc là một điểm khởi đầu hữu ích.

Wikifier chuyển đổi các đoạn của định dạng lưu trữ XML Confluence 4 (có nghĩa là, được trình bày bởi trình biên tập nguồn confluence Source Editor, không có phần tử gốc tài liệu) vào đánh dấu wiki Confluence 3.

Tại sao điều này có liên quan đến câu hỏi của bạn? Định dạng lưu trữ XML Confluence 4 bao gồm một số phần tử và thuộc tính có cùng tên với các phần tử và thuộc tính XHTML.

Để biết thêm thông tin, hãy nhấp vào liên kết Trợ giúp trên trang web Wikifier.

Lưu ý: Biểu định kiểu XSLT được sử dụng bởi trang web Wikifier hơi gần đây hơn so với biểu định kiểu XSLT đi kèm với gói lược đồ có liên quan.

Điều này được thêm sau: Wikifier RT thậm chí còn gần hơn với những gì bạn muốn.

+3

@Christian Koch: định dạng lưu trữ 4 lưu trữ không phải là XHTML. Thay vào đó, định dạng lưu trữ XML Confluence 4 bao gồm các phần tử có cùng tên như một số phần tử con của phần tử cơ thể XHTML (và một số thuộc tính của chúng). Atlassian sử dụng để tham khảo định dạng lưu trữ Confluence 4 như XHTML, nhưng gần đây (với một số nhắc) được gọi nó là "dựa trên XHTML". Đối với câu hỏi "Tập con XHTML nào hỗ trợ Confluence?" (2012-04-12), Atlassian trả lời "trang này đã được toàn diện - Bất kỳ thẻ nào bạn chưa thấy tài liệu trên trang này có thể sẽ bị xóa" –

+0

Tôi đã thử Wikifier RT và hoàn hảo. Cảm ơn bạn. – raisercostin

4

Đây là cách bạn làm điều đó trong Mylyn bằng cách sử dụng WikiText Standalone. Thay thế DocumentBuilder thích hợp cho đánh dấu wiki mong muốn của bạn (bạn sẽ phải kiểm tra API để xem những gì có sẵn; TextileDocumentBuilder cũng tồn tại).

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

file filename.html:

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

Tạo ra Confluence:

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

Tôi đã tải xuống jar qua Maven nhưng không thể định vị tệp HTMLParser. Bạn có thể vui lòng giúp – Tarun

1

tôi đã có thể đạt được HTML để Con WikiMarkup kiểu fluence sử dụng DefaultWysiwygConverter từ các thư viện Java của Atlassian. Dưới đây là một thử nghiệm đơn vị đơn giản:

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

Các POM phải bao gồm các kho chính xác và phụ thuộc

<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

Tôi nghĩ đây là lựa chọn tốt nhất. Nó trực tiếp sử dụng trình phân tích cú pháp của Atlassian. Một số người, [trên diễn đàn cổ điển] (https://community.atlassian.com/t5/Jira-questions/How-to-convert-html-to-Atlassian-markup-in-java-app/qaq-p/ 657726), đang gặp khó khăn khi nhận được các phụ thuộc chính xác, vì vậy tôi đang cung cấp ví dụ này với POM đang hoạt động trên [github] (https://github.com/paul-nelson-baker/html-to-jira-markup). –

Các vấn đề liên quan