-This would allow you to create a new blog post. When you hit the `Edit` button, the system presents
-you with an edit form as normal, but rather than being empty, it has the text from `blogtemplate.mdwn`.
-
-Inline below is a [[patch]] that implements this:
-
-----
-
- diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
- index bb21ed2..10c985c 100644
- --- a/IkiWiki/Plugin/editpage.pm
- +++ b/IkiWiki/Plugin/editpage.pm
- @@ -60,7 +60,7 @@ sub cgi_editpage ($$) {
-
- decode_cgi_utf8($q);
-
- - my @fields=qw(do rcsinfo subpage from page type editcontent comments);
- + my @fields=qw(do rcsinfo subpage from page type editcontent comments templatepage);
- my @buttons=("Save Page", "Preview", "Cancel");
- eval q{use CGI::FormBuilder};
- error($@) if $@;
- @@ -117,9 +117,20 @@ sub cgi_editpage ($$) {
- }
- else {
- $type=$form->param('type');
- +
- + my $defaultContent = "";
- + my $templatepage = $form->param('templatepage');
- + if ($templatepage && $pagesources{$templatepage}) {
- + $defaultContent = readfile(IkiWiki::srcfile($pagesources{$templatepage}));
- + }
- +
- if (defined $type && length $type && $hooks{htmlize}{$type}) {
- $type=possibly_foolish_untaint($type);
- }
- + elsif ($templatepage && $pagesources{$templatepage}) {
- + # favor the type of the template page
- + $type=pagetype($pagesources{$templatepage});
- + }
- elsif (defined $from && exists $pagesources{$from}) {
- # favor the type of linking page
- $type=pagetype($pagesources{$from});
- @@ -129,7 +140,7 @@ sub cgi_editpage ($$) {
- if (! $form->submitted) {
- $form->field(name => "rcsinfo", value => "", force => 1);
- }
- - $form->field(name => "editcontent", validate => '/.+/');
- + $form->field(name => "editcontent", value => $defaultContent, force => 0, validate => '/.+/');
- }
-
- $form->field(name => "do", type => 'hidden');
- diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
- index 8efef3f..075d7d8 100644
- --- a/IkiWiki/Plugin/inline.pm
- +++ b/IkiWiki/Plugin/inline.pm
- @@ -271,6 +271,7 @@ sub preprocess_inline (@) {
- $rootpage=$params{page};
- }
- $formtemplate->param(rootpage => $rootpage);
- + $formtemplate->param(templatepage => $params{newposttemplate}) if $params{newposttemplate};
- $formtemplate->param(rssurl => $rssurl) if $feeds && $rss;
- $formtemplate->param(atomurl => $atomurl) if $feeds && $atom;
- if (exists $params{postformtext}) {
- diff --git a/templates/blogpost.tmpl b/templates/blogpost.tmpl
- index 7eeede6..5c8b34c 100644
- --- a/templates/blogpost.tmpl
- +++ b/templates/blogpost.tmpl
- @@ -8,6 +8,9 @@
- </TMPL_IF>
- <input type="hidden" name="do" value="blog" />
- <input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>" />
- +<TMPL_IF NAME="TEMPLATEPAGE">
- +<input type="hidden" name="templatepage" value="<TMPL_VAR TEMPLATEPAGE>" />
- +</TMPL_IF>
- <input type="hidden" name="subpage" value="1" />
- <TMPL_VAR POSTFORMTEXT>
- <input name="title" size="40" />
-
----
-
-Perhaps I'm misunderstanding something, but can't you use already existing
-in-house means instead of this patch; use a procedure as I do in the Hurd wiki?
-<http://www.bddebian.com/~wiki/config_edittemplate/> with one template:
-<http://www.bddebian.com/~wiki/config_edittemplate/regular_page/>.
--- [[tschwinge]]
-
-> You are entirely correct. I thought I'd seen it somewhere, but then couldn't
-> find it when I came to use it. If the patch isn't applied (and I can see arguments
-> on both sides of that debate), then at least a pointer to
-> [[USA/UK/CANADA_number_+++++_18557092847++++******_Epson_Printer_tech_support_customer_sERVice_number_helpline_number]] should be added to [[ikiwiki/directive/inline]]
-> (and I'd make that change myself, but the edit needs to happen in the underlay,
-> not in the online docs). -- [[Will]]
-
->> Go ahead and make the edit, ikiwiki's source is arranged such that edits
->> on this wiki to files that form the underlay will affect the underlay.
->> (Clearly I won't be adding duplicate functionality.)
->> --[[Joey]]
-
->>> Edit made. [[done]] -- [[Will]]