# aardio 范例: Markdown 转 RTF 



````aardio
// Markdown → RTF
// 相关范例 Markdown → Word: https://www.aardio.com/zh-cn/docs/examples/Text/Markdown/md2docx.html

import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="Markdown 转 RTF ";right=881;bottom=594;bgcolor=0xF6F4F3)
winform.add(
bkplus={cls="bkplus";left=8;top=11;right=873;bottom=585;align="left";bgcolor=0xFFFFFF;border={color=0xC0C0C0;radius=8;width=1};anchors={left=1;top=1;right=1;bottom=1};z=1};
editMarkdown={cls="richedit";left=14;top=14;right=405;bottom=581;aw=1;bgcolor=0xFFFFFF;anchors={left=1;top=1;bottom=1};hscroll=1;multiline=1;vscroll=1;z=3};
editRtf={cls="richedit";left=413;top=14;right=867;bottom=581;bgcolor=0xFFFFFF;anchors={top=1;right=1;bottom=1};hscroll=1;multiline=1;vscroll=1;z=2};
splitter={cls="splitter";left=406;top=11;right=411;bottom=585;bgcolor=0xB4B4B4;anchors={top=1;bottom=1};z=4}
)
/*}}*/

winform.show();
winform.editMarkdown.enablePopMenu();
winform.editRtf.enablePopMenu(function(){
	return { 
		{ /*分隔线*/ }; 
		{ "复制 RTF 代码";  function(id){
			import win.clip;
			
			var rtf = winform.editRtf.streamOut(0x8002);
			if(!#rtf) rtf = winform.editRtf.rtf;
			win.clip.write(rtf);
		}}; 
	}
})

import win.debounce;
import string.markdown.toRtf;

// 自动换行与水平滚动并不冲突：正文按窗口换行，宽表格和长代码仍可横向滚动。
winform.editRtf.wrap = true;
winform.editRtf.readonly = true;
winform.editRtf.setPadding(5,5,0,5);//设置边距

winform.editMarkdown.onChange = win.debounce(function(){
	string.markdown.toRtf.render(winform.editRtf,owner.text);
},50);;

winform.editMarkdown.text = "# 一级标题

这是一段 **粗体**、*斜体*、`行内代码` 和 ~~删除线~~ 的混合文本。
这一行通过软换行测试是否会被折叠成空格而不是断行。

&#xF014; 删除图标 - 支持 NCR 编码表示 FontAwesome 字体图标。需要 fonts.fontAwesome 字体库。  

支持 emoji 🔥 

高频 KaTex 单符号公式 $\Rightarrow$

> 引用块

## 代码块
```aardio
var x = 1;
var y = 2;
print(x + y)
```

## 表格
| 姓名 | 年龄 | 城市 |
| --- | --- | --- |
| 张三 | 18 | 北京 |
| 李四 | 20 | 上海 |


## 二级标题

### 无序列表
- 项目一
- 项目二
- 项目三

### 有序列表
1. 第一步
2. 第二步
3. 第三步

### 任务列表
- [x] 已完成的任务
- [ ] 待办的任务

## 引用块
> 这是一段引用文字
> 引用的第二行


## 链接
访问 [aardio 官网](https://www.aardio.com) 了解更多。

---

文档结束。";

winform.splitter.split(winform.editMarkdown,winform.editRtf);

win.loopMessage();
````

