web commit by intrigeri: created wishlist for applydiff plugin
[ikiwiki] / doc / todo / applydiff_plugin.mdwn
1 [[!tag wishlist]]
2
3 [[!toc ]]
4
5 Summary
6 =======
7
8 Allow a user to apply an arbitrary diff, in order to modify a given
9 page (or, even better, a given set of pages).
10
11 Rationale
12 =========
13
14 To edit intensively an ikiwiki-powered website can quickly get
15 annoying for anybody meeting enough of the following conditions:
16
17 * living mainly offline
18 * having no commit access to the RCS backing up the site (BTW, please
19   note I can send my ssh public key to anyone who asks for, free of
20   charges)
21 * hating web-browsers and despising textareas
22 * loving in his/her own preferred `$EDITOR`
23
24 ... and when one gathers all of these defaults, she/he is on her/his
25 way to get mad. Soon.
26
27 Before it's too late, some dareful ones dream of the following
28 playflow:
29
30 1. Go online.
31 1. Update local working copy.
32 1. Go offline.
33 1. `$EDITOR` : write, report, answer, propose
34 1. Go online.
35 1. Update local working copy (and optionally fix conflicts between
36    local changes and remote ones).
37 1. Generate a diff.
38 1. Use a web-browser to paste the diffs (or better, upload them into
39    a form) somewhere on the wiki, and click "Apply".
40 1. git pull (to reflect locally the fact that the diff has been
41    applied to the remote repo)
42 1. Go offline.
43
44 (This is for sure a bit theoretical: the ones who dream of this would
45 actually insert various steps about branching, merging and rebasing
46 random stuff.)
47
48 Design
49 ======
50
51 This has to be thought very carefully, to avoid one to apply diffs to
52 pages he/she is not allowed to edit. Restricting a given diff to
53 modify only *one* page may be easier.
54
55 Implementation
56 ==============