diff --git a/README.md b/README.md index 81bfd52..d5b6fa4 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ ![Matrix Notepad](static/logo/notepad%20logo.svg) > A buggy way to collaborate on text documents using the [Matrix](https://matrix.org) protocol. When it works, consider this the Matrix Console of collaboration! +![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/kb1rd/matrix-notepad) +![Matrix](https://img.shields.io/matrix/matrix-collaboration:kb1rd.net?label=chat%20on%20%23matrix-collaboration%3Akb1rd.net&server_fqdn=matrix.org) +![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/KB1RD/matrix-notepad/build/master?label=build%20and%20deploy) +![GitHub](https://img.shields.io/github/license/kb1rd/matrix-notepad) + Check it out at [matrix-notepad.kb1rd.net](https://matrix-notepad.kb1rd.net/) and come chat at [#matrix-collaboration:kb1rd.net](https://matrix.to/#/#matrix-collaboration:kb1rd.net?via=kb1rd.net&via=matrix.org&via=matrix.geklautecloud.de)! I'd love to hear about what you think (and what issues you encounter)! ## Brief Roadmap @@ -9,10 +14,12 @@ This is not in any particular order: * [x] More or less working removals * [ ] Conflict resolution -- Almost! * [x] Improved UI/UX (this will be incremental) -* [ ] Unit testing!!! +* [x] Unit testing for the algorithm (`logootish-js` is unit tested) * [x] Create a different package for the `Logootish` algorithm -- Right [here](https://github.com/KB1RD/logootish-js) * [ ] Node 'squashing' or similar. Currently Matrix Notepad has to sync ALL of the events :( * [ ] Rich text editing +* [ ] Create "Matrix Apps" to load `iframe`d apps, such as the Notepad +* [ ] Clean up the code. I've been focusing on the algorithm, so the Notepad had gotten a bit messy In addition, I think it would be a good idea to discuss future possibilities for sharing more than just text over Matrix and the possibility of creating a unified 'app host' client that manages permissions for applications and allows the user to browse a directory structure. @@ -29,9 +36,9 @@ Since this is experimental software, do not use it to store very important or co If you see error messages pop up or you encounter any bugs, **please** report it either on GitHub or on the Matrix chat. This is **very** helpful as I'm sure there are bugs that I don't know about. ## Screenshots -![Sign in](static/signin.png) -![Room List](static/roomlist.png) -![Document Editing](static/document.png) +![Sign in](resources/signin.png) +![Room List](resources/roomlist.png) +![Document Editing](resources/document.png) ## Contributing Have a look at the [Wiki](https://github.com/KB1RD/matrix-notepad/wiki) if you're interested in contributing. I'd love the help! The wiki also contains documentation about how the algorithm, `logootish-js`, works internally as well as links to the JSDoc. @@ -45,6 +52,7 @@ Here is the directory structure * `/matrix.js` -- Provides the interface between Matrix, the GUI, and the algorithm. It is dense and poorly written since I'm still trying to figure out where to put everything. * `static` -- Static files. Currently only has the site icon * `store` -- The Vuex store. This is used for UI only since I want the algorithm to be seperate from Vue.JS. Vuex does track the state of the Matrix client, but not the state of document nodes (that's all "traditional" ES6 JS) +* `resources` -- Files used in README.md or the docs * `test` -- A directory that I have reserved for unit testing. This would help **a lot** if I actually implemented it. *sigh* ## Debugging @@ -59,6 +67,13 @@ $debug.syncback_settings.initial = false // Manually fetch events (if initial load is disabled) $debug.active_document.fetchEvents(1) + +// Enable the LDM's internal operation log (currently disabled) +// This is helpful for diagnosing a bug that is identified in production +$debug.active_document.setupLogging() + +// Dump the LDM's internal operation log (if enabled) +$debug.active_document.printEventLogJSON() ``` ## Build Setup @@ -76,22 +91,8 @@ $ yarn run generate $ yarn run stats ``` -Also, if you want to debug the core algorithm, `logootish-js`, see https://github.com/KB1RD/logootish-js . If you want to test it with the Notepad, the `yarn link` setup process is as follows: -``` bash -# get logootish-js -$ git clone https://github.com/KB1RD/logootish-js.git -$ cd logootish-js - -# install dependencies & build -logootish-js$ yarn install -logootish-js$ yarn run build - -# link to yarn -logootish-js$ yarn link - -# switch to the notepad -logootish-js$ cd ../matrix-notepad - -# link logootish-js -matrix-notepad$ yarn link logootish-js -``` +Also, if you want to debug the core algorithm, `logootish-js`, see https://github.com/KB1RD/logootish-js . +I used to include a code sample in here to use `yarn link` to use a local +version of the algorithm, but `yarn link` appears buggy and it's way faster to +test and develop the algorithm on its own. I would encourage potential +developers to use that method instead. \ No newline at end of file diff --git a/resources/document.png b/resources/document.png new file mode 100644 index 0000000..734a199 Binary files /dev/null and b/resources/document.png differ diff --git a/resources/roomlist.png b/resources/roomlist.png new file mode 100644 index 0000000..c90110f Binary files /dev/null and b/resources/roomlist.png differ diff --git a/resources/signin.png b/resources/signin.png new file mode 100644 index 0000000..271f5b7 Binary files /dev/null and b/resources/signin.png differ diff --git a/static/document.png b/static/document.png deleted file mode 100644 index 6368654..0000000 Binary files a/static/document.png and /dev/null differ diff --git a/static/roomlist.png b/static/roomlist.png deleted file mode 100644 index e44081a..0000000 Binary files a/static/roomlist.png and /dev/null differ diff --git a/static/signin.png b/static/signin.png deleted file mode 100644 index fde97ff..0000000 Binary files a/static/signin.png and /dev/null differ