Markdown.Avalonia 컨트롤
커스텀을 통해 태그에 따른 색상 넣을 수 있고
커스텀 하기 전에 스타일도 변형하여 사용할 수 있는 것에 신기하였습니다.
하지만 전 사용을 포기하려고 합니다.
첫번째 이유 : 다른 형태의 Markdonw 내용 생성
vscode, 라이더 에서는 두개의 서로 다른 타입의 코드 블럭을 연속적으로 만들었을 때 사이에 문단의 간격이 존재했지만 아발로니아의 마크다운뷰어에서는 각 언어에 따른 색상변화는 하였음에도 하나의 코드블럭으로 붙는 현상이 있었습니다.
코드블럭 사이에 <br/>
을 넣어 인위적으로 분리는 할 수 있지만 게시글을 github codespace 든, 라이더 든 vscode 든 언제 어느 곳에서든 동일한 조건으로 작성을 진행해야하기 때문입니다.
두번째 이유 : 텍스트 드래그가…?
아발로니아 wasm의 특성 상 윈도우 응용프로그램을 웹페이지로 띄었놨기 때문입니다.
제 블로그를 들어가신 후 devtools
에 html 태그들을 보면 html태그들은 딱 하나밖에 보이지 않을겁니다.
세번째 이유 : 어떻게 쓰는걸까?
Avalonia에 대표적으로 많이 사용하고 있는 Mardown이지만 물론 wpf에서 가져와 아발로니아로 만든것이지만서도…뭔가 2프로 부족한 느낌이 들었습니다.
결론
마크다운 하나 때문에 아발로니아 블로그 Slog를 무산시킬 수 없기 때문에 다른 방법을 찾아냈습니다.
- markdown string 을 html 태그로 변형 시켜주는
Markdig
- HTML 마크다운을 텍스트를
Avalonia.HtmlRenderer
를 통해 뿌려주는 방식입니다. (얼마 전 OpenSilver에 비슷한 예제로 대체 XAML과 Blazor 를 동시에 사용 할 수 있는 플러그인 (이라고 해야 할까요?) - 이광석 님의 게시물 #6)
우선 위 포기한 이이유 3가지에 모두 부합 하였고 실제 테스트에서도 만족하였습니다.
p.s 위 방법 대로만 마크다운 뷰어가 없어서 포기한 OpenSilver
로도 가능하지 않겠냐? 라고 생각이 들었습니다만, Nuget에서 Markdig
검색해도 보이지 않습니다…