Skip to content

🔥 Craft captivating ASCII art from your Markdown expression

License

Notifications You must be signed in to change notification settings

elmouradiaminedev/diagonjs

Repository files navigation

Diagonjs

npm version npm downloads CI status codecov TypeScript

Craft captivating ASCII art from your Markdown expression with ease, powered by Diagon.

🚀 Features

  • Supports Math, Sequence, Tree, Table, Grammars, Frame, and GraphDAG expressions.
  • Flexible translation with customizable options including styles like Unicode, ASCII, Latex, and more.
  • Support for both Node.js and browser environments.
  • Compatible with CommonJS (CJS) and ECMAScript Module (ESM) environments.
  • Fully typed for enhanced developer experience.

⚙️ Install

Install it locally in your project folder:

npm i diagonjs
# Or Yarn
yarn add diagonjs
# Or pnpm
pnpm add diagonjs

📖 Usage

Initialize diagonjs

To initialize diagon.js in your application:

import Diagon from "diagonjs";

const diagon = await Diagon.init();

Use a translator

Once Diagon.js is initialized, you can use its translators to interpret and transform expressions.

Below is an example using the math expression translator:

diagon.translate.math("f(x) = 1 + x / (1 + x)", { style: "Unicode" });

//               x
// f(x) = 1 + ─────
//            1 + x

And here's an example employing the sequence diagram translator:

diagon.translate.sequence(
  "Alice -> Bob: Hello Bob!\nAlice <- Bob: Hello Alice!",
  { asciiOnly: false },
);

// ┌─────┐       ┌───┐
// │Alice│       │Bob│
// └──┬──┘       └─┬─┘
//    │            │
//    │ Hello Bob! │
//    │───────────>│
//    │            │
//    │Hello Alice!│
//    │<───────────│
// ┌──┴──┐       ┌─┴─┐
// │Alice│       │Bob│
// └─────┘       └───┘

📚 Documentation

  • Dive deeper into the source code by exploring the translators
  • Find practical integrations with express, react and more in the examples section.
  • Explore the test section in the Diagon C++ repository. It contains input and output samples.
  • Experience Diagonjs in action using the online interpreter.

💖 Thanks

This project has been possible thanks to these great projects:

License

This project is licensed under the MIT License.