tdmul
v1.0.0
Published
Transfer Data Mark-Up Language - Read, write, and manipulate TDMUL files
Downloads
7
Maintainers
Readme
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 = [email protected]
age = 30
active = trueLists
Lists are enclosed in square brackets []:
tags = [admin, editor, editor-in-chief]Dynamic References
Reuse a value defined elsewhere using &:
primary_email = &main_emailUsing TDMUL in JavaScript
Loading a TDMUL file
const TDMUL = require('./index.js');
const tdmul = new TDMUL();
tdmul.load('data.tdmul');
console.log(tdmul.getData());Modifying Data
const data = tdmul.getData();
// Add a new user
data.users.push({
user: {
id: 104,
name: 'Alice',
email: '[email protected]',
tags: ['editor'],
age: 28
}
});
tdmul.setData(data);Saving Data Back to a File
tdmul.save('output.tdmul');Example TDMUL File
users::
user:
id = 101
name = John Doe
email = [email protected]
tags = [admin, editor]
user:
id = 102
name = Jane Smith
email = [email protected]
tags = [editor]
main_email = [email protected]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:
git clone <your-repo-url>
cd tdmul
node test.jsNotes
- TDMUL is case-sensitive.
- Indentation matters — always use spaces consistently.
- Lists can contain numbers, booleans, or strings.
- Dynamic references must refer to existing keys.
