[Moin-devel] CVS: MoinMoin wikiutil.py,1.107,1.108

J?rgen Hermann jhermann at users.sourceforge.net
Tue Jul 9 14:24:09 EDT 2002


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

Modified Files:
	wikiutil.py 
Log Message:
Free-form links in quicklinks


Index: wikiutil.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v
retrieving revision 1.107
retrieving revision 1.108
diff -C2 -r1.107 -r1.108
*** wikiutil.py	9 Jul 2002 21:00:39 -0000	1.107
--- wikiutil.py	9 Jul 2002 21:23:45 -0000	1.108
***************
*** 631,646 ****
          if not quicklinks:
              for pagename in config.navi_bar:
!                 quicklinks.append(getSysPage(pagename).page_name)
  
          for pagename in quicklinks:
              print (
                  '<td class="navibar" valign=top align=center bgcolor="#E8E8E8">'
                  '<font class="navibar" face="Arial,Helvetica" size="-1">'
!                 ' <a class="navibar" href="%(scriptname)s/%(pagelink)s">%(pagename)s</a> '
!                 '</font></td>') % {
!             'scriptname': webapi.getScriptname(),
!             'pagelink': quoteWikiname(pagename),
!             'pagename': pagename,
!         }
  
          print '</tr></table>'
--- 631,659 ----
          if not quicklinks:
              for pagename in config.navi_bar:
!                 if pagename.startswith('['):
!                     # copy real links verbatim
!                     quicklinks.append(pagename)
!                 else:
!                     quicklinks.append(getSysPage(pagename).page_name)
  
          for pagename in quicklinks:
+             if pagename.startswith('[') and pagename.endswith(']'):
+                 try:
+                     link, pagename = pagename[1:-1].split(' ', 1)
+                 except ValueError, TypeError:
+                     link = "#error"
+                     pagename = "Broken link: " + cgi.escape(pagename)
+                 else:
+                     # escape untrusted input!                   
+                     link = cgi.escape(link, quote=1)
+                     pagename = cgi.escape(pagename)
+             else:
+                 link =  webapi.getScriptname() + '/' + quoteWikiname(pagename)
+ 
              print (
                  '<td class="navibar" valign=top align=center bgcolor="#E8E8E8">'
                  '<font class="navibar" face="Arial,Helvetica" size="-1">'
!                 ' <a class="navibar" href="%(link)s">%(pagename)s</a> '
!                 '</font></td>') % {'link': link, 'pagename': pagename}
  
          print '</tr></table>'





More information about the Moin-devel mailing list