GSoC Week 6: Deep Diving into the Interactive Book Issue

As I mentioned in my GSoC Week 5: Markdown broke, CI/CD woke, after completing the release pipeline of the app, I jumped back into the Interactive Book issue.

Since it hadn’t been resolved the previous week, I decided to approach it with a fresh mind—…


This content originally appeared on DEV Community and was authored by Yashvant Singh

As I mentioned in my GSoC Week 5: Markdown broke, CI/CD woke, after completing the release pipeline of the app, I jumped back into the Interactive Book issue.

Since it hadn’t been resolved the previous week, I decided to approach it with a fresh mind—and honestly, a whole new debugging strategy. I started from scratch and quickly discovered that the three custom builders—IbEmbedSyntax, IbMdTagSyntax, and IbLiquidSyntaxwere the main culprits.

These builders are responsible for parsing custom markup, but they weren’t doing a great job. I attempted to make them more robust by tweaking their RegExp getPattern methods to improve parsing. There was some progress, but unfortunately, it still wasn’t functioning properly and lost core functionality toward the end.

At this point, I had a realization, I've never actually seen the fully functional version of the Interactive Book in action 😶. I didn’t even have a proper reference for the content it used to display. So, I shifted focus.

I dug into the markdown content (which looked okay to me) and attempted to set up the project locally just to confirm whether all the content was loading or not. Although I ran into some hiccups setting up Ruby, I managed to at least check the markdown rendering. And yes, the content was there but still no breakthrough.

After trying a few more iterations with no results, I took a step back and decided to understand the entire history of the Interactive Book—its origin, its evolution, and all the previous attempts to fix it.

I went through:

In doing so, I found a previous workaround by @tanmoysrt, where an invisible character (U+200E) was added to help the parser terminate the AST correctly. But later, he upgraded the flutter_markdown package, and things seemed to work again—for a while.

That’s when I learned something crucial:

Until about 3 months ago, we were using CircuitVerse’s community fork of flutter_markdown:

👉 https://github.com/CircuitVerse/packages

However, this fork was not actively maintained and lagged far behind the main fork. It was finally replaced with the official package during the last Flutter upgrade via this PR.

Digging into the version history, I found this helpful comment:

"This issue might give you a little bit of a hard time as flutter_markdown was buggy. We're using our own fork of it... feel free to open a PR there, though it’s not up to date."

To add to this mess, Flutter officially discontinued flutter_markdown due to limited resources.

Here’s the issue: https://github.com/flutter/flutter/issues/162960

Despite pushback from the community, it’s now archived.

I tried looking for other community-maintained forks, but... nothing.

In one of the discussion threads, someone mentioned markdown_widget as a potential alternative. After talking to Hardik about this, he suggested downgrading to a previous flutter_markdown version that used to work—but no luck there either.

Then I explored a few other alternatives:

  • flutter_markdown_plus – Too new and didn’t align well with our complex structure.
  • markdown_widget – Seemed promising, but the architecture is entirely different and does not support custom builders. Implementing it would mean rewriting a lot from scratch.

Final Thoughts

This is where I am with the issue right now.

Honestly? It doesn’t feel like much progress. It feels like a lot of trying and failing. But at the same time, I’ve learned so much—about the history of the feature, about our dependencies, and about package maintenance and community forks.

Even if it doesn’t feel like a win yet, I know this groundwork will help us find the right way forward.

Let’s see what Week 7 brings!


This content originally appeared on DEV Community and was authored by Yashvant Singh


Print Share Comment Cite Upload Translate Updates
APA

Yashvant Singh | Sciencx (2025-07-13T16:42:49+00:00) GSoC Week 6: Deep Diving into the Interactive Book Issue. Retrieved from https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/

MLA
" » GSoC Week 6: Deep Diving into the Interactive Book Issue." Yashvant Singh | Sciencx - Sunday July 13, 2025, https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/
HARVARD
Yashvant Singh | Sciencx Sunday July 13, 2025 » GSoC Week 6: Deep Diving into the Interactive Book Issue., viewed ,<https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/>
VANCOUVER
Yashvant Singh | Sciencx - » GSoC Week 6: Deep Diving into the Interactive Book Issue. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/
CHICAGO
" » GSoC Week 6: Deep Diving into the Interactive Book Issue." Yashvant Singh | Sciencx - Accessed . https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/
IEEE
" » GSoC Week 6: Deep Diving into the Interactive Book Issue." Yashvant Singh | Sciencx [Online]. Available: https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/. [Accessed: ]
rf:citation
» GSoC Week 6: Deep Diving into the Interactive Book Issue | Yashvant Singh | Sciencx | https://www.scien.cx/2025/07/13/gsoc-week-6-deep-diving-into-the-interactive-book-issue/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.