From: joey
";
+ # TODO: should really add this to renderedfiles and call
+ # check_overwrite, but currently renderedfiles
+ # only supports listing one file per page.
+ if ($config{rss}) {
+ writefile(rsspage($parentpage), $config{destdir},
+ genrss($parentpage, @pages));
+ }
+
+ return $ret;
} #}}}
sub genpage ($$$) { #{{{
@@ -194,8 +203,6 @@ sub genpage ($$$) { #{{{
my $page=shift;
my $mtime=shift;
- $content = postprocess($page, $content, inline => \&postprocess_html_inline);
-
my $title=pagetitle(basename($page));
my $template=HTML::Template->new(blind_cache => 1,
@@ -255,10 +262,9 @@ sub absolute_urls ($$) { #{{{
return $content;
} #}}}
-sub genrss ($$$) { #{{{
- my $content=shift;
+sub genrss ($@) { #{{{
my $page=shift;
- my $mtime=shift;
+ my @pages=@_;
my $url="$config{url}/".htmlpage($page);
@@ -266,33 +272,14 @@ sub genrss ($$$) { #{{{
filename => "$config{templatedir}/rsspage.tmpl");
my @items;
- my $isblog=0;
- my $gen_blog=sub {
- my $parentpage=shift;
- my %params=@_;
-
- if (! exists $params{show}) {
- $params{show}=10;
- }
- if (! exists $params{pages}) {
- return "";
- }
-
- $isblog=1;
- foreach my $page (blog_list($params{pages}, $params{show})) {
- next if $page eq $parentpage;
- push @items, {
- itemtitle => pagetitle(basename($page)),
- itemurl => "$config{url}/$renderedfiles{$page}",
- itempubdate => date_822($pagectime{$page}),
- itemcontent => absolute_urls(get_inline_content($parentpage, $page), $url),
- } if exists $renderedfiles{$page};
- }
-
- return "";
- };
-
- $content = postprocess($page, $content, inline => $gen_blog);
+ foreach my $p (@pages) {
+ push @items, {
+ itemtitle => pagetitle(basename($p)),
+ itemurl => "$config{url}/$renderedfiles{$p}",
+ itempubdate => date_822($pagectime{$p}),
+ itemcontent => absolute_urls(get_inline_content($page, $p), $url),
+ } if exists $renderedfiles{$p};
+ }
$template->param(
title => $config{wikiname},
@@ -349,6 +336,7 @@ sub render ($) { #{{{
delete $inlinepages{$page};
$content=linkify($content, $page);
+ $content=preprocess($page, $content);
$content=htmlize($type, $content);
check_overwrite("$config{destdir}/".htmlpage($page), $page);
@@ -356,14 +344,6 @@ sub render ($) { #{{{
genpage($content, $page, mtime($srcfile)));
$oldpagemtime{$page}=time;
$renderedfiles{$page}=htmlpage($page);
-
- # TODO: should really add this to renderedfiles and call
- # check_overwrite, as above, but currently renderedfiles
- # only supports listing one file per page.
- if ($config{rss} && exists $inlinepages{$page}) {
- writefile(rsspage($page), $config{destdir},
- genrss($content, $page, mtime($srcfile)));
- }
}
else {
my $content=readfile($srcfile, 1);
diff --git a/basewiki/postprocessordirective.mdwn b/basewiki/postprocessordirective.mdwn
deleted file mode 100644
index fa8432e3f..000000000
--- a/basewiki/postprocessordirective.mdwn
+++ /dev/null
@@ -1,11 +0,0 @@
-Postprocessor directives are similar to a [[WikiLink]] in form, except they
-contain spaces and parameters. The general form is:
-
-\\[[directive param="value" param="value"]]
-
-This gets expanded after the rest of the page is processed, and can be used
-to transform the page in various ways.
-
-Currently, these postprocessor directives are available:
-
-* "inline" to make a [[blog]]
diff --git a/basewiki/preprocessordirective.mdwn b/basewiki/preprocessordirective.mdwn
new file mode 100644
index 000000000..a7d1be8c8
--- /dev/null
+++ b/basewiki/preprocessordirective.mdwn
@@ -0,0 +1,11 @@
+Preprocessor directives are similar to a [[WikiLink]] in form, except they
+contain spaces and parameters. The general form is:
+
+\\[[directive param="value" param="value"]]
+
+This gets expanded before the rest of the page is processed, and can be used
+to transform the page in various ways.
+
+Currently, these preprocessor directives are available:
+
+* "inline" to make a [[blog]]
diff --git a/doc/bugs.mdwn b/doc/bugs.mdwn
index 06cfc976e..bf4ffb53c 100644
--- a/doc/bugs.mdwn
+++ b/doc/bugs.mdwn
@@ -31,8 +31,5 @@
* If a file in the srcdir is removed, exposing a file in the underlaydir,
ikiwiki will not notice the change and rebuild it until the file in the
underlaydir gets a mtime newer than the mtime the removed file had.
-* Markdown will try to expand stuff inside postprocessordirectives. For
- example, if there are two *'s, it will turn them to html em's, which
- breaks things unexpectedly and requires escaping.
* ikiwiki will generate html formatted error messages to the command
line if --cgi is set, even if it's not yet running as a cgi
diff --git a/doc/todo/done/htmlvalidation.mdwn b/doc/todo/done/htmlvalidation.mdwn
new file mode 100644
index 000000000..6b8d0e7c9
--- /dev/null
+++ b/doc/todo/done/htmlvalidation.mdwn
@@ -0,0 +1,45 @@
+ * Doctype is XHTML 1.0 Strict
+
+ One consideration of course is that regular users might embed html
+ that uses deprecated presentational elements like <center>. At
+ least firefox seems to handle that mixture ok.
+ --[[Joey]]
+
+ * [ [inlinepage] ] gets wrapped in <p>...</p> which has a high chance of invalidating the page.
+
+ Since markdown does this, the only way I can think to fix it is to
+ make the inlined page text start with </p> and end with
+ <p>. Ugly, and of course there could be problems with
+ markdown enclosing it in other spanning tags in some cases.
+ I've implemented this hack now. :-/ --[[Joey]]
+
+ I used this 'hack' myself, but yesterday I came up with a better idea:
+ <div class="inlinepage">
+ [ [inlinepage] ]
+ </div>
+ This prevents markdown enclosing and even adds a useful css identifier. Problem is that this should be added to every page and not in the template(s). --[[JeroenSchot]]
+
+ I can make ikiwiki add that around every inlined page easily
+ enough. However, where is it documented? Came up dry on google.
+ --[[Joey]]
+
+ From
(posted