Greetings eveyone!
I'm Siddhant Sehgal from India and this summer I'll be working with Joplin on the Paste Special plugin!
This proposal draws from this forum thread. Big thanks!
Summary
This will be a Paste Special Plugin for pasting formatted text and provide sub-menu options inside it as discussed in various links provided above. The sub-menu will contain various options for different file formats like Paste Excel or CSV as markdown table, Paste PDF or HTML as formatted markdown text.
Please, let me know what you all think! These details are not set in stone, I'm open to any feedback from the community.
Project details
Analyzing different patterns in files related to GUI and implementation of Paste Special Plugin will be an important task for implementing the project properly and making it stable as possible.
Designing the whole component by discussing different wireframes with the mentors and creating a user-friendly UI for the user that can be used easily by different users and even effectively.
Implementation will be the most prominent part and by using the important steps the whole UI will be designed for the front-end and the different kind of data needs to be analysed whether it’s CSV or PDF or other file format to be converted to markdown.
After implementing the feature of paste special text, there’s gotta be rigorous testing too so that it only passes the right format as markdown for even different file formats and then only the feature will be deployed to the master branch of Joplin Desktop-Client.
During the entire process, each and every step (no matter how small) will be documented for Developers as well as for the users. The final code will be a refactored code by following good development practices.
Implementation
The most prominent and yielding part will be the implementation of the feature. As it’s a plugin needed to created for Desktop-Client (Electron), it will be implemented by the following steps :
UI would be the very first thing that will be designed for creating the plugin into the Desktop-Client. So, some wireframes are:
Also do give feeback on UI Designs! These details are not set in stone. Thanks.
I’d start by analysing the various files for implementing the functionality of user pasting special text (Excel,CSV table or HTML,PDF, etc.) and have it converted to Markdown on the Desktop Client of Joplin. Also, adding styles to the different stylesheets to all the components, elements and containers in the code according to the used code-protocol of layouts in Joplin. Understanding the technology of React, TypeScript files etc. and the conclusion throughout the GSOC program is also an important task.
This plugin would be created in the most modular way possible, so as to increase its future scope such as paste PDF as a markdown by using the concept of Encapsulation and Abstraction and more Object Oriented Standards. Adding this conversion feature and even conversion of other text file formats to Markdown will not be much of a hassle apart from just creating webviews for it just as similar to the CSV to Markdown option and with a conversion function, it’d be good to go. Similarly, the base structure of the plugin would be just similar to the one this proposal suggests to create.
As user documentation is an important part of implementing the whole feature, writing documentation along the whole Google Summer of Code program will be a major priority.
Writing various unit tests for testing all the Boundary Values and different elements of the Component will also be a priority and will be done side by side of development of the plugin as it will help the stable implementation of the feature. Rigorous testing will be done before deploying the feature on master-branch of Joplin.
Timeline
Week Duration | Activity |
---|---|
1-3 | Building Layouts and Creation, Edition, Selection of the base structure of plugin and UI for the Paste Special toolbar button and submenu with different themes |
4-6 | Analyzing different file formats and extracting patterns for conversion into Markdown on Desktop Client of Jopline |
7-9 | Writing code for plugin and user interface with evaluation of test cases and creation of unit tests related to the feature implemented. |
9-12 | Writing test cases, bug fixes and documentation |
When this project is successfully completed, it will act as an example which will provide a paste special text toolbar button(Excel or CSV table, HTML or PDF) and have it converted to Markdown on Desktop Client of Joplin.
Deliverables
- Fully Working Paste Special toolbar menu option.
- Implementation of the functionality of user pasting special text (Excel,CSV table or HTML,PDF, etc.) and have it converted to Markdown on the Desktop Client of Joplin.
- Detailed Documentation for the Paste Special feature.
NOTE: This feature would not be available for Rich Text Editor, and will be disabled when Rich Text Editor mode is enabled.
Future Developments
- Contribute to the design and development of this and other features.
- Integrating more options in the submenu, by analysing more file formats.
- Contribute to Joplin Community.
- Implementation of this feature for cross-platform devices
I intend to be as open, friendly and communicative as possible, and will develop a bond with the community which will most definitely extend even after GSOC ends. I would inform the community with new updates regarding my project using Discourse and mailing lists. I also request the mentors to test my work on a weekly basis.
This post will serve as a live specification for this project, I will be updating it regularly based on your feedback.