summaryrefslogtreecommitdiff
path: root/README_zh_CN.md
blob: d1da960dca5771ea1b91fed920e61feac0e1c6cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# MarkDialog

> 用 Markdown 来书写您的剧情!

> [!NOTE]
> 这是我闲暇时间折腾出来的项目,很多地方还没打磨好。
>
> 另外我在里面实验性地使用了 **Vibe Coding**,所以你可能会看到一些不太正经的代码,请多包涵。

## 为什么会有 MarkDialog?

这个项目的起点其实很简单: 我想做一个 AVG 视觉小说的原型,需要让身边的人**能立刻上手写剧情**。

但现实是:

- 图形化编辑器太重
- Ink、Yarn Spinner 虽然强大,但都需要学习
- JSON / XML / 自定义 DSL 写起来都不够 “自然”

我真正想要的是一种大家已经会写、不需要学习、打开就能写、写完就能跑的格式。

然后我突然想到:

### Markdown 不就是这样的吗?

你可以在 **Typora****Obsidian****VS Code** 甚至 **Vim/NeoVim** 里轻松地编写他们

> 还要什么自行车?

当这个念头冒出来的时候,我整个人都兴奋了。 

于是,MarkDialog 就这样诞生了。



## MarkDialog 是什么?

它让你可以:

- 用六级标题切换角色
- 用普通 Markdown 写台词
- 用列表写选项
- 用链接写跳转
- 用代码块写速度、颜色、动作等富文本控制
- 用图片切换背景

你写的 Markdown 会被编译成一个 IR,然后解析到任何地方,只要你想!

比如

- 内联到 Rust 项目
- 导入 Unity / Unreal / Godot
- 转换为 Json
- 转换为任何东西



## MarkDialog 的语法?

一般来讲,只要你会写 Markdown,你就会写 Markdialog

你可以:

```
# 标题
> 使用引用块表示注释

###### 张三
使用六级标题表示**角色名称**

使用无序列表表示选项
- 早上好
- 中午好
- 晚上好

有序也行
1. 早上好
2. 中午好
3. 晚上好

> 使用超链接表示跳转
中午吃?
- 披萨 [](#Eat_Pizza)
- 意面 [](#Eat_Pasta)
- 不吃
或者 *什么都不吃*!

## Eat_Pizza
吃披萨

## Eat_Pasta
吃意面

> 使用图像来切换背景
![](backgrounds/park)
```

就是如此简单!



## 开源协议

哈哈,我采用 MIT License,放心玩去吧!