UNPKG

tdmul

Version:

Transfer Data Mark-Up Language - Read, write, and manipulate TDMUL files

148 lines (103 loc) 2.67 kB
# 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 = &main_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.