|
|
@@ -0,0 +1,60 @@
|
|
|
+# VINORA SCREENPLAY SPECIFICATION
|
|
|
+Version 0.0.1 (14.10.2025)
|
|
|
+Evgeniy "Parthen" Parfenyuk
|
|
|
+
|
|
|
+# 1. Introduction
|
|
|
+## 1.1 What is Vinora Screenplay?
|
|
|
+Vinora Screenplay is plain text format for writing
|
|
|
+[visual novel](https://en.wikipedia.org/wiki/Visual_novel) screenplays.
|
|
|
+
|
|
|
+It's based on (and one-way compatible with) Markdown, simple markup language
|
|
|
+developed by John Grubber and Aaron Swartz in 2004. It was developed to
|
|
|
+simplify web pages writing and
|
|
|
+While Markdown originally doesn't have specification (only `Markdown.pl`
|
|
|
+as reference implementation), we use
|
|
|
+[CommonMark](https://spec.commonmark.org) for this role.
|
|
|
+
|
|
|
+## 1.2 Why it's needed?
|
|
|
+Vinora Screenplay is designed for use in the Vinora Engine. The goals of it
|
|
|
+is to be as simple and compatible as possible.
|
|
|
+Markdown is a popular format. There is a good change that you're already
|
|
|
+familiar with \**italic*\* or \_\___bold__\_\_ syntax. So, by making
|
|
|
+Vinora Screenplay as Markdown-like language we fulfill both of our goals
|
|
|
+(it's simple to use since it's known and it's compatible with dozens
|
|
|
+of existing Markdown interpreters).
|
|
|
+
|
|
|
+## 1.3 Comparison with another techinal (TODO)
|
|
|
+
|
|
|
+[...]
|
|
|
+
|
|
|
+
|
|
|
+# 2. Definitions
|
|
|
+
|
|
|
+## 2.1 Technical definitions
|
|
|
+
|
|
|
+**Character** is the smallest unit of text that carries a semantic or
|
|
|
+visual meaning in a writing system. It can be a letter, digit,
|
|
|
+punctuation mark, space, special character (e.g., "@" or newline),
|
|
|
+or another element used to represent information in text form.
|
|
|
+*NOTE: emojis are images, and not text characters.
|
|
|
+So-called Unicode "combined characters" are considered (and rendered) as
|
|
|
+multiple separate characters*.
|
|
|
+
|
|
|
+**Newline characters** are special characters that end a line.
|
|
|
+Depending of the system, default newline character would be CR (carriage
|
|
|
+return, `\r`), LF (line feed, `\n`) or even both (CR + LF).
|
|
|
+*NOTE: All of them are considered valid end of line, but they are replaced
|
|
|
+with LF (`\n`) character.*
|
|
|
+
|
|
|
+**Whitespace characters** are characters which are rendered into whitespace.
|
|
|
+They are invisible, but they are affect formatting. For example, space
|
|
|
+character separate different words.
|
|
|
+*All newline characters are whitespace characters*.
|
|
|
+Full list of whitespace characters: *tab (horizontal and vertical), space,
|
|
|
+carriage return, line feed, form feed.*
|
|
|
+
|
|
|
+**Line** is a sequence of zero or more characters, that ends with newline
|
|
|
+or end of file condition. Line which has zero characters or only whitespace
|
|
|
+characters called **empty line**.
|
|
|
+
|
|
|
+## 2.2 Visual novels definitions
|