GSoC/2024/StatusReports/Ajay Chauhan: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2024‎ | StatusReports
Line 12: Line 12:


'''Week 1-2:'''
'''Week 1-2:'''
* Thoroughly reviewed the existing epub.js (epub-viewer.js) implementation in Arianna, identifying features and functionalities to be ported to Foliate-js.
* Thoroughly reviewed the existing epub.js (epub-viewer.js) implementation in Arianna, identifying features and functionalities to be ported to foliate-js.
* Understood the usage of epub.js in Arianna, including rendering, navigation, annotations, and user interactions
* Understood the usage of epub.js in Arianna, including rendering, navigation, annotations, and user interactions


'''Week 3-4:'''
'''Week 3-4:'''
* Identified all places where epub.js (epub-viewer.js) is integrated with Qt in Arianna, comparing it to Foliate-js's implementation of the same features.
* Identified all places where epub.js (epub-viewer.js) is integrated with Qt in Arianna, comparing it to foliate-js's implementation of the same features.
* Prepared a merge request to document the changes made [https://invent.kde.org/graphics/arianna/-/merge_requests/48]
* Prepared a [https://invent.kde.org/graphics/arianna/-/merge_requests/48 draft merge request] to document the changes made.
* Implemented the core rendering functionality in Foliate-js, using the view.js module to create the main rendering component and implementing the open() method to load the book.[https://invent.kde.org/graphics/arianna/-/commit/f10232c41e9acb77ffb4a24720f68a3abf3222a9?merge_request_iid=48] [https://invent.kde.org/graphics/arianna/-/merge_requests/48/diffs?commit_id=82625f0b8993ee425b9646e0addda2294415653d]
* Implemented the core rendering functionality in foliate-js, using the ''view.js'' module to create the main rendering component and implementing the ''open()'' method to load the book. [https://invent.kde.org/graphics/arianna/-/commit/f10232c41e9acb77ffb4a24720f68a3abf3222a9?merge_request_iid=48] [https://invent.kde.org/graphics/arianna/-/commit/82625f0b8993ee425b9646e0addda2294415653d?merge_request_iid=48]


'''Week 4-6:'''
'''Week 4-6:'''
* Added foliate-js implementation, including the ''foliate-view'', ''footnoteHandler'', and ''CursorAutohider'', extending the functionality of the ported epub.js features. [https://invent.kde.org/graphics/arianna/-/commit/96440ba98b2933001da02c1f8ece6388e6ae3cbc?merge_request_iid=48]
* Familiarized myself with the current Foliate ebook reader implementation of the foliate-js.
* Faced some challenges in understanding the backend architecture and how different components are interconnected, requiring additional time


== Links to Blogs and other writing ==
== Links to Blogs and other writing ==


[https://ajayslog.vercel.app/ Blog (not updated yet)]
[https://ajayslog.vercel.app/ Blog (not updated yet)]

Revision as of 14:21, 14 June 2024

Port Arianna to Foliate-js

Arianna reader uses the epub.js, which is no longer actively maintained. This creates a challenge as the epub.js may not be able to keep up with the evolving standards and new changes. To address this issue, the proposed solution is to port Arianna to Foliate-js, which is an actively maintained epub renderer and has more features compared to epub.js and is used by the Foliate ebook reader.

The problem that this project aims to solve is the need for a reliable and up-to-date epub rendering solution for the Arianna ebook reader.

Work report

Week 1-2:

  • Thoroughly reviewed the existing epub.js (epub-viewer.js) implementation in Arianna, identifying features and functionalities to be ported to foliate-js.
  • Understood the usage of epub.js in Arianna, including rendering, navigation, annotations, and user interactions

Week 3-4:

  • Identified all places where epub.js (epub-viewer.js) is integrated with Qt in Arianna, comparing it to foliate-js's implementation of the same features.
  • Prepared a draft merge request to document the changes made.
  • Implemented the core rendering functionality in foliate-js, using the view.js module to create the main rendering component and implementing the open() method to load the book. [1] [2]

Week 4-6:

  • Added foliate-js implementation, including the foliate-view, footnoteHandler, and CursorAutohider, extending the functionality of the ported epub.js features. [3]
  • Familiarized myself with the current Foliate ebook reader implementation of the foliate-js.
  • Faced some challenges in understanding the backend architecture and how different components are interconnected, requiring additional time

Links to Blogs and other writing

Blog (not updated yet)