aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/add_remove_to_actionlist.mdwn
diff options
context:
space:
mode:
authorJonathan Dowland <jon@dowland.me>2014-07-28 14:13:19 +0100
committerJonathan Dowland <jon@dowland.me>2014-07-28 14:13:19 +0100
commit4f8c1e4ef43ecb48f316f2f809906819efa823b4 (patch)
tree6fd8eb4c82932670c6ca6b0479d7d56281e4c900 /doc/todo/add_remove_to_actionlist.mdwn
parent5b000cda7e4c8fbbff922424dc6c42dd8644c743 (diff)
downloadikiwiki-4f8c1e4ef43ecb48f316f2f809906819efa823b4.tar
ikiwiki-4f8c1e4ef43ecb48f316f2f809906819efa823b4.tar.gz
new feature request: remove (and rename) in action list (initial patches)
Diffstat (limited to 'doc/todo/add_remove_to_actionlist.mdwn')
-rw-r--r--doc/todo/add_remove_to_actionlist.mdwn82
1 files changed, 82 insertions, 0 deletions
diff --git a/doc/todo/add_remove_to_actionlist.mdwn b/doc/todo/add_remove_to_actionlist.mdwn
new file mode 100644
index 000000000..92beabc94
--- /dev/null
+++ b/doc/todo/add_remove_to_actionlist.mdwn
@@ -0,0 +1,82 @@
+[[!template id=gitbranch branch=jon/remove_action author="[[Jon]]"]]
+
+The "remove" plugin allows one to remove pages via the web, but you first have
+to click on 'edit' to get to the 'remove' button. This is a bit
+counter-intuitive, and ikiwiki has an action list, so it would be good if
+"remove" (and also "rename" for that plugin) added items to the action list.
+
+First cut series of patches in the indicated branch. A bit more review is
+needed, in my tests removals work and are committed to the vcs but
+recentchanges isn't regenerated for some reason (probably the constructed `<a>`
+link needs to add/adjust the parameters to emulate a formbuilder form
+submission more carefully).
+
+I haven't begun on the 'rename' plugin. -- [[Jon]]
+
+[[!tag wishlist patch]]
+
+> This seems like weird overloading of the header parameter - it's
+> table data, except when it isn't.
+
+> > My first cut (now rebased out of existence I think) introduced a
+> > new "headerblock" parameter, but trying to clearly document the
+> > interaction of data/headerblock/header parameters was too awkward. -- [[Jon]]
+
+> Perhaps
+> something like this would be easier to use in practice?
+> (and also more featureful :-) )
+>
+> \[[!table header="2 rows 1 column" data="""
+> Name | Platform ||
+> | Windows | Mac | Linux
+> ikiwiki | no | yes | yes
+> Starcraft | yes | yes | via Wine
+> """]]
+
+> > Thanks for your prompt feedback!
+> >
+> > This would probably be good, yes, and having mixed row/column headers is
+> > definitely a nice-to-have. I don't relish the prospect of writing the parser
+> > but I see you've made a stab already...
+> >
+> > One thing you'd lose, but it's debatable whether this is valuable, would be
+> > to have the header defined in the directive, and the remaining table data
+> > declared in an external CSV. -- [[Jon]]
+
+> intended to be rendered like
+>
+> <table>
+> <tr><th>Name</th><th colspan=2>Platform</th>
+> <tr><th></th><th>Windows</th><th>Mac</th><th>Linux</th></tr>
+> <tr><th>ikiwiki</th><td>no</td><td>yes</td><td>yes</td></tr>
+> <tr><th>Starcraft</th><td>yes</td><td>yes</td><td>via Wine</td></tr>
+> </table>
+>
+> (Deliberately switching to plain-text to make it more obvious
+> what's a `<th>` and what's `<td>`.)
+>
+> Vague pseudocode for parsing `headers`
+> (possibly even valid Perl, I'm not sure):
+>
+> my ($header_rows, $header_cols);
+> while ($header =~ s/(\d*)\W*(\w+)//) {
+> my $n = ($1 or 0);
+> my $what = $2;
+> if ($what =~ m/rows?/) {
+> $header_rows = $n;
+> }
+> elif ($what =~ m/col(?:umn)?s?/) {
+> $header_cols = $n;
+> }
+> }
+>
+> and it would even be fairly easy to extend to support
+> `(first|last|)\W*(\d*)\W*(\w+)` later, e.g.
+> `header="1 row, first 2 cols, last column"`.
+>
+> --[[smcv]]
+
+> > To be clear I think your suggestion is a good one, but my hack has
+> > addressed my immediate need so it's the one I'm deploying at $ork for the
+> > time being. I'm unlikely to have time to implement this solution in the
+> > near future. -- [[Jon]]