Code

add text case effects
[inkscape.git] / share / extensions / text_sentencecase.py
1 import chardataeffect, inkex, string\r
2 \r
3 class C(chardataeffect.CharDataEffect):\r
4 \r
5   sentence_start = True\r
6   was_punctuation = False\r
7 \r
8   def process_chardata(self,text, line, par):\r
9     r = ""\r
10     #inkex.debug(text+str(line)+str(par))
11     for c in text:\r
12       if c == '.' or c == '!' or c == '?':\r
13         self.was_punctuation = True\r
14       elif ((c.isspace() or line == True) and self.was_punctuation) or par == True:\r
15         self.sentence_start = True\r
16         self.was_punctuation = False\r
17       elif c == '"' or c == ')':\r
18         pass\r
19       else:\r
20         self.was_punctuation = False\r
22       if not c.isspace():\r
23         line = False\r
24         par = False\r
25 \r
26       if self.sentence_start and c.isalpha():\r
27         r = r + c.upper()\r
28         self.sentence_start = False\r
29       elif not self.sentence_start and c.isalpha():\r
30         r = r + c.lower()\r
31       else:\r
32         r = r + c\r
33 \r
34     return r\r
35 \r
36 c = C()\r
37 c.affect()\r