Giter Site home page Giter Site logo

excalidocker-rs's People

Contributors

etolbakov avatar rmoff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

excalidocker-rs's Issues

Web extension for a browser

Edge type support

Excalidraw supports 2 edge types: sharp and round. We need to add support in the config.
Scope of change:

Improve layout for ports

When a docker image exposes several ports the layout has issues.

  minio:
    image: minio/minio
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
      - "9044:9044"
      - "9055:9055"

It affects all 3 alignment modes (vertical, horizontal, stepped. Might need to consider a totally different way of drawing ports
image003
image002
image001

#20

Suggestions :)

This is just brilliant, thank you!

I saw your roadmap, FWIW I would put at #1 the Docker artefact - being able to run this without installing/building would make it super useful. It could then also be used in things like github actions for auto documentation as well.

Other ideas:

  • Echo the output path used; I was a bit confused when I ran it and nothing seemed to happen - I had to RTFM to find out it went to /tmp by default
  • Add ability to specify font used
  • Add toggle for displaying dependencies
  • Use arrows instead of lines as connectors so that when boxes are moved the connections remain with them

improve the existing solution with multiple `HashMap` structs

It feels that these number of structs is excessive:

excalidocker-rs/src/main.rs

Lines 143 to 147 in 99459d0

let mut components = Vec::new();
let mut container_name_rectangle_structs = HashMap::new();
let mut container_name_to_point = HashMap::new();
let mut container_name_to_parents: HashMap<&str, DependencyComponent> = HashMap::new();
let mut container_name_to_container_struct = HashMap::new();

During the development I came up with the most straightforward solution and didn't have much time to reflect on the optimal one, but maybe we can reduce the number of HashMap structs.

Fix linter issues

The code is in relatively untidy state. Commands

cargo check --all-features
cargo fmt -- --check
cargo clippy -- -D warnings	

produce a lot of actions (unused code, not optimal methods etc). This needs to be addressed.

  • clippy issues
  • cargo check
  • format issues

Make configurable alignment setting

It came out as a suggestion from #20
It would be a useful to have a flag to choose the layout format:

  • stepped (as currently),
  • vertical align,
  • horizontal

Reduce docker image size

At the moment etolbakov/excalidocker image is 115.55 Mb. Image size optimizations are required.

In github-action release step replace set-output with GITHUB_OUTPUT

The following line causes warnings

run: echo ::set-output name=VERSION::$(grep "^version" Cargo.toml | awk '{print $3}' | tr -d '"')

The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

As per Github recommendation a workflow using save-state or set-output like the following

- name: Save state
run: echo "::save-state name={name}::{value}"

- name: Set output
run: echo "::set-output name={name}::{value}"

should be updated to write to the new GITHUB_STATE and GITHUB_OUTPUT environment files:

- name: Save state
run: echo "{name}={value}" >> $GITHUB_STATE

- name: Set output
run: echo "{name}={value}" >> $GITHUB_OUTPUT

source

Support `extends` fully

For example:

docker run --rm -e INPUT_PATH=https://raw.githubusercontent.com/treeverse/lakeFS-samples/main/standalone/airflow-dag-example/docker-compose.yml etolbakov/excalidocker:latest > tmp.excalidraw

The generated diagram doesn't show the ports exposed by the services that are extended from a parent Docker Compose, only those in the Docker Compose specified

CleanShot_2023-06-14_at_11 06 55@2x

Also odd how they're all rendered at an increasing vertical offset, not sure if this is by design but keeping it level would be useful too

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.