From noreply at sourceforge.net Fri Mar 1 11:18:16 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Fri Mar 1 11:18:16 2002 Subject: [Moin-devel] [ moin-Bugs-524485 ] bad python syntax in wikiutil.py Message-ID: Bugs item #524485, was opened at 2002-03-01 11:00 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=524485&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: bad python syntax in wikiutil.py Initial Comment: line 348:: return formatter.url( "%s/%s" % (webapi.getScriptname(), params), text, css_class, **kw) the kw argument should loose the asterics. I found this when I ran test.cgi. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=524485&group_id=8482 From jhermann at users.sourceforge.net Fri Mar 1 11:25:14 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 1 11:25:14 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.81,1.82 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv6111 Modified Files: wikiutil.py Log Message: Backport to 1.5.2 Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -r1.81 -r1.82 *** wikiutil.py 27 Feb 2002 21:27:24 -0000 1.81 --- wikiutil.py 1 Mar 2002 19:21:25 -0000 1.82 *************** *** 346,351 **** text = params # default if formatter: ! return formatter.url( ! "%s/%s" % (webapi.getScriptname(), params), text, css_class, **kw) if css_class: classattr = ' class="%s"' % css_class --- 346,351 ---- text = params # default if formatter: ! return apply(formatter.url, ! ("%s/%s" % (webapi.getScriptname(), params), text, css_class), kw) if css_class: classattr = ' class="%s"' % css_class From brian at dorseys.org Fri Mar 1 17:15:06 2002 From: brian at dorseys.org (Brian Dorsey) Date: Fri Mar 1 17:15:06 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: ; from cmedcoff@hotmail.com on Wed, Feb 27, 2002 at 05:50:52PM -0500 References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> Message-ID: <20020301171534.B15509@dorseys.org> On Wed, Feb 27, 2002 at 05:50:52PM -0500, Charles Medcoff wrote: > I'd be happy to review/edit Brians efforts and test out the instructions. > I've posted my first draft of the IIS install instructions. Charles, please review/edit and give them a try! :) In wiki fashion, feel free to fix anything that's broken. Take care, -Brian From jh at web.de Sat Mar 2 01:33:21 2002 From: jh at web.de (Juergen Hermann) Date: Sat Mar 2 01:33:21 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: <20020301171534.B15509@dorseys.org> Message-ID: On Fri, 1 Mar 2002 17:15:34 -0800, Brian Dorsey wrote: >On Wed, Feb 27, 2002 at 05:50:52PM -0500, Charles Medcoff wrote: >> I'd be happy to review/edit Brians efforts and test out the instructions. >> > >I've posted my first draft of the IIS install instructions. Charles, please review/edit and give them a try! :) In wiki fashion, feel free to fix anything that's broken. I fixed some formatting and text. I also removed any options/alternatives (esp. not using --prefix): people will be either confuzed, or clever enough to adapt things themselves. Ciao, J?rgen From jh at web.de Sat Mar 2 08:36:41 2002 From: jh at web.de (Juergen Hermann) Date: Sat Mar 2 08:36:41 2002 Subject: [Moin-devel] 0.11 final release Message-ID: Hi! Next weekend is the sheduled release date for 0.11 final, as the doc update is nearly completed. I just synched the translation texts, so if you want to have them 100% up-to-date for the release, the time is now... The following command, which lists the untranslated texts, will help you (replace "fr" with your language): py MoinMoin\i18n\_check.py fr Ciao, J?rgen From jhermann at users.sourceforge.net Sun Mar 3 01:25:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 3 01:25:06 2002 Subject: [Moin-devel] CVS: MoinMoin cgimain.py,1.45,1.46 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv5357 Modified Files: cgimain.py Log Message: Strip "Goto" pagename Index: cgimain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/cgimain.py,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** cgimain.py 27 Feb 2002 21:27:24 -0000 1.45 --- cgimain.py 3 Mar 2002 09:24:36 -0000 1.46 *************** *** 80,84 **** def run(properties={}): ! import cgi, os, sys # force input/output to binary --- 80,84 ---- def run(properties={}): ! import cgi, os, sys, string # force input/output to binary *************** *** 165,169 **** else: if request.form.has_key('goto'): ! query = request.form['goto'].value elif pagename: query = pagename --- 165,169 ---- else: if request.form.has_key('goto'): ! query = string.strip(request.form['goto'].value) elif pagename: query = pagename From brian at dorseys.org Sun Mar 3 21:50:02 2002 From: brian at dorseys.org (Brian Dorsey) Date: Sun Mar 3 21:50:02 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: ; from jh@web.de on Sat, Mar 02, 2002 at 10:31:56AM +0100 References: <20020301171534.B15509@dorseys.org> Message-ID: <20020303215036.A2740@dorseys.org> On Sat, Mar 02, 2002 at 10:31:56AM +0100, Juergen Hermann wrote: > I fixed some formatting and text. I also removed any > options/alternatives (esp. not using --prefix): people will be either > confuzed, or clever enough to adapt things themselves. Looks great! I'll see if I can track down the permissions issue I had once, but not later... so we can get rid of the TODOs. -Brian From jhermann at users.sourceforge.net Mon Mar 4 11:13:16 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 11:13:16 2002 Subject: [Moin-devel] CVS: MoinMoin/parser python.py,1.8,1.9 Message-ID: Update of /cvsroot/moin/MoinMoin/parser In directory usw-pr-cvs1:/tmp/cvs-serv6443/parser Modified Files: python.py Log Message: Added linecounts to colorized code displays Index: python.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/parser/python.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** python.py 19 Feb 2002 23:08:26 -0000 1.8 --- python.py 4 Mar 2002 19:12:57 -0000 1.9 *************** *** 32,44 **** class Parser: """ Send colored python source. """ ! def __init__(self, raw, **kw): """ Store the source text. """ self.raw = string.rstrip(string.expandtabs(raw)) ! self.out = kw.get('out', sys.stdout) def format(self, formatter, form): --- 32,94 ---- + class CountedOutput: + """ Add line counts and possibly info texts to output + """ + + def __init__(self, out, lineinfo): + self.out = out + self.lineinfo = lineinfo + self.line = 0 + self.infocounter = 0 + self.maxinfo = 0 + + if lineinfo: + import operator + self.maxinfo = reduce(operator.add, map(len, lineinfo.values()), 0) + + def line_no(self): + if self.lineinfo: + for info in self.lineinfo.get(self.line, []): + self.infocounter += 1 + self.out.write('' + '' % (self.infocounter, '#FF0000')) + if self.infocounter == 1: + self.out.write(' ') + else: + self.out.write('<< ' % (self.infocounter-1)) + if self.infocounter == self.maxinfo: + self.out.write(' ') + else: + self.out.write('>> ' % (self.infocounter+1)) + self.out.write('#%d: %s\n' % (self.infocounter, info)) + self.out.write('%5d ' % (_colors[_TEXT], self.line)) + + def write(self, data): + if not self.line: + self.line = 1 + self.line_no() + + parts = data.split('\n') + if len(parts) > 1: + self.out.write(parts[0]) + for part in parts[1:]: + self.line += 1 + self.out.write('\n') + self.line_no() + self.out.write(part) + else: + self.out.write(data) + + class Parser: """ Send colored python source. """ ! def __init__(self, raw, lineinfo={}, **kw): """ Store the source text. """ self.raw = string.rstrip(string.expandtabs(raw)) ! self.rawout = kw.get('out', sys.stdout) ! self.out = CountedOutput(self.rawout, lineinfo) def format(self, formatter, form): *************** *** 57,61 **** self.pos = 0 text = cStringIO.StringIO(self.raw) ! self.out.write('
')
          try:
              tokenize.tokenize(text.readline, self)
--- 107,111 ----
          self.pos = 0
          text = cStringIO.StringIO(self.raw)
!         self.rawout.write('
')
          try:
              tokenize.tokenize(text.readline, self)
***************
*** 63,69 ****
              msg = ex[0]
              line = ex[1][0]
!             self.out.write("

ERROR: %s

%s\n" % ( msg, self.raw[self.lines[line]:])) ! self.out.write('
') def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line): --- 113,119 ---- msg = ex[0] line = ex[1][0] ! self.rawout.write("

ERROR: %s

%s\n" % ( msg, self.raw[self.lines[line]:])) ! self.rawout.write('
') def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line): From jhermann at users.sourceforge.net Mon Mar 4 12:29:09 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 12:29:09 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnInstalling_2fInternetInformationServer,1.2,1.3 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv28824 Modified Files: HelpOnInstalling_2fInternetInformationServer Log Message: 0.11 IIS install docs Index: HelpOnInstalling_2fInternetInformationServer =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fInternetInformationServer,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnInstalling_2fInternetInformationServer 13 Feb 2002 21:52:28 -0000 1.2 --- HelpOnInstalling_2fInternetInformationServer 4 Mar 2002 20:18:35 -0000 1.3 *************** *** 1,61 **** ##cvsid: $Id$ ! ... someone provide current instructions here ... ! Some more info is on MoinMoin:MoinMoinWinCvs. ! === Older information === ! This is the INSTALL.IIS file from the 010 distribution: {{{ ! ############################# ! # INSTALLATION ON WIN2K/IIS # ! ############################# ! ! Steps to set up MoinMoin on Win2K/IIS (Should also work for NT4/IIS) ! ! Installation Pre-Requirements: ! - Win2K Pro or Server (Should also work on NT4) ! - Internet Information Server or Personal Web Server ! - ActivePython (found at http://www.activestate.com) ! ! Unpack the contents of the ZIP into your Python20 directory and rename the ! MoinMoin-X.X directory to "MoinMoin" so that this file (INSTALL) is located ! at "\Python20\MoinMoin". ! ! The next step is to edit the file "C:\MoinMoin\wiki-moinmoin\moin_config.py" ! and adapt it to your particular setup. The only things we need to change to ! get things working are the values of the two variables "data_dir" and ! "url_prefix". For our situation, we need the following values: ! ! data_dir = './data' ! url_prefix = '/wiki-moinmoin' ! ! Incidently, those are the defaults. ! ! Create a Virtual Dir named "wiki-moinmoin" under the root of your web site ! and point it to the "C:\Python20\MoinMoin\wiki-moinmoin" directory. The ! Virtual Dir needs "Read" and "Run Scripts" permission. ! ! On the properties page of the Virtual Dir under Application Settings be ! sure that Execute Permissions is set to either Scripts Only or Scripts ! and Executables. Click the Configuration button and then Add to create ! the following new Application Mapping (NOTE: The "%s %s" IS case ! sensitive): ! ! Executeable: C:\Python20\python.exe %s %s ! Extension: .cgi ! Verbs: All Verbs ! Script Engine: Checked ! Check that file exists: UnChecked ! ! Click OK and close all property pages then restart the web site. Open a ! browser and go to "http://localhost/wiki-moinmoin/test.cgi" and be sure ! everything looks OK. ! ! Then go to "http://localhost/wiki-moinmoin/moin.cgi" and you should get the ! FrontPage. To further test your new Wiki, "EditText" the "FrontPage", save ! it and click on "RecentChanges". Congrats! You have a working Wiki! ! "Gregory Petersen" , 2001-04-04 }}} --- 1,116 ---- ##cvsid: $Id$ + '''Index''' + [[TableOfContents]] ! == Requirements == ! Before you install MoinMoin:MoinMoin, make sure you have the necessary infra-structure in place, namely the ''Internet Information Services'' webserver (any version should be OK), and a ''Python'' installation (version 2.0 or higher is recommended, don't run 1.5.2 without a compelling reason). ! In the following description, we assume that you have installed or will install things to these locations: ! * IIS to its default location ! * `C:\Python` - the Python interpreter ! * `C:\Moin` - Moin``Moin itself ! Quite often, you might want to install things elsewhere, which is no problem at all; you just have to adapt any paths that appear in a command or config file to the locations you have chosen. ! ! This installation procedure was tested with IIS 5 for Windows running on Windows 2000sp2, and using Python 2.2. ! ! == Preparation == ! ! === Installing IIS === ! ! You currently need an external webserver to run Moin``Moin. ! ! From Microsoft: (http://www.microsoft.com/windows2000/en/server/iis/) ! ! To install IIS, add components, or remove components: ! ! Click Start, point to Settings, click Control Panel and start the Add/Remove Programs application. ! Select Configure Windows, click the Components button, and then follow the on-screen instructions ! to install, remove, or add components to IIS. ! ! Make sure that your webserver runs without problems before you start to install Moin``Moin; problems with your webserver installation are not in the scope of this document. ! ! === Installing Python === ! ! Download [http://www.python.org/ftp/python/2.1.2/Python-2.1.2.exe Python 2.1.2] and install it. Python installation is done via a standard Windows installer program. ! ! === Installing MoinMoin === ! ! Before creating a wiki instance, you have to download and install the basic Moin``Moin software. We assume you already have downloaded the distribution archive to the "`C:\TEMP`" directory[[FootNote(If you want to install the current development version from CVS, replace "C:\TEMP" with your "moin" working directory.)]]. ! ! Open a console window and enter the following commands: ! {{{ ! C: ! cd \temp ! unzip moin-0.11.zip ! cd moin-0.11 ! python setup.py install --prefix=C:\Moin --record=install.log ! }}} ! ! This will install all necessary files to the "`C:\Moin`" directory, and create a "`install.log`" file listing all the files that are created there. ! ! [[FootNote]] ! ! == Creating a Wiki Instance == ! ! You could run your wiki directly using the sample wiki created in "`C:\Moin`", but this is not recommended for two reasons: ! 1. updating your wiki is more complicated and more dangerous. ! 1. creating a second wiki instance, even if you currently don't plan for one, is much easier. ! ! So, enter these commands in a console window: ! {{{ ! cd \Moin ! md mywiki ! md mywiki\data ! xcopy share\moin\data mywiki\data /E ! copy share\moin\cgi-bin mywiki ! copy share\moin\htdocs\index.html mywiki ! }}} ! ! "`mywiki`" is the name of your wiki instance, you might want to chose a different name best fitting the intended use of this instance; just don't name it simply "`wiki`", because that would result in problems later on. ! ! We have to make sure that `moin.cgi` (and `test.cgi` if you want to run it) can find the Moin``Moin directory, so that "{{{import MoinMoin}}}" will work. You can either setup a `PYTHONPATH` environment variable which includes the installation path, but sometimes it can be tricky to make sure the variable will be set in the CGI environment. The easiest way to make sure `MoinMoin` can be imported is to append to `sys.path` ''within'' `moin.cgi` and `test.cgi`. ! ! You can change the first two lines of code in moin.cgi to something like this: {{{ ! #!python ! import sys ! sys.path.append(r'C:\Moin') ! }}} ! Notice that we're pointing to the directory which contains the Moin``Moin directory, not the directory itself. ! ! /!\ '''Python 2.2''': Python 2.2 changed the installation layout. Because of this, you have to change the line of code given above to "{{{sys.path.append(r'C:\Moin\Lib\site-packages')}}}". ! ! Next, you'll need to create two virtual directories in IIS. One for the shared data, and one for this specific wiki instance. ! ! Go to ''Control Panel => Administrative Tools => Internet Information Service''. Open up the tree to ''Default Web site''. ! ! Right click on ''Default Web Site'' and choose ''New => Virtual directory''. This will bring up a wizard with the manditory useless first screen, hit next. Enter "`wiki`" for the alias name and hit next. Browse to "`C:\Moin\share\moin\htdocs`" and hit next. Leave the ''Access permissions'' at their defaults and hit next. And now you're done, hit finish! ! ! Now follow the same steps, but set the alias to "`mywiki`" and the path to "`C:\Moin\mywiki`". ! TODO: ''Does it need more permissions?'' ! ! Now you need to setup the 'mywiki' alias so that it will run Python to interpret `.cgi` files. Right click on your new 'mywiki' alias and choose ''Properties''. On the first tab (''Virtual Directory''), click the ''Configuration'' button. The first tab is the ''App Mappings'' tab, which defines which programs to use for each file exetension. Click ''Add''. Browse to your `python.exe` (probably something like `c:\pythonXX\python.exe`). Then add {{{-u %s %s}}} after the Python executable path. The ''Executable'' line will look something like this: {{{C:\Python22\python.exe -u %s %s}}}. In the ''Extension'' box enter {{{.cgi}}} with the begining period. Confirm that the ''Check that file exists'' option is not checked (if it is, Moin``Moin won't be able to display sub pages). Ok, you're done with the alias configuration, click ''OK'' several times to get back out of all the dialog boxes. ! TODO: Document directory permissions for IUSR_XXXX gotcha. ! ! If you add another wiki instance, you'll only need to setup the reference to its folder, they can safely share the "`wiki`" alias which points to static files only. ! ! That is all, try to access your new-born wiki with the URL "`http://127.0.0.1/mywiki/`". You should see the Front``Page, try to edit and save it, and if that works, see if your edit is reflected on the Recent``Changes page. ! ! Finally, edit "`moin_config.py`" and at least change "`sitename`" and "`logo_url`" to some personal values: ! {{{ ! sitename = 'My Wiki' ! logo_url = '/images/mywiki-logo.gif' ! }}} ! ! For a personal or intranet installation, you'll normally also add the line {{{ ! allowed_actions = ['DeletePage', 'AttachFile'] }}} + + === Troubleshooting === + + If you see an error like "{{{ImportError: No module named MoinMoin}}}", it means that python cannot find Moin``Moin. See above for how to set your `PYTHONPATH` or add to `sys.path`. + + From jhermann at users.sourceforge.net Mon Mar 4 12:53:09 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 12:53:09 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text MoinMoin_2fInstallationsAnleitung,NONE,1.1 MoinMoin,1.5,1.6 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv4068 Modified Files: MoinMoin Added Files: MoinMoin_2fInstallationsAnleitung Log Message: InstallationsAnleitung - installation docs in German --- NEW FILE: MoinMoin_2fInstallationsAnleitung --- #pragma section-numbers off /!\ TODO jh: Replace the static texts here when HilfeZurInstallation is translated. Note that page links are replaced by anchor links! Diese HTML-Seite fasst die grundlegenden Installationsbeschreibungen von http://purl.net/wiki/moin/MoinMoin/HilfeZurInstallation zusammen. Sie enth?lt alle notwendigen Informationen, um Ihre eigene Wiki-Umbegung einzurichten, auch ohne online zu sein. Wenn Sie jedoch eine permanente Internet-Verbindung besitzen, k?nnen Sie auch die zuvor erw?hnte Seite "Hilfe``Zur``Installation" in den Browser laden, die ggf. aktuellere Informationen enth?lt. Nachdem Sie gem?? der Anleitung Ihr Wiki zum Laufen gebracht haben, k?nnen Sie den Rest der Onlinehilfe direkt dort lesen. == How to install your own MoinMoin Wiki == This page describes the installation procedure applying to MoinMoin:MoinMoin version 0.11 and up. In the next section, there is a list of real-world [#installscenarios Installation Scenarios] that help you to understand how to apply the instructions in different environments. [#basic-install Basic Installation] explains the "`setup.py`" step of the installation in more detail. This applies equally to all scenarios, and you should read it before trying a live installation. After a successful installation, you might want to read more about configuration and other options that you, as the wiki administrator, can set up. MoinMoin:HelpOnAdministration contains links to pages that cover these topics. Especially, the MoinMoin:HelpOnConfiguration and MoinMoin:HelpOnUpdating pages provide additional information regarding wiki setup and maintenance. MoinMoin:MoinMoinWinCvs and MoinMoin:MoinMoinUnixCvs describe how to run your wiki using the current development version from the MoinMoin:SourceForge CVS repository. [[Anchor(installscenarios)]] === Sample Installation Scenarios === The following links lead you to concrete examples of installation sessions, showing the commands used and explaining what they do. It is highly recommended that you ''first'' read the general information on installing (especially the next section of this page) before choosing an installation scenario that best fits your intended use of MoinMoin:MoinMoin. UNIX: * [#unix-install UNIX Installation] Windows: * [#win32apache-install Windows Installation mit Apache] * [#win32iis-install Windows Installation mit Microsoft/IIS] [[Anchor(basic-install)]] [[Include(HilfeZurInstallation/BasisInstallation)]] ------ [[Anchor(unix-install)]] ------ [[Include(HilfeZurInstallation/ApacheAufUnix, "UNIX Installation", 1)]] ------ [[Anchor(win32apache-install)]] ------ [[Include(HilfeZurInstallation/ApacheAufWin32, "Windows Installation mit Apache", 1)]] ------ [[Anchor(win32iis-install)]] ------ [[Include(HilfeZurInstallation/InternetInformationServer, "Windows Installation mit Microsoft/IIS", 1)]] Index: MoinMoin =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/MoinMoin,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** MoinMoin 27 Feb 2002 21:00:43 -0000 1.5 --- MoinMoin 4 Mar 2002 20:37:23 -0000 1.6 *************** *** 13,16 **** --- 13,17 ---- * MoinMoin:MoinMoinWikis - list of wiki sites using MoinMoin * /InstallDocs - all the help pages about installation rolled into one + * /InstallationsAnleitung - installation docs in German Other pages about MoinMoin: From jhermann at users.sourceforge.net Mon Mar 4 12:54:21 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 12:54:21 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpContents,1.10,1.11 HelpForBeginners,1.5,1.6 HelpIndex,1.2,1.3 HelpMiscellaneous_2fFrequentlyAskedQuestions,1.1,1.2 HelpOnAdministration,1.3,1.4 HelpOnConfiguration,1.8,1.9 HelpOnConfiguration_2fSecurityPolicy,1.3,1.4 HelpOnEditing,1.3,1.4 HelpOnEditing_2fSubPages,1.2,1.3 HelpOnFormatting,1.3,1.4 HelpOnHeadlines,1.3,1.4 HelpOnInstalling,1.9,1.10 HelpOnInstalling_2fApacheOnUnix,1.5,1.6 HelpOnInstalling_2fInternetInformationServer,1.3,1.4 HelpOnLinking,1.5,1.6 HelpOnLists,1.3,1.4 HelpOnMacros,1.5,1.6 HelpOnNavigation,1.5,1.6 HelpOnPageCreation,1.5,1.6 HelpOnPageDeletion,1.5,1.6 HelpOnProcessingInstructions,1.3,1.4 HelpOnRules,1.2,1.3 HelpOnSmileys,1.2,1.3 HelpOnSpellCheck,1.4,1.5 HelpOnTables,1.4,1.5 HelpOnUpdating,1.4,1.5 HelpOnXmlPages,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv5874 Modified Files: HelpContents HelpForBeginners HelpIndex HelpMiscellaneous_2fFrequentlyAskedQuestions HelpOnAdministration HelpOnConfiguration HelpOnConfiguration_2fSecurityPolicy HelpOnEditing HelpOnEditing_2fSubPages HelpOnFormatting HelpOnHeadlines HelpOnInstalling HelpOnInstalling_2fApacheOnUnix HelpOnInstalling_2fInternetInformationServer HelpOnLinking HelpOnLists HelpOnMacros HelpOnNavigation HelpOnPageCreation HelpOnPageDeletion HelpOnProcessingInstructions HelpOnRules HelpOnSmileys HelpOnSpellCheck HelpOnTables HelpOnUpdating HelpOnXmlPages Log Message: cvsid does not mix well with -kb Index: HelpContents =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpContents,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** HelpContents 26 Feb 2002 00:25:10 -0000 1.10 --- HelpContents 4 Mar 2002 20:42:20 -0000 1.11 *************** *** 1,4 **** - ##cvsid: $Id$ - == Help Contents == --- 1,2 ---- Index: HelpForBeginners =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpForBeginners,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpForBeginners 20 Feb 2002 20:57:58 -0000 1.5 --- HelpForBeginners 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - == WikiWikiWeb == A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. --- 1,2 ---- Index: HelpIndex =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpIndex,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpIndex 13 Feb 2002 21:52:28 -0000 1.2 --- HelpIndex 4 Mar 2002 20:42:20 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - The following is a list of all help pages: [[PageList(Help.*)]] --- 1,2 ---- Index: HelpMiscellaneous_2fFrequentlyAskedQuestions =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpMiscellaneous_2fFrequentlyAskedQuestions,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** HelpMiscellaneous_2fFrequentlyAskedQuestions 13 Feb 2002 23:43:15 -0000 1.1 --- HelpMiscellaneous_2fFrequentlyAskedQuestions 4 Mar 2002 20:42:20 -0000 1.2 *************** *** 1,4 **** - ##cvsid: $Id$ - '''Index''' [[TableOfContents]] --- 1,2 ---- Index: HelpOnAdministration =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnAdministration,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnAdministration 20 Feb 2002 20:57:58 -0000 1.3 --- HelpOnAdministration 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration --- 1,2 ---- Index: HelpOnConfiguration =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** HelpOnConfiguration 27 Feb 2002 21:00:42 -0000 1.8 --- HelpOnConfiguration 4 Mar 2002 20:42:20 -0000 1.9 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration > HelpOnConfiguration --- 1,2 ---- Index: HelpOnConfiguration_2fSecurityPolicy =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration_2fSecurityPolicy,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnConfiguration_2fSecurityPolicy 20 Feb 2002 20:57:58 -0000 1.3 --- HelpOnConfiguration_2fSecurityPolicy 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - `SecurityPolicy` is a config option that allows wiki admins to dynamically enable or disable certain key actions in a MoinMoin wiki, most notably editing and deleting content. --- 1,2 ---- Index: HelpOnEditing =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnEditing,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnEditing 13 Feb 2002 21:52:28 -0000 1.3 --- HelpOnEditing 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - == Page Editing == Names of pages have to LookLikeThis. It's called a WikiName. If you write a word that LookLikeThis, it will be automatically turned into a link. More details about this you find on HelpForBeginners. --- 1,2 ---- Index: HelpOnEditing_2fSubPages =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnEditing_2fSubPages,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnEditing_2fSubPages 13 Feb 2002 21:52:28 -0000 1.2 --- HelpOnEditing_2fSubPages 4 Mar 2002 20:42:20 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnEditing --- 1,2 ---- Index: HelpOnFormatting =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnFormatting,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnFormatting 19 Feb 2002 23:20:46 -0000 1.3 --- HelpOnFormatting 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - == Text Formatting Rules == --- 1,2 ---- Index: HelpOnHeadlines =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnHeadlines,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnHeadlines 17 Feb 2002 22:36:17 -0000 1.3 --- HelpOnHeadlines 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** #pragma section-numbers on - ##cvsid: $Id$ == Section Headings == --- 1,3 ---- Index: HelpOnInstalling =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** HelpOnInstalling 27 Feb 2002 21:00:42 -0000 1.9 --- HelpOnInstalling 4 Mar 2002 20:42:20 -0000 1.10 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration > HelpOnInstalling --- 1,2 ---- Index: HelpOnInstalling_2fApacheOnUnix =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fApacheOnUnix,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnInstalling_2fApacheOnUnix 27 Feb 2002 21:00:43 -0000 1.5 --- HelpOnInstalling_2fApacheOnUnix 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - ## `jh at localhost:~ > `'''`...`'''[[BR]] ## `...`[[BR]] --- 1,2 ---- Index: HelpOnInstalling_2fInternetInformationServer =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fInternetInformationServer,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnInstalling_2fInternetInformationServer 4 Mar 2002 20:18:35 -0000 1.3 --- HelpOnInstalling_2fInternetInformationServer 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,3 **** - ##cvsid: $Id$ '''Index''' [[TableOfContents]] --- 1,2 ---- Index: HelpOnLinking =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnLinking,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnLinking 22 Feb 2002 20:15:12 -0000 1.5 --- HelpOnLinking 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - == URLs and Inline Images == There are several way to insert external references[[FootNote(The opposite of external references are the internal, automatic WikiName links.)]] into the text: --- 1,2 ---- Index: HelpOnLists =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnLists,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnLists 17 Feb 2002 21:25:23 -0000 1.3 --- HelpOnLists 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - == Lists and Indenting == You can create bulleted and numbered lists in a quite natural way. All you do is inserting the line containing the list item. To get bulleted items, start the item with an asterisk "{{{*}}}"; to get numbered items, start it with a number template "{{{1.}}}", "{{{a.}}}", "{{{A.}}}", "{{{i.}}}" or "{{{I.}}}". Anything else will just indent the line. To start a numbered list with a certain initial value, append "{{{#}}}''value''" to the number template. --- 1,2 ---- Index: HelpOnMacros =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnMacros,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnMacros 17 Feb 2002 22:34:09 -0000 1.5 --- HelpOnMacros 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,3 **** - ##cvsid: $Id$ ##||{{{[[ ]]}}} || || || --- 1,2 ---- Index: HelpOnNavigation =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnNavigation,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnNavigation 22 Feb 2002 19:55:45 -0000 1.5 --- HelpOnNavigation 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - == Navigation == --- 1,2 ---- Index: HelpOnPageCreation =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnPageCreation,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnPageCreation 14 Feb 2002 01:31:55 -0000 1.5 --- HelpOnPageCreation 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - == Creating a New Page == --- 1,2 ---- Index: HelpOnPageDeletion =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnPageDeletion,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnPageDeletion 13 Feb 2002 23:43:15 -0000 1.5 --- HelpOnPageDeletion 4 Mar 2002 20:42:20 -0000 1.6 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration > HelpOnPageDeletion --- 1,2 ---- Index: HelpOnProcessingInstructions =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnProcessingInstructions,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnProcessingInstructions 20 Feb 2002 20:57:58 -0000 1.3 --- HelpOnProcessingInstructions 4 Mar 2002 20:42:20 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - == Processing Instructions == MoinMoin processing instructions have the same semantics as in XML: they control the paths taken when processing a page. Processing instructions are lines that start with a "{{{#}}}" character followed by a keyword and optionally some arguments; the keyword is always handled case-insensitive. Two consecutive hash marks at the start of a line are a comment that won't appear in the processed page. --- 1,2 ---- Index: HelpOnRules =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnRules,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnRules 13 Feb 2002 21:52:28 -0000 1.2 --- HelpOnRules 4 Mar 2002 20:42:20 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - == Horizontal Rules == You can insert a horizontal rule across the page by typing four or more dashes. The number of dashes in a horizontal rule markup determines how thick it is, up to a limit of 10. --- 1,2 ---- Index: HelpOnSmileys =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnSmileys,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnSmileys 13 Feb 2002 21:52:28 -0000 1.2 --- HelpOnSmileys 4 Mar 2002 20:42:20 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - == Graphical Smileys == To insert a smiley, just type in your favourite from the list below. They're only converted to an icon though if they are ''surrounded by whitespace''. --- 1,2 ---- Index: HelpOnSpellCheck =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnSpellCheck,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnSpellCheck 25 Feb 2002 21:44:34 -0000 1.4 --- HelpOnSpellCheck 4 Mar 2002 20:42:20 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration > HelpOnSpellCheck --- 1,2 ---- Index: HelpOnTables =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnTables,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnTables 13 Feb 2002 21:52:28 -0000 1.4 --- HelpOnTables 4 Mar 2002 20:42:20 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - == Table Markup == To create a table, you start and end a line using the table marker "{{{||}}}". Between those start and end markers, you can create any number of cells by separating them with "{{{||}}}". To get a centered cell that spans several columns, you start that cell with more than one cell marker. Adjacent lines of the same indent level containing table markup are combined into one table. --- 1,2 ---- Index: HelpOnUpdating =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnUpdating,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnUpdating 13 Feb 2002 21:52:28 -0000 1.4 --- HelpOnUpdating 4 Mar 2002 20:42:20 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - HelpContents > HelpOnAdministration > HelpOnUpdating --- 1,2 ---- Index: HelpOnXmlPages =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnXmlPages,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnXmlPages 13 Feb 2002 21:52:28 -0000 1.4 --- HelpOnXmlPages 4 Mar 2002 20:42:21 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - == XML Pages & XSLT Processing == If you have Python4Suite installed in your system, it is possible to save XML documents as pages. It's important to start those pages with an XML declaration "{{{}}}" in the very first line. Also, you have to specify the stylesheet that is to be used to process the XML document to HTML. This is done using a [http://www.w3.org/TR/xml-stylesheet/ standard "xml-stylesheet" processing instruction], with the name of a page containing the stylesheet as the "{{{href}}}" parameter. --- 1,2 ---- From jhermann at users.sourceforge.net Mon Mar 4 12:57:49 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 12:57:49 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text CategoryCategory,1.3,1.4 CategoryHomepage,1.2,1.3 EventStats,1.2,1.3 EventStats_2fHitCounts,1.2,1.3 EventStats_2fUserAgents,1.2,1.3 FindPage,1.3,1.4 InterWiki,1.4,1.5 OrphanedPages,1.2,1.3 PageSize,1.2,1.3 Python4Suite,1.2,1.3 PythonLanguage,1.2,1.3 RandomPage,1.3,1.4 RecentChanges,1.4,1.5 SiteNavigation,1.3,1.4 StructuredText,1.2,1.3 SystemInfo,1.3,1.4 TitleIndex,1.4,1.5 UserPreferences,1.3,1.4 WantedPages,1.2,1.3 WikiHomePage,1.4,1.5 WikiName,1.2,1.3 WikiSandBox,1.3,1.4 WikiWikiWeb,1.3,1.4 WordIndex,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv8976 Modified Files: CategoryCategory CategoryHomepage EventStats EventStats_2fHitCounts EventStats_2fUserAgents FindPage InterWiki OrphanedPages PageSize Python4Suite PythonLanguage RandomPage RecentChanges SiteNavigation StructuredText SystemInfo TitleIndex UserPreferences WantedPages WikiHomePage WikiName WikiSandBox WikiWikiWeb WordIndex Log Message: cvsid does not mix well with -kb Index: CategoryCategory =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/CategoryCategory,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** CategoryCategory 13 Feb 2002 21:52:28 -0000 1.3 --- CategoryCategory 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - A category is a WikiName that exploits [wiki:Wiki:WikiWiki WikiWiki]'s reverse linking. If you click on the title of a category page, you'll get a list of pages belonging to that category. To get a list of all categories, click above on the Category''''''Category title. --- 1,2 ---- Index: CategoryHomepage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/CategoryHomepage,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** CategoryHomepage 13 Feb 2002 21:52:28 -0000 1.2 --- CategoryHomepage 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - A category for WikiHomePage''''''s. --- 1,2 ---- Index: EventStats =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/EventStats,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** EventStats 13 Feb 2002 21:52:28 -0000 1.2 --- EventStats 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - The following charts are based on the data in the event log: * /HitCounts --- 1,2 ---- Index: EventStats_2fHitCounts =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/EventStats_2fHitCounts,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** EventStats_2fHitCounts 13 Feb 2002 21:52:28 -0000 1.2 --- EventStats_2fHitCounts 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,3 **** - ##cvsid: $Id$ - [[StatsChart(hitcounts)]] --- 1 ---- Index: EventStats_2fUserAgents =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/EventStats_2fUserAgents,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** EventStats_2fUserAgents 13 Feb 2002 21:52:28 -0000 1.2 --- EventStats_2fUserAgents 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,3 **** - ##cvsid: $Id$ - [[StatsChart(useragents)]] --- 1 ---- Index: FindPage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/FindPage,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** FindPage 13 Feb 2002 21:52:28 -0000 1.3 --- FindPage 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - You can use this page to search all entries in this WikiWikiWeb. Searches are not case sensitive. --- 1,2 ---- Index: InterWiki =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/InterWiki,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** InterWiki 13 Feb 2002 22:52:43 -0000 1.4 --- InterWiki 4 Mar 2002 20:49:09 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - InterWiki links are a quick way to refer to information in other wikis, without having to remember cryptic URLs. To write an InterWiki link, just use the InterWiki moniker of the foreign wiki, --- 1,2 ---- Index: OrphanedPages =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/OrphanedPages,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** OrphanedPages 13 Feb 2002 21:52:28 -0000 1.2 --- OrphanedPages 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - A list of pages no other page links to: [[OrphanedPages]] --- 1,2 ---- Index: PageSize =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/PageSize,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** PageSize 13 Feb 2002 21:52:28 -0000 1.2 --- PageSize 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - [[StatsChart(pagesize)]] --- 1,2 ---- Index: Python4Suite =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/Python4Suite,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** Python4Suite 13 Feb 2002 21:52:28 -0000 1.2 --- Python4Suite 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - 4Suite is a collection of Python tools for XML processing and object database management. It provides support for XML parsing, several transient and persistent DOM implementations, XPath expressions, XPointer, XSLT transforms, XLink, RDF and ODMG object databases. --- 1,2 ---- Index: PythonLanguage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/PythonLanguage,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** PythonLanguage 13 Feb 2002 21:52:28 -0000 1.2 --- PythonLanguage 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - Python is a dynamic object-oriented language. --- 1,2 ---- Index: RandomPage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/RandomPage,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** RandomPage 13 Feb 2002 21:52:28 -0000 1.3 --- RandomPage 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,3 **** - ##cvsid: $Id$ - A list of 25 random pages (out of [[PageCount]] total):[[RandomPage(25)]] --- 1 ---- Index: RecentChanges =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/RecentChanges,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** RecentChanges 13 Feb 2002 21:52:28 -0000 1.4 --- RecentChanges 4 Mar 2002 20:49:09 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - This page contains a list of recent changes in this wiki of '''[[PageCount]] pages''' (more system information on SystemInfo). For changes on other wikis, see OpenWiki:WikiSites/Aggregation. ---- --- 1,2 ---- Index: SiteNavigation =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/SiteNavigation,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** SiteNavigation 13 Feb 2002 21:52:28 -0000 1.3 --- SiteNavigation 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - SiteNavigation is the central place to explore this wiki. MoinMoin supports these MeatBall:IndexingScheme''''''s: * RecentChanges --- 1,2 ---- Index: StructuredText =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/StructuredText,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** StructuredText 13 Feb 2002 21:52:28 -0000 1.2 --- StructuredText 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - Structured text is text that uses indentation and simple symbology to indicate the structure of a document. For the next generation of structured text, see [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here]. --- 1,2 ---- Index: SystemInfo =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/SystemInfo,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** SystemInfo 13 Feb 2002 21:52:28 -0000 1.3 --- SystemInfo 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - [[SystemInfo]] ---- --- 1,2 ---- Index: TitleIndex =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/TitleIndex,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** TitleIndex 26 Feb 2002 00:25:10 -0000 1.4 --- TitleIndex 4 Mar 2002 20:49:09 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - This is an index of all pages in the this Wiki. --- 1,2 ---- Index: UserPreferences =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/UserPreferences,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** UserPreferences 13 Feb 2002 21:52:28 -0000 1.3 --- UserPreferences 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - [[UserPreferences]] --- 1,2 ---- Index: WantedPages =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WantedPages,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** WantedPages 13 Feb 2002 21:52:28 -0000 1.2 --- WantedPages 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,4 **** - ##cvsid: $Id$ - A list of non-existing pages including a list of the pages where they are referred to: [[WantedPages]] --- 1,2 ---- Index: WikiHomePage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiHomePage,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** WikiHomePage 13 Feb 2002 21:52:28 -0000 1.4 --- WikiHomePage 4 Mar 2002 20:49:09 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - A WikiHomePage is your personal page on a WikiWikiWeb, where you could put information how to contact you, your interests and skills, etc. It is regarded as to be owned by the person that created it, so be careful when editing it. --- 1,2 ---- Index: WikiName =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiName,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** WikiName 13 Feb 2002 21:52:28 -0000 1.2 --- WikiName 4 Mar 2002 20:49:09 -0000 1.3 *************** *** 1,3 **** - ##cvsid: $Id$ - A WikiName is a word that uses capitalized words. WikiName''''''s automagically become hyperlinks to the WikiName's page. See also HelpForBeginners, "Arbitrary Page Names". --- 1 ---- Index: WikiSandBox =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiSandBox,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** WikiSandBox 13 Feb 2002 21:52:28 -0000 1.3 --- WikiSandBox 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - Please feel free to experiment here, after the four dashes below... and please do '''NOT''' create new pages without any meaningful content just to try it out. --- 1,2 ---- Index: WikiWikiWeb =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiWikiWeb,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** WikiWikiWeb 13 Feb 2002 21:52:28 -0000 1.3 --- WikiWikiWeb 4 Mar 2002 20:49:09 -0000 1.4 *************** *** 1,4 **** - ##cvsid: $Id$ - The [wiki:Wiki:FrontPage first ever wiki site] was founded in 1994 as an automated supplement to the Wiki:PortlandPatternRepository. The site was immediately popular within the pattern community, largely due to the newness of the internet and a good slate of Wiki:InvitedAuthors. The site was, and remains, dedicated to Wiki:PeopleProjectsAndPatterns. --- 1,2 ---- Index: WordIndex =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WordIndex,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** WordIndex 26 Feb 2002 00:25:10 -0000 1.4 --- WordIndex 4 Mar 2002 20:49:09 -0000 1.5 *************** *** 1,4 **** - ##cvsid: $Id$ - This is an index of all words occuring in page titles. --- 1,2 ---- From jhermann at users.sourceforge.net Mon Mar 4 13:07:57 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 13:07:57 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text AbandonedPages,1.1,1.2 LocalSpellingWords,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv15382 Modified Files: AbandonedPages LocalSpellingWords Log Message: Synching cvs and moin wiki Index: AbandonedPages =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/AbandonedPages,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** AbandonedPages 17 Feb 2002 22:34:09 -0000 1.1 --- AbandonedPages 4 Mar 2002 21:06:34 -0000 1.2 *************** *** 1 **** --- 1,3 ---- + Pages that were not edited since the begin of history (literally); it's a listing of the oldest entries in the editlog. + [[AbandonedPages]] Index: LocalSpellingWords =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/LocalSpellingWords,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** LocalSpellingWords 9 Dec 2001 14:33:45 -0000 1.4 --- LocalSpellingWords 4 Mar 2002 21:06:34 -0000 1.5 *************** *** 1,5 **** ! makefile wiki markup foo email hyperlinks wikis html http morphed moin moinmoin ! J?rgen Hermann Abend Guten Morgen Platt Plattdeutsch freshmeat melodie radiobremen sourceforge ! may doesn shouldn ! ! distutils --- 1,6 ---- ! 1st 2nd Abend Checkbox Diffs Guten Haltet Hermann Homepage Info J?rgen ! Morgen Perl Platt Plattdeutsch Rechtschreibpr?fung Spellchecker Zeitstempel ! automagically backtick blockquote browser calendaring distutils doesn email ! english folgendes foo german html http hyperlinks info internet lowercase ! markup may moin moinmoin morphed navigational preformatted renumbered shouldn ! spam uppercase wiki wikis www ?berschneidet ?bersetzen From jhermann at users.sourceforge.net Mon Mar 4 13:12:31 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 13:12:31 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text WikiSandBox,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv17304 Modified Files: WikiSandBox Log Message: Minor fix Index: WikiSandBox =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiSandBox,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** WikiSandBox 4 Mar 2002 20:49:09 -0000 1.4 --- WikiSandBox 4 Mar 2002 21:11:55 -0000 1.5 *************** *** 18,22 **** HelpOnEditing MoinMoin:InterWiki ! http:/purl.net/wiki/moin/ [http://www.python.org/ Python] someone at the.inter.net --- 18,22 ---- HelpOnEditing MoinMoin:InterWiki ! http://purl.net/wiki/moin/ [http://www.python.org/ Python] someone at the.inter.net From jhermann at users.sourceforge.net Mon Mar 4 13:28:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 13:28:05 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text MoinMoin_2fInstallationsAnleitung,1.1,1.2 StructuredText,1.3,1.4 WikiWikiWeb,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv23144 Modified Files: MoinMoin_2fInstallationsAnleitung StructuredText WikiWikiWeb Log Message: More synching Index: MoinMoin_2fInstallationsAnleitung =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/MoinMoin_2fInstallationsAnleitung,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** MoinMoin_2fInstallationsAnleitung 4 Mar 2002 20:37:23 -0000 1.1 --- MoinMoin_2fInstallationsAnleitung 4 Mar 2002 21:27:01 -0000 1.2 *************** *** 1,7 **** #pragma section-numbers off ! /!\ TODO jh: Replace the static texts here when HilfeZurInstallation is translated. Note that page links are replaced by anchor links! ! ! Diese HTML-Seite fasst die grundlegenden Installationsbeschreibungen von http://purl.net/wiki/moin/MoinMoin/HilfeZurInstallation zusammen. Sie enth?lt alle notwendigen Informationen, um Ihre eigene Wiki-Umbegung einzurichten, auch ohne online zu sein. Wenn Sie jedoch eine permanente Internet-Verbindung besitzen, k?nnen Sie auch die zuvor erw?hnte Seite "Hilfe``Zur``Installation" in den Browser laden, die ggf. aktuellere Informationen enth?lt. --- 1,5 ---- #pragma section-numbers off ! Diese HTML-Seite fasst die grundlegenden Installationsbeschreibungen von http://purl.net/wiki/moin/MoinMoin/InstallationsAnleitung zusammen. Sie enth?lt alle notwendigen Informationen, um Ihre eigene Wiki-Umbegung einzurichten, auch ohne online zu sein. Wenn Sie jedoch eine permanente Internet-Verbindung besitzen, k?nnen Sie auch die zuvor erw?hnte Seite "Hilfe``Zur``Installation" in den Browser laden, die ggf. aktuellere Informationen enth?lt. *************** *** 9,24 **** Nachdem Sie gem?? der Anleitung Ihr Wiki zum Laufen gebracht haben, k?nnen Sie den Rest der Onlinehilfe direkt dort lesen. ! == How to install your own MoinMoin Wiki == ! This page describes the installation procedure applying to MoinMoin:MoinMoin version 0.11 and up. In the next section, there is a list of real-world [#installscenarios Installation Scenarios] that help you to understand how to apply the instructions in different environments. ! ! [#basic-install Basic Installation] explains the "`setup.py`" step of the installation in more detail. This applies equally to all scenarios, and you should read it before trying a live installation. ! After a successful installation, you might want to read more about configuration and other options that you, as the wiki administrator, can set up. MoinMoin:HelpOnAdministration contains links to pages that cover these topics. ! Especially, the MoinMoin:HelpOnConfiguration and MoinMoin:HelpOnUpdating pages provide additional information regarding wiki setup and maintenance. MoinMoin:MoinMoinWinCvs and MoinMoin:MoinMoinUnixCvs describe how to run your wiki using the current development version from the MoinMoin:SourceForge CVS repository. [[Anchor(installscenarios)]] ! === Sample Installation Scenarios === ! The following links lead you to concrete examples of installation sessions, showing the commands used and explaining what they do. It is highly recommended that you ''first'' read the general information on installing (especially the next section of this page) before choosing an installation scenario that best fits your intended use of MoinMoin:MoinMoin. UNIX: --- 7,29 ---- Nachdem Sie gem?? der Anleitung Ihr Wiki zum Laufen gebracht haben, k?nnen Sie den Rest der Onlinehilfe direkt dort lesen. ! == Wie Sie ihr eigenes MoinMoin-Wiki installieren == ! Diese Seite beschreibt, wie Sie vorgehen m?ssen, um MoinMoin:MoinMoin ab Version 0.11 zu installieren. ! Im n?chsten Abschnitt finden Sie eine Liste von konkreten [#installscenarios Installationsszenarien], ! die Ihnen dabei helfen, diese Anleitung auf verschiedenen Plattformen umzusetzen. ! ! [#basic-install Basisinstallation] erkl?rt detailiert den ersten Schritt jeder Installation, den Aufruf von "`setup.py`". ! Dieser Schritt ist immer durchzuf?hren, deshalb empfiehlt es sich, die dort enthaltenen Information in jedem Fall durchzulesen, bevor Sie den Installationsvorgang beginnen. ! ! Nachdem Sie die Software erfolgreich aufgespielt haben, sollte der n?chste Schritt darin bestehen, mehr ?ber die Konfigurationsoptionen und optionale Erweiterungen zu erfahren, die Sie als Wikiadministrator einrichten k?nnen. ! Die Seite MoinMoin:HilfeZurAdministration enth?lt dazu Verweise auf weitere Seiten, die diese Themen abdecken. ! Insbesondere MoinMoin:HilfeZurKonfiguration und MoinMoin:HilfeZumUpdaten enthalten wertvolle Hinweise zur weiteren Konfiguration und Wartung Ihrer Wiki-Installation. ! MoinMoin:MoinMoinWinCvs und MoinMoin:MoinMoinUnixCvs beschreiben (in englischer Sprache), wie Sie ihr Wiki unter Verwendung der aktuellen Entwicklungsversion betreiben k?nnen, die sich im MoinMoin:SourceForge CVS-Repository befindet. [[Anchor(installscenarios)]] ! === Beispiele f?r Installationsszenarien === ! Die folgenden Verweise f?hren zu konkreten Beispielen f?r Installationsprozeduren auf verschiedenen Plattformen (Betriebssystem und Webserver), mit den notwendigen Kommandos und einer Beschreibung, was diese bewirken. ! Es wird dringend empfohlen, ''zun?chst'' die allgemeinen Informationen auf [#basic-install Basisinstallation] durchzulesen, bevor Sie die zu Ihrer Umgebung passende Kombination von Betriebssysteme und Webserver ausw?hlen. UNIX: *************** *** 28,31 **** --- 33,37 ---- * [#win32apache-install Windows Installation mit Apache] * [#win32iis-install Windows Installation mit Microsoft/IIS] + [[Anchor(basic-install)]] Index: StructuredText =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/StructuredText,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** StructuredText 4 Mar 2002 20:49:09 -0000 1.3 --- StructuredText 4 Mar 2002 21:27:01 -0000 1.4 *************** *** 1,4 **** Structured text is text that uses indentation and simple ! symbology to indicate the structure of a document. For the next generation of structured text, see [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here]. A structured string consists of a sequence of paragraphs separated by --- 1,6 ---- Structured text is text that uses indentation and simple ! symbology to indicate the structure of a document. For the next generation of structured text, see ! MoinMoin:ReStructuredText and ! [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here]. A structured string consists of a sequence of paragraphs separated by Index: WikiWikiWeb =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/WikiWikiWeb,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** WikiWikiWeb 4 Mar 2002 20:49:09 -0000 1.4 --- WikiWikiWeb 4 Mar 2002 21:27:01 -0000 1.5 *************** *** 7,8 **** --- 7,9 ---- * get some answers on the Wiki:WikiWikiWebFaq * get to know more about the Wiki:WikiHistory + * [http://news.mpr.org/programs/futuretense/daily_rafiles/20011220.ram Ward Cunningham Radio Interview] From jhermann at users.sourceforge.net Mon Mar 4 13:37:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 13:37:10 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text FrontPage,1.3,1.4 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv27193 Modified Files: FrontPage Log Message: Removed spaces Index: FrontPage =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/FrontPage,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** FrontPage 13 Feb 2002 21:52:28 -0000 1.3 --- FrontPage 4 Mar 2002 21:36:05 -0000 1.4 *************** *** 1,4 **** #pragma section-numbers off - ##cvsid: $Id$ = MoinMoin Wiki = --- 1,3 ---- From perky at fallin.lv Mon Mar 4 13:56:03 2002 From: perky at fallin.lv (Hye-Shik Chang) Date: Mon Mar 4 13:56:03 2002 Subject: [Moin-devel] EditLog for bsddb scheme Message-ID: <20020305065525.A95587@fallin.lv> A quick hack for using bsddb as editlog db. (some change on wikiaction.py is needed for use this class.) -------------- next part -------------- """ MoinMoin - Edit log management Copyright (c) 2000-2001 by J?gen Hermann All rights reserved, see COPYING for details. Functions to keep track of when people have changed pages, so we can do the recent changes page and so on. $Id: editlog.py,v 1.2 2002/01/16 06:13:35 perky Exp $ """ # Imports import cgi, os, string, time from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page # Import bsddb optional try: import bsddb from cPickle import loads, dumps except ImportError: bsddb = None ############################################################################# ### Basic Interface ############################################################################# class LogBase: """ Basic interface for log stores. """ def __init__(self, optstr): self.options = optstr def sanityCheck(self): """ Perform a self-test, i.e. check for correct config, permissions, etc. Return error message or `false`. """ return None def addEntry(self, pagename, host, mtime, comment): """ Add an entry to the editlog """ pass ############################################################################# ### Logging to text file ############################################################################# class LogText(LogBase): """ Storage for log entries in a plain text file. The editlog is stored with one record per line, as tab-separated words: pagename, host, time, hostname, userid TODO: Check values written in are reasonable """ def __init__(self, optstr): LogBase.__init__(self, optstr) self.filename = os.path.join(config.data_dir, optstr) def sanityCheck(self): """ Check for editlog file access. """ if not os.access(self.filename, os.W_OK): return "The edit log '%s' is not writable!" % (self.filename,) def addEntry(self, pagename, host, mtime, comment): """ Add an entry to the editlog """ import socket try: hostname = socket.gethostbyaddr(host)[0] except socket.error: hostname = host remap_chars = string.maketrans('\t\r\n', ' ') comment = string.translate(comment, remap_chars) logfile = open(self.filename, 'a+') entry = string.join((wikiutil.quoteFilename(pagename), host, `mtime`, hostname, user.User().id, comment), "\t") + "\n" try: # fcntl.flock(logfile.fileno(), fcntl.LOCK_EX) logfile.seek(0, 2) # to end logfile.write(entry) finally: # fcntl.flock(logfile.fileno(), fcntl.LOCK_UN) logfile.close() ############################################################################# ### Logging to bsddb ############################################################################# if bsddb: class LogBSDDB(LogBase): """ Storage for log entries in bsddb. The editlog is stored as pickled tuple by following order: (pagename, host, time, hostname, userid, comment) """ def __init__(self, optstr): LogBase.__init__(self, optstr) self.filename = os.path.join(config.data_dir, optstr) def sanityCheck(self): """ Check for editlog file access. """ if not os.access(self.filename, os.W_OK): return "The edit log '%s' is not writable!" % (self.filename,) def addEntry(self, pagename, host, mtime, comment): """ Add an entry to the editlog """ import socket try: hostname = socket.gethostbyaddr(host)[0] except socket.error: hostname = host remap_chars = string.maketrans('\t\r\n', ' ') comment = string.translate(comment, remap_chars) logdb = bsddb.rnopen(self.filename, 'cl') entry = dumps( (pagename, host, mtime, hostname, user.User().id, comment) ) try: logdb[len(logdb)+1] = entry finally: logdb.close() ############################################################################# ### Factory ############################################################################# def makeLogStore(option=None): """ Creates a storage object that provides an implementation of the storage type given in the `option` parameter; option consists of a `schema:` part, followed by a schema-specific option string. Currently supported schemas are: "text", "bsddb". """ if option is None: option = config.LogStore schema, optstr = string.split(option, ':', 1) if schema == "text": return LogText(optstr) elif schema == "bsddb": return LogBSDDB(optstr) def makeEditLog(option=None, kw={}): """ Creates a browse object that provides an implementation of the storage type given in the `option` parameter; option consists of a `schema:` part, followed by a schema-specific option string. Currently supported schemas are: "text", "bsddb". """ if option is None: option = config.LogStore schema, optstr = string.split(option, ':', 1) if schema == "text": return EditLogText(filename=optstr, **kw) elif schema == "bsddb": return EditLogBSDDB(filename=optstr, **kw) ############################################################################# ### Basic Interface ############################################################################# class EditLogBase: """ A read-only form of the editlog. Do NOT access the file config.editlog_name directly, since this may well end up in a database. After you called next(), the following member variables are valid: pagename, addr, ed_time, hostname, userid, comment """ _NUM_FIELDS = 6 def __init__(self, **kw): pass # # Public interface # def next(self): """ Load next editlog entry, return false after last entry """ return 0 def peek(self, offset): """ Peek `offset` entries ahead (or behind), return false after last entry """ return 1 def reset(self): """ Reset for a new iteration """ pass def filter(self, **kw): """ Filter current entries, reset() does NOT clear any filter previously set. The cursor is automatically set to the first entry. """ pass def find(self, **kw): """ Find an entry, return true on success. """ return 0 def getEditorData(self): """ Return a string or Page object representing the user that did the edit. """ result = self.hostname if self.userid: if not self._usercache.has_key(self.userid): self._usercache[self.userid] = user.User(self.userid) userdata = self._usercache[self.userid] if userdata.name: pg = Page(userdata.name) if pg.exists(): result = pg else: result = userdata.name or self.hostname return result def getEditor(self): """ Return a HTML-safe string representing the user that did the edit. """ result = self.getEditorData() if isinstance(result, Page): return result.link_to() return cgi.escape(result) def __len__(self): return 0 # # Helper Interface # def _make_condition(self, kw): """ Create a callable that filters an entry according to values in the dictionary "kw". The keys in that dictionary have to be the member names of the fields ("pagename", etc.). """ expr = "1" for field in ['pagename', 'addr', 'hostname', 'userid']: if kw.has_key(field): expr = "%s and x.%s == %s" % (expr, field, `kw[field]`) if kw.has_key('ed_time'): expr = "%s and int(x.ed_time) == %s" % (expr, int(kw['ed_time'])) return eval("lambda x: " + expr) ############################################################################# ### Browse from text log ############################################################################# class EditLogText(EditLogBase): """ Browse Interface for log entries in text. """ def __init__(self, **kw): self.filename = os.path.join(config.data_dir, kw.get('filename', 'editlog')) self._lines = self._editlog_raw_lines() if not kw.get('reverse', 0): self._lines.reverse() self._index = 0 self._usercache = {} # set default member values self._parse_log_line("") # # Public interface # def next(self): """ Load next editlog entry, return false after last entry """ if self.peek(0): self._index = self._index + 1 return 1 return 0 def peek(self, offset): """ Peek `offset` entries ahead (or behind), return false after last entry """ idx = self._index + offset if idx < 0 or len(self._lines) <= idx: self._parse_log_line("") return 0 self._parse_log_line(self._lines[idx]) return 1 def reset(self): """ Reset for a new iteration """ self._index = 0 def filter(self, **kw): """ Filter current entries, reset() does NOT clear any filter previously set. The cursor is automatically set to the first entry. """ cond = self._make_condition(kw) rest = [] self.reset() while self.next(): if cond(self): rest.append(self._lines[self._index-1]) self._lines = rest self.reset() def find(self, **kw): """ Find an entry, return true on success. """ cond = self._make_condition(kw) for index in range(len(self._lines)): self._parse_log_line(self._lines[index]) if cond(self): return 1 self._parse_log_line("") return 0 def __len__(self): return len(self._lines) # # Helper methods # def _editlog_raw_lines(self): """ Load a list of raw editlog lines """ try: logfile = open(self.filename, 'rt') try: # fcntl.flock(logfile.fileno(), fcntl.LOCK_SH) return logfile.readlines() finally: # fcntl.flock(logfile.fileno(), fcntl.LOCK_UN) logfile.close() except IOError, er: import errno if er.errno == errno.ENOENT: # just doesn't exist, return empty list return [] else: raise er return [] def _parse_log_line(self, line): """ Parse a log line to member variables: pagename, addr, ed_time, hostname, userid """ fields = string.split(string.strip(line), '\t') while len(fields) < self._NUM_FIELDS: fields.append('') self.pagename, self.addr, self.ed_time, self.hostname, \ self.userid, self.comment = fields[:self._NUM_FIELDS] if not self.hostname: self.hostname = self.addr self.pagename = wikiutil.unquoteFilename(self.pagename) self.ed_time = float(self.ed_time or "0") ############################################################################# ### Browse from bsddb ############################################################################# class EditLogBSDDB(EditLogBase): """ Browse Interface for log entries in bsddb. """ def __init__(self, **kw): self.filename = os.path.join(config.data_dir, kw.get('filename', 'editlog')) self._lines = self._editlog_raw_lines() if not kw.get('reverse', 0): self._lines.reverse() self._index = 0 self._usercache = {} # set default member values self._parse_log_line("") # # Public interface # def next(self): """ Load next editlog entry, return false after last entry """ if self.peek(0): self._index = self._index + 1 return 1 return 0 def peek(self, offset): """ Peek `offset` entries ahead (or behind), return false after last entry """ idx = self._index + offset if idx < 0 or len(self._lines) <= idx: self._parse_log_line("") return 0 self._parse_log_line(self._lines[idx]) return 1 def reset(self): """ Reset for a new iteration """ self._index = 0 def filter(self, **kw): """ Filter current entries, reset() does NOT clear any filter previously set. The cursor is automatically set to the first entry. """ cond = self._make_condition(kw) rest = [] self.reset() while self.next(): if cond(self): rest.append(self._lines[self._index-1]) self._lines = rest self.reset() def find(self, **kw): """ Find an entry, return true on success. """ cond = self._make_condition(kw) for index in range(len(self._lines)): self._parse_log_line(self._lines[index]) if cond(self): return 1 self._parse_log_line("") return 0 def __len__(self): return len(self._lines) # # Helper methods # def _editlog_raw_lines(self): """ Load a list of raw editlog lines """ try: logfile = open(self.filename, 'rt') try: # fcntl.flock(logfile.fileno(), fcntl.LOCK_SH) return logfile.readlines() finally: # fcntl.flock(logfile.fileno(), fcntl.LOCK_UN) logfile.close() except IOError, er: import errno if er.errno == errno.ENOENT: # just doesn't exist, return empty list return [] else: raise er return [] def _parse_log_line(self, line): """ Parse a log line to member variables: pagename, addr, ed_time, hostname, userid """ fields = string.split(string.strip(line), '\t') while len(fields) < self._NUM_FIELDS: fields.append('') self.pagename, self.addr, self.ed_time, self.hostname, \ self.userid, self.comment = fields[:self._NUM_FIELDS] if not self.hostname: self.hostname = self.addr self.pagename = wikiutil.unquoteFilename(self.pagename) self.ed_time = float(self.ed_time or "0") From jhermann at users.sourceforge.net Mon Mar 4 13:57:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 13:57:07 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.72,1.73 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv3005 Modified Files: CHANGES Log Message: Minor addition Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -r1.72 -r1.73 *** CHANGES 22 Feb 2002 19:56:09 -0000 1.72 --- CHANGES 4 Mar 2002 21:56:44 -0000 1.73 *************** *** 122,126 **** * numeric entities (&#nnnnn;) are now optionally NOT escaped, which allows you to insert more characters into a Latin-1 ! page, especially the Euro symbol. Unfinished features: --- 122,126 ---- * numeric entities (&#nnnnn;) are now optionally NOT escaped, which allows you to insert more characters into a Latin-1 ! page, especially the Euro symbol Unfinished features: From jhermann at users.sourceforge.net Mon Mar 4 14:23:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 14:23:07 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text MoinMoin,1.6,1.7 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv29634 Modified Files: MoinMoin Log Message: Moved IRC info to "MoinMoin" Index: MoinMoin =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/MoinMoin,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** MoinMoin 4 Mar 2002 20:37:23 -0000 1.6 --- MoinMoin 4 Mar 2002 21:42:04 -0000 1.7 *************** *** 24,25 **** --- 24,28 ---- * [http://www.oreillynet.com/pub/a/python/2000/11/29/pythonnews.html PythonNews article on wikis] + Connect to Foldoc:IRC for meeting the author and other MoinMoin users and developers: + * channel `#moin` on server `irc.openprojects.net` + * see also [http://www.openprojects.net OPN Home] and esp. [http://www.openprojects.net/irc_servers.shtml OPN IRC Servers] for more information From jhermann at users.sourceforge.net Mon Mar 4 14:23:12 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 4 14:23:12 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n ko.py,1.3,1.4 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv13484 Modified Files: ko.py Log Message: Update of Korean for 0.11 release Index: ko.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/ko.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** ko.py 2 Mar 2002 16:31:55 -0000 1.3 --- ko.py 4 Mar 2002 22:22:24 -0000 1.4 *************** *** 2,5 **** --- 2,8 ---- # Maintained by: "Hye-Shik Chang" # Encoding: euc-kr + # + # XXX: Don't try to translate messages for 'action=chart'. + # Standard distribution of gdchart doesn't support HANGUL_CHARSET. text = { ''' *************** *** 116,120 **** "Attachment '%(filename)s' does not exist!": ! "Attachment '%(filename)s' does not exist!", 'Cookie deleted!': --- 119,123 ---- "Attachment '%(filename)s' does not exist!": ! "???? '%(filename)s'?? ???????? ????????!", 'Cookie deleted!': *************** *** 125,129 **** 'Filename of attachment not specified!': ! 'Filename of attachment not specified!', "Found no account matching the given email address '%(email)s'!": --- 128,132 ---- 'Filename of attachment not specified!': ! '???? ???? ?????? ???????? ??????????!', "Found no account matching the given email address '%(email)s'!": *************** *** 200,210 **** '
Bad chart type "%s"!
': ! '
Bad chart type "%s"!
', '
Charts are not available!
': ! '
Charts are not available!
', '
You need to provide a chart type!
': ! '
You need to provide a chart type!
', '

Attached Files

': --- 203,213 ---- '
Bad chart type "%s"!
': ! '
?????? ???? ???? "%s"!
', '
Charts are not available!
': ! '
?????? ???? ?????? ???????? ????????!
', '
You need to provide a chart type!
': ! '
???? ?????? ?????????? ??????!
', '

Attached Files

': *************** *** 212,219 **** "

Attachment '%(filename)s'

": ! "

Attachment '%(filename)s'

", '

Edit drawing

': ! '

Edit drawing

', """
--- 215,222 ---- "

Attachment '%(filename)s'

": ! "

???? '%(filename)s'

", '

Edit drawing

': ! '

???? ????

', """
*************** *** 261,265 **** "

SHA digest of this page's content is: %(digest)s

": ! "

SHA digest of this page's content is: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, --- 264,268 ---- "

SHA digest of this page's content is: %(digest)s

": ! "

?? ?????? ?????? SHA ???? ????????????: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, *************** *** 267,277 **** Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': ! '''

To refer to attachments on a page, use attachment:filename, ! as shown below in the list of files. ! Do NOT use the URL of the [get] link, ! since this is subject to change and can break easily.

''', '

Unknown file type, cannot display this attachment inline.

': ! '

Unknown file type, cannot display this attachment inline.

', '[goto %s]': --- 270,279 ---- Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': ! '''

?? ???????? ?????? ??????????, ?????? ???? ???? ???? ???? ?? ???? ! attachment:???????? ???????? ????????. ! URL?? ???? ???? ?? ???????? [get] ?????? URL?? ???? ???????? ??????.''', '

Unknown file type, cannot display this attachment inline.

': ! '

?? ?? ???? ???? ??????????, ?? ?????? ???? ???? ???? ?????? ?? ????????.

', '[goto %s]': *************** *** 297,304 **** "Attachment '%(filename)s' deleted.": ! "Attachment '%(filename)s' deleted.", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": ! "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.", 'Attachments for "%(pagename)s"': --- 299,306 ---- "Attachment '%(filename)s' deleted.": ! "???? '%(filename)s'?? ????", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": ! "???? '%(target)s' (???????????????? ???? '%(filename)s', ???? %(bytes)d ??????) ?? ??????????????.", 'Attachments for "%(pagename)s"': *************** *** 330,334 **** 'Create new drawing "%(filename)s"': ! 'Create new drawing "%(filename)s"', 'Create this page': --- 332,336 ---- 'Create new drawing "%(filename)s"': ! '?? ???? "%(filename)s" ??????', 'Create this page': *************** *** 360,364 **** "Drawing '%(filename)s' saved.": ! "Drawing '%(filename)s' saved.", "ERROR in regex '%s'": --- 362,366 ---- "Drawing '%(filename)s' saved.": ! "???? '%(filename)s'?? ??????????????.", "ERROR in regex '%s'": *************** *** 393,397 **** 'File "%(filename)s for page "%(pagename)s': ! 'File "%(filename)s for page "%(pagename)s', 'File to upload': --- 395,399 ---- 'File "%(filename)s for page "%(pagename)s': ! '"%(pagename)s ???????? "%(filename)s ????', 'File to upload': *************** *** 402,406 **** 'Fri': ! 'Fri', 'Full text search for "%s"': --- 404,408 ---- 'Fri': ! '??????', 'Full text search for "%s"': *************** *** 420,427 **** 'HelpContents': ! 'HelpContents', 'Ignore changes in the amount of whitespace': ! 'Ignore changes in the amount of whitespace', 'Info for "%s"': --- 422,429 ---- 'HelpContents': ! '??????', 'Ignore changes in the amount of whitespace': ! '?????? ?? ?????? ????', 'Info for "%s"': *************** *** 441,445 **** 'LocalSpellingWords': ! 'LocalSpellingWords', 'MIME Type (optional)': --- 443,447 ---- 'LocalSpellingWords': ! '?????? ????', 'MIME Type (optional)': *************** *** 453,457 **** 'Mon': ! 'Mon', 'Multiple matches for "%s...%s"': --- 455,459 ---- 'Mon': ! '??????', 'Multiple matches for "%s...%s"': *************** *** 465,469 **** 'Needed %(timer).1f seconds.': ! 'Needed %(timer).1f seconds.', 'No attachments stored for %(pagename)s': --- 467,471 ---- 'Needed %(timer).1f seconds.': ! '%(timer).1f?? ????.', 'No attachments stored for %(pagename)s': *************** *** 498,502 **** 'Others': ! 'Others', 'Page "%s" was sucessfully deleted!': --- 500,504 ---- 'Others': ! '???? ????', 'Page "%s" was sucessfully deleted!': *************** *** 555,559 **** 'Sat': ! 'Sat', 'Save Changes': --- 557,561 ---- 'Sat': ! '??????', 'Save Changes': *************** *** 603,607 **** 'Sun': ! 'Sun', 'The backupped content of this page is deprecated and will not be included in search results!': --- 605,609 ---- 'Sun': ! '??????', 'The backupped content of this page is deprecated and will not be included in search results!': *************** *** 630,634 **** 'Thu': ! 'Thu', 'Time zone': --- 632,636 ---- 'Thu': ! '??????', 'Time zone': *************** *** 645,649 **** 'Tue': ! 'Tue', 'Unknown action': --- 647,651 ---- 'Tue': ! '??????', 'Unknown action': *************** *** 654,661 **** 'Upload new attachment "%(filename)s"': ! 'Upload new attachment "%(filename)s"', "Upload of attachment '%(filename)s'.": ! "Upload of attachment '%(filename)s'.", 'Version as of %(date)s': --- 656,663 ---- 'Upload new attachment "%(filename)s"': ! '?? ???? "%(filename)s"?? ??????', "Upload of attachment '%(filename)s'.": ! "???? '%(filename)s'?? ??????", 'Version as of %(date)s': *************** *** 663,667 **** 'Wed': ! 'Wed', 'XML title index': --- 665,669 ---- 'Wed': ! '??????', 'XML title index': *************** *** 690,694 **** 'attachment:%(filename)s of %(pagename)s': ! 'attachment:%(filename)s of %(pagename)s', 'date': --- 692,696 ---- 'attachment:%(filename)s of %(pagename)s': ! '%(pagename)s?? attachment:%(filename)s', 'date': From noreply at sourceforge.net Tue Mar 5 01:34:06 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Tue Mar 5 01:34:06 2002 Subject: [Moin-devel] [ moin-Bugs-524485 ] bad python syntax in wikiutil.py Message-ID: Bugs item #524485, was opened at 2002-03-01 20:00 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=524485&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: bad python syntax in wikiutil.py Initial Comment: line 348:: return formatter.url( "%s/%s" % (webapi.getScriptname(), params), text, css_class, **kw) the kw argument should loose the asterics. I found this when I ran test.cgi. ---------------------------------------------------------------------- >Comment By: J?rgen Hermann (jhermann) Date: 2002-03-01 20:22 Message: Logged In: YES user_id=39128 The syntax is perfectly ok... in 2.0 and higher. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=524485&group_id=8482 From noreply at sourceforge.net Tue Mar 5 01:34:06 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Tue Mar 5 01:34:06 2002 Subject: [Moin-devel] [ moin-Patches-525122 ] trace messages i18n/ko.py Message-ID: Patches item #525122, was opened at 2002-03-03 22:18 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=308482&aid=525122&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Hye-Shik Chang (perky) Assigned to: Nobody/Anonymous (nobody) Summary: trace messages i18n/ko.py Initial Comment: additional translations for 0.11 release Since gdchart doesn't support Korean yet, chart message wasn't translated. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=308482&aid=525122&group_id=8482 From jhermann at users.sourceforge.net Tue Mar 5 16:29:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 5 16:29:03 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnActions_2fAttachFile,1.2,1.3 HelpOnConfiguration,1.9,1.10 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv23896 Modified Files: HelpOnActions_2fAttachFile HelpOnConfiguration Log Message: Docs for AttachFile action Index: HelpOnActions_2fAttachFile =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnActions_2fAttachFile,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnActions_2fAttachFile 22 Feb 2002 20:45:02 -0000 1.2 --- HelpOnActions_2fAttachFile 6 Mar 2002 00:28:07 -0000 1.3 *************** *** 1,7 **** ! /!\ TODO ! * AttachFile action, contributed by Ken Sugino; note that you have to enable this action because of the possibility of DoS attacks (malicious uploads), by adding this to your moin_config: allowed_actions = ['AttachFile'] ! * "attachment:" URL scheme allows access to attachments, to get files from other pages use "attachment:WikiName/filename.ext". ! * 'inline:' scheme works like 'attachment:', but tries to inline the content of the attachment into the page; currently knows about "*.py" sources and colorizes them ! * other new linking schemes, like attachment: inline: drawing: --- 1,37 ---- ! == Enabling the AttachFile action == ! The `AttachFile` action lets a page have multiple attached files. ! Since file uploads could be abused for DoS (Denial of Service) attacks, `AttachFile` is an action that has to be enabled by the wiki administrator. See [wiki:Self:HelpOnConfiguration#file-attachments Configuration of MoinMoin] for details. ! == Creating attachments == ! ! To create a new attachment, you can either add an attachment link to any page (see below on how to do that), or click on the `AtttachFile` link at the bottom of the page. In the first case, you will see an `Upload new attachment` link after saving the page. Clicking on it will lead you to the upload page, just like directly clicking on the `AttachFile` link. ! ! The upload form consist of three fields, in addition to the file input there are two optional fields, one to specify a MIME type for the file (which will be detected automatically otherwise), the second to store the file under a different name than on your own computer. ! ! An upload will never overwrite an existing file. If there is a name ! conflict, you have to rename the file that you want to upload. ! Otherwise, if "Rename to" is left blank, the original filename will be used. ! ! Any upload or deletion of attachments is reflected on RecentChanges and thus subject to peer review. Unlike page changes, there is no history though, so ''keep a local copy of files'' so you can revert possible vandalism. ! ! ! == Linking to attachments == ! ! To refer to attachments on a page, use `attachment:filename.ext`; a link of this kind follows all the rules for normal links, i.e. pictures are automatically inlined. ! Do '''not''' use the URL of the `[get]` link you can see on the attachments upload page, ! since these links are subject to change and can break easily on reconfigurations of the wiki. ! To refer to files attached to other pages, use `attachment:WikiName/filename.ext`. ! ! Instead of `attachment:`, you can also use `inline:`, which tries to inline the attachment's content. For pictures there is no difference. For Python sources (i.e. attachments with a `.py` extension), they are shown as syntax-highlighted source displays. For all other files, the behaviour is the same as for simple `attachment:` links. ! ! The third type of link is `drawing:`, explained in the next section. ! ! ! == Editing vector drawings == ! ! A link looking like `drawing:picturename` will allow you to ''interactively'' edit vector diagrams via the built-in Java applet. The applet will then store two attachments, "`picturename.draw`" and "`picturename.gif`". After you first saved a drawing, the generated GIF picture is displayed for the `drawing:` link. This means that you only need Java enabled for editing, while displaying the results works with any browser. ! ! To edit a drawing after the first save, click on `AttachFile` and use the `[edit]` link that is displayed instead of `[view]` for the `.draw` attachment. Saving a drawing is reflected in RecentChanges. ! ! For details on using the drawing applet, see TWiki:Plugins/TWikiDrawPlugin. Index: HelpOnConfiguration =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** HelpOnConfiguration 4 Mar 2002 20:42:20 -0000 1.9 --- HelpOnConfiguration 6 Mar 2002 00:28:07 -0000 1.10 *************** *** 90,91 **** --- 90,123 ---- special markup for extended WikiName``s `["extended name"]` to get any names with characters outside the core latin alphabet. + + + [[Anchor(file-attachments)]] + === File attachments === + + The [wiki:Self:HelpOnActions/AttachFile AttachFile action] lets a page have multiple attached files. + Since file uploads could be abused for DoS (Denial of Service) attacks, `AttachFile` is an action that has to be enabled by the wiki administrator. To do this, add "`allowed_actions = ['AttachFile']`" to your configuration file. + + There are also two storage/retrieval models for file attachments: + 1. attachments are stored "privately" and can only be retrieved via a CGI GET (via URLs like `http://wiki.net/moin/SomePage?action=AttachFile&do=get&target=filename.ext`). + 1. attachments are stored into a directory directly accessible by the web server, and can thus be served directly by the webserver, without any invocation of MoinMoin (leading to URLs like `http://wiki.net/wiki/mywiki/SomePage/attachments/filename.ext`). + + Generally, the second option is preferable[[FootNote(Such a configuration will lead to lower server loads, since you avoid the overhead of a CGI process for every attachment download.)]], but it also requires additional configuration steps, and possibly more rights on the host machine. Because of that, the first option is the default; attachments are stored in the "data" directory, with paths like "`/pages//attachments/`". + + For the second option, you need to add an `attachments` option to your configuration, which is a dictionary of two values: {{{ + attachments = { + 'dir': 'C:/Moin/share/moin/htdocs/mywiki', + 'url': '/wiki/mywiki', + } + }}} + + `dir` is the file system path to the attachment storage, and `url` is the matching URI to get access to that directory. That directory has to exist and be writable for the webserver, so it can create the necessary directories and files for new attachments. Note that you have to ''manually'' create this directory, MoinMoin will ''not'' create it for you. + + The above example shows a typical configuration for Windows that works for an installation according to the default setup procedure (see HelpOnInstalling/ApacheOnWin32). + For UNIX, if you followed HelpOnInstalling/ApacheOnUnix, the necessary configuration will look like this: {{{ + attachments = { + 'dir': '/usr/local/share/moin/htdocs/mywiki', + 'url': '/wiki/mywiki', + } + }}} + + After you have completed the configuration changes, try to create an attachment for WikiSandbox to check for any errors. If you have any permission problems, you will likely see a Python traceback or some error message. From jhermann at users.sourceforge.net Tue Mar 5 16:41:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 5 16:41:05 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnConfiguration,1.10,1.11 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv27141 Modified Files: HelpOnConfiguration Log Message: Minor: sandbox name typo Index: HelpOnConfiguration =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** HelpOnConfiguration 6 Mar 2002 00:28:07 -0000 1.10 --- HelpOnConfiguration 6 Mar 2002 00:40:37 -0000 1.11 *************** *** 121,123 **** }}} ! After you have completed the configuration changes, try to create an attachment for WikiSandbox to check for any errors. If you have any permission problems, you will likely see a Python traceback or some error message. --- 121,123 ---- }}} ! After you have completed the configuration changes, try to create an attachment for WikiSandBox to check for any errors. If you have any permission problems, you will likely see a Python traceback or some error message. From cmedcoff at hotmail.com Tue Mar 5 17:12:02 2002 From: cmedcoff at hotmail.com (Charles Medcoff) Date: Tue Mar 5 17:12:02 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> <20020301171534.B15509@dorseys.org> Message-ID: Brian, Been away for some training that last couple of days. I think I'll have time to look at it this week. I gather that I should use the moin-0.11.tar.gz file from the download area for testing and the INSTALL.HTML from cvs for review? Regards, Chuck ----- Original Message ----- From: "Brian Dorsey" To: "MoinMoin Development" Cc: Sent: Friday, March 01, 2002 8:15 PM Subject: Re: [Moin-devel] Re: [Moin-user] 0.11 and IIS > On Wed, Feb 27, 2002 at 05:50:52PM -0500, Charles Medcoff wrote: > > I'd be happy to review/edit Brians efforts and test out the instructions. > > > > I've posted my first draft of the IIS install instructions. Charles, please review/edit and give them a try! :) In wiki fashion, feel free to fix anything that's broken. > > Take care, > -Brian > > From jh at web.de Tue Mar 5 17:23:17 2002 From: jh at web.de (Juergen Hermann) Date: Tue Mar 5 17:23:17 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: Message-ID: On Tue, 5 Mar 2002 20:09:30 -0500, Charles Medcoff wrote: >I gather that I should use the moin-0.11.tar.gz file from the download area >for testing and the INSTALL.HTML from cvs for review? Use the CVS tarball http://moin.sourceforge.net/files/moin-0.11.tar.gz Ciao, J?rgen From jhermann at users.sourceforge.net Tue Mar 5 17:27:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 5 17:27:04 2002 Subject: [Moin-devel] CVS: dist INSTALL.html,1.2,1.3 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv5077 Modified Files: INSTALL.html Log Message: Updated from wiki Index: INSTALL.html =================================================================== RCS file: /cvsroot/moin/dist/INSTALL.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** INSTALL.html 27 Feb 2002 21:29:16 -0000 1.2 --- INSTALL.html 6 Mar 2002 01:26:05 -0000 1.3 *************** *** 134,139 ****

UNIX Installation

-

-

Index

  1. Installation when you are root or the webmaster
    1. Installing MoinMoin
    2. Creating a wiki instance
    3. Troubleshooting
  2. Installation into your home directory
    1. Making sure /~username URLs work
    2. Getting the distribution archive and doing the basic installation
    3. Setting up a wiki instance
    4. Setting up public_html and testing the installation
--- 134,137 ---- *************** *** 386,445 ****

Windows Installation using IIS

!

... someone provide current instructions here ... !

Some more info is on [MoinMoin]MoinMoinWinCvs. !

Older information

!

This is the INSTALL.IIS file from the 010 distribution:

! ############################# 
! # INSTALLATION ON WIN2K/IIS # 
! ############################# 
!  
! Steps to set up MoinMoin on Win2K/IIS (Should also work for NT4/IIS) 
!  
! Installation Pre-Requirements: 
!   - Win2K Pro or Server (Should also work on NT4) 
!   - Internet Information Server or Personal Web Server 
!   - ActivePython (found at http://www.activestate.com) 
!  
! Unpack the contents of the ZIP into your Python20 directory and rename the 
! MoinMoin-X.X directory to "MoinMoin" so that this file (INSTALL) is located  
! at "\Python20\MoinMoin". 
!  
! The next step is to edit the file "C:\MoinMoin\wiki-moinmoin\moin_config.py" 
! and adapt it to your particular setup. The only things we need to change to 
! get things working are the values of the two variables "data_dir" and 
! "url_prefix". For our situation, we need the following values: 
!  
!     data_dir = './data' 
!     url_prefix = '/wiki-moinmoin' 
!  
! Incidently, those are the defaults. 
!  
! Create a Virtual Dir named "wiki-moinmoin" under the root of your web site  
! and point it to the "C:\Python20\MoinMoin\wiki-moinmoin" directory.  The  
! Virtual Dir needs "Read" and "Run Scripts" permission. 
!  
! On the properties page of the Virtual Dir under Application Settings be 
! sure that Execute Permissions is set to either Scripts Only or Scripts 
! and Executables. Click the Configuration button and then Add to create 
! the following new Application Mapping (NOTE: The "%s %s" IS case 
! sensitive):  
!  
!     Executeable: C:\Python20\python.exe %s %s 
!     Extension: .cgi 
!     Verbs: All Verbs 
!     Script Engine: Checked 
!     Check that file exists: UnChecked 
!  
! Click OK and close all property pages then restart the web site. Open a 
! browser and go to "http://localhost/wiki-moinmoin/test.cgi" and be sure 
! everything looks OK. 
!  
! Then go to "http://localhost/wiki-moinmoin/moin.cgi" and you should get the 
! FrontPage. To further test your new Wiki, "EditText" the "FrontPage", save 
! it and click on "RecentChanges". Congrats! You have a working Wiki! 
!  
! "Gregory Petersen" <gt_petersen at hotmail.com>, 2001-04-04 
! 
--- 384,466 ----

Windows Installation using IIS

!

Index !

  1. Requirements
  2. Preparation
    1. Installing IIS
    2. Installing Python
    3. Installing MoinMoin
  3. Creating a Wiki Instance
    1. Troubleshooting
!

Requirements

! !

Before you install [MoinMoin]MoinMoin, make sure you have the necessary infra-structure in place, namely the Internet Information Services webserver (any version should be OK), and a Python installation (version 2.0 or higher is recommended, don't run 1.5.2 without a compelling reason). !

In the following description, we assume that you have installed or will install things to these locations:

    !
  • IIS to its default location !
  • C:\Python - the Python interpreter !
  • C:\Moin - MoinMoin itself
!

Quite often, you might want to install things elsewhere, which is no problem at all; you just have to adapt any paths that appear in a command or config file to the locations you have chosen. !

This installation procedure was tested with IIS 5 for Windows running on Windows 2000sp2, and using Python 2.2. !

Preparation

! !

Installing IIS

! !

You currently need an external webserver to run MoinMoin. !

From Microsoft: (http://www.microsoft.com/windows2000/en/server/iis/)

    !

    To install IIS, add components, or remove components: !

    Click Start, point to Settings, click Control Panel and start the Add/Remove Programs application. ! Select Configure Windows, click the Components button, and then follow the on-screen instructions ! to install, remove, or add components to IIS.

!

Make sure that your webserver runs without problems before you start to install MoinMoin; problems with your webserver installation are not in the scope of this document. !

Installing Python

! !

Download [WWW]Python 2.1.2 and install it. Python installation is done via a standard Windows installer program. !

Installing MoinMoin

!

Before creating a wiki instance, you have to download and install the basic MoinMoin software. We assume you already have downloaded the distribution archive to the "C:\TEMP" directory1. !

Open a console window and enter the following commands:

! C: 
! cd \temp 
! unzip moin-0.11.zip 
! cd moin-0.11 
! python setup.py install --prefix=C:\Moin --record=install.log 
! 
!

This will install all necessary files to the "C:\Moin" directory, and create a "install.log" file listing all the files that are created there. !

____
   1 If you want to install the current development version from CVS, replace "C:\TEMP" with your "moin" working directory. !

Creating a Wiki Instance

! !

You could run your wiki directly using the sample wiki created in "C:\Moin", but this is not recommended for two reasons:

    !
  1. updating your wiki is more complicated and more dangerous. !
  2. creating a second wiki instance, even if you currently don't plan for one, is much easier.
!

So, enter these commands in a console window: !

! cd \Moin 
! md mywiki 
! md mywiki\data 
! xcopy share\moin\data mywiki\data /E 
! copy share\moin\cgi-bin mywiki 
! copy share\moin\htdocs\index.html mywiki 
! 
!

"mywiki" is the name of your wiki instance, you might want to chose a different name best fitting the intended use of this instance; just don't name it simply "wiki", because that would result in problems later on. !

We have to make sure that moin.cgi (and test.cgi if you want to run it) can find the MoinMoin directory, so that "import MoinMoin" will work. You can either setup a PYTHONPATH environment variable which includes the installation path, but sometimes it can be tricky to make sure the variable will be set in the CGI environment. The easiest way to make sure MoinMoin can be imported is to append to sys.path within moin.cgi and test.cgi. !

You can change the first two lines of code in moin.cgi to something like this: !

! 
    1 import sys
!     2 sys.path.append(r'C:\Moin')
! Notice that we're pointing to the directory which contains the MoinMoin directory, not the directory itself.
    !

     /!\ Python 2.2: Python 2.2 changed the installation layout. Because of this, you have to change the line of code given above to "sys.path.append(r'C:\Moin\Lib\site-packages')".

!

Next, you'll need to create two virtual directories in IIS. One for the shared data, and one for this specific wiki instance. !

Go to Control Panel => Administrative Tools => Internet Information Service. Open up the tree to Default Web site. !

Right click on Default Web Site and choose New => Virtual directory. This will bring up a wizard with the manditory useless first screen, hit next. Enter "wiki" for the alias name and hit next. Browse to "C:\Moin\share\moin\htdocs" and hit next. Leave the Access permissions at their defaults and hit next. And now you're done, hit finish! !

Now follow the same steps, but set the alias to "mywiki" and the path to "C:\Moin\mywiki".

    !

     <!> TODO: Does it need more permissions?

!

Now you need to setup the 'mywiki' alias so that it will run Python to interpret .cgi files. Right click on your new 'mywiki' alias and choose Properties. On the first tab (Virtual Directory), click the Configuration button. The first tab is the App Mappings tab, which defines which programs to use for each file exetension. Click Add. Browse to your python.exe (probably something like c:\pythonXX\python.exe). Then add -u %s %s after the Python executable path. The Executable line will look something like this: C:\Python22\python.exe -u %s %s. In the Extension box enter .cgi with the begining period. Confirm that the Check that file exists option is not checked (if it is, MoinMoin won't be able to display sub pages). Ok, you're done with the alias configuration, click OK several times to get back out of all the dialog boxes.

    !

     <!> TODO: Document directory permissions for IUSR_XXXX gotcha.

!

If you add another wiki instance, you'll only need to setup the reference to its folder, they can safely share the "wiki" alias which points to static files only. !

That is all, try to access your new-born wiki with the URL "http://127.0.0.1/mywiki/". You should see the FrontPage, try to edit and save it, and if that works, see if your edit is reflected on the RecentChanges page. !

Finally, edit "moin_config.py" and at least change "sitename" and "logo_url" to some personal values: !

! sitename = 'My Wiki' 
! logo_url = '/images/mywiki-logo.gif' 
! 
!

For a personal or intranet installation, you'll normally also add the line

! allowed_actions = ['DeletePage', 'AttachFile'] 
! 
!

Troubleshooting

! !

If you see an error like "ImportError: No module named MoinMoin", it means that python cannot find MoinMoin. See above for how to set your PYTHONPATH or add to sys.path. From brian at dorseys.org Tue Mar 5 22:06:03 2002 From: brian at dorseys.org (Brian Dorsey) Date: Tue Mar 5 22:06:03 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: ; from cmedcoff@hotmail.com on Tue, Mar 05, 2002 at 08:09:30PM -0500 References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> <20020301171534.B15509@dorseys.org> Message-ID: <20020305220622.A3791@dorseys.org> Sounds good! Pay particular attention if you run into permissions issues... I had trouble on one machine, but can't duplicate it now. Take care, -Brian On Tue, Mar 05, 2002 at 08:09:30PM -0500, Charles Medcoff wrote: > Brian, > > Been away for some training that last couple of days. I think I'll have > time to look at it this week. > > I gather that I should use the moin-0.11.tar.gz file from the download area > for testing and the INSTALL.HTML from cvs for review? > > Regards, > Chuck > > ----- Original Message ----- > From: "Brian Dorsey" > To: "MoinMoin Development" > Cc: > Sent: Friday, March 01, 2002 8:15 PM > Subject: Re: [Moin-devel] Re: [Moin-user] 0.11 and IIS > > > > On Wed, Feb 27, 2002 at 05:50:52PM -0500, Charles Medcoff wrote: > > > I'd be happy to review/edit Brians efforts and test out the > instructions. > > > > > > > I've posted my first draft of the IIS install instructions. Charles, > please review/edit and give them a try! :) In wiki fashion, feel free to fix > anything that's broken. > > > > Take care, > > -Brian > > > > From jhermann at users.sourceforge.net Wed Mar 6 12:36:45 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 12:36:45 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HilfeZuAktionen_2fDateiAnh_e4nge,1.3,1.4 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv20203 Modified Files: HilfeZuAktionen_2fDateiAnh_e4nge Log Message: Current translation Index: HilfeZuAktionen_2fDateiAnh_e4nge =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeZuAktionen_2fDateiAnh_e4nge,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HilfeZuAktionen_2fDateiAnh_e4nge 27 Feb 2002 21:43:27 -0000 1.3 --- HilfeZuAktionen_2fDateiAnh_e4nge 6 Mar 2002 20:21:41 -0000 1.4 *************** *** 1,7 **** ##master-page:HelpOnActions/AttachFile ! ##master-date:2002-02-20 15:09:13 ! /!\ TODO - * AttachFile-Aktion, beigesteuert durch Ken Sugino; bitte nehmen Sie zur Kenntnis, dass Sie diese Aktion anschalten m?ssen, weil die M?glichkeit von sog. DoS-Attacken besteht (b?swillige Uploads), indem Sie dies zu Ihrer moin_config hinzuf?gen: allowed_actions = ['AttachFile'] - * "attachment:" URL-Schema, das Zugriff auf Anh?nge erlaubt. Um auf Anh?nge anderer Seiten zuzugreifen, verwenden Sie "attachment:WikiName/filename.ext". - * 'inline:' diese Schema funktioniert wie 'attachment:', aber versucht die Inhalte in die Seite einzubetten; momentan werden "*.py"-Quellcodes erkannt und eingef?rbt. --- 1,36 ---- ##master-page:HelpOnActions/AttachFile ! ##master-date:2002-03-05 18:43:17 ! ! == Aktivieren der AttachFile-Aktion == ! ! Die `AttachFile`-Aktion erm?glicht es, mehrere Dateien an eine Seite anzuh?ngen. Da das Hochladen von Dateien aber f?r sog. DoS(Denial of Service)-Attacken missbraucht werden kann, ist `AttachFile` eine Aktion, die vom Wiki-Administrator aktiviert werden muss. Siehe HilfeZurKonfiguration f?r weitere Details. ! ! == Erzeugen von Anh?ngen == ! ! Um einen neuen Anhang zu erzeugen, k?nnen Sie entweder einen Verweis auf einen Anhang zu einer beliebigen Seite hinzuf?gen (wie das geht siehe unten) oder auf `AttachFile` unten auf der Seite klicken. Im ersten Fall bekommen Sie nach Speichern der Seite einen `Upload new attachment`-Verweis angezeigt. Wenn Sie darauf Klicken, werden Sie auf die Hochlade-Seite geleitet, genau wie wenn Sie direkt auf den `AttachFile`-Verweis klicken. ! ! Das Hochlade-Formular besteht aus drei Feldern, zus?tzlich zur Eingabe f?r den Dateinamen gibt es zwei optionale Felder - eines, um den MIME-Typ der Datei anzugeben (was ansonsten automatisch detektiert wird), das zweite, um die Datei unter einem anderen Namen zu speichern, als auf Ihrem eigenen Computer. ! ! Eine hochgeladene Datei ?berschreibt niemals eine existierende Datei. Wenn es zu einem Namenskonflikt kommt, m?ssen Sie die hochzuladende Datei umbenennen. ! Ansonsten, wenn das "Rename to"-Feld leer ist, wird der originale Dateiname verwendet. ! ! Jedes Hochladen oder L?schen von Anh?ngen spiegelt sich in Aktuelle?nderungen wieder und unterliegt daher der allgemeinen Begutachtung. Anders als bei Seiten?nderungen gibt es allerdings keine Historie, also behalten Sie ''lokale Kopien der Dateien'', so dass Sie m?glichen Vandalismus r?ckg?ngig machen k?nnen. ! ! == Verweisen auf Anh?nge == ! ! Um auf Anh?nge auf einer Seite zu verweisen, benutzen Sie `attachment:filename.ext`; ein Verweis dieser Art folgt allen Regeln f?r normale Verweise, d.h. Bilder werden automatisch eingebettet. ! Verwenden Sie '''nicht''' die URL des `[get]`-Links, den Sie auf der Hochlade-Seite sehen, da sich diese Links ?ndern und daher leicht brechen k?nnten, wenn das Wiki umkonfiguriert wird. ! Um auf die angeh?ngten Dateien einer anderen Seite zu verweisen, verwenden Sie `attachment:WikiName/filename.ext`. ! ! Anstatt von `attachment:` k?nnen Sie auch `inline:` benutzen, was versucht, den Dateiinhalt des Anhangs einzubetten. Bei Bildern macht dies keinen Unterschied. Bei Python-Programmquellcode (d.h. Anh?ngen mit `.py`-Erweiterung) werden sie eingef?rbt angezeigt. Bei allen anderen Dateien ist das Verhalten genauso wie bei einfachen `attachment:`-Verweisen. ! ! Der dritte Typ von Verweisen ist `drawing:` (Zeichnung) und wird im n?chsten Abschnitt erkl?rt. ! ! == Editieren von Vektorgrafiken == ! ! Ein Verweis wie `drawing:bildname` erm?glicht es Ihnen, ''interaktiv'' Vektorgrafiken zu editieren mit Hilfe des eingebauten Java-Applets. Das Applet speichert dann zwei Anh?nge, "`bildname.draw`" und "`bildname.gif`". Nachdem Sie das erste mal eine Zeichnung abgespeichert haben, wird das erzeugte GIF-Bild anstatt des `drawing:`-Verweises angezeigt. Das bedeutet, dass Sie Java nur anschalten m?ssen, um zu editieren, w?hrend das Anzeigen der Bilder mit jedem Browser funktioniert. ! ! Um eine Zeichnung nach dem erstmaligen Speichern zu editieren, klicken Sie auf `AttachFile` und benutzen Sie den `[edit]`-Link, der anstatt von `[view]` angezeigt wird, wenn es sich um einen `.draw`-Anhang handelt. Das abspeichern einer Zeichnung wird in Aktuelle?nderungen vermerkt. ! ! Details zur Benutzung des Vektorgrafik-Applets siehe TWiki:Plugins/TWikiDrawPlugin. From jhermann at users.sourceforge.net Wed Mar 6 12:40:26 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 12:40:26 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text Aktuelle_c4nderungen,NONE,1.1 AufgegebeneSeiten,NONE,1.1 BenutzerEinstellungen,NONE,1.1 GesuchteSeiten,NONE,1.1 SeiteFinden,NONE,1.1 SeitenGr_f6_dfe,NONE,1.1 StartSeite,NONE,1.1 TitelIndex,NONE,1.1 VerwaisteSeiten,NONE,1.1 WegWeiser,NONE,1.1 WortIndex,NONE,1.1 ZufallsSeite,NONE,1.1 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv22056 Added Files: Aktuelle_c4nderungen AufgegebeneSeiten BenutzerEinstellungen GesuchteSeiten SeiteFinden SeitenGr_f6_dfe StartSeite TitelIndex VerwaisteSeiten WegWeiser WortIndex ZufallsSeite Log Message: German system pages --- NEW FILE: Aktuelle_c4nderungen --- ##master-page:RecentChanges ##master-date:2001-12-05 06:08:35 Diese Seite enth?lt eine Liste der letzten ?nderungen in diesem Wiki (Gesamt-Seitenzahl = '''[[PageCount]]'''). Weitere System-Informationen siehe SystemInfo. F?r eine Liste von ?nderungen in anderen Wikis, siehe OpenWiki:WikiSites/Aggregation. ---- [[RecentChanges]] |||| [[Icon(moin-diff.gif)]] || markiert ?ltere Seiten, die mindestens eine Sicherheitskopie haben (draufklicken f?r Autoren-Differenzanzeige)|| |||| [[Icon(moin-updated.gif)]] || markiert Seiten, die seit Ihrem letzten Lesezeichen ge?ndert wurden (draufklicken f?r eine Lesezeichen-Differenzanzeige)|| |||| [[Icon(moin-new.gif)]] || markiert Seiten, die seit Ihrem letzten Lesezeichen erzeugt worden sind und nicht danach ge?ndert wurden|| --- NEW FILE: AufgegebeneSeiten --- ##master-page:AbandpnedPages ##master-date:2001-12-03 14:54:57 Seiten, die seit Urzeiten nicht mehr ge?ndert wurden; dies ist eine Liste der ?ltesten Eintr?ge im Editlog. [[AbandonedPages]] --- NEW FILE: BenutzerEinstellungen --- ##master-page:UserPreferences ##master-date:2001-12-05 21:16:15 [[UserPreferences]] Wenn Sie das erste Mal auf dieser Seite sind, sehen Sie das Formular, in das Sie Ihren Benutzernamen und einige andere Einstellungen (Passwort und e-mail werden gespeichert, aber derzeit nicht benutzt) eingeben k?nnen. Wenn Sie auf '''Create Profile''' klicken, wird ein Userprofil f?r Sie angelegt. Mit Ihren Antworten wird ein HTTP-Cookie zu Ihnen gesandt, das Ihre User-ID enth?lt, das es dem System erm?glicht, Sie zu erkennen. /!\ ''Diese "ID", die in der Antwortseite angezeigt wird, kann dazu benutzt werden, das selbe Cookie zu anderen Maschinen zu senden, die sie benutzen. Notieren Sie sie unbedingt! Oder benutzen Sie Kopieren&Einf?gen mit der oben angezeigten URL, nachdem Sie Ihr Profil angelegt haben.'' '''Logout''' l?scht das Cookie. Wie oben beschrieben, erm?glicht '''Login''' Ihnen, Zugriff auf Ihr Userprofil zu bekommen, wenn Sie irgendwie das Cookie verloren haben oder auf einer anderen Maschine arbeiten. '''Save''' aktualisiert lediglich Ihr Profil. --- NEW FILE: GesuchteSeiten --- ##master-page:WantedPages ##master-date:2001-11-30 14:37:40 Hier ist eine Liste nicht existierender Seiten inklusive der Seite(n), von wo aus sie referenziert werden: [[WantedPages]] --- NEW FILE: SeiteFinden --- ##master-page:FindPage ##master-date:2001-12-08 22:02:06 Sie k?nnen mit dieser Seite alle Eintr?ge in diesem WikiWikiWeb durchsuchen. Die Suche beachtet keine Gro?/Kleinschreibung. Gute Einstiegsstellen f?r die Erkundung eines Wikis sind: * Aktuelle?nderungen: sehen Sie, wo andere Leute gerade arbeiten * SeiteFinden: durchsuchen oder durchbl?ttern Sie die Datenbank auf verschiedene Weisen * TitelIndex: eine Liste aller Seiten im Wiki * WortIndex: eine Liste aller Teilworte von Seitetiteln (und daher eine Liste aller Konzepte in einem Wiki) * WikiSandBox: hier d?rfen Sie nach Lust und Laune experimentieren Hier ist die Titel-Suche. Probieren Sie etwas wie ''manager'': [[TitleSearch]] Hier ist die Volltext-Suche: [[FullSearch]] Sie k?nnen auch regul?re Ausdr?cke verwenden, wie z.B. {{{ seriali[sz]e}}} oder direkt auf eine Seite springen oder eine neue Seite erzeugen, indem Sie sie Ihren Seitennamen hier eingeben: [[GoTo]] --- NEW FILE: SeitenGr_f6_dfe --- [[StatsChart(pagesize)]] Alle Seiten, nach ihrer Gr??e sortiert: [[PageSize]] --- NEW FILE: StartSeite --- #redirect FrontPage ##we don't want to translate the whole Wiki ;) --- NEW FILE: TitelIndex --- ##master-page:TitleIndex ##master-date:2001-11-30 14:37:40 Hier ist ein Index von allen Seiten in diesem Wiki. Siehe auch: * WortIndex -- ein Index aller in Seitentiteln vorkommender Teilworte * Aktuelle?nderungen ---- [[TitleIndex]] --- NEW FILE: VerwaisteSeiten --- ##master-page:OrphanedPages ##master-date:2001-11-30 14:37:40 Hier ist eine Liste von Seiten, auf die keine andere Seite verweist: [[OrphanedPages]] --- NEW FILE: WegWeiser --- ##master-page:SiteNavigation ##master-date:2002-02-22 07:34:12 WegWeiser ist der zentrale Ausgangspunkt, um dieses Wiki zu erkunden. MoinMoin unterst?tzt diese Indizierungsschemata (MeatBall:IndexingScheme''''''s): * Aktuelle?nderungen * TitelIndex * WortIndex * SeiteFinden * GesuchteSeiten * VerwaisteSeiten * ZufallsSeite * SeitenGr??e Im Fu?bereich jeder Seite gibt es Aktionen, die eine Navigation auf andere Seiten, die mit der aktuellen Seite zusammenh?ngen, erlaubt: * Like''''''Pages * Local''''''Site''''''Map Zus?tzlich gibt es auch die Makros {{{[[PageList]]}}}, {{{[[FullSearch('text')]]}}} und {{{[[TableOfContents]]}}}, die es Ihnen erm?glichen, automatisch f?r zusammenh?ngende Teile eines Wikis Indices zu generieren. --- NEW FILE: WortIndex --- ##master-page:WordIndex ##master-date:2001-11-30 14:40:08 Hier ist ein Index aller Worte, die in Seitentiteln vorkommen. Siehe auch: * TitelIndex -- ein k?rzerer Index * Aktuelle?nderungen ---- [[WordIndex]] --- NEW FILE: ZufallsSeite --- ##master-page:RandomPage ##master-date:2001-11-30 14:37:40 Hier ist eine Liste von 25 zuf?lligen Seiten: [[RandomPage(25)]] From jhermann at users.sourceforge.net Wed Mar 6 13:32:36 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 13:32:36 2002 Subject: [Moin-devel] CVS: dist/wiki/data intermap.txt,1.9,1.10 Message-ID: Update of /cvsroot/moin/dist/wiki/data In directory usw-pr-cvs1:/tmp/cvs-serv28029/wiki/data Modified Files: intermap.txt Log Message: Added DseWiki Index: intermap.txt =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/intermap.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** intermap.txt 27 Feb 2002 21:02:53 -0000 1.9 --- intermap.txt 6 Mar 2002 20:39:28 -0000 1.10 *************** *** 12,15 **** --- 12,16 ---- TwistedWiki http://purl.net/wiki/twisted/ LinuxWiki http://linuxwiki.de/ + DseWiki http://www.wikiservice.at/dse/wiki.cgi? # Added 2002-02-12 to http://www.usemod.com/cgi-bin/mb.pl?InterMapTxt From jhermann at users.sourceforge.net Wed Mar 6 14:37:08 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 14:37:08 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.105,1.106 config.py,1.59,1.60 wikimacro.py,1.32,1.33 wikiutil.py,1.82,1.83 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv4474 Modified Files: Page.py config.py wikimacro.py wikiutil.py Log Message: Removed most page name configs; replaced by getSysPage() Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.105 retrieving revision 1.106 diff -C2 -r1.105 -r1.106 *** Page.py 27 Feb 2002 21:27:24 -0000 1.105 --- Page.py 6 Mar 2002 22:36:52 -0000 1.106 *************** *** 489,493 **** wikiutil.quoteWikiname(self.page_name), template_param, _('Reduce editor size')) ! print "|", Page(config.page_edit_tips).link_to() if preview: print '| %s' % _('Skip to preview') --- 489,493 ---- wikiutil.quoteWikiname(self.page_name), template_param, _('Reduce editor size')) ! print "|", wikiutil.getSysPage('HelpOnFormatting').link_to() if preview: print '| %s' % _('Skip to preview') Index: config.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/config.py,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -r1.59 -r1.60 *** config.py 21 Feb 2002 22:03:27 -0000 1.59 --- config.py 6 Mar 2002 22:36:52 -0000 1.60 *************** *** 37,45 **** url_prefix = '.' - # 2001-07-03: renamed recent_changes to page_recent_changes - if not vars().has_key('page_recent_changes') and vars().has_key('recent_changes'): - page_recent_changes = recent_changes - del recent_changes - # 2001-07-03: renamed front_page to page_front_page if not vars().has_key('page_front_page') and vars().has_key('front_page'): --- 37,40 ---- *************** *** 137,149 **** # page names 'page_front_page': 'FrontPage', - 'page_site_navigation': 'SiteNavigation', - 'page_edit_tips': 'HelpOnFormatting', - 'page_user_prefs': 'UserPreferences', - 'page_recent_changes': 'RecentChanges', 'page_template_ending': 'Template', 'page_form_ending': 'Form', 'page_local_spelling_words': 'LocalSpellingWords', - 'page_title_index': 'TitleIndex', - 'page_word_index': 'WordIndex', 'page_footer1': """


%(page_help_contents)s ! Search Diffs Info --- 142,146 ---- 'page_icons': ''' %(page_help_contents)s ! Search Diffs Info Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -r1.32 -r1.33 *** wikimacro.py 13 Feb 2002 21:13:52 -0000 1.32 --- wikimacro.py 6 Mar 2002 22:36:52 -0000 1.33 *************** *** 100,110 **** ! ! """ % (type, default)) def _macro_GoTo(self, args): return self.formatter.rawHTML("""
! !
""") def _macro_WordIndex(self, args): --- 100,110 ---- ! ! """ % (type, default, _("Go"))) def _macro_GoTo(self, args): return self.formatter.rawHTML("""
! !
""" % _("Go")) def _macro_WordIndex(self, args): Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -r1.82 -r1.83 *** wikiutil.py 1 Mar 2002 19:21:25 -0000 1.82 --- wikiutil.py 6 Mar 2002 22:36:52 -0000 1.83 *************** *** 11,15 **** import os, re, string, sys, urllib from MoinMoin import config, user, util, version, webapi ! from MoinMoin.i18n import _ --- 11,15 ---- import os, re, string, sys, urllib from MoinMoin import config, user, util, version, webapi ! from MoinMoin.i18n import _, getText *************** *** 196,199 **** --- 196,213 ---- + def getSysPage(pagename): + """ Get a system page according to user settings and available + translations. + """ + from MoinMoin.Page import Page + + i18n_name = getText(pagename) + if i18n_name != pagename: + i18n_page = Page(i18n_name) + if i18n_page.exists(): + return i18n_page + return Page(pagename) + + ############################################################################# ### Searching *************** *** 391,397 **** # get name of help page ! help_contents = _('HelpContents') ! if not Page(help_contents).exists(): ! help_contents = 'HelpContents' # print the HTML element --- 405,415 ---- # get name of help page ! page_help_contents = getSysPage('HelpContents').page_name ! page_title_index = getSysPage('TitleIndex').page_name ! page_word_index = getSysPage('WordIndex').page_name ! page_site_navigation = getSysPage('SiteNavigation').page_name ! page_user_prefs = getSysPage('UserPreferences').page_name ! page_recent_changes = getSysPage('RecentChanges').page_name ! page_edit_tips = getSysPage('HelpOnFormatting').page_name # print the HTML element *************** *** 417,423 **** print '' % ( quoteWikiname(keywords['pagename']),) ! print '' % quoteWikiname(config.page_title_index) ! print '' % quoteWikiname(config.page_word_index) ! print '' % quoteWikiname(config.page_edit_tips) print "" --- 435,441 ---- print '' % ( quoteWikiname(keywords['pagename']),) ! print '' % quoteWikiname(page_title_index) ! print '' % quoteWikiname(page_word_index) ! print '' % quoteWikiname(page_edit_tips) print "" *************** *** 460,465 **** print '' print '%s
 
' % ( ! link_tag(quoteWikiname(config.page_user_prefs), ! (config.page_user_prefs, user.current.name)[user.current.valid]),) print '' --- 478,483 ---- print '' print '%s
 
' % ( ! link_tag(quoteWikiname(page_user_prefs), ! (page_user_prefs, user.current.name)[user.current.valid]),) print '' *************** *** 474,478 **** 'url': config.url_prefix, 'pagename': quoteWikiname(pagename), ! 'page_help_contents': help_contents, } if not user.current.isSubscribedTo([pagename]): --- 492,497 ---- 'url': config.url_prefix, 'pagename': quoteWikiname(pagename), ! 'page_help_contents': page_help_contents, ! 'page_find_page': getSysPage('FindPage').page_name, } if not user.current.isSubscribedTo([pagename]): *************** *** 493,501 **** 'sitename': config.sitename, 'page_front_page': config.page_front_page, ! 'page_site_navigation': config.page_site_navigation, ! 'page_recent_changes': config.page_recent_changes, ! 'page_title_index': config.page_title_index, ! 'page_word_index': config.page_word_index, ! 'page_help_contents': help_contents, } --- 512,520 ---- 'sitename': config.sitename, 'page_front_page': config.page_front_page, ! 'page_site_navigation': page_site_navigation, ! 'page_recent_changes': page_recent_changes, ! 'page_title_index': page_title_index, ! 'page_word_index': page_word_index, ! 'page_help_contents': page_help_contents, } *************** *** 575,579 **** } ! print link_tag('FindPage?value='+urllib.quote_plus(pagename, ''), _('FindPage')) print _(" by browsing, title search %(titlesearch)s, " "text search %(textsearch)s or an index
") % locals() --- 594,598 ---- } ! print link_tag(getSysPage('FindPage').page_name+'?value='+urllib.quote_plus(pagename, ''), _('FindPage')) print _(" by browsing, title search %(titlesearch)s, " "text search %(textsearch)s or an index
") % locals() From jhermann at users.sourceforge.net Wed Mar 6 14:37:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 14:37:10 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.67,1.68 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv4474/i18n Modified Files: de.py Log Message: Removed most page name configs; replaced by getSysPage() Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -r1.67 -r1.68 *** de.py 21 Feb 2002 22:04:04 -0000 1.67 --- de.py 6 Mar 2002 22:36:52 -0000 1.68 *************** *** 247,251 **** "

SHA digest of this page's content is: %(digest)s

": ! "

Signatur des Seiteninhalts nach dem SHA-Verfahren: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, --- 247,251 ---- "

SHA digest of this page's content is: %(digest)s

": ! '

Signatur des Seiteninhalts nach dem SHA-Verfahren: %(digest)s

', '''

To refer to attachments on a page, use attachment:filename, *************** *** 406,412 **** --- 406,418 ---- 'Globale Erweiterungsmakros', + 'Go': + 'Los!', + 'HelpContents': 'HilfeInhalt', + 'HelpOnFormatting': + 'HilfeZumFormatieren', + 'Ignore changes in the amount of whitespace': 'Ausschlie?lich Leerraum betreffende ?nderungen ignorieren', *************** *** 517,520 **** --- 523,529 ---- 'Diese Seite wirklich l?schen?', + 'RecentChanges': + 'Aktuelle?nderungen', + 'Redirected from page "%(page)s"': 'Hierher umgeleitet von Seite "%(page)s"', *************** *** 577,580 **** --- 586,592 ---- 'Anzeigen', + 'SiteNavigation': + 'WegWeiser', + 'Size': 'Gr??e', *************** *** 625,628 **** --- 637,643 ---- 'Titelsuche nach "%s"', + 'TitleIndex': + 'TitelIndex', + 'To create you own templates, add a page with a name ending in Template.': 'Zum Anlegen eigener Schablonen einfach eine Seite anlegen, deren Name mit ?Template? endet.', *************** *** 647,650 **** --- 662,668 ---- "Dateianhang '%(filename)s' wurde angelegt.", + 'UserPreferences': + 'BenutzerEinstellungen', + 'Version as of %(date)s': 'Version vom %(date)s', *************** *** 652,655 **** --- 670,676 ---- 'Wed': 'Mi', + + 'WordIndex': + 'WortIndex', 'XML title index': From jhermann at users.sourceforge.net Wed Mar 6 14:37:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 14:37:10 2002 Subject: [Moin-devel] CVS: MoinMoin/action DeletePage.py,1.8,1.9 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv4474/action Modified Files: DeletePage.py Log Message: Removed most page name configs; replaced by getSysPage() Index: DeletePage.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/DeletePage.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** DeletePage.py 30 Nov 2001 23:07:12 -0000 1.8 --- DeletePage.py 6 Mar 2002 22:36:52 -0000 1.9 *************** *** 49,53 **** # Redirect to RecentChanges ! return Page(config.page_recent_changes).send_page(form, msg='%s' % (_('Page "%s" was sucessfully deleted!') % (pagename,))) --- 49,53 ---- # Redirect to RecentChanges ! return wikiutil.getSysPage('RecentChanges').send_page(form, msg='%s' % (_('Page "%s" was sucessfully deleted!') % (pagename,))) From jhermann at users.sourceforge.net Wed Mar 6 14:39:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 6 14:39:10 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpMiscellaneous,1.2,1.3 HelpOnConfiguration,1.11,1.12 HelpOnInstalling_2fInternetInformationServer,1.4,1.5 HelpOnSkins,1.2,1.3 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv5708 Modified Files: HelpMiscellaneous HelpOnConfiguration HelpOnInstalling_2fInternetInformationServer HelpOnSkins Log Message: Minor changes plus removed page_* configs Index: HelpMiscellaneous =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpMiscellaneous,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpMiscellaneous 20 Feb 2002 20:57:58 -0000 1.2 --- HelpMiscellaneous 6 Mar 2002 22:38:40 -0000 1.3 *************** *** 28,34 **** * Page trails (user option) * UserPreferences: checkboxes for double-click edit, page trail, fancy links, emoticons, jump to last page visited, and some other yes/no options - * User option to open editor view via a double-click - * support for Java applet "TWikiDrawPlugin" via drawing: URL scheme (you need to activate the AttachFile action if you want drawings) - * Python syntax highlighting * "Remove trailing whitespace from each line" option in the editor * Page templates (create a new page using a template page) --- 28,31 ---- Index: HelpOnConfiguration =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** HelpOnConfiguration 6 Mar 2002 00:40:37 -0000 1.11 --- HelpOnConfiguration 6 Mar 2002 22:38:40 -0000 1.12 *************** *** 49,53 **** || navi_bar || ''large HTML fragment'' || Most important links in text form (/!\ this is a deprecated feature that will enventually disappear and be replaced by the bookmarks of OpenWiki:UserPreferences) || || nonexist_qm || 0 || Default for displaying WantedPages with a question mark, like in the original wiki (changeable by the user) || - || page_edit_tips || 'HelpOnFormatting' || Name of the page with help on editing, displayed as a link in the editor view || || page_footer1 || ''Python Powered logo'' || Custom HTML markup sent ''before'' the system footer (see HelpOnSkins) || || page_footer2 || "" || Custom HTML markup sent ''after'' the system footer (see HelpOnSkins) || --- 49,52 ---- *************** *** 57,63 **** || page_icons_up || ''icon for link to parent'' || This icon is shown on subpages and links to the parent page || || page_local_spelling_words || 'LocalSpellingWords' || Name of the page containing user-provided spellchecker words || - || page_recent_changes || 'RecentChanges' || Name of the RecentChanges page || || page_template_ending || 'Template' || Ending name part of pages containing templates for new pages || - || page_user_prefs || 'UserPreferences' || Name of the user preferences page || || shared_intermap || None || path to a file containing global InterWiki definitions || || shared_metadb || None || path to a file containing a global InterWiki pagelist || --- 56,60 ---- Index: HelpOnInstalling_2fInternetInformationServer =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fInternetInformationServer,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnInstalling_2fInternetInformationServer 4 Mar 2002 20:42:20 -0000 1.4 --- HelpOnInstalling_2fInternetInformationServer 6 Mar 2002 22:38:40 -0000 1.5 *************** *** 84,88 **** Next, you'll need to create two virtual directories in IIS. One for the shared data, and one for this specific wiki instance. ! Go to ''Control Panel => Administrative Tools => Internet Information Service''. Open up the tree to ''Default Web site''. Right click on ''Default Web Site'' and choose ''New => Virtual directory''. This will bring up a wizard with the manditory useless first screen, hit next. Enter "`wiki`" for the alias name and hit next. Browse to "`C:\Moin\share\moin\htdocs`" and hit next. Leave the ''Access permissions'' at their defaults and hit next. And now you're done, hit finish! --- 84,88 ---- Next, you'll need to create two virtual directories in IIS. One for the shared data, and one for this specific wiki instance. ! Go to ''Control Panel => Administrative Tools => Internet Information Service''. Open up the tree to ''Default Web Site''. Right click on ''Default Web Site'' and choose ''New => Virtual directory''. This will bring up a wizard with the manditory useless first screen, hit next. Enter "`wiki`" for the alias name and hit next. Browse to "`C:\Moin\share\moin\htdocs`" and hit next. Leave the ''Access permissions'' at their defaults and hit next. And now you're done, hit finish! Index: HelpOnSkins =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnSkins,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnSkins 26 Feb 2002 00:25:10 -0000 1.2 --- HelpOnSkins 6 Mar 2002 22:38:40 -0000 1.3 *************** *** 13,14 **** --- 13,18 ---- || title1 || None || HTML fragment before title area (see HelpOnSkins) || || title2 || '


' || HTML fragment after title area (see HelpOnSkins) || + + + + See http://openlook.org/ for a very nice example. From cmedcoff at hotmail.com Wed Mar 6 15:46:04 2002 From: cmedcoff at hotmail.com (Charles Medcoff) Date: Wed Mar 6 15:46:04 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> <20020301171534.B15509@dorseys.org> Message-ID: Brian, I've gone throught the instructions and they work. A few comments. To your comment "TODO: Does it need more permissions?". I believe the answer is no. I accepted the default and it worked fine. Afterward I looked at the web app properties and the "Execute Permissions" property was set to "Scripts only". This appears to be the default. You instruct the user to go to "http://127.0.0.1/mywiki/" but this didn't actually work for me. I had to append index.html or you'll get an error "Directory Listing Denied". I believe that directory browsing it turned off by default althought I might have changed this on the root web at some point in the past. Alternatively there should be additional instructions for specifying "install.html" as the default document. Thus far I've only had time to read the IIS section of the document, but upgrading does not appear to be addressed. One other thing. While this installation works I'm personally not crazy about the dir layout. I don't like the idea of mixing the wiki pages data inside the moin package folder. I can't give you any specific reasons at the moment but it doesn't feel right; perhaps user data should be outside of the python path. I wonder if there are issues here in the case of an upgrade. I also am not crazy about the idea of having to require two virtual directories for one web app. I know that this is required thought due to the way the paths are used within the moinmoin code. Let me know what you think or if I can help in any other way. Regards, Chuck ----- Original Message ----- From: "Brian Dorsey" To: "MoinMoin Development" Cc: Sent: Friday, March 01, 2002 8:15 PM Subject: Re: [Moin-devel] Re: [Moin-user] 0.11 and IIS > On Wed, Feb 27, 2002 at 05:50:52PM -0500, Charles Medcoff wrote: > > I'd be happy to review/edit Brians efforts and test out the instructions. > > > > I've posted my first draft of the IIS install instructions. Charles, please review/edit and give them a try! :) In wiki fashion, feel free to fix anything that's broken. > > Take care, > -Brian > > From cmedcoff at hotmail.com Wed Mar 6 15:48:03 2002 From: cmedcoff at hotmail.com (Charles Medcoff) Date: Wed Mar 6 15:48:03 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> <20020301171534.B15509@dorseys.org> Message-ID: Brian, I forgot one other thing in my last message. Some people (like myself) may not have "unzip" installed. This didn't confuse me, I just used WinZip, but less experienced people may not get around this. On the other hand people that can't figure that out probably have no business setting up a CGI application. Regards, Chuck From brian at dorseys.org Wed Mar 6 23:24:05 2002 From: brian at dorseys.org (Brian Dorsey) Date: Wed Mar 6 23:24:05 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: ; from cmedcoff@hotmail.com on Wed, Mar 06, 2002 at 06:45:24PM -0500 References: <20020225172026.A13107@dorseys.org> <20020226170447.A13792@dorseys.org> <20020301171534.B15509@dorseys.org> Message-ID: <20020306232417.A4306@dorseys.org> On Wed, Mar 06, 2002 at 06:45:24PM -0500, Charles Medcoff wrote: > Brian, > > I've gone throught the instructions and they work. A few comments. Thanks! > > To your comment "TODO: Does it need more permissions?". I believe the > answer is no. I accepted the default and it worked fine. Afterward I > looked at the web app properties and the "Execute Permissions" property was > set to "Scripts only". This appears to be the default. Yeah, I ran into NTFS permissions not being set right on one box... I'll just take the note out for now. Until i can reproduce it.... > > You instruct the user to go to "http://127.0.0.1/mywiki/" but this didn't > actually work for me. I had to append index.html or you'll get an error > "Directory Listing Denied". I believe that directory browsing it turned off > by default althought I might have changed this on the root web at some point > in the past. Alternatively there should be additional instructions for > specifying "install.html" as the default document. Ouch! This makes sense - in a perverse sort of way. index.html isn't a default document for IIS, So it won't get found automatically on a default install. (I always add it, so I didn't notice...) So... we should change the copy command to copy it to default.htm or make a note that people will need to add index.html to the default document list in the properties for IIS. > > Thus far I've only had time to read the IIS section of the document, but > upgrading does not appear to be addressed. It isn't yet in the IIS section... I think there is some general info on the wiki... I haven't tested this exact scenario, but I think it should be possible to d/l a new version and run setup.py with the same arguments to overwrite the MoinMoin dir and the new version should almost always just work... (I've been working out of my CVS checkout dir... and updating whenever I feel like it. Seems to be working so far. ;) In any case, updating should be mentioned somewhere. > > One other thing. While this installation works I'm personally not crazy > about the dir layout. I don't like the idea of mixing the wiki pages data > inside the moin package folder. I can't give you any specific reasons at > the moment but it doesn't feel right; perhaps user data should be outside of > the python path. I wonder if there are issues here in the case of an > upgrade. I also am not crazy about the idea of having to require two > virtual directories for one web app. I know that this is required thought > due to the way the paths are used within the moinmoin code. I copied the Apache install docs in this regard... it's not actually how I have my own wikis setup... I think the idea is that this makes it easy to add multiple wikis on the same server and they can all share the same /wiki data. On one of my boxes, I've got the htdocs stuff and the cgi stuff all in one folder which I've turned into a virtual dir and I keep the data off somewhere else. But, if I were going to be running multiple wikis, this install is probably better. > > Let me know what you think or if I can help in any other way. I'll add a note about WinZip, just in case. ;) -Brian From jh at web.de Thu Mar 7 03:08:05 2002 From: jh at web.de (Juergen Hermann) Date: Thu Mar 7 03:08:05 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: <20020306232417.A4306@dorseys.org> Message-ID: On Wed, 6 Mar 2002 23:24:17 -0800, Brian Dorsey wrote: >On Wed, Mar 06, 2002 at 06:45:24PM -0500, Charles Medcoff wrote: >> Thus far I've only had time to read the IIS section of the document, but >> upgrading does not appear to be addressed. >It isn't yet in the IIS section... I think there is some general info on the wiki... There is, but nothing targeted at the pre-0.11 => 0.11 step. The immediate goal was to replace the old docs to fit the new setup.py scheme. Updating applies equally to all scenarios, I'll provide something. >> One other thing. While this installation works I'm personally not crazy >> about the dir layout. I don't like the idea of mixing the wiki pages data >> inside the moin package folder. I can't give you any specific reasons at >> the moment but it doesn't feel right; perhaps user data should be outside of >> the python path. I wonder if there are issues here in the case of an >> upgrade. I also am not crazy about the idea of having to require two >> virtual directories for one web app. I know that this is required thought >> due to the way the paths are used within the moinmoin code. >I copied the Apache install docs in this regard... it's not actually how I have my own wikis setup... I think the idea is that this makes it easy to add multiple wikis on the same server and they can all share the same /wiki data. There are no practical problems with this since no directories beyond those that get currently created will ever be added by setup.py (there is no conflict). The idea was to keep things as simple and cohesive as possible, and let people that want to deviate do it on their own risk. E.g. it's of course no problem at all to place instances ANYWHERE, but I absolutely want to keep the docs option-free, so as not to confuze beginners. Experts can help themselves. BTW, it's one alias for the app, and one for the instance. Does IIS have an equivalent to Apache ScriptAlias? You do not need to alias the whole instance directory, in theory. >I'll add a note about WinZip, just in case. ;) I might create a windows installer, but those are, AFAIK, no very customizable (else I could create an instance automatically). Super-easy setup for a personal wiki and non-power users have to wait till the stand-alone server runs in an acceptable way. Ciao, J?rgen From jhermann at users.sourceforge.net Thu Mar 7 03:18:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 03:18:03 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.73,1.74 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv4340 Modified Files: CHANGES Log Message: Added Italian Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -r1.73 -r1.74 *** CHANGES 4 Mar 2002 21:56:44 -0000 1.73 --- CHANGES 7 Mar 2002 11:17:23 -0000 1.74 *************** *** 78,82 **** * New languages: Chinese (Changzhe Han) and Portuguese (Jorge Godoy), updated French (Lucas Bruand), added Korean (Hye-Shik ! Chang) * New SystemAdmin macro * `[[Anchor(anchorname)]]` macro to insert anchors into a page, --- 78,82 ---- * New languages: Chinese (Changzhe Han) and Portuguese (Jorge Godoy), updated French (Lucas Bruand), added Korean (Hye-Shik ! Chang) and Italian (Lele Gaifax) * New SystemAdmin macro * `[[Anchor(anchorname)]]` macro to insert anchors into a page, From jhermann at users.sourceforge.net Thu Mar 7 03:18:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 03:18:03 2002 Subject: [Moin-devel] CVS: MoinMoin it.py,NONE,1.1 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv4340/MoinMoin Added Files: it.py Log Message: Added Italian --- NEW FILE: it.py --- # Text translations for it (Italian) # Maintained by: Lele Gaifax # Encoding: iso-8859-1 text = { '''

New Attachment

An upload will never overwrite an existing file. If there is a name conflict, you have to rename the file that you want to upload. Otherwise, if "Rename to" is left blank, the original filename will be used.

''': '''

Nuovo Allegato

Non sarà permessa la sovrascrittura di un file esistente. In caso di conflitto, dovrai cambiare il nome del file che vuoi caricare. Altrimenti, se "Rinomina come" viene lasciato in bianco, verrà usato il nome originale del file.

''', ''' Sent a mail notification to these addresses: %s
Result was: ''': ''' Ho spedito un messaggio di notifica a questi indirizzi: %s
Il risultato è stato: ''', ' (including %(localwords)d %(pagelink)s)': ' (includendo %(localwords)d %(pagelink)s)', ' (spanning %d versions)': ' (in %d Versioni)', ' Create Profile ': ' Crea profilo ', ' Delete ': ' Cancella ', ' Login ': ' Login ', ' Logout ': ' Logout ', ' Mail me my account data ': ' Spediscimi via email i miei dati ', ' Save ': ' Salva ', ' Upload ': ' Carica ', ' by browsing, title search %(titlesearch)s, text search %(textsearch)s or an index
': ' per Titolo %(titlesearch)s, o che contiene il testo %(textsearch)s o consultando un indice
', ' for this page (cached %(date)s)': ' per questa pagina (memorizzata il %(date)s)', ' match': ' corrispondenza', ' matches': ' corrispondenze', ' time': ' volta', ' times': ' volte', '# of hits': '# of pagine trovate', '# of pages of this size': '# di pagine di questa dimensione', '%(changecount)s changes': '%(changecount)s modifiche', '%(chart_title)s for %(filterpage)s': '%(chart_title)s per %(filterpage)s', '%(errortype)s processing error': 'Errore di processo di tipo "%(errortype)s"', '%(hits)d hits out of %(pages)d pages searched.': 'Trovate %(hits)d pagine su %(pages)d consultate.', '%(matchcount)d %(matches)s for "%(title)s"': '%(matchcount)d %(matches)s per "%(title)s"', '("None" for disabling CSS)': '("None" per disabilitare il CSS)', '(currently set to %s)': '(attualmente settato a %s)', '(last modified %s)': "(modificata l'ultima volta il %s)", '(no bookmark set)': '(nessun segnalibro impostato)', '4Suite Version': '4Suite Version ', "Attachment '%(filename)s' does not exist!": "L'allegato '%(filename)s' non esiste!", 'Cookie deleted!': 'Il "Cookie" è stato cancellato!', 'Differences between version dated %s and %s': 'Differenze tra le versioni del %s e del %s', 'Filename of attachment not specified!': "Il nome del file dell'allegato non ` stato specificato!", "Found no account matching the given email address '%(email)s'!": "Non ho trovato nessuna corrispondenza per l'indirizzo email '%(email)s'!", 'NONE': 'NESSUNO', 'No differences found!': 'Non ho riscontrato nessuna differenza!', 'No older revisions available!': 'Non ci sono revisioni precedenti!', 'No spelling errors found!': 'Non sono stati trovati errori di ortografia!', 'Please provide a valid email address!': 'Per favore immetti un indirizzo email valido!', '''Sorry, someone else saved the page while you edited it.

Please do the following: Use the back button of your browser, and cut&paste your changes from there. Then go forward to here, and click EditText again. Now re-add your changes to the current page contents.

Do not just replace the content editbox with your version of the page, because that would delete the changes of the other person, which is excessively rude! ''': """Mi dispiace, ma qualcun altro ha salvato la pagina mentre la stavi modificando tu. Dovresti tornare alla pagina precedende e copiarti il testo che hai inserito, dopodiché tornare qui, premere ModificaIlTesto di nuovo e integrare le tue modifiche nella pagina corrente.

Non limitarti a sostituire il contenuto della pagina con le tue modifiche, perchè in tal modo cancelleresti le modifiche dell'altra persona, che sarebbe eccessivamente sgarbato! """, '''Thank you for your changes. Your attention to detail is appreciated.''': 'Grazie per il tuo contributo.', 'Unsupported upload action: %s': 'Azione di caricamento non supportata: %s', 'User preferences saved!': 'Le preferenze sono state memorizzate!!', 'You are already subscribed to this page.': 'Risulti già iscritto a questa pagina.', 'You are not allowed to delete attachments.': 'Non sei autorizzato a cancellare i file caricati.', 'You are not allowed to upload files.': 'Non sei autorizzato a caricare file.', 'You cannot save empty pages.': 'Non puoi salvare pagine vuote.', 'You cannot use LikePages on an extended pagename!': 'Non puoi utilizzare "PagineSimili" sul nome di pagina esteso!', 'You have been subscribed to this page.': 'Sei stato iscritto a questa pagina.', '''
To unsubscribe, go to your profile and delete this page from the subscription list. ''': '''
Per rimuoverti, vai nel tuo profilo e cancella questa pagina dalla lista delle pagine a cui sei iscritto. ''', '

Bad chart type "%s"!
': '
Tipo di grafico errato "%s"!
', '
Charts are not available!
': '
Grafici non disponibili!
', '
You need to provide a chart type!
': '
Devi specificare un tipo di grafico!
', '

Attached Files

': '

File caricati

', "

Attachment '%(filename)s'

": "

Allegato '%(filename)s'

", '

Edit drawing

': '

Edit drawing

', """
Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; ''mixed '''bold''' and italics''; ---- horizontal rule.
Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
Lists: space and one of * bullets; 1., a., A., i., I. numbered items; 1.#n start numbering at n; space alone indents.
Links: JoinCapitalizedWords; [\"brackets and double quotes\"]; url; [url]; [url label].
Tables: || cell text |||| cell text spanning two columns ||; no trailing white space allowed after tables or titles.

""": """
Enfasi: ''italico''; '''grassetto'''; '''''italico grassetto'''''; ''insieme '''grassetto''' e italico''; ---- linea orizzontale.
Intestazioni: = Titolo 1 =; == Titolo 2 ==; === Titolo 3 ===; ==== Titolo 4 ====; ===== Titolo 5 =====.
Liste: spazio e un carattere \"*\"; 1., a., A., i., I. per elementi numerati; 1.#n inizia la numerazione da \"n\"; spazio da solo indenta.
Collegamenti: ParoleConLettereMaiuscole; [\"parentesi quadre e doppie virgolette\"]; URL; [URL]; [Descrizione URL].
Tabelle: || cella di testo |||| cella su due colonne ||; non sono consentiti spazi dopo la tabella o il titolo.

""", '''

If you submit this form, the submitted values will be displayed. To use this form on other pages, insert a

    [[Form("%(pagename)s")]]

macro call.

''': '''

Se confermi questa maschera, ne verranno visualizzati i dati. Per usare questa maschera su altre pagine, inserisci una chiamata alla macro

    [[Form("%(pagename)s")]]

.

''', "

SHA digest of this page's content is: %(digest)s

": "

SHA digest of this page's content is: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': '''

Per riferirti agli allegati di una pagina, usa attachment:nomefile, come mostrato qui sotto nella lista dei file. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''', '

Unknown file type, cannot display this attachment inline.

': '

Tipo di file sconosciuto, non posso visualizzarlo direttamente nella pagina.

', '[goto %s]': '[vai a %s]', 'Action': 'Azione', 'Add "Open in new window" icon to pretty links': "Aggiungi l'icona \"Apri in nuova finestra\" nei link utili", 'Add checked words to dictionary': 'Aggiungi le parole verificate al dizionario', 'Add spaces to displayed wiki names': 'Aggiungi degli spazi ai nomi wiki visualizzati', 'Additions are marked like this.': 'Le aggiunte sono marcate in questo modo.', 'Alternatively, use one of these templates:': 'In alternativa, puoi utilizzare uno di questi modelli:', "Attachment '%(filename)s' deleted.": "L'allegato '%(filename)s' è stato cancellato.", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": "L'allegato '%(target)s' (name originale '%(filename)s') di %(bytes)d byte è stato memorizzato.", 'Attachments for "%(pagename)s"': 'Allegati per "%(pagename)s"', "Bad timestamp '%s'": "Specifica oraria non valida '%s'", 'CSS URL': 'CSS URL ', "Can't work out query": 'Non riesco a impostare la query di ricerca', 'Cancel': 'Annulla', 'Check Spelling': 'Controlla ortografia', 'Clear message': 'Azzera il messaggio', 'Click here to do a full-text search for this title': 'Clicca qui per effettuare una ricerca per questo titolo', 'Comment': 'Commento', 'Create new drawing "%(filename)s"': 'Create new drawing "%(filename)s"', 'Create this page': 'Crea questa pagina', 'Date': 'Data', 'Date format': 'Formato data', 'Default': 'Default', 'Deletions are marked like this.': 'Le cancellazioni sono marcate in questo modo.', 'Describe %s here.': 'Inserisci una descrizione per %s', 'Diff for "%s"': 'Differenze per "%s"', 'Distribution of User-Agent Types': 'Distribution of User-Agent Types', 'Download XML export of this wiki': 'Scarica una versione XML di questo wiki', "Drawing '%(filename)s' saved.": "Drawing '%(filename)s' saved.", "ERROR in regex '%s'": "Errore nell'espressione regolare '%s'", 'Edit "%(pagename)s"': 'Modifica "%(pagename)s"', 'Edit was cancelled.': 'Le modifiche sono state annullate.', 'EditText': 'ModificaIlTesto', 'Editor': 'Autore', 'Editor size': "Dimensione dell'editor", 'Email': 'Email', 'Entries in edit log': 'Voci nel log delle modifiche', 'Expected "=" to follow "%(token)s"': 'Manca un "=" dopo il testo "%(token)s"', 'Expected a value for key "%(token)s"': 'Manca il valore per la chiave "%(token)s"', 'File "%(filename)s for page "%(pagename)s': 'File "%(filename)s for page "%(pagename)s', 'File to upload': 'File da caricare', 'FindPage': 'CercaPagina', 'Fri': 'Fri', 'Full text search for "%s"': 'Ricerca nel contenuto per "%s"', 'General Information': 'Informazioni generali', 'General options': 'Opzioni generali', 'Global extension actions': 'Azioni estese globali', 'Global extension macros': 'Macro estese globali', 'HelpContents': 'HelpContents', 'Ignore changes in the amount of whitespace': 'Ignora differenze di spaziatura', 'Info for "%s"': 'Informazioni su "%s"', 'Invalid include arguments "%s"!': 'Argomento per "Include" non valido: "%s"!', 'Local Site Map for "%s"': 'Mappa del sito per "%s"', 'Local extension actions': 'Azioni estese locali', 'Local extension macros': 'Macro estese locali', 'LocalSpellingWords': 'ParoleItalianeVerificate', 'MIME Type (optional)': 'MIME Type (opzionale)', 'Mail sent OK': 'Mail spedita correttamente', 'MoinMoin Version': 'MoinMoin Versione ', 'Mon': 'Mon', 'Multiple matches for "%s...%s"': 'Corrispondenze multiple per "%s...%s"', 'N/A': 'N/D', 'Name': 'Nome ', 'Needed %(timer).1f seconds.': 'Mettendoci %(timer).1f secondi.', 'No attachments stored for %(pagename)s': 'Non ci sono documenti allegati alla pagina %(pagename)s', 'No orphaned pages in this wiki.': 'Non ci sono pagine orfane (che non siano collegate da qualche altra pagina) in questo wiki.', 'No pages match "%s"!': 'Nessuna pagina corrisponde a "%s"!', 'No wanted pages in this wiki.': 'Non ci sono pagine "non scritte" in questo wiki.', 'Nobody subscribed to this page, no mail sent.': 'Nessuno risulta iscritto a questa pagina, non spedisco alcuna mail.', 'Number of backup versions': 'Numero di versioni precedenti', 'Number of pages': 'Numero di pagine', 'Open editor on double click': "Con un doppio click, apri l'editor", 'Optional comment about this change': 'Commenti facoltativi sulle modifiche apportate', 'Or try one of these actions: ': 'Oppure prova una di queste azioni: ', 'Others': 'Altre', 'Page "%s" was sucessfully deleted!': 'La pagina "%s" è stata cancellata correttamente!', 'Page Size Distribution': 'Page Size Distribution', 'Page hits and edits': 'Page hits and edits', 'Password': 'Password', 'Plain title index': "Titolo dell'indice", 'Please use the interactive user interface to delete pages!': "Per favore usa l'interfaccia interattiva per cancellare le pagine!", 'Preview': 'Anteprima', 'Preview of "%(pagename)s"': 'Anteprima di "%(pagename)s"', 'Python Version': 'Python Versione ', 'Really delete this page?': 'Vuoi veramente cancellare questa pagina?', 'Redirected from page "%(page)s"': 'Rediretto dalla pagina "%(page)s"', 'Reduce editor size': "Riduci la dimensione dell'editor", 'RefreshCache': 'AggiornaCache', 'Release %s [Revision %s]': 'Versione %s [Revisione %s]', 'Remember last page visited': "Ricorda l'ultima pagina visitata", 'Remove trailing whitespace from each line': 'Rimuovi gli spazi in fondo a ogni riga di testo', 'Rename to (optional)': 'Rinomina come... (opzionale)', 'Revision History': 'Cronologia revisioni', 'Sat': 'Sab', 'Save Changes': 'Salva le modifiche', 'Send mail notification': 'Manda una mail di notifica', 'Server time is': "L'ora del server è", 'Show emoticons': 'Mostra faccine', 'Show fancy diffs': 'Evidenzia le differenze', 'Show fancy links': 'Enfatizza i collegamenti', 'Show icon toolbar': 'Mostra la barra con le icone', 'Show page trail': 'Mostra il pié di pagina', 'Show question mark for non-existing pagelinks': 'Mostra un punto di domanda al posto dei collegamenti non esistenti', 'Show top/bottom links in headings': "Mostra i collegamenti all'inizio e alla fine della pagina nelle intestazioni", 'ShowText': 'MostraTesto', 'Size': 'Dimensione', 'Skip to preview': "Salta all'anteprima", 'Submitted form data:': 'Dati inseriti:', 'Subscribed wiki pages
(one regex per line)': 'Iscritto alle pagine
(una espressione regolare per riga)', 'Sun': 'Dom', 'The backupped content of this page is deprecated and will not be included in search results!': 'La copia di backup di questa pagina è deprecata e pertanto non verrà inclusa nella ricerca!', 'The following %(badwords)d words could not be found in the dictionary of %(totalwords)d words%(localwords)s and are highlighted below:': 'Le seguenti %(badwords)d parole non sono state trovate nel dizionario di %(totalwords)d termini%(localwords)s e sono evidenziate qui sotto:', 'The page was saved %(count)d%(times)s, though!': 'La pagina è stata salvata %(count)d %(times)s, comunque!', 'There are %(count)s attachment(s) stored for this page.': 'Ci sono %(count)s allegati per questa pagina.', 'This list does not work, unless you have entered a valid email address!': 'Questa lista non funziona, assumendo che tu abbia inserito un indirizzo email valido!', 'This page is already deleted or was never created!': 'Questa pagina è già stata cancellata, o non è mai stata creata!', 'This page links to the following pages:
': 'Questa pagina ha collegamenti alle seguenti:
', 'This page redirects to page "%(page)s"': 'Questa pagina è rediretta su "%(page)s"', 'Thu': 'gio', 'Time zone': 'Fuso orario', 'Title search for "%s"': 'Ricerca "%s" nei titoli', 'To create you own templates, add a page with a name ending in Template.': 'Per creare i tuoi modelli, aggiungi una pagina con il nome che termina per "Template".', 'To login on a different machine, use this URL: ': 'Per entrare da una macchina diversa, usa questo URL: ', 'Tue': 'mar', 'Unknown action': 'Azione sconosciuta', 'Update my bookmark timestamp': "Sincronizza l'ora del mio segnalibro", 'Upload new attachment "%(filename)s"': 'Carica nuovo allegato "%(filename)s"', "Upload of attachment '%(filename)s'.": "Carica l'allegato '%(filename)s'.", 'Version as of %(date)s': 'Versione al %(date)s', 'Wed': 'mer', 'XML title index': "Titolo dell'indice XML", 'You are not allowed to delete pages in this wiki!': 'Non sei autorizzato a cancellare pagine in questo wiki!', 'Your email address': 'Tuo indirizzo email', 'Your time is': 'La tua ora locale è', '[%(hours)dh %(mins)dm ago]': '[%(hours)dore %(mins)dmin fa]', '[Content of new page loaded from %s]': '[Contenuto della nuova pagina caricato da %s]', '[New window]': '[Nuova finestra]', '[Template %s not found]': '[Il modello %s non è stato trovato]', 'attachment:%(filename)s of %(pagename)s': 'attachment:%(filename)s of %(pagename)s', 'date': 'data', 'diff': 'diff', '''green=view red=edit''': '''verde=mostra rosso=modifica''', 'of this page': 'di questa pagina', 'page size upper bound [bytes]': 'page size upper bound [bytes]', 'set bookmark': 'imposta segnalibro', 'view': 'mostra', } From jhermann at users.sourceforge.net Thu Mar 7 03:18:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 03:18:03 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n __init__.py,1.20,1.21 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv4340/MoinMoin/i18n Modified Files: __init__.py Log Message: Added Italian Index: __init__.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/__init__.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** __init__.py 13 Feb 2002 21:13:53 -0000 1.20 --- __init__.py 7 Mar 2002 11:17:23 -0000 1.21 *************** *** 27,30 **** --- 27,31 ---- 'fi': ('Suomi', 'iso-8859-1', '***vacant***'), 'fr': ('Fran?ais', 'iso-8859-1', '"Lucas Bruand" '), + 'it': ('Italian', 'iso-8859-1', 'Lele Gaifax '), 'ja': ('Japanese', 'euc-jp', '"Jyunji Kondo" '), 'ko': ('Korean', 'euc-kr', '"Hye-Shik Chang" '), From jhermann at users.sourceforge.net Thu Mar 7 03:42:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 03:42:02 2002 Subject: [Moin-devel] CVS: MoinMoin it.py,1.1,NONE Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv9532 Removed Files: it.py Log Message: Wrong directory --- it.py DELETED --- From jhermann at users.sourceforge.net Thu Mar 7 03:42:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 03:42:03 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n it.py,NONE,1.1 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv9532/i18n Added Files: it.py Log Message: Wrong directory --- NEW FILE: it.py --- # Text translations for it (Italian) # Maintained by: Lele Gaifax # Encoding: iso-8859-1 text = { '''

New Attachment

An upload will never overwrite an existing file. If there is a name conflict, you have to rename the file that you want to upload. Otherwise, if "Rename to" is left blank, the original filename will be used.

''': '''

Nuovo Allegato

Non sarà permessa la sovrascrittura di un file esistente. In caso di conflitto, dovrai cambiare il nome del file che vuoi caricare. Altrimenti, se "Rinomina come" viene lasciato in bianco, verrà usato il nome originale del file.

''', ''' Sent a mail notification to these addresses: %s
Result was: ''': ''' Ho spedito un messaggio di notifica a questi indirizzi: %s
Il risultato è stato: ''', ' (including %(localwords)d %(pagelink)s)': ' (includendo %(localwords)d %(pagelink)s)', ' (spanning %d versions)': ' (in %d Versioni)', ' Create Profile ': ' Crea profilo ', ' Delete ': ' Cancella ', ' Login ': ' Login ', ' Logout ': ' Logout ', ' Mail me my account data ': ' Spediscimi via email i miei dati ', ' Save ': ' Salva ', ' Upload ': ' Carica ', ' by browsing, title search %(titlesearch)s, text search %(textsearch)s or an index
': ' per Titolo %(titlesearch)s, o che contiene il testo %(textsearch)s o consultando un indice
', ' for this page (cached %(date)s)': ' per questa pagina (memorizzata il %(date)s)', ' match': ' corrispondenza', ' matches': ' corrispondenze', ' time': ' volta', ' times': ' volte', '# of hits': '# of pagine trovate', '# of pages of this size': '# di pagine di questa dimensione', '%(changecount)s changes': '%(changecount)s modifiche', '%(chart_title)s for %(filterpage)s': '%(chart_title)s per %(filterpage)s', '%(errortype)s processing error': 'Errore di processo di tipo "%(errortype)s"', '%(hits)d hits out of %(pages)d pages searched.': 'Trovate %(hits)d pagine su %(pages)d consultate.', '%(matchcount)d %(matches)s for "%(title)s"': '%(matchcount)d %(matches)s per "%(title)s"', '("None" for disabling CSS)': '("None" per disabilitare il CSS)', '(currently set to %s)': '(attualmente settato a %s)', '(last modified %s)': "(modificata l'ultima volta il %s)", '(no bookmark set)': '(nessun segnalibro impostato)', '4Suite Version': '4Suite Version ', "Attachment '%(filename)s' does not exist!": "L'allegato '%(filename)s' non esiste!", 'Cookie deleted!': 'Il "Cookie" è stato cancellato!', 'Differences between version dated %s and %s': 'Differenze tra le versioni del %s e del %s', 'Filename of attachment not specified!': "Il nome del file dell'allegato non ` stato specificato!", "Found no account matching the given email address '%(email)s'!": "Non ho trovato nessuna corrispondenza per l'indirizzo email '%(email)s'!", 'NONE': 'NESSUNO', 'No differences found!': 'Non ho riscontrato nessuna differenza!', 'No older revisions available!': 'Non ci sono revisioni precedenti!', 'No spelling errors found!': 'Non sono stati trovati errori di ortografia!', 'Please provide a valid email address!': 'Per favore immetti un indirizzo email valido!', '''Sorry, someone else saved the page while you edited it.

Please do the following: Use the back button of your browser, and cut&paste your changes from there. Then go forward to here, and click EditText again. Now re-add your changes to the current page contents.

Do not just replace the content editbox with your version of the page, because that would delete the changes of the other person, which is excessively rude! ''': """Mi dispiace, ma qualcun altro ha salvato la pagina mentre la stavi modificando tu. Dovresti tornare alla pagina precedende e copiarti il testo che hai inserito, dopodiché tornare qui, premere ModificaIlTesto di nuovo e integrare le tue modifiche nella pagina corrente.

Non limitarti a sostituire il contenuto della pagina con le tue modifiche, perchè in tal modo cancelleresti le modifiche dell'altra persona, che sarebbe eccessivamente sgarbato! """, '''Thank you for your changes. Your attention to detail is appreciated.''': 'Grazie per il tuo contributo.', 'Unsupported upload action: %s': 'Azione di caricamento non supportata: %s', 'User preferences saved!': 'Le preferenze sono state memorizzate!!', 'You are already subscribed to this page.': 'Risulti già iscritto a questa pagina.', 'You are not allowed to delete attachments.': 'Non sei autorizzato a cancellare i file caricati.', 'You are not allowed to upload files.': 'Non sei autorizzato a caricare file.', 'You cannot save empty pages.': 'Non puoi salvare pagine vuote.', 'You cannot use LikePages on an extended pagename!': 'Non puoi utilizzare "PagineSimili" sul nome di pagina esteso!', 'You have been subscribed to this page.': 'Sei stato iscritto a questa pagina.', '''
To unsubscribe, go to your profile and delete this page from the subscription list. ''': '''
Per rimuoverti, vai nel tuo profilo e cancella questa pagina dalla lista delle pagine a cui sei iscritto. ''', '

Bad chart type "%s"!
': '
Tipo di grafico errato "%s"!
', '
Charts are not available!
': '
Grafici non disponibili!
', '
You need to provide a chart type!
': '
Devi specificare un tipo di grafico!
', '

Attached Files

': '

File caricati

', "

Attachment '%(filename)s'

": "

Allegato '%(filename)s'

", '

Edit drawing

': '

Edit drawing

', """
Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; ''mixed '''bold''' and italics''; ---- horizontal rule.
Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
Lists: space and one of * bullets; 1., a., A., i., I. numbered items; 1.#n start numbering at n; space alone indents.
Links: JoinCapitalizedWords; [\"brackets and double quotes\"]; url; [url]; [url label].
Tables: || cell text |||| cell text spanning two columns ||; no trailing white space allowed after tables or titles.

""": """
Enfasi: ''italico''; '''grassetto'''; '''''italico grassetto'''''; ''insieme '''grassetto''' e italico''; ---- linea orizzontale.
Intestazioni: = Titolo 1 =; == Titolo 2 ==; === Titolo 3 ===; ==== Titolo 4 ====; ===== Titolo 5 =====.
Liste: spazio e un carattere \"*\"; 1., a., A., i., I. per elementi numerati; 1.#n inizia la numerazione da \"n\"; spazio da solo indenta.
Collegamenti: ParoleConLettereMaiuscole; [\"parentesi quadre e doppie virgolette\"]; URL; [URL]; [Descrizione URL].
Tabelle: || cella di testo |||| cella su due colonne ||; non sono consentiti spazi dopo la tabella o il titolo.

""", '''

If you submit this form, the submitted values will be displayed. To use this form on other pages, insert a

    [[Form("%(pagename)s")]]

macro call.

''': '''

Se confermi questa maschera, ne verranno visualizzati i dati. Per usare questa maschera su altre pagine, inserisci una chiamata alla macro

    [[Form("%(pagename)s")]]

.

''', "

SHA digest of this page's content is: %(digest)s

": "

SHA digest of this page's content is: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': '''

Per riferirti agli allegati di una pagina, usa attachment:nomefile, come mostrato qui sotto nella lista dei file. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''', '

Unknown file type, cannot display this attachment inline.

': '

Tipo di file sconosciuto, non posso visualizzarlo direttamente nella pagina.

', '[goto %s]': '[vai a %s]', 'Action': 'Azione', 'Add "Open in new window" icon to pretty links': "Aggiungi l'icona \"Apri in nuova finestra\" nei link utili", 'Add checked words to dictionary': 'Aggiungi le parole verificate al dizionario', 'Add spaces to displayed wiki names': 'Aggiungi degli spazi ai nomi wiki visualizzati', 'Additions are marked like this.': 'Le aggiunte sono marcate in questo modo.', 'Alternatively, use one of these templates:': 'In alternativa, puoi utilizzare uno di questi modelli:', "Attachment '%(filename)s' deleted.": "L'allegato '%(filename)s' è stato cancellato.", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": "L'allegato '%(target)s' (name originale '%(filename)s') di %(bytes)d byte è stato memorizzato.", 'Attachments for "%(pagename)s"': 'Allegati per "%(pagename)s"', "Bad timestamp '%s'": "Specifica oraria non valida '%s'", 'CSS URL': 'CSS URL ', "Can't work out query": 'Non riesco a impostare la query di ricerca', 'Cancel': 'Annulla', 'Check Spelling': 'Controlla ortografia', 'Clear message': 'Azzera il messaggio', 'Click here to do a full-text search for this title': 'Clicca qui per effettuare una ricerca per questo titolo', 'Comment': 'Commento', 'Create new drawing "%(filename)s"': 'Create new drawing "%(filename)s"', 'Create this page': 'Crea questa pagina', 'Date': 'Data', 'Date format': 'Formato data', 'Default': 'Default', 'Deletions are marked like this.': 'Le cancellazioni sono marcate in questo modo.', 'Describe %s here.': 'Inserisci una descrizione per %s', 'Diff for "%s"': 'Differenze per "%s"', 'Distribution of User-Agent Types': 'Distribution of User-Agent Types', 'Download XML export of this wiki': 'Scarica una versione XML di questo wiki', "Drawing '%(filename)s' saved.": "Drawing '%(filename)s' saved.", "ERROR in regex '%s'": "Errore nell'espressione regolare '%s'", 'Edit "%(pagename)s"': 'Modifica "%(pagename)s"', 'Edit was cancelled.': 'Le modifiche sono state annullate.', 'EditText': 'ModificaIlTesto', 'Editor': 'Autore', 'Editor size': "Dimensione dell'editor", 'Email': 'Email', 'Entries in edit log': 'Voci nel log delle modifiche', 'Expected "=" to follow "%(token)s"': 'Manca un "=" dopo il testo "%(token)s"', 'Expected a value for key "%(token)s"': 'Manca il valore per la chiave "%(token)s"', 'File "%(filename)s for page "%(pagename)s': 'File "%(filename)s for page "%(pagename)s', 'File to upload': 'File da caricare', 'FindPage': 'CercaPagina', 'Fri': 'Fri', 'Full text search for "%s"': 'Ricerca nel contenuto per "%s"', 'General Information': 'Informazioni generali', 'General options': 'Opzioni generali', 'Global extension actions': 'Azioni estese globali', 'Global extension macros': 'Macro estese globali', 'HelpContents': 'HelpContents', 'Ignore changes in the amount of whitespace': 'Ignora differenze di spaziatura', 'Info for "%s"': 'Informazioni su "%s"', 'Invalid include arguments "%s"!': 'Argomento per "Include" non valido: "%s"!', 'Local Site Map for "%s"': 'Mappa del sito per "%s"', 'Local extension actions': 'Azioni estese locali', 'Local extension macros': 'Macro estese locali', 'LocalSpellingWords': 'ParoleItalianeVerificate', 'MIME Type (optional)': 'MIME Type (opzionale)', 'Mail sent OK': 'Mail spedita correttamente', 'MoinMoin Version': 'MoinMoin Versione ', 'Mon': 'Mon', 'Multiple matches for "%s...%s"': 'Corrispondenze multiple per "%s...%s"', 'N/A': 'N/D', 'Name': 'Nome ', 'Needed %(timer).1f seconds.': 'Mettendoci %(timer).1f secondi.', 'No attachments stored for %(pagename)s': 'Non ci sono documenti allegati alla pagina %(pagename)s', 'No orphaned pages in this wiki.': 'Non ci sono pagine orfane (che non siano collegate da qualche altra pagina) in questo wiki.', 'No pages match "%s"!': 'Nessuna pagina corrisponde a "%s"!', 'No wanted pages in this wiki.': 'Non ci sono pagine "non scritte" in questo wiki.', 'Nobody subscribed to this page, no mail sent.': 'Nessuno risulta iscritto a questa pagina, non spedisco alcuna mail.', 'Number of backup versions': 'Numero di versioni precedenti', 'Number of pages': 'Numero di pagine', 'Open editor on double click': "Con un doppio click, apri l'editor", 'Optional comment about this change': 'Commenti facoltativi sulle modifiche apportate', 'Or try one of these actions: ': 'Oppure prova una di queste azioni: ', 'Others': 'Altre', 'Page "%s" was sucessfully deleted!': 'La pagina "%s" è stata cancellata correttamente!', 'Page Size Distribution': 'Page Size Distribution', 'Page hits and edits': 'Page hits and edits', 'Password': 'Password', 'Plain title index': "Titolo dell'indice", 'Please use the interactive user interface to delete pages!': "Per favore usa l'interfaccia interattiva per cancellare le pagine!", 'Preview': 'Anteprima', 'Preview of "%(pagename)s"': 'Anteprima di "%(pagename)s"', 'Python Version': 'Python Versione ', 'Really delete this page?': 'Vuoi veramente cancellare questa pagina?', 'Redirected from page "%(page)s"': 'Rediretto dalla pagina "%(page)s"', 'Reduce editor size': "Riduci la dimensione dell'editor", 'RefreshCache': 'AggiornaCache', 'Release %s [Revision %s]': 'Versione %s [Revisione %s]', 'Remember last page visited': "Ricorda l'ultima pagina visitata", 'Remove trailing whitespace from each line': 'Rimuovi gli spazi in fondo a ogni riga di testo', 'Rename to (optional)': 'Rinomina come... (opzionale)', 'Revision History': 'Cronologia revisioni', 'Sat': 'Sab', 'Save Changes': 'Salva le modifiche', 'Send mail notification': 'Manda una mail di notifica', 'Server time is': "L'ora del server è", 'Show emoticons': 'Mostra faccine', 'Show fancy diffs': 'Evidenzia le differenze', 'Show fancy links': 'Enfatizza i collegamenti', 'Show icon toolbar': 'Mostra la barra con le icone', 'Show page trail': 'Mostra il pié di pagina', 'Show question mark for non-existing pagelinks': 'Mostra un punto di domanda al posto dei collegamenti non esistenti', 'Show top/bottom links in headings': "Mostra i collegamenti all'inizio e alla fine della pagina nelle intestazioni", 'ShowText': 'MostraTesto', 'Size': 'Dimensione', 'Skip to preview': "Salta all'anteprima", 'Submitted form data:': 'Dati inseriti:', 'Subscribed wiki pages
(one regex per line)': 'Iscritto alle pagine
(una espressione regolare per riga)', 'Sun': 'Dom', 'The backupped content of this page is deprecated and will not be included in search results!': 'La copia di backup di questa pagina è deprecata e pertanto non verrà inclusa nella ricerca!', 'The following %(badwords)d words could not be found in the dictionary of %(totalwords)d words%(localwords)s and are highlighted below:': 'Le seguenti %(badwords)d parole non sono state trovate nel dizionario di %(totalwords)d termini%(localwords)s e sono evidenziate qui sotto:', 'The page was saved %(count)d%(times)s, though!': 'La pagina è stata salvata %(count)d %(times)s, comunque!', 'There are %(count)s attachment(s) stored for this page.': 'Ci sono %(count)s allegati per questa pagina.', 'This list does not work, unless you have entered a valid email address!': 'Questa lista non funziona, assumendo che tu abbia inserito un indirizzo email valido!', 'This page is already deleted or was never created!': 'Questa pagina è già stata cancellata, o non è mai stata creata!', 'This page links to the following pages:
': 'Questa pagina ha collegamenti alle seguenti:
', 'This page redirects to page "%(page)s"': 'Questa pagina è rediretta su "%(page)s"', 'Thu': 'gio', 'Time zone': 'Fuso orario', 'Title search for "%s"': 'Ricerca "%s" nei titoli', 'To create you own templates, add a page with a name ending in Template.': 'Per creare i tuoi modelli, aggiungi una pagina con il nome che termina per "Template".', 'To login on a different machine, use this URL: ': 'Per entrare da una macchina diversa, usa questo URL: ', 'Tue': 'mar', 'Unknown action': 'Azione sconosciuta', 'Update my bookmark timestamp': "Sincronizza l'ora del mio segnalibro", 'Upload new attachment "%(filename)s"': 'Carica nuovo allegato "%(filename)s"', "Upload of attachment '%(filename)s'.": "Carica l'allegato '%(filename)s'.", 'Version as of %(date)s': 'Versione al %(date)s', 'Wed': 'mer', 'XML title index': "Titolo dell'indice XML", 'You are not allowed to delete pages in this wiki!': 'Non sei autorizzato a cancellare pagine in questo wiki!', 'Your email address': 'Tuo indirizzo email', 'Your time is': 'La tua ora locale è', '[%(hours)dh %(mins)dm ago]': '[%(hours)dore %(mins)dmin fa]', '[Content of new page loaded from %s]': '[Contenuto della nuova pagina caricato da %s]', '[New window]': '[Nuova finestra]', '[Template %s not found]': '[Il modello %s non è stato trovato]', 'attachment:%(filename)s of %(pagename)s': 'attachment:%(filename)s of %(pagename)s', 'date': 'data', 'diff': 'diff', '''green=view red=edit''': '''verde=mostra rosso=modifica''', 'of this page': 'di questa pagina', 'page size upper bound [bytes]': 'page size upper bound [bytes]', 'set bookmark': 'imposta segnalibro', 'view': 'mostra', } From noreply at sourceforge.net Thu Mar 7 05:30:04 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Thu Mar 7 05:30:04 2002 Subject: [Moin-devel] [ moin-Patches-525122 ] trace messages i18n/ko.py Message-ID: Patches item #525122, was opened at 2002-03-03 14:18 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=308482&aid=525122&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Submitted By: Hye-Shik Chang (perky) Assigned to: Nobody/Anonymous (nobody) Summary: trace messages i18n/ko.py Initial Comment: additional translations for 0.11 release Since gdchart doesn't support Korean yet, chart message wasn't translated. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=308482&aid=525122&group_id=8482 From noreply at sourceforge.net Thu Mar 7 05:30:05 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Thu Mar 7 05:30:05 2002 Subject: [Moin-devel] [ moin-Bugs-526923 ] RecentChanges does not work on Debian Message-ID: Bugs item #526923, was opened at 2002-03-07 04:40 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=526923&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: RecentChanges does not work on Debian Initial Comment: Check out the attached error message from RecentChanges. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=526923&group_id=8482 From noreply at sourceforge.net Thu Mar 7 05:40:05 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Thu Mar 7 05:40:05 2002 Subject: [Moin-devel] [ moin-Bugs-526923 ] RecentChanges does not work on Debian Message-ID: Bugs item #526923, was opened at 2002-03-07 13:40 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=526923&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Invalid Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: RecentChanges does not work on Debian Initial Comment: Check out the attached error message from RecentChanges. ---------------------------------------------------------------------- >Comment By: J?rgen Hermann (jhermann) Date: 2002-03-07 14:34 Message: Logged In: YES user_id=39128 You did not state any version, but this has been fixed a long time ago. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=526923&group_id=8482 From brian at dorseys.org Thu Mar 7 10:55:29 2002 From: brian at dorseys.org (Brian Dorsey) Date: Thu Mar 7 10:55:29 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: ; from jh@web.de on Thu, Mar 07, 2002 at 12:06:43PM +0100 References: <20020306232417.A4306@dorseys.org> Message-ID: <20020307105551.B4634@dorseys.org> On Thu, Mar 07, 2002 at 12:06:43PM +0100, Juergen Hermann wrote: > >> One other thing. While this installation works I'm personally not crazy > >> about the dir layout. I don't like the idea of mixing the wiki pages data > >> inside the moin package folder. I can't give you any specific reasons at > >> the moment but it doesn't feel right; perhaps user data should be outside > of > >> the python path. I wonder if there are issues here in the case of an > >> upgrade. I also am not crazy about the idea of having to require two > >> virtual directories for one web app. I know that this is required thought > >> due to the way the paths are used within the moinmoin code. > >I copied the Apache install docs in this regard... it's not actually how I > have my own wikis setup... I think the idea is that this makes it easy to add > multiple wikis on the same server and they can all share the same /wiki data. > > There are no practical problems with this since no directories beyond those > that get currently created will ever be added by setup.py (there is no > conflict). The idea was to keep things as simple and cohesive as possible, and > let people that want to deviate do it on their own risk. E.g. it's of course > no problem at all to place instances ANYWHERE, but I absolutely want to keep > the docs option-free, so as not to confuze beginners. Experts can help > themselves. This makes perfect sense to me. I really like the idea of once simeple way to set things up with no options to start. Does that mean if I've muddled through and gotten things working, I'm an expert? :) > > BTW, it's one alias for the app, and one for the instance. Does IIS have an > equivalent to Apache ScriptAlias? You do not need to alias the whole instance > directory, in theory. > > >I'll add a note about WinZip, just in case. ;) > > I might create a windows installer, but those are, AFAIK, no very customizable > (else I could create an instance automatically). > > Super-easy setup for a personal wiki and non-power users have to wait till the > stand-alone server runs in an acceptable way. I'd agree here... rather than spending the time getting a windows installer setup, I'd rather see a stand-alone python only server. Should be fairly straight-forward... do you have plans on how you'd like to implement it? Take care, -Brian From j.her at t-online.de Thu Mar 7 11:07:05 2002 From: j.her at t-online.de (Juergen Hermann) Date: Thu Mar 7 11:07:05 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: <20020307105551.B4634@dorseys.org> Message-ID: <16j3DD-0lNdTcC@fwd09.sul.t-online.com> On Thu, 7 Mar 2002 10:55:51 -0800, Brian Dorsey wrote: >I'd agree here... rather than spending the time getting a windows installer setup, I'd rather see a stand-alone python only server. Should be fairly straight-forward... do you have plans on how you'd like to implement it? With a time-machine, like Guido. It _is_ implemented. ;) Just the core code is not persistency-safe. Ciao, J?rgen From jhermann at users.sourceforge.net Thu Mar 7 11:13:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 11:13:02 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnInstalling_2fInternetInformationServer,1.5,1.6 HilfeAllgemein,1.3,1.4 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv21378 Modified Files: HelpOnInstalling_2fInternetInformationServer HilfeAllgemein Log Message: Update Index: HelpOnInstalling_2fInternetInformationServer =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fInternetInformationServer,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpOnInstalling_2fInternetInformationServer 6 Mar 2002 22:38:40 -0000 1.5 --- HelpOnInstalling_2fInternetInformationServer 7 Mar 2002 19:12:20 -0000 1.6 *************** *** 65,69 **** xcopy share\moin\data mywiki\data /E copy share\moin\cgi-bin mywiki ! copy share\moin\htdocs\index.html mywiki }}} --- 65,69 ---- xcopy share\moin\data mywiki\data /E copy share\moin\cgi-bin mywiki ! copy share\moin\htdocs\index.html mywiki\default.htm }}} *************** *** 89,97 **** Now follow the same steps, but set the alias to "`mywiki`" and the path to "`C:\Moin\mywiki`". - TODO: ''Does it need more permissions?'' Now you need to setup the 'mywiki' alias so that it will run Python to interpret `.cgi` files. Right click on your new 'mywiki' alias and choose ''Properties''. On the first tab (''Virtual Directory''), click the ''Configuration'' button. The first tab is the ''App Mappings'' tab, which defines which programs to use for each file exetension. Click ''Add''. Browse to your `python.exe` (probably something like `c:\pythonXX\python.exe`). Then add {{{-u %s %s}}} after the Python executable path. The ''Executable'' line will look something like this: {{{C:\Python22\python.exe -u %s %s}}}. In the ''Extension'' box enter {{{.cgi}}} with the begining period. Confirm that the ''Check that file exists'' option is not checked (if it is, Moin``Moin won't be able to display sub pages). Ok, you're done with the alias configuration, click ''OK'' several times to get back out of all the dialog boxes. - - TODO: Document directory permissions for IUSR_XXXX gotcha. If you add another wiki instance, you'll only need to setup the reference to its folder, they can safely share the "`wiki`" alias which points to static files only. --- 89,94 ---- Index: HilfeAllgemein =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeAllgemein,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HilfeAllgemein 4 Mar 2002 20:26:56 -0000 1.3 --- HilfeAllgemein 7 Mar 2002 19:12:20 -0000 1.4 *************** *** 9,13 **** '''Inhalt''' [[TableOfContents]] ! == Besondere Features fuer Wiki-Fans und Intranets == Die folgende Anleitung zeigt, wie Sie Ihre Konfiguration optimieren, so dass Sie mehrere Wikis auf einem Rechner laufen lassen oder MoinMoin in einem Intranet einsetzen k?nnen. --- 9,19 ---- '''Inhalt''' [[TableOfContents]] ! == Deutsche Seiten zum Thema Wikis == ! ! Folgende Verweise f?hren zu Seiten, die weitere Informationen zum Thema Wikis in deutscher Sprache enthalten: ! * Wiki:WikiInEinerMinute ! * [wiki:DseWiki:StartSeite DseWiki]: DseWiki:WikiInEinerMinute, DseWiki:WarumWiki, DseWiki:WikiQuizz ! ! == Besondere Features fuer Wiki-Farmen und Intranets == Die folgende Anleitung zeigt, wie Sie Ihre Konfiguration optimieren, so dass Sie mehrere Wikis auf einem Rechner laufen lassen oder MoinMoin in einem Intranet einsetzen k?nnen. From jh at web.de Thu Mar 7 12:25:12 2002 From: jh at web.de (Juergen Hermann) Date: Thu Mar 7 12:25:12 2002 Subject: [Moin-devel] Re: [Moin-user] 0.11 and IIS In-Reply-To: Message-ID: On Thu, 07 Mar 2002 12:06:43 +0100, Juergen Hermann wrote: >There is, but nothing targeted at the pre-0.11 => 0.11 step. http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/HelpOnUpdating now contains upgrading instructions for 0.11, someone check them out please. Ciao, J?rgen From jhermann at users.sourceforge.net Thu Mar 7 12:26:49 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 7 12:26:49 2002 Subject: [Moin-devel] CVS: MoinMoin config.py,1.60,1.61 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv11466/MoinMoin Modified Files: config.py Log Message: Removed old code supporting "front_page"; people have either adapted, or will now adapt Index: config.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/config.py,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -r1.60 -r1.61 *** config.py 6 Mar 2002 22:36:52 -0000 1.60 --- config.py 7 Mar 2002 20:19:35 -0000 1.61 *************** *** 37,45 **** url_prefix = '.' - # 2001-07-03: renamed front_page to page_front_page - if not vars().has_key('page_front_page') and vars().has_key('front_page'): - page_front_page = front_page - del front_page - # default config values cfg_defaults = { --- 37,40 ---- From jhermann at users.sourceforge.net Fri Mar 8 09:27:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 8 09:27:02 2002 Subject: [Moin-devel] CVS: dist/moin.sourceforge.net index.html,1.3,1.4 Message-ID: Update of /cvsroot/moin/dist/moin.sourceforge.net In directory usw-pr-cvs1:/tmp/cvs-serv6701 Modified Files: index.html Log Message: Added keywords Index: index.html =================================================================== RCS file: /cvsroot/moin/dist/moin.sourceforge.net/index.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** index.html 6 Feb 2002 19:46:24 -0000 1.3 --- index.html 8 Mar 2002 17:25:57 -0000 1.4 *************** *** 2,5 **** --- 2,6 ---- MoinMoin Project Homepage + From jhermann at users.sourceforge.net Fri Mar 8 09:31:14 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 8 09:31:14 2002 Subject: [Moin-devel] CVS: dist/moin.sourceforge.net index.html,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/moin.sourceforge.net In directory usw-pr-cvs1:/tmp/cvs-serv8099 Modified Files: index.html Log Message: Removed broken links Index: index.html =================================================================== RCS file: /cvsroot/moin/dist/moin.sourceforge.net/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** index.html 8 Mar 2002 17:25:57 -0000 1.4 --- index.html 8 Mar 2002 17:30:36 -0000 1.5 *************** *** 17,21 **** WikiClone, based on ! PikiPiki. The name MoinMoin is a common German slang expression, "Moin" meaning "Good (Day)", and "MoinMoin" being an emphasis, i.e. "A Very Good Day". --- 17,21 ---- WikiClone, based on ! PikiPiki. The name MoinMoin is a common German slang expression, "Moin" meaning "Good (Day)", and "MoinMoin" being an emphasis, i.e. "A Very Good Day". *************** *** 58,62 ****
Download area
Nightly CVS tarball
-
PikiPiki Homepage
The Original Wiki
--- 452,455 ----

Troubleshooting

!

If you see an error like "ImportError: No module named MoinMoin", it means that python cannot find MoinMoin. See above for how to set your PYTHONPATH or add to sys.path. From jhermann at users.sourceforge.net Mon Mar 11 15:25:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 15:25:02 2002 Subject: [Moin-devel] CVS: MoinMoin version.py,1.151,1.152 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv1663 Modified Files: version.py Log Message: Bumped revision Index: version.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/version.py,v retrieving revision 1.151 retrieving revision 1.152 diff -C2 -r1.151 -r1.152 From jhermann at users.sourceforge.net Mon Mar 11 15:26:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 15:26:04 2002 Subject: [Moin-devel] CVS: MoinMoin version.py,1.152,1.153 wikiaction.py,1.57,1.58 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv1811 Modified Files: version.py wikiaction.py Log Message: Syntax warning with Python 2.2 fixed; bumped release number to 0.12 Index: version.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/version.py,v retrieving revision 1.152 retrieving revision 1.153 diff -C2 -r1.152 -r1.153 *** version.py 11 Mar 2002 23:24:25 -0000 1.152 --- version.py 11 Mar 2002 23:25:48 -0000 1.153 *************** *** 2,6 **** MoinMoin - Version Information ! Copyright (c) 2000 by J?rgen Hermann All rights reserved, see COPYING for details. --- 2,6 ---- MoinMoin - Version Information ! Copyright (c) 2000, 2001, 2002 by J?rgen Hermann All rights reserved, see COPYING for details. *************** *** 10,14 **** project = "MoinMoin" revision = '$Revision$'[11:-2] ! release = '0.11' if __name__ == "__main__": --- 10,14 ---- project = "MoinMoin" revision = '$Revision$'[11:-2] ! release = '0.12' if __name__ == "__main__": Index: wikiaction.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -r1.57 -r1.58 *** wikiaction.py 21 Feb 2002 22:04:04 -0000 1.57 --- wikiaction.py 11 Mar 2002 23:25:48 -0000 1.58 *************** *** 253,257 **** def do_info(pagename, form): ! from stat import * from MoinMoin.stats import hitcounts --- 253,257 ---- def do_info(pagename, form): ! from stat import ST_MTIME, ST_SIZE from MoinMoin.stats import hitcounts From jhermann at users.sourceforge.net Mon Mar 11 15:26:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 15:26:04 2002 Subject: [Moin-devel] CVS: MoinMoin/action SpellCheck.py,1.18,1.19 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv1811/action Modified Files: SpellCheck.py Log Message: Syntax warning with Python 2.2 fixed; bumped release number to 0.12 Index: SpellCheck.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/SpellCheck.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** SpellCheck.py 13 Feb 2002 21:13:52 -0000 1.18 --- SpellCheck.py 11 Mar 2002 23:25:48 -0000 1.19 *************** *** 101,107 **** # get the new words as a string ! from types import * newwords = form['newwords'] ! if type(newwords) is not ListType: newwords = [newwords] newwords = string.join(map(lambda w: w.value, newwords), ' ') --- 101,107 ---- # get the new words as a string ! import types newwords = form['newwords'] ! if type(newwords) is not types.ListType: newwords = [newwords] newwords = string.join(map(lambda w: w.value, newwords), ' ') From jhermann at users.sourceforge.net Mon Mar 11 15:38:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 15:38:03 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.76,1.77 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv4924 Modified Files: CHANGES Log Message: Starting on 0.12... Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -r1.76 -r1.77 *** CHANGES 11 Mar 2002 22:42:17 -0000 1.76 --- CHANGES 11 Mar 2002 23:37:16 -0000 1.77 *************** *** 11,14 **** --- 11,23 ---- ----------------------------------------------------------------------------- + Version 0.12 (2002-04-xx, Revision 1.xxx) + + New features: + * ... + + Bugfixes: + * Syntax warning with Python 2.2 fixed + + ----------------------------------------------------------------------------- Version 0.11 (2002-03-11, Revision 1.151) From jhermann at users.sourceforge.net Mon Mar 11 20:10:01 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 20:10:01 2002 Subject: [Moin-devel] CVS: MoinMoin editlog.py,1.14,1.15 eventlog.py,1.7,1.8 wikimacro.py,1.33,1.34 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv30075 Modified Files: editlog.py eventlog.py wikimacro.py Log Message: Size of editlog; entries & size of event log Index: editlog.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/editlog.py,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** editlog.py 13 Feb 2002 21:13:52 -0000 1.14 --- editlog.py 12 Mar 2002 04:09:00 -0000 1.15 *************** *** 120,128 **** def __init__(self, **kw): self._lines = self._editlog_raw_lines() if not kw.get('reverse', 0): self._lines.reverse() - self._index = 0 - self._usercache = {} # set default member values --- 120,130 ---- def __init__(self, **kw): + self._index = 0 + self._usercache = {} + self._filename = os.path.join(config.data_dir, 'editlog') + self._lines = self._editlog_raw_lines() if not kw.get('reverse', 0): self._lines.reverse() # set default member values *************** *** 211,214 **** --- 213,224 ---- + def size(self): + """ Return size in bytes. + """ + try: + return os.path.getsize(self._filename) + except os.error: + return 0 + def __len__(self): return len(self._lines) *************** *** 225,231 **** def _editlog_raw_lines(self): """ Load a list of raw editlog lines """ - editlog_name = os.path.join(config.data_dir, 'editlog') #!!! self.filename try: ! logfile = open(editlog_name, 'rt') try: # fcntl.flock(logfile.fileno(), fcntl.LOCK_SH) --- 235,240 ---- def _editlog_raw_lines(self): """ Load a list of raw editlog lines """ try: ! logfile = open(self._filename, 'rt') try: # fcntl.flock(logfile.fileno(), fcntl.LOCK_SH) Index: eventlog.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/eventlog.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** eventlog.py 13 Feb 2002 21:13:52 -0000 1.7 --- eventlog.py 12 Mar 2002 04:09:00 -0000 1.8 *************** *** 26,29 **** --- 26,30 ---- def __init__(self): + self._filename = os.path.join(config.data_dir, 'event.log') self._logfile = None self._ua_match = None *************** *** 34,38 **** def _write(self, data): if not self._logfile: ! self._logfile = open(os.path.join(config.data_dir, 'event.log'), 'a') self._logfile.write(data + "\n") self._logfile.flush() --- 35,39 ---- def _write(self, data): if not self._logfile: ! self._logfile = open(self._filename, 'a') self._logfile.write(data + "\n") self._logfile.flush() *************** *** 61,65 **** `filter` -- list of eventtypes to filter for """ ! file = open(os.path.join(config.data_dir, 'event.log'), 'r') events = file.readlines() file.close() --- 62,66 ---- `filter` -- list of eventtypes to filter for """ ! file = open(self._filename, 'r') events = file.readlines() file.close() *************** *** 72,75 **** --- 73,84 ---- return data + + def size(self): + """ Return size in bytes. + """ + try: + return os.path.getsize(self._filename) + except os.error: + return 0 Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -r1.33 -r1.34 *** wikimacro.py 6 Mar 2002 22:36:52 -0000 1.33 --- wikimacro.py 12 Mar 2002 04:09:00 -0000 1.34 *************** *** 206,209 **** --- 206,210 ---- def _macro_SystemInfo(self, args): from cStringIO import StringIO + from MoinMoin import eventlog # check for 4XSLT *************** *** 228,232 **** row(_('Number of pages'), len(wikiutil.getPageList(config.text_dir))) row(_('Number of backup versions'), len(wikiutil.getBackupList(config.backup_dir, None))) ! row(_('Entries in edit log'), len(editlog.EditLog())) row(_('Global extension macros'), string.join(macro.extension_macros, ', ') or _("NONE")) --- 229,237 ---- row(_('Number of pages'), len(wikiutil.getPageList(config.text_dir))) row(_('Number of backup versions'), len(wikiutil.getBackupList(config.backup_dir, None))) ! edlog = editlog.EditLog() ! row(_('Entries in edit log'), _("%(logcount)s (%(logsize)s bytes)") % ! {'logcount': len(edlog), 'logsize': edlog.size()}) ! row(_('Entries in event log'), _("%(logcount)s (%(logsize)s bytes)") % ! {'logcount': len(eventlog.logger.read()), 'logsize': eventlog.logger.size()}) row(_('Global extension macros'), string.join(macro.extension_macros, ', ') or _("NONE")) From jhermann at users.sourceforge.net Mon Mar 11 20:10:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 11 20:10:02 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.69,1.70 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv30075/i18n Modified Files: de.py Log Message: Size of editlog; entries & size of event log Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -r1.69 -r1.70 *** de.py 9 Mar 2002 15:55:22 -0000 1.69 --- de.py 12 Mar 2002 04:09:00 -0000 1.70 *************** *** 86,89 **** --- 86,92 ---- '%(hits)d Treffer in %(pages)d durchsuchten Seiten.', + '%(logcount)s (%(logsize)s bytes)': + '%(logcount)s (%(logsize)s bytes)', + '%(matchcount)d %(matches)s for "%(title)s"': '%(matchcount)d %(matches)s passen zu "%(title)s"', *************** *** 372,375 **** --- 375,381 ---- 'Entries in edit log': 'Eintr?ge in der ?nderungshistorie', + + 'Entries in event log': + 'Eintr?ge im Ereignisprotokoll', 'Expected "=" to follow "%(token)s"': From jhermann at users.sourceforge.net Tue Mar 12 14:28:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 12 14:28:02 2002 Subject: [Moin-devel] CVS: MoinMoin cgimain.py,1.47,1.48 wikiutil.py,1.84,1.85 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv21090 Modified Files: cgimain.py wikiutil.py Log Message: Dynamic handling for frontpage Index: cgimain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/cgimain.py,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -r1.47 -r1.48 *** cgimain.py 11 Mar 2002 21:48:48 -0000 1.47 --- cgimain.py 12 Mar 2002 22:27:35 -0000 1.48 *************** *** 168,172 **** handler = wikiaction.getHandler(action) if handler: ! handler(pagename or config.page_front_page, request.form) else: webapi.http_headers() --- 168,172 ---- handler = wikiaction.getHandler(action) if handler: ! handler(pagename or wikiutil.getSysPage(config.page_front_page).page_name, request.form) else: webapi.http_headers() *************** *** 178,182 **** query = pagename else: ! query = wikiutil.unquoteWikiname(os.environ.get('QUERY_STRING', '')) or config.page_front_page if config.allow_extended_names: --- 178,183 ---- query = pagename else: ! query = wikiutil.unquoteWikiname(os.environ.get('QUERY_STRING', '')) or \ ! wikiutil.getSysPage(config.page_front_page).page_name if config.allow_extended_names: Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -r1.84 -r1.85 *** wikiutil.py 9 Mar 2002 15:55:22 -0000 1.84 --- wikiutil.py 12 Mar 2002 22:27:35 -0000 1.85 *************** *** 405,408 **** --- 405,409 ---- # get name of system pages + page_front_page = getSysPage(config.page_front_page).page_name page_help_contents = getSysPage('HelpContents').page_name page_title_index = getSysPage('TitleIndex').page_name *************** *** 429,433 **** # Links ! print '' % quoteWikiname(config.page_front_page) if keywords.has_key('pagename'): print '' % ( --- 430,434 ---- # Links ! print '' % quoteWikiname(page_front_page) if keywords.has_key('pagename'): print '' % ( *************** *** 463,467 **** if config.logo_string: ! print link_tag(quoteWikiname(config.page_front_page), config.logo_string) print ' ' if keywords.get('link'): --- 464,468 ---- if config.logo_string: ! print link_tag(quoteWikiname(page_front_page), config.logo_string) print ' ' if keywords.get('link'): From jhermann at users.sourceforge.net Tue Mar 12 18:50:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 12 18:50:07 2002 Subject: [Moin-devel] CVS: MoinMoin/parser wiki.py,1.81,1.82 Message-ID: Update of /cvsroot/moin/MoinMoin/parser In directory usw-pr-cvs1:/tmp/cvs-serv4492/parser Modified Files: wiki.py Log Message: Accept normal bangpaths when checking for syntax hilighting Index: wiki.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/parser/wiki.py,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -r1.81 -r1.82 *** wiki.py 20 Feb 2002 19:32:34 -0000 1.81 --- wiki.py 13 Mar 2002 02:49:45 -0000 1.82 *************** *** 795,801 **** # send rest of line through regex machinery line = line[endpos+3:] ! elif string.strip(line) == "#!python": self.in_pre = 2 self.colorize_lines = [] continue else: --- 795,803 ---- # send rest of line through regex machinery line = line[endpos+3:] ! elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0: self.in_pre = 2 self.colorize_lines = [] + if string.strip(line) != "#!python": + self.colorize_lines.append(line) continue else: From jhermann at users.sourceforge.net Tue Mar 12 19:21:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 12 19:21:05 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.106,1.107 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv12931 Modified Files: Page.py Log Message: Bugfix for wrong section numbers when saving Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.106 retrieving revision 1.107 diff -C2 -r1.106 -r1.107 *** Page.py 6 Mar 2002 22:36:52 -0000 1.106 --- Page.py 13 Mar 2002 03:20:10 -0000 1.107 *************** *** 437,440 **** --- 437,441 ---- finally: sys.stdout = stdout + del request._fmt_hd_counters return filter(None, string.split(cache.content(), '\n')) From jhermann at users.sourceforge.net Tue Mar 12 19:22:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 12 19:22:07 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.107,1.108 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv13378 Modified Files: Page.py Log Message: Prevent possible exception Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -r1.107 -r1.108 *** Page.py 13 Mar 2002 03:20:10 -0000 1.107 --- Page.py 13 Mar 2002 03:21:48 -0000 1.108 *************** *** 437,441 **** finally: sys.stdout = stdout ! del request._fmt_hd_counters return filter(None, string.split(cache.content(), '\n')) --- 437,442 ---- finally: sys.stdout = stdout ! if hasattr(request, '_fmt_hd_counters'): ! del request._fmt_hd_counters return filter(None, string.split(cache.content(), '\n')) From jh at web.de Wed Mar 13 11:36:08 2002 From: jh at web.de (Juergen Hermann) Date: Wed Mar 13 11:36:08 2002 Subject: [Moin-devel] Re: [Moin-user] Where are we? Message-ID: On Wed, 13 Mar 2002 10:29:50 -0600, Jeff Kunce wrote: >I have a few MoinMoin modifications that I use locally, and >it is always a struggle to keep them synched with the latest >CVS. Well, if you keep them hidden, the chance is low they get committed. Tell us what you changed, and we can talk about whether the are of general interest, and what we can do to ease to keep the rest up to date. >I had been waiting for the release of 0.11 to launch some >new wikis, because I was looking for a logical pause in the >MoinMoin development. But now 0.11 has been released, and Juergen >is committing new changes faster than ever. Yeah, life is hard on you. :> >Juergen, can you tell us what the big picture is? Is 0.11 a >significant milestone, or just arbitrary "snapshot" release? >Are there major changes coming in the immediate future? Some corner stones: 1. 0.11's major goal was up-to-date and complete docs, at least _mentioning_ each feature. We're there, and it'll stay that way now (no docs, no feature ==> i.e. no more contributions w/o a doc page). 2. 1.0 will be the release that has an automatic way (script, Admin macro) to create and maintain wikis; 1.0 will also be the last 1.5.2 compatible release. 0.12 might be 1.0. 3. 0.12 will get any new features I find interesting, or a contributor finds interesting. See wiki:MoinMoin:MoinMoinTodo/ReleaseV012 and related pages. 4. We have a wealth of nice and useful ideas, and contributions would help to pace ahead. One example is the ComplexSearch macro, which can be done w/o any changes to the core (or minor changes, which I'd do if needed). 5. I need feedback on and help with HelpForDevelopers, i.e. what you'd like to see there, and you can add what you know (especially to "Tour of the most important modules") 6. Really major refactorings, that will be scheduled on available time: a) change the parser/formatter interface so that it can reliably produce well-formed X(HT)ML. b) add some sort of templating / skins c) refactor for persistency (pervasive use & passing around of "request") Ciao, J?rgen From jhermann at users.sourceforge.net Wed Mar 13 12:55:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 12:55:06 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnPageCreation,1.6,1.7 HilfeF_fcrEntwickler,1.1,1.2 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv12947 Modified Files: HelpOnPageCreation HilfeF_fcrEntwickler Log Message: Sync Index: HelpOnPageCreation =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnPageCreation,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** HelpOnPageCreation 4 Mar 2002 20:42:20 -0000 1.6 --- HelpOnPageCreation 13 Mar 2002 20:54:30 -0000 1.7 *************** *** 14,18 **** == Variable Substitution when Saving a Page == ! The following variables are substituted when a page is saved. || @''''''DATE@ || Current date in the system's format || --- 14,18 ---- == Variable Substitution when Saving a Page == ! The following variables are substituted when a page is ''finally'' saved. Note that they'll appear unreplaced in the preview! || @''''''DATE@ || Current date in the system's format || Index: HilfeF_fcrEntwickler =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeF_fcrEntwickler,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** HilfeF_fcrEntwickler 4 Mar 2002 20:26:56 -0000 1.1 --- HilfeF_fcrEntwickler 13 Mar 2002 20:54:30 -0000 1.2 *************** *** 1,4 **** ! ##master-page:HelpForDevelopers ! ##master-date: ! Bis die originale (engl.) Seite vollendet und dann die deutsche ?bersetzung abgeschlossen ist, siehe bitte HelpForDevelopers. --- 1,6 ---- ! ## Diese Seite 1:1 zu ?bersetzen macht keinen Sinn! ! Um an der Entwicklung von MoinMoin teilzuhaben, k?nnen Sie bei wichtigen Arbeiten wie der Pflege der ?bersetzung mithelfen. Bei Interesse k?nnen Sie am besten ?ber die [wiki:MoinMoin:MoinMoinMailingLists Mailinglisten] Kontakt aufnehmen; bitte beachten Sie, da? dort mit R?cksicht auf die Teilnehmer aus aller Welt Englisch gesprochen wird. ! ! Wollen Sie zu der Software selbst beitragen, m?ssen Sie zum einen die Computersprache Python beherrschen, zu anderen die englische Sprache, da jegliche Dokumentation nur in Englisch existiert und auch in Englisch gepflegt werden mu?. ! F?r weitere Informationen f?r Softwareentwickler sei deshalb auf die Seite HelpForDevelopers verwiesen. From jhermann at users.sourceforge.net Wed Mar 13 13:01:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 13:01:06 2002 Subject: [Moin-devel] CVS: MoinMoin/formatter text_xml.py,1.23,1.24 Message-ID: Update of /cvsroot/moin/MoinMoin/formatter In directory usw-pr-cvs1:/tmp/cvs-serv14995/formatter Modified Files: text_xml.py Log Message: Fixed _escape signature Index: text_xml.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_xml.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -r1.23 -r1.24 *** text_xml.py 13 Feb 2002 21:13:53 -0000 1.23 --- text_xml.py 13 Mar 2002 21:00:23 -0000 1.24 *************** *** 37,42 **** self.in_pre = 0 ! def _escape(self, text): ! return saxutils.escape(text, {"'": "'", '"': """}) def startDocument(self, pagename): --- 37,42 ---- self.in_pre = 0 ! def _escape(self, text, extra_mapping={"'": "'", '"': """}): ! return saxutils.escape(text, extra_mapping) def startDocument(self, pagename): From jhermann at users.sourceforge.net Wed Mar 13 14:47:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 14:47:06 2002 Subject: [Moin-devel] CVS: MoinMoin wikiaction.py,1.58,1.59 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv13318 Modified Files: wikiaction.py Log Message: "action=content" for transclusion into static web pages Index: wikiaction.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -r1.58 -r1.59 *** wikiaction.py 11 Mar 2002 23:25:48 -0000 1.58 --- wikiaction.py 13 Mar 2002 22:46:25 -0000 1.59 *************** *** 364,367 **** --- 364,375 ---- + def do_content(pagename, form): + webapi.http_headers() + page = Page(pagename) + print '' % webapi.getQualifiedURL(page.url()) + page.send_page(form, count_hit=0, content_only=1) + sys.exit(0) + + def do_edit(pagename, form): Page(pagename).send_editor(form) From jhermann at users.sourceforge.net Wed Mar 13 14:47:09 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 14:47:09 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.77,1.78 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv13387 Modified Files: CHANGES Log Message: "action=content" for transclusion into static web pages Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -r1.77 -r1.78 *** CHANGES 11 Mar 2002 23:37:16 -0000 1.77 --- CHANGES 13 Mar 2002 22:46:39 -0000 1.78 *************** *** 14,18 **** New features: ! * ... Bugfixes: --- 14,19 ---- New features: ! * "action=content" for transclusion into static web pages; emits the ! pure page content, without any , , or tags Bugfixes: From jhermann at users.sourceforge.net Wed Mar 13 16:01:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 16:01:04 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.85,1.86 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv30559 Modified Files: wikiutil.py Log Message: isStrictWikiname() Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -r1.85 -r1.86 *** wikiutil.py 12 Mar 2002 22:27:35 -0000 1.85 --- wikiutil.py 14 Mar 2002 00:00:28 -0000 1.86 *************** *** 340,343 **** --- 340,348 ---- + def isStrictWikiname(name, word_re=re.compile(r"^(?:[%(u)s][%(l)s]+){2,}$" % {'u':config.upperletters, 'l':config.lowerletters})): + """Check whether this is NOT an extended name""" + return word_re.match(name) + + def isPicture(url): """Check for picture URLs""" From jhermann at users.sourceforge.net Wed Mar 13 16:03:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 16:03:05 2002 Subject: [Moin-devel] CVS: MoinMoin version.py,1.153,1.154 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv31201 Modified Files: version.py Log Message: Bumped revision Index: version.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/version.py,v retrieving revision 1.153 retrieving revision 1.154 diff -C2 -r1.153 -r1.154 From jhermann at users.sourceforge.net Wed Mar 13 16:08:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 13 16:08:02 2002 Subject: [Moin-devel] CVS: MoinMoin/support difflib.py,NONE,1.1 __init__.py,1.3,1.4 Message-ID: Update of /cvsroot/moin/MoinMoin/support In directory usw-pr-cvs1:/tmp/cvs-serv32506 Modified Files: __init__.py Added Files: difflib.py Log Message: Added difflib from Python 2.1 --- NEW FILE: difflib.py --- #! /usr/bin/env python """ Module difflib -- helpers for computing deltas between objects. Function get_close_matches(word, possibilities, n=3, cutoff=0.6): Use SequenceMatcher to return list of the best "good enough" matches. word is a sequence for which close matches are desired (typically a string). possibilities is a list of sequences against which to match word (typically a list of strings). Optional arg n (default 3) is the maximum number of close matches to return. n must be > 0. Optional arg cutoff (default 0.6) is a float in [0, 1]. Possibilities that don't score at least that similar to word are ignored. The best (no more than n) matches among the possibilities are returned in a list, sorted by similarity score, most similar first. >>> get_close_matches("appel", ["ape", "apple", "peach", "puppy"]) ['apple', 'ape'] >>> import keyword >>> get_close_matches("wheel", keyword.kwlist) ['while'] >>> get_close_matches("apple", keyword.kwlist) [] >>> get_close_matches("accept", keyword.kwlist) ['except'] Class SequenceMatcher SequenceMatcher is a flexible class for comparing pairs of sequences of any type, so long as the sequence elements are hashable. The basic algorithm predates, and is a little fancier than, an algorithm published in the late 1980's by Ratcliff and Obershelp under the hyperbolic name "gestalt pattern matching". The basic idea is to find the longest contiguous matching subsequence that contains no "junk" elements (R-O doesn't address junk). The same idea is then applied recursively to the pieces of the sequences to the left and to the right of the matching subsequence. This does not yield minimal edit sequences, but does tend to yield matches that "look right" to people. Example, comparing two strings, and considering blanks to be "junk": >>> s = SequenceMatcher(lambda x: x == " ", ... "private Thread currentThread;", ... "private volatile Thread currentThread;") >>> .ratio() returns a float in [0, 1], measuring the "similarity" of the sequences. As a rule of thumb, a .ratio() value over 0.6 means the sequences are close matches: >>> print round(s.ratio(), 3) 0.866 >>> If you're only interested in where the sequences match, .get_matching_blocks() is handy: >>> for block in s.get_matching_blocks(): ... print "a[%d] and b[%d] match for %d elements" % block a[0] and b[0] match for 8 elements a[8] and b[17] match for 6 elements a[14] and b[23] match for 15 elements a[29] and b[38] match for 0 elements Note that the last tuple returned by .get_matching_blocks() is always a dummy, (len(a), len(b), 0), and this is the only case in which the last tuple element (number of elements matched) is 0. If you want to know how to change the first sequence into the second, use .get_opcodes(): >>> for opcode in s.get_opcodes(): ... print "%6s a[%d:%d] b[%d:%d]" % opcode equal a[0:8] b[0:8] insert a[8:8] b[8:17] equal a[8:14] b[17:23] equal a[14:29] b[23:38] See Tools/scripts/ndiff.py for a fancy human-friendly file differencer, which uses SequenceMatcher both to view files as sequences of lines, and lines as sequences of characters. See also function get_close_matches() in this module, which shows how simple code building on SequenceMatcher can be used to do useful work. Timing: Basic R-O is cubic time worst case and quadratic time expected case. SequenceMatcher is quadratic time for the worst case and has expected-case behavior dependent in a complicated way on how many elements the sequences have in common; best case time is linear. SequenceMatcher methods: __init__(isjunk=None, a='', b='') Construct a SequenceMatcher. Optional arg isjunk is None (the default), or a one-argument function that takes a sequence element and returns true iff the element is junk. None is equivalent to passing "lambda x: 0", i.e. no elements are considered to be junk. For example, pass lambda x: x in " \\t" if you're comparing lines as sequences of characters, and don't want to synch up on blanks or hard tabs. Optional arg a is the first of two sequences to be compared. By default, an empty string. The elements of a must be hashable. Optional arg b is the second of two sequences to be compared. By default, an empty string. The elements of b must be hashable. set_seqs(a, b) Set the two sequences to be compared. >>> s = SequenceMatcher() >>> s.set_seqs("abcd", "bcde") >>> s.ratio() 0.75 set_seq1(a) Set the first sequence to be compared. The second sequence to be compared is not changed. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.set_seq1("bcde") >>> s.ratio() 1.0 >>> SequenceMatcher computes and caches detailed information about the second sequence, so if you want to compare one sequence S against many sequences, use .set_seq2(S) once and call .set_seq1(x) repeatedly for each of the other sequences. See also set_seqs() and set_seq2(). set_seq2(b) Set the second sequence to be compared. The first sequence to be compared is not changed. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.set_seq2("abcd") >>> s.ratio() 1.0 >>> SequenceMatcher computes and caches detailed information about the second sequence, so if you want to compare one sequence S against many sequences, use .set_seq2(S) once and call .set_seq1(x) repeatedly for each of the other sequences. See also set_seqs() and set_seq1(). find_longest_match(alo, ahi, blo, bhi) Find longest matching block in a[alo:ahi] and b[blo:bhi]. If isjunk is not defined: Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where alo <= i <= i+k <= ahi blo <= j <= j+k <= bhi and for all (i',j',k') meeting those conditions, k >= k' i <= i' and if i == i', j <= j' In other words, of all maximal matching blocks, return one that starts earliest in a, and of all those maximal matching blocks that start earliest in a, return the one that starts earliest in b. >>> s = SequenceMatcher(None, " abcd", "abcd abcd") >>> s.find_longest_match(0, 5, 0, 9) (0, 4, 5) If isjunk is defined, first the longest matching block is determined as above, but with the additional restriction that no junk element appears in the block. Then that block is extended as far as possible by matching (only) junk elements on both sides. So the resulting block never matches on junk except as identical junk happens to be adjacent to an "interesting" match. Here's the same example as before, but considering blanks to be junk. That prevents " abcd" from matching the " abcd" at the tail end of the second sequence directly. Instead only the "abcd" can match, and matches the leftmost "abcd" in the second sequence: >>> s = SequenceMatcher(lambda x: x==" ", " abcd", "abcd abcd") >>> s.find_longest_match(0, 5, 0, 9) (1, 0, 4) If no blocks match, return (alo, blo, 0). >>> s = SequenceMatcher(None, "ab", "c") >>> s.find_longest_match(0, 2, 0, 1) (0, 0, 0) get_matching_blocks() Return list of triples describing matching subsequences. Each triple is of the form (i, j, n), and means that a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in i and in j. The last triple is a dummy, (len(a), len(b), 0), and is the only triple with n==0. >>> s = SequenceMatcher(None, "abxcd", "abcd") >>> s.get_matching_blocks() [(0, 0, 2), (3, 2, 2), (5, 4, 0)] get_opcodes() Return list of 5-tuples describing how to turn a into b. Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the tuple preceding it, and likewise for j1 == the previous j2. The tags are strings, with these meanings: 'replace': a[i1:i2] should be replaced by b[j1:j2] 'delete': a[i1:i2] should be deleted. Note that j1==j2 in this case. 'insert': b[j1:j2] should be inserted at a[i1:i1]. Note that i1==i2 in this case. 'equal': a[i1:i2] == b[j1:j2] >>> a = "qabxcd" >>> b = "abycdf" >>> s = SequenceMatcher(None, a, b) >>> for tag, i1, i2, j1, j2 in s.get_opcodes(): ... print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" % ... (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2])) delete a[0:1] (q) b[0:0] () equal a[1:3] (ab) b[0:2] (ab) replace a[3:4] (x) b[2:3] (y) equal a[4:6] (cd) b[3:5] (cd) insert a[6:6] () b[5:6] (f) ratio() Return a measure of the sequences' similarity (float in [0,1]). Where T is the total number of elements in both sequences, and M is the number of matches, this is 2,0*M / T. Note that this is 1 if the sequences are identical, and 0 if they have nothing in common. .ratio() is expensive to compute if you haven't already computed .get_matching_blocks() or .get_opcodes(), in which case you may want to try .quick_ratio() or .real_quick_ratio() first to get an upper bound. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.quick_ratio() 0.75 >>> s.real_quick_ratio() 1.0 quick_ratio() Return an upper bound on .ratio() relatively quickly. This isn't defined beyond that it is an upper bound on .ratio(), and is faster to compute. real_quick_ratio(): Return an upper bound on ratio() very quickly. This isn't defined beyond that it is an upper bound on .ratio(), and is faster to compute than either .ratio() or .quick_ratio(). """ TRACE = 0 class SequenceMatcher: def __init__(self, isjunk=None, a='', b=''): """Construct a SequenceMatcher. Optional arg isjunk is None (the default), or a one-argument function that takes a sequence element and returns true iff the element is junk. None is equivalent to passing "lambda x: 0", i.e. no elements are considered to be junk. For example, pass lambda x: x in " \\t" if you're comparing lines as sequences of characters, and don't want to synch up on blanks or hard tabs. Optional arg a is the first of two sequences to be compared. By default, an empty string. The elements of a must be hashable. See also .set_seqs() and .set_seq1(). Optional arg b is the second of two sequences to be compared. By default, an empty string. The elements of b must be hashable. See also .set_seqs() and .set_seq2(). """ # Members: # a # first sequence # b # second sequence; differences are computed as "what do # we need to do to 'a' to change it into 'b'?" # b2j # for x in b, b2j[x] is a list of the indices (into b) # at which x appears; junk elements do not appear # b2jhas # b2j.has_key # fullbcount # for x in b, fullbcount[x] == the number of times x # appears in b; only materialized if really needed (used # only for computing quick_ratio()) # matching_blocks # a list of (i, j, k) triples, where a[i:i+k] == b[j:j+k]; # ascending & non-overlapping in i and in j; terminated by # a dummy (len(a), len(b), 0) sentinel # opcodes # a list of (tag, i1, i2, j1, j2) tuples, where tag is # one of # 'replace' a[i1:i2] should be replaced by b[j1:j2] # 'delete' a[i1:i2] should be deleted # 'insert' b[j1:j2] should be inserted # 'equal' a[i1:i2] == b[j1:j2] # isjunk # a user-supplied function taking a sequence element and # returning true iff the element is "junk" -- this has # subtle but helpful effects on the algorithm, which I'll # get around to writing up someday <0.9 wink>. # DON'T USE! Only __chain_b uses this. Use isbjunk. # isbjunk # for x in b, isbjunk(x) == isjunk(x) but much faster; # it's really the has_key method of a hidden dict. # DOES NOT WORK for x in a! self.isjunk = isjunk self.a = self.b = None self.set_seqs(a, b) def set_seqs(self, a, b): """Set the two sequences to be compared. >>> s = SequenceMatcher() >>> s.set_seqs("abcd", "bcde") >>> s.ratio() 0.75 """ self.set_seq1(a) self.set_seq2(b) def set_seq1(self, a): """Set the first sequence to be compared. The second sequence to be compared is not changed. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.set_seq1("bcde") >>> s.ratio() 1.0 >>> SequenceMatcher computes and caches detailed information about the second sequence, so if you want to compare one sequence S against many sequences, use .set_seq2(S) once and call .set_seq1(x) repeatedly for each of the other sequences. See also set_seqs() and set_seq2(). """ if a is self.a: return self.a = a self.matching_blocks = self.opcodes = None def set_seq2(self, b): """Set the second sequence to be compared. The first sequence to be compared is not changed. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.set_seq2("abcd") >>> s.ratio() 1.0 >>> SequenceMatcher computes and caches detailed information about the second sequence, so if you want to compare one sequence S against many sequences, use .set_seq2(S) once and call .set_seq1(x) repeatedly for each of the other sequences. See also set_seqs() and set_seq1(). """ if b is self.b: return self.b = b self.matching_blocks = self.opcodes = None self.fullbcount = None self.__chain_b() # For each element x in b, set b2j[x] to a list of the indices in # b where x appears; the indices are in increasing order; note that # the number of times x appears in b is len(b2j[x]) ... # when self.isjunk is defined, junk elements don't show up in this # map at all, which stops the central find_longest_match method # from starting any matching block at a junk element ... # also creates the fast isbjunk function ... # note that this is only called when b changes; so for cross-product # kinds of matches, it's best to call set_seq2 once, then set_seq1 # repeatedly def __chain_b(self): # Because isjunk is a user-defined (not C) function, and we test # for junk a LOT, it's important to minimize the number of calls. # Before the tricks described here, __chain_b was by far the most # time-consuming routine in the whole module! If anyone sees # Jim Roskind, thank him again for profile.py -- I never would # have guessed that. # The first trick is to build b2j ignoring the possibility # of junk. I.e., we don't call isjunk at all yet. Throwing # out the junk later is much cheaper than building b2j "right" # from the start. b = self.b self.b2j = b2j = {} self.b2jhas = b2jhas = b2j.has_key for i in xrange(len(b)): elt = b[i] if b2jhas(elt): b2j[elt].append(i) else: b2j[elt] = [i] # Now b2j.keys() contains elements uniquely, and especially when # the sequence is a string, that's usually a good deal smaller # than len(string). The difference is the number of isjunk calls # saved. isjunk, junkdict = self.isjunk, {} if isjunk: for elt in b2j.keys(): if isjunk(elt): junkdict[elt] = 1 # value irrelevant; it's a set del b2j[elt] # Now for x in b, isjunk(x) == junkdict.has_key(x), but the # latter is much faster. Note too that while there may be a # lot of junk in the sequence, the number of *unique* junk # elements is probably small. So the memory burden of keeping # this dict alive is likely trivial compared to the size of b2j. self.isbjunk = junkdict.has_key def find_longest_match(self, alo, ahi, blo, bhi): """Find longest matching block in a[alo:ahi] and b[blo:bhi]. If isjunk is not defined: Return (i,j,k) such that a[i:i+k] is equal to b[j:j+k], where alo <= i <= i+k <= ahi blo <= j <= j+k <= bhi and for all (i',j',k') meeting those conditions, k >= k' i <= i' and if i == i', j <= j' In other words, of all maximal matching blocks, return one that starts earliest in a, and of all those maximal matching blocks that start earliest in a, return the one that starts earliest in b. >>> s = SequenceMatcher(None, " abcd", "abcd abcd") >>> s.find_longest_match(0, 5, 0, 9) (0, 4, 5) If isjunk is defined, first the longest matching block is determined as above, but with the additional restriction that no junk element appears in the block. Then that block is extended as far as possible by matching (only) junk elements on both sides. So the resulting block never matches on junk except as identical junk happens to be adjacent to an "interesting" match. Here's the same example as before, but considering blanks to be junk. That prevents " abcd" from matching the " abcd" at the tail end of the second sequence directly. Instead only the "abcd" can match, and matches the leftmost "abcd" in the second sequence: >>> s = SequenceMatcher(lambda x: x==" ", " abcd", "abcd abcd") >>> s.find_longest_match(0, 5, 0, 9) (1, 0, 4) If no blocks match, return (alo, blo, 0). >>> s = SequenceMatcher(None, "ab", "c") >>> s.find_longest_match(0, 2, 0, 1) (0, 0, 0) """ # CAUTION: stripping common prefix or suffix would be incorrect. # E.g., # ab # acab # Longest matching block is "ab", but if common prefix is # stripped, it's "a" (tied with "b"). UNIX(tm) diff does so # strip, so ends up claiming that ab is changed to acab by # inserting "ca" in the middle. That's minimal but unintuitive: # "it's obvious" that someone inserted "ac" at the front. # Windiff ends up at the same place as diff, but by pairing up # the unique 'b's and then matching the first two 'a's. a, b, b2j, isbjunk = self.a, self.b, self.b2j, self.isbjunk besti, bestj, bestsize = alo, blo, 0 # find longest junk-free match # during an iteration of the loop, j2len[j] = length of longest # junk-free match ending with a[i-1] and b[j] j2len = {} nothing = [] for i in xrange(alo, ahi): # look at all instances of a[i] in b; note that because # b2j has no junk keys, the loop is skipped if a[i] is junk j2lenget = j2len.get newj2len = {} for j in b2j.get(a[i], nothing): # a[i] matches b[j] if j < blo: continue if j >= bhi: break k = newj2len[j] = j2lenget(j-1, 0) + 1 if k > bestsize: besti, bestj, bestsize = i-k+1, j-k+1, k j2len = newj2len # Now that we have a wholly interesting match (albeit possibly # empty!), we may as well suck up the matching junk on each # side of it too. Can't think of a good reason not to, and it # saves post-processing the (possibly considerable) expense of # figuring out what to do with it. In the case of an empty # interesting match, this is clearly the right thing to do, # because no other kind of match is possible in the regions. while besti > alo and bestj > blo and \ isbjunk(b[bestj-1]) and \ a[besti-1] == b[bestj-1]: besti, bestj, bestsize = besti-1, bestj-1, bestsize+1 while besti+bestsize < ahi and bestj+bestsize < bhi and \ isbjunk(b[bestj+bestsize]) and \ a[besti+bestsize] == b[bestj+bestsize]: bestsize = bestsize + 1 if TRACE: print "get_matching_blocks", alo, ahi, blo, bhi print " returns", besti, bestj, bestsize return besti, bestj, bestsize def get_matching_blocks(self): """Return list of triples describing matching subsequences. Each triple is of the form (i, j, n), and means that a[i:i+n] == b[j:j+n]. The triples are monotonically increasing in i and in j. The last triple is a dummy, (len(a), len(b), 0), and is the only triple with n==0. >>> s = SequenceMatcher(None, "abxcd", "abcd") >>> s.get_matching_blocks() [(0, 0, 2), (3, 2, 2), (5, 4, 0)] """ if self.matching_blocks is not None: return self.matching_blocks self.matching_blocks = [] la, lb = len(self.a), len(self.b) self.__helper(0, la, 0, lb, self.matching_blocks) self.matching_blocks.append( (la, lb, 0) ) if TRACE: print '*** matching blocks', self.matching_blocks return self.matching_blocks # builds list of matching blocks covering a[alo:ahi] and # b[blo:bhi], appending them in increasing order to answer def __helper(self, alo, ahi, blo, bhi, answer): i, j, k = x = self.find_longest_match(alo, ahi, blo, bhi) # a[alo:i] vs b[blo:j] unknown # a[i:i+k] same as b[j:j+k] # a[i+k:ahi] vs b[j+k:bhi] unknown if k: if alo < i and blo < j: self.__helper(alo, i, blo, j, answer) answer.append(x) if i+k < ahi and j+k < bhi: self.__helper(i+k, ahi, j+k, bhi, answer) def get_opcodes(self): """Return list of 5-tuples describing how to turn a into b. Each tuple is of the form (tag, i1, i2, j1, j2). The first tuple has i1 == j1 == 0, and remaining tuples have i1 == the i2 from the tuple preceding it, and likewise for j1 == the previous j2. The tags are strings, with these meanings: 'replace': a[i1:i2] should be replaced by b[j1:j2] 'delete': a[i1:i2] should be deleted. Note that j1==j2 in this case. 'insert': b[j1:j2] should be inserted at a[i1:i1]. Note that i1==i2 in this case. 'equal': a[i1:i2] == b[j1:j2] >>> a = "qabxcd" >>> b = "abycdf" >>> s = SequenceMatcher(None, a, b) >>> for tag, i1, i2, j1, j2 in s.get_opcodes(): ... print ("%7s a[%d:%d] (%s) b[%d:%d] (%s)" % ... (tag, i1, i2, a[i1:i2], j1, j2, b[j1:j2])) delete a[0:1] (q) b[0:0] () equal a[1:3] (ab) b[0:2] (ab) replace a[3:4] (x) b[2:3] (y) equal a[4:6] (cd) b[3:5] (cd) insert a[6:6] () b[5:6] (f) """ if self.opcodes is not None: return self.opcodes i = j = 0 self.opcodes = answer = [] for ai, bj, size in self.get_matching_blocks(): # invariant: we've pumped out correct diffs to change # a[:i] into b[:j], and the next matching block is # a[ai:ai+size] == b[bj:bj+size]. So we need to pump # out a diff to change a[i:ai] into b[j:bj], pump out # the matching block, and move (i,j) beyond the match tag = '' if i < ai and j < bj: tag = 'replace' elif i < ai: tag = 'delete' elif j < bj: tag = 'insert' if tag: answer.append( (tag, i, ai, j, bj) ) i, j = ai+size, bj+size # the list of matching blocks is terminated by a # sentinel with size 0 if size: answer.append( ('equal', ai, i, bj, j) ) return answer def ratio(self): """Return a measure of the sequences' similarity (float in [0,1]). Where T is the total number of elements in both sequences, and M is the number of matches, this is 2,0*M / T. Note that this is 1 if the sequences are identical, and 0 if they have nothing in common. .ratio() is expensive to compute if you haven't already computed .get_matching_blocks() or .get_opcodes(), in which case you may want to try .quick_ratio() or .real_quick_ratio() first to get an upper bound. >>> s = SequenceMatcher(None, "abcd", "bcde") >>> s.ratio() 0.75 >>> s.quick_ratio() 0.75 >>> s.real_quick_ratio() 1.0 """ matches = reduce(lambda sum, triple: sum + triple[-1], self.get_matching_blocks(), 0) return 2.0 * matches / (len(self.a) + len(self.b)) def quick_ratio(self): """Return an upper bound on ratio() relatively quickly. This isn't defined beyond that it is an upper bound on .ratio(), and is faster to compute. """ # viewing a and b as multisets, set matches to the cardinality # of their intersection; this counts the number of matches # without regard to order, so is clearly an upper bound if self.fullbcount is None: self.fullbcount = fullbcount = {} for elt in self.b: fullbcount[elt] = fullbcount.get(elt, 0) + 1 fullbcount = self.fullbcount # avail[x] is the number of times x appears in 'b' less the # number of times we've seen it in 'a' so far ... kinda avail = {} availhas, matches = avail.has_key, 0 for elt in self.a: if availhas(elt): numb = avail[elt] else: numb = fullbcount.get(elt, 0) avail[elt] = numb - 1 if numb > 0: matches = matches + 1 return 2.0 * matches / (len(self.a) + len(self.b)) def real_quick_ratio(self): """Return an upper bound on ratio() very quickly. This isn't defined beyond that it is an upper bound on .ratio(), and is faster to compute than either .ratio() or .quick_ratio(). """ la, lb = len(self.a), len(self.b) # can't have more matches than the number of elements in the # shorter sequence return 2.0 * min(la, lb) / (la + lb) def get_close_matches(word, possibilities, n=3, cutoff=0.6): """Use SequenceMatcher to return list of the best "good enough" matches. word is a sequence for which close matches are desired (typically a string). possibilities is a list of sequences against which to match word (typically a list of strings). Optional arg n (default 3) is the maximum number of close matches to return. n must be > 0. Optional arg cutoff (default 0.6) is a float in [0, 1]. Possibilities that don't score at least that similar to word are ignored. The best (no more than n) matches among the possibilities are returned in a list, sorted by similarity score, most similar first. >>> get_close_matches("appel", ["ape", "apple", "peach", "puppy"]) ['apple', 'ape'] >>> import keyword >>> get_close_matches("wheel", keyword.kwlist) ['while'] >>> get_close_matches("apple", keyword.kwlist) [] >>> get_close_matches("accept", keyword.kwlist) ['except'] """ if not n > 0: raise ValueError("n must be > 0: " + `n`) if not 0.0 <= cutoff <= 1.0: raise ValueError("cutoff must be in [0.0, 1.0]: " + `cutoff`) result = [] s = SequenceMatcher() s.set_seq2(word) for x in possibilities: s.set_seq1(x) if s.real_quick_ratio() >= cutoff and \ s.quick_ratio() >= cutoff and \ s.ratio() >= cutoff: result.append((s.ratio(), x)) # Sort by score. result.sort() # Retain only the best n. result = result[-n:] # Move best-scorer to head of list. result.reverse() # Strip scores. return [x for score, x in result] def _test(): import doctest, difflib return doctest.testmod(difflib) if __name__ == "__main__": _test() Index: __init__.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/support/__init__.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** __init__.py 13 Feb 2002 21:13:55 -0000 1.3 --- __init__.py 14 Mar 2002 00:07:41 -0000 1.4 *************** *** 16,19 **** --- 16,22 ---- Downloaded 2001-05-04 from http://web.lfw.org/python/ + difflib + from the Python 2.1 distribution + $Id$ """ From jh at web.de Thu Mar 14 06:00:09 2002 From: jh at web.de (Juergen Hermann) Date: Thu Mar 14 06:00:09 2002 Subject: [Moin-devel] Re: Patch for l10n of notification In-Reply-To: <15504.32944.614847.400954@paci.nautilus> Message-ID: On Thu, 14 Mar 2002 11:51:28 +0100, Lele Gaifax wrote: [Also added moin-devel, please use the mailing list] >a) I missed the proper way to extract the _('') strings to put in the > master set of messages. Is there an automatic tool? I saw the > _sync.py and _check.py... synch copies from the master set (de.py by default) to all other languages. check checks for untranslated msgs. the master is extended automatically when config.check_i18n is true. Read i18n/__init__.py for details. >b) If exists, maybe it would be nice to change it a little to emit > also the location in the sources where each message is used: this > makes it easier for the translators to find an appropriate national > idiom when "the context matter"... Using gettext.py gives you that for free, and using gettext.py is just a developer time problem. Ciao, J?rgen -- J?rgen Hermann, Developer (jhe at webde-ag.de) WEB.DE AG, http://webde-ag.de/ From jhermann at users.sourceforge.net Thu Mar 14 12:26:42 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 14 12:26:42 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.78,1.79 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv7840 Modified Files: CHANGES Log Message: "Preferred language" setting Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -r1.78 -r1.79 *** CHANGES 13 Mar 2002 22:46:39 -0000 1.78 --- CHANGES 14 Mar 2002 20:12:44 -0000 1.79 *************** *** 16,19 **** --- 16,20 ---- * "action=content" for transclusion into static web pages; emits the pure page content, without any , , or tags + * "Preferred language" user setting Bugfixes: From jhermann at users.sourceforge.net Thu Mar 14 12:26:44 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 14 12:26:44 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n __init__.py,1.21,1.22 de.py,1.70,1.71 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv7840/MoinMoin/i18n Modified Files: __init__.py de.py Log Message: "Preferred language" setting Index: __init__.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/__init__.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** __init__.py 7 Mar 2002 11:17:23 -0000 1.21 --- __init__.py 14 Mar 2002 20:12:44 -0000 1.22 *************** *** 103,107 **** def getLang(): ! """Get a user's language (from CGI environment)""" global _text_lang if _text_lang: return _text_lang --- 103,110 ---- def getLang(): ! """Get a user's language (from preferences or CGI environment)""" ! from MoinMoin import user ! if user.current.language: return user.current.language ! global _text_lang if _text_lang: return _text_lang *************** *** 137,144 **** ! def getText(str): ! """Load a text in the user's language""" # quick handling for english texts - lang = getLang() if lang == "en": return str --- 140,148 ---- ! def getText(str, lang=None): ! """Load a text in the user's language, or the given one""" ! if not lang: lang = getLang() ! # quick handling for english texts if lang == "en": return str Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -r1.70 -r1.71 *** de.py 12 Mar 2002 04:09:00 -0000 1.70 --- de.py 14 Mar 2002 20:12:44 -0000 1.71 *************** *** 520,523 **** --- 520,526 ---- 'Zum L?schen von Seiten bitte nur die vorgesehenen Webseiten benutzen!', + 'Preferred language': + 'Bevorzugte Sprache', + 'Preview': 'Vorschau anzeigen', From jhermann at users.sourceforge.net Thu Mar 14 12:26:48 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 14 12:26:48 2002 Subject: [Moin-devel] CVS: MoinMoin user.py,1.56,1.57 userform.py,1.12,1.13 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv7840/MoinMoin Modified Files: user.py userform.py Log Message: "Preferred language" setting Index: user.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/user.py,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -r1.56 -r1.57 *** user.py 13 Feb 2002 21:13:52 -0000 1.56 --- user.py 14 Mar 2002 20:12:44 -0000 1.57 *************** *** 67,70 **** --- 67,71 ---- self.last_saved = str(time.time()) self.css_url = config.css_url + self.language = "" self.datetime_fmt = "" self.subscribed_pages = "" Index: userform.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/userform.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** userform.py 13 Feb 2002 21:13:52 -0000 1.12 --- userform.py 14 Mar 2002 20:12:44 -0000 1.13 *************** *** 11,15 **** import os, string, time from MoinMoin import config, user, util, webapi ! from MoinMoin.i18n import _ try: --- 11,15 ---- import os, string, time from MoinMoin import config, user, util, webapi ! from MoinMoin.i18n import _, languages try: *************** *** 160,163 **** --- 160,166 ---- theuser.css_url = '' + # try to get the (optional) preferred language + theuser.language = form.getvalue('language', '') + # checkbox options for key, label in user.User._checkbox_fields: *************** *** 215,218 **** --- 218,238 ---- + def _lang_select(theuser): + cur_lang = theuser.valid and theuser.language or '' + langs = languages.items() + langs.append(('', ('<Default>', config.charset, ''))) + langs.sort(lambda x,y: cmp(x[1][0], y[1][0])) + + html = '' + + return html + + def getUserForm(form): # Note that this form is NOT designed for security, just to have a cookie *************** *** 238,241 **** --- 258,264 ---- + %(label_language)s  + %(language_select)s + %(label_general_opts)s  %(checkbox_fields)s *************** *** 260,263 **** --- 283,287 ---- 'label_server_time': _('Server time is'), 'label_date_format': _('Date format'), + 'label_language': _('Preferred language'), 'label_general_opts': _('General options'), } *************** *** 325,328 **** --- 349,353 ---- 'tz_select': _tz_select(user.current), 'dtfmt_select': dtfmt_select, + 'language_select': _lang_select(user.current), 'notify': notify, } From jhermann at users.sourceforge.net Thu Mar 14 13:30:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 14 13:30:10 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text LocalSpellingWords,1.5,1.6 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv27020 Modified Files: LocalSpellingWords Log Message: Added words on help pages Index: LocalSpellingWords =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/LocalSpellingWords,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** LocalSpellingWords 4 Mar 2002 21:06:34 -0000 1.5 --- LocalSpellingWords 14 Mar 2002 21:29:10 -0000 1.6 *************** *** 5,6 **** --- 5,83 ---- markup may moin moinmoin morphed navigational preformatted renumbered shouldn spam uppercase wiki wikis www ?berschneidet ?bersetzen + Administratoren Hauptkopie Hilfeseiten Standardverhalten auch auf benutzt bitte dann das dem der diese diesen durch ein eine einem einer erkl?rt erzeugt finden f?r gehen haben hinzuf?gen ist keine lesen mehr m?ssen neu nur oder wenn werden + + alle arbeiten bei beim beschreiben nicht noch sich sie sind sollen und vorhandene wichtig wie + + Benachrichtigung Seitenvorlagen automatisch dass neue personalisiert zus?tzliche zwei ?ber + + senden + + Architekturen Bluetooth Browsers Dateifreigaben Editierfeld Einzelwort Falschinformation Freiform Fu?bereich Hilfeseite Intranet Klicken Konventionen Kopfbereich Lupen Rechtschreibkorrekturen Schablonen Seitenaufbau Seitentitel Unfug Wildcards alles ausb?geln einen erstellen + + Volltextsuche Zeile Zope alte andere angeboten anstatt da dadurch damit + + dort + + falsch fertig fragen funktioniert ganz ganze gar geben gegen generell generieren gerne hinzu jeder kommen machen meine meist mit notwendig schreiben sicher sobald soll sollte sollten + + ?ndern + + Codebasis Farmen Hilfethemen Konfigurationsvariable Pr?fixen Unterthemen besonders einsetzen folgende gemeinsame hierf?r mehrere optimieren umzuleiten verwendet von weitere zeigt zu zum + + Intranets kann + + Erkundung Hochkommata Kleinbuchstabe Seitenname Seitentitels Standardseite Zeichenkodierungen Zeichens?tzen aktuelle anderer asiatische aus befindet beliebt bilden bis daher daraus dargestellt dar?ber deren dieser editieren eines einfaches erzeugen es f?hrt gemeinschaftliches genau ge?ndert gro? klicken leere lernen nach ohne sein speichern spezielle um unteren verschiedene westliche wird zur?ck ?blicherweise + + einschlie?en fett im jede siehe vertraut vor weiter weiteres + + gef?gte + + Beispielanwendung Druckversion Edititieren Metadaten Navigationshilfen Schnellsuche Seitentexten Seitentiteln Suchseite Teilworte anzuschalten benutzerspezifische bereits einige erm?glicht experimentell insbesondere invertierten klickt originalen r?ckw?rts sowie zus?tzlich zwischen ?bergeordneten + + Benutzerformat Benutzers Editierbereich Hyperlink L?schfunktion Seitenbereichen Systemformat Variablenersetzung Verarbeitungsanweisungen befolgen davon deshalb ersetzt folgenden ihre ihren l?dt normalerweise sehr ?bliche + + Verlinken + + diff gif xml + + angeschaltet optionale + + Abschnitts?berschriften Genaueres Seitenamen Seitenformatierng Smileys Textformatierungen Textformatierungsregeln allgemeine dazu eingebettete einger?ckte experimentieren externe gleichzeitg horizontale neuem sachverwandte unter zusammen + + Trennlinien ?ffne + + Auflisten Benutzereinstellungen Druckansicht Formularfelder Hauptanwendung Lesezeichen Navigationselemente Seiteninhalt Seitennamen Sicherungskopie Suchergebnisse Umbenennen anfangen anzeigen aufrufen benutzerdefinierten gewissen gibt implementiert komplett letzte nachdem nichts physikalisch sende solange speziell sp?ter vom wieder zur zusammenh?ngen + + manuell setzt + + py txt url + + Editierbar Webseite erste gr??te jeglichem platzieren regul?ren standardm??ig steht stellen textuelle un?blich viel viele wiederherstellt zuf?llig zwar ?bergeben ?hnlich ?bernehmen + + Webservers dieses geklickt h?bscher jedes kollaborativ l?schen ob paar richtig schreibe schwieriger selbst treiben triviale tut unsere unterhalb verschiedenste vorhaben welche wichtige wiederherzustellen ziemlich + + allgemeinen definieren dessen einfache einzelne einzur?cken er erstelle existiert folgen gel?schten gestellt hineinstelle hinzuf?ge h?ndisch ich jedem kleine konsistente kursiv k?nnten mittels org w?rde + + Administrieren Diskussionsfaden Dokumentenformate Schablonenseite Speicherort Versionshistorie Webserver Wort?nderungen Zugriffskontrolle administriere darauf eingeben kollaborative mitunter namens wir wo + + Regelm??ige Seitenlayout Zusatzdateien konfigurieren + + Entwicklungsversion Installationsprozeduren Installationsszenarien Installationsvorgang Konfigurationsoptionen Plattformen Wikiadministrator ab ausw?hlen betreiben bevor dabei darin eigenes einrichten empfohlen ihr immer installieren konkrete n?chste n?chsten zun?chst + + Win32 vorgehen + + abgeschlossen deutsche originale vollendet + + Editiere + + Kommandozeile Seitendatei Seitendateien + + Hostsystems + + Diagnosewerkzeug Grundinstallation Hauptgrund Idealerweise Konfigurationsdatei Kurznamen Mindestmenge Problembehandlung Setupverfahren Systemseiten Verfahrensweise Wikinamen Zugriffsrechte best?cken interaktive seitherige standardm??ige standardm??igen umstellen ?hnlichem ?briggebliebene + + cgi funktionsf?hig updaten upgraden + + Wortdatei Wortdateien Wortzahl + + Mailinglisten Softwareentwickler From jhermann at users.sourceforge.net Thu Mar 14 13:31:50 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 14 13:31:50 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpForDevelopers,1.5,1.6 HelpMiscellaneous_2fFrequentlyAskedQuestions,1.2,1.3 HelpOnActions,1.2,1.3 HelpOnUserPreferences,1.1,1.2 HilfeAllgemein,1.4,1.5 HilfeAllgemein_2fFragenUndAntworten,1.3,1.4 HilfeZuBenutzerEinstellungen,1.2,1.3 HilfeZumUpdaten,1.4,1.5 HilfeZurSeitenL_f6schung,1.1,1.2 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv27374 Modified Files: HelpForDevelopers HelpMiscellaneous_2fFrequentlyAskedQuestions HelpOnActions HelpOnUserPreferences HilfeAllgemein HilfeAllgemein_2fFragenUndAntworten HilfeZuBenutzerEinstellungen HilfeZumUpdaten HilfeZurSeitenL_f6schung Log Message: Some new features; some doc fixes Index: HelpForDevelopers =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpForDevelopers,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** HelpForDevelopers 27 Feb 2002 21:09:02 -0000 1.5 --- HelpForDevelopers 14 Mar 2002 21:30:41 -0000 1.6 *************** *** 35,38 **** --- 35,40 ---- * Be portable at all times, at the very least to Win32 and Unix. * Keep the simple nature of page storage, if there are performance issues, add transparent caching / indexing. + * Contributions without accompanying user documentation for the feature are not acceptable. + * Contributions without sufficient docstrings and comments are not acceptable. Sufficient means on the level of the existing code base, i.e. higher than you might be used to. ;) *************** *** 45,48 **** --- 47,60 ---- wikiaction.py:: HelpOnActions lists all the querystrings that are handled by this module. + + == Storage == + + edit log:: ... + event log:: ... + pages:: ... + attachments:: ... + backups:: ... + user data:: ... + caching:: ... == Creating a release == Index: HelpMiscellaneous_2fFrequentlyAskedQuestions =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpMiscellaneous_2fFrequentlyAskedQuestions,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpMiscellaneous_2fFrequentlyAskedQuestions 4 Mar 2002 20:42:20 -0000 1.2 --- HelpMiscellaneous_2fFrequentlyAskedQuestions 14 Mar 2002 21:30:41 -0000 1.3 *************** *** 93,97 **** of all pages by title. * Click on WordIndex. This shows an alphabetized list of every ! word in every title (ie, the Bluetooth page is under, B, Bluetooth). * Click on {{{LikePages}}} at the bottom of the page. This shows pages that have words in their titles that are similar to the current page. --- 93,97 ---- of all pages by title. * Click on WordIndex. This shows an alphabetized list of every ! word in every title (i.e. a page named Blue``Tooth is listed under B / Blue as well as T / Tooth). * Click on {{{LikePages}}} at the bottom of the page. This shows pages that have words in their titles that are similar to the current page. Index: HelpOnActions =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnActions,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnActions 20 Feb 2002 00:32:37 -0000 1.2 --- HelpOnActions 14 Mar 2002 21:30:41 -0000 1.3 *************** *** 16,20 **** * fullsearch: this action is triggered by clicking on the "Go" button of the `FullSearch` macro (Self:?action=fullsearch&value=HelpOnActions). * titlesearch: this action is triggered by clicking on the "Go" button of the `TitleSearch` macro (Self:?action=titlesearch&value=HelpOnActions). ! * inlinesearch: this implements the inline search for the form fields at the bottom of each page (note that this uses POST requests, so you won't normally see this action in URLs). * highlight: highlight the search word when you click on a link in a search result list. * diff: display differences between page revisions. --- 16,20 ---- * fullsearch: this action is triggered by clicking on the "Go" button of the `FullSearch` macro (Self:?action=fullsearch&value=HelpOnActions). * titlesearch: this action is triggered by clicking on the "Go" button of the `TitleSearch` macro (Self:?action=titlesearch&value=HelpOnActions). ! * inlinesearch: this implements the inline search for the form fields at the bottom of each page (note that this uses POST requests, so you won't normally see this action in URLs). ''[0.11]'' * highlight: highlight the search word when you click on a link in a search result list. * diff: display differences between page revisions. *************** *** 26,37 **** * edit: edit this page. * savepage: save this page (do not ever use this manually). ! * subscribe: subscribe to a page. * userform: save user preferences. * bookmark: set bookmark for RecentChanges. ! * formtest: used for development. * raw: send the raw wiki markup as text/plain (e.g. for backup purposes via wget); Self:SystemInfo?action=raw shows the markup of SystemInfo. * format: emit specially formatted views of a page. ! * rss_rc: generate a RSS feed of RecentChanges. ! * chart: display charts. ! * dumpform: used for development. ! * export: export the wiki content (experimental). --- 26,38 ---- * edit: edit this page. * savepage: save this page (do not ever use this manually). ! * subscribe: subscribe to a page. ''[0.11]'' * userform: save user preferences. * bookmark: set bookmark for RecentChanges. ! * formtest: used for development. ''[0.11]'' * raw: send the raw wiki markup as text/plain (e.g. for backup purposes via wget); Self:SystemInfo?action=raw shows the markup of SystemInfo. * format: emit specially formatted views of a page. ! * rss_rc: generate a RSS feed of RecentChanges. ''[0.11]'' ! * chart: display charts. ''[0.11]'' ! * dumpform: used for development. ''[0.11]'' ! * export: export the wiki content. ''[experimental]'' ! * content: for transclusion into static web pages, this action emits the pure page content, without any , , or tags. ''[0.12]'' Index: HelpOnUserPreferences =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnUserPreferences,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** HelpOnUserPreferences 20 Feb 2002 20:57:58 -0000 1.1 --- HelpOnUserPreferences 14 Mar 2002 21:30:41 -0000 1.2 *************** *** 10,13 **** --- 10,14 ---- * '''[[GetText(Server time is)]]''': ... * '''[[GetText(Date format)]]''': ... + * '''[[GetText(Preferred language)]]''': ... * '''[[GetText(General options)]]''': ... * ''[[GetText(Open editor on double click)]]'': ... Index: HilfeAllgemein =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeAllgemein,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HilfeAllgemein 7 Mar 2002 19:12:20 -0000 1.4 --- HilfeAllgemein 14 Mar 2002 21:30:41 -0000 1.5 *************** *** 15,19 **** * [wiki:DseWiki:StartSeite DseWiki]: DseWiki:WikiInEinerMinute, DseWiki:WarumWiki, DseWiki:WikiQuizz ! == Besondere Features fuer Wiki-Farmen und Intranets == Die folgende Anleitung zeigt, wie Sie Ihre Konfiguration optimieren, so dass Sie mehrere Wikis auf einem Rechner laufen lassen oder MoinMoin in einem Intranet einsetzen k?nnen. --- 15,19 ---- * [wiki:DseWiki:StartSeite DseWiki]: DseWiki:WikiInEinerMinute, DseWiki:WarumWiki, DseWiki:WikiQuizz ! == Besondere Features f?r Wiki-Farmen und Intranets == Die folgende Anleitung zeigt, wie Sie Ihre Konfiguration optimieren, so dass Sie mehrere Wikis auf einem Rechner laufen lassen oder MoinMoin in einem Intranet einsetzen k?nnen. Index: HilfeAllgemein_2fFragenUndAntworten =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeAllgemein_2fFragenUndAntworten,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HilfeAllgemein_2fFragenUndAntworten 4 Mar 2002 20:26:56 -0000 1.3 --- HilfeAllgemein_2fFragenUndAntworten 14 Mar 2002 21:30:41 -0000 1.4 *************** *** 46,52 **** Mit absichtlicher St?rung der Daten im Wiki ist etwas schwieriger fertig zu werden. Es ist m?glich, dass jemand Falschinformation in eine Seite eingibt, oder Seiten derart editiert, dass sie Falschinformation enthalten (zum Beispiel kann man eine Seite editieren, und einen Kommentar so aussehen lassen, als ob jemand anders diesen Kommentar abgegeben h?tte; oder jemand k?nnte den Inhalt eines Absatzes so ?ndern, dass die Aussage eine ganz andere ist, als die vom Autor beabsichtigte). So ziemlich jedes kollaborative System hat dieses Problem. In einem Wiki kann es nur einfacher ausgen?tzt werden, weil es in einem Wiki ?berhaupt keine Sicherheit gibt. In der Praxis ist die Zerst?rung eines Wikis ein sehr seltenes Ereignis, und eines, das man sehr schnell und einfach wieder ausb?geln kann, und zwar mittels der sogenannten "Notification", einem Hinweis, der einem festgelegten Auditor geschickt wird, sobald sich etwas auf einer Seite ?ndert. ! In anderen Worten, es ist die Philosophie eines Wikis, dass man h?ndisch mit (selten auftretenden) Problemen fertig wird, anstatt mehr Features und Aufwand (in der Implementierung und der Benutzung gleichermaszen) in das Wiki aufzunehmen, um Schaden durch einen Saboteur zu verhindern. ! == Fragen ?ber die Benutzung von diesem Wiki == === Finden von und Zugreifen auf Informationen im Wiki === ==== Wie kann ich das Wiki durchsuchen? ==== --- 46,52 ---- Mit absichtlicher St?rung der Daten im Wiki ist etwas schwieriger fertig zu werden. Es ist m?glich, dass jemand Falschinformation in eine Seite eingibt, oder Seiten derart editiert, dass sie Falschinformation enthalten (zum Beispiel kann man eine Seite editieren, und einen Kommentar so aussehen lassen, als ob jemand anders diesen Kommentar abgegeben h?tte; oder jemand k?nnte den Inhalt eines Absatzes so ?ndern, dass die Aussage eine ganz andere ist, als die vom Autor beabsichtigte). So ziemlich jedes kollaborative System hat dieses Problem. In einem Wiki kann es nur einfacher ausgen?tzt werden, weil es in einem Wiki ?berhaupt keine Sicherheit gibt. In der Praxis ist die Zerst?rung eines Wikis ein sehr seltenes Ereignis, und eines, das man sehr schnell und einfach wieder ausb?geln kann, und zwar mittels der sogenannten "Notification", einem Hinweis, der einem festgelegten Auditor geschickt wird, sobald sich etwas auf einer Seite ?ndert. ! In anderen Worten, es ist die Philosophie eines Wikis, dass man h?ndisch mit (selten auftretenden) Problemen fertig wird, anstatt mehr Features und Aufwand (in der Implementierung und der Benutzung gleicherma?en) in das Wiki aufzunehmen, um Schaden durch einen Saboteur zu verhindern. ! == Fragen zur Benutzung dieses Wikis == === Finden von und Zugreifen auf Informationen im Wiki === ==== Wie kann ich das Wiki durchsuchen? ==== Index: HilfeZuBenutzerEinstellungen =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeZuBenutzerEinstellungen,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HilfeZuBenutzerEinstellungen 4 Mar 2002 20:26:56 -0000 1.2 --- HilfeZuBenutzerEinstellungen 14 Mar 2002 21:30:41 -0000 1.3 *************** *** 24,26 **** * ''[[GetText(Add "Open in new window" icon to pretty links)]]'': ... * ''[[GetText(Add spaces to displayed wiki names)]]'': ... ! * ''Subscribed wiki pages'': dies ist ein optionale Einstellung, die nur funktioniert, wenn die Email-Unterst?tzung f?r Ihr Wiki angeschaltet ist, zu den Details siehe HilfeZurKonfiguration/EmailUnterst?tzung --- 24,26 ---- * ''[[GetText(Add "Open in new window" icon to pretty links)]]'': ... * ''[[GetText(Add spaces to displayed wiki names)]]'': ... ! * ''Abonnierte Wiki-Seiten'': dies ist ein optionale Einstellung, die nur funktioniert, wenn die Email-Unterst?tzung f?r Ihr Wiki angeschaltet ist, zu den Details siehe HilfeZurKonfiguration/EmailUnterst?tzung Index: HilfeZumUpdaten =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeZumUpdaten,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HilfeZumUpdaten 11 Mar 2002 22:36:44 -0000 1.4 --- HilfeZumUpdaten 14 Mar 2002 21:30:41 -0000 1.5 *************** *** 44,48 **** === Version 0.11 === ! (!) Es wird bestens empfohlen, dass Sie jede Installation vor 0.11 auf die neue ''distutils''-Methode umstellen, was Ihnen zuk?ntige Upgrades stark vereinfachen wird. Sie sollten der Anleitung auf HilfeZurInstallation folgen bez?glich der Grundinstallation, bis Sie zu dem Punkt "Erzeugen einer Wiki-Instanz"-Schritt kommen. Dann haben Sie zwei M?glichkeiten: --- 44,48 ---- === Version 0.11 === ! (!) Es wird bestens empfohlen, dass Sie jede Installation vor 0.11 auf die neue ''distutils''-Methode umstellen, was Ihnen zuk?nftige Upgrades stark vereinfachen wird. Sie sollten der Anleitung auf HilfeZurInstallation folgen bez?glich der Grundinstallation, bis Sie zu dem Punkt "Erzeugen einer Wiki-Instanz"-Schritt kommen. Dann haben Sie zwei M?glichkeiten: Index: HilfeZurSeitenL_f6schung =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeZurSeitenL_f6schung,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** HilfeZurSeitenL_f6schung 20 Feb 2002 00:57:23 -0000 1.1 --- HilfeZurSeitenL_f6schung 14 Mar 2002 21:30:41 -0000 1.2 *************** *** 4,13 **** == Wie man Seiten l?scht == ! Der normale Weg, eine Seite zu l?schen ist ?ber die Kommandozeile des Hostsystems. Die Seitendateien befinden sich im Verzeichnis "data/text" und man kann sie dort einfach l?schen. ! Man kann Seiten auch mit der {{{DeletePage}}}-Aktion l?schen, insofern dies aktiviert ist (siehe HilfeZurKonfiguration und HilfeAllgemein/FragenUndAntworten). Beachten Sie, dass das L?schen einer Seite hier bedeutet, dass eine Sicherungskopie der Seite erstellt wird und danach die Seitendatei gel?scht wird. Dies entspricht also fast dem Speichern einer leeren Seite (was aber auf dem System nicht erlaubt ist). ! Dies bedeutet, dass Sie selbst an gel?schte Seiten ?ber Standard-Mechanismen wieder herankommen k?nnen, siehe auch den Eintrag "Can I restore a page from an older version?" auf der Seite HelpMiscellaneous/FrequentlyAskedQuestions. Insbesondere kann man auch den Seitennamen im `GoTo`-Dialog eingeben, sieht dann den ?blichen Seitenerzeugungs-Dialog, kann dort dann aber auf `PageInfo` klicken und erh?lt dann die alte Versions-Historie, es sei denn "the page was purged out of existence inbetween". ! ! ---- ! J?rgen: Wie ist denn das Ende des letzten Satzes oben gemeint? Sind damit ALLE Backup-Kopien gemeint oder wie? -- ThomasWaldmann [[DateTime(2002-02-12T09:04:07)]] --- 4,10 ---- == Wie man Seiten l?scht == ! Der immer funktionierende Weg, eine Seite zu l?schen, ist ?ber die Kommandozeile des Hostsystems. Die Seitendateien befinden sich im Verzeichnis "data/text" und der Administrator kann sie dort einfach l?schen. ! Normale Anwender k?nnen Seiten mit der {{{DeletePage}}}-Aktion l?schen, insofern dies aktiviert ist (siehe HilfeZurKonfiguration und HilfeAllgemein/FragenUndAntworten). Beachten Sie, dass das L?schen einer Seite hier bedeutet, dass eine Sicherungskopie der Seite erstellt wird und danach die Seitendatei gel?scht wird. Dies entspricht also fast dem Speichern einer leeren Seite (was aber auf dem System nicht erlaubt ist). ! Dies bedeutet, dass Sie selbst an gel?schte Seiten ?ber Standard-Mechanismen wieder herankommen k?nnen, siehe auch den Eintrag "Can I restore a page from an older version?" auf der Seite HelpMiscellaneous/FrequentlyAskedQuestions. Insbesondere kann man auch den Seitennamen im `GoTo`-Dialog eingeben, sieht dann den ?blichen Seitenerzeugungs-Dialog, kann dort dann aber auf `PageInfo` klicken und erh?lt dann die Versions-Historie der nur ''scheinbar'' gel?schten Seite, es sei denn, der Administrator hat inzwischen die Sicherungskopien gel?scht. From jhermann at users.sourceforge.net Fri Mar 15 14:02:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:02:10 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.79,1.80 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv28915 Modified Files: CHANGES Log Message: Quick links Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.79 retrieving revision 1.80 diff -C2 -r1.79 -r1.80 *** CHANGES 14 Mar 2002 20:12:44 -0000 1.79 --- CHANGES 15 Mar 2002 22:01:26 -0000 1.80 *************** *** 16,20 **** * "action=content" for transclusion into static web pages; emits the pure page content, without any , , or tags ! * "Preferred language" user setting Bugfixes: --- 16,20 ---- * "action=content" for transclusion into static web pages; emits the pure page content, without any , , or tags ! * "Preferred language" and "Quick links" user settings Bugfixes: From jhermann at users.sourceforge.net Fri Mar 15 14:02:10 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:02:10 2002 Subject: [Moin-devel] CVS: MoinMoin user.py,1.57,1.58 userform.py,1.13,1.14 wikiutil.py,1.86,1.87 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv28915/MoinMoin Modified Files: user.py userform.py wikiutil.py Log Message: Quick links Index: user.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/user.py,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -r1.57 -r1.58 *** user.py 14 Mar 2002 20:12:44 -0000 1.57 --- user.py 15 Mar 2002 22:01:26 -0000 1.58 *************** *** 68,71 **** --- 68,72 ---- self.css_url = config.css_url self.language = "" + self.quicklinks = "" self.datetime_fmt = "" self.subscribed_pages = "" *************** *** 249,252 **** --- 250,266 ---- return None return None + + + def getQuickLinks(self): + """ Get list of pages this user wants in the page header. + """ + if not self.quicklinks: return [] + + from MoinMoin import wikiutil + quicklinks = string.split(self.quicklinks, ',') + quicklinks = map(string.strip, quicklinks) + quicklinks = filter(None, quicklinks) + quicklinks = map(wikiutil.unquoteWikiname, quicklinks) + return quicklinks Index: userform.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/userform.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** userform.py 14 Mar 2002 20:12:44 -0000 1.13 --- userform.py 15 Mar 2002 22:01:26 -0000 1.14 *************** *** 10,14 **** # Imports import os, string, time ! from MoinMoin import config, user, util, webapi from MoinMoin.i18n import _, languages --- 10,14 ---- # Imports import os, string, time ! from MoinMoin import config, user, util, webapi, wikiutil from MoinMoin.i18n import _, languages *************** *** 173,176 **** --- 173,190 ---- setattr(theuser, key, value) + # quicklinks for header + try: + quicklinks = form['quicklinks'].value + quicklinks = string.replace(quicklinks, '\r', '') + quicklinks = string.split(quicklinks, '\n') + quicklinks = map(string.strip, quicklinks) + quicklinks = filter(None, quicklinks) + quicklinks = map(wikiutil.quoteWikiname, quicklinks) + theuser.quicklinks = string.join(quicklinks, ',') + except KeyError: + theuser.quicklinks = '' + except ValueError: + pass + # subscription for page change notification try: *************** *** 264,267 **** --- 278,284 ---- %(checkbox_fields)s + %(label_quicklinks)s  + + %(notify)s *************** *** 284,287 **** --- 301,305 ---- 'label_date_format': _('Date format'), 'label_language': _('Preferred language'), + 'label_quicklinks': _('Quick links'), 'label_general_opts': _('General options'), } *************** *** 333,337 **** %(label_notification)s  ! %(warning)s """ % { 'label_notification': _('Subscribed wiki pages
(one regex per line)'), --- 351,355 ---- %(label_notification)s  ! %(warning)s """ % { 'label_notification': _('Subscribed wiki pages
(one regex per line)'), *************** *** 351,354 **** --- 369,373 ---- 'language_select': _lang_select(user.current), 'notify': notify, + 'quicklinklist': string.join(user.current.getQuickLinks(), '\n'), } Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -r1.86 -r1.87 *** wikiutil.py 14 Mar 2002 00:00:28 -0000 1.86 --- wikiutil.py 15 Mar 2002 22:01:26 -0000 1.87 *************** *** 14,17 **** --- 14,36 ---- + # list of pages that should be trated as system pages + SYSTEM_PAGES = [ + config.page_front_page, + 'RecentChanges', + 'TitleIndex', + 'WordIndex', + 'SiteNavigation', + 'HelpContents', + 'UserPreferences', + 'HelpOnFormatting', + 'FindPage', + 'AbandonedPages', + 'OrphanedPages', + 'PageSize', + 'RandomPage', + 'WantedPages', + ] + + ############################################################################# ### Smileys *************** *** 518,523 **** '
') % {'sitename': config.sitename,} ! for pagename in config.navi_bar: ! pagename = getSysPage(pagename).page_name print ( '' --- 537,546 ---- '
') % {'sitename': config.sitename,} ! quicklinks = user.current.getQuickLinks() ! if not quicklinks: ! for pagename in config.navi_bar: ! quicklinks.append(getSysPage(pagename).page_name) ! ! for pagename in quicklinks: print ( '' From jhermann at users.sourceforge.net Fri Mar 15 14:02:11 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:02:11 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.71,1.72 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv28915/MoinMoin/i18n Modified Files: de.py Log Message: Quick links Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -r1.71 -r1.72 *** de.py 14 Mar 2002 20:12:44 -0000 1.71 --- de.py 15 Mar 2002 22:01:26 -0000 1.72 *************** *** 532,535 **** --- 532,538 ---- 'Python Version ', + 'Quick links': + 'Expressverweise', + 'Really delete this page?': 'Diese Seite wirklich l?schen?', From jhermann at users.sourceforge.net Fri Mar 15 14:18:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:18:04 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnConfiguration_2fEmailSupport,1.2,1.3 HelpOnInstalling_2fApacheOnUnix,1.8,1.9 HilfeAllgemein_2fFragenUndAntworten,1.4,1.5 HilfeZurInstallation_2fApacheAufUnix,1.2,1.3 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv890 Modified Files: HelpOnConfiguration_2fEmailSupport HelpOnInstalling_2fApacheOnUnix HilfeAllgemein_2fFragenUndAntworten HilfeZurInstallation_2fApacheAufUnix Log Message: Sync Index: HelpOnConfiguration_2fEmailSupport =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnConfiguration_2fEmailSupport,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HelpOnConfiguration_2fEmailSupport 22 Feb 2002 20:28:56 -0000 1.2 --- HelpOnConfiguration_2fEmailSupport 15 Mar 2002 22:17:51 -0000 1.3 *************** *** 14,18 **** === Sending Login Data === ! If emailing is available, the UserPreferences dialog is expanded with a field "[[GetText(Your email address)]`]" and a button "[[GetText( Mail me my account data )]]". The user can enter the email address he provided at registration and then gets an email containing all necessary data to re-login, after clicking the button. === Change Notification === --- 14,18 ---- === Sending Login Data === ! If emailing is available, the UserPreferences dialog is expanded with a field "[[GetText(Your email address)]]" and a button "[[GetText( Mail me my account data )]]". The user can enter the email address he provided at registration and then gets an email containing all necessary data to re-login, after clicking the button. === Change Notification === Index: HelpOnInstalling_2fApacheOnUnix =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fApacheOnUnix,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** HelpOnInstalling_2fApacheOnUnix 11 Mar 2002 22:36:44 -0000 1.8 --- HelpOnInstalling_2fApacheOnUnix 15 Mar 2002 22:17:51 -0000 1.9 *************** *** 86,90 **** --- 86,93 ---- MoinMoin - CGI Driver Script ... + """ }}} + + If you have problems with the '''distutils''' install step, note that you need to have the Python development package installed on some Unix distributions. On Mandrake, you need to "`rpm -i python-devel-2.1.1-3mdk.i586.rpm`". Index: HilfeAllgemein_2fFragenUndAntworten =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeAllgemein_2fFragenUndAntworten,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HilfeAllgemein_2fFragenUndAntworten 14 Mar 2002 21:30:41 -0000 1.4 --- HilfeAllgemein_2fFragenUndAntworten 15 Mar 2002 22:17:51 -0000 1.5 *************** *** 1,4 **** ##master-page:HelpMiscellaneous/FrequentlyAskedQuestions ! ##master-date:2002-02-20 15:09:13 '''Index''' --- 1,4 ---- ##master-page:HelpMiscellaneous/FrequentlyAskedQuestions ! ##master-date:2002-03-13 15:10:29 '''Index''' *************** *** 55,59 **** * Auf das Lupen-Icon klicken. Damit kommen Sie auf die SeiteFinden-Seite, wo Sie nach Sie nach Stichworten in Titeln, per Volltextsuche, mit normalen Worten oder mit Wildcards (regul?ren Ausdr?cken) suchen k?nnen. * Klicken Sie auf TitelIndex. Dies zeigt Ihnen eine alphabetische Liste aller Seiten, nach Titel sortiert. ! * Klicken Sie auf WortIndex. Dies zeigt Ihnen eine alphabetische Liste von jedem Einzelwort in jedem Seitentitel (d.h. die Bluetooth-Seite ist unter B, Bluetooth). * Klicken Sie auf {{{LikePages}}} im Fu?bereich der Seite. Dies zeigt Ihnen Seiten, die Worte in Ihren Titeln haben, die ?hnlich zur aktuellen Seite sind. * Klicken Sie auf den Seitentitel im Kopfbereich der Seite. Dies zeigt Ihnen, welche Seiten auf die aktuelle Seite verweisen (was Ihnen hilft, verwandte Seiten zu finden). --- 55,59 ---- * Auf das Lupen-Icon klicken. Damit kommen Sie auf die SeiteFinden-Seite, wo Sie nach Sie nach Stichworten in Titeln, per Volltextsuche, mit normalen Worten oder mit Wildcards (regul?ren Ausdr?cken) suchen k?nnen. * Klicken Sie auf TitelIndex. Dies zeigt Ihnen eine alphabetische Liste aller Seiten, nach Titel sortiert. ! * Klicken Sie auf WortIndex. Dies zeigt Ihnen eine alphabetische Liste von jedem Einzelwort in jedem Seitentitel (d.h. eine Seite namens Blue''Tooth ist sowohl unter B / Blue als auch unter T / Tooth aufgef?hrt). * Klicken Sie auf {{{LikePages}}} im Fu?bereich der Seite. Dies zeigt Ihnen Seiten, die Worte in Ihren Titeln haben, die ?hnlich zur aktuellen Seite sind. * Klicken Sie auf den Seitentitel im Kopfbereich der Seite. Dies zeigt Ihnen, welche Seiten auf die aktuelle Seite verweisen (was Ihnen hilft, verwandte Seiten zu finden). Index: HilfeZurInstallation_2fApacheAufUnix =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HilfeZurInstallation_2fApacheAufUnix,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** HilfeZurInstallation_2fApacheAufUnix 11 Mar 2002 22:36:44 -0000 1.2 --- HilfeZurInstallation_2fApacheAufUnix 15 Mar 2002 22:17:51 -0000 1.3 *************** *** 87,91 **** --- 87,94 ---- MoinMoin - CGI Driver Script ... + """ }}} + + If you have problems with the '''distutils''' install step, note that you need to have the Python development package installed on some Unix distributions. On Mandrake, you need to "`rpm -i python-devel-2.1.1-3mdk.i586.rpm`". From jhermann at users.sourceforge.net Fri Mar 15 14:25:12 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:25:12 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.80,1.81 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv2460 Modified Files: CHANGES Log Message: action=links: list all links on all pages Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.80 retrieving revision 1.81 diff -C2 -r1.80 -r1.81 *** CHANGES 15 Mar 2002 22:01:26 -0000 1.80 --- CHANGES 15 Mar 2002 22:24:38 -0000 1.81 *************** *** 16,19 **** --- 16,20 ---- * "action=content" for transclusion into static web pages; emits the pure page content, without any , , or tags + * "action=link" works like MeatBall:LinkDatabase * "Preferred language" and "Quick links" user settings From jhermann at users.sourceforge.net Fri Mar 15 14:25:12 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:25:12 2002 Subject: [Moin-devel] CVS: MoinMoin/action links.py,NONE,1.1 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv2460/MoinMoin/action Added Files: links.py Log Message: action=links: list all links on all pages --- NEW FILE: links.py --- """ MoinMoin - "links" action Copyright (c) 2001 by J?rgen Hermann All rights reserved, see COPYING for details. Generate a link database like MeatBall:LinkDatabase. $Id: links.py,v 1.1 2002/03/15 22:24:38 jhermann Exp $ """ from MoinMoin import config, wikiutil, webapi from MoinMoin.i18n import _ def execute(pagename, form): webapi.http_headers() wikiutil.send_title(_('Full Link List for "%s"') % config.sitename) pages = wikiutil.getPageDict(config.text_dir) pagelist = pages.keys() pagelist.sort() print '

'
    for name in pagelist:
        print pages[name].link_to(),
        for link in pages[name].getPageLinks():
            if pages.has_key(link):
                print pages[link].link_to(),
            else:
                print link,
        print
    print '
' wikiutil.send_footer(pagename, editable=0, showactions=0, form=form) From jhermann at users.sourceforge.net Fri Mar 15 14:25:13 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 14:25:13 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.72,1.73 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv2460/MoinMoin/i18n Modified Files: de.py Log Message: action=links: list all links on all pages Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -r1.72 -r1.73 *** de.py 15 Mar 2002 22:01:26 -0000 1.72 --- de.py 15 Mar 2002 22:24:38 -0000 1.73 *************** *** 400,403 **** --- 400,406 ---- 'StartSeite', + 'Full Link List for "%s"': + 'Liste aller Seitenverweise f?r "%s"', + 'Full text search for "%s"': 'Volltextsuche nach "%s"', From jhermann at users.sourceforge.net Fri Mar 15 16:18:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 15 16:18:06 2002 Subject: [Moin-devel] CVS: MoinMoin/action links.py,1.1,1.2 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv15328/action Modified Files: links.py Log Message: text/plain version of links Index: links.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/links.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** links.py 15 Mar 2002 22:24:38 -0000 1.1 --- links.py 16 Mar 2002 00:17:34 -0000 1.2 *************** *** 10,13 **** --- 10,14 ---- """ + import string, sys from MoinMoin import config, wikiutil, webapi from MoinMoin.i18n import _ *************** *** 15,20 **** def execute(pagename, form): ! webapi.http_headers() ! wikiutil.send_title(_('Full Link List for "%s"') % config.sitename) pages = wikiutil.getPageDict(config.text_dir) --- 16,30 ---- def execute(pagename, form): ! # get the MIME type ! if form.has_key('mimetype'): ! mimetype = form['mimetype'].value ! else: ! mimetype = "text/html" ! ! webapi.http_headers(["Content-Type: " + mimetype]) ! ! if mimetype == "text/html": ! wikiutil.send_title(_('Full Link List for "%s"') % config.sitename) ! print '
'
  
      pages = wikiutil.getPageDict(config.text_dir)
***************
*** 22,36 ****
      pagelist.sort()
  
-     print '
'
      for name in pagelist:
!         print pages[name].link_to(),
          for link in pages[name].getPageLinks():
!             if pages.has_key(link):
!                 print pages[link].link_to(),
              else:
!                 print link,
          print
-     print '
' ! wikiutil.send_footer(pagename, editable=0, showactions=0, form=form) --- 32,62 ---- pagelist.sort() for name in pagelist: ! if mimetype == "text/html": ! print pages[name].link_to(), ! else: ! _emit(name) for link in pages[name].getPageLinks(): ! if mimetype == "text/html": ! if pages.has_key(link): ! print pages[link].link_to(), ! else: ! _emit(link) else: ! _emit(link) print ! if mimetype == "text/html": ! print '
' ! wikiutil.send_footer(pagename, editable=0, showactions=0, form=form) ! else: ! sys.exit(0) ! ! def _emit(pagename): ! """ Send pagename, encode it if it contains spaces ! """ ! if string.find(pagename, ' ') >= 0: ! print wikiutil.quoteWikiname(pagename), ! else: ! print pagename, From jhermann at users.sourceforge.net Sat Mar 16 04:01:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 04:01:06 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n zh.py,1.9,1.10 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv28611 Modified Files: zh.py Log Message: Update of Chinese Index: zh.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/zh.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** zh.py 8 Mar 2002 18:53:20 -0000 1.9 --- zh.py 16 Mar 2002 12:00:45 -0000 1.10 *************** *** 10,17 **** ''': ''' !

New Attachment

!

An upload will never overwrite an existing file. If there is a name ! conflict, you have to rename the file that you want to upload. ! Otherwise, if "Rename to" is left blank, the original filename will be used.

''', --- 10,16 ---- ''': ''' !

??????

!

?????????????????????? ?????????????????????????????????????????????? ! ??????????"Rename to" ??????????????????????????????

''', *************** *** 48,52 **** ' Upload ': ! ' Upload ', ' by browsing, searching, or an index
': --- 47,51 ---- ' Upload ': ! ' ???? ', ' by browsing, searching, or an index
': *************** *** 54,58 **** ' by browsing, title search %(titlesearch)s, text search %(textsearch)s or an index
': ! ' by browsing, title search %(titlesearch)s, text search %(textsearch)s or an index
', ' for this page (cached %(date)s)': --- 53,57 ---- ' by browsing, title search %(titlesearch)s, text search %(textsearch)s or an index
': ! ' ?????????????????? %(titlesearch)s, ???????? %(textsearch)s ??????
', ' for this page (cached %(date)s)': *************** *** 72,82 **** '# of hits': ! '# of hits', '# of pages of this size': ! '# of pages of this size', '%(changecount)s changes': ! '%(changecount)s changes', '%(chart_title)s for %(filterpage)s': --- 71,81 ---- '# of hits': ! '# of ????', '# of pages of this size': ! '# of ??????????????', '%(changecount)s changes': ! '%(changecount)s ??????', '%(chart_title)s for %(filterpage)s': *************** *** 108,112 **** "Attachment '%(filename)s' does not exist!": ! "Attachment '%(filename)s' does not exist!", 'Cookie deleted!': --- 107,111 ---- "Attachment '%(filename)s' does not exist!": ! "???? '%(filename)s' ??????!", 'Cookie deleted!': *************** *** 117,121 **** 'Filename of attachment not specified!': ! 'Filename of attachment not specified!', "Found no account matching the given email address '%(email)s'!": --- 116,120 ---- 'Filename of attachment not specified!': ! '????????????????????', "Found no account matching the given email address '%(email)s'!": *************** *** 126,136 **** 'No differences found!': ! '??????????!', 'No older revisions available!': ! 'No older revisions available!', 'No spelling errors found!': ! 'No spelling errors found!', 'Please provide a valid email address!': --- 125,135 ---- 'No differences found!': ! '????????????', 'No older revisions available!': ! '????????????', 'No spelling errors found!': ! '????????????????', 'Please provide a valid email address!': *************** *** 160,164 **** 'Unsupported upload action: %s': ! 'Unsupported upload action: %s', 'User preferences saved!': --- 159,163 ---- 'Unsupported upload action: %s': ! '????????????????: %s', 'User preferences saved!': *************** *** 169,176 **** 'You are not allowed to delete attachments.': ! 'You are not allowed to delete attachments.', 'You are not allowed to upload files.': ! 'You are not allowed to upload files.', 'You cannot save empty pages.': --- 168,175 ---- 'You are not allowed to delete attachments.': ! '??????????????????.', 'You are not allowed to upload files.': ! '??????????????????.', 'You cannot save empty pages.': *************** *** 178,182 **** 'You cannot use LikePages on an extended pagename!': ! 'You cannot use LikePages on an extended pagename!', 'You have been subscribed to this page.': --- 177,181 ---- 'You cannot use LikePages on an extended pagename!': ! '???????? LikePages ??????????????', 'You have been subscribed to this page.': *************** *** 192,211 **** '
Bad chart type "%s"!
': ! '
Bad chart type "%s"!
', '
Charts are not available!
': ! '
Charts are not available!
', '
You need to provide a chart type!
': ! '
You need to provide a chart type!
', '

Attached Files

': ! '

Attached Files

', "

Attachment '%(filename)s'

": ! "

Attachment '%(filename)s'

", '

Edit drawing

': ! '

Edit drawing

', """
--- 191,210 ---- '
Bad chart type "%s"!
': ! '
???????????? "%s"!
', '
Charts are not available!
': ! '
??????????!
', '
You need to provide a chart type!
': ! '
??????????????????!
', '

Attached Files

': ! '

??????????

', "

Attachment '%(filename)s'

": ! "

???? '%(filename)s'

", '

Edit drawing

': ! '

???? drawing

', """
*************** *** 226,239 **** """
! Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; ! ''mixed '''bold''' and italics''; ---- horizontal rule.
! Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ! ==== Title 4 ====; ===== Title 5 =====.
! Lists: space and one of * bullets; 1., a., A., i., I. numbered items; ! 1.#n start numbering at n; space alone indents.
! Links: JoinCapitalizedWords; [\"brackets and double quotes\"]; url; [url]; [url label].
! Tables: || cell text |||| cell text spanning two columns ||; ! no trailing white space allowed after tables or titles.

--- 225,238 ---- """
! ????: ''????''; '''????'''; '''''??????'''''; ! ''????'''??'''????''; ---- ??????.
! ????: = ???? 1 =; == ???? 2 ==; === ???? 3 ===; ! ==== ???? 4 ====; ===== ???? 5 =====.
! ????: ????????????????* ????; 1., a., A., i., I. ??????; ! 1.#n ??n????????; ???????? ????.
! ????: JoinCapitalizedWords; [\"??????????????\"]; url; [url]; [url label].
! ????: || ???????? |||| ?????????????? ||; ! ??????????????????????????.

*************** *** 252,256 **** "

SHA digest of this page's content is: %(digest)s

": ! "

SHA digest of this page's content is: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, --- 251,255 ---- "

SHA digest of this page's content is: %(digest)s

": ! "

??????????SHA digest??: %(digest)s

", '''

To refer to attachments on a page, use attachment:filename, *************** *** 258,268 **** Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': ! '''

To refer to attachments on a page, use attachment:filename, ! as shown below in the list of files. ! Do NOT use the URL of the [get] link, ! since this is subject to change and can break easily.

''', '

Unknown file type, cannot display this attachment inline.

': ! '

Unknown file type, cannot display this attachment inline.

', '[goto %s]': --- 257,267 ---- Do NOT use the URL of the [get] link, since this is subject to change and can break easily.

''': ! '''

??????????????????, ??attachment:filename, ! ??????????????????. ! ?????????? [get] ??URL, ! ??????????????????????????.

''', '

Unknown file type, cannot display this attachment inline.

': ! '

????????????, ??????????????????.

', '[goto %s]': *************** *** 270,277 **** 'Action': ! 'Action', 'Add "Open in new window" icon to pretty links': ! 'Add "Open in new window" icon to pretty links', 'Add checked words to dictionary': --- 269,276 ---- 'Action': ! '????', 'Add "Open in new window" icon to pretty links': ! '?? "????????????" ??????????????', 'Add checked words to dictionary': *************** *** 279,286 **** 'Add spaces to displayed wiki names': ! 'Add spaces to displayed wiki names', 'Additions are marked like this.': ! 'Additions are marked like this.', 'Alternatively, use one of these templates:': --- 278,285 ---- 'Add spaces to displayed wiki names': ! '????????wiki????????', 'Additions are marked like this.': ! '????????????????.', 'Alternatively, use one of these templates:': *************** *** 288,301 **** "Attachment '%(filename)s' deleted.": ! "Attachment '%(filename)s' deleted.", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": ! "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.", 'Attachments for "%(pagename)s"': ! 'Attachments for "%(pagename)s"', "Bad timestamp '%s'": ! "Bad timestamp '%s'", 'CSS URL': --- 287,300 ---- "Attachment '%(filename)s' deleted.": ! "???? '%(filename)s' ??????.", "Attachment '%(target)s' (remote name '%(filename)s') with %(bytes)d bytes saved.": ! "???? '%(target)s' (?????? '%(filename)s') ?? %(bytes)d ????????.", 'Attachments for "%(pagename)s"': ! '????"%(pagename)s"??????', "Bad timestamp '%s'": ! "???????? '%s'", 'CSS URL': *************** *** 306,313 **** 'Cancel': ! 'Cancel', 'Check Spelling': ! 'Check Spelling', 'Clear message': --- 305,312 ---- 'Cancel': ! '????', 'Check Spelling': ! '????????', 'Clear message': *************** *** 318,325 **** 'Comment': ! 'Comment', 'Create new drawing "%(filename)s"': ! 'Create new drawing "%(filename)s"', 'Create this page': --- 317,324 ---- 'Comment': ! '????', 'Create new drawing "%(filename)s"': ! '?????? drawing "%(filename)s"', 'Create this page': *************** *** 345,352 **** 'Distribution of User-Agent Types': ! 'Distribution of User-Agent Types', 'Download XML export of this wiki': ! 'Download XML export of this wiki', "Drawing '%(filename)s' saved.": --- 344,351 ---- 'Distribution of User-Agent Types': ! '????????????????', 'Download XML export of this wiki': ! '??????wiki??XML????', "Drawing '%(filename)s' saved.": *************** *** 357,364 **** 'Edit "%(pagename)s"': ! 'Edit "%(pagename)s"', 'Edit was cancelled.': ! 'Edit was cancelled.', 'EditText': --- 356,363 ---- 'Edit "%(pagename)s"': ! '???? "%(pagename)s"', 'Edit was cancelled.': ! '????????????.', 'EditText': *************** *** 378,391 **** 'Expected "=" to follow "%(token)s"': ! 'Expected "=" to follow "%(token)s"', 'Expected a value for key "%(token)s"': ! 'Expected a value for key "%(token)s"', 'File "%(filename)s for page "%(pagename)s': ! 'File "%(filename)s for page "%(pagename)s', 'File to upload': ! 'File to upload', 'FindPage': --- 377,390 ---- 'Expected "=" to follow "%(token)s"': ! '???? "=" ???? "%(token)s"', 'Expected a value for key "%(token)s"': ! '?????????????? key "%(token)s"', 'File "%(filename)s for page "%(pagename)s': ! '???? "%(filename)s for ???? "%(pagename)s', 'File to upload': ! '??????????', 'FindPage': *************** *** 393,397 **** 'Fri': ! 'Fri', 'Full text search for "%s"': --- 392,396 ---- 'Fri': ! '??????', 'Full text search for "%s"': *************** *** 402,406 **** 'General options': ! 'General options', 'Global extension actions': --- 401,405 ---- 'General options': ! '????????', 'Global extension actions': *************** *** 414,424 **** 'HelpContents': ! 'HelpContents', 'HelpOnFormatting': ! 'HelpOnFormatting', 'Ignore changes in the amount of whitespace': ! 'Ignore changes in the amount of whitespace', 'Info for "%s"': --- 413,423 ---- 'HelpContents': ! '????????', 'HelpOnFormatting': ! '??????????????', 'Ignore changes in the amount of whitespace': ! '??????????????????????', 'Info for "%s"': *************** *** 441,445 **** 'MIME Type (optional)': ! 'MIME Type (optional)', 'Mail sent OK': --- 440,444 ---- 'MIME Type (optional)': ! 'MIME ???? (????)', 'Mail sent OK': *************** *** 450,454 **** 'Mon': ! 'Mon', 'Multiple matches for "%s...%s"': --- 449,453 ---- 'Mon': ! '??????', 'Multiple matches for "%s...%s"': *************** *** 462,466 **** 'Needed %(timer).1f seconds.': ! 'Needed %(timer).1f seconds.', 'No attachments stored for %(pagename)s': --- 461,465 ---- 'Needed %(timer).1f seconds.': ! '???? %(timer).1f ??.', 'No attachments stored for %(pagename)s': *************** *** 486,493 **** 'Open editor on double click': ! 'Open editor on double click', 'Optional comment about this change': ! 'Optional comment about this change', 'Or try one of these actions: ': --- 485,492 ---- 'Open editor on double click': ! '??????????????', 'Optional comment about this change': ! '??????????????????????', 'Or try one of these actions: ': *************** *** 495,499 **** 'Others': ! 'Others', 'Page "%s" was sucessfully deleted!': --- 494,498 ---- 'Others': ! '????', 'Page "%s" was sucessfully deleted!': *************** *** 501,508 **** 'Page Size Distribution': ! 'Page Size Distribution', 'Page hits and edits': ! 'Page hits and edits', 'Password': --- 500,507 ---- 'Page Size Distribution': ! '????????????', 'Page hits and edits': ! '??????????????????', 'Password': *************** *** 516,523 **** 'Preview': ! 'Preview', 'Preview of "%(pagename)s"': ! 'Preview of "%(pagename)s"', 'Python Version': --- 515,522 ---- 'Preview': ! '????', 'Preview of "%(pagename)s"': ! '????"%(pagename)s"??????', 'Python Version': *************** *** 528,532 **** 'RecentChanges': ! 'RecentChanges', 'Redirected from page "%(page)s"': --- 527,531 ---- 'RecentChanges': ! '????????', 'Redirected from page "%(page)s"': *************** *** 543,547 **** 'Remember last page visited': ! 'Remember last page visited', 'Remove trailing whitespace from each line': --- 542,546 ---- 'Remember last page visited': ! '????????????????', 'Remove trailing whitespace from each line': *************** *** 549,553 **** 'Rename to (optional)': ! 'Rename to (optional)', 'Revision History': --- 548,552 ---- 'Rename to (optional)': ! '??????????????', 'Revision History': *************** *** 555,559 **** 'Sat': ! 'Sat', 'Save Changes': --- 554,558 ---- 'Sat': ! '??????', 'Save Changes': *************** *** 567,589 **** 'Show emoticons': ! 'Show emoticons', 'Show fancy diffs': ! 'Show fancy diffs', 'Show fancy links': ! 'Show fancy links', 'Show icon toolbar': ! 'Show icon toolbar', 'Show page trail': ! 'Show page trail', 'Show question mark for non-existing pagelinks': ! 'Show question mark for non-existing pagelinks', 'Show top/bottom links in headings': ! 'Show top/bottom links in headings', 'ShowText': --- 566,588 ---- 'Show emoticons': ! '??????????', 'Show fancy diffs': ! '??????????????', 'Show fancy links': ! '??????????????', 'Show icon toolbar': ! '??????????????', 'Show page trail': ! '????????????', 'Show question mark for non-existing pagelinks': ! '????????????????????????', 'Show top/bottom links in headings': ! '???????????? ??/??????', 'ShowText': *************** *** 591,595 **** 'SiteNavigation': ! 'SiteNavigation', 'Size': --- 590,594 ---- 'SiteNavigation': ! '????????', 'Size': *************** *** 597,601 **** 'Skip to preview': ! 'Skip to preview', 'Submitted form data:': --- 596,600 ---- 'Skip to preview': ! '??????????', 'Submitted form data:': *************** *** 606,610 **** 'Sun': ! 'Sun', 'The backupped content of this page is deprecated and will not be included in search results!': --- 605,609 ---- 'Sun': ! '??????', 'The backupped content of this page is deprecated and will not be included in search results!': *************** *** 633,637 **** 'Thu': ! 'Thu', 'Time zone': --- 632,636 ---- 'Thu': ! '??????', 'Time zone': *************** *** 642,646 **** 'TitleIndex': ! 'TitleIndex', 'To create you own templates, add a page with a name ending in Template.': --- 641,645 ---- 'TitleIndex': ! '????????', 'To create you own templates, add a page with a name ending in Template.': *************** *** 651,655 **** 'Tue': ! 'Tue', 'Unknown action': --- 650,654 ---- 'Tue': ! '??????', 'Unknown action': *************** *** 660,670 **** 'Upload new attachment "%(filename)s"': ! 'Upload new attachment "%(filename)s"', "Upload of attachment '%(filename)s'.": ! "Upload of attachment '%(filename)s'.", 'UserPreferences': ! 'UserPreferences', 'Version as of %(date)s': --- 659,669 ---- 'Upload new attachment "%(filename)s"': ! '?????????? "%(filename)s"', "Upload of attachment '%(filename)s'.": ! "???????? '%(filename)s'.", 'UserPreferences': ! '????????', 'Version as of %(date)s': *************** *** 672,679 **** 'Wed': ! 'Wed', 'WordIndex': ! 'WordIndex', 'XML title index': --- 671,678 ---- 'Wed': ! '??????', 'WordIndex': ! '????????', 'XML title index': *************** *** 696,700 **** '[New window]': ! '[New window]', '[Template %s not found]': --- 695,699 ---- '[New window]': ! '[??????]', '[Template %s not found]': *************** *** 702,712 **** 'attachment:%(filename)s of %(pagename)s': ! 'attachment:%(filename)s of %(pagename)s', 'date': ! 'date', 'diff': ! 'diff', '''green=view --- 701,711 ---- 'attachment:%(filename)s of %(pagename)s': ! '????:%(filename)s of %(pagename)s', 'date': ! '????', 'diff': ! '????', '''green=view *************** *** 719,723 **** 'page size upper bound [bytes]': ! 'page size upper bound [bytes]', 'set bookmark': --- 718,722 ---- 'page size upper bound [bytes]': ! '???????????? [????]', 'set bookmark': From jhermann at users.sourceforge.net Sat Mar 16 10:59:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 10:59:03 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.87,1.88 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv8118 Modified Files: wikiutil.py Log Message: Show quicklinks even if no default is configured Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -r1.87 -r1.88 *** wikiutil.py 15 Mar 2002 22:01:26 -0000 1.87 --- wikiutil.py 16 Mar 2002 18:58:43 -0000 1.88 *************** *** 530,534 **** # print the navigation bar (if configured) ! if config.navi_bar: print ( '' --- 530,535 ---- # print the navigation bar (if configured) ! quicklinks = user.current.getQuickLinks() ! if config.navi_bar or quicklinks: print ( '
' *************** *** 537,541 **** '') % {'sitename': config.sitename,} - quicklinks = user.current.getQuickLinks() if not quicklinks: for pagename in config.navi_bar: --- 538,541 ---- From jhermann at users.sourceforge.net Sat Mar 16 12:31:39 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 12:31:39 2002 Subject: [Moin-devel] CVS: MoinMoin/processor - New directory Message-ID: Update of /cvsroot/moin/MoinMoin/processor In directory usw-pr-cvs1:/tmp/cvs-serv29369/processor Log Message: Directory /cvsroot/moin/MoinMoin/processor added to the repository From jhermann at users.sourceforge.net Sat Mar 16 12:33:11 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 12:33:11 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.81,1.82 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv29854 Modified Files: CHANGES Log Message: Processors added Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -r1.81 -r1.82 *** CHANGES 15 Mar 2002 22:24:38 -0000 1.81 --- CHANGES 16 Mar 2002 20:31:37 -0000 1.82 *************** *** 18,21 **** --- 18,23 ---- * "action=link" works like MeatBall:LinkDatabase * "Preferred language" and "Quick links" user settings + * Added "processor" concept, processors work on the data in "code + displays" and are called by a bangpath in the first line of data Bugfixes: From jhermann at users.sourceforge.net Sat Mar 16 12:33:17 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 12:33:17 2002 Subject: [Moin-devel] CVS: MoinMoin/parser wiki.py,1.82,1.83 Message-ID: Update of /cvsroot/moin/MoinMoin/parser In directory usw-pr-cvs1:/tmp/cvs-serv29854/MoinMoin/parser Modified Files: wiki.py Log Message: Processors added Index: wiki.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/parser/wiki.py,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -r1.82 -r1.83 *** wiki.py 13 Mar 2002 02:49:45 -0000 1.82 --- wiki.py 16 Mar 2002 20:31:37 -0000 1.83 *************** *** 10,14 **** # Imports import cgi, os, re, string, sys ! from MoinMoin import config, user, wikimacro, wikiutil from MoinMoin.Page import Page from MoinMoin.i18n import _ --- 10,14 ---- # Imports import cgi, os, re, string, sys ! from MoinMoin import config, user, wikimacro, wikiutil, util from MoinMoin.Page import Page from MoinMoin.i18n import _ *************** *** 779,804 **** continue ! # !!! same code as with "inline:" handling, this needs to be unified! ! import cStringIO ! from MoinMoin.parser import python ! ! buff = cStringIO.StringIO() ! colorizer = python.Parser(string.join(self.colorize_lines, '\n'), out = buff) ! colorizer.format(self.formatter, self.form) ! ! sys.stdout.write(self.formatter.rawHTML(buff.getvalue())) ! sys.stdout.write(self.formatter.preformatted(0)) ! self.in_pre = 0 ! del buff del self.colorize_lines # send rest of line through regex machinery line = line[endpos+3:] ! elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0: ! self.in_pre = 2 ! self.colorize_lines = [] ! if string.strip(line) != "#!python": ! self.colorize_lines.append(line) ! continue else: # paragraph break on empty lines --- 779,803 ---- continue ! self.processor(self.formatter, self.colorize_lines) del self.colorize_lines + self.in_pre = 0 # send rest of line through regex machinery line = line[endpos+3:] ! elif string.strip(line)[:2] == "#!": ! self.processor = None ! if string.find(line, 'python') > 0: ! from MoinMoin.processor.Colorize import process ! self.processor = process ! else: ! from MoinMoin.processor import processors ! processor_name = string.split(line[2:])[0] ! if processor_name in processors: ! self.processor = util.importName("MoinMoin.processor." + ! processor_name, "process") ! if self.processor: ! self.in_pre = 2 ! self.colorize_lines = [line] ! continue else: # paragraph break on empty lines From jhermann at users.sourceforge.net Sat Mar 16 12:33:22 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sat Mar 16 12:33:22 2002 Subject: [Moin-devel] CVS: MoinMoin/processor Colorize.py,NONE,1.1 __init__.py,NONE,1.1 Message-ID: Update of /cvsroot/moin/MoinMoin/processor In directory usw-pr-cvs1:/tmp/cvs-serv29854/MoinMoin/processor Added Files: Colorize.py __init__.py Log Message: Processors added --- NEW FILE: Colorize.py --- """ MoinMoin - Processor for Syntax Highlighting Copyright (c) 2002 by J?rgen Hermann All rights reserved, see COPYING for details. $Id: Colorize.py,v 1.1 2002/03/16 20:31:37 jhermann Exp $ """ import string, sys, cStringIO from MoinMoin.parser import python def process(formatter, lines): if string.strip(lines[0]) == "#!python": del lines[0] # !!! same code as with "inline:" handling in parser/wiki.py, # this needs to be unified! buff = cStringIO.StringIO() colorizer = python.Parser(string.join(lines, '\n'), out = buff) colorizer.format(formatter, {}) sys.stdout.write(formatter.rawHTML(buff.getvalue())) sys.stdout.write(formatter.preformatted(0)) --- NEW FILE: __init__.py --- """ MoinMoin - Processor Package Copyright (c) 2002 by J?rgen Hermann All rights reserved, see COPYING for details. Processors need to define a process() function that gets passed the current formatter and a list of lines to be processed. A processor is allowed to manipulate that list, since it is destroyed after processing. Currently, when a processor is called, a preformatted section is open. So you have to either close it immediately, or after you emitted the output. $Id: __init__.py,v 1.1 2002/03/16 20:31:37 jhermann Exp $ """ from MoinMoin.util import getPackageModules processors = getPackageModules(__file__) del getPackageModules From jhermann at users.sourceforge.net Sun Mar 17 01:58:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 01:58:03 2002 Subject: [Moin-devel] CVS: MoinMoin/py15 Cookie.py,1.2,1.3 __init__.py,1.1,1.2 Message-ID: Update of /cvsroot/moin/MoinMoin/py15 In directory usw-pr-cvs1:/tmp/cvs-serv15738/MoinMoin/py15 Modified Files: Cookie.py __init__.py Log Message: Added licensing info for copied modules; updated Cookie.py Index: Cookie.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/py15/Cookie.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** Cookie.py 31 May 2001 01:02:08 -0000 1.2 --- Cookie.py 17 Mar 2002 09:57:37 -0000 1.3 *************** *** 4,10 **** #### # Copyright 2000 by Timothy O'Malley ! # # All Rights Reserved ! # # Permission to use, copy, modify, and distribute this software # and its documentation for any purpose and without fee is hereby --- 4,10 ---- #### # Copyright 2000 by Timothy O'Malley ! # # All Rights Reserved ! # # Permission to use, copy, modify, and distribute this software # and its documentation for any purpose and without fee is hereby *************** *** 14,19 **** # Timothy O'Malley not be used in advertising or publicity # pertaining to distribution of the software without specific, written ! # prior permission. ! # # Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY --- 14,19 ---- # Timothy O'Malley not be used in advertising or publicity # pertaining to distribution of the software without specific, written ! # prior permission. ! # # Timothy O'Malley DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS # SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY *************** *** 23,31 **** # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ! # PERFORMANCE OF THIS SOFTWARE. # #### ! # ! # Id: Cookie.py,v 2.29 2000/08/23 05:28:49 timo Exp # by Timothy O'Malley # --- 23,31 ---- # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ! # PERFORMANCE OF THIS SOFTWARE. # #### ! # ! # Id: Cookie.py,v 2.29 2000/08/23 05:28:49 timo Exp # by Timothy O'Malley # *************** *** 40,44 **** #### ! """ Here's a sample session to show how to use this module. At the moment, this is the only documentation. --- 40,44 ---- #### ! r""" Here's a sample session to show how to use this module. At the moment, this is the only documentation. *************** *** 114,121 **** >>> C["oreo"]["path"] = "/" >>> print C ! Set-Cookie: oreo="doublestuff"; Path=/; Each dictionary element has a 'value' attribute, which gives you ! back the value associated with the key. >>> C = Cookie.SmartCookie() --- 114,121 ---- >>> C["oreo"]["path"] = "/" >>> print C ! Set-Cookie: oreo=doublestuff; Path=/; Each dictionary element has a 'value' attribute, which gives you ! back the value associated with the key. >>> C = Cookie.SmartCookie() *************** *** 149,153 **** Set-Cookie: string=seven; ! SerialCookie --- 149,153 ---- Set-Cookie: string=seven; ! SerialCookie *************** *** 204,209 **** >>> C = Cookie.Cookie() ! >>> C.__class__ ! --- 204,209 ---- >>> C = Cookie.Cookie() ! >>> print C.__class__.__name__ ! SmartCookie *************** *** 215,219 **** # # Import our required modules ! # import string, sys from UserDict import UserDict --- 215,219 ---- # # Import our required modules ! # import string, sys from UserDict import UserDict *************** *** 229,232 **** --- 229,234 ---- raise ImportError, "Cookie.py requires 're' from Python 1.5 or later" + __all__ = ["CookieError","BaseCookie","SimpleCookie","SerialCookie", + "SmartCookie","Cookie"] # *************** *** 243,247 **** # three-digit octal equivalent of the character. Any '\' or '"' is # quoted with a preceeding '\' slash. ! # # These are taken from RFC2068 and RFC2109. # _LegalChars is the list of chars which don't require "'s --- 245,249 ---- # three-digit octal equivalent of the character. Any '\' or '"' is # quoted with a preceeding '\' slash. ! # # These are taken from RFC2068 and RFC2109. # _LegalChars is the list of chars which don't require "'s *************** *** 371,375 **** # The _getdate() routine is used to set the expiration time in # the cookie's HTTP header. By default, _getdate() returns the ! # current time in the appropriate "expires" format for a # Set-Cookie header. The one optional argument is an offset from # now, in seconds. For example, an offset of -3600 means "one hour ago". --- 373,377 ---- # The _getdate() routine is used to set the expiration time in # the cookie's HTTP header. By default, _getdate() returns the ! # current time in the appropriate "expires" format for a # Set-Cookie header. The one optional argument is an offset from # now, in seconds. For example, an offset of -3600 means "one hour ago". *************** *** 406,410 **** # path comment domain # max-age secure version ! # # For historical reasons, these attributes are also reserved: # expires --- 408,412 ---- # path comment domain # max-age secure version ! # # For historical reasons, these attributes are also reserved: # expires *************** *** 490,494 **** # Now add any defined attributes ! if attrs == None: attrs = self._reserved_keys for K,V in self.items(): --- 492,496 ---- # Now add any defined attributes ! if attrs is None: attrs = self._reserved_keys for K,V in self.items(): *************** *** 506,510 **** # Return the result return string.join(result, " ") ! # end OutputString # end Morsel class --- 508,512 ---- # Return the result return string.join(result, " ") ! # end OutputString # end Morsel class *************** *** 520,528 **** # ! _LegalCharsPatt = r"[\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{]" _CookiePattern = re.compile( r"(?x)" # This is a Verbose pattern r"(?P" # Start of group 'key' ! ""+ _LegalCharsPatt +"+" # Any word of at least one letter r")" # End of group 'key' r"\s*=\s*" # Equal Sign --- 522,530 ---- # ! _LegalCharsPatt = r"[\w\d!#%&'~_`><@,:/\$\*\+\-\.\^\|\)\(\?\}\{\=]" _CookiePattern = re.compile( r"(?x)" # This is a Verbose pattern r"(?P" # Start of group 'key' ! ""+ _LegalCharsPatt +"+?" # Any word of at least one letter, nongreedy r")" # End of group 'key' r"\s*=\s*" # Equal Sign *************** *** 646,650 **** self.__set(K, rval, cval) M = self[K] ! # end __ParseString # end BaseCookie class --- 648,652 ---- self.__set(K, rval, cval) M = self[K] ! # end __ParseString # end BaseCookie class *************** *** 720,723 **** --- 722,731 ---- ########################################################### + def _test(): + import doctest, Cookie + return doctest.testmod(Cookie) + + if __name__ == "__main__": + _test() Index: __init__.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/py15/__init__.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** __init__.py 21 Nov 2000 01:57:36 -0000 1.1 --- __init__.py 17 Mar 2002 09:57:38 -0000 1.2 *************** *** 5,8 **** --- 5,11 ---- All rights reserved, see COPYING for details. + Cookie.py is copied from Python 2.1; see LICENSE.Python for + licensing information applying to this module, + $Id$ """ From jhermann at users.sourceforge.net Sun Mar 17 01:58:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 01:58:04 2002 Subject: [Moin-devel] CVS: dist LICENSE.Python,NONE,1.1 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv15738 Added Files: LICENSE.Python Log Message: Added licensing info for copied modules; updated Cookie.py --- NEW FILE: LICENSE.Python --- A. HISTORY OF THE SOFTWARE ========================== Python was created in the early 1990s by Guido van Rossum at Stichting Mathematisch Centrum (CWI) in the Netherlands as a successor of a language called ABC. Guido is Python's principal author, although it includes many contributions from others. The last version released from CWI was Python 1.2. In 1995, Guido continued his work on Python at the Corporation for National Research Initiatives (CNRI) in Reston, Virginia where he released several versions of the software. Python 1.6 was the last of the versions released by CNRI. In 2000, Guido and the Python core development team moved to BeOpen.com to form the BeOpen PythonLabs team. Python 2.0 was the first and only release from BeOpen.com. Following the release of Python 1.6, and after Guido van Rossum left CNRI to work with commercial software developers, it became clear that the ability to use Python with software available under the GNU Public License (GPL) was very desirable. CNRI and the Free Software Foundation (FSF) interacted to develop enabling wording changes to the Python license. Python 1.6.1 is essentially the same as Python 1.6, with a few minor bug fixes, and with a different license that enables later versions to be GPL-compatible. Python 2.1 is a derivative work of Python 1.6.1, as well as of Python 2.0. After Python 2.0 was released by BeOpen.com, Guido van Rossum and the other PythonLabs developers joined Digital Creations. All intellectual property added from this point on, starting with Python 2.1 and its alpha and beta releases, is owned by the Python Software Foundation (PSF), a non-profit modeled after the Apache Software Foundation. See http://www.python.org/psf/ for more information about the PSF. Thanks to the many outside volunteers who have worked under Guido's direction to make these releases possible. B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON =============================================================== PSF LICENSE AGREEMENT --------------------- 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 2.1.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.1.1 alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001 Python Software Foundation; All Rights Reserved" are retained in Python 2.1.1 alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 2.1.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.1.1. 4. PSF is making Python 2.1.1 available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.1.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.1.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.1.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using Python 2.1.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. BEOPEN.COM TERMS AND CONDITIONS FOR PYTHON 2.0 ---------------------------------------------- BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the Individual or Organization ("Licensee") accessing and otherwise using this software in source or binary form and its associated documentation ("the Software"). 2. Subject to the terms and conditions of this BeOpen Python License Agreement, BeOpen hereby grants Licensee a non-exclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use the Software alone or in any derivative version, provided, however, that the BeOpen Python License is retained in the Software, alone or in any derivative version prepared by Licensee. 3. BeOpen is making the Software available to Licensee on an "AS IS" basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 5. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 6. This License Agreement shall be governed by and interpreted in all respects by the law of the State of California, excluding conflict of law provisions. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between BeOpen and Licensee. This License Agreement does not grant permission to use BeOpen trademarks or trade names in a trademark sense to endorse or promote products or services of Licensee, or any third party. As an exception, the "BeOpen Python" logos available at http://www.pythonlabs.com/logos.html may be used according to the permissions granted on that web page. 7. By copying, installing or otherwise using the software, Licensee agrees to be bound by the terms and conditions of this License Agreement. CNRI OPEN SOURCE GPL-COMPATIBLE LICENSE AGREEMENT ------------------------------------------------- 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013". 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1. 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. This License Agreement shall be governed by the federal intellectual property law of the United States, including without limitation the federal copyright law, and, to the extent such U.S. federal law does not apply, by the law of the Commonwealth of Virginia, excluding Virginia's conflict of law provisions. Notwithstanding the foregoing, with regard to derivative works based on Python 1.6.1 that incorporate non-separable material that was previously distributed under the GNU General Public License (GPL), the law of the Commonwealth of Virginia shall govern this License Agreement only as to issues arising under or with respect to Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between CNRI and Licensee. This License Agreement does not grant permission to use CNRI trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By clicking on the "ACCEPT" button where indicated, or by copying, installing or otherwise using Python 1.6.1, Licensee agrees to be bound by the terms and conditions of this License Agreement. ACCEPT CWI PERMISSIONS STATEMENT AND DISCLAIMER ---------------------------------------- Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. From jhermann at users.sourceforge.net Sun Mar 17 01:58:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 01:58:04 2002 Subject: [Moin-devel] CVS: MoinMoin/support __init__.py,1.4,1.5 Message-ID: Update of /cvsroot/moin/MoinMoin/support In directory usw-pr-cvs1:/tmp/cvs-serv15738/MoinMoin/support Modified Files: __init__.py Log Message: Added licensing info for copied modules; updated Cookie.py Index: __init__.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/support/__init__.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** __init__.py 14 Mar 2002 00:07:41 -0000 1.4 --- __init__.py 17 Mar 2002 09:57:38 -0000 1.5 *************** *** 17,21 **** difflib ! from the Python 2.1 distribution $Id$ --- 17,22 ---- difflib ! from the Python 2.1 distribution; see LICENSE.Python for ! licensing information applying to this module, $Id$ From jhermann at users.sourceforge.net Sun Mar 17 03:02:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 03:02:03 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnProcessors,NONE,1.1 HelpOnActions,1.3,1.4 HelpOnEditing,1.4,1.5 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv26806 Modified Files: HelpOnActions HelpOnEditing Added Files: HelpOnProcessors Log Message: Description of new features --- NEW FILE: HelpOnProcessors --- [[TableOfContents]] == Processors == Processors work on the data in a code display. You specify which processor to call by using a ''bang path''-like construct in the first line. A bang path is a concept known from Unix command line scripts, where they serve the exact same purpose: the first line tells the shell what program to start to process the remaining lines of the script. For more information on the possible markup, see HelpOnEditing. === Examples === Colorized Python source code: {{{ #!python colorized = "python" }}} Index: HelpOnActions =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnActions,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnActions 14 Mar 2002 21:30:41 -0000 1.3 --- HelpOnActions 17 Mar 2002 11:01:13 -0000 1.4 *************** *** 37,38 **** --- 37,39 ---- * export: export the wiki content. ''[experimental]'' * content: for transclusion into static web pages, this action emits the pure page content, without any , , or tags. ''[0.12]'' + * links: generates a list of all pages and the links on them, just like MeatBall:LinkDatabase. ''[0.12]'' Index: HelpOnEditing =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnEditing,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** HelpOnEditing 4 Mar 2002 20:42:20 -0000 1.4 --- HelpOnEditing 17 Mar 2002 11:01:14 -0000 1.5 *************** *** 11,14 **** --- 11,15 ---- * HelpOnSmileys - how to insert a :) * HelpOnMacros - system macros + * HelpOnProcessors - data processing scripts * HelpOnProcessingInstructions - how to influence page formatting * HelpOnXmlPages - how to store pages with XML content and process them via XSLT From jhermann at users.sourceforge.net Sun Mar 17 03:04:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 03:04:07 2002 Subject: [Moin-devel] CVS: MoinMoin wikimacro.py,1.34,1.35 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv27278/MoinMoin Modified Files: wikimacro.py Log Message: List processors on SystemInfo; more stable API (ability to check for in_pre) Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -r1.34 -r1.35 *** wikimacro.py 12 Mar 2002 04:09:00 -0000 1.34 --- wikimacro.py 17 Mar 2002 11:03:57 -0000 1.35 *************** *** 206,210 **** def _macro_SystemInfo(self, args): from cStringIO import StringIO ! from MoinMoin import eventlog # check for 4XSLT --- 206,210 ---- def _macro_SystemInfo(self, args): from cStringIO import StringIO ! from MoinMoin import eventlog, processor # check for 4XSLT *************** *** 242,245 **** --- 242,247 ---- row(_('Local extension actions'), string.join(wikiaction.getPlugins()[1], ', ') or _("NONE")) + row(_('Installed processors'), + string.join(processor.processors, ', ') or _("NONE")) buf.write('
') From jhermann at users.sourceforge.net Sun Mar 17 03:04:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 03:04:07 2002 Subject: [Moin-devel] CVS: MoinMoin/formatter base.py,1.19,1.20 text_html.py,1.37,1.38 text_plain.py,1.15,1.16 text_xml.py,1.24,1.25 Message-ID: Update of /cvsroot/moin/MoinMoin/formatter In directory usw-pr-cvs1:/tmp/cvs-serv27278/MoinMoin/formatter Modified Files: base.py text_html.py text_plain.py text_xml.py Log Message: List processors on SystemInfo; more stable API (ability to check for in_pre) Index: base.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/base.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** base.py 13 Feb 2002 21:13:52 -0000 1.19 --- base.py 17 Mar 2002 11:03:57 -0000 1.20 *************** *** 30,33 **** --- 30,34 ---- self.pagelinks = [] self.in_p = 0 + self.in_pre = 0 def setPage(self, page): *************** *** 88,92 **** def preformatted(self, on): ! raise NotImplementedError def paragraph(self, on): --- 89,93 ---- def preformatted(self, on): ! self.in_pre = on != 0 def paragraph(self, on): Index: text_html.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_html.py,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -r1.37 -r1.38 *** text_html.py 11 Mar 2002 21:18:56 -0000 1.37 --- text_html.py 17 Mar 2002 11:03:57 -0000 1.38 *************** *** 124,127 **** --- 124,128 ---- def preformatted(self, on): + FormatterBase.preformatted(self, on) return ['
', '
'][not on] Index: text_plain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_plain.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** text_plain.py 13 Feb 2002 21:13:53 -0000 1.15 --- text_plain.py 17 Mar 2002 11:03:57 -0000 1.16 *************** *** 80,83 **** --- 80,84 ---- def preformatted(self, on): + FormatterBase.preformatted(self, on) snip = '---%<' snip = snip + ('-' * (78 - len(snip))) Index: text_xml.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_xml.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -r1.24 -r1.25 *** text_xml.py 13 Mar 2002 21:00:23 -0000 1.24 --- text_xml.py 17 Mar 2002 11:03:57 -0000 1.25 *************** *** 113,117 **** def preformatted(self, on): ! self.in_pre = on result = '' if self.in_p: result = self.paragraph(0) --- 113,117 ---- def preformatted(self, on): ! FormatterBase.preformatted(self, on) result = '' if self.in_p: result = self.paragraph(0) From jhermann at users.sourceforge.net Sun Mar 17 03:04:08 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 03:04:08 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.73,1.74 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv27278/MoinMoin/i18n Modified Files: de.py Log Message: List processors on SystemInfo; more stable API (ability to check for in_pre) Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -r1.73 -r1.74 *** de.py 15 Mar 2002 22:24:38 -0000 1.73 --- de.py 17 Mar 2002 11:03:57 -0000 1.74 *************** *** 433,436 **** --- 433,439 ---- 'Info f?r "%s"', + 'Installed processors': + 'Installierte Prozessoren', + 'Invalid include arguments "%s"!': 'Ung?ltige "Include" Argumente: "%s"!', From jhermann at users.sourceforge.net Sun Mar 17 03:04:09 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 03:04:09 2002 Subject: [Moin-devel] CVS: MoinMoin/processor Colorize.py,1.1,1.2 Message-ID: Update of /cvsroot/moin/MoinMoin/processor In directory usw-pr-cvs1:/tmp/cvs-serv27278/MoinMoin/processor Modified Files: Colorize.py Log Message: List processors on SystemInfo; more stable API (ability to check for in_pre) Index: Colorize.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/processor/Colorize.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Colorize.py 16 Mar 2002 20:31:37 -0000 1.1 --- Colorize.py 17 Mar 2002 11:03:57 -0000 1.2 *************** *** 12,15 **** --- 12,18 ---- def process(formatter, lines): + if not formatter.in_pre: + sys.stdout.write(formatter.preformatted(1)) + if string.strip(lines[0]) == "#!python": del lines[0] From jhermann at users.sourceforge.net Sun Mar 17 05:47:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Sun Mar 17 05:47:03 2002 Subject: [Moin-devel] CVS: MoinMoin/parser wiki.py,1.83,1.84 Message-ID: Update of /cvsroot/moin/MoinMoin/parser In directory usw-pr-cvs1:/tmp/cvs-serv24018/MoinMoin/parser Modified Files: wiki.py Log Message: Processor bang path must directly follow {{{, except for Colorize (have to support 0.11 colored code displays); added first version of CSV processor Index: wiki.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/parser/wiki.py,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -r1.83 -r1.84 *** wiki.py 16 Mar 2002 20:31:37 -0000 1.83 --- wiki.py 17 Mar 2002 13:46:16 -0000 1.84 *************** *** 59,62 **** --- 59,63 ---- (?P\^.*?\^) (?P\{\{\{.*?\}\}\}) + (?P(\{\{\{#!.*)) (?P
(\{\{\{ ?|\}\}\}))
  (?P-{4,})
***************
*** 103,106 ****
--- 104,108 ----
          self.list_types = []
  
+ 
      def _check_p(self):
          if not (self.formatter.in_p or self.in_pre):
***************
*** 572,575 ****
--- 574,599 ----
  
  
+     def _processor_repl(self, word):
+         """Handle processed code displays."""
+         if word[:3] == '{{{': word = word[3:]
+ 
+         from MoinMoin.processor import processors
+         self.processor = None
+         processor_name = string.split(word[2:])[0]
+         if processor_name in processors:
+             self.processor = util.importName("MoinMoin.processor." +
+                 processor_name, "process")
+ 
+         if self.processor:
+             self.in_pre = 2
+             self.colorize_lines = [word]
+             return ''
+         else:
+             self._check_p()
+             self.in_pre = 1
+             return self.formatter.preformatted(self.in_pre) + \
+                 self.formatter.text(word)
+ 
+ 
      def _pre_repl(self, word):
          """Handle code displays."""
***************
*** 585,588 ****
--- 609,613 ----
          return word
  
+ 
      def _smiley_repl(self, word):
          """Handle smileys."""
***************
*** 773,777 ****
              if self.in_pre:
                  if self.in_pre == 2:
!                     # colorization mode
                      endpos = string.find(line, "}}}")
                      if endpos == -1:
--- 798,802 ----
              if self.in_pre:
                  if self.in_pre == 2:
!                     # processing mode
                      endpos = string.find(line, "}}}")
                      if endpos == -1:
***************
*** 785,803 ****
                      # send rest of line through regex machinery
                      line = line[endpos+3:]                    
!                 elif string.strip(line)[:2] == "#!":
!                     self.processor = None
!                     if string.find(line, 'python') > 0:
!                         from MoinMoin.processor.Colorize import process
!                         self.processor = process
!                     else:
!                         from MoinMoin.processor import processors
!                         processor_name = string.split(line[2:])[0]
!                         if processor_name in processors:
!                             self.processor = util.importName("MoinMoin.processor." +
!                                 processor_name, "process")
!                     if self.processor:
!                         self.in_pre = 2
!                         self.colorize_lines = [line]
!                         continue
              else:
                  # paragraph break on empty lines
--- 810,819 ----
                      # send rest of line through regex machinery
                      line = line[endpos+3:]                    
!                 elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0:
!                     from MoinMoin.processor.Colorize import process
!                     self.processor = process
!                     self.in_pre = 2
!                     self.colorize_lines = [line]
!                     continue
              else:
                  # paragraph break on empty lines




From jhermann at users.sourceforge.net  Sun Mar 17 05:47:03 2002
From: jhermann at users.sourceforge.net (J?rgen Hermann)
Date: Sun Mar 17 05:47:03 2002
Subject: [Moin-devel] CVS: dist CHANGES,1.82,1.83
Message-ID: 

Update of /cvsroot/moin/dist
In directory usw-pr-cvs1:/tmp/cvs-serv24018

Modified Files:
	CHANGES 
Log Message:
Processor bang path must directly follow {{{, except for Colorize (have
to support 0.11 colored code displays); added first version of CSV 
processor


Index: CHANGES
===================================================================
RCS file: /cvsroot/moin/dist/CHANGES,v
retrieving revision 1.82
retrieving revision 1.83
diff -C2 -r1.82 -r1.83
*** CHANGES	16 Mar 2002 20:31:37 -0000	1.82
--- CHANGES	17 Mar 2002 13:46:16 -0000	1.83
***************
*** 20,23 ****
--- 20,24 ----
      * Added "processor" concept, processors work on the data in "code
        displays" and are called by a bangpath in the first line of data
+     * Processors: Colorize, CSV (see HelpOnProcessors)
  
  Bugfixes:




From jhermann at users.sourceforge.net  Sun Mar 17 05:47:04 2002
From: jhermann at users.sourceforge.net (J?rgen Hermann)
Date: Sun Mar 17 05:47:04 2002
Subject: [Moin-devel] CVS: MoinMoin/processor CSV.py,NONE,1.1 __init__.py,1.1,1.2
Message-ID: 

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

Modified Files:
	__init__.py 
Added Files:
	CSV.py 
Log Message:
Processor bang path must directly follow {{{, except for Colorize (have
to support 0.11 colored code displays); added first version of CSV 
processor


--- NEW FILE: CSV.py ---
"""
    MoinMoin - Processor for CSV data

    Copyright (c) 2002 by J?rgen Hermann 
    All rights reserved, see COPYING for details.

    $Id: CSV.py,v 1.1 2002/03/17 13:46:17 jhermann Exp $
"""

import string, sys

def process(formatter, lines):
    # parse bangpath for arguments
    exclude = []
    for arg in string.split(lines[0])[1:]:
        if arg[0] == '-':
            try:
                idx = int(arg[1:])
            except ValueError:
                pass
            else:
                exclude.append(idx-1)

    # remove bang path, create output list
    del lines[0]
    output = []

    if lines[0]:
        # expect column headers in first line
        first = 1
    else:
        # empty first line, no bold headers
        first = 0
        del lines[0]

    output.append(formatter.table(1))
    for line in lines:
        output.append(formatter.table_row(1))
        cells = string.split(line, ';')
        for idx in range(len(cells)):
            if idx in exclude: continue
            output.append(formatter.table_cell(1))
            if first: output.append(formatter.strong(1))
            output.append(formatter.text(cells[idx]))
            if first: output.append(formatter.strong(0))
            output.append(formatter.table_cell(0))
        output.append(formatter.table_row(0))
        first = 0
    output.append(formatter.table(0))

    sys.stdout.write(string.join(output, ''))


Index: __init__.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/processor/__init__.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** __init__.py	16 Mar 2002 20:31:37 -0000	1.1
--- __init__.py	17 Mar 2002 13:46:17 -0000	1.2
***************
*** 10,16 ****
      since it is destroyed after processing.
  
!     Currently, when a processor is called, a preformatted
!     section is open. So you have to either close it immediately,
!     or after you emitted the output.
  
      $Id$
--- 10,15 ----
      since it is destroyed after processing.
  
!     The first line of the list is always the bang path, so
!     you can place arguments there and parse them.
  
      $Id$




From whisper at oz.net  Sun Mar 17 14:44:02 2002
From: whisper at oz.net (David LeBlanc)
Date: Sun Mar 17 14:44:02 2002
Subject: [Moin-devel] Running CVS version
Message-ID: 

Compared to a tarball, I see that a few things are missing from CVS:
setup.py for one. While i'm going to keep my distro Moin running, i'd like
to d/l and work with the CVS version too. I have CVS running and Moin d/l'd
to my machine, but i'm not clear on how to install it into a different
directory (moin-cvs for example)...

I also have or am about to have a very minor tweak to offer - should I just
upload it to the mailing list? It's actually done, but I want to merge it to
the latest wikiutil.py that's newer in CVS then the tarball.

Dave LeBlanc
Seattle, WA USA




From noreply at sourceforge.net  Mon Mar 18 08:13:02 2002
From: noreply at sourceforge.net (noreply at sourceforge.net)
Date: Mon Mar 18 08:13:02 2002
Subject: [Moin-devel] [ moin-Bugs-531403 ] wrong "action" for search form at bottom
Message-ID: 

Bugs item #531403, was opened at 2002-03-18 17:12
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531403&group_id=8482

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Ronny Buchmann (rbla)
Assigned to: Nobody/Anonymous (nobody)
Summary: wrong "action" for search form at bottom

Initial Comment:
if the actual page is not called as
...moin.cgi/FrontPage but instead only ...moin.cgi, the
link is non existend (to ...FrontPage)

i think correct is to always link the action to
"...moin.cgi" (webapi.getscriptname)

ronny

patch attached

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531403&group_id=8482



From lele at seldati.it  Mon Mar 18 09:42:11 2002
From: lele at seldati.it (Lele Gaifax)
Date: Mon Mar 18 09:42:11 2002
Subject: [Moin-devel] Notification message in user's preferred language
Message-ID: <15510.9919.127162.843987@paci.nautilus>

Hi all,

a few days ago Jurgen applied some changes to allow the selection of a
preferred language, so that MoinMoin can send its notification in the
proper language. Strangely, he did not apply the changes for
Page.py. Was there anything wrong?

Assuming he simply missed it, here below there is my last cut :)

thanx&bye,
lele.

-------------- next part --------------
Index: Page.py
===================================================================
RCS file: /cvsroot/moin/MoinMoin/Page.py,v
retrieving revision 1.108
diff -u -r1.108 Page.py
--- Page.py	13 Mar 2002 03:21:48 -0000	1.108
+++ Page.py	18 Mar 2002 17:33:47 -0000
@@ -645,55 +645,69 @@
         # add the address only if the user has subscribed to the page and
         # the user is not the current editor
         userlist = user.getUserList()
-        emails = []
+        emails_for_lang = {}
         for uid in userlist:
             if uid == user.current.id: continue # no self notification
             subscriber = user.User(uid)
             if not subscriber.email: continue # skip empty email address
 
-            if subscriber.isSubscribedTo(pageList):
-                emails.append(subscriber.email)
+            if subscriber.isSubscribedTo(pageList):               
+                if subscriber.language:
+                    pref_lang = subscriber.language
+                else:
+                    pref_lang = 'en'
+                # end if
+                
+                if emails_for_lang.has_key(pref_lang):
+                    emails_for_lang[pref_lang].append(subscriber.email)
+                else:
+                    emails_for_lang[pref_lang] = [subscriber.email]
+                # end if
+            # end if
+        # end for
 
-        if emails:
-            # send email to all subscribers; note that text must be in
-            # English for all users, since currently we cannot (easily)
-            # send the text in the recipient's language.
-            # !!! TODO: make this possible
-            mailBody = ("Dear Wiki user,\n\n"
-                'You have subscribed to a wiki page or wiki category on "%(sitename)s" for change notification.\n\n'
-                "The following page has been changed by %(editor)s:\n"
-                "%(pagelink)s\n\n") % {
-                    'editor': user.current.name or os.environ.get('REMOTE_ADDR', ""),
+        emails_results = []
+        if len (emails_for_lang):
+            # send email to all subscribers
+            for lang in emails_for_lang.keys():
+                mailBody = _("Dear Wiki user,\n\n"
+                             'You have subscribed to a wiki page or wiki category on "%(sitename)s" for change notification.\n\n'
+                             "The following page has been changed by %(editor)s:\n"
+                             "%(pagelink)s\n\n", lang) % {
+                    'editor': user.current.name or _("Someone coming from '%s'", lang) % os.environ.get('REMOTE_ADDR', _("", lang)),
                     'pagelink': webapi.getQualifiedURL(self.url()),
                     'sitename': config.sitename or webapi.getBaseURL(),
-            }
+                    }
 
-            if comment:
-                mailBody = mailBody + \
-                    "The comment on the change is:\n%s\n\n" % comment
+                if comment:
+                    mailBody = mailBody + \
+                               _("The comment on the change is:\n%s\n\n", lang) % comment
 
-            # get a list of old revisions, and append a diff
-            oldversions = wikiutil.getBackupList(config.backup_dir, self.page_name)
-            if not oldversions:
-                mailBody = mailBody + \
-                    "No older revisions of the page stored, diff not available."
-            else:
-                page_file, backup_file, lines = wikiutil.pagediff(self.page_name, oldversions[0])
-                if lines and len(lines) > 2:
-                    mailBody = "%s%s\n%s" % (
-                        mailBody, ("-" * 78), string.join(lines[2:], ''))
+                # get a list of old revisions, and append a diff
+                oldversions = wikiutil.getBackupList(config.backup_dir, self.page_name)
+                if not oldversions:
+                    mailBody = mailBody + \
+                               _("No older revisions of the page stored, diff not available.", lang)
                 else:
-                    mailBody = mailBody + "No differences found!\n"
+                    page_file, backup_file, lines = wikiutil.pagediff(self.page_name, oldversions[0])
+                    if lines and len(lines) > 2:
+                        mailBody = "%s%s\n%s\n%s" % (
+                            mailBody,
+                            _("Here below the diff between the two latest revisions of the page", lang),
+                            ("-" * 78), string.join(lines[2:], ''))
+                    else:
+                        mailBody = mailBody + _("No differences found!\n", lang)
 
-            msg = _('\n'
-                    'Sent a mail notification to these addresses: %s\n'
-                    '
Result was: ') % string.join(emails, ", ") - msg = msg + util.sendmail(emails, - '[%(sitename)s] Update of "%(pagename)s"' % { - 'sitename': config.sitename or "Wiki", - 'pagename': self.page_name, - }, - mailBody, mail_from=user.current.email) + emails_results.append ('[' + lang + '] ' + string.join (emails_for_lang[lang], ',') + ':' + + util.sendmail(emails_for_lang[lang], + _('[%(sitename)s] Update of "%(pagename)s"', lang) % { + 'sitename': config.sitename or "Wiki", + 'pagename': self.page_name, + }, + mailBody, mail_from=user.current.email)) + # end for + + msg = _('\nSent a mail notification to these addresses: %s\n') % string.join(emails_results, "\n") return msg return _('Nobody subscribed to this page, no mail sent.') -------------- next part -------------- -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From lele at seldati.it Mon Mar 18 09:45:08 2002 From: lele at seldati.it (Lele Gaifax) Date: Mon Mar 18 09:45:08 2002 Subject: [Moin-devel] Italian messages Message-ID: <15510.10105.959168.861602@paci.nautilus> I'm attaching below the up-to-date italian messages catalog. Thanx&bye, lele. -------------- next part -------------- A non-text attachment was scrubbed... Name: it.py Type: application/octet-stream Size: 19671 bytes Desc: not available URL: -------------- next part -------------- -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From j.her at t-online.de Mon Mar 18 10:48:02 2002 From: j.her at t-online.de (Juergen Hermann) Date: Mon Mar 18 10:48:02 2002 Subject: [Moin-devel] Running CVS version In-Reply-To: Message-ID: <16n29d-0f3EgaC@fwd06.sul.t-online.com> On Sun, 17 Mar 2002 14:45:55 -0800, David LeBlanc wrote: >Compared to a tarball, I see that a few things are missing from CVS: >setup.py for one. Quoting from HelpForDevelopers: 3 CVS structure For historical reasons, the virtual CVS module "moin" combines the "dist" and the "MoinMoin" module; "moin" is the only module you should check out. Ciao, J?rgen From jh at web.de Mon Mar 18 11:11:10 2002 From: jh at web.de (Juergen Hermann) Date: Mon Mar 18 11:11:10 2002 Subject: [Moin-devel] Notification message in user's preferred language In-Reply-To: <15510.9919.127162.843987@paci.nautilus> Message-ID: On Mon, 18 Mar 2002 18:41:19 +0100, Lele Gaifax wrote: >proper language. Strangely, he did not apply the changes for >Page.py. Was there anything wrong? I just did not come around to it yet, and the changes were unrelated. Ciao, J?rgen From whisper at oz.net Mon Mar 18 11:32:08 2002 From: whisper at oz.net (David LeBlanc) Date: Mon Mar 18 11:32:08 2002 Subject: [Moin-devel] Running CVS version In-Reply-To: <16n29d-0f3EgaC@fwd06.sul.t-online.com> Message-ID: Ok, point taken, however the CVS version of setup.py doesn't install the new processor directory. Dave LeBlanc Seattle, WA USA > -----Original Message----- > From: Juergen Hermann [mailto:j.her at t-online.de] > Sent: Monday, March 18, 2002 10:47 > To: David LeBlanc; moin-devel at lists.sourceforge.net > Subject: Re: [Moin-devel] Running CVS version > > > On Sun, 17 Mar 2002 14:45:55 -0800, David LeBlanc wrote: > > >Compared to a tarball, I see that a few things are missing from CVS: > >setup.py for one. > > Quoting from HelpForDevelopers: > > 3 CVS structure > > For historical reasons, the virtual CVS module "moin" combines the > "dist" and the "MoinMoin" module; "moin" is the only module you should > check out. > > > Ciao, J?rgen > > > From jh at web.de Mon Mar 18 11:52:15 2002 From: jh at web.de (Juergen Hermann) Date: Mon Mar 18 11:52:15 2002 Subject: [Moin-devel] Running CVS version In-Reply-To: Message-ID: On Mon, 18 Mar 2002 11:34:28 -0800, David LeBlanc wrote: >Ok, point taken, however the CVS version of setup.py doesn't install the new >processor directory. Yes, I overlooked that. Thx. Ciao, J?rgen From jhermann at users.sourceforge.net Mon Mar 18 12:00:25 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 18 12:00:25 2002 Subject: [Moin-devel] CVS: dist setup.py,1.15,1.16 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv10820 Modified Files: setup.py Log Message: Added processor sub-package Index: setup.py =================================================================== RCS file: /cvsroot/moin/dist/setup.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** setup.py 7 Feb 2002 01:03:32 -0000 1.15 --- setup.py 18 Mar 2002 19:59:46 -0000 1.16 *************** *** 139,142 **** --- 139,143 ---- 'MoinMoin.macro', 'MoinMoin.parser', + 'MoinMoin.processor', 'MoinMoin.py15', 'MoinMoin.scripts', From whisper at oz.net Mon Mar 18 12:34:49 2002 From: whisper at oz.net (David LeBlanc) Date: Mon Mar 18 12:34:49 2002 Subject: [Moin-devel] Problem with CVS Moin Message-ID: Ok, I updated CVS, then did the following: L:/cvs/moin setup.py install --prefix=h:\CVSMoin cd h:/CVSMoin md CVSMoin cd CVSMoin # now in h:/CVSMoin/CVSMoin xcopy h:/CVSMoin/share/moin/cgi-bin/* . md data xcopy h:/CVSMoin/share/moin/data/* data Now the directory structure looks like: h: CVSMoin CVSMoin (moin.bat, moin.cgi, moin_config.py) data (the usual subdirectories) MoinMoin "" Scripts "" share "" httpd.conf: Alias /CVSMoin/ "h:/CVSMoin/share/moin/htdocs/" ScriptAlias /CVSMoin "h:/CVSMoin/CVSMoin/moin.bat" Moin.bat: @echo off set PYTHONPATH=h:\CVSMoin h: cd h:\CVSMoin\CVSMoin j:\Python21\python.exe moin.cgi moin_config.py: # basic options (you normally need to change these) sitename = 'CVS Moin' interwikiname = None data_dir = './data/' url_prefix = '/CVSMoin' logo_url = url_prefix + '/img/moinmoin.gif' Doing http://localhost/CVSMoin brings up the FrontPage, but when I click on any other local link (in this example: "WikiWikiWeb"), I get: Not Found The requested URL /CVSMoin/WikiWikiWeb was not found on this server. --------------------------------------------------------------------------- ----- Apache/1.3.23 Server at localhost Port 80 I don't see what might be wrong! Dave LeBlanc Seattle, WA USA From jhermann at users.sourceforge.net Mon Mar 18 13:10:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 18 13:10:07 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnProcessors,1.1,1.2 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv19811 Modified Files: HelpOnProcessors Log Message: More on processors Index: HelpOnProcessors =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnProcessors,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** HelpOnProcessors 17 Mar 2002 11:01:14 -0000 1.1 --- HelpOnProcessors 18 Mar 2002 20:28:48 -0000 1.2 *************** *** 7,15 **** For more information on the possible markup, see HelpOnEditing. ! === Examples === ! Colorized Python source code: {{{ #!python ! colorized = "python" ! }}} --- 7,41 ---- For more information on the possible markup, see HelpOnEditing. ! === Colorize === ! The `Colorize` processor currently knows of Python sources, and can syntax-hilight them. Besides the canonical way to call that processor, MoinMoin also recognizes a traditional bang path on the first line of the script, as long as it contains "`python`". ! ! Example: {{{ #!python ! if lines[0].contains("python"): ! print "colors!" ! }}} ! ! === CSV === ! ! The CSV processor works on so-called ''comma separated values'', though the comma is now usually a semicolon. ! The first line is considered to contain column titles that are rendered in '''bold''', so when you don't want table headers, leave the first line empty. ! ! The bang path can contain "`-`''index''" arguments, to hide certain columns from the output; column indices are counted starting from 1. ! ! /!\ The current code contains a ''very'' simple CSV parser. ! ! MoinMoin Version History: {{{#!CSV -3 ! Version;Date;HIDDEN! ! 0.11;2002-03-11;Revision 1.151 ! 0.10;2001-10-28;Revision 1.134 ! 0.9;2001-05-07; ! 0.8;2001-01-23; ! 0.7;2000-12-06; ! 0.6;2000-12-04; ! 0.5;2000-11-17; ! 0.4;2000-11-01; ! 0.3;2000-10-25; ! 0.2;2000-08-26; ! 0.1;2000-07-29;}}} From noreply at sourceforge.net Mon Mar 18 14:30:07 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Mon Mar 18 14:30:07 2002 Subject: [Moin-devel] [ moin-Bugs-531617 ] no valid html Message-ID: Bugs item #531617, was opened at 2002-03-18 23:29 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Ronny Buchmann (rbla) Assigned to: Nobody/Anonymous (nobody) Summary: no valid html Initial Comment: as everybody knows moinmoin doesn't produce valid html. i consider this a bug. i have a patch for valid html 4.01 transitional code. the patch is safe (i think) and doesnt change look, with one exception: the search buttons cant have attributes like images (hspace, border etc), only css is allowed, but netscape 4.x doesnt understand it right, so it looks a bit different (borders!). please test and apply (at least the other chunks) ronny ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 From jhermann at users.sourceforge.net Mon Mar 18 14:46:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 18 14:46:07 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.108,1.109 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv32171 Modified Files: Page.py Log Message: Emit XHTML-compliant query strings Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.108 retrieving revision 1.109 diff -C2 -r1.108 -r1.109 *** Page.py 13 Mar 2002 03:21:48 -0000 1.108 --- Page.py 18 Mar 2002 22:45:38 -0000 1.109 *************** *** 106,110 **** """ url = "%s/%s" % (webapi.getScriptname(), wikiutil.quoteWikiname(self.page_name)) ! if querystr: url = "%s?%s" % (url, querystr) return url --- 106,110 ---- """ url = "%s/%s" % (webapi.getScriptname(), wikiutil.quoteWikiname(self.page_name)) ! if querystr: url = "%s?%s" % (url, string.replace(querystr, '&', '&')) return url *************** *** 115,119 **** fmt = getattr(self, 'formatter', None) url = wikiutil.quoteWikiname(self.page_name) ! if querystr: url = "%s?%s" % (url, querystr) if anchor: url = "%s#%s" % (url, urllib.quote_plus(anchor)) if self.exists(): --- 115,119 ---- fmt = getattr(self, 'formatter', None) url = wikiutil.quoteWikiname(self.page_name) ! if querystr: url = "%s?%s" % (url, string.replace(querystr, '&', '&')) if anchor: url = "%s#%s" % (url, urllib.quote_plus(anchor)) if self.exists(): From noreply at sourceforge.net Mon Mar 18 14:50:18 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Mon Mar 18 14:50:18 2002 Subject: [Moin-devel] [ moin-Bugs-531617 ] no valid html Message-ID: Bugs item #531617, was opened at 2002-03-18 23:29 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Ronny Buchmann (rbla) Assigned to: Nobody/Anonymous (nobody) Summary: no valid html Initial Comment: as everybody knows moinmoin doesn't produce valid html. i consider this a bug. i have a patch for valid html 4.01 transitional code. the patch is safe (i think) and doesnt change look, with one exception: the search buttons cant have attributes like images (hspace, border etc), only css is allowed, but netscape 4.x doesnt understand it right, so it looks a bit different (borders!). please test and apply (at least the other chunks) ronny ---------------------------------------------------------------------- >Comment By: J?rgen Hermann (jhermann) Date: 2002-03-18 23:49 Message: Logged In: YES user_id=39128 much easier to fix is at ONE place in url() and link_to() the inline search forms will NOT be fixed, because they are how they are intentionally for any remaining issues you might reopen the bug (do diffs against current CVS), but don't hold your breath; as we approach XHTML compliance and templating, the issue isn't worth any major effort on current code. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 From jhermann at users.sourceforge.net Mon Mar 18 14:54:01 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 18 14:54:01 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.88,1.89 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv2088 Modified Files: wikiutil.py Log Message: #531403: wrong "action" for search form at bottom Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.88 retrieving revision 1.89 diff -C2 -r1.88 -r1.89 *** wikiutil.py 16 Mar 2002 18:58:43 -0000 1.88 --- wikiutil.py 18 Mar 2002 22:52:58 -0000 1.89 *************** *** 597,604 **** print """ !
! """ % cgi.escape(pagename, 1) if keywords.get('showpage', 0): --- 597,604 ---- print """ !
! """ % (webapi.getScriptname(), cgi.escape(pagename, 1)) if keywords.get('showpage', 0): From noreply at sourceforge.net Mon Mar 18 14:54:03 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Mon Mar 18 14:54:03 2002 Subject: [Moin-devel] [ moin-Bugs-531403 ] wrong "action" for search form at bottom Message-ID: Bugs item #531403, was opened at 2002-03-18 17:12 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531403&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Ronny Buchmann (rbla) Assigned to: Nobody/Anonymous (nobody) >Summary: wrong "action" for search form at bottom Initial Comment: if the actual page is not called as ...moin.cgi/FrontPage but instead only ...moin.cgi, the link is non existend (to ...FrontPage) i think correct is to always link the action to "...moin.cgi" (webapi.getscriptname) ronny patch attached ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531403&group_id=8482 From noreply at sourceforge.net Mon Mar 18 14:59:03 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Mon Mar 18 14:59:03 2002 Subject: [Moin-devel] [ moin-Feature Requests-491151 ] showactions=0 from config Message-ID: Feature Requests item #491151, was opened at 2001-12-10 15:54 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=358482&aid=491151&group_id=8482 Category: None Group: None >Status: Closed Priority: 5 Submitted By: Daniel Drucker (placain) Assigned to: Nobody/Anonymous (nobody) Summary: showactions=0 from config Initial Comment: In the interests of factoring out as much as possible into config file... I don't want any page to have the "Or try one of these actions" footer. A showactions = 0 option would be nice. ---------------------------------------------------------------------- >Comment By: J?rgen Hermann (jhermann) Date: 2002-03-18 23:58 Message: Logged In: YES user_id=39128 Rename uppercase actions to lowercase, or remove them altogether, then such a line will not appear. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=358482&aid=491151&group_id=8482 From whisper at oz.net Mon Mar 18 17:30:04 2002 From: whisper at oz.net (David LeBlanc) Date: Mon Mar 18 17:30:04 2002 Subject: [Moin-devel] Problem with CVS Moin In-Reply-To: Message-ID: Ok, I found the problem. If the ScriptAlias and the Alias entries in the httpd.conf file have the same SpellingAndCapitalization, then Apache blows chunks. If they differ only in capitalization, then all is fine. Dave LeBlanc Seattle, WA USA > -----Original Message----- > From: moin-devel-admin at lists.sourceforge.net > [mailto:moin-devel-admin at lists.sourceforge.net]On Behalf Of David > LeBlanc > Sent: Monday, March 18, 2002 12:34 > To: moin-devel at lists.sourceforge.net > Subject: [Moin-devel] Problem with CVS Moin > > > Ok, I updated CVS, then did the following: > > L:/cvs/moin setup.py install --prefix=h:\CVSMoin > > cd h:/CVSMoin > > md CVSMoin > > cd CVSMoin # now in h:/CVSMoin/CVSMoin > > xcopy h:/CVSMoin/share/moin/cgi-bin/* . > > md data > > xcopy h:/CVSMoin/share/moin/data/* data > > Now the directory structure looks like: > h: > CVSMoin > CVSMoin (moin.bat, moin.cgi, moin_config.py) > data (the usual subdirectories) > MoinMoin "" > Scripts "" > share "" > > httpd.conf: > Alias /CVSMoin/ "h:/CVSMoin/share/moin/htdocs/" > ScriptAlias /CVSMoin "h:/CVSMoin/CVSMoin/moin.bat" > > Moin.bat: > @echo off > set PYTHONPATH=h:\CVSMoin > h: > cd h:\CVSMoin\CVSMoin > j:\Python21\python.exe moin.cgi > > moin_config.py: > # basic options (you normally need to change these) > sitename = 'CVS Moin' > interwikiname = None > data_dir = './data/' > url_prefix = '/CVSMoin' > logo_url = url_prefix + '/img/moinmoin.gif' > > Doing http://localhost/CVSMoin brings up the FrontPage, but when > I click on > any other local link (in this example: "WikiWikiWeb"), I get: > Not Found > The requested URL /CVSMoin/WikiWikiWeb was not found on this server. > > ------------------------------------------------------------------ > --------- > ----- > Apache/1.3.23 Server at localhost Port 80 > > > I don't see what might be wrong! > > Dave LeBlanc > Seattle, WA USA > > > _______________________________________________ > Moin-devel mailing list > Moin-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/moin-devel > From noreply at sourceforge.net Mon Mar 18 23:43:18 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Mon Mar 18 23:43:18 2002 Subject: [Moin-devel] [ moin-Bugs-531617 ] no valid html/xhtml Message-ID: Bugs item #531617, was opened at 2002-03-18 23:29 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 Category: None Group: None >Status: Open >Resolution: Wont Fix >Priority: 6 Submitted By: Ronny Buchmann (rbla) Assigned to: Nobody/Anonymous (nobody) >Summary: no valid html/xhtml Initial Comment: as everybody knows moinmoin doesn't produce valid html. i consider this a bug. i have a patch for valid html 4.01 transitional code. the patch is safe (i think) and doesnt change look, with one exception: the search buttons cant have attributes like images (hspace, border etc), only css is allowed, but netscape 4.x doesnt understand it right, so it looks a bit different (borders!). please test and apply (at least the other chunks) ronny ---------------------------------------------------------------------- >Comment By: Ronny Buchmann (rbla) Date: 2002-03-19 08:42 Message: Logged In: YES user_id=91363 no, your change to Page.py isnt enough. and i dont think it makes sense to use string.replace to correct typos. (but if your going to actually use url() and link_to(), then i dont have a problem) and if you want xhtml, thats no problem. i'll start making some diffs ---------------------------------------------------------------------- Comment By: J?rgen Hermann (jhermann) Date: 2002-03-18 23:49 Message: Logged In: YES user_id=39128 much easier to fix is at ONE place in url() and link_to() the inline search forms will NOT be fixed, because they are how they are intentionally for any remaining issues you might reopen the bug (do diffs against current CVS), but don't hold your breath; as we approach XHTML compliance and templating, the issue isn't worth any major effort on current code. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 From noreply at sourceforge.net Tue Mar 19 05:48:07 2002 From: noreply at sourceforge.net (noreply at sourceforge.net) Date: Tue Mar 19 05:48:07 2002 Subject: [Moin-devel] [ moin-Bugs-531617 ] no valid html/xhtml Message-ID: Bugs item #531617, was opened at 2002-03-18 23:29 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 Category: None Group: None Status: Open Resolution: Wont Fix Priority: 6 Submitted By: Ronny Buchmann (rbla) Assigned to: Nobody/Anonymous (nobody) Summary: no valid html/xhtml Initial Comment: as everybody knows moinmoin doesn't produce valid html. i consider this a bug. i have a patch for valid html 4.01 transitional code. the patch is safe (i think) and doesnt change look, with one exception: the search buttons cant have attributes like images (hspace, border etc), only css is allowed, but netscape 4.x doesnt understand it right, so it looks a bit different (borders!). please test and apply (at least the other chunks) ronny ---------------------------------------------------------------------- >Comment By: Ronny Buchmann (rbla) Date: 2002-03-19 14:47 Message: Logged In: YES user_id=91363 so heres the next patch: moinmoin-xhtml.1.patch issues adressed: * namespace for * elements and attributes only lowercase * empty elements (br, hr, meta, img, input) * empty attributes (nowrap, checked) * all attribute values with quotes i hope to have found all occurences issues not adressed: * no closing tag for

(is there some magic involved? i dont find my way through the code here, but i assume it's easy for you, j?rgen) * printing of xml header and dtd (trivial) ---------------------------------------------------------------------- Comment By: Ronny Buchmann (rbla) Date: 2002-03-19 08:42 Message: Logged In: YES user_id=91363 no, your change to Page.py isnt enough. and i dont think it makes sense to use string.replace to correct typos. (but if your going to actually use url() and link_to(), then i dont have a problem) and if you want xhtml, thats no problem. i'll start making some diffs ---------------------------------------------------------------------- Comment By: J?rgen Hermann (jhermann) Date: 2002-03-18 23:49 Message: Logged In: YES user_id=39128 much easier to fix is at ONE place in url() and link_to() the inline search forms will NOT be fixed, because they are how they are intentionally for any remaining issues you might reopen the bug (do diffs against current CVS), but don't hold your breath; as we approach XHTML compliance and templating, the issue isn't worth any major effort on current code. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=108482&aid=531617&group_id=8482 From j.her at t-online.de Tue Mar 19 11:56:02 2002 From: j.her at t-online.de (Juergen Hermann) Date: Tue Mar 19 11:56:02 2002 Subject: [Moin-devel] Problem with CVS Moin In-Reply-To: Message-ID: <16nOlV-0V7YBMC@fwd02.sul.t-online.com> On Mon, 18 Mar 2002 17:32:03 -0800, David LeBlanc wrote: >Ok, I found the problem. If the ScriptAlias and the Alias entries in the >httpd.conf file have the same SpellingAndCapitalization, then Apache blows >chunks. If they differ only in capitalization, then all is fine. You deviated from the install docs, and see what you got. ;) Ciao, J?rgen From whisper at oz.net Tue Mar 19 13:17:02 2002 From: whisper at oz.net (David LeBlanc) Date: Tue Mar 19 13:17:02 2002 Subject: [Moin-devel] Problem with CVS Moin In-Reply-To: <16nOlV-0V7YBMC@fwd02.sul.t-online.com> Message-ID: Yeah, funny how I might do that if I want both a production version of moin and a cvs version installed - Apache REALLY can't tell the two apart if the Alias and ScriptAlias are the same bloody names for two different installations! AND i'll just bet there's not one word about making sure that the Alias and ScriptAlias are different, at least in capitalization in the install docs! (I looked - there isn't!) The "Alias /wiki/..." line _does_ have to be different if you're using different code bases! It's easy to trouble shoot a problem when someone else has found the solution! Dave LeBlanc Seattle, WA USA > -----Original Message----- > From: Juergen Hermann [mailto:j.her at t-online.de] > Sent: Tuesday, March 19, 2002 10:56 > To: David LeBlanc; moin-devel at lists.sourceforge.net > Subject: RE: [Moin-devel] Problem with CVS Moin > > > On Mon, 18 Mar 2002 17:32:03 -0800, David LeBlanc wrote: > > >Ok, I found the problem. If the ScriptAlias and the Alias entries in the > >httpd.conf file have the same SpellingAndCapitalization, then > Apache blows > >chunks. If they differ only in capitalization, then all is fine. > > You deviated from the install docs, and see what you got. ;) > > Ciao, J?rgen > > > From jhermann at users.sourceforge.net Tue Mar 19 15:07:37 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 19 15:07:37 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.83,1.84 setup.py,1.16,1.17 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv582 Modified Files: CHANGES setup.py Log Message: New icons: "(OK)" and "(./)" (see HelpOnSmiley chmod() for scripts in setup.py Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -r1.83 -r1.84 *** CHANGES 17 Mar 2002 13:46:16 -0000 1.83 --- CHANGES 19 Mar 2002 23:06:54 -0000 1.84 *************** *** 21,24 **** --- 21,25 ---- displays" and are called by a bangpath in the first line of data * Processors: Colorize, CSV (see HelpOnProcessors) + * New icons: "(OK)" and "(./)" (see HelpOnSmileys) Bugfixes: Index: setup.py =================================================================== RCS file: /cvsroot/moin/dist/setup.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** setup.py 18 Mar 2002 19:59:46 -0000 1.16 --- setup.py 19 Mar 2002 23:06:54 -0000 1.17 *************** *** 94,97 **** --- 94,98 ---- finally: file.close() + os.chmod(outfile, 0755) From jhermann at users.sourceforge.net Tue Mar 19 15:07:41 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 19 15:07:41 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.89,1.90 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv582/MoinMoin Modified Files: wikiutil.py Log Message: New icons: "(OK)" and "(./)" (see HelpOnSmiley chmod() for scripts in setup.py Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.89 retrieving revision 1.90 diff -C2 -r1.89 -r1.90 *** wikiutil.py 18 Mar 2002 22:52:58 -0000 1.89 --- wikiutil.py 19 Mar 2002 23:06:55 -0000 1.90 *************** *** 59,62 **** --- 59,66 ---- "|)": (15, 15, "tired.gif"), ";))": (15, 15, "lol.gif"), + + # version 0.12 + "(./)": (20, 15, "checkmark.gif"), + "(OK)": (14, 12, "thumbs-up.gif"), } From jhermann at users.sourceforge.net Tue Mar 19 15:07:44 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 19 15:07:44 2002 Subject: [Moin-devel] CVS: dist/wiki/htdocs/img thumbs-up.gif,NONE,1.1 Message-ID: Update of /cvsroot/moin/dist/wiki/htdocs/img In directory usw-pr-cvs1:/tmp/cvs-serv582/wiki/htdocs/img Added Files: thumbs-up.gif Log Message: New icons: "(OK)" and "(./)" (see HelpOnSmiley chmod() for scripts in setup.py --- NEW FILE: thumbs-up.gif --- GIF89a From jhermann at users.sourceforge.net Wed Mar 20 14:41:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 14:41:05 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.84,1.85 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv27775 Modified Files: CHANGES Log Message: Search result contexts Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -r1.84 -r1.85 *** CHANGES 19 Mar 2002 23:06:54 -0000 1.84 --- CHANGES 20 Mar 2002 22:40:46 -0000 1.85 *************** *** 22,25 **** --- 22,26 ---- * Processors: Colorize, CSV (see HelpOnProcessors) * New icons: "(OK)" and "(./)" (see HelpOnSmileys) + * FullSearch now displays context information for search hits Bugfixes: From jhermann at users.sourceforge.net Wed Mar 20 14:41:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 14:41:06 2002 Subject: [Moin-devel] CVS: MoinMoin wikiaction.py,1.59,1.60 wikimacro.py,1.35,1.36 wikiutil.py,1.90,1.91 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv27775/MoinMoin Modified Files: wikiaction.py wikimacro.py wikiutil.py Log Message: Search result contexts Index: wikiaction.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -r1.59 -r1.60 *** wikiaction.py 13 Mar 2002 22:46:25 -0000 1.59 --- wikiaction.py 20 Mar 2002 22:40:46 -0000 1.60 *************** *** 43,46 **** --- 43,51 ---- else: needle = '' + try: + context = int(form['context'].value) + except (KeyError, ValueError): + context = 0 + max_context = 10 # only show first `max_context` contexts # send title *************** *** 48,60 **** # search the pages ! pagecount, hits = wikiutil.searchPages(needle, literal=form.has_key('literal')) # print the result print "

    " ! for (count, page_name) in hits: print '
  • ' + Page(page_name).link_to(querystr= 'action=highlight&value=%s' % urllib.quote_plus(needle)) print ' . . . . ' + `count` print (_(' match'), _(' matches'))[count != 1] print "
" --- 53,73 ---- # search the pages ! pagecount, hits = wikiutil.searchPages(needle, ! literal=form.has_key('literal'), ! context=context) # print the result print "
    " ! for (count, page_name, fragments) in hits: print '
  • ' + Page(page_name).link_to(querystr= 'action=highlight&value=%s' % urllib.quote_plus(needle)) print ' . . . . ' + `count` print (_(' match'), _(' matches'))[count != 1] + if context: + for hit in fragments[:max_context]: + print '
    ', ' '*8, '...%s%s%s...' \ + % tuple(map(cgi.escape, hit)) + if len(fragments) > max_context: + print '
    ', ' '*8, '...' print "
" Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -r1.35 -r1.36 *** wikimacro.py 17 Mar 2002 11:03:57 -0000 1.35 --- wikimacro.py 20 Mar 2002 22:40:46 -0000 1.36 *************** *** 97,105 **** else: default = '' ! return self.formatter.rawHTML(""" ! ! ! ! """ % (type, default, _("Go"))) def _macro_GoTo(self, args): --- 97,110 ---- else: default = '' ! context = '' ! if type == "fullsearch": ! context = '
' + \ ! _('Display context of search results') ! return self.formatter.rawHTML(( ! '
' ! '' ! '' ! '' ! '%s
') % (type, default, _("Go"), context)) def _macro_GoTo(self, args): Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -r1.90 -r1.91 *** wikiutil.py 19 Mar 2002 23:06:55 -0000 1.90 --- wikiutil.py 20 Mar 2002 22:40:46 -0000 1.91 *************** *** 241,265 **** (number of pages, hits). literal = 0: try to treat "needle" as a regex, case-insensitive literal = 1: "needle" is definitely NOT a regex and searched case-sensitive """ from MoinMoin.Page import Page ! try: ! needle_re = re.compile(needle, re.IGNORECASE) ! except re.error: needle_re = re.compile(re.escape(needle), re.IGNORECASE) hits = [] - literal = kw.get('literal', 0) all_pages = getPageList(config.text_dir) for page_name in all_pages: body = Page(page_name).get_raw_body() ! if literal: ! count = string.count(body, needle) else: ! count = len(needle_re.findall(body)) ! if count: ! hits.append((count, page_name)) # The default comparison for tuples compares elements in order, --- 241,291 ---- (number of pages, hits). + `hits` is a list of tuples containing the number of hits on a page + and the pagename. When context>0, a list of triples with the text of + the hit and the text on each side of it is added; otherwise, the + third element is None. + literal = 0: try to treat "needle" as a regex, case-insensitive literal = 1: "needle" is definitely NOT a regex and searched case-sensitive + context != 0: Provide `context` chars of text on each side of a hit """ from MoinMoin.Page import Page ! literal = kw.get('literal', 0) ! context = int(kw.get('context', 0)) ! ! if literal and context: needle_re = re.compile(re.escape(needle), re.IGNORECASE) + elif not literal: + try: + needle_re = re.compile(needle, re.IGNORECASE) + except re.error: + needle_re = re.compile(re.escape(needle), re.IGNORECASE) hits = [] all_pages = getPageList(config.text_dir) for page_name in all_pages: body = Page(page_name).get_raw_body() ! if context: ! pos = 0 ! fragments = [] ! while 1: ! match = needle_re.search(body, pos) ! if not match: break ! pos = match.end()+1 ! fragments.append(( ! body[match.start()-context:match.start()], ! body[match.start():match.end()], ! body[match.end():match.end()+context], ! )) ! if fragments: ! hits.append((len(fragments), page_name, fragments)) else: ! if literal: ! count = string.count(body, needle) ! else: ! count = len(needle_re.findall(body)) ! if count: ! hits.append((count, page_name, None)) # The default comparison for tuples compares elements in order, *************** *** 604,607 **** --- 630,634 ----
+ """ % (webapi.getScriptname(), cgi.escape(pagename, 1)) From jhermann at users.sourceforge.net Wed Mar 20 14:41:07 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 14:41:07 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.74,1.75 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv27775/MoinMoin/i18n Modified Files: de.py Log Message: Search result contexts Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -r1.74 -r1.75 *** de.py 17 Mar 2002 11:03:57 -0000 1.74 --- de.py 20 Mar 2002 22:40:47 -0000 1.75 *************** *** 343,346 **** --- 343,349 ---- '?nderungen von "%s"', + 'Display context of search results': + 'Umgebung der Treffer anzeigen', + 'Distribution of User-Agent Types': 'Verteilung der Zugriffe auf Browsertypen', From jhermann at users.sourceforge.net Wed Mar 20 15:05:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:05:05 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.75,1.76 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv6514/MoinMoin/i18n Modified Files: de.py Log Message: Case-sensitive search Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -r1.75 -r1.76 *** de.py 20 Mar 2002 22:40:47 -0000 1.75 --- de.py 20 Mar 2002 23:04:17 -0000 1.76 *************** *** 307,310 **** --- 307,313 ---- 'Abbrechen', + 'Case-sensitive searching': + 'Gro?-/Kleinschreibung beachten', + 'Check Spelling': 'Rechtschreibung pr?fen', From jhermann at users.sourceforge.net Wed Mar 20 15:05:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:05:06 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.109,1.110 wikiaction.py,1.60,1.61 wikimacro.py,1.36,1.37 wikiutil.py,1.91,1.92 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv6514/MoinMoin Modified Files: Page.py wikiaction.py wikimacro.py wikiutil.py Log Message: Case-sensitive search Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -r1.109 -r1.110 *** Page.py 18 Mar 2002 22:45:38 -0000 1.109 --- Page.py 20 Mar 2002 23:04:17 -0000 1.110 *************** *** 287,291 **** if config.allow_subpages and string.count(page_needle, '/'): page_needle = '/' + string.split(page_needle, '/')[-1] ! link = '%s/%s?action=fullsearch&value=%s&literal=1' % ( webapi.getScriptname(), wikiutil.quoteWikiname(self.page_name), --- 287,291 ---- if config.allow_subpages and string.count(page_needle, '/'): page_needle = '/' + string.split(page_needle, '/')[-1] ! link = '%s/%s?action=fullsearch&value=%s&literal=1&case=1' % ( webapi.getScriptname(), wikiutil.quoteWikiname(self.page_name), Index: wikiaction.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -r1.60 -r1.61 *** wikiaction.py 20 Mar 2002 22:40:46 -0000 1.60 --- wikiaction.py 20 Mar 2002 23:04:17 -0000 1.61 *************** *** 44,47 **** --- 44,51 ---- needle = '' try: + case = int(form['case'].value) + except (KeyError, ValueError): + case = 0 + try: context = int(form['context'].value) except (KeyError, ValueError): *************** *** 55,59 **** pagecount, hits = wikiutil.searchPages(needle, literal=form.has_key('literal'), ! context=context) # print the result --- 59,63 ---- pagecount, hits = wikiutil.searchPages(needle, literal=form.has_key('literal'), ! context=context, case=case) # print the result Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -r1.36 -r1.37 *** wikimacro.py 20 Mar 2002 22:40:46 -0000 1.36 --- wikimacro.py 20 Mar 2002 23:04:17 -0000 1.37 *************** *** 97,110 **** else: default = '' ! context = '' if type == "fullsearch": ! context = '
' + \ ! _('Display context of search results') return self.formatter.rawHTML(( '
' '' ! '' '' ! '%s
') % (type, default, _("Go"), context)) def _macro_GoTo(self, args): --- 97,114 ---- else: default = '' ! boxes = '' if type == "fullsearch": ! boxes = ( ! '
' ! + _('Display context of search results') ! + '
' ! + _('Case-sensitive searching') ! ) return self.formatter.rawHTML(( '
' '' ! ' ' '' ! '%s
') % (type, default, _("Go"), boxes)) def _macro_GoTo(self, args): Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -r1.91 -r1.92 *** wikiutil.py 20 Mar 2002 22:40:46 -0000 1.91 --- wikiutil.py 20 Mar 2002 23:04:17 -0000 1.92 *************** *** 246,251 **** third element is None. ! literal = 0: try to treat "needle" as a regex, case-insensitive ! literal = 1: "needle" is definitely NOT a regex and searched case-sensitive context != 0: Provide `context` chars of text on each side of a hit """ --- 246,252 ---- third element is None. ! literal = 0: try to treat "needle" as a regex ! literal = 1: "needle" is definitely NOT a regex ! case = 1: case-sensitive search context != 0: Provide `context` chars of text on each side of a hit """ *************** *** 254,265 **** literal = kw.get('literal', 0) context = int(kw.get('context', 0)) if literal and context: ! needle_re = re.compile(re.escape(needle), re.IGNORECASE) ! elif not literal: try: ! needle_re = re.compile(needle, re.IGNORECASE) except re.error: ! needle_re = re.compile(re.escape(needle), re.IGNORECASE) hits = [] --- 255,270 ---- literal = kw.get('literal', 0) context = int(kw.get('context', 0)) + ignorecase = int(kw.get('case', 0)) == 0 and re.IGNORECASE or 0 if literal and context: ! needle_re = re.compile(re.escape(needle), ignorecase) ! elif literal: ! if ignorecase: ! needle = string.lower(needle) ! else: try: ! needle_re = re.compile(needle, ignorecase) except re.error: ! needle_re = re.compile(re.escape(needle), ignorecase) hits = [] *************** *** 283,286 **** --- 288,293 ---- else: if literal: + if ignorecase: + body = string.lower(body) count = string.count(body, needle) else: From jhermann at users.sourceforge.net Wed Mar 20 15:27:56 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:27:56 2002 Subject: [Moin-devel] CVS: MoinMoin version.py,1.154,1.155 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv20218 Modified Files: version.py Log Message: Bumped revision Index: version.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/version.py,v retrieving revision 1.154 retrieving revision 1.155 diff -C2 -r1.154 -r1.155 From whisper at oz.net Wed Mar 20 15:34:02 2002 From: whisper at oz.net (David LeBlanc) Date: Wed Mar 20 15:34:02 2002 Subject: [Moin-devel] Httdpmain working? Message-ID: I haven't found any mention of this in the help. Running it, I get: H:\moin\MoinMoin>httpdmain.py Serving on localhost:8080, documents in 'H:\moin\MoinMoin\wiki-moinmoin' lion - - [20/Mar/2002 15:34:13] "GET / HTTP/1.1" 200 - ---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 4541) Traceback (most recent call last): File "J:\Python21\lib\SocketServer.py", line 221, in handle_request self.process_request(request, client_address) File "J:\Python21\lib\SocketServer.py", line 240, in process_request self.finish_request(request, client_address) File "J:\Python21\lib\SocketServer.py", line 253, in finish_request self.RequestHandlerClass(request, client_address, self) File "H:\moin\MoinMoin\httpdmain.py", line 58, in __init__ SimpleHTTPServer.SimpleHTTPRequestHandler.__init__(self, request, client_address, server) File "J:\Python21\lib\SocketServer.py", line 501, in __init__ self.handle() File "J:\Python21\lib\BaseHTTPServer.py", line 266, in handle method() File "H:\moin\MoinMoin\httpdmain.py", line 72, in do_GET self.doRequest() File "H:\moin\MoinMoin\httpdmain.py", line 165, in doRequest cgimain.run() File "h:\Moin\MoinMoin\cgimain.py", line 96, in run msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) IOError: [Errno 9] Bad file descriptor ---------------------------------------- I think this is because the moin_config.py file isn't correct, but i'm not sure the one that comes with moin is correct for the standalone application. Dave LeBlanc Seattle, WA USA From jhermann at users.sourceforge.net Wed Mar 20 15:58:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:58:02 2002 Subject: [Moin-devel] CVS: dist CHANGES,1.85,1.86 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv27213 Modified Files: CHANGES Log Message: Macro-generated pagelinks are no longer added to the list of links; WantedPages now highlights the wanted page on the wanting pages Index: CHANGES =================================================================== RCS file: /cvsroot/moin/dist/CHANGES,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -r1.85 -r1.86 *** CHANGES 20 Mar 2002 22:40:46 -0000 1.85 --- CHANGES 20 Mar 2002 23:57:06 -0000 1.86 *************** *** 26,29 **** --- 26,30 ---- Bugfixes: * Syntax warning with Python 2.2 fixed + * Macro-generated pagelinks are no longer added to the list of links ----------------------------------------------------------------------------- From jhermann at users.sourceforge.net Wed Mar 20 15:58:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:58:03 2002 Subject: [Moin-devel] CVS: MoinMoin wikimacro.py,1.37,1.38 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv27213/MoinMoin Modified Files: wikimacro.py Log Message: Macro-generated pagelinks are no longer added to the list of links; WantedPages now highlights the wanted page on the wanting pages Index: wikimacro.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikimacro.py,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -r1.37 -r1.38 *** wikimacro.py 20 Mar 2002 23:04:17 -0000 1.37 --- wikimacro.py 20 Mar 2002 23:57:07 -0000 1.38 *************** *** 281,285 **** for filename in hits: result = result + self.formatter.listitem(1) ! result = result + self.formatter.pagelink(filename) result = result + self.formatter.listitem(0) result = result + self.formatter.bullet_list(0) --- 281,285 ---- for filename in hits: result = result + self.formatter.listitem(1) ! result = result + self.formatter.pagelink(filename, generated=1) result = result + self.formatter.listitem(0) result = result + self.formatter.bullet_list(0) From jhermann at users.sourceforge.net Wed Mar 20 15:58:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:58:03 2002 Subject: [Moin-devel] CVS: MoinMoin/formatter base.py,1.20,1.21 text_html.py,1.38,1.39 text_plain.py,1.16,1.17 text_xml.py,1.25,1.26 Message-ID: Update of /cvsroot/moin/MoinMoin/formatter In directory usw-pr-cvs1:/tmp/cvs-serv27213/MoinMoin/formatter Modified Files: base.py text_html.py text_plain.py text_xml.py Log Message: Macro-generated pagelinks are no longer added to the list of links; WantedPages now highlights the wanted page on the wanting pages Index: base.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/base.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** base.py 17 Mar 2002 11:03:57 -0000 1.20 --- base.py 20 Mar 2002 23:57:07 -0000 1.21 *************** *** 51,55 **** return markup ! def pagelink(self, pagename, text=None): if self._store_pagelinks and pagename not in self.pagelinks: self.pagelinks.append(pagename) --- 51,56 ---- return markup ! def pagelink(self, pagename, text=None, **kw): ! if kw.get('generated', 0): return if self._store_pagelinks and pagename not in self.pagelinks: self.pagelinks.append(pagename) Index: text_html.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_html.py,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -r1.38 -r1.39 *** text_html.py 17 Mar 2002 11:03:57 -0000 1.38 --- text_html.py 20 Mar 2002 23:57:07 -0000 1.39 *************** *** 51,56 **** ! def pagelink(self, pagename, text=None): ! FormatterBase.pagelink(self, pagename, text) return Page(pagename).link_to(text) --- 51,56 ---- ! def pagelink(self, pagename, text=None, **kw): ! apply(FormatterBase.pagelink, (self, pagename, text), kw) return Page(pagename).link_to(text) Index: text_plain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_plain.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** text_plain.py 17 Mar 2002 11:03:57 -0000 1.16 --- text_plain.py 20 Mar 2002 23:57:07 -0000 1.17 *************** *** 34,39 **** return '\n' ! def pagelink(self, pagename, text=None): ! FormatterBase.pagelink(self, pagename, text) return ">>%s<<" % (pagename,) --- 34,39 ---- return '\n' ! def pagelink(self, pagename, text=None, **kw): ! apply(FormatterBase.pagelink, (self, pagename, text), kw) return ">>%s<<" % (pagename,) Index: text_xml.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/formatter/text_xml.py,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -r1.25 -r1.26 *** text_xml.py 17 Mar 2002 11:03:57 -0000 1.25 --- text_xml.py 20 Mar 2002 23:57:07 -0000 1.26 *************** *** 55,60 **** return '', ']]>]]>' ! def pagelink(self, pagename, text=None): ! FormatterBase.pagelink(self, pagename, text) return Page(pagename, formatter=self).link_to(text) --- 55,60 ---- return '', ']]>]]>' ! def pagelink(self, pagename, text=None, **kw): ! apply(FormatterBase.pagelink, (self, pagename, text), kw) return Page(pagename, formatter=self).link_to(text) From jhermann at users.sourceforge.net Wed Mar 20 15:58:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 15:58:03 2002 Subject: [Moin-devel] CVS: MoinMoin/macro OrphanedPages.py,1.4,1.5 PageSize.py,1.3,1.4 RandomPage.py,1.3,1.4 WantedPages.py,1.6,1.7 Message-ID: Update of /cvsroot/moin/MoinMoin/macro In directory usw-pr-cvs1:/tmp/cvs-serv27213/MoinMoin/macro Modified Files: OrphanedPages.py PageSize.py RandomPage.py WantedPages.py Log Message: Macro-generated pagelinks are no longer added to the list of links; WantedPages now highlights the wanted page on the wanting pages Index: OrphanedPages.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/OrphanedPages.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** OrphanedPages.py 24 Nov 2001 02:30:58 -0000 1.4 --- OrphanedPages.py 20 Mar 2002 23:57:07 -0000 1.5 *************** *** 43,47 **** if not name: continue result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name) result = result + macro.formatter.listitem(0) result = result + macro.formatter.number_list(0) --- 43,47 ---- if not name: continue result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name, generated=1) result = result + macro.formatter.listitem(0) result = result + macro.formatter.number_list(0) Index: PageSize.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/PageSize.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** PageSize.py 16 Jan 2002 22:14:34 -0000 1.3 --- PageSize.py 20 Mar 2002 23:57:07 -0000 1.4 *************** *** 32,36 **** string.replace("%6d" % size, " ", " ") + " " + macro.formatter.code(0) + ! macro.formatter.pagelink(page.page_name) + macro.formatter.listitem(0) ) --- 32,36 ---- string.replace("%6d" % size, " ", " ") + " " + macro.formatter.code(0) + ! macro.formatter.pagelink(page.page_name, generated=1) + macro.formatter.listitem(0) ) Index: RandomPage.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/RandomPage.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** RandomPage.py 9 Dec 2000 09:01:02 -0000 1.3 --- RandomPage.py 20 Mar 2002 23:57:07 -0000 1.4 *************** *** 29,33 **** # return a single page link ! if links == 1: return macro.formatter.pagelink(pages[0]) # return a list of page links --- 29,33 ---- # return a single page link ! if links == 1: return macro.formatter.pagelink(pages[0], generated=1) # return a list of page links *************** *** 36,40 **** for name in pages: result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name) result = result + macro.formatter.listitem(0) result = result + macro.formatter.bullet_list(0) --- 36,40 ---- for name in pages: result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name, generated=1) result = result + macro.formatter.listitem(0) result = result + macro.formatter.bullet_list(0) Index: WantedPages.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/WantedPages.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** WantedPages.py 24 Nov 2001 02:30:58 -0000 1.6 --- WantedPages.py 20 Mar 2002 23:57:07 -0000 1.7 *************** *** 9,13 **** # Imports ! import cgi, string from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page --- 9,13 ---- # Imports ! import cgi, string, urllib from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page *************** *** 44,53 **** wantednames.sort() result = macro.formatter.number_list(1) - wherelink = lambda n, p=pages: p[n].link_to() for name in wantednames: if not name: continue result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name) where = wanted[name].keys() where.sort() --- 44,54 ---- wantednames.sort() result = macro.formatter.number_list(1) for name in wantednames: if not name: continue result = result + macro.formatter.listitem(1) ! result = result + macro.formatter.pagelink(name, generated=1) + wherelink = lambda n, w=name, p=pages: \ + p[n].link_to(querystr='action=highlight&value=%s' % urllib.quote_plus(w)) where = wanted[name].keys() where.sort() From jhermann at users.sourceforge.net Wed Mar 20 16:19:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 20 16:19:02 2002 Subject: [Moin-devel] CVS: MoinMoin cgimain.py,1.48,1.49 httpdmain.py,1.9,1.10 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv32362 Modified Files: cgimain.py httpdmain.py Log Message: Fixed some probs in the experimental standalone server Index: cgimain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/cgimain.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -r1.48 -r1.49 *** cgimain.py 12 Mar 2002 22:27:35 -0000 1.48 --- cgimain.py 21 Mar 2002 00:18:24 -0000 1.49 *************** *** 92,96 **** # force input/output to binary ! if sys.platform == "win32": import msvcrt msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) --- 92,96 ---- # force input/output to binary ! if sys.platform == "win32" and not properties.get('standalone', 0): import msvcrt msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY) Index: httpdmain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/httpdmain.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** httpdmain.py 9 Dec 2001 14:33:45 -0000 1.9 --- httpdmain.py 21 Mar 2002 00:18:24 -0000 1.10 *************** *** 2,10 **** MoinMoin - Stand-alone HTTP Server ! Copyright (c) 2001 by J?rgen Hermann All rights reserved, see COPYING for details. Significant contributions to this module by R. Church $Id$ """ --- 2,12 ---- MoinMoin - Stand-alone HTTP Server ! Copyright (c) 2001, 2002 by J?rgen Hermann All rights reserved, see COPYING for details. Significant contributions to this module by R. Church + RUN THIS AT YOUR OWN RISK, IT HAS BUGS AND IS UNTESTED! + $Id$ """ *************** *** 162,166 **** self.send_response(200) ! cgimain.run() sys.stdout.flush() --- 164,168 ---- self.send_response(200) ! cgimain.run(properties={'standalone': 1}) sys.stdout.flush() *************** *** 204,207 **** --- 206,211 ---- # start it if sys.platform == 'win32': + stdout = sys.stdout + # run threaded server httpd.serve_in_thread() *************** *** 211,215 **** while not httpd._abort: i += 1 ! print "\|/-"[i%4], "\r", time.sleep(1) else: --- 215,219 ---- while not httpd._abort: i += 1 ! stdout.write("\|/-"[i%4] + "\r") time.sleep(1) else: From jh at web.de Wed Mar 20 16:21:02 2002 From: jh at web.de (Juergen Hermann) Date: Wed Mar 20 16:21:02 2002 Subject: [Moin-devel] Httdpmain working? In-Reply-To: Message-ID: On Wed, 20 Mar 2002 15:35:20 -0800, David LeBlanc wrote: >I haven't found any mention of this in the help. It doesn't work reliably and is untested. For a single-person wiki, it might work (mostly). Run at your own risk. The traceback you found is because I did not run it for almost a year, and thus did not fit the current code. Fixed now. Ciao, J?rgen From jhermann at users.sourceforge.net Fri Mar 22 11:17:19 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Fri Mar 22 11:17:19 2002 Subject: [Moin-devel] CVS: dist/wiki/data/text HelpOnInstalling_2fTroubleShooting,NONE,1.1 HelpOnInstalling,1.11,1.12 HelpOnInstalling_2fApacheOnUnix,1.9,1.10 HelpOnPageCreation,1.7,1.8 HelpOnSmileys,1.3,1.4 MoinMoin_2fInstallDocs,1.1,1.2 MoinMoin_2fInstallationsAnleitung,1.2,1.3 Message-ID: Update of /cvsroot/moin/dist/wiki/data/text In directory usw-pr-cvs1:/tmp/cvs-serv19585 Modified Files: HelpOnInstalling HelpOnInstalling_2fApacheOnUnix HelpOnPageCreation HelpOnSmileys MoinMoin_2fInstallDocs MoinMoin_2fInstallationsAnleitung Added Files: HelpOnInstalling_2fTroubleShooting Log Message: Troubleshooting... --- NEW FILE: HelpOnInstalling_2fTroubleShooting --- === Built-in test === There's a built-in diagnostic mode that's useful when doing an install; just append "`?test`" to the URL of your wiki: {{{ lynx --dump http://`hostname`/mywiki?test }}} If you see an import error here, but "`python -c "import MoinMoin"`" works, it's likely a result of missing file permissions or a wrong PYTHONBPATH setting within the web server environment. Index: HelpOnInstalling =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** HelpOnInstalling 9 Mar 2002 16:20:41 -0000 1.11 --- HelpOnInstalling 22 Mar 2002 19:16:52 -0000 1.12 *************** *** 8,11 **** --- 8,13 ---- /BasicInstallation explains the "`setup.py`" step of the installation in more detail. This applies equally to all scenarios, and you should read it before trying a live installation. + /TroubleShooting helps with fixing any general problems you might encounter, which apply to any installation platform. + After a successful installation, you might want to read more about configuration and other options that you, as the wiki administrator, can set up. HelpOnAdministration contains links to pages that cover these topics. Especially, the HelpOnConfiguration and HelpOnUpdating pages provide additional information regarding wiki setup and maintenance. MoinMoin:MoinMoinWinCvs and MoinMoin:MoinMoinUnixCvs describe how to run your wiki using the current development version from the MoinMoin:SourceForge CVS repository. Index: HelpOnInstalling_2fApacheOnUnix =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnInstalling_2fApacheOnUnix,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** HelpOnInstalling_2fApacheOnUnix 15 Mar 2002 22:17:51 -0000 1.9 --- HelpOnInstalling_2fApacheOnUnix 22 Mar 2002 19:16:52 -0000 1.10 *************** *** 76,80 **** === Troubleshooting === ! The first thing to do when your wiki does not work as expected is to issue the command "`tail /var/log/httpd/error_log`" to display the most recent errors. Usually, you will get a hint on what went wrong, like missing file system permissions. The most common problem you might encounter is when you have Python 1.5.2 installed into "`/usr`", and a newer Python distribution into "`/usr/local`"; this is typical for GNU/Linux distributions that still come bundled with version 1.5.2 of Python. --- 76,82 ---- === Troubleshooting === ! The first thing to do when your wiki does not work as expected is to issue the command "`tail /var/log/httpd/error_log`" to display the most recent errors. Usually, you will get a hint on what went wrong, like missing file system permissions. Also, always consult the HelpOnInstalling/TroubleShooting page for further hints on your problem. ! ! ==== Dueling Pythons ==== The most common problem you might encounter is when you have Python 1.5.2 installed into "`/usr`", and a newer Python distribution into "`/usr/local`"; this is typical for GNU/Linux distributions that still come bundled with version 1.5.2 of Python. *************** *** 89,93 **** --- 91,113 ---- }}} + ==== Distutils does not work ==== + If you have problems with the '''distutils''' install step, note that you need to have the Python development package installed on some Unix distributions. On Mandrake, you need to "`rpm -i python-devel-2.1.1-3mdk.i586.rpm`". + + ==== Missing file permissions ==== + + If you are root, the installed files may be readable only by root, but they must also be readable by the web server before the wiki will work. This includes both the Python modules and the site itself. For the data directory, the web server also needs ''write'' access. To fix this, first find out where the Python module directory is; look in `install.log`, or run the command: + + {{{ + python -c "import sys; print '%s/lib/python%s/site-packages' % ( sys.prefix, sys.version[:3] )" + }}} + + For the example below, we'll assume that the Python module directory is `/usr/local/lib/python2.1/site-packages`. + Make the files world-readable using the following commands: {{{ + cd /usr/local + chmod -R a+rX lib/python2.1/site-packages/MoinMoin share/moin + }}} + + /!\ Note that by making everything under `/usr/local/share/moin` world-readable, local users can read the files containing your wiki. You don't really need to do that, since the `mywiki` directory is owned by the webserver. If you don't want that, you do a "`chmod -R o-rwx share/moin/mywiki`" after the above commands. Index: HelpOnPageCreation =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnPageCreation,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** HelpOnPageCreation 13 Mar 2002 20:54:30 -0000 1.7 --- HelpOnPageCreation 22 Mar 2002 19:16:52 -0000 1.8 *************** *** 23,25 **** || @''''''MAILTO@ || A fancy mailto: link with the user's data || ! Note that saving template or form definition pages does ''not'' expand variables. Other than that, variable expansion is very gloabl and happens anywhere on the page, including code displays, comments, processing instructions and other "special" areas of a page you might think are excluded. --- 23,25 ---- || @''''''MAILTO@ || A fancy mailto: link with the user's data || ! Note that saving template or form definition pages does ''not'' expand variables. Other than that, variable expansion is very global and happens anywhere on the page, including code displays, comments, processing instructions and other "special" areas of a page you might think are excluded. Index: HelpOnSmileys =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/HelpOnSmileys,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** HelpOnSmileys 4 Mar 2002 20:42:20 -0000 1.3 --- HelpOnSmileys 22 Mar 2002 19:16:52 -0000 1.4 *************** *** 26,27 **** --- 26,30 ---- || {{{ |) }}} || |) || tired.gif || || {{{ ;)) }}} || ;)) || lol.gif || + |||||| ''Added with version 0.12'' || + || {{{ (./) }}} || (./) || checkmark.gif || + || {{{ (OK) }}} || (OK) || thumbs-up.gif || Index: MoinMoin_2fInstallDocs =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/MoinMoin_2fInstallDocs,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** MoinMoin_2fInstallDocs 27 Feb 2002 21:00:43 -0000 1.1 --- MoinMoin_2fInstallDocs 22 Mar 2002 19:16:52 -0000 1.2 *************** *** 10,13 **** --- 10,15 ---- [#basic-install Basic Installation] explains the "`setup.py`" step of the installation in more detail. This applies equally to all scenarios, and you should read it before trying a live installation. + [#trouble-shooting Trouble-shooting] helps with fixing any general problems you might encounter, which apply to any installation platform. + After a successful installation, you might want to read more about configuration and other options that you, as the wiki administrator, can set up. MoinMoin:HelpOnAdministration contains links to pages that cover these topics. Especially, the MoinMoin:HelpOnConfiguration and MoinMoin:HelpOnUpdating pages provide additional information regarding wiki setup and maintenance. MoinMoin:MoinMoinWinCvs and MoinMoin:MoinMoinUnixCvs describe how to run your wiki using the current development version from the MoinMoin:SourceForge CVS repository. *************** *** 27,30 **** --- 29,36 ---- [[Anchor(basic-install)]] [[Include(HelpOnInstalling/BasicInstallation)]] + ------ + [[Anchor(trouble-shooting)]] + ------ + [[Include(HelpOnInstalling/TroubleShooting, "Trouble-shooting", 1)]] ------ [[Anchor(unix-install)]] Index: MoinMoin_2fInstallationsAnleitung =================================================================== RCS file: /cvsroot/moin/dist/wiki/data/text/MoinMoin_2fInstallationsAnleitung,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** MoinMoin_2fInstallationsAnleitung 4 Mar 2002 21:27:01 -0000 1.2 --- MoinMoin_2fInstallationsAnleitung 22 Mar 2002 19:16:52 -0000 1.3 *************** *** 15,18 **** --- 15,20 ---- Dieser Schritt ist immer durchzuf?hren, deshalb empfiehlt es sich, die dort enthaltenen Information in jedem Fall durchzulesen, bevor Sie den Installationsvorgang beginnen. + [#trouble-shooting Fehlerbehebung] hilft bei der Beseitigung von allgemeinen Fehlern, die auf jeder Plattform auftreten k?nnen. + Nachdem Sie die Software erfolgreich aufgespielt haben, sollte der n?chste Schritt darin bestehen, mehr ?ber die Konfigurationsoptionen und optionale Erweiterungen zu erfahren, die Sie als Wikiadministrator einrichten k?nnen. Die Seite MoinMoin:HilfeZurAdministration enth?lt dazu Verweise auf weitere Seiten, die diese Themen abdecken. *************** *** 37,40 **** --- 39,46 ---- [[Anchor(basic-install)]] [[Include(HilfeZurInstallation/BasisInstallation)]] + ------ + [[Anchor(trouble-shooting)]] + ------ + [[Include(HilfeZurInstallation/FehlerBehebung, "Fehlerbehebung", 1)]] ------ [[Anchor(unix-install)]] From whisper at oz.net Sun Mar 24 11:30:02 2002 From: whisper at oz.net (David LeBlanc) Date: Sun Mar 24 11:30:02 2002 Subject: [Moin-devel] Viewing colorized python in a moin page Message-ID: Is it possible to get moin to retrieve a .py file and present it colorized? I know it will do this from one of those neat trace back pages it generates, but i'm not clear on how to do this in general. I think it would be neat to be able to browse python code via moin - like moin code itself :) Dave LeBlanc Seattle, WA USA From jhermann at users.sourceforge.net Mon Mar 25 05:13:05 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Mon Mar 25 05:13:05 2002 Subject: [Moin-devel] CVS: MoinMoin util.py,1.36,1.37 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv385/MoinMoin Modified Files: util.py Log Message: Bugfix for rangelist() Index: util.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/util.py,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -r1.36 -r1.37 *** util.py 13 Feb 2002 21:13:52 -0000 1.36 --- util.py 25 Mar 2002 13:12:21 -0000 1.37 *************** *** 106,110 **** numbers = numbers[:] numbers.sort() ! numbers.append(99999) pattern = ',' for i in range(len(numbers)-1): --- 106,110 ---- numbers = numbers[:] numbers.sort() ! numbers.append(999999) pattern = ',' for i in range(len(numbers)-1): *************** *** 113,116 **** --- 113,118 ---- if numbers[i]+1 == numbers[i+1]: pattern = pattern + '-' + else: + pattern = pattern + ',' elif numbers[i]+1 != numbers[i+1]: pattern = pattern + str(numbers[i]) + ',' From jh at web.de Mon Mar 25 10:31:11 2002 From: jh at web.de (Juergen Hermann) Date: Mon Mar 25 10:31:11 2002 Subject: [Moin-devel] Viewing colorized python in a moin page In-Reply-To: Message-ID: On Sun, 24 Mar 2002 11:32:21 -0800, David LeBlanc wrote: >Is it possible to get moin to retrieve a .py file and present it colorized? >I know it will do this from one of those neat trace back pages it generates, >but i'm not clear on how to do this in general. I think it would be neat to >be able to browse python code via moin - like moin code itself :) There are already 3-4 places where this is done. Since displaying ANY source code would open up a security hole, this is not part of the std distribution, but a macro to do it would be quite easy to write. Write a macro that presents sys.path, then a listing of packages/modules in a selected dir, then the module if you click on one. Ciao, J?rgen From kmacleod at ibsys.com Mon Mar 25 12:45:15 2002 From: kmacleod at ibsys.com (Macleod, Ken) Date: Mon Mar 25 12:45:15 2002 Subject: [Moin-devel] editlog.getEditorData doesn't, on first record Message-ID: <2193306919172547B8B169B499184FEA66D7DD@osiris-a.ibsys.com> I've written a Blog macro[1] that automatically includes up to 20 of the most recently created pages "logically under" a wiki page (/YYYY-MM-DD). With some suggestions (thanks Juergen!), I've made it simpler and faster, but now I've run into a glitch that's not making sense to me. I was using LogIterator from macro/RecentChanges.py to step through every page, but switched to wikiutil.getPageList. I want to include the editor name from the edit log in the displayed blog entry, but where editlog.getEditorData worked fine via LogIterator, I can't get it to return a name for the first or only record in the log using just EditLog. The relevant lines: log = editlog.EditLog() log.filter(pagename=page_name) ret = ret + ' -- by ' + log.getEditorData() \ + " in " + inc_page.link_to() + '' I tried calling log.next() both once and in a loop, to see if I needed to force a fetch from the log. For pages edited more than once, getEditorData will return the name for subsequent page edits, but for pages only created and not re-edited I don't get the name. Any ideas? -- Ken [1] http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/macro_2fBlog_2epy From jh at web.de Mon Mar 25 13:11:50 2002 From: jh at web.de (Juergen Hermann) Date: Mon Mar 25 13:11:50 2002 Subject: [Moin-devel] editlog.getEditorData doesn't, on first record In-Reply-To: <2193306919172547B8B169B499184FEA66D7DD@osiris-a.ibsys.com> Message-ID: On Mon, 25 Mar 2002 14:28:35 -0600, Macleod, Ken wrote: >I tried calling log.next() both once and in a loop, to see if I needed to >force a fetch from the log. For pages edited more than once, getEditorData >will return the name for subsequent page edits, but for pages only created >and not re-edited I don't get the name. Define "created". If you use your own code, you likely made an error with time stamps or something. Using Page methods, it could still be an error in calling them. Ciao, J?rgen From kmacleod at ibsys.com Mon Mar 25 13:23:15 2002 From: kmacleod at ibsys.com (Macleod, Ken) Date: Mon Mar 25 13:23:15 2002 Subject: [Moin-devel] editlog.getEditorData doesn't, on first record Message-ID: <2193306919172547B8B169B499184FEA66D7DE@osiris-a.ibsys.com> > -----Original Message----- > From: Juergen Hermann [mailto:jh at web.de] > On Mon, 25 Mar 2002 14:28:35 -0600, Macleod, Ken wrote: > > >I tried calling log.next() both once and in a loop, to see > >if I needed to force a fetch from the log. For pages edited > >more than once, getEditorData will return the name for > >subsequent page edits, but for pages only created > >and not re-edited I don't get the name. > > Define "created". If you use your own code, you likely made > an error with time stamps or something. Using Page methods, it > could still be an error in calling them. The page is created the normal way, by a person following a link to an as-yet undefined page and clicking "create this page" (action=edit), my code isn't creating the blog entry pages. The blog page is currently at: http://mail.bitsko.slc.ut.us:81/cgi-bin/t2k-wiki feel free to create a new Blog entry and I'll clean up later. You'll see in the taglines at the end of the items that it says "by in ", it's the that I should be getting from editlog.getEditorData. -- Ken From lele at nautilus.homeip.net Tue Mar 26 06:28:01 2002 From: lele at nautilus.homeip.net (Lele Gaifax) Date: Tue Mar 26 06:28:01 2002 Subject: [Moin-devel] l10n changes for action/AttachFile.py Message-ID: <15520.34109.709068.641313@paci.nautilus> Index: AttachFile.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/AttachFile.py,v retrieving revision 1.27 diff -c -r1.27 AttachFile.py *** AttachFile.py 8 Mar 2002 19:40:08 -0000 1.27 --- AttachFile.py 26 Mar 2002 14:16:01 -0000 *************** *** 142,147 **** --- 142,153 ---- "since this is subject to change and can break easily.

" ) str = str + "
    " + + del_label = _("del") + get_label = _("get") + edit_label = _("edit") + view_label = _("view") + for file in files: fsize = os.stat(os.path.join(attach_dir,file))[6] # in byte fsize = float(int(float(fsize)/102.4))/10.0 *************** *** 153,169 **** del_link = '' if user.current.may.delete: del_link = 'del | ' % locals() base, ext = os.path.splitext(file) get_url = getAttachUrl(pagename, file) if ext == '.draw': ! viewlink = 'edit' % locals() else: ! viewlink = 'view' % locals() str = str + ('
  • [%(del_link)s' ! 'get | %(viewlink)s]' ' (%(fsize)g KB) attachment:%(file)s
  • ') % locals() str = str + "
" else: --- 159,175 ---- del_link = '' if user.current.may.delete: del_link = '%(del_label)s | ' % locals() base, ext = os.path.splitext(file) get_url = getAttachUrl(pagename, file) if ext == '.draw': ! viewlink = '%(edit_label)s' % locals() else: ! viewlink = '%(view_label)s' % locals() str = str + ('
  • [%(del_link)s' ! '%(get_label)s | %(viewlink)s]' ' (%(fsize)g KB) attachment:%(file)s
  • ') % locals() str = str + "" else: hth, ciao, lele. -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From lele at nautilus.homeip.net Tue Mar 26 09:29:08 2002 From: lele at nautilus.homeip.net (Lele Gaifax) Date: Tue Mar 26 09:29:08 2002 Subject: [Moin-devel] Bug fix for macro/FullSearch.py Message-ID: <15520.45011.87617.817847@paci.nautilus> Index: FullSearch.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/FullSearch.py,v retrieving revision 1.5 diff -c -r1.5 FullSearch.py *** FullSearch.py 13 Feb 2002 21:13:53 -0000 1.5 --- FullSearch.py 26 Mar 2002 17:27:15 -0000 *************** *** 46,56 **** literal = 1 # do the search ! pagecount, hits = wikiutil.searchPages(needle, literal=literal) # generate the result result = macro.formatter.number_list(1) ! for (count, pagename) in hits: result = result + macro.formatter.listitem(1) result = result + wikiutil.link_tag('%s?action=highlight&value=%s' % (wikiutil.quoteWikiname(pagename), urllib.quote_plus(needle)), --- 46,56 ---- literal = 1 # do the search ! pagecount, hits = wikiutil.searchPages(needle, literal=literal, context=0) # generate the result result = macro.formatter.number_list(1) ! for (count, pagename, context) in hits: result = result + macro.formatter.listitem(1) result = result + wikiutil.link_tag('%s?action=highlight&value=%s' % (wikiutil.quoteWikiname(pagename), urllib.quote_plus(needle)), -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From jhermann at users.sourceforge.net Tue Mar 26 10:57:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 26 10:57:06 2002 Subject: [Moin-devel] CVS: MoinMoin/macro FullSearch.py,1.5,1.6 Message-ID: Update of /cvsroot/moin/MoinMoin/macro In directory usw-pr-cvs1:/tmp/cvs-serv15865/macro Modified Files: FullSearch.py Log Message: Bugfix: Adapt to new context search Index: FullSearch.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/FullSearch.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** FullSearch.py 13 Feb 2002 21:13:53 -0000 1.5 --- FullSearch.py 26 Mar 2002 18:56:44 -0000 1.6 *************** *** 47,55 **** # do the search ! pagecount, hits = wikiutil.searchPages(needle, literal=literal) # generate the result result = macro.formatter.number_list(1) ! for (count, pagename) in hits: result = result + macro.formatter.listitem(1) result = result + wikiutil.link_tag('%s?action=highlight&value=%s' % --- 47,55 ---- # do the search ! pagecount, hits = wikiutil.searchPages(needle, literal=literal, context=0) # generate the result result = macro.formatter.number_list(1) ! for (count, pagename, dummy) in hits: result = result + macro.formatter.listitem(1) result = result + wikiutil.link_tag('%s?action=highlight&value=%s' % From jhermann at users.sourceforge.net Tue Mar 26 11:15:36 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 26 11:15:36 2002 Subject: [Moin-devel] CVS: MoinMoin/action AttachFile.py,1.27,1.28 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv20915/action Modified Files: AttachFile.py Log Message: Some I18N (by Lele) Index: AttachFile.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/AttachFile.py,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** AttachFile.py 8 Mar 2002 19:40:08 -0000 1.27 --- AttachFile.py 26 Mar 2002 19:14:31 -0000 1.28 *************** *** 143,146 **** --- 143,152 ---- ) str = str + "
      " + + label_del = _("del") + label_get = _("get") + label_edit = _("edit") + label_view = _("view") + for file in files: fsize = os.stat(os.path.join(attach_dir,file))[6] # in byte *************** *** 154,168 **** if user.current.may.delete: del_link = 'del | ' % locals() base, ext = os.path.splitext(file) get_url = getAttachUrl(pagename, file) if ext == '.draw': ! viewlink = 'edit' % locals() else: ! viewlink = 'view' % locals() str = str + ('
    • [%(del_link)s' ! 'get | %(viewlink)s]' ' (%(fsize)g KB) attachment:%(file)s
    • ') % locals() str = str + "
    " --- 160,174 ---- if user.current.may.delete: del_link = '%(label_del)s | ' % locals() base, ext = os.path.splitext(file) get_url = getAttachUrl(pagename, file) if ext == '.draw': ! viewlink = '%(label_edit)s' % locals() else: ! viewlink = '%(label_view)s' % locals() str = str + ('
  • [%(del_link)s' ! '%(label_get)s | %(viewlink)s]' ' (%(fsize)g KB) attachment:%(file)s
  • ') % locals() str = str + "" From jhermann at users.sourceforge.net Tue Mar 26 11:15:38 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Tue Mar 26 11:15:38 2002 Subject: [Moin-devel] CVS: MoinMoin/i18n de.py,1.76,1.77 Message-ID: Update of /cvsroot/moin/MoinMoin/i18n In directory usw-pr-cvs1:/tmp/cvs-serv20915/i18n Modified Files: de.py Log Message: Some I18N (by Lele) Index: de.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/i18n/de.py,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -r1.76 -r1.77 *** de.py 20 Mar 2002 23:04:17 -0000 1.76 --- de.py 26 Mar 2002 19:14:31 -0000 1.77 *************** *** 731,736 **** --- 731,745 ---- 'Datum', + 'del': + 'l?schen', + 'diff': 'diff', + + 'edit': + '?ndern', + + 'get': + 'laden', '''green=view From jh at web.de Tue Mar 26 13:04:35 2002 From: jh at web.de (Juergen Hermann) Date: Tue Mar 26 13:04:35 2002 Subject: [Moin-devel] Linking to sibling pages Message-ID: Hi! People, I need some opinions on linking from one subpage to a sibling one. See the first section on MoinMoin:MoinMoinDiscussion. Ciao, J?rgen From jh at web.de Tue Mar 26 13:39:04 2002 From: jh at web.de (Juergen Hermann) Date: Tue Mar 26 13:39:04 2002 Subject: [Moin-devel] Templates Message-ID: Hi! I want to add templating to this or the next version. Requirements are: 1. no dependency on other projects, i.e. Quixote and the wealth of other existing tools I know of are ruled out 2. performance: no loading of templates from text files or something 3. easy development: no build-steps that cannot be automated in a developer setup The best thing would be some sort of compiler that generates pure python sources, so that only template authors or advanced users would need to use some tool. A possible path is to generate the templates from XML via XSLT, producing *.py that is then loaded by the core source. Note that using XSLT directly is currently just too slow, unless we would use _very_ clever caching. Ciao, J?rgen From whisper at oz.net Tue Mar 26 14:08:13 2002 From: whisper at oz.net (David LeBlanc) Date: Tue Mar 26 14:08:13 2002 Subject: [Moin-devel] Templates In-Reply-To: Message-ID: wrt to xml, xslt, caching etc, i've just been experimenting with a project called maki that does all that and uses caching to speed things up. Might be worth looking at for ideas: http://maki.sourceforge.net/. Oh - it's in python and uses PyXml and 4suite! :) I've also done a good deal of thinking about templates etc. If user preferences can modify the appearance/rendering of a page, then one would have to cache some intermediate form that could be finally rendered - perhaps an html page with just a few final tags to be substituted? As for templates not being in files - why? TWiki uses file-based templates, with some common templates lumped into a single file and others in separate files. I've never noticed a performance penalty using this approach. Making templates python source or something like that seems to me to raise the bar for page content developers much too high. Personally, I like the idea of making them xml/xslt and rendered (possibly into an intermediate form as discussed above). Regards, Dave LeBlanc Seattle, WA USA > -----Original Message----- > From: moin-devel-admin at lists.sourceforge.net > [mailto:moin-devel-admin at lists.sourceforge.net]On Behalf Of Juergen > Hermann > Sent: Tuesday, March 26, 2002 13:38 > To: MoinMoin Development > Subject: [Moin-devel] Templates > > > Hi! > > I want to add templating to this or the next version. Requirements are: > > 1. no dependency on other projects, i.e. Quixote and the wealth of > other existing tools I know of are ruled out > > 2. performance: no loading of templates from text files or something > > 3. easy development: no build-steps that cannot be automated in a > developer setup > > The best thing would be some sort of compiler that generates pure > python sources, so that only template authors or advanced users would > need to use some tool. > > A possible path is to generate the templates from XML via XSLT, > producing *.py that is then loaded by the core source. Note that using > XSLT directly is currently just too slow, unless we would use _very_ > clever caching. > > > Ciao, J?rgen > > > > _______________________________________________ > Moin-devel mailing list > Moin-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/moin-devel From whisper at oz.net Tue Mar 26 14:15:14 2002 From: whisper at oz.net (David LeBlanc) Date: Tue Mar 26 14:15:14 2002 Subject: [Moin-devel] Linking to sibling pages In-Reply-To: Message-ID: I looked at MoinMOinDiscussion - I take it you're referring to "Hierachical MoinMoin", and by sibling pages you mean pages that are meant to follow the current page in sequence? If so, how about back/forward arrow buttons on pages that have siblings, and an up arrow to get to the first page of the sequence? Pages that don't have siblings yet would have only a single right arrow ("next") that would automagically create the next page in the sequence, possibly with some sort of anonymous page name indicating that it's within a particular sequence of pages. I've thought this would be a great idea for breaking up page sizes and enabling a more "book"-style approach to wikidom. I like the way TWiki does hierarchy with it's "webs", but am not sure what makes a web frontpage distinct from any other page at the moment. I also would prefer that a hierarchy scheme have multiple levels (say, up to 6?) compared to TWiki's 2 level architecture. HTH Dave LeBlanc Seattle, WA USA > -----Original Message----- > From: moin-devel-admin at lists.sourceforge.net > [mailto:moin-devel-admin at lists.sourceforge.net]On Behalf Of Juergen > Hermann > Sent: Tuesday, March 26, 2002 13:00 > To: MoinMoin Users; MoinMoin Development > Subject: [Moin-devel] Linking to sibling pages > > > Hi! > > People, I need some opinions on linking from one subpage to a sibling > one. See the first section on MoinMoin:MoinMoinDiscussion. > > > Ciao, J?rgen > > > > _______________________________________________ > Moin-devel mailing list > Moin-devel at lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/moin-devel > From seefeld at sympatico.ca Tue Mar 26 20:51:02 2002 From: seefeld at sympatico.ca (Stefan Seefeld) Date: Tue Mar 26 20:51:02 2002 Subject: [Moin-devel] look and feel Message-ID: <3CA15C92.5000006@sympatico.ca> hi there, I'm trying to adapt moin's layout / style to our own web site, and I find the current config scheme pretty limitting. (I'm for example thinking of putting the navigation bar into a menu occupying its own column in a table, such that the body as provided by the parser would fill another column...) Are there plans on making this more flexible (I'm thinking of a simple separation into three blocks, 'header', 'body', and 'trailer', instead of the fine grained stuff like 'navigation bar' etc.). If not, would a patch be welcome ? If so, is there any advice as to how to do it ? (I can certainly come up with my own way of doing it, but that could possibly clash with your existing way of life... Thanks, Stefan From jh at web.de Wed Mar 27 13:43:13 2002 From: jh at web.de (Juergen Hermann) Date: Wed Mar 27 13:43:13 2002 Subject: [Moin-devel] editlog.getEditorData doesn't, on first record In-Reply-To: <2193306919172547B8B169B499184FEA66D7DD@osiris-a.ibsys.com> Message-ID: On Mon, 25 Mar 2002 14:28:35 -0600, Macleod, Ken wrote: >I was using LogIterator from macro/RecentChanges.py to step through every >page, but switched to wikiutil.getPageList. I want to include the editor >name from the edit log in the displayed blog entry, but where >editlog.getEditorData worked fine via LogIterator, I can't get it to return >a name for the first or only record in the log using just EditLog. While I don't have the time to check your code, action=info does what you do, namely list / look at all revision of a page, i.e. check out do_info(). Ciao, J?rgen From jhermann at users.sourceforge.net Wed Mar 27 13:48:14 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 13:48:14 2002 Subject: [Moin-devel] CVS: MoinMoin/action DeletePage.py,1.9,1.10 SpellCheck.py,1.19,1.20 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv1820/MoinMoin/action Modified Files: DeletePage.py SpellCheck.py Log Message: Refactoring: Split Page into Page and PageEditor Index: DeletePage.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/DeletePage.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** DeletePage.py 6 Mar 2002 22:36:52 -0000 1.9 --- DeletePage.py 27 Mar 2002 21:46:51 -0000 1.10 *************** *** 14,18 **** import string from MoinMoin import config, user, webapi, wikiutil ! from MoinMoin.Page import Page from MoinMoin.i18n import _ --- 14,18 ---- import string from MoinMoin import config, user, webapi, wikiutil ! from MoinMoin.PageEditor import PageEditor from MoinMoin.i18n import _ *************** *** 20,24 **** def execute(pagename, form): actname = string.split(__name__, '.')[-1] ! page = Page(pagename) # be extra paranoid in dangerous actions --- 20,24 ---- def execute(pagename, form): actname = string.split(__name__, '.')[-1] ! page = PageEditor(pagename) # be extra paranoid in dangerous actions *************** *** 46,50 **** # Delete the page ! page.delete() # Redirect to RecentChanges --- 46,50 ---- # Delete the page ! page.deletePage() # Redirect to RecentChanges Index: SpellCheck.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/SpellCheck.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** SpellCheck.py 11 Mar 2002 23:25:48 -0000 1.19 --- SpellCheck.py 27 Mar 2002 21:46:51 -0000 1.20 *************** *** 96,101 **** def _addLocalWords(form): # get the page contents ! lsw_page = Page(config.page_local_spelling_words) words = lsw_page.get_raw_body() --- 96,103 ---- def _addLocalWords(form): + from MoinMoin.PageEditor import PageEditor + # get the page contents ! lsw_page = PageEditor(config.page_local_spelling_words) words = lsw_page.get_raw_body() From jhermann at users.sourceforge.net Wed Mar 27 13:48:15 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 13:48:15 2002 Subject: [Moin-devel] CVS: MoinMoin PageEditor.py,NONE,1.1 Page.py,1.110,1.111 wikiaction.py,1.61,1.62 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv1820/MoinMoin Modified Files: Page.py wikiaction.py Added Files: PageEditor.py Log Message: Refactoring: Split Page into Page and PageEditor --- NEW FILE: PageEditor.py --- """ MoinMoin - PageEditor class Copyright (c) 2000, 2001, 2002 by J?rgen Hermann All rights reserved, see COPYING for details. $Id: PageEditor.py,v 1.1 2002/03/27 21:46:50 jhermann Exp $ """ # Imports import cStringIO, os, re, sys, string, time, urllib from MoinMoin import caching, config, eventlog, user, util, wikiutil, webapi from MoinMoin.cgimain import request from MoinMoin.Page import Page from MoinMoin.i18n import _ ############################################################################# ### PageEditor - Edit pages ############################################################################# class PageEditor(Page): """ Editor for a wiki page """ def __init__(self, page_name, **keywords): """ Create page editor object. """ apply(Page.__init__, (self, page_name), keywords) def set_raw_body(self, body): """Set the raw body text (prevents loading from disk)""" self.raw_body = body def send_editor(self, form, **kw): """ Send the editor form page. Keywords: preview - if true, show preview comment - comment field (when preview is true) """ from cgi import escape try: from MoinMoin.action import SpellCheck except ImportError: SpellCheck = None # check edit permissions if not user.current.may.edit: self.send_page(form, msg=_("""You are not allowed to edit any pages.""")) return webapi.http_headers(webapi.nocache) if self.prev_date: print 'Cannot edit old revisions' return # check for preview submit title = _('Edit "%(pagename)s"') preview = kw.get('preview', 0) if preview: title = _('Preview of "%(pagename)s"') try: newtext = form['savetext'].value except KeyError: newtext = "" newtext = string.replace(newtext, "\r", "") self.set_raw_body(newtext) # send header stuff wikiutil.send_title( title % {'pagename': self.split_title(),}, pagename=self.page_name) template_param = '' if form.has_key('template'): template_param = '&template=' + form['template'].value print '%s' % ( wikiutil.quoteWikiname(self.page_name), template_param, _('Reduce editor size')) print "|", wikiutil.getSysPage('HelpOnFormatting').link_to() if preview: print '| %s' % _('Skip to preview') # send form try: text_rows = int(form['rows'].value) except StandardError: text_rows = config.edit_rows if user.current.valid: text_rows = int(user.current.edit_rows) try: text_cols = int(form['cols'].value) except StandardError: text_cols = 80 if user.current.valid: text_cols = int(user.current.edit_cols) print '
    ' % ( webapi.getScriptname(), wikiutil.quoteWikiname(self.page_name), '#preview', ) print '' if os.path.isfile(self._text_filename()): mtime = os.path.getmtime(self._text_filename()) else: mtime = 0 print '' % (mtime,) # get the text body for the editor field if form.has_key('template'): # "template" parameter contains the name of the template page template_page = wikiutil.unquoteWikiname(form['template'].value) raw_body = Page(template_page).get_raw_body() if raw_body: print _("[Content of new page loaded from %s]") % (template_page,) else: print _("[Template %s not found]") % (template_page,) else: raw_body = self.get_raw_body() # generate default content if not raw_body: raw_body = _('Describe %s here.') % (self.page_name,) # replace CRLF with LF raw_body = string.replace(raw_body, '\r\n', '\n') # print the editor textarea and the save button print ('' % (text_rows, text_cols, escape(raw_body))) notify = '' if config.mail_smarthost: notify = ''' %s
    ''' % ( ('', ' checked')[not preview or (form.getvalue('notify') == '1')], _('Send mail notification'), ) if preview: print '' print "
    ", _("Optional comment about this change") + \ '
    ' % ( escape(kw.get('comment', ''), 1), text_cols,) button_spellcheck = (SpellCheck and '   ' % _('Check Spelling')) or '' print '''
        %s     
    ''' % (_('Save Changes'), _('Preview'), button_spellcheck, _('Cancel'),) print '''%s %s ''' % ( notify, ('', ' checked')[preview and (form.getvalue('rstrip') == '1')], _('Remove trailing whitespace from each line') ) badwords_re = None if preview: if SpellCheck and ( form.has_key('button_spellcheck') or form.has_key('button_newwords')): badwords, badwords_re, msg = SpellCheck.checkSpelling(self, form, own_form=0) print "

    ", msg print '' print "

    " if preview: print ('
    ' '' '
    ') % (config.url_prefix,) self.send_page(form, content_only=1, hilite_re=badwords_re) print '
    ' # QuickHelp originally by Georg Mischler print _("""
    Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; ''mixed '''bold''' and italics''; ---- horizontal rule.
    Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; ==== Title 4 ====; ===== Title 5 =====.
    Lists: space and one of * bullets; 1., a., A., i., I. numbered items; 1.#n start numbering at n; space alone indents.
    Links: JoinCapitalizedWords; ["brackets and double quotes"]; url; [url]; [url label].
    Tables: || cell text |||| cell text spanning two columns ||; no trailing white space allowed after tables or titles.

    """) def deletePage(self): """Delete the page (but keep the backups)""" # First save a final backup copy of the current page # (recreating the page allows access to the backups again) self.save_text("deleted", '0') # Then really delete it try: os.remove(self._text_filename()) except OSError, er: import errno if er.errno <> errno.ENOENT: raise er # delete pagelinks arena = "pagelinks" key = wikiutil.quoteFilename(self.page_name) cache = caching.CacheEntry(arena, key) cache.remove() def notifySubscribers(self, comment): """ Send email to all subscribers of this page. Return message, indicating success or errors. """ # extract categories of this page pageList = self.getPageLinks() CATEGORY_RE = re.compile("^Category") pageList = filter(CATEGORY_RE.match, pageList) # add current page name for list matching pageList.append(self.page_name) # get email addresses of the all wiki user which have a profile stored; # add the address only if the user has subscribed to the page and # the user is not the current editor userlist = user.getUserList() emails = [] for uid in userlist: if uid == user.current.id: continue # no self notification subscriber = user.User(uid) if not subscriber.email: continue # skip empty email address if subscriber.isSubscribedTo(pageList): emails.append(subscriber.email) if emails: # send email to all subscribers; note that text must be in # English for all users, since currently we cannot (easily) # send the text in the recipient's language. # !!! TODO: make this possible mailBody = ("Dear Wiki user,\n\n" 'You have subscribed to a wiki page or wiki category on "%(sitename)s" for change notification.\n\n' "The following page has been changed by %(editor)s:\n" "%(pagelink)s\n\n") % { 'editor': user.current.name or os.environ.get('REMOTE_ADDR', ""), 'pagelink': webapi.getQualifiedURL(self.url()), 'sitename': config.sitename or webapi.getBaseURL(), } if comment: mailBody = mailBody + \ "The comment on the change is:\n%s\n\n" % comment # get a list of old revisions, and append a diff oldversions = wikiutil.getBackupList(config.backup_dir, self.page_name) if not oldversions: mailBody = mailBody + \ "No older revisions of the page stored, diff not available." else: page_file, backup_file, lines = wikiutil.pagediff(self.page_name, oldversions[0]) if lines and len(lines) > 2: mailBody = "%s%s\n%s" % ( mailBody, ("-" * 78), string.join(lines[2:], '')) else: mailBody = mailBody + "No differences found!\n" msg = _('\n' 'Sent a mail notification to these addresses: %s\n' '
    Result was: ') % string.join(emails, ", ") msg = msg + util.sendmail(emails, '[%(sitename)s] Update of "%(pagename)s"' % { 'sitename': config.sitename or "Wiki", 'pagename': self.page_name, }, mailBody, mail_from=user.current.email) return msg return _('Nobody subscribed to this page, no mail sent.') def _user_variable(self): """If user has a profile return the user name from the profile else return the remote address or "anonymous" If the user name contains spaces it is wiki quoted to allow links to the wiki user homepage (if one exists). """ username = user.current.name if username and config.allow_extended_names and \ string.count(username, ' ') and Page(username).exists(): username = '["%s"]' % username return username or os.environ.get('REMOTE_ADDR', 'anonymous') def _expand_variables(self, text): """Expand @VARIABLE@ in `text`and return the expanded text.""" #!!! TODO: Allow addition of variables via moin_config (and/or a text file) now = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime(time.time())) system_vars = { 'TIME': lambda t=now: "[[DateTime(%s)]]" % t, 'DATE': lambda t=now: "[[Date(%s)]]" % t, 'USERNAME': lambda s=self: s._user_variable(), 'USER': lambda s=self: "-- %s" % (s._user_variable(),), 'SIG': lambda s=self, t=now: "-- %s [[DateTime(%s)]]" % (s._user_variable(), t,), } if user.current.valid and user.current.name and user.current.email: system_vars['MAILTO'] = lambda u=user.current: \ "[mailto:%s %s]" % (u.email, u.name) #!!! TODO: Use a more stream-lined re.sub algorithm for name, val in system_vars.items(): text = string.replace(text, '@' + name + '@', val()) return text def _write_file(self, text): is_deprecated = string.lower(text[:11]) == "#deprecated" # save to tmpfile tmp_filename = self._tmp_filename() tmp_file = open(tmp_filename, 'wb') tmp_file.write(text) tmp_file.close() page_filename = self._text_filename() if not os.path.isdir(config.backup_dir): os.mkdir(config.backup_dir, 0777 & config.umask) if os.path.isfile(page_filename) \ and not is_deprecated: os.rename(page_filename, os.path.join(config.backup_dir, wikiutil.quoteFilename(self.page_name) + '.' + str(os.path.getmtime(page_filename)))) else: if os.name == 'nt': # Bad Bill! POSIX rename ought to replace. :-( try: os.remove(page_filename) except OSError, er: import errno if er.errno <> errno.ENOENT: raise er # set in-memory content self.set_raw_body(text) # replace old page by tmpfile os.chmod(tmp_filename, 0666 & config.umask) os.rename(tmp_filename, page_filename) return os.path.getmtime(page_filename) def save_text(self, newtext, datestamp, **kw): """ Save new text for a page. Keyword parameters: stripspaces - strip whitespace from line ends (default: 0) notify - send email notice tp subscribers (default: 0) comment - comment field (when preview is true) """ msg = "" if not user.current.may.edit: msg = _("""You are not allowed to edit any pages.""") if not newtext: msg = _("""You cannot save empty pages.""") elif datestamp == '0': pass elif datestamp != str(os.path.getmtime(self._text_filename())): msg = _("""Sorry, someone else saved the page while you edited it.

    Please do the following: Use the back button of your browser, and cut&paste your changes from there. Then go forward to here, and click EditText again. Now re-add your changes to the current page contents.

    Do not just replace the content editbox with your version of the page, because that would delete the changes of the other person, which is excessively rude! """) # save only if no error occured (msg is empty) if not msg: # set success msg msg = _("""Thank you for your changes. Your attention to detail is appreciated.""") # remove CRs (so Win32 and Unix users save the same text) newtext = string.replace(newtext, "\r", "") # possibly strip trailing spaces if kw.get('stripspaces', 0): newtext = string.join(map(string.rstrip, string.split(newtext, '\n')), '\n') # add final newline if not present in textarea, better for diffs # (does not include former last line when just adding text to # bottom; idea by CliffordAdams) if newtext and newtext[-1] != '\n': newtext = newtext + '\n' # expand variables, unless it's a template or form page if not (wikiutil.isTemplatePage(self.page_name) or wikiutil.isFormPage(self.page_name)): newtext = self._expand_variables(newtext) # write the page file mtime = self._write_file(newtext) # write the editlog entry from MoinMoin import editlog log = editlog.makeLogStore() remote_name = os.environ.get('REMOTE_ADDR', '') log.addEntry(self.page_name, remote_name, mtime, kw.get('comment', '')) # add event log entry eventlog.logger.add('SAVEPAGE', {'pagename': self.page_name}) # send notification mails if config.mail_smarthost and kw.get('notify', 0): msg = msg + "

    " + self.notifySubscribers(kw.get('comment', '')) return msg Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -r1.110 -r1.111 *** Page.py 20 Mar 2002 23:04:17 -0000 1.110 --- Page.py 27 Mar 2002 21:46:50 -0000 1.111 *************** *** 19,23 **** ############################################################################# class Page: ! """ A wiki page """ _SPLIT_RE = re.compile('([%s])([%s])' % (config.lowerletters, config.upperletters)) --- 19,26 ---- ############################################################################# class Page: ! """ An immutable wiki page. ! ! To change a page's content, use the PageEditor class. ! """ _SPLIT_RE = re.compile('([%s])([%s])' % (config.lowerletters, config.upperletters)) *************** *** 126,134 **** - def set_raw_body(self, body): - """Set the raw body text (prevents loading from disk)""" - self.raw_body = body - - def get_raw_body(self): """Load the raw markup from the page file""" --- 129,132 ---- *************** *** 441,840 **** return filter(None, string.split(cache.content(), '\n')) - - - def send_editor(self, form, **kw): - """ Send the editor form page. - - Keywords: - preview - if true, show preview - comment - comment field (when preview is true) - """ - from cgi import escape - try: - from MoinMoin.action import SpellCheck - except ImportError: - SpellCheck = None - - # check edit permissions - if not user.current.may.edit: - self.send_page(form, - msg=_("""You are not allowed to edit any pages.""")) - return - - webapi.http_headers(webapi.nocache) - - if self.prev_date: - print 'Cannot edit old revisions' - return - - # check for preview submit - title = _('Edit "%(pagename)s"') - preview = kw.get('preview', 0) - if preview: - title = _('Preview of "%(pagename)s"') - try: - newtext = form['savetext'].value - except KeyError: - newtext = "" - - newtext = string.replace(newtext, "\r", "") - self.set_raw_body(newtext) - - # send header stuff - wikiutil.send_title( - title % {'pagename': self.split_title(),}, - pagename=self.page_name) - template_param = '' - if form.has_key('template'): - template_param = '&template=' + form['template'].value - print '%s' % ( - wikiutil.quoteWikiname(self.page_name), template_param, - _('Reduce editor size')) - print "|", wikiutil.getSysPage('HelpOnFormatting').link_to() - if preview: - print '| %s' % _('Skip to preview') - - # send form - try: - text_rows = int(form['rows'].value) - except StandardError: - text_rows = config.edit_rows - if user.current.valid: text_rows = int(user.current.edit_rows) - try: - text_cols = int(form['cols'].value) - except StandardError: - text_cols = 80 - if user.current.valid: text_cols = int(user.current.edit_cols) - - print '

    ' % ( - webapi.getScriptname(), - wikiutil.quoteWikiname(self.page_name), - '#preview', - ) - print '' - if os.path.isfile(self._text_filename()): - mtime = os.path.getmtime(self._text_filename()) - else: - mtime = 0 - print '' % (mtime,) - - # get the text body for the editor field - if form.has_key('template'): - # "template" parameter contains the name of the template page - template_page = wikiutil.unquoteWikiname(form['template'].value) - raw_body = Page(template_page).get_raw_body() - if raw_body: - print _("[Content of new page loaded from %s]") % (template_page,) - else: - print _("[Template %s not found]") % (template_page,) - else: - raw_body = self.get_raw_body() - - # generate default content - if not raw_body: - raw_body = _('Describe %s here.') % (self.page_name,) - - # replace CRLF with LF - raw_body = string.replace(raw_body, '\r\n', '\n') - - # print the editor textarea and the save button - print ('' - % (text_rows, text_cols, escape(raw_body))) - - notify = '' - if config.mail_smarthost: - notify = ''' - %s
    ''' % ( - ('', ' checked')[not preview or (form.getvalue('notify') == '1')], - _('Send mail notification'), - ) - - if preview: print '' - print "
    ", _("Optional comment about this change") + \ - '
    ' % ( - escape(kw.get('comment', ''), 1), text_cols,) - - button_spellcheck = (SpellCheck and - '   ' - % _('Check Spelling')) or '' - - print ''' -
    -   -   %s      - -
    ''' % (_('Save Changes'), _('Preview'), button_spellcheck, _('Cancel'),) - - print '''%s - - %s - ''' % ( notify, - ('', ' checked')[preview and (form.getvalue('rstrip') == '1')], - _('Remove trailing whitespace from each line') - ) - - badwords_re = None - if preview: - if SpellCheck and ( - form.has_key('button_spellcheck') or - form.has_key('button_newwords')): - badwords, badwords_re, msg = SpellCheck.checkSpelling(self, form, own_form=0) - print "

    ", msg - print '' - print "

    " - - if preview: - print ('
    ' - '' - '
    ') % (config.url_prefix,) - self.send_page(form, content_only=1, hilite_re=badwords_re) - print '
    ' - - # QuickHelp originally by Georg Mischler - print _("""
    - - Emphasis: ''italics''; '''bold'''; '''''bold italics'''''; - ''mixed '''bold''' and italics''; ---- horizontal rule.
    - Headings: = Title 1 =; == Title 2 ==; === Title 3 ===; - ==== Title 4 ====; ===== Title 5 =====.
    - Lists: space and one of * bullets; 1., a., A., i., I. numbered items; - 1.#n start numbering at n; space alone indents.
    - Links: JoinCapitalizedWords; ["brackets and double quotes"]; - url; [url]; [url label].
    - Tables: || cell text |||| cell text spanning two columns ||; - no trailing white space allowed after tables or titles.
    -
    -
    - """) - - - def delete(self): - """Delete the page (but keep the backups)""" - # First save a final backup copy of the current page - # (recreating the page allows access to the backups again) - self.save_text("deleted", '0') - - # Then really delete it - try: - os.remove(self._text_filename()) - except OSError, er: - import errno - if er.errno <> errno.ENOENT: raise er - - # delete pagelinks - arena = "pagelinks" - key = wikiutil.quoteFilename(self.page_name) - cache = caching.CacheEntry(arena, key) - cache.remove() - - - def notifySubscribers(self, comment): - """ Send email to all subscribers of this page. - Return message, indicating success or errors. - """ - # extract categories of this page - pageList = self.getPageLinks() - CATEGORY_RE = re.compile("^Category") - pageList = filter(CATEGORY_RE.match, pageList) - - # add current page name for list matching - pageList.append(self.page_name) - - # get email addresses of the all wiki user which have a profile stored; - # add the address only if the user has subscribed to the page and - # the user is not the current editor - userlist = user.getUserList() - emails = [] - for uid in userlist: - if uid == user.current.id: continue # no self notification - subscriber = user.User(uid) - if not subscriber.email: continue # skip empty email address - - if subscriber.isSubscribedTo(pageList): - emails.append(subscriber.email) - - if emails: - # send email to all subscribers; note that text must be in - # English for all users, since currently we cannot (easily) - # send the text in the recipient's language. - # !!! TODO: make this possible - mailBody = ("Dear Wiki user,\n\n" - 'You have subscribed to a wiki page or wiki category on "%(sitename)s" for change notification.\n\n' - "The following page has been changed by %(editor)s:\n" - "%(pagelink)s\n\n") % { - 'editor': user.current.name or os.environ.get('REMOTE_ADDR', ""), - 'pagelink': webapi.getQualifiedURL(self.url()), - 'sitename': config.sitename or webapi.getBaseURL(), - } - - if comment: - mailBody = mailBody + \ - "The comment on the change is:\n%s\n\n" % comment - - # get a list of old revisions, and append a diff - oldversions = wikiutil.getBackupList(config.backup_dir, self.page_name) - if not oldversions: - mailBody = mailBody + \ - "No older revisions of the page stored, diff not available." - else: - page_file, backup_file, lines = wikiutil.pagediff(self.page_name, oldversions[0]) - if lines and len(lines) > 2: - mailBody = "%s%s\n%s" % ( - mailBody, ("-" * 78), string.join(lines[2:], '')) - else: - mailBody = mailBody + "No differences found!\n" - - msg = _('\n' - 'Sent a mail notification to these addresses: %s\n' - '
    Result was: ') % string.join(emails, ", ") - msg = msg + util.sendmail(emails, - '[%(sitename)s] Update of "%(pagename)s"' % { - 'sitename': config.sitename or "Wiki", - 'pagename': self.page_name, - }, - mailBody, mail_from=user.current.email) - return msg - - return _('Nobody subscribed to this page, no mail sent.') - - - def _user_variable(self): - """If user has a profile return the user name from the profile - else return the remote address or "anonymous" - - If the user name contains spaces it is wiki quoted to allow - links to the wiki user homepage (if one exists). - """ - username = user.current.name - if username and config.allow_extended_names and \ - string.count(username, ' ') and Page(username).exists(): - username = '["%s"]' % username - return username or os.environ.get('REMOTE_ADDR', 'anonymous') - - - def _expand_variables(self, text): - """Expand @VARIABLE@ in `text`and return the expanded text.""" - #!!! TODO: Allow addition of variables via moin_config (and/or a text file) - now = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime(time.time())) - system_vars = { - 'TIME': lambda t=now: "[[DateTime(%s)]]" % t, - 'DATE': lambda t=now: "[[Date(%s)]]" % t, - 'USERNAME': lambda s=self: s._user_variable(), - 'USER': lambda s=self: "-- %s" % (s._user_variable(),), - 'SIG': lambda s=self, t=now: "-- %s [[DateTime(%s)]]" - % (s._user_variable(), t,), - } - - if user.current.valid and user.current.name and user.current.email: - system_vars['MAILTO'] = lambda u=user.current: \ - "[mailto:%s %s]" % (u.email, u.name) - #!!! TODO: Use a more stream-lined re.sub algorithm - for name, val in system_vars.items(): - text = string.replace(text, '@' + name + '@', val()) - return text - - - def _write_file(self, text): - is_deprecated = string.lower(text[:11]) == "#deprecated" - - # save to tmpfile - tmp_filename = self._tmp_filename() - tmp_file = open(tmp_filename, 'wb') - tmp_file.write(text) - tmp_file.close() - page_filename = self._text_filename() - - if not os.path.isdir(config.backup_dir): - os.mkdir(config.backup_dir, 0777 & config.umask) - - if os.path.isfile(page_filename) \ - and not is_deprecated: - os.rename(page_filename, os.path.join(config.backup_dir, - wikiutil.quoteFilename(self.page_name) + '.' + str(os.path.getmtime(page_filename)))) - else: - if os.name == 'nt': - # Bad Bill! POSIX rename ought to replace. :-( - try: - os.remove(page_filename) - except OSError, er: - import errno - if er.errno <> errno.ENOENT: raise er - - # set in-memory content - self.set_raw_body(text) - - # replace old page by tmpfile - os.chmod(tmp_filename, 0666 & config.umask) - os.rename(tmp_filename, page_filename) - return os.path.getmtime(page_filename) - - - def save_text(self, newtext, datestamp, **kw): - """ Save new text for a page. - - Keyword parameters: - stripspaces - strip whitespace from line ends (default: 0) - notify - send email notice tp subscribers (default: 0) - comment - comment field (when preview is true) - """ - msg = "" - if not user.current.may.edit: - msg = _("""You are not allowed to edit any pages.""") - if not newtext: - msg = _("""You cannot save empty pages.""") - elif datestamp == '0': - pass - elif datestamp != str(os.path.getmtime(self._text_filename())): - msg = _("""Sorry, someone else saved the page while you edited it. -

    Please do the following: Use the back button of your browser, and cut&paste - your changes from there. Then go forward to here, and click EditText again. - Now re-add your changes to the current page contents. -

    Do not just replace - the content editbox with your version of the page, because that would - delete the changes of the other person, which is excessively rude! - """) - - # save only if no error occured (msg is empty) - if not msg: - # set success msg - msg = _("""Thank you for your changes. - Your attention to detail is appreciated.""") - - # remove CRs (so Win32 and Unix users save the same text) - newtext = string.replace(newtext, "\r", "") - - # possibly strip trailing spaces - if kw.get('stripspaces', 0): - newtext = string.join(map(string.rstrip, string.split(newtext, '\n')), '\n') - - # add final newline if not present in textarea, better for diffs - # (does not include former last line when just adding text to - # bottom; idea by CliffordAdams) - if newtext and newtext[-1] != '\n': - newtext = newtext + '\n' - - # expand variables, unless it's a template or form page - if not (wikiutil.isTemplatePage(self.page_name) or - wikiutil.isFormPage(self.page_name)): - newtext = self._expand_variables(newtext) - - # write the page file - mtime = self._write_file(newtext) - - # write the editlog entry - from MoinMoin import editlog - log = editlog.makeLogStore() - remote_name = os.environ.get('REMOTE_ADDR', '') - log.addEntry(self.page_name, remote_name, mtime, kw.get('comment', '')) - - # add event log entry - eventlog.logger.add('SAVEPAGE', {'pagename': self.page_name}) - - # send notification mails - if config.mail_smarthost and kw.get('notify', 0): - msg = msg + "

    " + self.notifySubscribers(kw.get('comment', '')) - - return msg --- 439,442 ---- Index: wikiaction.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiaction.py,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -r1.61 -r1.62 *** wikiaction.py 20 Mar 2002 23:04:17 -0000 1.61 --- wikiaction.py 27 Mar 2002 21:46:50 -0000 1.62 *************** *** 390,398 **** def do_edit(pagename, form): ! Page(pagename).send_editor(form) def do_savepage(pagename, form): ! pg = Page(pagename) try: savetext = form['savetext'].value --- 390,401 ---- def do_edit(pagename, form): ! from MoinMoin.PageEditor import PageEditor ! PageEditor(pagename).send_editor(form) def do_savepage(pagename, form): ! from MoinMoin.PageEditor import PageEditor ! ! pg = PageEditor(pagename) try: savetext = form['savetext'].value From jh at web.de Wed Mar 27 13:49:17 2002 From: jh at web.de (Juergen Hermann) Date: Wed Mar 27 13:49:17 2002 Subject: [Moin-devel] New PageEditor class Message-ID: Please give the current CVS source a good test run. And don't cvs up right now if you fear possible instabilities. Ciao, J?rgen From jhermann at users.sourceforge.net Wed Mar 27 13:58:06 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 13:58:06 2002 Subject: [Moin-devel] CVS: MoinMoin config.py,1.62,1.63 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv11915/MoinMoin Modified Files: config.py Log Message: Added fix for external introspection Index: config.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/config.py,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -r1.62 -r1.63 *** config.py 9 Mar 2002 15:55:22 -0000 1.62 --- config.py 27 Mar 2002 21:57:46 -0000 1.63 *************** *** 171,172 **** --- 171,177 ---- del os, _dirname, _varname + if default_config: + import new + from MoinMoin import cgimain + cgimain.request = new.classobj('Request', (), {}) + From jhermann at users.sourceforge.net Wed Mar 27 14:42:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 14:42:03 2002 Subject: [Moin-devel] CVS: MoinMoin Page.py,1.111,1.112 config.py,1.63,1.64 editlog.py,1.15,1.16 httpdmain.py,1.10,1.11 util.py,1.37,1.38 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv13801/MoinMoin Modified Files: Page.py config.py editlog.py httpdmain.py util.py Log Message: Refactoring: Fixes for pychecker warnings Index: Page.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/Page.py,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -r1.111 -r1.112 *** Page.py 27 Mar 2002 21:46:50 -0000 1.111 --- Page.py 27 Mar 2002 22:41:14 -0000 1.112 *************** *** 9,13 **** # Imports ! import cStringIO, os, re, sys, string, time, urllib from MoinMoin import caching, config, eventlog, user, util, wikiutil, webapi from MoinMoin.cgimain import request --- 9,13 ---- # Imports ! import cStringIO, os, re, sys, string, urllib from MoinMoin import caching, config, eventlog, user, util, wikiutil, webapi from MoinMoin.cgimain import request Index: config.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/config.py,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -r1.63 -r1.64 *** config.py 27 Mar 2002 21:57:46 -0000 1.63 --- config.py 27 Mar 2002 22:41:14 -0000 1.64 *************** *** 172,177 **** if default_config: - import new from MoinMoin import cgimain ! cgimain.request = new.classobj('Request', (), {}) --- 172,176 ---- if default_config: from MoinMoin import cgimain ! cgimain.request = None Index: editlog.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/editlog.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** editlog.py 12 Mar 2002 04:09:00 -0000 1.15 --- editlog.py 27 Mar 2002 22:41:14 -0000 1.16 *************** *** 12,16 **** # Imports ! import cgi, os, string, time from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page --- 12,16 ---- # Imports ! import cgi, os, string from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page *************** *** 34,38 **** return None ! def addEntry(self, pagename, host, mtime, comment): """ Add an entry to the editlog """ pass --- 34,38 ---- return None ! def addEntry(self, pagename, host, mtime, comment, action): """ Add an entry to the editlog """ pass *************** *** 61,64 **** --- 61,65 ---- if not os.access(self.filename, os.W_OK): return "The edit log '%s' is not writable!" % (self.filename,) + return None def addEntry(self, pagename, host, mtime, comment, action="SAVE"): *************** *** 102,105 **** --- 103,107 ---- if schema == "text": return LogText(optstr) + return None Index: httpdmain.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/httpdmain.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** httpdmain.py 21 Mar 2002 00:18:24 -0000 1.10 --- httpdmain.py 27 Mar 2002 22:41:14 -0000 1.11 *************** *** 80,85 **** """ - import urllib - file = urllib.unquote(uri) file.replace('\\', '/') --- 80,83 ---- Index: util.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/util.py,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -r1.37 -r1.38 *** util.py 25 Mar 2002 13:12:21 -0000 1.37 --- util.py 27 Mar 2002 22:41:14 -0000 1.38 *************** *** 11,15 **** # Imports ! import os, re, string, sys, time from MoinMoin.i18n import _ --- 11,15 ---- # Imports ! import os, re, string, time from MoinMoin.i18n import _ *************** *** 61,65 **** Set a different "From" address with "mail_from=". """ ! import os, smtplib, socket from MoinMoin import config --- 61,65 ---- Set a different "From" address with "mail_from=". """ ! import smtplib, socket from MoinMoin import config From jhermann at users.sourceforge.net Wed Mar 27 14:42:04 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 14:42:04 2002 Subject: [Moin-devel] CVS: MoinMoin/macro FullSearch.py,1.6,1.7 RecentChanges.py,1.54,1.55 WantedPages.py,1.7,1.8 Message-ID: Update of /cvsroot/moin/MoinMoin/macro In directory usw-pr-cvs1:/tmp/cvs-serv13801/MoinMoin/macro Modified Files: FullSearch.py RecentChanges.py WantedPages.py Log Message: Refactoring: Fixes for pychecker warnings Index: FullSearch.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/FullSearch.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** FullSearch.py 26 Mar 2002 18:56:44 -0000 1.6 --- FullSearch.py 27 Mar 2002 22:41:14 -0000 1.7 *************** *** 21,25 **** # Imports ! import cgi, re, urllib from MoinMoin import config, user, wikiutil from MoinMoin.i18n import _ --- 21,25 ---- # Imports ! import re, urllib from MoinMoin import config, user, wikiutil from MoinMoin.i18n import _ Index: RecentChanges.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/RecentChanges.py,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -r1.54 -r1.55 *** RecentChanges.py 20 Feb 2002 00:28:52 -0000 1.54 --- RecentChanges.py 27 Mar 2002 22:41:14 -0000 1.55 *************** *** 9,14 **** # Imports ! import cgi, re, string, sys, time ! from cStringIO import StringIO from MoinMoin import config, editlog, user, util, wikiutil, wikixml from MoinMoin.Page import Page --- 9,13 ---- # Imports ! import cgi, re, string, sys, time, cStringIO from MoinMoin import config, editlog, user, util, wikiutil, wikixml from MoinMoin.Page import Page *************** *** 28,32 **** tnow = time.time() msg = "" ! buf = StringIO() # add rss link --- 27,31 ---- tnow = time.time() msg = "" ! buf = cStringIO.StringIO() # add rss link *************** *** 137,141 **** if tdiff < 1440: buf.write(_("[%(hours)dh %(mins)dm ago]") % { ! 'hours': tdiff/60, 'mins': tdiff%60}) else: buf.write(time.strftime(config.changed_time_fmt, log.time_tuple)) --- 136,140 ---- if tdiff < 1440: buf.write(_("[%(hours)dh %(mins)dm ago]") % { ! 'hours': int(tdiff/60), 'mins': tdiff%60}) else: buf.write(time.strftime(config.changed_time_fmt, log.time_tuple)) *************** *** 262,266 **** """ from MoinMoin import webapi ! import os, re, new, cStringIO # get params --- 261,265 ---- """ from MoinMoin import webapi ! import os, new # get params Index: WantedPages.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/macro/WantedPages.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** WantedPages.py 20 Mar 2002 23:57:07 -0000 1.7 --- WantedPages.py 27 Mar 2002 22:41:14 -0000 1.8 *************** *** 9,13 **** # Imports ! import cgi, string, urllib from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page --- 9,13 ---- # Imports ! import string, urllib from MoinMoin import config, user, wikiutil from MoinMoin.Page import Page From jhermann at users.sourceforge.net Wed Mar 27 14:52:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 14:52:02 2002 Subject: [Moin-devel] CVS: MoinMoin/action AttachFile.py,1.28,1.29 LikePages.py,1.9,1.10 Message-ID: Update of /cvsroot/moin/MoinMoin/action In directory usw-pr-cvs1:/tmp/cvs-serv18028/MoinMoin/action Modified Files: AttachFile.py LikePages.py Log Message: More pychecker warnings Index: AttachFile.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/AttachFile.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** AttachFile.py 26 Mar 2002 19:14:31 -0000 1.28 --- AttachFile.py 27 Mar 2002 22:51:03 -0000 1.29 *************** *** 229,233 **** if form.getvalue('drawing', None): ! return send_hotdraw(pagename, form) print _(""" --- 229,234 ---- if form.getvalue('drawing', None): ! send_hotdraw(pagename, form) ! return print _(""" *************** *** 311,316 **** fileitem = form['file'] if not fileitem.file: ! return error_msg(pagename, form, _("Filename of attachment not specified!")) # get directory, and possibly create it --- 312,318 ---- fileitem = form['file'] if not fileitem.file: ! error_msg(pagename, form, _("Filename of attachment not specified!")) + return # get directory, and possibly create it Index: LikePages.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/action/LikePages.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** LikePages.py 25 Feb 2002 21:21:12 -0000 1.9 --- LikePages.py 27 Mar 2002 22:51:03 -0000 1.10 *************** *** 56,66 **** # no matches :( if not matches: ! return Page(pagename).send_page(form, msg='' + _('No pages match "%s"!') % (pagename,) + '') # one match - display it if len(matches) == 1: ! return Page(matches.keys()[0]).send_page(form, msg='' + _('Exactly one matching page for "%s" found!') % (pagename,) + '') # more than one match, list 'em --- 56,68 ---- # no matches :( if not matches: ! Page(pagename).send_page(form, msg='' + _('No pages match "%s"!') % (pagename,) + '') + return # one match - display it if len(matches) == 1: ! Page(matches.keys()[0]).send_page(form, msg='' + _('Exactly one matching page for "%s" found!') % (pagename,) + '') + return # more than one match, list 'em From jhermann at users.sourceforge.net Wed Mar 27 15:10:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 15:10:02 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.92,1.93 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv25502 Modified Files: wikiutil.py Log Message: More icons Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -r1.92 -r1.93 *** wikiutil.py 20 Mar 2002 23:04:17 -0000 1.92 --- wikiutil.py 27 Mar 2002 23:09:26 -0000 1.93 *************** *** 62,66 **** # version 0.12 "(./)": (20, 15, "checkmark.gif"), ! "(OK)": (14, 12, "thumbs-up.gif"), } --- 62,71 ---- # version 0.12 "(./)": (20, 15, "checkmark.gif"), ! "{OK}": (14, 12, "thumbs-up.gif"), ! "{X}": (16, 16, "icon-error.gif"), ! "{i}": (16, 16, "icon-info.gif"), ! "{1}": (15, 13, "prio1.gif"), ! "{2}": (15, 13, "prio1.gif"), ! "{3}": (15, 13, "prio1.gif"), } From jhermann at users.sourceforge.net Wed Mar 27 15:14:03 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 15:14:03 2002 Subject: [Moin-devel] CVS: MoinMoin wikiutil.py,1.93,1.94 Message-ID: Update of /cvsroot/moin/MoinMoin In directory usw-pr-cvs1:/tmp/cvs-serv26964 Modified Files: wikiutil.py Log Message: Cut'n'pasto fix Index: wikiutil.py =================================================================== RCS file: /cvsroot/moin/MoinMoin/wikiutil.py,v retrieving revision 1.93 retrieving revision 1.94 diff -C2 -r1.93 -r1.94 *** wikiutil.py 27 Mar 2002 23:09:26 -0000 1.93 --- wikiutil.py 27 Mar 2002 23:13:11 -0000 1.94 *************** *** 66,71 **** "{i}": (16, 16, "icon-info.gif"), "{1}": (15, 13, "prio1.gif"), ! "{2}": (15, 13, "prio1.gif"), ! "{3}": (15, 13, "prio1.gif"), } --- 66,71 ---- "{i}": (16, 16, "icon-info.gif"), "{1}": (15, 13, "prio1.gif"), ! "{2}": (15, 13, "prio2.gif"), ! "{3}": (15, 13, "prio3.gif"), } From jhermann at users.sourceforge.net Wed Mar 27 15:48:02 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Wed Mar 27 15:48:02 2002 Subject: [Moin-devel] CVS: dist setup.py,1.17,1.18 Message-ID: Update of /cvsroot/moin/dist In directory usw-pr-cvs1:/tmp/cvs-serv20510 Modified Files: setup.py Log Message: Fix for scripts running under CMD.EXE Index: setup.py =================================================================== RCS file: /cvsroot/moin/dist/setup.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** setup.py 19 Mar 2002 23:06:54 -0000 1.17 --- setup.py 27 Mar 2002 23:47:21 -0000 1.18 *************** *** 85,89 **** if sys.platform == "win32": file.write('@echo off\n' ! '%(python)s -c "from %(package)s.scripts.%(module)s import run; run()" %%$\n' % script_vars) else: --- 85,90 ---- if sys.platform == "win32": file.write('@echo off\n' ! 'if NOT "%%_4ver%%" == "" %(python)s -c "from %(package)s.scripts.%(module)s import run; run()" %%$\n' ! 'if "%%_4ver%%" == "" %(python)s -c "from %(package)s.scripts.%(module)s import run; run()" %%*\n' % script_vars) else: From jhermann at users.sourceforge.net Thu Mar 28 12:19:28 2002 From: jhermann at users.sourceforge.net (J?rgen Hermann) Date: Thu Mar 28 12:19:28 2002 Subject: [Moin-devel] CVS: dist/moin.sourceforge.net index.html,1.7,1.8 Message-ID: Update of /cvsroot/moin/dist/moin.sourceforge.net In directory usw-pr-cvs1:/tmp/cvs-serv5811 Modified Files: index.html Log Message: Version change Index: index.html =================================================================== RCS file: /cvsroot/moin/dist/moin.sourceforge.net/index.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** index.html 8 Mar 2002 17:34:19 -0000 1.7 --- index.html 28 Mar 2002 20:07:31 -0000 1.8 *************** *** 57,61 ****

    Project Info on Sourceforge
    Download area
    !
    Nightly CVS tarball (and some more files)
    The Original Wiki