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 IbLiquidSyntax
were 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:
- Issues: Idea: Integrate Interactive Book in Mobile App for easy learning., Interactive book throwing error
- PRs: POC: Interactive Book Page Parser, Interactive Book Integration Phase 1 | GSoC 2021, Revert "Interactive Book Integration Phase 1 | GSoC 2021", Interactive book throwing error , markdown builder bug fixed, Upgrade to flutter 3.29.2
- Docs, blogs, comments… literally everything I could find.
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

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/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.