me too. @Massimo, feel free to use it.... here's a small variation with mobile parameter:
def twitter_menu(menu, level=0, mobile=False): """ Generates twitter bootstrap's compliant menu """ lis = [] for li in menu: (text, active, href) = li[:3] sub = len(li) > 3 and li[3] or [] if len(sub) == 0: li_class = None el = LI(A(text, _href=href), _class=li_class) lis.append(el) else: li_class = 'dropdown' caret = level == 0 and B(_class='caret') or I(_class='icon-chevron-right') if mobile: li_class = None caret = B(_class='caret') sub_ul = twitter_menu(sub, level=level) el = LI(A(text, caret, _href=href, _class="dropdown-toggle", **{'_data-toggle' : 'dropdown'}), _class=li_class) lis.append(el) lis.append(sub_ul) else: sub_ul = twitter_menu(sub, level=level+1) el = LI(A(text, caret, _href=href, _class="dropdown-toggle", **{'_data-toggle' : 'dropdown'}), sub_ul, _class=li_class) lis.append(el) if level == 0: return UL(*lis, _class='nav') else: if mobile: return lis return UL(*lis, _class="dropdown-menu") Il giorno sabato 26 maggio 2012 10:56:10 UTC+2, Paolo Caruccio ha scritto: > > Do you mean to add a new MENU attribute (i.e. 'bootstrap_menu') like > 'mobile' and to switch by menu types? > I think that's a good option. > > >>