+hyph = Hyphenator(get_resource('res/hyph-dictionaries/hyph_pl_PL.dic'))
+
+def hyphenate_and_fix_conjunctions(source_tree):
+ """ hyphenate only powiesc, opowiadanie and wywiad tag"""
+ texts = etree.XPath('//*[self::powiesc|self::opowiadanie|self::wywiad]//text()')(source_tree)
+ for t in texts:
+ parent = t.getparent()
+ newt = ''
+ wlist = re.compile(r'\w+|[^\w]', re.UNICODE).findall(t)
+ for w in wlist:
+ newt += hyph.inserted(w, u'\u00AD')
+ newt = re.sub(r'(?<=\s\w)\s+', u'\u00A0', newt)
+ if t.is_text:
+ parent.text = newt
+ elif t.is_tail:
+ parent.tail = newt