浏览代码

Add Introduction and start Defenitions

Evgeniy Parfenyuk 2 月之前
父节点
当前提交
c2e61e79a5
共有 1 个文件被更改,包括 60 次插入0 次删除
  1. 60 0
      docs/vnrs_specification.md

+ 60 - 0
docs/vnrs_specification.md

@@ -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