Module: Fixed and documented 'text_to_pango' method.

This commit is contained in:
Lukáš Mandák 2015-06-22 11:04:51 +02:00
parent 14b35c6081
commit fff0444151

View File

@ -38,7 +38,7 @@ class Module(SettingsBase):
if key not in self.output:
self.output.update({key: val})
if self.output.get("markup") == "pango":
self.__text_to_pango()
self.text_to_pango()
json.insert(convert_position(self.position, json), self.output)
@ -111,17 +111,29 @@ class Module(SettingsBase):
self.position = position
return self
def __text_to_pango(self):
def text_to_pango(self):
"""
Replaces all ampersands in `"full_text"` and `"short_text"` blocks` in
Replaces all ampersands in `full_text` and `short_text` attributes of
`self.output` with `&`.
It is called internally when pango markup is used.
Can be called multiple times (`&` won't change to `&`).
"""
def replace(s):
s = s.split("&")
out = s[0]
for i in range(len(s) - 1):
if s[i + 1].startswith("amp;"):
out += "&" + s[i + 1]
else:
out += "&" + s[i + 1]
return out
if "full_text" in self.output.keys():
out = self.output["full_text"].replace("&", "&")
self.output.update({"full_text": out})
self.output["full_text"] = replace(self.output["full_text"])
if "short_text" in self.output.keys():
out = self.output["short_text"].replace("&", "&")
self.output.update({"short_text": out})
self.output["short_text"] = replace(self.output["short_text"])
class IntervalModule(Module):