Skip to content

OutlineML is a lightweight, human-readable, and machine-parseable markup language based on outlines. It's designed for tasks such as outlining, organizing information, generating structured documents, and more. OML is extensible, allowing users to create custom outline types and features.

Notifications You must be signed in to change notification settings

n4j1Br4ch1D/OML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📋 OML - Outline Markup Language

OutlineML (or OutlineMarkup) is a lightweight, human-readable, and machine-parseable markup language based on outlines. It's designed for tasks such as outlining, organizing information, generating structured documents, and more. OML is extensible, allowing users to create custom outline types and features.

keywords: OML, ListML, OutlineML, List markup language, Outline markup language, markup languages, Markdown list, Markdown outlines, YAML List, ListMarkup, list parser, nested lists, nested outlines, structured list, outlines parser, txt list to JSON, CSV, Comma-separated values.


Outline markup language

Features

  • Lightweight, & No dependencies.
  • Supports deeply nested lists.
  • Supports MetaData/Properties.
  • Supports Comments.
  • Parse to a JSON Structured representation.
  • Customizable & Extensible.
  • Use as a pseudo/prompting language for AI(chatGPT).
  • CRUD Methods.
  • IDE Integrations.

Usage

Install

Install OML javascript parser:

#npm
npm i outlineml

#yarn
yarn add outlineml

Syntax: Rules & Conventions

img

  • indent: convention: start from 0 and increase any subitems by 2
  • indicator: is defined by 1st string before first space, anythig can be used covention is to use symbols: -
  • name: its first string before , or a : symbol.
  • props are defined by key and value also can be singular if defined by a dictionary.
  • comments typical is // for singular and /* */

Methods

__ Extra methods __

Config & Dictionary

So the idea behid oml is to custmise to ur needs so you can set you help methods as such.

Formating the Code

IDE (CodeMirror)

Demo

Lets parse the following list into json using the toJSON method:

- clients
  - John Doe, age 25, gender male, skills JavaScript CSS, hobbies Reading Sports
  - Jane Doe, age 23, gender female, skills Drawing Poetry // John's sister
- products
  - Stamp Markers, price 20$, qty 12
  - Web development learning pack, price 40$
    - Web hosting
    - React Course
    - Spring Boot Course

Once run you will get the following result:

You can also reverse the parsing using the toOML method.

Releases

  - Initial Version 1.0.0 : 26/03/2023
    - Project Setup.
    - Theory & prove of concept.
  - Alpha Version 1.0.1 : 04/03/2023
    - Develop essential methods.
    - Improv Data Structure.
  - [Agenda] Beta Version 1.0.x : xx/03/2023
    - Fix Extract indicator/name/metaData.
    - Fix name extractor space issue.
    - Fix empty metadata.
    - Improve Code.
    - Enable customization.
    - Fix comments in metadata.
    - Add comment extractor.
    - Add ordering.
    - Add toOML method.
    - Add Formating.

Contributing

Contributions are welcome! If you find a bug or have a feature request, please open an issue on the GitHub repository.

Tests included:

   npm test

License

This project is licensed under the MIT License. See the LICENSE file for more information. Feel free to use it in your own projects, or contribute to its development on GitHub.

About

OutlineML is a lightweight, human-readable, and machine-parseable markup language based on outlines. It's designed for tasks such as outlining, organizing information, generating structured documents, and more. OML is extensible, allowing users to create custom outline types and features.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published