diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-02-09 10:31:14 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-02-09 10:31:14 +0800 |
| commit | 12d08d599a41b15e0a20113d1a521c8c3a232e79 (patch) | |
| tree | 2052020ecaa9a07043e1a76410ad5649226d728d /README.md | |
Initialize MarkDialog project with parser and workspace structure
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..3789d8f --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# MarkDialog + +> Write your story with Markdown! + +> [!WARNING] +> This article is translated from `README_zh_CN.md` + +> [!NOTE] +> This is a project I tinkered with in my spare time, and many aspects are still rough around the edges. +> +> I also experimentally used **Vibe Coding** in it, so you might encounter some unconventional code. Please bear with me. + +## Why MarkDialog? + +The starting point for this project was actually quite simple: I wanted to prototype an AVG visual novel and needed people around me to **be able to start writing the story immediately**. + +But the reality is: + +- Graphical editors are too heavy. +- Ink and Yarn Spinner are powerful, but both require learning. +- Writing in JSON / XML / custom DSLs isn't "natural" enough. + +What I really wanted was a format that people already know how to write, requires no learning, can be opened and written in immediately, and can be run right after writing. + +Then it suddenly hit me: + +### Isn't Markdown exactly that? + +You can easily write it in **Typora**, **Obsidian**, **VS Code**, or even **Vim/NeoVim**. + +> What more could you ask for? + +When this idea popped into my head, I got really excited. + +And so, MarkDialog was born. + + + +## What is MarkDialog? + +It allows you to: + +- Use level-six headings to switch characters. +- Use regular Markdown for dialogue lines. +- Use lists for choices. +- Use links for jumps. +- Use code blocks for rich text controls like speed, color, and actions. +- Use images to change backgrounds. + +The Markdown you write is compiled into an IR (Intermediate Representation), which can then be parsed anywhere you want! + +For example: + +- Inline it into a Rust project. +- Import it into Unity / Unreal / Godot. +- Convert it to JSON. +- Convert it to anything. + + + +## MarkDialog Syntax? + +Generally speaking, if you know how to write Markdown, you know how to write MarkDialog. + +You can write: + +``` +# Title +> Use blockquotes for comments + +###### Zhang San +Use a level-six heading for **character names**. + +Use unordered lists for choices +- Good morning +- Good afternoon +- Good evening + +Ordered lists work too +1. Good morning +2. Good afternoon +3. Good evening + +> Use hyperlinks for jumps +What's for lunch? +- Pizza [](#Eat_Pizza) +- Pasta [](#Eat_Pasta) +- Nothing +Or *eat nothing at all*! + +## Eat_Pizza +Eat pizza + +## Eat_Pasta +Eat pasta + +> Use images to switch backgrounds + +``` + +It's that simple! + + + +## Open Source License + +Haha, I'm using the MIT License. Feel free to play around with it! |
