Как экранировать символы в разметке Панго? - PullRequest
9 голосов
/ 19 ноября 2009

Моя программа имеет gtk.TreeView, который отображает gtk.ListStore. gtk.ListStore содержит такие строки:

"<span size='medium'><b>"+site_title+"</b></span>"+"\n"+URL

Где URL (очевидно) строка URL. Иногда в URL есть символы, которые не позволяют pango анализировать разметку.

Есть ли способ избежать URL в целом, чтобы панго просто проигнорировал его, чтобы он отображался буквально? Если нет, то как мне «экранировать» специальные символы в URL?

Ответы [ 2 ]

19 голосов
/ 25 ноября 2009

glib.markup_escape_text может быть более каноническим подходом при использовании GTK.

2 голосов
/ 19 ноября 2009

Вам нужно экранировать значения. Я не уверен, какой именно формат требуется для Pango, но он выглядит как HTML, и вам может понадобиться функция cgi.escape .

import cgi
print "<span size='medium'><b>%s</b></span>\n%s" %
      (cgi.escape(site_title), cgi.escape(URL))
...