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
-
Issues
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.
In last few days, I have marked some issues as "good first issue". These issues have certain properties:
Sources
Quick overview of source locations:
examples/ Example .mawe files which can be used for testing.
https://github.com/mkoskim/mawejs/tree/master/examples
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:
#75 - currently exporting functions (converting internal tree to selected file format) are located in Export UI folder. Their right location would be here with loading and saving documents.
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.
src/gui/app/ https://github.com/mkoskim/mawejs/tree/master/src/gui/app
The top-level components, with view select. Some related issues:
#79 - 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.
src/gui/editor/ https://github.com/mkoskim/mawejs/tree/master/src/gui/editor
Editor view with SlateJS editor component is the core component of the editor. Quite many issues are related to this view, in way or another.
src/gui/organizer/ https://github.com/mkoskim/mawejs/tree/master/src/gui/organizer
Organizer shows the story in blocks, where you can drag'n'drop parts and scenes. This view is very under-developed. There should be much more tools to edit your story structure (like creating new parts and scenes), and the view itself needs polishing. Related issues:
#29 - generic improvements.
src/gui/chart/ https://github.com/mkoskim/mawejs/tree/master/src/gui/chart
Chart 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.
Chart view has its own project to implement "fillers" for story speculation: https://github.com/users/mkoskim/projects/5
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). Issues related to exporting or export view are collected in a project:
https://github.com/users/mkoskim/projects/7
#60 - export view needs some basic editing features. When you are in preview, you are many times also proof-reading the story. It would be nice, if you can fix typos and such in the preview directly, without needing to switch to editor side and then back.
One thing is that preview is generated by ExportHTML() - for purpose. Using the same engine which will eventually generate the file gives us pretty good certainty that the export result will be what we wanted. But to add fancy features, we might want a "formatter" that outputs JavaScript objects to be rendered by React:
#144 - Dedicated formatter for preview
Dead code
There are currently some dead code around.
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 platformas. 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.
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. Workspace development has its own project waiting:
https://github.com/users/mkoskim/projects/9
Beta Was this translation helpful? Give feedback.
All reactions