Want to contribute? New to project? Quick introduction #86
mkoskim
started this conversation in
Development
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
How to contribute?
Some things about the process:
Make a fork:
Make a draft PR:
Make a merge request:
Ask, comment, give feedback:
Development
First things first. I use MaweJS daily for writing my stories. That's why I priorize my time to features I happen to need urgently for some draft I am editing. Sadly this means, that features I don't need just right now tend to stay in issues for long, long time. More sadly, many of these features would be pretty mandatory for all the other possible users.
Second, the project is still at its early phase. Many issues will need architectural changes before they can really be implemented. These changes can be laborous.
Good first issues
In last few days, I have marked some issues as "good first issue". These issues have certain properties:
Sources
Examples
Example files you can use for testing purposes:
https://github.com/mkoskim/mawejs/tree/master/examples
src/document
Code related to document structure:
src/document/ https://github.com/mkoskim/mawejs/tree/master/src/document
This directory contains all sorts of generic document (story) handling, like loading (reading file, converting XML to internal representation and so on) and saving (producing XML, writing it to file). Some issues related to these files:
src/gui/
GUI sources are separated inside their own directory tree. In fact, I could rename "gui" to "react". There are few reasons for this.
Application
The top-level components, with view select.
src/gui/app/ https://github.com/mkoskim/mawejs/tree/master/src/gui/app
Note, that top-level render performance is quite crucial, because top level components will be rendered at every single keystroke in editor. Squeezing out some milliseconds will ensure, that the editor responsiveness remains also with large files.
There is dead code in state/ folder related to Redux state. It is still there, because I am pretty sure I will take Redux back at some point.
Editor
Editor view:
src/gui/editor/ https://github.com/mkoskim/mawejs/tree/master/src/gui/editor
At the moment, we use SlateJS editor component as the core editor. Quite many issues are related to this view, in way or another.
Story Arc
src/gui/arc/ https://github.com/mkoskim/mawejs/tree/master/src/gui/arc
Story arc view shows the blocks relative to their sizes (in word counts). It also shows a "template" which you can compare your story. This view need tools to edit the story.
Exporting
src/gui/export/ https://github.com/mkoskim/mawejs/tree/master/src/gui/export
Export view handles story exporting to other formats (RTF, LaTeX, ...). It has basic head info editing (title, author).
Dead code
There are currently some dead code around.
File browser:
src/gui/filebrowser/ https://github.com/mkoskim/mawejs/tree/master/src/gui/filebrowser
This is currently dead code. It is there waiting for Workspace implementation. We currently use host system file dialogs, but I want more advanced features for searching and adding files to workspaces.
Currently, MaweJS uses system file open & save dialogs. At some point I replace them with React implementation. Reasons: first, united user experience accross platforms. Second, system dialogs vary a lot by features. Some have search, some have not. In some you can remove files, in others you can't.
Workspaces:
src/gui/workspace/ https://github.com/mkoskim/mawejs/tree/master/src/gui/workspace
This is currently dead code. I like first to implement the basic features before diving in implementing workspaces.
Beta Was this translation helpful? Give feedback.
All reactions