Pretty easy

  • Add a “video” macro to quickly copy-paste videos from YouTube, Vimeo, etc. into pages
  • Add a go-to search field to quickly jump to a given page

The “tough ones”

  • Investigate on page deletion
  • √ A mechanism similar to Kept Pages has been implemented in Bikini 2
  • Implement cache-friendly output with HTTP “conditional GET”
  • √ Rewrite code to be compatible with WSGI to run with FastCGI and other environments
  • Special WikiWord to load up custom styles, instead of current s/user.css. See UserStylesheet
  • UserView


Bikini code is accumulating some rust. Work done in Coldsweat taught me how to write a proper WSGI application and how to combine different applications into one. Instead Bikini started as a CGI script and grown into a WSGI application, and the approach is starting to show its limits.

Using SQLite in version 2 turned to be a good idea, on the other hand not using a template language but relying on string.Template made views busy without any compelling reason. This could be solved with Tempita which looks nice and could be added to Bikini like Creole without introducing any external dependency.


  • TwitterIntegration
  • Use Creole parser “HTML to Creole” feature to quickly create content from an existing web page, perhaps triggering the process via a bookmarklet
  • General WSGI notes

RESTful or not?


Current way of block page editing from anonymous users via .htaccess isn’t very flexible. You can only block entire directories or HTTP methods (POST, DELETE, etc.).

It seems not possible to tell Apache something like this: let the CGI script decide when trigger the HTTP authentication mechanism (Basic or Digest) and let the web server to manage user authentication. You are somewhat forced to either let Apache manage all the process or let CGI to deal with the entire process completely.

It is cool to delegate to Apache utilities to create and securely store user-password pairs somewhere on the filesystem but it would be better to be able to actually read them back when authenticated user is needed to perform a given operation.

So this passlib Python package could help: “This module provides utilities for reading and writing Apache’s htpasswd and htdigest files; though the use of two helper classes.”

Last edited on Apr 29, 2022 by AnonymousCoward · Source · Diff