tdmul
Version:
Transfer Data Mark-Up Language - Read, write, and manipulate TDMUL files
148 lines (103 loc) • 2.67 kB
Markdown
# TDMUL – Tranfer Data Markup Language
TDMUL is a **simple, human-readable markup language** designed for storing and transferring structured data. It’s inspired by JSON but is **easier to read, write, and edit by hand**, and supports **dynamic references, lists, and nested sections**.
## Features
* **Human-friendly syntax** – indentation-based, no braces or quotes needed for simple values.
* **Automatic type inference** – numbers, booleans, strings, and lists are automatically detected.
* **Nested sections** – organize data hierarchically with indentation.
* **Dynamic references** – reuse values with `&refName`.
* **Read & write support** – parse TDMUL files and create new ones from JavaScript.
## Syntax Overview
### Sections
Sections are indicated with `::` at the end of a line:
```
users::
user:
id = 101
name = John Doe
tags = [admin, editor]
```
### Key-Value Pairs
Simple assignments use `=`:
```
main_email = john@example.com
age = 30
active = true
```
### Lists
Lists are enclosed in square brackets `[]`:
```
tags = [admin, editor, editor-in-chief]
```
### Dynamic References
Reuse a value defined elsewhere using `&`:
```
primary_email =
```
## Using TDMUL in JavaScript
### Loading a TDMUL file
```javascript
const TDMUL = require('./index.js');
const tdmul = new TDMUL();
tdmul.load('data.tdmul');
console.log(tdmul.getData());
```
### Modifying Data
```javascript
const data = tdmul.getData();
// Add a new user
data.users.push({
user: {
id: 104,
name: 'Alice',
email: 'alice@example.com',
tags: ['editor'],
age: 28
}
});
tdmul.setData(data);
```
### Saving Data Back to a File
```javascript
tdmul.save('output.tdmul');
```
## Example TDMUL File
```
users::
user:
id = 101
name = John Doe
email = john@example.com
tags = [admin, editor]
user:
id = 102
name = Jane Smith
email = jane@example.com
tags = [editor]
main_email = john@example.com
```
## Why TDMUL?
TDMUL is designed for people who **don’t want to deal with JSON braces and quotes all the time**.
It’s ideal for:
* Configuration files
* Simple databases
* Data transfer between scripts or services
* Rapid prototyping
## Installation
Clone the repository and use Node.js:
```bash
git clone <your-repo-url>
cd tdmul
node test.js
```
## Notes
* TDMUL is **case-sensitive**.
* Indentation matters — always use spaces consistently.
* Lists can contain numbers, booleans, or strings.
* Dynamic references must refer to existing keys.