Plone/Wicked, Zwiki comparison --simon, Wed, 05 Sep 2007 13:23:01 -0700 reply

FYI, I've updated

darcs doc update --simon, Thu, 06 Sep 2007 16:17:38 -0700 reply


how do ZWiki home page --NeilMcEvoy?, Sat, 08 Sep 2007 05:43:57 -0700 reply

I love the home page style. is there a quick how to on how it's done? I've looked around the site, but can't find how to do stuff like the nice coloured boxes, the centred text etc. Thanks!

how do ZWiki home page --Simon Michael, Sat, 08 Sep 2007 08:59:39 -0700 reply

Hey Neil, welcome. It's just hand-tweaked html (FrontPage uses structured text + html instead of restructured text). See it via the edit link, external edit link, or by appending /src to the url.

Plone integration --NeilMcEvoy?, Sun, 09 Sep 2007 05:58:37 -0700 reply

My main goal is plone integration, and I see there's a lot of info to read. A quick question: ZWiki Folders allows me to select membership controls, such as 'role to add wiki pages' = 'expert' etc. Will these be site-wide, or will they fit in with how I'm trying to use mxmWorkgroups, which is limit the role to that group, ie a group wiki can only be edited by an expert for that group, or will it mean any expert can edit any wiki?

many thanks! Neil.

Spam --flemmingbjerke, Wed, 12 Sep 2007 03:53:57 -0700 reply

It is necessary to pay more attention to spam. Even has had spam problems:

We need to have open zwiki where whoever wants to comment, can comment. But, we cannot do that due to spammers. I have tried to apply plonecaptcha, but I haven't succeeded in having zwiki to validate captcha. I think zwiki should have default opportunity where anonymous user must use captcha.

Spam --betabug, Wed, 12 Sep 2007 04:29:32 -0700 reply

Have you tried setting edits_need_username ? Did it change anything for you there? See for example the LinkSpam page for details.

Spam --Simon Michael, Wed, 12 Sep 2007 08:37:40 -0700 reply

As betabug says, see - that page has the current know-how for dealing with Zwiki spam. So far these methods have been sufficient for all zwikis I know about. Patches to integrate with PloneCaptcha? would be interesting.

upload image inplace --val, Fri, 14 Sep 2007 03:39:28 -0700 reply

Hi all, I have created a bit of javascript code that uses the upload functionality embedded in Zwiki to upload images. It all works fine, the upload works fine, but the image is always put under the text, instead of where the cursor is. Does anyone have a clue why?

upload image inplace --betabug, Sat, 15 Sep 2007 06:45:40 -0700 reply

