Is your feature request related to a problem? Please describe.
Many XKCD comics contain subtle references or jokes that aren't immediately obvious. Users currently have to leave the app and visit explainxkcd.com separately to understand these comics, disrupting the reading experience.
Describe the solution you'd like
Add an in-app feature that displays explanations from ExplainXKCD for each comic. The project already includes a partially implemented client (https://github.com/dylanlangston/Axkcd/blob/master/src/XKCDCore/ExplainXKCDClient.cs) which should be used/extended:
- Complete and enhance
ExplainXKCDClient.cs to handle complex wikitext elements (tables, links, basic formatting)
- Parse and sanitize HTML or markdown returned from ExplainXKCD for proper display
- Design and implement a responsive UI (popup/modal/flyout panel) to display explanations within the Avalonia application
- Integrate explanation retrieval into the main comic viewing ViewModel
- Decide whether explanations appear automatically or via button (e.g., "Explain This")
- Cache fetched explanations to reduce repeated API calls and improve performance
- Ensure accessibility and responsive layout for different form factors
- Document the design, usage, and any API limitations
Describe alternatives you've considered
- Opening browser to ExplainXKCD, but this disrupts the in-app experience.
Additional context
Acceptance Criteria:
The existing ExplainXKCDClient.cs provides a starting point, making this more approachable for contributors.
Is your feature request related to a problem? Please describe.
Many XKCD comics contain subtle references or jokes that aren't immediately obvious. Users currently have to leave the app and visit explainxkcd.com separately to understand these comics, disrupting the reading experience.
Describe the solution you'd like
Add an in-app feature that displays explanations from ExplainXKCD for each comic. The project already includes a partially implemented client (https://github.com/dylanlangston/Axkcd/blob/master/src/XKCDCore/ExplainXKCDClient.cs) which should be used/extended:
ExplainXKCDClient.csto handle complex wikitext elements (tables, links, basic formatting)Describe alternatives you've considered
Additional context
Acceptance Criteria:
The existing
ExplainXKCDClient.csprovides a starting point, making this more approachable for contributors.