fixed post rendering to properly display surrogate pair characters

This commit is contained in:
Morgan McMillian 2020-02-01 06:53:58 -08:00
parent e883b8dcba
commit 5b0a94eca4
2 changed files with 6 additions and 25 deletions

View file

@ -149,7 +149,7 @@ Container {
topMargin: ui.sdu(2.0) topMargin: ui.sdu(2.0)
bottomMargin: ui.sdu(2.0) bottomMargin: ui.sdu(2.0)
Label { Label {
text: Parser.parsePostText(ListItemData.content) text: Parser.fixPostHtml(ListItemData.content.html)
multiline: true multiline: true
textFormat: TextFormat.Html textFormat: TextFormat.Html
navigation.focusPolicy: NavigationFocusPolicy.NotFocusable navigation.focusPolicy: NavigationFocusPolicy.NotFocusable

View file

@ -17,27 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
function parsePostText(data) { function fixPostHtml(data) {
var t = data.text; data = data.replace(/<\\?\/?span[^>]*>/g, "");
data.entities.links.forEach(function(link, indx) { data = data.replace(/<br>/g, "<br/>");
var ltext = t.substring(link.pos, link.pos + link.len); return data;
var pretext = t.substring(0, link.pos);
var postext = t.substring(link.pos + link.len);
pretext = convert(pretext);
ltext = convert(ltext);
postext = convert(postext);
t = pretext + "<a href=\"" + link.link + "\">" + ltext + "</a>" + postext;
});
return t;
}
function convert(t) {
if (t.indexOf('<a href=') > 0) {
return t;
}
t = t.replace(/&/g, "&amp;");
t = t.replace(/<3/g, "\u2764");
t = t.replace(/</g, "&lt;");
t = t.replace(/>/g, "&gt;");
return t;
} }