Unless you have changed any Zwiki python code, the uploads are on the server handled by the handleFileUpload() method (in, which - after handling all the file uploading business - will call _addFileLink() (also in _addFileLink() searches the text of the current page for a link to the freshly uploaded image. If no such link (href or src) is found, and satisfying some other tests, it adds a link to the image at the end of the wiki page in question.

So I'd say that if your javascript also adds a link to that image at the cursor position and properly sends in the "edited" page text to the server at the same time as uploading the image, then the image should not appear at the end of the page.

release status --simon, Sat, 15 Sep 2007 09:19:37 -0700 reply

Hi all.. I have not felt ready to release 0.60 final yet due to a number of uglyish plone and encoding-related issues. You can see them in IssueTracker. I haven't been able to spend time on these during the week. Good news, Sascha Welter is back to zwiki hacking as of today and this will help a lot. Anyone else with a little time here and there, please do hang out on #zwiki and help if you can. Many hands make light work!

Zwiki 0.60 released --simon, Sat, 15 Sep 2007 15:25:08 -0700 reply

Can't wait any longer! 0.60 must be released! Happy Software Freedom Day!

Zwiki 0.60 released --Simon Michael, Thu, 20 Sep 2007 12:14:17 -0700 reply

I'm glad to announce the recent release of Zwiki 0.60, breaking the unusually long dry spell since 0.59 in 2007/04. Development has continued at a steady pace, as you can see at the darcsweb link below; also the docs continue to improve at and the issue tracker continues to grind through the mass of issues.

Zope 2.10 and Plone 3 users will want to upgrade to this one. I am tinkering with the development process to try and make us more efficient. We have fun on this project and don't mind sharing it around, so more contributors always welcome!

Best wishes, -Simon


history - - free zwiki hosting - - related sites

Release notes:

Zwiki 0.60.0 2007/09/15

Fix TAL unicode errors with zope 2.10, Plone 3/CMF 2.1 compatibility, quicker page rendering, permanent edit history, labelled bracket links, better support for custom wiki templates, a tool for importing MoinMoin wikis, many other improvements and code cleanups.

Upgrade notes
  • Zope >=2.10 users should upgrade to this release to avoid TAL unicode
  • Plone 3/CMF 2.1 users should upgrade to this release
  • Plone 2.x users will not be able to install this release in sites, see
#1322 below
  • a wiki catalog is no longer optional, and will be added if missing
  • skin customizers should note the wiki navigation links are now in the

wikipage template

  • #1322: Plone 3 & CMF 2.1 compatibility. Warning, this version of Zwiki uses GenericSetup? and is not compatible with older versions of Plone/CMF. This could be tackled in a future release if there is demand. See the issue page for discussion and possible workarounds.
  • tools/, imports MoinMoin wiki data to a zwiki (M. Pedersen)
  • #1217: fix setupDtmlPages error (Sascha Welter)
  • fixPageEncoding renamed to fixEncoding and fixed
  • move wiki navigation links to wikipage template for easier customizing
  • #1041, #1145: ensure a catalog and an outline cache are always present.
  • make the home link, wiki logo and index_html use the default page url consistently
  • hide the prefix in mailto: email hyperlinks
  • change long-standing links order: contents before changes, help after options
  • #1348 - redirect to original page after useroptions We are always calling FrontPage/useroptions to limit bot traffic. Now we are carrying the redirectURL through the REQUEST, so we know where to redirect in the end. (Sascha Welter)
  • #1333: make literal/code style more precise to avoid styling difform headings
  • help page cleanup
  • #1145: avoid the broken dtml-in sort option in SearchPage?, also, to avoid occasional search errors
  • most access keys are always available, but disable the s subscribeform key if mailout is not enabled, as an extra cue
  • speed up pages by doing less work
  • slight discussionUrl speedup, don't look for UserDiscussion? page
  • speed up hasIssues, which was taking half the 2.5s skin render time on
  • #1157: replace revertEdits[Everywhere]?By with history-wiping expunge, expungeEditsBy, expungeEditsEverywhereBy methods
  • more robust history:
    • allow partial history, revisions can safely be deleted
    • use a btree folder for revisions if possible
    • more zodb cache friendly
    • richer history api
  • new history and diff views. History should now be at least as functional as before, and permanent
  • simple permanent revisions model, use revisions folder instead of recycle_bin
  • stop discarding content outside of html body tags - they may be part of the content
  • #1370: allow arbitrary urls in bracket links
  • optional link labels after | in bracket links
  • #965: avoid infinite recursion error when a page is reparented to
(Sascha Welter)
  • #570 - Ensure valid id with file uploads. But meanwhile try to mess with uploaded file's names as little as possible. We check first if the name is acceptable to Zope, and only if it isn't we change it. (Sascha Welter)
  • #1085 - Comments are now properly formatted in HTML pagetype. Now it's possible to use comments in HTML pagetype pages and have the comments still properly formatted after page edits. Similar to #1079 and therefore again credits and thanks to Martijn Pieters. We are in the same manner using preRenderMessages to add the comments. (Sascha Welter)
  • #1079 - Plaintext comments work now. Commenting on plaintext pages would work until you edited the page itself, then the prerendering method lost the comment rendering. Credits go to Martijn Peters for this patch, a bit adapted to code that had moved on. I had to tweak the output test, as the exact placement of blank lines at end of the page content has changed minimally. (Sascha Welter)
  • refuse any incoming text that's not ascii or utf-8, to avoid problems later
  • createform and create now look only at folder permissions, not the current page, to be consistent with the page management form. The 'Zwiki: Add pages' permission is meaningful only on folders, and ignored on pages.
  • #512 - fix footnotes with "create page" links in RST (Sascha Welter)
  • #1323: revert methods now obey the edits_need_username option
  • clean up revertEditsBy, don't break with new pages
  • #1256: handle mailins with encodings other than utf8
  • don't log body of mail-ins by default
  • #141 - Uploading a file causes an "edit" mailout now. (Sascha Welter)
  • also allow a 'Secure Maildrop Host' for sending mail (Sascha Welter, Encolpe Degoute)
  • no updates
Issue tracking
  • yellow color to make open funded issues stand out
  • IssueTracker cleanups
  • #1334: make fuzzy urls work better with issue numbers
  • use html instead of stx page type when installing issue tracker as dtml pages, for a 4x speedup of the unit test on my system
  • many code cleanups including imports, safe_hasattr, deprecation

warnings, pyflakes warnings, tests

  • Replace hasattr() with safe_hasattr() everywhere. Problem with hasattr() is that it masks exceptions, which is known to be problematic. "Our" new safe_hasattr() is from - with thanks and credits to Dieter Maurer. (Sascha Welter)
  • #1365 use talsafe() on newname in /editform to avoid UnicodeDecodeError?. This problem appeared in localized browsers only for some reason, but the fix likely is necessary for 2.10 too. (Sascha Welter)
  • #1339 - fixing text encoding for textarea. (Sascha Welter)
  • #1330: a better fix for these unicode errors. Zope 2.10 expects TAL data to be unicode, older zopes do not. This can lead to many obscure unicode errors depending on your system locale, wiki content, cookies, phase of the moon etc. This fix aims to make all the standard templates robust against this. Wikis with old customized templates will still be vulnerable to this problem after upgrading to zope 2.10, until those templates are updated.
  • partial workaround for #1330 UnicodeDecodeError?
  • Default wiki type is "basic" + added 'jpeg' fs templating. (Sascha Welter)
  • #1332 - fix for the fix + default wiki_type is "basic". We're now not trying to grab the REQUEST from self any more -- just doesn't make sense to me. Also we have now the default wiki_type as "basic". (Sascha Welter)
  • #1332 - make manage_addWiki more programmatic + test. We still grabbed the REQUEST and thus got a redirect at the 2nd chance. Now we're doing the same check as on the 1st test and also return the new id if we don't redirect. Added a test too. (Sascha Welter)
  • Recursively add files/folders on addWikiFromFs. This is used for "nautica" style templates. It's now possible to use templates e.g. from without having to "unroll" images into a flat structure. Also we now can set document titles and parents from the filesystem pages. (Sascha Welter)
  • #1331, #1186 - last_edit_date / creation_date timestamps now in ISO6801. We changed the timestamp format for last_edit_date and creation_date to conform to ISO8601, in order to save time zone information along with it. Special care is taken to upgrading old timestamps in Zope's DateTime?'s ISO() format. (Sascha Welter)
  • update stx code, may work better with zope 2.10
  • revisionInfoFor -> revisionInfo
  • inPlone method
  • no updates

WikiNameEscacpe is not working --Rusty, Thu, 20 Sep 2007 20:59:52 -0700 reply

I'm running zwiki 0.59.0 w/ MoinMoin formatting and placing ! in front of a WikiName is not escaping it. Anyone know what the problem is? All WikiNames in this post have been escaped.

WikiNameEscape not working in moin page type --Simon Michael, Fri, 21 Sep 2007 06:31:10 -0700 reply

You're right! Forwarded to the issue tracker.

On Thu, 20 Sep 2007 20:59:53 -0700, Rusty <> wrote:

> I'm running zwiki 0.59.0 w/ MoinMoin formatting and placing ! in front
> of a WikiName is not escaping it. Anyone know what the problem is?

make pages more indexable --simon, Mon, 24 Sep 2007 22:53:31 -0700 reply

Zwiki has a standard feature designed to prevent wiki spam being indexed (which tends to make the wiki a spam magnet): pages edited within the last 24 hours have a noindex header. In other words, a 24-hour cool-off period before indexing can take place. Via baijum, I heard of a complaint from mgedmin about the zope3 wiki not being google friendly due to the noindex header. Thinking about it, the 24 hour rule seems to have an obvious problem that an actively-edited page might never get indexed! I'm guessing that mgedmin saw page not appearing in google as quickly as he expected. I think we have higher expectations of the speed of search indexing nowadays.

So I've turned off that feature for all wikis (by customizing the template). And I guess it needs to be dropped from Zwiki, as it seems to do a bit more harm than good. Tell me what you think.

make pages more indexable --simon, Tue, 25 Sep 2007 09:18:06 -0700 reply

Sent the patch to PatchDiscussion2007. And I guess I'll move this thread to the IssueTracker so we can find it in future. Poor old GeneralDiscussion! It's all happening elsewhere.

On a lighter note --EmmaLaurijssens, Wed, 26 Sep 2007 08:04:04 -0700 reply

I'm going to use Zwiki again as a project tool, within Plone 3.

On a lighter note --Simon Michael, Wed, 26 Sep 2007 10:56:08 -0700 reply

Excellent news! It will be good to have another of us poking at zwiki in plone 3.

restview --simon, Fri, 28 Sep 2007 09:55:00 -0700 reply

Just released: an offline rst viewer from Marius Gedminas, with python code highlighting. "Pass the name of a ReStructuredText? document to restview, and it will launch a web server on localhost:random-port and open a web browser. Every time you reload the page, restview will reload the document from disk and render it. This is very convenient for previewing a document while you're editing it."

Problems submitting patches --betabug, Tue, 09 Oct 2007 22:41:40 -0700 reply

Have tried to send in a few patches. Not sure where they should go now:

  • darcs wants to send them to patches@ by default, if I do that, nothing happens, they don't appear on PatchDiscussion2007
  • if I send them to zwiki-repo@, then I get a delivery failure message "Command died with status 2"

Problems submitting patches --Simon Michael, Wed, 10 Oct 2007 08:17:26 -0700 reply

> - darcs wants to send them to patches@ by default, if I do that, nothing happens, they don't appear on PatchDiscussion2007 > We've resolve this for now. Sascha does darcs sends from a different email address, which needed to be subscribed somewhere in the wiki (we chose FrontPage so he wouldn't get duplicate comments). This shows that patch senders also need to be wiki subscribers before their patch will be seen. Hm.

> - if I send them to zwiki-repo@, then I get a delivery failure message That address has been retired for the moment and shouldn't be used.

I'm sorry --EmmaLaurijssens, Mon, 15 Oct 2007 08:07:13 -0700 reply

I couldn't help but add a few open issues. ;)

cleanup --Simon Michael, Thu, 18 Oct 2007 07:45:44 -0700 reply

PS I have been (re)learning about refactoring in python. This may be obvious, but what I'm doing is looking for big methods and trying to break them up. (I'd love a tool to print method lengtch stats, anyone ?) Also I'm trying to use more intention-revealing code. As we keep breaking things up into meaningful verbs we will end up with more of a DSL (domain specific language) which we can express things in with more reuse.

Sometimes this means I add a line or two, to create a named variable to clarify the purpose. I don't mind that if it makes things clearer and more extractable. Next maybe I'll create a local function in the method, then sometimes I'll move that out to an instance method. A few of these are general functions and don't really need to be instance methods, but I leave them there for the time being just so they're nearby.

I'm being a bit careful about method naming since I don't want to expose dangerous things in the public web api, those which need to be private I am prefixing with _ (not relying on docstrings because I want to provide those most of the time.) Right now the _ prefix is a bit inconsistent and distracts from free refactoring, we should probably either apply it consistently across everything, or make it so nothing is published by default and explicitly define which methods are public (I favour that).

cleanup --Simon Michael, Thu, 18 Oct 2007 07:49:21 -0700 reply

Oops, that was a followup to PatchDiscussion2007. If you're a GeneralDiscussion page subscriber and want to see more about the code, don't forget to subscribe over there too (or better, the whole wiki).

cleanup --Simon Michael, Thu, 18 Oct 2007 07:53:59 -0700 reply

PPS I'm doing this to make the code more fun to work on, and allow better progress on everything else (Unicode, testing, bugfixing etc.).

Join in, it's fun! The main criteria for a refactoring or cleanup is that the tests pass before, you make the code clearer and probably shorter than before, without changing the behaviour, and the tests pass after. No refactoring is too small!