]> scripts.mit.edu Git - www/ikiwiki.git/commitdiff
* The page name and parent links has switched from using a <h1> to a styled
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 26 May 2006 01:10:58 +0000 (01:10 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Fri, 26 May 2006 01:10:58 +0000 (01:10 +0000)
  <span>, so pages can use <h1> internally instead of needing to use <h2>.
* Updated all of ikiwiki's own wiki pages for that.
* Add pagetemplate hook, which can be used by plugins that want to mess
  around with adding new stuff to the page template.
* Remove headercontent; the search plugin now adds the search box to the
  header by registering a pagetemplate hook, and other plugins should do
  similarly.

20 files changed:
IkiWiki.pm
IkiWiki/Plugin/search.pm
IkiWiki/Plugin/skeleton.pm
IkiWiki/Render.pm
IkiWiki/Wrapper.pm
basewiki/helponformatting.mdwn
basewiki/style.css
debian/changelog
doc/about_rcs_backends.mdwn
doc/download.mdwn
doc/helponformatting.mdwn [deleted file]
doc/plugins.mdwn
doc/plugins/write.mdwn
doc/todo/adding_new_pages_by_using_the_web_interface.mdwn
doc/todo/done/html.mdwn
templates/editpage.tmpl
templates/inlinepage.tmpl
templates/misc.tmpl
templates/page.tmpl
templates/recentchanges.tmpl

index df38efb7d472c156a2eed8dac8e9d426353f26d2..81a72d43d2e25a55984c39362eb87671db75b0e4 100644 (file)
@@ -42,7 +42,6 @@ sub defaultconfig () { #{{{
        adminuser => undef,
        adminemail => undef,
        plugin => [qw{inline htmlscrubber}],
        adminuser => undef,
        adminemail => undef,
        plugin => [qw{inline htmlscrubber}],
-       headercontent => '',
 } #}}}
            
 sub checkconfig () { #{{{
 } #}}}
            
 sub checkconfig () { #{{{
index 213ed45ff29c00c19769cbee3ec00faf991ae667..c94974ac4b608bfbf122f4455a0fe3fc0fcc71a6 100644 (file)
@@ -9,6 +9,8 @@ use IkiWiki;
 sub import { #{{{
        IkiWiki::hook(type => "checkconfig", id => "hyperestraier",
                call => \&checkconfig);
 sub import { #{{{
        IkiWiki::hook(type => "checkconfig", id => "hyperestraier",
                call => \&checkconfig);
+       IkiWiki::hook(type => "pagetemplate", id => "hyperestraier",
+               call => \&pagetemplate);
        IkiWiki::hook(type => "delete", id => "hyperestraier",
                call => \&delete);
        IkiWiki::hook(type => "change", id => "hyperestraier",
        IkiWiki::hook(type => "delete", id => "hyperestraier",
                call => \&delete);
        IkiWiki::hook(type => "change", id => "hyperestraier",
@@ -23,8 +25,14 @@ sub checkconfig () { #{{{
                        IkiWiki::error("Must specify $required when using the search plugin\n");
                }
        }
                        IkiWiki::error("Must specify $required when using the search plugin\n");
                }
        }
+} #}}}
+
+sub pagetemplate ($$) { #{{{
+       my $page=shift;
+       my $template=shift;
 
 
-       $IkiWiki::config{headercontent}.=qq{
+       # Add search box to page header.
+       $template->param(searchform => qq{
 <form method="get" action="$IkiWiki::config{cgiurl}" id="searchform">
 <div>
 <input type="text" name="phrase" value="" size="16" />
 <form method="get" action="$IkiWiki::config{cgiurl}" id="searchform">
 <div>
 <input type="text" name="phrase" value="" size="16" />
@@ -32,7 +40,7 @@ sub checkconfig () { #{{{
 <input type="hidden" name="do" value="hyperestraier" />
 </div>
 </form>
 <input type="hidden" name="do" value="hyperestraier" />
 </div>
 </form>
-};
+});
 } #}}}
 
 sub delete (@) { #{{{
 } #}}}
 
 sub delete (@) { #{{{
index 346dfa5ffb1210897dd3283a51d30b4c083aa9db..226270c38fdaed70d83689f1ca0617bc6deccca6 100644 (file)
@@ -17,6 +17,8 @@ sub import { #{{{
                call => \&filter);
        IkiWiki::hook(type => "sanitize", id => "skeleton", 
                call => \&sanitize);
                call => \&filter);
        IkiWiki::hook(type => "sanitize", id => "skeleton", 
                call => \&sanitize);
+       IkiWiki::hook(type => "pagetemplate", id => "skeleton", 
+               call => \&pagetemplate);
        IkiWiki::hook(type => "delete", id => "skeleton", 
                call => \&delete);
        IkiWiki::hook(type => "change", id => "skeleton", 
        IkiWiki::hook(type => "delete", id => "skeleton", 
                call => \&delete);
        IkiWiki::hook(type => "change", id => "skeleton", 
@@ -51,6 +53,13 @@ sub sanitize ($) { #{{{
        return $content;
 } # }}}
 
        return $content;
 } # }}}
 
+sub pagetemplate ($$) { #{{{
+       my $page=shift;
+       my $template=shift;
+       
+       IkiWiki::debug("skeleton plugin running as a pagetemplate hook");
+} # }}}
+
 sub delete (@) { #{{{
        my @files=@_;
 
 sub delete (@) { #{{{
        my @files=@_;
 
index 854d5105ebecc793e97d2c3f3a32c8ad3b3e0131..b59a721c0408d398e367ca320cb28b5265e9d2f5 100644 (file)
@@ -177,7 +177,12 @@ sub genpage ($$$) { #{{{
        if ($config{discussion}) {
                $template->param(discussionlink => htmllink($page, "Discussion", 1, 1));
        }
        if ($config{discussion}) {
                $template->param(discussionlink => htmllink($page, "Discussion", 1, 1));
        }
-       $template->param(headercontent => $config{headercontent});
+
+       if (exists $hooks{pagetemplate}) {
+               foreach my $id (keys %{$hooks{pagetemplate}}) {
+                       $hooks{pagetemplate}{$id}{call}->($page, $template);
+               }
+       }
 
        $template->param(
                title => $title,
 
        $template->param(
                title => $title,
index 7d27abd06a6e742b66349115ef4107136f36e11f..52a7ca2c70e4ab05b45e5b3c2b852e43e57731f0 100644 (file)
@@ -47,10 +47,6 @@ EOF
 EOF
        }
        
 EOF
        }
        
-       # This is only set by plugins, which append to it on startup, so
-       # avoid storing it in the wrapper.
-       $config{headercontent}="";
-       
        $Data::Dumper::Indent=0; # no newlines
        my $configstring=Data::Dumper->Dump([\%config], ['*config']);
        $configstring=~s/\\/\\\\/g;
        $Data::Dumper::Indent=0; # no newlines
        my $configstring=Data::Dumper->Dump([\%config], ['*config']);
        $configstring=~s/\\/\\\\/g;
index a34f201445eea5f20bb313ec55af1955a4f44822..bc229aad05121ecd5aa08ed70e6238b02d7ae719 100644 (file)
@@ -1,4 +1,4 @@
-## Help on formatting text
+# Help on formatting text
 
 Text on this wiki is written in a form very close to how you might write
 text for an email message.
 
 Text on this wiki is written in a form very close to how you might write
 text for an email message.
@@ -24,6 +24,7 @@ To create a header, start a line with one or more `#` characters followed
 by a space and the header text. The number of `#` characters controls the
 size of the header:
 
 by a space and the header text. The number of `#` characters controls the
 size of the header:
 
+# # h1
 ## ## h2
 ### ### h3
 #### #### h4
 ## ## h2
 ### ### h3
 #### #### h4
index 2e0141050a26a183467a9bc9e0ab5c3d2e9ff841..a830afb6961268005612d1e0d4739e8f22aab873 100644 (file)
@@ -1,5 +1,8 @@
-#header h1 {
+#header {
        margin: 0;
        margin: 0;
+       font-size: 22px;
+       font-weight: bold;
+       line-height: 1em;
 }
 
 #actions ul {
 }
 
 #actions ul {
index 65808d4d5fba549763173d0d1e6127a8d16a247b..9e26c8c78ee70faa340b6f1787b56f4486363804 100644 (file)
@@ -3,8 +3,16 @@ ikiwiki (1.4) UNRELEASED; urgency=low
   * Tell HTML::Scrubber to treat "/" as a valid attribute which is its
     very strange way of enabling proper XHTML <br /> type tags. Output html
     should be always valid again now.
   * Tell HTML::Scrubber to treat "/" as a valid attribute which is its
     very strange way of enabling proper XHTML <br /> type tags. Output html
     should be always valid again now.
+  * The page name and parent links has switched from using a <h1> to a styled
+    <span>, so pages can use <h1> internally instead of needing to use <h2>.
+  * Updated all of ikiwiki's own wiki pages for that.
+  * Add pagetemplate hook, which can be used by plugins that want to mess
+    around with adding new stuff to the page template.
+  * Remove headercontent; the search plugin now adds the search box to the
+    header by registering a pagetemplate hook, and other plugins should do
+    similarly.
 
 
- -- Joey Hess <joeyh@debian.org>  Thu, 25 May 2006 18:01:59 -0400
+ -- Joey Hess <joeyh@debian.org>  Thu, 25 May 2006 20:57:07 -0400
 
 ikiwiki (1.3) unstable; urgency=low
 
 
 ikiwiki (1.3) unstable; urgency=low
 
index 476525e3c943900a400ace8f7c387192ed059c96..197f093946cee2284f9d3024989309cbf3ac4d36 100644 (file)
@@ -1,16 +1,16 @@
-## A few bits about the RCS backends
+# A few bits about the RCS backends
 
 
-### Terminology
+## Terminology
 
 ``web-edit'' means that a page is edited by using the web (CGI) interface
 as opposed to using a editor and the RCS interface.
 
 
 
 ``web-edit'' means that a page is edited by using the web (CGI) interface
 as opposed to using a editor and the RCS interface.
 
 
-### [[Subversion]]
+## [[Subversion]]
 
 Subversion was the first RCS to be supported by ikiwiki.
 
 
 Subversion was the first RCS to be supported by ikiwiki.
 
-#### How does it work internally?
+### How does it work internally?
 
 Master repository M.
 
 
 Master repository M.
 
@@ -28,12 +28,12 @@ see [[commit-internals]].
 You browse and web-edit the wiki on W.
 
 
 You browse and web-edit the wiki on W.
 
 
-### [darcs](http://darcs.net/) (not yet included)
+## [darcs](http://darcs.net/) (not yet included)
 
 Support for using darcs as a backend is being worked on by [Thomas
 Schwinge](mailto:tschwinge@gnu.org).
 
 
 Support for using darcs as a backend is being worked on by [Thomas
 Schwinge](mailto:tschwinge@gnu.org).
 
-#### How will it work internally?
+### How will it work internally?
 
 ``Master'' repository R1.
 
 
 ``Master'' repository R1.
 
@@ -59,7 +59,7 @@ separated parts in ikiwiki.
 
 What repository should [[RecentChanges]] and [[History]] work on?  R1?
 
 
 What repository should [[RecentChanges]] and [[History]] work on?  R1?
 
-##### Rationale for doing it differently than in the Subversion case
+#### Rationale for doing it differently than in the Subversion case
 
 darcs is a distributed RCS, which means that every checkout of a
 repository is equal to the repository it was checked-out from.  There is
 
 darcs is a distributed RCS, which means that every checkout of a
 repository is equal to the repository it was checked-out from.  There is
@@ -76,7 +76,7 @@ off from R1.
 (To be continued.)
 
 
 (To be continued.)
 
 
-### [[Git]] (not yet included)
+## [[Git]] (not yet included)
 
 A patch with full [Git](http://git.or.cz) support is at <http://people.debian.org/~roktas/patches/ikiwiki/git.patch>. Regarding the patch, Recai says:
 
 
 A patch with full [Git](http://git.or.cz) support is at <http://people.debian.org/~roktas/patches/ikiwiki/git.patch>. Regarding the patch, Recai says:
 
@@ -121,4 +121,4 @@ Some other notes:
 
 It works for me, but of course in the end, the final decision is yours (due
 to mostly GIT quirks, the implementation is not clean as SVN).  Feel free
 
 It works for me, but of course in the end, the final decision is yours (due
 to mostly GIT quirks, the implementation is not clean as SVN).  Feel free
-to fix/delete/add whatever you want.  Hope it doesn't have any serious bug.
\ No newline at end of file
+to fix/delete/add whatever you want.  Hope it doesn't have any serious bug.
index bc58b178b7cb5f9a152c585abeff4655fe5ecc49..e64d1984c55b1af0c33ac7ca27e0b058f0515262 100644 (file)
@@ -1,11 +1,11 @@
 Here's how to get ikiwiki. See [[setup]] for how to use it, and be sure to add your wiki to [[IkiwikiUsers]] if you use ikiwiki.
 
 Here's how to get ikiwiki. See [[setup]] for how to use it, and be sure to add your wiki to [[IkiwikiUsers]] if you use ikiwiki.
 
-## tarball
+# tarball
 
 The best place to download a tarball of the latest release is from 
 <http://packages.debian.org/unstable/source/ikiwiki>.
 
 
 The best place to download a tarball of the latest release is from 
 <http://packages.debian.org/unstable/source/ikiwiki>.
 
-## Debian package
+# Debian package
 
 If using Debian unstable, or soon, testing:
 
 
 If using Debian unstable, or soon, testing:
 
@@ -15,9 +15,9 @@ Or download the deb from <http://packages.debian.org/unstable/web/ikiwiki>.
 
 While this deb has been developed on Debian unstable, it should also work on stable, although to get the CGI stuff working on stable, you will need to upgrade to a newer version of libcgi-formbuilder-perl, `3.02.02`.
 
 
 While this deb has been developed on Debian unstable, it should also work on stable, although to get the CGI stuff working on stable, you will need to upgrade to a newer version of libcgi-formbuilder-perl, `3.02.02`.
 
-## subversion
+# subversion
 
 The current development version of ikiwiki can be accessed using subversion at 
 `svn://svn.kitenet.net/ikiwiki/trunk`
 
 
 The current development version of ikiwiki can be accessed using subversion at 
 `svn://svn.kitenet.net/ikiwiki/trunk`
 
-The source in subversion can be browsed [with viewcvs](http://svn.kitenet.net/trunk/?root=ikiwiki).
\ No newline at end of file
+The source in subversion can be browsed [with viewcvs](http://svn.kitenet.net/trunk/?root=ikiwiki).
diff --git a/doc/helponformatting.mdwn b/doc/helponformatting.mdwn
deleted file mode 100644 (file)
index 1e3958a..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-## Help on formatting text
-
-Text on this wiki is written in a form very close to how you might write
-text for an email message. This style of text formatting is called [[MarkDown]].
-
-Leave blank lines between paragraphs.
-
-You can \**emphasise*\* or \*\***strongly emphasise**\*\* text by placing it
-in single or double asterisks.
-
-To create a list, start each line with an asterisk:
-
-* "* this is my list"
-* "* another item"
-
-To make a numbered list, start each line with a number (any number will
-do) followed by a period:
-
-1. "1. first line"
-2. "2. second line"
-2. "2. third line"
-
-To create a header, start a line with one or more `#` characters followed
-by a space and the header text. The number of `#` characters controls the
-size of the header:
-
-## ## h2
-### ### h3
-#### #### h4
-
-To create a horizontal rule, just write three or more dashes on their own
-line:
-
-----
-
-To quote someone, prefix the quote with ">":
-
-> To be or not to be,
-> that is the question.
-
-To write a code block, indent each line with a tab or 8 spaces:
-
-       10 PRINT "Hello, world!"
-       20 GOTO 10
-
-To link to another page on the wiki, place the page's name inside double
-square brackets, so you would use `\[[WikiLink]]` to link to [[WikiLink]].
-
-To link to any other web page, or to an email address, you can just put the url in angle brackets: <<http://ikiwiki.kitenet.net>>, or you can use the form
-\[link text\]\(url\)
-
-----
-
-Advanced users can use [[PreProcessorDirective]]s to do additional cool
-stuff.
-
-Also, if the smiley plugin is enabled in your wiki, you can insert
-[[smileys]] and some other useful symbols.
index 5596586b36e244d3434504d609bb3242dbec9b78..2c184900c5f3fc9a71adde8718ff972d71046c06 100644 (file)
@@ -1,17 +1,18 @@
-There's documentation if you want to [[write]] your own plugins, or you can install and use plugins contributed by others. 
+There's documentation if you want to [[write]] your own plugins, or you can
+install and use plugins contributed by others. 
 
 The [[inline]] and [[htmlscrubber]] plugins are enabled by default.
 
 To enable other plugins, use the `--plugin` switch described in [[usage]],
 or the equivalent line in [[ikiwiki.setup]].
 
 
 The [[inline]] and [[htmlscrubber]] plugins are enabled by default.
 
 To enable other plugins, use the `--plugin` switch described in [[usage]],
 or the equivalent line in [[ikiwiki.setup]].
 
-## Plugin directory
+# Plugin directory
 
 Add all plugins here. Or add ideas to the [[todo|todo/plugin]] page.
 
 [[inline pages="plugins/* !plugins/write !*/Discussion" archive="yes" rootpage="plugins/contrib" show="60"]]
 
 
 Add all plugins here. Or add ideas to the [[todo|todo/plugin]] page.
 
 [[inline pages="plugins/* !plugins/write !*/Discussion" archive="yes" rootpage="plugins/contrib" show="60"]]
 
-## Installing third party plugins
+# Installing third party plugins
 
 Plugins are perl modules and should be installed somewhere in the perl
 module search path. See the @INC list at the end of the output of `perl -V`
 
 Plugins are perl modules and should be installed somewhere in the perl
 module search path. See the @INC list at the end of the output of `perl -V`
index 6c013cd4a754b66922994dce2b2dd9c8a51ddf7d..245f7c9ee8dad10063c050bb90d416d1927bcc3c 100644 (file)
@@ -4,7 +4,7 @@ lowercase, such as `IkiWiki::Plugin::inline`. Ikiwiki includes a
 `IkiWiki::Plugin::skeleton` that can be fleshed out to make a useful
 plugin. `IkiWiki::Plugin::pagecount` is another simple example.
 
 `IkiWiki::Plugin::skeleton` that can be fleshed out to make a useful
 plugin. `IkiWiki::Plugin::pagecount` is another simple example.
 
-## Note
+# Note
 
 One thing to keep in mind when writing a plugin is that ikiwiki is a wiki
 *compiler*. So plugins influence pages when they are built, not when they
 
 One thing to keep in mind when writing a plugin is that ikiwiki is a wiki
 *compiler*. So plugins influence pages when they are built, not when they
@@ -15,7 +15,7 @@ random or changing thing on a page will generate a static page that won't
 change until ikiwiki rebuilds the page for some other reason, like the page
 being edited.
 
 change until ikiwiki rebuilds the page for some other reason, like the page
 being edited.
 
-## Registering plugins
+# Registering plugins
 
 Plugins should, when imported, call IkiWiki::hook to hook into ikiwiki's
 processing. The function uses named parameters, and use varies depending on
 
 Plugins should, when imported, call IkiWiki::hook to hook into ikiwiki's
 processing. The function uses named parameters, and use varies depending on
@@ -26,7 +26,7 @@ hook, a "id" paramter, which should be a unique string for this plugin, and
 a "call" parameter, which is a reference to a function to call for the
 hook.
 
 a "call" parameter, which is a reference to a function to call for the
 hook.
 
-## Writing a [[PreProcessorDirective]]
+# Writing a [[PreProcessorDirective]]
 
 This is probably the most common use of a plugin.
 
 
 This is probably the most common use of a plugin.
 
@@ -40,14 +40,14 @@ Each time the directive is processed, the referenced function (`preprocess` in t
 as named parameters as well. Whatever the function returns goes onto the
 page in place of the directive.
 
 as named parameters as well. Whatever the function returns goes onto the
 page in place of the directive.
 
-### Error handing
+## Error handing
 
 While a plugin can call ikiwiki's error routine for a fatal error, for
 errors that aren't intended to halt the entire wiki build, including bad
 parameters passed to a [[PreProcessorDirective]], etc, it's better to just
 return the error message as the output of the plugin.
 
 
 While a plugin can call ikiwiki's error routine for a fatal error, for
 errors that aren't intended to halt the entire wiki build, including bad
 parameters passed to a [[PreProcessorDirective]], etc, it's better to just
 return the error message as the output of the plugin.
 
-### Html issues
+## Html issues
 
 Note that if the [[htmlscrubber]] is enabled, html in
 [[PreProcessorDirective]] output is sanitised, which may limit what your
 
 Note that if the [[htmlscrubber]] is enabled, html in
 [[PreProcessorDirective]] output is sanitised, which may limit what your
@@ -55,12 +55,12 @@ plugin can do. Also, the rest of the page content is not in html format at
 preprocessor time. Text output by a preprocessor directive will be passed
 through markdown along with the rest of the page.
 
 preprocessor time. Text output by a preprocessor directive will be passed
 through markdown along with the rest of the page.
 
-## Other types of hooks
+# Other types of hooks
 
 Beyond PreProcessorDirectives, Other types of hooks that can be used by
 plugins include:
 
 
 Beyond PreProcessorDirectives, Other types of hooks that can be used by
 plugins include:
 
-### checkconfig
+## checkconfig
 
        IkiWiki::hook(type => "checkconfig", id => "foo", call => \&checkconfig);
 
 
        IkiWiki::hook(type => "checkconfig", id => "foo", call => \&checkconfig);
 
@@ -69,7 +69,7 @@ configuration. It's called early in the ikiwiki startup process. The
 function is passed no values. It's ok for the function to call
 IkiWiki::error if something isn't configured right.
 
 function is passed no values. It's ok for the function to call
 IkiWiki::error if something isn't configured right.
 
-### filter
+## filter
 
        IkiWiki::hook(type => "filter", id => "foo", call => \&filter);
 
 
        IkiWiki::hook(type => "filter", id => "foo", call => \&filter);
 
@@ -77,7 +77,7 @@ Runs on the raw source of a page, before anything else touches it, and can
 make arbitrary changes. The function is passed named parameters `page` and
 `content` and should return the filtered content.
 
 make arbitrary changes. The function is passed named parameters `page` and
 `content` and should return the filtered content.
 
-### sanitize
+## sanitize
 
        IkiWiki::hook(type => "filter", id => "foo", call => \&sanitize);
 
 
        IkiWiki::hook(type => "filter", id => "foo", call => \&sanitize);
 
@@ -86,14 +86,25 @@ modify the content of a page after it has been fully converted to html.
 The function is passed the page content and should return the sanitized
 content.
 
 The function is passed the page content and should return the sanitized
 content.
 
-### delete
+## pagetemplate
+
+       IkiWiki::hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
+
+Each time a page is rendered, a [[template|templates]] is filled out.
+This hook allows modifying that template. The function is passed the name
+of the page, and a `HTML::Template` object that is the template that will
+be used to generate the page. It can manipulate that template, the most
+common thing to do is probably to call $template->param() to add a new
+custom parameter to the template.
+
+## delete
 
        IkiWiki::hook(type => "delete", id => "foo", call => \&dele);
 
 Each time a page or pages is removed from the wiki, the referenced function
 is called, and passed the names of the source files that were removed.
 
 
        IkiWiki::hook(type => "delete", id => "foo", call => \&dele);
 
 Each time a page or pages is removed from the wiki, the referenced function
 is called, and passed the names of the source files that were removed.
 
-### change
+## change
 
        IkiWiki::hook(type => "change", id => "foo", call => \&render);
 
 
        IkiWiki::hook(type => "change", id => "foo", call => \&render);
 
@@ -101,7 +112,7 @@ Each time ikiwiki renders a change or addition (but not deletion) to the
 wiki, the referenced function is called, and passed the names of the
 source files that were rendered.
 
 wiki, the referenced function is called, and passed the names of the
 source files that were rendered.
 
-### cgi
+## cgi
 
        IkiWiki::hook(type => "cgi", id => "foo", call => \&cgi);
 
 
        IkiWiki::hook(type => "cgi", id => "foo", call => \&cgi);
 
@@ -110,13 +121,13 @@ called in turn, and passed a CGI object. The hook should examine the
 parameters, and if it will handle this CGI request, output a page and
 terminate the program.
 
 parameters, and if it will handle this CGI request, output a page and
 terminate the program.
 
-## Wiki configuration
+# Wiki configuration
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config`
 hash. The best way to understand the contents of the hash is to look at
 [[ikiwiki.setup]], which sets the hash content to configure the wiki.
 
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config`
 hash. The best way to understand the contents of the hash is to look at
 [[ikiwiki.setup]], which sets the hash content to configure the wiki.
 
-## Wiki data
+# Wiki data
 
 If your plugin needs to access data about other pages in the wiki. It can
 use the following hashes, using a page name as the key:
 
 If your plugin needs to access data about other pages in the wiki. It can
 use the following hashes, using a page name as the key:
@@ -136,19 +147,7 @@ use the following hashes, using a page name as the key:
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
 
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
 
-## Page templates
-
-Plugins are mostly limited to changing the content of pages, to change the
-look and feel of the wiki it's generally better to use a stylesheet and
-[[templates]]. However, there are some hooks in the templates that plugins
-can use to add stuff to the wiki's UI:
-
-### Adding content to the page header
-
-Html that is added to $IkiWiki::config{headercontent} will show up in the
-header of the page. One good thing to put here is a search form.
-
-## RCS plugins
+# RCS plugins
 
 ikiwiki's support for revision control systems also uses pluggable perl
 modules. These are in the `IkiWiki::RCS` namespace, for example
 
 ikiwiki's support for revision control systems also uses pluggable perl
 modules. These are in the `IkiWiki::RCS` namespace, for example
index 65de469fbc54f490eacae47ff54db0486926529e..e24ab123205b968b8fe7b17c05ef333c057591fd 100644 (file)
@@ -1,8 +1,26 @@
-Perhaps I'm just too stupid to find the proper way to do this, but how would I add a new page to the wiki without selecting to edit an already installed one and frobbing the URL to direct to the to-be-created page? --[[ThomasSchwinge]]
+Perhaps I'm just too stupid to find the proper way to do this, but how
+would I add a new page to the wiki without selecting to edit an already
+installed one and frobbing the URL to direct to the to-be-created page?
+--[[ThomasSchwinge]]
 
 
-Good point. Of course one way is to start with creating a link to the page, which also helps prevent orphans. But other wikis based on CGI do have this a bit easier, since they can detect an attempt to access a nonexistant page and show an edit page. Ikiwiki can't do that (unless its web server is configured to do smart things on a 404).
+Good point. Of course one way is to start with creating a link to the page,
+which also helps prevent orphans. But other wikis based on CGI do have this
+a bit easier, since they can detect an attempt to access a nonexistant page
+and show an edit page. Ikiwiki can't do that (unless its web server is
+configured to do smart things on a 404, like maybe call ikiwiki.cgi which
+could be modified to work as a smart 404 -> edit handler).
 
 
-Some wikis also provide a UI means for creating a new page. If we can find something good, that can be added to ikiwiki's UI. --[[Joey]]
+Some wikis also provide a UI means for creating a new page. If we can find
+something good, that can be added to ikiwiki's UI. --[[Joey]]
 
 
-Hmm, maybe just a preprocessor directive that creates a form inside a page, like is used for blog posting already would suffice? Then the main page of a wiki could have a form for adding new pages, if that directive were included there. 
-Won't work for subpages though, unless the directive were added to the parent page. However, unconnected subpages are surely an even rarer thing to want than unconnected top level pages. --[[Joey]]
\ No newline at end of file
+Hmm, maybe just a preprocessor directive that creates a form inside a page,
+like is used for blog posting already would suffice? Then the main page of
+a wiki could have a form for adding new pages, if that directive were
+included there. Won't work for subpages though, unless the directive were
+added to the parent page. However, unconnected subpages are surely an even
+rarer thing to want than unconnected top level pages. --[[Joey]]
+
+Maybe a very simple PHP frontend for serving the
+statically generated pages, that would display a page editing form or
+something like that for non-existent pages, wouldn't be too bad a thing
+and resource hog? Just a thought... --[[Tuomov]]
index 96dc0b4766c6151bce0d8aee3925b0cabb11ba47..e74a979ca5f7db831a8bda5dd6b9fa73f06be1b6 100644 (file)
@@ -1,6 +1,6 @@
-## html validation
+# html validation
 
   * A doctype: XHTML 1.0 strict.
   * &lt;hr&gt; to &lt;hr /&gt; etc.
   * Image wikilinks provide an alt text.
 
   * A doctype: XHTML 1.0 strict.
   * &lt;hr&gt; to &lt;hr /&gt; etc.
   * Image wikilinks provide an alt text.
-  * &'s in (cgi-)url's escaped as &amp;amp;.   
\ No newline at end of file
+  * &'s in (cgi-)url's escaped as &amp;amp;.   
index 4724cd65fd6e3e551eacc00dfd5ff4acb4ea0d2b..b7ec3fa2b18277abaf4d816e268f8d8e6ba2c6d6 100644 (file)
@@ -20,7 +20,9 @@ confict and commit again to save your changes.
 </p>
 </TMPL_IF>
 <TMPL_VAR FORM-START>
 </p>
 </TMPL_IF>
 <TMPL_VAR FORM-START>
-<h1><TMPL_VAR INDEXLINK>/ <TMPL_VAR FORM-TITLE></h1>
+<div id="header">
+<span><TMPL_VAR INDEXLINK>/ <TMPL_VAR FORM-TITLE></span>
+</div>
 <TMPL_VAR FIELD-DO>
 <TMPL_VAR FIELD-FROM>
 <TMPL_VAR FIELD-RCSINFO>
 <TMPL_VAR FIELD-DO>
 <TMPL_VAR FIELD-FROM>
 <TMPL_VAR FIELD-RCSINFO>
@@ -39,7 +41,7 @@ Optional comment about this change:<br />
 <hr />
 <TMPL_IF NAME="PAGE_PREVIEW">
 <div id="header">
 <hr />
 <TMPL_IF NAME="PAGE_PREVIEW">
 <div id="header">
-<h1>Page preview:</h1>
+<span>Page preview:</span>
 </div>
 <div id="content">
 <TMPL_VAR PAGE_PREVIEW>
 </div>
 <div id="content">
 <TMPL_VAR PAGE_PREVIEW>
index 397ac860c218a4979b7ad7d1ad1426981049c1d9..39afc7f98345026277f81f467461655cebaad1fd 100644 (file)
@@ -1,5 +1,5 @@
 <div class="inlinepage">
 <div class="inlinepage">
-<h1><TMPL_VAR PAGELINK></h1>
+<span id="header"><TMPL_VAR PAGELINK></span>
 
 <TMPL_VAR CONTENT>
 
 
 <TMPL_VAR CONTENT>
 
index 1f724d3cd70b4da4ef623f801d2918b2c7cacd69..3187f5892e75c49b4a23c89d70f0874677abade5 100644 (file)
@@ -12,9 +12,9 @@
 <body>
 
 <div id="header">
 <body>
 
 <div id="header">
-<h1>
+<span>
 <TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
 <TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
-</h1>
+</span>
 </div>
 
 <div id="content">
 </div>
 
 <div id="content">
index 09e19c359d12a76288ea3b67375bccc6a300d933..fc00941212eab7f9d35741231296a208c5294747 100644 (file)
@@ -9,13 +9,15 @@
 <body>
 
 <div id="header">
 <body>
 
 <div id="header">
-<h1>
+<span>
 <TMPL_LOOP NAME="PARENTLINKS">
 <a href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a>/ 
 </TMPL_LOOP>
 <TMPL_VAR TITLE>
 <TMPL_LOOP NAME="PARENTLINKS">
 <a href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a>/ 
 </TMPL_LOOP>
 <TMPL_VAR TITLE>
-</h1>
-<TMPL_VAR HEADERCONTENT>
+</span>
+<TMPL_IF NAME="SEARCHFORM">
+<TMPL_VAR SEARCHFORM>
+</TMPL_IF>
 </div>
 
 <div id="actions">
 </div>
 
 <div id="actions">
index f9e7541da8ea6333537ef3e5151fd48ed3338e4e..389f98cb3265ca49800851b3993ba09b7fa85717 100644 (file)
@@ -12,9 +12,9 @@
 <body>
 
 <div id="header">
 <body>
 
 <div id="header">
-<h1>
+<span>
 <TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
 <TMPL_VAR INDEXLINK>/ <TMPL_VAR TITLE>
-</h1>
+</span>
 </div>
 
 <div id="content">
 </div>
 
 <div id="content">