Git Product home page Git Product logo

block-diagrammer's Introduction

Block Diagrammer (BD)

Simple Block Diagram Generator

"diagram": {
  "lines": [
    "| A | ---> | D | <-------> | F |",
    "|   | <------------------> |   | <----- | I |",
    "|   | ---> | E | <-------> |   |",
    "           |   | <-------- | G |",
    "| B | <--> |   | <-------> | H | <----> | J |",
    "|   | -------------------> |   |",
    "| C | -------------------> |   | -----> | K |"
  ]
}

Table of Contents

Overview

Creating block diagrams using a drawing tool such as Microsoft Visio can result in complicated diagrams.

Block Diagram Philosopy

  1. Only have enough information
  2. Make it simple to create
  3. Consistent block diagrams
  4. Use text as the source

Block Diagrammer trades the flexibility of drawing tools with a set of simple rules. These rules provide a framework to generate diagrams.

  1. Use a grid based system to describe block diagram
  2. Nodes are in even columns
  3. Arrows are in odd columns
  4. Nodes can stack
  5. Arrows are only horizontal

Key Benefits

  • Simplifies block diagram creation
  • Text based input can be source controlled
  • Rendered output can be used in documentation

Key Features

  • Command line tool
  • JSON for input

Installation

You can get the latest released version of Block Diagrammer via pip.

pip install block-diagrammer

The latest development version can be cloned...

git clone https://github.com/jeremiah-c-leary/block_diagrammer.git

...and then installed locally...

python setup.py install

Usage

Block Diagrammer can be invoked with:

$ bd render svg <config_file>

Here is an example output running against a test file:

Documentation

All documentation for Block Diagrammer is hosted at read-the-docs.

Contributing

I welcome any contributions to this project. No matter how small or large.

There are several ways to contribute:

  • Bug reports
  • Code base improvements
  • Feature requests
  • Pull requests

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.