Currently Zope has two rules for object ids: 1) they must be str instances, and 
2) they must only consist of alphanumerics and a few extra characters. I have 
been playing around recently with trying to relax those rules to allow more 
flexible object ids, specifically allowing UTF-8 object ids. That seems to be 
entirely doable, and I made a simple package which monkey-patches Zope to do 
this: https://github.com/wichert/experimental.utf8id . Since all current 
browsers will interpret URLs as UTF-8 strings this will create beautiful URLs 
and gets us out of the ASCII-jail. Based on the result so far I want to suggest 
that we officially allow more flexible object ids for Zope 4.

Dieter Mauer tried something similar five (!!) years ago: 
https://github.com/zopefoundation/Zope/commit/40f1a4af3605204de7d803afe11f6cbbc97e0ccd
 . His approach differs a bit from mine: I added checks to make sure ids are 
valid UTF-8 and still disallow some characters, while he allows everything 
except a slash (/). That has the advantage of easily supporting things like 
binary user ids (for example GUIDs from Active Directory users).

I want to propose that we do the following:

Allow arbitrary str object ids in Zope 4 based on Dieter's work.
Configure standard name choosers, normalizers, etc. used to generate ids for 
content to create UTF-8 object ids.

Wichert.



_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to