fixed post rendering to properly display surrogate pair characters
This commit is contained in:
parent
e883b8dcba
commit
5b0a94eca4
2 changed files with 6 additions and 25 deletions
|
@ -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
|
||||||
|
|
|
@ -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, "&");
|
|
||||||
t = t.replace(/<3/g, "\u2764");
|
|
||||||
t = t.replace(/</g, "<");
|
|
||||||
t = t.replace(/>/g, ">");
|
|
||||||
return t;
|
|
||||||
}
|
|
Reference in a new issue