exit 0;
}
-sub postrename ($;$$$) {
+sub postrename ($$$;$$) {
+ my $cgi=shift;
my $session=shift;
my $src=shift;
my $dest=shift;
my $attachment=shift;
- # Load saved form state and return to edit page.
- my $postrename=CGI->new($session->param("postrename"));
+ # Load saved form state and return to edit page, using stored old
+ # cgi state. Or, if the rename was not started on the edit page,
+ # return to the renamed page.
+ my $postrename=$session->param("postrename");
+ if (! defined $postrename) {
+ IkiWiki::redirect($cgi, urlto(defined $dest ? $dest : $src));
+ exit;
+ }
+ my $oldcgi=CGI->new($postrename);
$session->clear("postrename");
IkiWiki::cgi_savesession($session);
# They renamed the page they were editing. This requires
# fixups to the edit form state.
# Tweak the edit form to be editing the new page.
- $postrename->param("page", $dest);
+ $oldcgi->param("page", $dest);
}
# Update edit form content to fix any links present
# on it.
- $postrename->param("editcontent",
+ $oldcgi->param("editcontent",
renamepage_hook($dest, $src, $dest,
- $postrename->param("editcontent")));
+ $oldcgi->param("editcontent")));
# Get a new edit token; old was likely invalidated.
- $postrename->param("rcsinfo",
+ $oldcgi->param("rcsinfo",
IkiWiki::rcs_prepedit($pagesources{$dest}));
}
- IkiWiki::cgi_editpage($postrename, $session);
+ IkiWiki::cgi_editpage($oldcgi, $session);
}
sub formbuilder (@) {
my $session=shift;
my ($form, $buttons)=rename_form($q, $session, Encode::decode_utf8($q->param("page")));
IkiWiki::decode_form_utf8($form);
+ my $src=$form->field("page");
if ($form->submitted eq 'Cancel') {
- postrename($session);
+ postrename($q, $session, $src);
}
elsif ($form->submitted eq 'Rename' && $form->validate) {
IkiWiki::checksessionexpiry($q, $session, $q->param('sid'));
# These untaints are safe because of the checks
# performed in check_canrename later.
- my $src=$form->field("page");
my $srcfile=IkiWiki::possibly_foolish_untaint($pagesources{$src})
if exists $pagesources{$src};
my $dest=IkiWiki::possibly_foolish_untaint(titlepage($form->field("new_name")));
IkiWiki::Plugin::attachment::is_held_attachment($src);
if ($held) {
rename($held, IkiWiki::Plugin::attachment::attachment_holding_location($dest));
- postrename($session, $src, $dest, $q->param("attachment"))
+ postrename($q, $session, $src, $dest, $q->param("attachment"))
unless defined $srcfile;
}
$renamesummary.=$template->output;
}
- postrename($session, $src, $dest, $q->param("attachment"));
+ postrename($q, $session, $src, $dest, $q->param("attachment"));
}
else {
IkiWiki::showform($form, $buttons, $session, $q);
* Remove compatability code in `loadindex` to handle old index data layouts.
* Make pagespecs match relative by default? (see [[discussion]])
* Flip wikilinks? (see [[todo/link_plugin_perhaps_too_general?]] and [[todo/do_not_make_links_backwards]])
-* YADA format setup files per default?
* Enable tagbase by default (so that tag autocreation will work by default).
Note that this is already done for wikis created by `auto-blog.setup`.
* [[tips/html5]] on by default (some day..)
* Remove support for old `.ikiwiki/comments_pending` from comment plugin.
-* Use yaml formatted setup files by default. (Not too compatability breaking
- really.)
In general, we try to use [[ikiwiki-transition]] or forced rebuilds on
upgrade to deal with changes that break compatability. Some things that
# future goals
-* Conversion support for existing other wikis.
- (Being worked on for MoinMoin and TWiki by [[Josh_Triplett|JoshTriplett]]
- and Jamey Sharp; support for other wikis should fit into the same
- framework.)
+* Conversion support for existing other wikis. See [[convert]].
* [[TODO]], [[bugs]], ...
>>> That style of link would work whether the link style was "backwards" or "forwards". Unfortunately it could make some links less readable; after all, there is a reason why one wants to be able to change the link text! But I don't know what proportion of the links are like that. It's a thought, anyway.
>>> --[[KathrynAndersen]]
+>>>> I dislike placing such requirements on the underlay, which is after
+>>>> all, just a subset of pages in this wiki, which many of the people
+>>>> editing may not even realize are part of the underlay. --[[Joey]]
+
>>> Another option for internal links is to just use the regular markdown links instead of `\[[text|link]]` markup, that way it works regardless. Then the documentation for the link plugin just has to state both syntaxes in a safe manner.
>>> I also agree that we should just switch in one shot, although I am worried this means this could be postponed indefinitely.--[[anarcat]]
>>>> I have done just that in my branch: now the underlay only uses wikilinks in the wikilink page, elsewhere regular markdown links are used. I haven't converted the whole of the doc/ directory however, that would be left to the migration. I have written a ikiwik-transition tool to migrate from wikilink to markdown while i was there. --[[anarcat]]
+>>>>> No, that is *not* an option. Relative markdown links **break** when
+>>>>> page A, containing a link, is inlined into page B. --[[Joey]]
+
----
FWIW, I think this change may well be painful, but is a good idea. I can never remember which way around it should be.