Mylyn Wikitext의 API 문서에는 위키 마크 업을 HTML로 변환하는 기능이 있지만 HTML 코드를 위키 마크 업으로 변환/파싱하는 기능을 찾을 수 없습니다. 클래스 MarkupParser
에는 parseToHTML
메서드가 있지만 그 반대로는 어디에서 찾을 수 있습니까?HTML 코드를 Confluence 스타일의 Wiki 마크 업으로 변환하려면 어떻게해야합니까?
답변
이 링크가 도움이 될 수있다
은 내가 아는 합류 위키 마크 업을 HTML로 변환하는 방법은 없습니다. Atlassian은 Confluence 4.x에서 wiki 마크 업으로 텍스타일을 사용하지 않기 때문에 변환 할 필요가 없습니다. 페이지 형식은 ist XHTML입니다.
@Graham Hannington이 그의 대답 아래의 댓글에이 답변을 반증했습니다. 그와 저는 HTML을 Confluence wiki 마크 업으로 변환하는 방법을 게시했습니다. – JoshDM
시도 Wikifier.
원하는대로 정확하게 수행되지는 않지만 충분하거나 도움이되는 시작점입니다.
위키 피 디아는 Confluence 4 XML 저장 형식 (즉, 단일 문서 루트 요소가없는 Confluence Source Editor 플러그인에 의해 제공됨)의 조각을 Confluence 3 위키 마크 업으로 변환합니다.
왜이 질문과 관련이 있습니까? Confluence 4 XML 스토리지 포맷은 XHTML 요소 및 속성과 이름이 같은 일부 요소 및 속성을 포함합니다.
자세한 내용을 보려면 위키피디아 웹 페이지에서 도움말 링크를 클릭하십시오.
참고 : Wikifier 웹 페이지에서 사용되는 XSLT 스타일 시트는 관련 스키마 패키지와 함께 번들로 제공되는 XSLT 스타일 시트보다 약간 더 최근의 것입니다.
나중에 추가 할 내용 : Wikifier RT은 원하는 내용에 더 가깝습니다.
@Christian Koch : Confluence 4 저장 형식은 XHTML이 아닙니다. 대신 Confluence 4 XML 저장 형식에는 XHTML 본문 요소의 일부 자손 (및 일부 속성)과 동일한 이름을 가진 요소가 포함됩니다. Atlassian은 Confluence 4 스토리지 포맷을 XHTML로 지칭하곤 했었지만 최근에는 (일부 프롬프트와 함께) "XHTML 기반"으로 언급했습니다. "Confluence는 어떤 XHTML 하위 세트를 지원합니까?" (2012-04-12), Atlassian은 "이 페이지는 이미 포괄적입니다 -이 페이지에 아직 문서화되지 않은 태그는 제거 될 것입니다" –
Wikifier RT를 시도한 결과 완벽했습니다. 고맙습니다. – raisercostin
다음은 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을 달성 할 수 있었다
This is *bold text* and some _italic text_.
\\TEST!
Maven을 통해 jar 파일을 다운로드했지만 HTMLParser 파일을 찾을 수 없습니다. 도와 주 시겠어요 – Tarun
:
<HTML>
<BODY>
<p>This is <b>bold text</b> and some <i>italic text</i>.<br/><br/>TEST!</p>
</BODY>
</HTML>
이 합류 출력을 생성합니다 범죄자 Atlassian의 자체 Java 라이브러리에서 DefaultWysiwygConverter
을 사용하는 fluence-style 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>
이것이 최선의 선택이라고 생각합니다. 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을 제공합니다. –
당신의 답장을 보내 주셔서 감사합니다를 포함해야
: 여기에 간단한 단위 테스트입니다. 하지만 내가 원하는 것은 HTML 파일 내용을 입력으로 받아서 Wiki 마크 업 텍스트를 제공하는 자바 API이다. –
@Vinay Bedre - 내 질문에 대한 답변보기. Mylyn 라이브러리를 사용하여 변환을 수행 할 수 있습니다. – JoshDM