summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-07 21:00:48 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-07 21:00:48 +0000
commit1bdfa4d8b54763eee1c266e3516bb50dd864cedc (patch)
tree45bb961a8b4b2b790875c320f2c6e6e5d141de10 /doc
parent1cd1f073fff6be0300dec80cf1571ca247ce24ab (diff)
* Support a w3mmode, which lets w3m run ikiwiki using its local CGI
support, to edit pages etc without a web server.
Diffstat (limited to 'doc')
-rw-r--r--doc/features.mdwn2
-rw-r--r--doc/sandbox.mdwn2
-rw-r--r--doc/serverless.mdwn3
-rw-r--r--doc/todo/terminalclient.mdwn18
-rw-r--r--doc/usage.mdwn5
-rw-r--r--doc/w3mmode.mdwn11
-rw-r--r--doc/w3mmode/ikiwiki.setup81
7 files changed, 100 insertions, 22 deletions
diff --git a/doc/features.mdwn b/doc/features.mdwn
index 1406f5a1b..1b09a3274 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -136,7 +136,7 @@ Some of ikiwiki's features:
After rather a lot of fiddling, we think that ikiwiki correctly and fully
supports utf8 everywhere.
-* [[serverless]] mode
+* [[w3mmode]]
Can be set up so that w3m can be used to browse a wiki and edit pages
without using a web server.
diff --git a/doc/sandbox.mdwn b/doc/sandbox.mdwn
index 538d03403..a536303d2 100644
--- a/doc/sandbox.mdwn
+++ b/doc/sandbox.mdwn
@@ -48,8 +48,6 @@ Bulleted list
*one
*one
-hi, mom!
-
----
[[haiku hint="sandbox play"]]
diff --git a/doc/serverless.mdwn b/doc/serverless.mdwn
deleted file mode 100644
index 2cbf6e2f7..000000000
--- a/doc/serverless.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-It's possible to use all of ikiwiki's web features (page editing, etc) in
-the `w3m` web browser without using a web server. `w3m` supports local CGI
-scripts, and ikiwiki can be set up to run that way.
diff --git a/doc/todo/terminalclient.mdwn b/doc/todo/terminalclient.mdwn
index 8c802888b..b420a3d17 100644
--- a/doc/todo/terminalclient.mdwn
+++ b/doc/todo/terminalclient.mdwn
@@ -2,23 +2,9 @@ Hack together a local ikiwiki w/o a web server using w3m's cgi-less mode
and $EDITOR. Browse around a wiki, select pages to edit and get dropped
right into the editor and have the page committed to svn automatically.
+[[todo/done]]
+
Less grandiosely, a simple command line util to add a new page would be
useful, especially if it made it easy to add blog entries to the wiki. I
have a special purpose version of this in my [blog
script](http://kitenet.net/~joey/code/bin.html).
-
-----
-
-w3m's cgi mode requires that cgis be in /usr/lib/w3m/cgi-bin/, and the url
-for it can be $LIB/script. This presents a problem, since a regular user
-can't add an ikiwiki wrapper to there (nor should they). But,
-/usr/lib/w3m/cgi-bin/ikiwiki could be a meta-wrapper, that is passed the
-path to the real wrapper in PATH_INFO, validates it, and runs the real
-wrapper. So:
-
-<a href="file:///$LIB/ikiwiki.cgi/home/joey/.ikiwiki/wrappers/ikiwiki.cgi">
-
-Validation is important, because we don't want just any html document
-including an evil w3m cgi that gets unintentionally run. The validation I'm
-thinking of is that the ikiwiki meta-wrapper only runs wrappers in
-$HOME/.ikiwiki/wrappers/, which the user presumably controls.
diff --git a/doc/usage.mdwn b/doc/usage.mdwn
index 7bc9e5314..8404d15da 100644
--- a/doc/usage.mdwn
+++ b/doc/usage.mdwn
@@ -200,6 +200,11 @@ These options configure the wiki.
Be vebose about what is being done.
+* --w3mmode, --no-w3mmode
+
+ Enable [[w3mmode]], which allows w3m to use ikiwiki as a local CGI script,
+ without a web server.
+
* --getctime
Pull last changed time for each new page out of the revision control
diff --git a/doc/w3mmode.mdwn b/doc/w3mmode.mdwn
new file mode 100644
index 000000000..3afee5c9b
--- /dev/null
+++ b/doc/w3mmode.mdwn
@@ -0,0 +1,11 @@
+It's possible to use all of ikiwiki's web features (page editing, etc) in
+the `w3m` web browser without using a web server. `w3m` supports local CGI
+scripts, and ikiwiki can be set up to run that way. This requires some
+special configuration:
+
+ * `w3mmode` must be enabled
+ * A CGI wrapper must be created, in ~/.ikiwiki/wrappers/
+ * `cgiurl` should be set to just the base of the filename of the CGI
+ wrapper.
+
+This [[ikiwiki.setup]] is an example of setting up a wiki using w3mmode.
diff --git a/doc/w3mmode/ikiwiki.setup b/doc/w3mmode/ikiwiki.setup
new file mode 100644
index 000000000..ed65e0f91
--- /dev/null
+++ b/doc/w3mmode/ikiwiki.setup
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+# Configuration file for ikiwiki (w3m mode).
+# Passing this to ikiwiki --setup will make ikiwiki generate wrappers and
+# build the wiki.
+#
+# Remember to re-run ikiwiki --setup any time you edit this file.
+
+use IkiWiki::Setup::Standard {
+ wikiname => "ikiwiki",
+ #adminuser => ["yourname", ],
+ #adminemail => 'me@myhost',
+
+ # Be sure to customise these..
+ srcdir => "doc",
+ destdir => "html",
+
+ # Enable w3m mode.
+ w3mmode => 1,
+
+ cgiurl => 'ikiwiki.cgi',
+ #templatedir => "/usr/share/ikiwiki/templates",
+
+ rcs => "",
+
+ # Subversion stuff.
+ #rcs => "svn",
+ #historyurl => "http://svn.myhost/trunk/[[file]]",
+ #diffurl => "http://svn.someurl/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
+ #svnrepo => "/svn/wiki",
+ #svnpath => "trunk",
+
+ # Git stuff.
+ #rcs => "git",
+ #historyurl => "http://git.host/gitweb.cgi?p=wiki.git;a=history;f=[[file]]",
+ #diffurl => "http://git.host/gitweb.cgi?p=wiki.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]",
+
+ wrappers => [
+ {
+ # The cgi wrapper.
+ cgi => 1,
+ wrapper => "$ENV{HOME}/.ikiwiki/wrappers/ikiwiki.cgi",
+ wrappermode => "0755",
+ },
+ #{
+ # # The svn post-commit wrapper.
+ # # Note that this will overwrite any existing
+ # # post-commit hook script, which may not be
+ # # what you want.
+ # wrapper => "/svn/wikirepo/hooks/post-commit",
+ # wrappermode => "04755",
+ # # Enable mail notifications of commits.
+ # notify => 1,
+ #},
+ #{
+ # # The git post-update wrapper.
+ # # Note that this will overwrite any existing
+ # # post-update hook script, which may not be
+ # # what you want.
+ # wrapper => "/git/wikirepo/.git/hooks/post-update",
+ # wrappermode => "04755",
+ # # Enable mail notifications of commits.
+ # notify => 1,
+ #},
+ ],
+
+ # Can anonymous web users edit pages?
+ anonok => 1,
+ # Generate rss feeds for pages?
+ rss => 1,
+ # Urls to ping with XML-RPC when rss feeds are updated
+ #pingurl => [qw{http://rpc.technorati.com/rpc/ping}],
+ # Include discussion links on all pages?
+ discussion => 1,
+ # Time format (for strftime)
+ #timeformat => '%c',
+
+ # To add plugins, list them here.
+ #add_plugins => [qw{pagecount brokenlinks search smiley wikitext}],
+ # If you want to disable any of the default plugins, list them here.
+ #disable_plugins => [qw{inline htmlscrubber}],
+}