Repository navigation
feat(logic)!: render the timeline in the browser from embedded json - #36
Merged
Merged
Conversation
The generator no longer builds html strings. TimelineDataBuilder writes the parsed encounters as json into template.html, which draws everything in the browser. The layout can now change without touching C#. New design: - one index.html with the timeline and the statistics as two pages - raid days as tabs, with scroll hints when there are many - day overview strip with the downtime between pulls; consecutive pulls of a boss are grouped and labelled with the boss icon and the number of tries - several tries of a boss in one card, with a comparison to the previous try - all players instead of the top 3; boons per player, downs and deaths view - boss health of a wipe, light and dark theme BREAKING CHANGE: statistics.html is no longer created, it is part of index.html. HtmlCreator, the html builders, OverviewTableModel, EncounterTableModel, GeneralStatsTableModel and RaidModel.DoubleAsHtml are removed. The page needs JavaScript. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Resolved the conflicts with the changes on master: - TimelineCreator: kept the json based BuildTimelineFile and took over the atomic write of the output file (temporary file next to the target, then move) from #30 - TimelineCreatorTests: master's plain xUnit assertions, adapted to the single output file - MechanicsTableBuilderTests: stays deleted, the html builders are gone - TimelineDataBuilderTests: converted from FluentAssertions to xUnit assertions Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Nov 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The timeline gets a new design, and the generator is changed to fit it: instead of building html strings in C#,
TimelineDataBuilderwrites the parsed encounters as json intotemplate.html, which draws everything in the browser. The layout can now change without touching C#.New design
index.htmlwith the timeline and the statistics as two pagesGenerator
TimelineDataBuilder(new) serializes the models. The defaultSystem.Text.Jsonencoder escapes<,>and&, so the data cannot end the surrounding script tagTimelineCreator.BuildTimelineFileonly fills the template; the signature is unchangedHtmlCreator, the html builders,OverviewTableModel,EncounterTableModel,GeneralStatsTableModel,RaidModel.DoubleAsHtml, both old templatesBreaking
statistics.htmlis no longer created; the statistics are part ofindex.html. An oldstatistics.htmlnext to it is left aloneraidTimeline.Models/raidTimeline.LogicTests
<,>or&) and for the written filedotnet test: 85 Logic tests and 13 App tests passNot in this PR
media/index.htmlandmedia/preview.pngstill show the old designmocks/folder, not committed🤖 Generated with Claude Code