[[file:rusticify.gif]]

* Inspiration I use lucid.app at work quite often to brainstorm ideas with colleagues or even solo. I often share the ideas via sharing lucid.app diagrams or just screenshot of it. I don't use banch of features there. Just simple rectangles, arrows, why not build something similiar in rust, for the sake of learning rust and having some *fun?

** What's implemented - βœ… add/remove rectangle
- βœ… rectangle resizing
- βœ… rectangle repositioning
- βœ… wrapped text inside rectangles
- βœ… paste screenshot from clipboard
- βœ… connect nodes with arrows
- βœ… make app snapshot in memory and load from it (command + s[l])
- βœ… save app state to file and load from it (command + shift + s[l] or Save[Load] button) - βœ… change background color of rectangle
- βœ… move rectangle to front/back
- βœ… positioning text in rectangle - βœ… introduce tabs - βœ… buttons to cut/copy/paste text in rectangle and open all links in rectangle

** Run

Tested only on MacOS, should work on Linux and Windows as well

+BEGIN_SRC sh

cargo r

+END_SRC

It runs on wasm as well, but it's not very useful, since it doesn't have clipboard/file system features, also only landscape mode is supported.

+BEGIN_SRC sh

cargo r --target wasm32-unknown-unknown --release wasm-server-runner target/wasm32-unknown-unknown/release/rusticify.wasm

+END_SRC

** Pre-commit actions

+BEGIN_SRC

cargo fmt cargo clippy --fix --allow-staged -- -A clippy::type_complexity

+END_SRC

** Screenshot [[file:rusticify.png]]

Contributions are always welcome! Please adhere to this project's code of conduct.