Como escapar dos personagens em Pango Markup?
Pergunta
Meu programa tem um gtk.TreeView
que exibe um gtk.ListStore
. o gtk.ListStore
contém cordas como esta:
"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL
Onde URL
é (obviamente) uma string de URL. Às vezes há personagens em URL
Isso faz com que Pango falhe em analisar a marcação.
Existe uma maneira de escapar URL
Como um todo, para que o Pango o ignore para que seja exibido literalmente? Caso contrário, como devo "escapar" de personagens especiais em URLs?
Solução
Você precisa escapar dos valores. Não tenho certeza de que formato exato Pango exige, mas parece html e o cgi.escape função pode ser tudo que você precisa.
import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
(cgi.escape(site_title), cgi.escape(URL))
Outras dicas
glib.markup_escape_text
Pode ser uma abordagem mais canônica ao usar o GTK.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow