]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
* Fix a bug with inlined create page links, including Discussion links on
[ikiwiki.git] / IkiWiki / CGI.pm
index cd6ddc0345350c79566dfbad5235b235ad4b0cac..1c4e088dc5c9b92853f24b13ed5a1c23aa82c45d 100644 (file)
@@ -358,7 +358,7 @@ sub cgi_editpage ($$) { #{{{
        $form->field(name => "from", type => 'hidden');
        $form->field(name => "rcsinfo", type => 'hidden');
        $form->field(name => "subpage", type => 'hidden');
-       $form->field(name => "page", value => $page, force => 1);
+       $form->field(name => "page", value => pagetitle($page, 1), force => 1);
        $form->field(name => "type", value => $type, force => 1);
        $form->field(name => "comments", type => "text", size => 80);
        $form->field(name => "editcontent", type => "textarea", rows => 20,
@@ -396,12 +396,11 @@ sub cgi_editpage ($$) { #{{{
                                value => $content, force => 1);
                $form->field(name => "comments",
                                value => $comments, force => 1);
-               $config{rss}=$config{atom}=0; # avoid preview writing a feed!
                $form->tmpl_param("page_preview",
                        htmlize($page, $type,
                        linkify($page, "",
                        preprocess($page, $page,
-                       filter($page, $content)))));
+                       filter($page, $content), 0, 1))));
        }
        else {
                $form->tmpl_param("page_preview", "");
@@ -467,8 +466,8 @@ sub cgi_editpage ($$) { #{{{
                        
                        $form->tmpl_param("page_select", 1);
                        $form->field(name => "page", type => 'select',
-                               options => { map { $_ => pagetitle($_, 1) } @editable_locs },
-                               value => $best_loc);
+                               options => [ map { pagetitle($_, 1) } @editable_locs ],
+                               value => pagetitle($best_loc, 1));
                        $form->field(name => "type", type => 'select',
                                options => \@page_types);
                        $form->title(sprintf(gettext("creating %s"), pagetitle($page)));
@@ -682,12 +681,12 @@ sub cgi (;$$) { #{{{
                cgi_editpage($q, $session);
        }
        elsif ($do eq 'blog') {
-               my $page=titlepage(decode_utf8($q->param('title')));
-               $page=~s/(\/)/"__".ord($1)."__"/eg; # escape slashes too
+               my $page=decode_utf8($q->param('title'));
+               $page=~s/\///g; # no slashes in blog posts
                # if the page already exists, munge it to be unique
                my $from=$q->param('from');
                my $add="";
-               while (exists $pagecase{lc "$from/$page$add"}) {
+               while (exists $pagecase{lc($from."/".titlepage($page).$add)}) {
                        $add=1 unless length $add;
                        $add++;
                }