Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/freymaurer/siren

A domain specific language (DSL) for creating mermaid graph YAML!
https://github.com/freymaurer/siren

csharp fable fable-dotnet fable-javascript fable-libraries fable-python fsharp javascript mermaid mermaid-diagrams python typescript

Last synced: 2 months ago
JSON representation

A domain specific language (DSL) for creating mermaid graph YAML!

Awesome Lists containing this project

README

        

# Siren

Siren is a simple DSL for creating [Mermaid](https://mermaid.js.org) graphs YAML.

Have a look at the docs here:

* [Docs](https://freymaurer.github.io/Siren/)
* [Blog post](https://freymaurer.github.io/Siren/blog/Library%20Design)



Latest Release
Downloads






latest release




Pepy Total Downlods







latest release




downloads







latest release




downloads







latest release




downloads



> [!TIP]
> if you are interested in creating a Fable library like this on your own you can use the template [Fable.Multiverse](https://github.com/Freymaurer/Fable.Multiverse)!

---
## Contribution

If you have any ideas on how to improve the library, please feel free to contribute! The best way to get in contact is using the issues!

---
## Local Development

### Requirements

Because this library targets multiple programming languages we need to support all of them:

- [nodejs and npm](https://nodejs.org/en/download)
- verify with `node --version` (Tested with v20.10.0)
- verify with `npm --version` (Tested with v9.2.0)
- [.NET SDK](https://dotnet.microsoft.com/en-us/download)
- verify with `dotnet --version` (Tested with 8.0.205)
- [Python](https://www.python.org/downloads/)
- verify with `py --version` (Tested with 3.11.9, known to work only for >=3.11)

### Setup

This needs to be done on a fresh download once. Paths for python venv executable might be different depending on the OS.

1. `dotnet tool restore`
2. `npm install`
3. `py -m venv ./.venv`
4. `.\.venv\Scripts\Activate.ps1`
5. `python -m pip install -U pip setuptools`
6. `python -m pip install poetry`
7. `python -m poetry install --no-root`

### Testing

First activate python virtual environment (`.\.venv\Scripts\Activate.ps1`).

`.\build.cmd test`

*or specify target*

`.\build.cmd test [f#, c#, js [native], py [native]]`

### Publish

Requires API keys for Nuget and PyPi.

The following command will run all tests, bundle and then start publishing!

`.\build.cmd publish pipeline`

*or only publish specific targets, without test and bundle*

`.\build.cmd publish [npm, pypi, nuget]`