X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/92efb9c000825e1f16af4a27c51fb3e82a490a3f..5625be3bcd76b5990cb7799437def3521cc53a9d:/doc/plugins/contrib/comments.mdwn?ds=sidebyside diff --git a/doc/plugins/contrib/comments.mdwn b/doc/plugins/contrib/comments.mdwn index 891d3dee5..d2ca8d17d 100644 --- a/doc/plugins/contrib/comments.mdwn +++ b/doc/plugins/contrib/comments.mdwn @@ -10,33 +10,6 @@ or [[htmlbalance]]. Directives are filtered out by default, to avoid commenters down the wiki by causing time-consuming processing. As long as the recommended plugins are enabled, comment authorship should hopefully be unforgeable by CGI users. -> I'm not sure that raw html should be a problem, as long as the -> htmlsanitizer and htmlbalanced plugins are enabled. I can see filtering -> out directives, as a special case. --[[Joey]] - ->> Right, if I sanitize each post individually, with htmlscrubber and either htmltidy ->> or htmlbalance turned on, then there should be no way the user can forge a comment; ->> I was initially wary of allowing meta directives, but I think those are OK, as long ->> as the comment template puts the \[[!meta author]] at the *end*. Disallowing ->> directives is more a way to avoid commenters causing expensive processing than ->> anything else, at this point. ->> ->> I've rebased the plugin on master, made it sanitize individual posts' content ->> and removed the option to disallow raw HTML. Sanitizing individual posts before ->> they've been htmlized required me to preserve whitespace in the htmlbalance ->> plugin, so I did that. Alternatively, we could htmlize immediately and always ->> save out raw HTML? --[[smcv]] - ->> There might be some use cases for other directives, such as img, in ->> comments. ->> ->> I don't know if meta is "safe" (ie, guaranteed to be inexpensive and not ->> allow users to do annoying things) or if it will continue to be in the ->> future. Hard to predict really, all that can be said with certainty is ->> all directives will contine to be inexpensive and safe enough that it's ->> sensible to allow users to (ab)use them on open wikis. ->> --[[Joey]] - The plugin adds a new [[ikiwiki/PageSpec]] match type, `postcomment`, for use with `anonok_pagespec` from the [[plugins/anonok]] plugin or `locked_pages` from the [[plugins/lockedit]] plugin. Typical usage would be something like: @@ -61,27 +34,58 @@ There are some global options for the setup file: directives * `comments_commit`: if true (default true), comments will be committed to the version control system +* `comments_allowauthor`: if true (default false), anonymous commenters may specify a + name for themselves, and the \[[!meta author]] and \[[!meta authorurl]] directives + will not be overridden by the comments plugin + +Templates that will display comments (by default that means `comments_display.tmpl`) +can use the following additional ``s: + +* `COMMENTUSER`: the authenticated/verified user name, or undefined if the user was not signed in +* `COMMENTIP`: the remote IP address, or undefined if not known (this is not currently recorded + for users who are signed in, who are assumed to be vaguely accountable) +* `COMMENTAUTHOR`: a "prettier" version of the authenticated/verified user name (e.g. OpenIDs are + formatted the same way as in [[RecentChanges]]), or the result of localizing "Anonymous" if the + user was not signed in +* `COMMENTAUTHORURL`: if the user was signed in with an OpenID, that URL; if the user was signed + in with some other username, a CGI URL that redirects to their user page (if any) + +This plugin also adds a `\[[!_comment]]` directive which is used when storing comments. This +directive is for internal use only and shouldn't be used on pages that are edited in the usual way. This plugin aims to close the [[todo]] item "[[todo/supporting_comments_via_disussion_pages]]", and is currently available from [[smcv]]'s git repository on git.pseudorandom.co.uk (it's the -`postcomment` branch). A demo wiki with the plugin enabled is running at -. +`comments-rebase2` branch). A demo wiki with the plugin enabled is running at +; the +[sandbox page](http://www.pseudorandom.co.uk/2008/ikiwiki/demo/sandbox/#comments) has some +examples of comments. Known issues: * Needs code review -* The access control via postcomment() is rather strange +* The access control via postcomment() is rather strange (see [[discussion]] for more details) * There is some common code cargo-culted from other plugins (notably inline and editpage) which should probably be shared +* Joey doesn't think it should necessarily use internal pages (see [[discussion]]) +* Previews always say "unknown IP address" +* Add `COMMENTOPENID`: the authenticated/verified user name, if and only if it was an OpenID +* The default template should have a (?) icon next to unauthenticated users (with the IP address + as title) and an OpenID icon next to OpenIDs > I haven't done a detailed code review, but I will say I'm pleased you > avoided re-implementing inline! --[[Joey]] -Wishlist: - -* tbm would like anonymous people to be able to enter their name and possibly email - address -* smcv would like an indication of who you're posting as / the ability to log in - as someone else (even if anonymous comments are allowed, it'd be nice to be - able to choose to log in with a username or OpenID, like in Livejournal); - perhaps editpage needs this too +Fixed issues: + +* Joey didn't think the `\[[!comments]]` directive was appropriate; comments now appear + on pages selected with a [[ikiwiki/pagespec]] +* Joey thought that raw HTML should always be allowed; it now is +* tbm wanted anonymous people to be able to enter their name and possibly email + address; a name and website can now be supplied +* There is now an indication of who you're signed in as +* Each comment is now one big \[[!_comment]] directive invocation, avoiding previous + issues with unambiguous and un-spoofable metadata +* `\[[!comment]]` should be `\[[!_comment]]`, or a special filter/htmlize hook rather + than being a directive at all +* [[todo/inline_plugin:_ability_to_override_the_feed_name]] +* [[todo/inline_plugin:_hide_feed_buttons_if_empty]]