summaryrefslogtreecommitdiff
path: root/doc/todo/applydiff_plugin.mdwn
blob: d3eb9793b2da31b20123998995343a31d3e46a2a (plain)

[[!tag wishlist]]

[[!toc ]]

Summary

Allow a user to apply an arbitrary diff, in order to modify a given page (or, even better, a given set of pages).

Rationale

To edit intensively an ikiwiki-powered website can quickly get annoying for anybody meeting enough of the following conditions:

  • living mainly offline
  • having no commit access to the RCS backing up the site (BTW, please note I can send my ssh public key to anyone who asks for, free of charges)
  • hating web-browsers and despising textareas
  • loving in his/her own preferred $EDITOR

... and when one gathers all of these defaults, she/he is on her/his way to get mad. Soon.

Before it's too late, some dareful ones dream of the following playflow:

  1. Go online.
  2. Update local working copy.
  3. Go offline.
  4. $EDITOR : write, report, answer, propose
  5. Go online.
  6. Update local working copy (and optionally fix conflicts between local changes and remote ones).
  7. Generate a diff.
  8. Use a web-browser to paste the diffs (or better, upload them into a form) somewhere on the wiki, and click "Apply".
  9. git pull (to reflect locally the fact that the diff has been applied to the remote repo)
  10. Go offline.

(This is for sure a bit theoretical: the ones who dream of this would actually insert various steps about branching, merging and rebasing random stuff.)

Design

This has to be thought very carefully, to avoid one to apply diffs to pages he/she is not allowed to edit. Restricting a given diff to modify only one page may be easier.

Implementation