summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/ikiwiki/directive/comment.mdwn2
-rw-r--r--doc/plugins/write.mdwn18
-rw-r--r--doc/rcs.mdwn20
-rw-r--r--doc/todo/Separate_OpenIDs_and_usernames.mdwn7
4 files changed, 32 insertions, 15 deletions
diff --git a/doc/ikiwiki/directive/comment.mdwn b/doc/ikiwiki/directive/comment.mdwn
index 693a92770..398130e2e 100644
--- a/doc/ikiwiki/directive/comment.mdwn
+++ b/doc/ikiwiki/directive/comment.mdwn
@@ -29,6 +29,8 @@ metadata of the comment.
nearly any format, since it's parsed by [[!cpan TimeDate]]
* `username` - Used to record the username (or OpenID)
of a logged in commenter.
+* `nickname` - Name to display for a logged in commenter.
+ (Optional; used for OpenIDs.)
* `ip` - Can be used to record the IP address of a commenter,
if they posted anonymously.
* `claimedauthor` - Records the name that the user entered,
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 193005565..a921b9a02 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -1051,16 +1051,20 @@ token, that will be passed into `rcs_commit` when committing. For example,
it might return the current revision ID of the file, and use that
information later when merging changes.
-#### `rcs_commit($$$;$$)`
+#### `rcs_commit(@)`
+
+Passed named parameters: `file`, `message`, `token` (from `rcs_prepedit`),
+and `session` (optional).
-Passed a file, message, token (from `rcs_prepedit`), user, and ip address.
Should try to commit the file. Returns `undef` on *success* and a version
of the page with the rcs's conflict markers on failure.
-#### `rcs_commit_staged($$$)`
+#### `rcs_commit_staged(@)`
+
+Passed named parameters: `message`, and `session` (optional).
-Passed a message, user, and ip address. Should commit all staged changes.
-Returns undef on success, and an error message on failure.
+Should commit all staged changes. Returns undef on success, and an
+error message on failure.
Changes can be staged by calls to `rcs_add`, `rcs_remove`, and
`rcs_rename`.
@@ -1103,7 +1107,9 @@ The data structure returned for each change is:
{
rev => # the RCSs id for this commit
- user => # name of user who made the change,
+ user => # user who made the change (may be an openid),
+ nickname => # short name for user (optional; not an openid),
+
committype => # either "web" or the name of the rcs,
when => # time when the change was made,
message => [
diff --git a/doc/rcs.mdwn b/doc/rcs.mdwn
index 248d93024..83c6910d0 100644
--- a/doc/rcs.mdwn
+++ b/doc/rcs.mdwn
@@ -10,13 +10,8 @@ generic that it can be adapted to work with many systems by writing a
While all supported revision control systems work well enough for basic
use, some advanced or special features are not supported in all of them.
-Lack of support in [[ikiwiki-makerepo]] or auto.setup can make it harder to
-set up a wiki using that revision control system. The `rcs_commit_staged`
-hook is needed to use [[attachments|plugins/attachment]] or
-[[plugins/comments]]. `rcs_getctime` may be implemented in a fast way
-(ie, one log lookup for all files), or very slowly (one lookup per file).
-And so on. The table below summarises this for each revision control
-system and links to more information about each.
+The table below summarises this for each revision control system and
+links to more information about each.
[[!table data="""
feature |[[git]]|[[svn]]|[[bzr]] |[[monotone]]|[[mercurial]]|[[darcs]]|[[tla]] |[[cvs]]
@@ -30,7 +25,18 @@ auto.setup |yes |yes |incomplete|yes |incomplete |yes
`rcs_getmtime` |fast |slow |slow |no |no |no |no |no
anonymous push |yes |no |no |no |no |no |no |no
conflict handling |yes |yes |yes |buggy |yes |yes |yes |yes
+openid username |yes |no |no |no |no |no |no |no
"""]]
+Notes:
+
+* Lack of support in [[ikiwiki-makerepo]] or auto.setup can make it harder to
+ set up a wiki using that revision control system.
+* The `rcs_commit_staged` hook is needed to use [[attachments|plugins/attachment]]
+ or [[plugins/comments]].
+* `rcs_getctime` and `rcs_getmtime` may be implemented in a fast way (ie, one log
+ lookup for all files), or very slowly (one lookup per file).
+* Openid username support allows avoiding display of Google's ugly openids.
+
There is a page with [[details]] about how the different systems work with
ikiwiki, for the curious.
diff --git a/doc/todo/Separate_OpenIDs_and_usernames.mdwn b/doc/todo/Separate_OpenIDs_and_usernames.mdwn
index fcdb49f6d..a4940220a 100644
--- a/doc/todo/Separate_OpenIDs_and_usernames.mdwn
+++ b/doc/todo/Separate_OpenIDs_and_usernames.mdwn
@@ -38,13 +38,16 @@ A slightly more complex next step would be to request sreg from the provider and
> * Change `rcs_commit` and `rcs_commit_staged` to take a session object,
> instead of just a userid. (For back-compat, if the parameter is
> not an object, it's a userid.) Bump ikiwiki plugin interface version.
+> (done)
> * Modify all RCS plugins to include the session username somewhere
> in the commit, and parse it back out in `rcs_recentchanges`.
+> (done for git only so far)
> * Modify recentchanges plugin to display the username instead of the
> `openiduser`.
+> (done)
> * Modify comment plugin to put the session username in the comment
-> template instead of the `openiduser`.
+> template instead of the `openiduser`. (done)
Unfortunately I don't speak Perl, so hopefully someone thinks these suggestions are good enough to code up. I've hacked on openid code in Ruby before, so hopefully these changes aren't all that difficult to implement. Even if you don't get any data via sreg, you're no worse off than where you are now, so I don't think there'd need to be much in the way of error/sanity-checking of returned data. If it's null or not available then no big deal, typing in a username is no sweat.
-[[!tag wishlist]]
+[[!tag wishlist done]]