Skip to content

siebenmann/dwiki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is the current codebase for DWiki, my Python based wiki-oid engine
that I use for my techblog Wandering Thoughts (among other things),
http://utcc.utoronto.ca/~cks/space/blog/

It is not a completely useful or documented codebase at the moment.

Bits:
- test: hierarchy of basic templates, pages, and so on for testing. It's
  also served as the base set of files for my production uses of DWiki.
  test/pages/dwiki/ contains various documentation on DWiki's operation.

- wiki.conf: sample / example / testing configuration file
  See test/pages/dwiki/ConfigurationFile

- dwiki-serv.py: serve DWiki using Python's built in web server code.
  Suitable only for testing.

- dwiki-cgi.py: run DWiki as a CGI.
- dwiki-scgi.py: SCGI-based frontend for DWiki. Its usage is complex,
  see -h/--help. It normally communicates with your web server (or
  SCGI client) over a Unix domain socket.
- supervise-sock.py: Supervise something, like dwiki-scgi.py, that
  supports being passed its server socket through systemd's socket
  activation protocol.

- dwiki-cat.py: a relatively raw rendering interface for DWiki.
  Mostly suitable for examining the internals and dumping raw pages.

- dpasswd.py: add entries to a DWiki password file. Has bugs about
  in-place updates, which should be fixed.

- testbench.py: a timing and profiling test harness. Using statprof
  requires some external assistance beyond the scope of this README.

- dwiki-cache.py: force things into the brute-force cache. Note that
  you need to set the correct server hostname and possibly the schema
  (http vs https) and port or your BFC-forcing will be ineffective.

All four DWiki frontends take a common core of options (in addition
to some options specific to each frontend) and expect to be given
a configuration file as their main argument. See the output of
the -h/--help option from each of them.

Note that timestamps of files in test/ matter. Since git doesn't
support file timestamps, there is a primitive shell script to save
and restore them to a file:

	./dostamps set test test.timestamps
		# restore test/* timestamps from test.timestamps data

	./dostamps get test test.timestamps
		# save test/* timestamps to test.timestamps

You need to do the former before starting to do stuff with DWiki.
You want to do the latter before commiting any new or changed files
in test/*.

In addition to using the commands above, you can also potentially
run DWiki as a WSGI application with a normal (general) WSGI server
such as uWSGI, Apache's mod_wsgi, or gUnicorn. To do so you will
need to create a WSGI 'application' callable thing, which is built
as follows:

	import dwconfig
	application, _ = dwconfig.materialize("/path/to/dwiki.conf", None)

(The second argument to dwconfig.materialize is somewhat complicated, but
passing None is the simple version.)

More information:

	http://utcc.utoronto.ca/~cks/space/dwiki/DWiki
	http://utcc.utoronto.ca/~cks/space/dwiki/

Author:
Chris Siebenmann

Copyright:
GPL v3 for now. Someday there will be notes about this in files and so on.

About

DWiki is the file based wiki-thing that Chris Siebenmann uses for his blogs. It's written in a pile of Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages