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.
This adds an option to override the default escaping, allowing you to use handlebars to render things which are not HTML. It both alters the public API—is a breaking change—and adds a feature that might not be the common use case for this library, but I wanted to PR these changes against the canonical repo before creating a fork, just in case you thought they would be useful!
This does the following:
Escaper
interface, which defines anEscape
method that can be used to escape unsafe textEscape
intoHTMLEscaper
which satisfies theEscaper
interfaceTemplateOptions
struct, which defines options for a template, such as itsEscaper
TemplateOptions
as an optional parameter to template parsing functions; whennil
, the old behavior is maintainedescape_tests.go
which had no asserts, and adds a test for the new feature.Let me know what you think, or maybe if you like the idea but would prefer it implemented in a different way. It won't hurt my feelings if you close this PR; it's an unnecessary addition for most users, changes the public API, and I don't mind maintaining a fork for my purposes.