Open
Conversation
StyleTagBuilder and ScriptTagBuilder are now instances of the Html tag they represent. In the IDocumentBuilder interfaces they now simply attach themselves.
Updated the class to have the Assembly passed into it. Also created some default overides to make it easier to use the class.
- Refactored the BatchResultWriter to reduce the logic in a static class and moved the logic into a HtmlDocumentBuilder class. - HtmlDocumentBuilder can be swapped in BatchResultWriter - DefaultHtmlDocumentBuilder defines the current script and css tags. - Script tag support user URI for src attribtues instead of content. - Script and Style Tags support string as their content. - Link tag added - Everything on the HtmlDocument is created with IDocumentBuilders even the title. - Added some comments to the code.
…ith HtmlDocumentBuilder
|
Test |
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.
The idea here is to create a mechanism for side-loading additional CSS and Script tags into the generated report document.
Broke up the BatchResultWriter into a couple of classes allowing the document creation process to be more compose-able. The update logic breaks up the resolution of resources and the updating of the document into two separate interfaces. IDocumentBuilder which modifies the HtmlDocument that is passed into it via the Apply method and the IDocumentPartLoader which resolves resources and exposes the text via the .Read() method.
Only 3 IDocumentBuilder are default, the ScriptTagBuilder, StyleTagBuilder and ReportPartBuilder which should only be run once per report. They are pretty self explanatory and represent the binding logic originally found in the writeJavascript and WriteCSS methods.
The resolution of content for the IDocumentBuilders is left to the IDocumentPartLoader implementations.