Jump to content

SoK/2021/StatusReport/makhalil

From KDE Community Wiki

Support Reading/Creating Interactive Fiction Comic Books in Peruse

Introduction

Currently in Peruse, the ACBF Library implementation supports Jump Areas and TextArea Anchors. Jump Object is some object marked on pages/frames that links to other pages in the book. Although the main objective of Jumps is to navigate through the book, it can only link to pages, however, another navigation method we could use is by using a TextArea element. TextArea elements have anchors, these anchors are links that can link to other pages, frames, references, or binaries in the book. The main difference between the two is that a Jump is essentially an invisible shape, where the anchors in a TextArea are inherently visible, on account of existing as bits of text inside a paragraph.

So the backend of Peruse is fully capable of understanding/parsing these two elements from the Comic Book’s ACBF file. However, we don’t yet have a method to create/show these Jump Objects in both the creator and reader, and therefore the associated navigation functionality is yet to be implemented.

The goal of this project is providing the representation of the Jump Object in Peruse Reader, and the ability to create them in Peruse Creator, while also providing the basic navigation functionality for both the Jump Objects, and the TextArea Anchors elements.

Mentor

Dan Leinir Turthra Jensen (leinir)

Work Done

First Milestone: Peruse Reader

  • Modify "Page" class in the ACBF backend library to return Jump objects directly instead of returning them as a list of strings containing jumps positions, MR Link
  • Extend Reader app to support visualizing jumps in a way similar to how CRPG games represent their objects, MR Link

Second Milestone: Refining Creator

  • I started by making sure everything works in the Reader side, however there was another feature missing which is supporting navigation between jumps using keyboard, so with the highly appreciated help from Leinir, I was able to put a MR for that. Here's its link
  • Fixing a bug, in which the BookArchiveModel class wasn't passing the correct file size resulting in an incomplete file being written. MR Link
  • Fixing a bug in which upon creating new objects, we broke variable bindings. MR link
  • Adding a new component that enables users to easily edit created objects in Creator, MR link

Future Work

I'll continue on contributing to Peruse, Peruse is a really interesting and feature-rich application that I feel very lucky to have worked on. I'm planning on extending the Reader/Creator to be able to visualize polygonal objects not only rectangular ones

Contact Me