1 #!/usr/bin/env python
2 import chardataeffect, inkex, string
4 class C(chardataeffect.CharDataEffect):
6 sentence_start = True
7 was_punctuation = False
9 def process_chardata(self,text, line, par):
10 r = ""
11 #inkex.debug(text+str(line)+str(par))
12 for c in text:
13 if c == '.' or c == '!' or c == '?':
14 self.was_punctuation = True
15 elif ((c.isspace() or line == True) and self.was_punctuation) or par == True:
16 self.sentence_start = True
17 self.was_punctuation = False
18 elif c == '"' or c == ')':
19 pass
20 else:
21 self.was_punctuation = False
23 if not c.isspace():
24 line = False
25 par = False
27 if self.sentence_start and c.isalpha():
28 r = r + c.upper()
29 self.sentence_start = False
30 elif not self.sentence_start and c.isalpha():
31 r = r + c.lower()
32 else:
33 r = r + c
35 return r
37 c = C()
38 c.affect()