49 lines
1.1 KiB
Markdown
49 lines
1.1 KiB
Markdown
|
# OATS
|
||
|
|
||
|
**O**utput **A**gnostic **T**agging **S**ystem aka. OATS implemented in Lua.
|
||
|
|
||
|
## Format
|
||
|
|
||
|
### Overview
|
||
|
|
||
|
- Tree structure like XML
|
||
|
- No attributes, only children
|
||
|
- No namespaces
|
||
|
- Nesting by Indentation
|
||
|
|
||
|
Nodes are enclosed with square brackets
|
||
|
|
||
|
```
|
||
|
[document]
|
||
|
```
|
||
|
|
||
|
Nested elements are indented
|
||
|
|
||
|
```
|
||
|
[document]
|
||
|
[nested-tag]
|
||
|
nested text
|
||
|
```
|
||
|
|
||
|
Multi-line text nodes are yet to be decided. As of now, the options are:
|
||
|
|
||
|
1. Consecutive non-empty lines of text are merged with a space
|
||
|
2. Any non-empty text line is always a single text element
|
||
|
|
||
|
**Note**: Consumers may have a better understanding of whether and how to join text
|
||
|
elements together, while the interpreter would have to decide on a joining
|
||
|
strategy (most likely concatenation with a space character in between).
|
||
|
|
||
|
### Conventions
|
||
|
|
||
|
OATS is a very simple format without many restrictions.
|
||
|
Nevertheless, the following suggestions are provided to ensure some reasonable
|
||
|
degree of uniformity between applications:
|
||
|
|
||
|
OATS tag names preserve case, but applications consuming OATS structures should
|
||
|
generally ignore case.
|
||
|
|
||
|
Tag names should use lowercase kebab-case.
|
||
|
|
||
|
## Interface
|