GithubHelp home page GithubHelp logo

xenacool / velo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dimchikkk/velo

0.0 0.0 0.0 116.16 MB

App for brainstorming & sharing ideas ๐Ÿฆ€ Learning Project

License: Apache License 2.0

Rust 98.76% Just 0.13% WGSL 1.11%

velo's Introduction

Velo ๐Ÿšตโ€โ™€๏ธ๐Ÿšต

Rustcodecov

velo alt text

Demo

This app is primarily designed for native desktop platforms, and its WebAssembly (wasm) target has a limited feature set. wasm target is best suited for quick document sharing, currently, only WebGPU backend enabled for the demo:

https://staffengineer.github.io/velo?document=https://gist.githubusercontent.com/StaffEngineer/bf7d94759abbd7aa722330e5fe4f0bd5/raw/e817be0ba700e94be472d435638d762b9deadf33/velo.json

What's implemented:

  • support rectangle/circle/paperlike notes
  • add/remove note
  • note resizing
  • note repositioning
  • wrapped text inside notes
  • paste screenshot from clipboard [native target only ๐Ÿ–ฅ๏ธ]
  • connect notes with arrows
  • make app snapshot in memory and load from it (MacOs: Command + s[l])
  • save app state to database and load from it
  • change background color of notes
  • move note to front/back
  • positioning text inside note
  • multiple documents/tabs support
  • load app state from url
  • ability to create sharable url of the document using "Share Document" button (.velo.toml should be created in user's home directory containing GitHub access token with "gist" scope) [native target only ๐Ÿ–ฅ๏ธ]:
github_access_token = "<github_access_token>"
  • initial markdown support
    • italic/bold text style
    • links
    • syntax highlighting
    • headings (proper headings support was temporarily removed)
    • inline code
    • ordered/unordered lists
  • particles effect [native target only ๐Ÿ–ฅ๏ธ]
  • filter documents by text in notes (fuzzy search) [native target only ๐Ÿ–ฅ๏ธ]
  • highlight notes containing searched text [native target only ๐Ÿ–ฅ๏ธ]
  • ligature/emoji rendering support [emoji native target only ๐Ÿ–ฅ๏ธ]
  • dark/light theme support (app restart is required for now)
  • infinite canvas with zooming (right click to move camera, mouse wheel to zoom)
  • undo/redo for text editing [native target only ๐Ÿ–ฅ๏ธ]
  • drawing mode (click on pencil icon to enable it)
  • draw line, arrow, rhombus or rectangle by choosing 2 points
  • hide/show children notes for selected note
  • navigation to random note

Installation

Archives of precompiled binaries for velo are available for Windows, macOS and Linux.

Compiling from Source

If you want to compile from source you can use

cargo install --path .

ATTENTION If you have set your cargo target directory in .cargo/config.toml you must provide the fullpath to the assets directory like this

BEVY_ASSET_PATH=$(realpath assets) cargo install --path .

Run

Native:

cargo r --release

Wasm:

cargo install wasm-server-runner
RUSTFLAGS=--cfg=web_sys_unstable_apis cargo r --release --target wasm32-unknown-unknown

To create app bundle with icon (tested only on MacOS):

cargo install cargo-bundle
cargo bundle

Pre-commit actions

cargo fmt
cargo clippy -- -A clippy::type_complexity -A clippy::too_many_arguments

Basic usage

  • click on rectangle icon to create rectangle note
  • double-click to select note
  • start typing to add text to selected note
  • resize note by dragging its corners
  • click on canvas to deselect note
  • move note by dragging it (only unselected note can be dragged to allow mouse text selection for selected note)
  • click on little arrow connector icon to connect notes, arrow connector icons are placed on each side of note
  • for native target there is search box that allows to filter documents by text in notes (fuzzy search)
  • for wasm target there is url query parameter ?document=<url> to load document from url
  • click save icon to save document to database on native platform or to localStorage on wasm target
  • click on drawing pencil to enable drawing mode

Troubleshooting

If the application fails to start, you can try resolving the issue by removing velo data folder. This problem may occur due to changes in the data schema between different versions of the application.

  • MacOS: /Users/<username>/Library/Application Support/velo
  • Windows: C:\Users\<username>\AppData\Roaming\velo
  • Linux: /home/<username>/.config/velo
  • wasm: localStorage.clear()

License

All code in this repository dual-licensed under either:

MIT License or http://opensource.org/licenses/MIT Apache License, Version 2.0 or http://www.apache.org/licenses/LICENSE-2.0 Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Contributing

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

โค๏ธ

velo's People

Contributors

dimchikkk avatar nx2k3 avatar adethormiwa avatar tigregalis avatar toastedbreadandomelette avatar dependabot[bot] avatar toasterson avatar sagudev avatar

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.