2010-07-16 5 views
3

가볍게 마크 업 된 텍스트를 스타일이 지정된 텍스트 서식 파일 라이브러리 (즉, Markdown # 또는 Textile.NET과 같은 것)로 알고 있지만 네이티브 XAML 문서 (또는 오히려 FlowDocument 모델 또는 유사한 WebBrowser를 사용하지 않으려면 WPF 앱에 직접 표시 할 수 있습니까?가볍게 스타일이 지정된 WPF 용 텍스트 라이브러리?

가벼운 것을위한 보너스 포인트. 나는 소스 텍스트에서 매우 빈번한 업데이트를 용인할만한 것을 기대하고있다.

또는 WPF에서 사용할 수있는 경량 HTML 렌더링 컨트롤이 있습니까? (나는 표준 WebBrowser가 경량이라고 생각하지 않는다.)

+1

나는이 문제가 정확히 있었기 때문에 경량 솔루션을 찾을 수 없었습니다. 그래서 나는 이것을 작성했습니다. 2 년이 지났음을 잘 알고 있지만 유용하다고 생각됩니다. https://github.com/theunrepentantgeek/Markdown.XAML – Bevan

답변

1

나는 미리 만들어진 그런 라이브러리를 모른다.하지만 도움이 될만한 생각이있다.

내 마음에 가장 먼저 떠오르는 질문은 RichTextBox를 사용할 수있을 때 Markdown과 같은 프리미티브를 사용하려는 이유입니다. StackOverflow 및 유사한 사이트는 브라우저의 한계 때문에 Markdown이 필요합니다. 그러나 WPF 응용 프로그램이 문제가되지 않습니다.

이렇게하는 이유는 WPF와 최저 공통 분모 웹 응용 프로그램 모두에서 문서를 편집 할 수 있어야한다는 것입니다. 이 경우 어쨌든 HTML로 마크 다운을 렌더링하는 엔진이 필요합니다. 따라서 동일한 엔진을 활용하여 마크 다운을 XAML로 변환하지 않으시겠습니까?

임의 HTML을 XAML로 변환하는 것은 매우 어렵지만 Markdown 변환기가 내뱉는 HTML 형식을 변환하는 것은 완전히 다른 문제입니다. 대부분의 Markdown 스타일 변환기는 몇 가지 간단한 HTML 태그 만 출력합니다.이 HTML 태그는 모두 동등한 XAML로 쉽게 변환 할 수 있습니다.

Markdown-to-HTML 변환기를 사용하는 경우 텍스트를 파싱하는 등의 작업을 수행해야하며 XML과 유사한 문서 (정확한 HTML)가 필요합니다. 상대적으로 파싱하기 쉽다. Markdown-to-HTML 변환기를 다른 곳에서 사용하는 경우 Markdown 구문 분석기는 HTML과 XAML의 사용법이 Markdown 구문을 구문 분석 할 때마다 똑같은 구문 분석기를 사용하므로 자신감을 가질 수 있습니다.

그래서 기본적으로 내가 생각하고 무엇을 : 당신이 MarkdownHtmlToXamlTranslator의 구현을 설계

string html = MarkdownEngine.MarkdownToHtml(markdown); 
string xaml = MarkdownHtmlToXamlTranslator.HtmlToXaml(html); 

무엇이든 주위 인하 엔진이 실제로 뱉어. 아주 단순한 XSLT 일 수도 있고 XDocument 구축 기술과 함께 LINQ to XML을 사용할 수도 있습니다. 어느 쪽이든 그것은 아주 작은 비트의 코드 여야합니다.

+0

지연에 대한 사과; 나는 다른 프로젝트에 정신이 없었다. Markdown 또는 유사하게 사용하려는 주된 이유는 원본 데이터가 기본적으로 큰 문자열 (서식 지정을 위해 RichTextBox 개체 모델을 사용할 기회 없음)으로 도착한다는 것입니다. 그리고 나는 그것이 상당히 읽기 쉽도록하고 싶습니다. 't), 최우선 사항은 아니다. 지원되는 기능의 측면에서 볼 때 현재는 주로 텍스트 스타일을 약간 변경 (색상 포함)하고 글 머리 기호 목록 (임의의 중첩 수준까지) 및 표를 사용합니다. – Miral

+1

이러한 요구 사항을 감안할 때 XAML FlowDocument를 직접 사용하는 것이 중요하다고 생각합니다. 1. FlowDocument는 큰 문자열이며, 2. RTF보다 훨씬 읽기 쉽습니다. 3. RichTextBox와 함께 사용할 필요가 없습니다. 내가 아직 귀하의 요구 사항 중 하나를 오해하지 않는 한, 이것은 명백한 방법으로 보인다.예를 들어, "big string"은 " 매우 easy!"이며, RichTextBox가 직접 처리합니다. markdown에 사용되는'** '와 같은 추가 단축키가 중요하다면 간단한 전 처리기를 사용하여 추가 할 수 있습니다. –

관련 문제