Revision: 4000
Author: wikipedian
Date: 2007-08-07 20:39:21 +0000 (Tue, 07 Aug 2007)
Log Message:
-----------
yellow transliteration colorization
Modified Paths:
--------------
trunk/pywikipedia/userinterfaces/terminal_interface.py
Modified: trunk/pywikipedia/userinterfaces/terminal_interface.py
===================================================================
--- trunk/pywikipedia/userinterfaces/terminal_interface.py 2007-08-07 20:36:31 UTC (rev
3999)
+++ trunk/pywikipedia/userinterfaces/terminal_interface.py 2007-08-07 20:39:21 UTC (rev
4000)
@@ -10,7 +10,24 @@
except ImportError:
ctypes_found = False
-# TODO: other colors
+# TODO: other colors:
+ #0 = Black
+ #1 = Blue
+ #2 = Green
+ #3 = Aqua
+ #4 = Red
+ #5 = Purple
+ #6 = Yellow
+ #7 = White
+ #8 = Gray
+ #9 = Light Blue
+ #10 = Light Green
+ #11 = Light Aqua
+ #12 = Light Red
+ #13 = Light Purple
+ #14 = Light Yellow
+ #15 = Bright White
+
unixColors = {
#None: chr(27) + '[0m', # Unix end tag to switch back to
default
'lightblue': chr(27) + '[94;1m', # Light Blue start tag
@@ -54,9 +71,8 @@
"""
if ctypes_found:
std_out_handle = ctypes.windll.kernel32.GetStdHandle(-11)
- lastColor = None
- #for i in range(0, len(colors)):
- # this relies on non-overlapping color tags that are all properly closed.
+ # this relies on non-overlapping, non-cascading color tags that are all
properly closed.
+ # TODO: This assumption is wrong: with transliteration, there can be
cascading color tags.
startM = True
while startM:
startM = startTagR.search(text)
@@ -99,28 +115,6 @@
If a character can't be displayed in the encoding used by the user's
terminal, it will be replaced with a question mark or by a
transliteration.
-
- colors is a list of integers, one for each character of text. If a
- list entry is None, the default terminal color will be used for the
- character at that position. Take care that the length of the colors
- list equals the text length.
-
- 0 = Black
- 1 = Blue
- 2 = Green
- 3 = Aqua
- 4 = Red
- 5 = Purple
- 6 = Yellow
- 7 = White
- 8 = Gray
- 9 = Light Blue
- 10 = Light Green
- 11 = Light Aqua
- 12 = Light Red
- 13 = Light Purple
- 14 = Light Yellow
- 15 = Bright White
"""
if colors:
if len(colors) != len(text):
@@ -151,13 +145,11 @@
transliterated = transliteration.trans(text[i], default =
'?', prev = prev, next = ' ')
# transliteration was successful. The replacement
# could consist of multiple letters.
- transliteratedText += transliterated
- transLength = len(transliterated)
# mark the transliterated letters in yellow.
- color = colors[i + sizeIncrease] or 14
- colors = colors[:i + sizeIncrease] + [color] * transLength + colors[i
+ sizeIncrease + 1:]
+ transliteratedText += '\03{lightyellow}%s\03{default}' %
transliterated
+ transLength = len(transliterated)
# memorize if we replaced a single letter by multiple letters.
- sizeIncrease += transLength - 1
+ sizeIncrease += transLength - 1 +
len('\03{lightyellow}\03{default}')
if len(transliterated) > 0:
prev = transliterated[-1]
else:
Show replies by date