I was building a widget and had inadvertently used $core_v2_widget.GetStringValue() instead of $core_v2_widget.GetHtmlValue() and noticed some differences. I feel that understanding what is going on under the hood allows me to be an effective developer, so I had some questions.
Q: $core_v2_widget.GetStringValue() converted the URL in an HTML snippet (shown below). Why does it do this, and are there any other transformations that it performs?
Example input value: <a href="https://community.telligent.com/community/11">Click me</a>
Example output: <a href="~/community/11">Click me</a>
Q: How does $core_v2_widget.GetHtmlValue() differ from $core_v2_widget.GetStringValue()?
Q: $core_v2_ui.Render() is supposed to make the content "safe". What does "safe" mean? And how do the transformations change when you use the optional "target" value?