[Moin-devel] CVS: MoinMoin wikimacro.py,1.43,1.44 wikiutil.py,1.102,1.103

J?rgen Hermann jhermann at users.sourceforge.net
Sat Jun 8 15:42:33 EDT 2002


Update of /cvsroot/moin/MoinMoin
In directory usw-pr-cvs1:/tmp/cvs-serv24194/MoinMoin

Modified Files:
	wikimacro.py wikiutil.py 
Log Message:
[ 566094 ] TitleIndex for non-latin-alphabet languages (by perky)


Index: wikimacro.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -r1.43 -r1.44
*** wikimacro.py	16 May 2002 18:28:15 -0000	1.43
--- wikimacro.py	8 Jun 2002 08:08:45 -0000	1.44
***************
*** 166,170 ****
              letter = name[0]
              if wikiutil.isUnicodeName(name):
!                 letter = "~"
              if letter not in index_letters:
                  index_letters.append(letter)
--- 166,175 ----
              letter = name[0]
              if wikiutil.isUnicodeName(name):
!                 try:
!                     letter = wikiutil.getUnicodeIndexGroup(unicode(name, config.charset))
!                     letter = letter.encode(config.charset)
!                 except UnicodeError:
!                     letter = None
!                 if not letter: letter = "~"
              if letter not in index_letters:
                  index_letters.append(letter)

Index: wikiutil.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v
retrieving revision 1.102
retrieving revision 1.103
diff -C2 -r1.102 -r1.103
*** wikiutil.py	11 May 2002 19:51:23 -0000	1.102
--- wikiutil.py	8 Jun 2002 08:08:45 -0000	1.103
***************
*** 400,403 ****
--- 400,415 ----
  
  
+ def getUnicodeIndexGroup(name):
+     """ Return a group letter for `name`, which must be a unicode string.
+ 
+         Currently supported:
+             - Hangul Syllables (U+AC00 - U+D7AF)
+     """
+     if u'\uAC00' <= name[0] <= u'\uD7AF': # Hangul Syllables
+         return unichr(0xac00 + (int(ord(name[0]) - 0xac00) / 588) * 588)
+     else:
+         return None
+ 
+ 
  def isUnicodeName(name):
      """Try to determine if the quoted wikiname is a special, pure unicode name"""





More information about the Moin-devel mailing list