Git Product home page Git Product logo

vimflowy's Introduction

Vimflowy Vimflowy

Build Status

NOTE: I don't have time to maintain this anymore, sorry!

This is a productivity tool which draws some inspiration from workflowy and vim.

Try it out now!

Deploy yourself with docker!

FEATURES

  • Workflowy features
    • tree-like outlining
    • collapsing and zooming into bullets
    • basic text formatting, strike through task completion
  • Vim features
    • (configurable) vim keybindings
    • modal editing
    • undo history, location history, macros, etc.
  • Plugins system (see plugins.md)
    • marks (not like vim's)
    • easy-motion for moving between bullets quickly
    • time tracking
    • LaTeX and HTML rendering
  • Other
    • data import from or export as text file (native Vimflowy format or Workflowy-compatible format)
    • loads data lazily (good for huge documents)
    • search (not like vim's)
    • cloning (bullets duplicated in multiple locations in a document)
    • customizable visual themes

LIMITATIONS

  • No collaborative editing
  • Global search is slow for large documents (so you'll want to use marks)
  • You may need a relatively modern browser (minimally HTML5 LocalStorage and Flexbox). I test only in recent versions of Chrome and Firefox.

DATA STORAGE

Vimflowy was designed to work with multiple storage backends.

By default, you own your own data, as it is stored locally on your computer. However, you can let Google host it for you, or host it yourself.

See here for more info.

SELF-HOSTING

See the deployment documentation for details. You can deploy with docker, or build from source yourself.

NOTES FOR DEVELOPERS

Contributions are very welcome! See dev_setup.md to see how to get started with a development setup.

LICENSE

MIT: https://wuthefwasthat.mit-license.org/

FAQ (AKA questions I imagine people would ask me)

see here

vimflowy's People

Contributors

alxgnon avatar amuelli avatar btheado avatar dependabot[bot] avatar dragonaire avatar fullyint avatar gitter-badger avatar jamesjryan avatar lorin avatar phaze9 avatar platers avatar rococode avatar shadowfax92 avatar shady2k avatar tarnas14 avatar willprice avatar wuthefwasthat avatar yuanotes avatar za3k 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  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  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

vimflowy's Issues

make a way to report bugs?

record keystrokes. then when an exception occurs bring up a popup asking user whether they'd like to report bug, and also whether they'd like to send keysequence and/or data

also just have a button for reporting bugs?

Limit search results

Part of 'scale better'.

You and Paul and I should talk about UI for this one I think, if possible.

Undo + view switch

Insert: A enter tab B enter tab C
alt+l (zooms into Home > A > B)
u (un-zooms to Home AND undoes insert)
ctrl+r (error trying to zoom back in)

Default workflowy

  1. Check out master
  2. Delete all localstorage
  3. Refresh

I see two copies of the intial data, with two cursors.

Flickering links distracting

The bullet names at the top of the screen are clickable links in normal mode, but not in insert mode. Their color changes, I assume to indicate this. I find these color changes a bit distracting when there is a lot of text at the top of the screen. It might be worth tweaking the UI or providing an option to disable or something.

Don't capture every key

In particular, you're capturing important browser keys: ctrl+r, ctrl+shift+j etc. I think the default should be to let keys pass through if we can't figure out what to do with them.

Add some form of marks

implement some form of marks (m[a-z] or m[string]? 'a or '[string])
tagging, e.g. @mark that links to it

Jeff, I don't understand the 'tagging' comment.

within-line easymotion

It would be nice to have something like easymotion for within-bullet movement, if it's easy to implement

(especially low priority)

Switch tests to mocha

Switching the tests over to a standard framework like mocha will enable easier code coverage reports

No more "Meta"

Remove "meta" anywhere it appears in vimflowy.

I know it's in the documentation object. Might be other places.

Sequence: keycombo characters

i followed by ctrl+r inserts the literal ctrl+r as though it were a character. It should probably insert nothing instead.

opening multiple documents in bitballoon

I don't know any way to use multiple documents in bitballoon, and I'm a bit scared about opening several instances of the same document in different tabs (perhaps irrationally).

special treatment for pasting once?

I sometimes use dd + p to effectively move a bullet. But (1) copying is slow when the tree is large, (2) I'm hesitant to do this because of concerns about losing data if there is a crash while moving, (3) if future features (aliasing, or plugins like time tracking) depend on the identity of bullets then it would be nice if the first paste inherited the identity of the original node.

It would be nice to do one of: (1) have a separate hotkey for some kind of "cut and paste once" option, that just moves the node rather than cutting it, or (2) only allow pasting once from a deleted tree (I'm totally fine having to copy explicitly if I want to make copies), (3) treat the first paste as a special move operation.

gj, gk for moving across graphical lines

Would be nice if gj and gk (or some other keys) moved up and down a graphical line rather than a bullet. I would probably prefer this as the j, k behavior in most cases, but I'm happy to use gj and gk until there are custom shortcuts.

[Internal] Refactor instances to an explicit type

Instances should be their own class, and clearly documented. (strongly agree, just waiting to refactor until clones work) Some work done on the aliasing_jeff branch.

Methods should take in an instance/path, a node/row/datastore-object, or an id. Anything requiring an id should also be able to take a node. (It would be a bad idea to allow write-type methods needing an id/node to take an instance, because they might make larger changes than their interface suggests).

We should talk about whether we want the instance to include a list of nodes vs a list of ids and any internal datastructure trade-offs, but details are not as important compared to just making datatypes clearer than they are currently.

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.