Jump to content

GSoC/2020/StatusReports/Shubham

From KDE Community Wiki
Revision as of 17:29, 30 August 2020 by Shubham (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Integrated Documentation

At the moment the external documentation like for example for Maxima http://maxima.sourceforge.net/docs/manual/en/maxima.html, and similar for Octave, python, etc., is opened in the external browser window. Ideally, it should be shown inside of the application in the help/documentation panel and enable quick access to the documentation together with some more advanced search capabilities. Integrated search and also the context-sensitive help (user marks a keyword in the worksheet, hits e.g. the F1 button and the documentation for the selected keyword is shown) should be possible. Qt Help Framework (http://doc.qt.io/qt-5/qthelp-framework.html) should be utilized for this. For indexing and searching in a unified manner the documentation together with the search index should be available locally. Qt help's qch file should be available for download on store.kde.org. Users of different systems (Maxima, Octave, R, etc.) would download the documentation they need. Ideally, there should be a similar appearance of documentations by CSS-styling the HTML files for different systems prior to creating those qch files.

Project Goals

  • Creation of Qt help files for Maxima, Octave, Python, NumPy and Julia (qch and qhc)
    • Status: Done
  • Dedicated Documentation panel
    • Status: Done
  • Context sensitive help support
    • Status: Done
  • Keyword based searching
    • Status: Done
  • Toolbar with Zooming, Find in page text, Go Home widget
    • Status: Done
  • Downloading availablity for images/pages
    • Status: Done
  • Availability of qch files over KDE store
    • Status: Pending

Month 1 (June 1 - July 3)

During the first half of the period, I have created Qt help files namely qch and qhc from Maxima's source code for its documentation. I have added some custom styling to it as well. In the second half of the coding period, I was busy writing code to implement a dedicated documentation panel which would display the relevant help to the user. I have also successfully implemented context-sensitive search capabilities inside the worksheet for Maxima backend. To get more detailed information, consider going through the blog post listed below.

Month 2 (July 4 - July 31)

In the second month of the coding period, I have completed various tasks. first of all, I had completely changed the layout of the documentation panel. I have added a toolbar with widgets like "Searching through keywords", "Resetting zoom level", "Find in Page text" and "Home" widgets. These widgets do the tasks their name suggests. "Search through keywords" is a widget where users can type in the keyword they are trying to get help for and then get its documentation. It has a completer which makes it easier for the user to find help for the intended keyword. I had also added other functionalities like zooming in-out and resetting the zoom-level to 100%. Another thing that I have added is the ability to download embedded images/gif or the HTML pages from the documentation. Apart from this, I have added the documentation files for Octave and Python.


Month 3 (August 1 - August 31)

During the final phase of the GSoC, I have done the following tasks. 1. Added Documentation for NumPy 2. Added Documentation for Julia 3. Added the settings widget for manipulating the Qt Help files inside individual backend'settings dialog. Currently we only have the settings widget but handling of local and remote help files on KDE store needs to be fixed.

Plans after GSoC

I would continue completing the settings dialog to manage the loading of local and/or remote Qt help files.

Link to my blog

https://coderunner20.blogspot.com/

My Branch

https://invent.kde.org/education/cantor/-/tree/gsoc20_documentation

Commits

https://invent.kde.org/education/cantor/-/commits/gsoc20_documentation

Contact Me

Email: [email protected]

IRC: shubham1000

Github Profile: https://github.com/Shubham-100

Gitlab Profile: https://invent.kde.org/shubham